ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fe5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045df}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) 00:04:35 executing program 0: syz_clone(0x58021880, 0x0, 0x0, &(0x7f0000000000), 0x0, 0x0) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000001700)=0x4) ioprio_get$pid(0x2, r0) [ 275.625027][T13760] loop4: detected capacity change from 0 to 8226 00:04:35 executing program 0: syz_clone(0x58021880, 0x0, 0x0, &(0x7f0000000000), 0x0, 0x0) r0 = getpid() ioprio_get$pid(0x2, r0) 00:04:35 executing program 5: r0 = socket(0x11, 0x800000003, 0x0) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf315bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r0, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r2 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000340)=ANY=[@ANYBLOB="a80000002455370d00"/20, @ANYRES32=r1, @ANYBLOB="00000000ffffffff0000000008000e000000000008000d00060000000b000100636c73616374000006000500000000000600050000000000580008801c00010000000000000000000200000000000000000000000100000006000200000000001c00010000000000000000000000000001000000000000000800000014000200000000040900"/144], 0xa8}}, 0x0) 00:04:35 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005030600000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:35 executing program 3: r0 = bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000600)={0x6, 0x4, &(0x7f0000000000)=@raw=[@alu={0x6, 0x0, 0xb, 0xa, 0x0, 0x2}, @initr0, @jmp={0x5, 0x0, 0x9}], &(0x7f00000000c0)='syzkaller\x00', 0x5, 0x94, &(0x7f0000000280)=""/148, 0x0, 0x8, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = dup(r0) r2 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r2, 0x0) r3 = openat(r1, &(0x7f0000000040)='./file0\x00', 0x0, 0x10) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r3, 0x0) r4 = dup3(r0, 0xffffffffffffffff, 0x80000) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x4000, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x10, 0x4, &(0x7f0000000040)=@framed={{0x18, 0x0, 0x0, 0x0, 0xffffffc4}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000000080)='GPL\x00', 0x4, 0xe4, &(0x7f0000000100)=""/228, 0x0, 0x2, '\x00', 0x0, 0x28, r1, 0x8, &(0x7f0000000200)={0x6, 0x3}, 0x8, 0x10, &(0x7f0000000240)={0x1, 0x10, 0x1, 0x1f}, 0x10, 0x0, r0, 0x0, &(0x7f0000000380)=[r2, r3, r4, 0x1, r5]}, 0x80) 00:04:36 executing program 2: r0 = socket$kcm(0x10, 0x2, 0x10) sendmsg$kcm(r0, &(0x7f0000000180)={0x0, 0x8782559fc2aff2e2, &(0x7f0000000080)=[{&(0x7f0000000040)="e03f03002800050ad25a802e8c63940d0424fc600c00184002ac0f0006ac0f0037153e370a00038004000008d1bd", 0x33fe0}], 0x1}, 0x0) r1 = dup(r0) sendmsg$qrtr(r1, &(0x7f0000000580)={&(0x7f0000000000)={0x2a, 0x3, 0x7ffe}, 0xc, &(0x7f0000000140)=[{&(0x7f00000000c0)="8a8eb11d6657dceb0ee7debe382e5d79319f521475dc0b76abce69d6126a2e8e6c020a5b6b99a24aca7ff20dc6ff056595b6173f9ccf767253662afeb3a9b9b034bfac4a673dd594d5fba7b933c276a0446a42676df8da6720b6f73bd01ea9459e4b11b99f18b2b4464d920e510ae8c7cc6741fc7fc41f", 0x77}], 0x1, &(0x7f00000001c0)=[{0x78, 0x110, 0xffffffff, "b2e0ce699c19fc106f000840ac8ab6ff0ee992f87fb721efef6070153d59f99ee78be4ca473a6a83dc7a3fafd663a3204c660273d08c1aecb0e5cfa9c2fa51232e501811c9bb5a598861c8008b0afb3c33942831eef187e41b0fb146d94689cc8414"}, {0x100, 0x102, 0x8, "16ade45d02c335010ee00754fc4d8bb48cfad83a75f7954e6b1c4eafb9aa7d8096cf994e7150480a5060731e848207435db3b3b4e7e0b60c508358da627b6fc3016cbe70423df5c54c743c7dee471468f5aaf3d98fdcfc142975f88f214aba9f33b9f3f929a828e1193c70b25c5cefeef81354b805d29de8d4c4c04bc715c827e849b43d167e4bad88e93f27d72eef124e90a88d3e691cdb870bf937c9af4ac7bac3326952469fd11e1eb889fe2a2c314592fe76d6e78d6c51f455280f19dab418f4f52b9e785b6030cd61314a03608c1aa042aac556e5ce0a9641767cde4ebc4bb8b0dcd0b8e14f344fc363f98fe2"}, {0xe8, 0x11, 0x79c, "5694ecc220b504fc3d1bd7602a25fc8a6577d234e2bfd5efd9cf1971917bbce6f58a9ecb8307c75948d6fc7466ca276069d16c40e0d6fa77b759ffec143bc8fa38f87fceb28877a69237208e86807a52ac57e2900f41c6597b081a672baf6c6f8291c3d431e9e0958d478be57bb6338906abd96bbc9910cfe4389006a0516bce2b8efb42036ef05f2eb1a106bee72feed93418d28254e35787e0fe3dba4ee8448c6ce50651eb5f1eff92d047da3bb4b2e8fe6ef712220108fe2742478b51e12f2942946e98b38ad9def79d85a82112ff6dae65ec6eb7"}, {0x28, 0x111, 0x100, "6aa188996462c0bcd7324f3b264da6ab20560af21a62bc"}, {0x88, 0x10d, 0x7f, "616edc55bb676fa6e6688936c6a9291c1953eb8821e51e9b95a8d804a427a99886df2156dc42eafdac676dcbc53360c6d42bf5aa61e7c630c024afc232d2f74bdc122e0be08beedd9c20e30aea3e59143b54fbbbdba768daac0fe40e0047f83df39fc81cb1092947330469bc0e464fce0923558c2296f7"}, {0x98, 0x115, 0x3ff, "202d42e0671470ef5033d159f5b623d73fe4bef18a17c2916a49f71a3f41c425957da64ab1f7ccd78ba1d5dab145c4effbfca6f9bcd3cad5fda29da2b0051c2ab026095b84fb033e8b18318d81ec6b90ab7bdf7249686dda1535d54d3522f424252a914dd7aea8af78e829b9313126a3ccdd975f3d4973f0fdf172da1a3d5c6da95c"}], 0x3a8}, 0x38) 00:04:36 executing program 4: syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./bus\x00', 0x4045fe, 0x17, &(0x7f00000011c0)=[{&(0x7f0000010000)="eb", 0x1}, {&(0x7f00000000c0)="9858f8aa6f11f83c2a0c1b7ce48dfdb53fc9788f7515fa562b8b21b52e730c5cb502ad036aa6c00b5854a3ce46021611deb1be5befb79728ddd7", 0x3a, 0x1}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000080000000000000008000000000000001101020000000000ffffffff0000030046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010087237eb101c40000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ea46f01001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000000000080000000480000000100400000000100000000000000000000000000000000004000000000000000001000000000000000100000000000000010000000", 0x1ab, 0x4d5}, {&(0x7f00000001c0)="813e37f8f9bc53b8d2190168e4d3d1b4f63c4b993e82f1dfe7354fcd09930a92c992e6966329bbc621822681bb9fd0f4af588ab5629a7d33e299719b300fdac1ba10427c39a282e682073ec94414870644efe15b", 0x54, 0x2003}, {&(0x7f0000000fc0)="46494c453000030000000000000000000100010038000300980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801060002000000000000000000000000000000000000000000000000000000000000000000000000003000000068000000e67fc500001800000002004a00000018000100050000000010050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000004000000000000000004000000000000000001000000000000020000000000000002000000000000000110102a5dbd8841dfe66c95a0c0724424cd6a5944fefc346c1daf86b42f0a33fcfa78bf0d0d0fe8e3fd377da5983f50892316d6c4f2dedb5f7eddb10ff0f931427fa4c1fc5234c1c6b6f865d079330220cf6ad435b", 0x1e0, 0x4000}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c45300003000000000000000000020000e538000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000e10004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000000440)="000000000000000000a6000000000000000000000000000000000000000002183e0554dcb08c0e703aaec8625c8a028b1926464a8597351517175b9782f5a3f868c5de1db6fa29", 0x47, 0x49e0}, {&(0x7f0000000940)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f00000005c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a00000005000000001044000000005000000000000000000000000000000000048000000000000000010000000000000001000000000000000100000000000002400490033003000110145", 0x1eb, 0x53e0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d006100700080000000480000000100400000000100000000000000000000000000000000004000000000000000001000000000000040000000000000004000000000000000110147", 0x163, 0x57e0}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000050000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000000000000000000b2000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000000032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c00000049004900180014000000000030000004000000000000de4202010000a0ddde42e60000000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000e3ff00003dbf84654aa16a0000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000015002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400"/789, 0x315, 0x63e0}, {&(0x7f0000011520)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000000002000000000000000200000000000000020000000000212089", 0x163, 0x67e0}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc380}, {&(0x7f0000000080)="7db0692359c021", 0x7, 0x10000}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ed8d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003300000000000000000000000000100000000200"/1741, 0x6cd, 0x45000}, {&(0x7f000001b200)="10", 0x1, 0x46080}, {&(0x7f00000007c0)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964004000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22bd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745e531edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b48b5e8d1228cb0600000000000000", 0x14e, 0x46ffa}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000001000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x48000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fe5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045df}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) 00:04:36 executing program 3: r0 = bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000600)={0x6, 0x4, &(0x7f0000000000)=@raw=[@alu={0x6, 0x0, 0xb, 0xa, 0x0, 0x2}, @initr0, @jmp={0x5, 0x0, 0x9}], &(0x7f00000000c0)='syzkaller\x00', 0x5, 0x94, &(0x7f0000000280)=""/148, 0x0, 0x8, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = dup(r0) (async) r2 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r2, 0x0) (async) r3 = openat(r1, &(0x7f0000000040)='./file0\x00', 0x0, 0x10) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r3, 0x0) r4 = dup3(r0, 0xffffffffffffffff, 0x80000) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x4000, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x10, 0x4, &(0x7f0000000040)=@framed={{0x18, 0x0, 0x0, 0x0, 0xffffffc4}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000000080)='GPL\x00', 0x4, 0xe4, &(0x7f0000000100)=""/228, 0x0, 0x2, '\x00', 0x0, 0x28, r1, 0x8, &(0x7f0000000200)={0x6, 0x3}, 0x8, 0x10, &(0x7f0000000240)={0x1, 0x10, 0x1, 0x1f}, 0x10, 0x0, r0, 0x0, &(0x7f0000000380)=[r2, r3, r4, 0x1, r5]}, 0x80) 00:04:36 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005040600000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:36 executing program 0: syz_clone(0x58021880, 0x0, 0x0, &(0x7f0000000000), 0x0, 0x0) ioprio_get$pid(0x2, 0x0) 00:04:36 executing program 5: r0 = socket(0x11, 0x800000003, 0x0) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf315bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async) getsockname$packet(r0, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r2 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000340)=ANY=[@ANYBLOB="a80000002455370d00"/20, @ANYRES32=r1, @ANYBLOB="00000000ffffffff0000000008000e000000000008000d00060000000b000100636c73616374000006000500000000000600050000000000580008801c00010000000000000000000200000000000000000000000100000006000200000000001c00010000000000000000000000000001000000000000000800000014000200000000040900"/144], 0xa8}}, 0x0) [ 276.443285][T13781] loop4: detected capacity change from 0 to 8226 00:04:36 executing program 0: ioprio_get$pid(0x2, 0x0) [ 276.461052][T13786] netlink: 207496 bytes leftover after parsing attributes in process `syz-executor.2'. 00:04:36 executing program 3: r0 = bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000600)={0x6, 0x4, &(0x7f0000000000)=@raw=[@alu={0x6, 0x0, 0xb, 0xa, 0x0, 0x2}, @initr0, @jmp={0x5, 0x0, 0x9}], &(0x7f00000000c0)='syzkaller\x00', 0x5, 0x94, &(0x7f0000000280)=""/148, 0x0, 0x8, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = dup(r0) r2 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r2, 0x0) (async) r3 = openat(r1, &(0x7f0000000040)='./file0\x00', 0x0, 0x10) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r3, 0x0) (async) r4 = dup3(r0, 0xffffffffffffffff, 0x80000) (async) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x4000, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x10, 0x4, &(0x7f0000000040)=@framed={{0x18, 0x0, 0x0, 0x0, 0xffffffc4}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000000080)='GPL\x00', 0x4, 0xe4, &(0x7f0000000100)=""/228, 0x0, 0x2, '\x00', 0x0, 0x28, r1, 0x8, &(0x7f0000000200)={0x6, 0x3}, 0x8, 0x10, &(0x7f0000000240)={0x1, 0x10, 0x1, 0x1f}, 0x10, 0x0, r0, 0x0, &(0x7f0000000380)=[r2, r3, r4, 0x1, r5]}, 0x80) 00:04:36 executing program 5: r0 = socket(0x11, 0x800000003, 0x0) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf315bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r0, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) (async) r2 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000340)=ANY=[@ANYBLOB="a80000002455370d00"/20, @ANYRES32=r1, @ANYBLOB="00000000ffffffff0000000008000e000000000008000d00060000000b000100636c73616374000006000500000000000600050000000000580008801c00010000000000000000000200000000000000000000000100000006000200000000001c00010000000000000000000000000001000000000000000800000014000200000000040900"/144], 0xa8}}, 0x0) 00:04:36 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005060600000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:36 executing program 0: ioprio_get$pid(0x0, 0x0) 00:04:36 executing program 4: syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./bus\x00', 0x4045fe, 0x17, &(0x7f00000011c0)=[{&(0x7f0000010000)="eb", 0x1}, {&(0x7f00000000c0)="9858f8aa6f11f83c2a0c1b7ce48dfdb53fc9788f7515fa562b8b21b52e730c5cb502ad036aa6c00b5854a3ce46021611deb1be5befb79728ddd7", 0x3a, 0x1}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000080000000000000008000000000000001101020000000000ffffffff0000030046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010087237eb101c40000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ea46f01001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000000000080000000480000000100400000000100000000000000000000000000000000004000000000000000001000000000000000100000000000000010000000", 0x1ab, 0x4d5}, {&(0x7f00000001c0)="813e37f8f9bc53b8d2190168e4d3d1b4f63c4b993e82f1dfe7354fcd09930a92c992e6966329bbc621822681bb9fd0f4af588ab5629a7d33e299719b300fdac1ba10427c39a282e682073ec94414870644efe15b", 0x54, 0x2003}, {&(0x7f0000000fc0)="46494c453000030000000000000000000100010038000300980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801060002000000000000000000000000000000000000000000000000000000000000000000000000003000000068000000e67fc500001800000002004a00000018000100050000000010050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000004000000000000000004000000000000000001000000000000020000000000000002000000000000000110102a5dbd8841dfe66c95a0c0724424cd6a5944fefc346c1daf86b42f0a33fcfa78bf0d0d0fe8e3fd377da5983f50892316d6c4f2dedb5f7eddb10ff0f931427fa4c1fc5234c1c6b6f865d079330220cf6ad435b", 0x1e0, 0x4000}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c45300003000000000000000000020000e538000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000e10004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000000440)="000000000000000000a6000000000000000000000000000000000000000002183e0554dcb08c0e703aaec8625c8a028b1926464a8597351517175b9782f5a3f868c5de1db6fa29", 0x47, 0x49e0}, {&(0x7f0000000940)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f00000005c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a00000005000000001044000000005000000000000000000000000000000000048000000000000000010000000000000001000000000000000100000000000002400490033003000110145", 0x1eb, 0x53e0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d006100700080000000480000000100400000000100000000000000000000000000000000004000000000000000001000000000000040000000000000004000000000000000110147", 0x163, 0x57e0}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000050000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000000000000000000b2000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000000032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c00000049004900180014000000000030000004000000000000de4202010000a0ddde42e60000000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000e3ff00003dbf84654aa16a0000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000015002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400"/789, 0x315, 0x63e0}, {&(0x7f0000011520)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000000002000000000000000200000000000000020000000000212089", 0x163, 0x67e0}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc380}, {&(0x7f0000000080)="7db0692359c021", 0x7, 0x10000}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ed8d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003300000000000000000000000000100000000200"/1741, 0x6cd, 0x45000}, {&(0x7f000001b200)="10", 0x1, 0x46080}, {&(0x7f00000007c0)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964004000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22bd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745e531edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b48b5e8d1228cb0600000000000000", 0x14e, 0x46ffa}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000001000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x48000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fe5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045df}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) 00:04:36 executing program 2: r0 = socket$kcm(0x10, 0x2, 0x10) sendmsg$kcm(r0, &(0x7f0000000180)={0x0, 0x8782559fc2aff2e2, &(0x7f0000000080)=[{&(0x7f0000000040)="e03f03002800050ad25a802e8c63940d0424fc600c00184002ac0f0006ac0f0037153e370a00038004000008d1bd", 0x33fe0}], 0x1}, 0x0) (async) r1 = dup(r0) sendmsg$qrtr(r1, &(0x7f0000000580)={&(0x7f0000000000)={0x2a, 0x3, 0x7ffe}, 0xc, &(0x7f0000000140)=[{&(0x7f00000000c0)="8a8eb11d6657dceb0ee7debe382e5d79319f521475dc0b76abce69d6126a2e8e6c020a5b6b99a24aca7ff20dc6ff056595b6173f9ccf767253662afeb3a9b9b034bfac4a673dd594d5fba7b933c276a0446a42676df8da6720b6f73bd01ea9459e4b11b99f18b2b4464d920e510ae8c7cc6741fc7fc41f", 0x77}], 0x1, &(0x7f00000001c0)=[{0x78, 0x110, 0xffffffff, "b2e0ce699c19fc106f000840ac8ab6ff0ee992f87fb721efef6070153d59f99ee78be4ca473a6a83dc7a3fafd663a3204c660273d08c1aecb0e5cfa9c2fa51232e501811c9bb5a598861c8008b0afb3c33942831eef187e41b0fb146d94689cc8414"}, {0x100, 0x102, 0x8, "16ade45d02c335010ee00754fc4d8bb48cfad83a75f7954e6b1c4eafb9aa7d8096cf994e7150480a5060731e848207435db3b3b4e7e0b60c508358da627b6fc3016cbe70423df5c54c743c7dee471468f5aaf3d98fdcfc142975f88f214aba9f33b9f3f929a828e1193c70b25c5cefeef81354b805d29de8d4c4c04bc715c827e849b43d167e4bad88e93f27d72eef124e90a88d3e691cdb870bf937c9af4ac7bac3326952469fd11e1eb889fe2a2c314592fe76d6e78d6c51f455280f19dab418f4f52b9e785b6030cd61314a03608c1aa042aac556e5ce0a9641767cde4ebc4bb8b0dcd0b8e14f344fc363f98fe2"}, {0xe8, 0x11, 0x79c, "5694ecc220b504fc3d1bd7602a25fc8a6577d234e2bfd5efd9cf1971917bbce6f58a9ecb8307c75948d6fc7466ca276069d16c40e0d6fa77b759ffec143bc8fa38f87fceb28877a69237208e86807a52ac57e2900f41c6597b081a672baf6c6f8291c3d431e9e0958d478be57bb6338906abd96bbc9910cfe4389006a0516bce2b8efb42036ef05f2eb1a106bee72feed93418d28254e35787e0fe3dba4ee8448c6ce50651eb5f1eff92d047da3bb4b2e8fe6ef712220108fe2742478b51e12f2942946e98b38ad9def79d85a82112ff6dae65ec6eb7"}, {0x28, 0x111, 0x100, "6aa188996462c0bcd7324f3b264da6ab20560af21a62bc"}, {0x88, 0x10d, 0x7f, "616edc55bb676fa6e6688936c6a9291c1953eb8821e51e9b95a8d804a427a99886df2156dc42eafdac676dcbc53360c6d42bf5aa61e7c630c024afc232d2f74bdc122e0be08beedd9c20e30aea3e59143b54fbbbdba768daac0fe40e0047f83df39fc81cb1092947330469bc0e464fce0923558c2296f7"}, {0x98, 0x115, 0x3ff, "202d42e0671470ef5033d159f5b623d73fe4bef18a17c2916a49f71a3f41c425957da64ab1f7ccd78ba1d5dab145c4effbfca6f9bcd3cad5fda29da2b0051c2ab026095b84fb033e8b18318d81ec6b90ab7bdf7249686dda1535d54d3522f424252a914dd7aea8af78e829b9313126a3ccdd975f3d4973f0fdf172da1a3d5c6da95c"}], 0x3a8}, 0x38) 00:04:36 executing program 3: r0 = bpf$BPF_LINK_CREATE_XDP(0x1c, &(0x7f0000000140)={0xffffffffffffffff, 0x0, 0x25, 0x10}, 0x10) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f0000000180)={0x7, 0x3, 0x4, 0x401, 0x1, [{0x4b, 0x1, 0xfffffffffffffffb, '\x00', 0x210c}]}) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x8100000, 0x5, &(0x7f0000000200)=[{&(0x7f0000012e00)="ed41000000081b00d8f4655fd8f4655fd8f4655f00000000000004000400000000000800050000000af301000400000000000000000000000100000003", 0x3d, 0x3b6}, {&(0x7f0000010000)="200000008000000006000038600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef", 0x3a, 0x400}, {&(0x7f0000010400)="020000002e00000022", 0x9, 0x800}, {&(0x7f0000000280)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3adabf2fcb32ccad7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2502ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x842, 0x1000}, {&(0x7f0000013200)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000040)={[{@usrjquota}, {@init_itable}, {@auto_da_alloc_val}, {@noblock_validity}, {@journal_async_commit}, {}, {@jqfmt_vfsv1}, {@noload}, {@orlov}, {@errors_continue}]}, 0x0) 00:04:36 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="02030002120000000000000000000000051c0600000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 276.561090][T13806] loop4: detected capacity change from 0 to 8226 00:04:36 executing program 5: syz_mount_image$cramfs(&(0x7f0000000000), &(0x7f0000000100)='./file1\x00', 0x35cd, 0x0, &(0x7f00000011c0), 0x0, &(0x7f00000101a0), 0xfe) 00:04:36 executing program 0: ioprio_get$pid(0x0, 0x0) [ 276.578064][T13809] netlink: 207496 bytes leftover after parsing attributes in process `syz-executor.2'. [ 276.581835][T13811] loop3: detected capacity change from 0 to 264192 [ 276.584119][T13811] EXT4-fs: Ignoring removed orlov option [ 276.585035][T13813] loop5: detected capacity change from 0 to 26 [ 276.591284][T13811] EXT4-fs (loop3): can't mount with journal_checksum, fs mounted w/o journal [ 276.593603][T13813] MTD: Attempt to mount non-MTD device "/dev/loop5" [ 276.605230][T13813] cramfs: wrong magic 00:04:36 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000700000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:36 executing program 0: ioprio_get$pid(0x0, 0x0) 00:04:36 executing program 4: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) sched_setscheduler(0x0, 0x1, &(0x7f0000000080)=0x7) r0 = getpid() sched_setaffinity(0x0, 0x8, &(0x7f00000002c0)=0x2) sched_setscheduler(r0, 0x2, &(0x7f0000000200)=0x4) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f0000000180)=@file={0x0, './file0\x00'}, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) sched_setattr(r0, &(0x7f0000000280)={0x38, 0x0, 0x6, 0x10001, 0x1, 0x0, 0x8, 0x8, 0x8, 0x9}, 0x0) sched_setaffinity(0x0, 0x8, &(0x7f00000003c0)=0xae) mkdirat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040)='./cgroup.net/syz1\x00', 0x1ff) openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040), 0x200002, 0x0) write$cgroup_devices(0xffffffffffffffff, 0x0, 0x9) r3 = socket$inet_tcp(0x2, 0x1, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r4, &(0x7f000057eff8)=@abs, 0x6e) recvmmsg(r4, &(0x7f00000000c0), 0x10106, 0x2, 0x0) setsockopt$SO_ATTACH_FILTER(r4, 0x1, 0x1a, &(0x7f0000000340)={0x1, &(0x7f0000000000)=[{0x6, 0x4, 0x0, 0x1}]}, 0x10) bind$inet(r3, &(0x7f0000000240)={0x2, 0x4e20, @multicast2}, 0x10) recvfrom(r3, &(0x7f0000000480)=""/110, 0xfffffe32, 0x700, 0x0, 0xfffffffffffffecb) 00:04:36 executing program 5: syz_mount_image$cramfs(&(0x7f0000000000), &(0x7f0000000100)='./file1\x00', 0x35cd, 0x0, &(0x7f00000011c0), 0x0, &(0x7f00000101a0), 0xfe) 00:04:36 executing program 2: r0 = socket$kcm(0x10, 0x2, 0x10) sendmsg$kcm(r0, &(0x7f0000000180)={0x0, 0x8782559fc2aff2e2, &(0x7f0000000080)=[{&(0x7f0000000040)="e03f03002800050ad25a802e8c63940d0424fc600c00184002ac0f0006ac0f0037153e370a00038004000008d1bd", 0x33fe0}], 0x1}, 0x0) r1 = dup(r0) sendmsg$qrtr(r1, &(0x7f0000000580)={&(0x7f0000000000)={0x2a, 0x3, 0x7ffe}, 0xc, &(0x7f0000000140)=[{&(0x7f00000000c0)="8a8eb11d6657dceb0ee7debe382e5d79319f521475dc0b76abce69d6126a2e8e6c020a5b6b99a24aca7ff20dc6ff056595b6173f9ccf767253662afeb3a9b9b034bfac4a673dd594d5fba7b933c276a0446a42676df8da6720b6f73bd01ea9459e4b11b99f18b2b4464d920e510ae8c7cc6741fc7fc41f", 0x77}], 0x1, &(0x7f00000001c0)=[{0x78, 0x110, 0xffffffff, "b2e0ce699c19fc106f000840ac8ab6ff0ee992f87fb721efef6070153d59f99ee78be4ca473a6a83dc7a3fafd663a3204c660273d08c1aecb0e5cfa9c2fa51232e501811c9bb5a598861c8008b0afb3c33942831eef187e41b0fb146d94689cc8414"}, {0x100, 0x102, 0x8, "16ade45d02c335010ee00754fc4d8bb48cfad83a75f7954e6b1c4eafb9aa7d8096cf994e7150480a5060731e848207435db3b3b4e7e0b60c508358da627b6fc3016cbe70423df5c54c743c7dee471468f5aaf3d98fdcfc142975f88f214aba9f33b9f3f929a828e1193c70b25c5cefeef81354b805d29de8d4c4c04bc715c827e849b43d167e4bad88e93f27d72eef124e90a88d3e691cdb870bf937c9af4ac7bac3326952469fd11e1eb889fe2a2c314592fe76d6e78d6c51f455280f19dab418f4f52b9e785b6030cd61314a03608c1aa042aac556e5ce0a9641767cde4ebc4bb8b0dcd0b8e14f344fc363f98fe2"}, {0xe8, 0x11, 0x79c, "5694ecc220b504fc3d1bd7602a25fc8a6577d234e2bfd5efd9cf1971917bbce6f58a9ecb8307c75948d6fc7466ca276069d16c40e0d6fa77b759ffec143bc8fa38f87fceb28877a69237208e86807a52ac57e2900f41c6597b081a672baf6c6f8291c3d431e9e0958d478be57bb6338906abd96bbc9910cfe4389006a0516bce2b8efb42036ef05f2eb1a106bee72feed93418d28254e35787e0fe3dba4ee8448c6ce50651eb5f1eff92d047da3bb4b2e8fe6ef712220108fe2742478b51e12f2942946e98b38ad9def79d85a82112ff6dae65ec6eb7"}, {0x28, 0x111, 0x100, "6aa188996462c0bcd7324f3b264da6ab20560af21a62bc"}, {0x88, 0x10d, 0x7f, "616edc55bb676fa6e6688936c6a9291c1953eb8821e51e9b95a8d804a427a99886df2156dc42eafdac676dcbc53360c6d42bf5aa61e7c630c024afc232d2f74bdc122e0be08beedd9c20e30aea3e59143b54fbbbdba768daac0fe40e0047f83df39fc81cb1092947330469bc0e464fce0923558c2296f7"}, {0x98, 0x115, 0x3ff, "202d42e0671470ef5033d159f5b623d73fe4bef18a17c2916a49f71a3f41c425957da64ab1f7ccd78ba1d5dab145c4effbfca6f9bcd3cad5fda29da2b0051c2ab026095b84fb033e8b18318d81ec6b90ab7bdf7249686dda1535d54d3522f424252a914dd7aea8af78e829b9313126a3ccdd975f3d4973f0fdf172da1a3d5c6da95c"}], 0x3a8}, 0x38) socket$kcm(0x10, 0x2, 0x10) (async) sendmsg$kcm(r0, &(0x7f0000000180)={0x0, 0x8782559fc2aff2e2, &(0x7f0000000080)=[{&(0x7f0000000040)="e03f03002800050ad25a802e8c63940d0424fc600c00184002ac0f0006ac0f0037153e370a00038004000008d1bd", 0x33fe0}], 0x1}, 0x0) (async) dup(r0) (async) sendmsg$qrtr(r1, &(0x7f0000000580)={&(0x7f0000000000)={0x2a, 0x3, 0x7ffe}, 0xc, &(0x7f0000000140)=[{&(0x7f00000000c0)="8a8eb11d6657dceb0ee7debe382e5d79319f521475dc0b76abce69d6126a2e8e6c020a5b6b99a24aca7ff20dc6ff056595b6173f9ccf767253662afeb3a9b9b034bfac4a673dd594d5fba7b933c276a0446a42676df8da6720b6f73bd01ea9459e4b11b99f18b2b4464d920e510ae8c7cc6741fc7fc41f", 0x77}], 0x1, &(0x7f00000001c0)=[{0x78, 0x110, 0xffffffff, "b2e0ce699c19fc106f000840ac8ab6ff0ee992f87fb721efef6070153d59f99ee78be4ca473a6a83dc7a3fafd663a3204c660273d08c1aecb0e5cfa9c2fa51232e501811c9bb5a598861c8008b0afb3c33942831eef187e41b0fb146d94689cc8414"}, {0x100, 0x102, 0x8, "16ade45d02c335010ee00754fc4d8bb48cfad83a75f7954e6b1c4eafb9aa7d8096cf994e7150480a5060731e848207435db3b3b4e7e0b60c508358da627b6fc3016cbe70423df5c54c743c7dee471468f5aaf3d98fdcfc142975f88f214aba9f33b9f3f929a828e1193c70b25c5cefeef81354b805d29de8d4c4c04bc715c827e849b43d167e4bad88e93f27d72eef124e90a88d3e691cdb870bf937c9af4ac7bac3326952469fd11e1eb889fe2a2c314592fe76d6e78d6c51f455280f19dab418f4f52b9e785b6030cd61314a03608c1aa042aac556e5ce0a9641767cde4ebc4bb8b0dcd0b8e14f344fc363f98fe2"}, {0xe8, 0x11, 0x79c, "5694ecc220b504fc3d1bd7602a25fc8a6577d234e2bfd5efd9cf1971917bbce6f58a9ecb8307c75948d6fc7466ca276069d16c40e0d6fa77b759ffec143bc8fa38f87fceb28877a69237208e86807a52ac57e2900f41c6597b081a672baf6c6f8291c3d431e9e0958d478be57bb6338906abd96bbc9910cfe4389006a0516bce2b8efb42036ef05f2eb1a106bee72feed93418d28254e35787e0fe3dba4ee8448c6ce50651eb5f1eff92d047da3bb4b2e8fe6ef712220108fe2742478b51e12f2942946e98b38ad9def79d85a82112ff6dae65ec6eb7"}, {0x28, 0x111, 0x100, "6aa188996462c0bcd7324f3b264da6ab20560af21a62bc"}, {0x88, 0x10d, 0x7f, "616edc55bb676fa6e6688936c6a9291c1953eb8821e51e9b95a8d804a427a99886df2156dc42eafdac676dcbc53360c6d42bf5aa61e7c630c024afc232d2f74bdc122e0be08beedd9c20e30aea3e59143b54fbbbdba768daac0fe40e0047f83df39fc81cb1092947330469bc0e464fce0923558c2296f7"}, {0x98, 0x115, 0x3ff, "202d42e0671470ef5033d159f5b623d73fe4bef18a17c2916a49f71a3f41c425957da64ab1f7ccd78ba1d5dab145c4effbfca6f9bcd3cad5fda29da2b0051c2ab026095b84fb033e8b18318d81ec6b90ab7bdf7249686dda1535d54d3522f424252a914dd7aea8af78e829b9313126a3ccdd975f3d4973f0fdf172da1a3d5c6da95c"}], 0x3a8}, 0x38) (async) 00:04:36 executing program 3: r0 = bpf$BPF_LINK_CREATE_XDP(0x1c, &(0x7f0000000140)={0xffffffffffffffff, 0x0, 0x25, 0x10}, 0x10) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f0000000180)={0x7, 0x3, 0x4, 0x401, 0x1, [{0x4b, 0x1, 0xfffffffffffffffb, '\x00', 0x210c}]}) (async) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x8100000, 0x5, &(0x7f0000000200)=[{&(0x7f0000012e00)="ed41000000081b00d8f4655fd8f4655fd8f4655f00000000000004000400000000000800050000000af301000400000000000000000000000100000003", 0x3d, 0x3b6}, {&(0x7f0000010000)="200000008000000006000038600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef", 0x3a, 0x400}, {&(0x7f0000010400)="020000002e00000022", 0x9, 0x800}, {&(0x7f0000000280)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3adabf2fcb32ccad7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2502ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x842, 0x1000}, {&(0x7f0000013200)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000040)={[{@usrjquota}, {@init_itable}, {@auto_da_alloc_val}, {@noblock_validity}, {@journal_async_commit}, {}, {@jqfmt_vfsv1}, {@noload}, {@orlov}, {@errors_continue}]}, 0x0) [ 276.674177][T13823] loop3: detected capacity change from 0 to 264192 00:04:36 executing program 0: ioprio_get$pid(0x2, 0x0) (fail_nth: 1) 00:04:36 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000900000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 276.687631][T13823] EXT4-fs: Ignoring removed orlov option [ 276.690422][T13825] loop5: detected capacity change from 0 to 26 [ 276.692803][T13825] MTD: Attempt to mount non-MTD device "/dev/loop5" [ 276.705901][T13830] FAULT_INJECTION: forcing a failure. [ 276.705901][T13830] name fail_usercopy, interval 1, probability 0, space 0, times 0 [ 276.709719][T13823] EXT4-fs (loop3): can't mount with journal_checksum, fs mounted w/o journal [ 276.712301][T13829] netlink: 207496 bytes leftover after parsing attributes in process `syz-executor.2'. [ 276.712765][T13825] cramfs: wrong magic [ 276.743563][T13830] CPU: 1 PID: 13830 Comm: syz-executor.0 Not tainted 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 [ 276.746348][T13830] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 276.749140][T13830] Call trace: [ 276.749982][T13830] dump_backtrace+0x1c4/0x1f0 [ 276.751181][T13830] show_stack+0x2c/0x54 [ 276.752266][T13830] dump_stack_lvl+0x104/0x16c [ 276.753519][T13830] dump_stack+0x1c/0x58 [ 276.754579][T13830] should_fail+0x1d0/0x1f4 [ 276.755592][T13830] should_fail_usercopy+0x20/0x30 [ 276.756874][T13830] simple_read_from_buffer+0xc0/0x1cc [ 276.758271][T13830] proc_fail_nth_read+0xf4/0x164 [ 276.759522][T13830] vfs_read+0x19c/0x448 [ 276.760601][T13830] ksys_read+0xb4/0x160 [ 276.761673][T13830] __arm64_sys_read+0x24/0x34 [ 276.762874][T13830] el0_svc_common+0x138/0x220 [ 276.764058][T13830] do_el0_svc+0x48/0x164 [ 276.765188][T13830] el0_svc+0x58/0x150 [ 276.766194][T13830] el0t_64_sync_handler+0x84/0xf0 [ 276.767490][T13830] el0t_64_sync+0x190/0x194 00:04:37 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001700000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:37 executing program 0: ioprio_get$pid(0x2, 0x0) 00:04:37 executing program 3: r0 = bpf$BPF_LINK_CREATE_XDP(0x1c, &(0x7f0000000140)={0xffffffffffffffff, 0x0, 0x25, 0x10}, 0x10) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f0000000180)={0x7, 0x3, 0x4, 0x401, 0x1, [{0x4b, 0x1, 0xfffffffffffffffb, '\x00', 0x210c}]}) (async) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x8100000, 0x5, &(0x7f0000000200)=[{&(0x7f0000012e00)="ed41000000081b00d8f4655fd8f4655fd8f4655f00000000000004000400000000000800050000000af301000400000000000000000000000100000003", 0x3d, 0x3b6}, {&(0x7f0000010000)="200000008000000006000038600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef", 0x3a, 0x400}, {&(0x7f0000010400)="020000002e00000022", 0x9, 0x800}, {&(0x7f0000000280)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0400000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3adabf2fcb32ccad7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2502ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x842, 0x1000}, {&(0x7f0000013200)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000040)={[{@usrjquota}, {@init_itable}, {@auto_da_alloc_val}, {@noblock_validity}, {@journal_async_commit}, {}, {@jqfmt_vfsv1}, {@noload}, {@orlov}, {@errors_continue}]}, 0x0) [ 277.353275][T13837] netlink: 207496 bytes leftover after parsing attributes in process `syz-executor.2'. 00:04:37 executing program 5: syz_mount_image$cramfs(&(0x7f0000000000), &(0x7f0000000100)='./file1\x00', 0x35cd, 0x0, &(0x7f00000011c0), 0x0, &(0x7f00000101a0), 0xfe) syz_mount_image$cramfs(&(0x7f0000000000), &(0x7f0000000100)='./file1\x00', 0x35cd, 0x0, &(0x7f00000011c0), 0x0, &(0x7f00000101a0), 0xfe) (async) 00:04:37 executing program 0: ioprio_get$pid(0x3, 0x0) 00:04:37 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001800000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 277.375282][T13847] loop3: detected capacity change from 0 to 264192 [ 277.387942][T13851] loop5: detected capacity change from 0 to 26 [ 277.391804][ T9329] I/O error, dev loop5, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 277.392394][T13851] MTD: Attempt to mount non-MTD device "/dev/loop5" [ 277.403270][T13847] EXT4-fs: Ignoring removed orlov option [ 277.405026][T13851] cramfs: wrong magic [ 277.414072][T13847] EXT4-fs (loop3): can't mount with journal_checksum, fs mounted w/o journal 00:04:37 executing program 4: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) sched_setscheduler(0x0, 0x1, &(0x7f0000000080)=0x7) (async) r0 = getpid() sched_setaffinity(0x0, 0x8, &(0x7f00000002c0)=0x2) (async) sched_setscheduler(r0, 0x2, &(0x7f0000000200)=0x4) (async, rerun: 32) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) (rerun: 32) connect$unix(r1, &(0x7f0000000180)=@file={0x0, './file0\x00'}, 0x6e) (async) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) (async) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async) sched_setattr(r0, &(0x7f0000000280)={0x38, 0x0, 0x6, 0x10001, 0x1, 0x0, 0x8, 0x8, 0x8, 0x9}, 0x0) (async, rerun: 64) sched_setaffinity(0x0, 0x8, &(0x7f00000003c0)=0xae) (async, rerun: 64) mkdirat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040)='./cgroup.net/syz1\x00', 0x1ff) openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040), 0x200002, 0x0) write$cgroup_devices(0xffffffffffffffff, 0x0, 0x9) (async) r3 = socket$inet_tcp(0x2, 0x1, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r4, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r4, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async, rerun: 32) setsockopt$SO_ATTACH_FILTER(r4, 0x1, 0x1a, &(0x7f0000000340)={0x1, &(0x7f0000000000)=[{0x6, 0x4, 0x0, 0x1}]}, 0x10) (async, rerun: 32) bind$inet(r3, &(0x7f0000000240)={0x2, 0x4e20, @multicast2}, 0x10) (async) recvfrom(r3, &(0x7f0000000480)=""/110, 0xfffffe32, 0x700, 0x0, 0xfffffffffffffecb) 00:04:37 executing program 5: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) sched_setscheduler(0x0, 0x2, &(0x7f0000000080)=0x6) sched_setaffinity(0x0, 0x8, &(0x7f0000000000)=0x5) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000000240)=0x1) socketpair$unix(0x1, 0x3, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) execveat(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = openat$loop_ctrl(0xffffff9c, &(0x7f0000000040), 0x0, 0x0) r5 = pidfd_getfd(0xffffffffffffffff, r4, 0x0) r6 = openat(0xffffffffffffff9c, &(0x7f0000000180)='./file0\x00', 0x0, 0x101) r7 = ioctl$LOOP_CTL_ADD(r5, 0x4c80, 0x1) ioctl$LOOP_CTL_ADD(r6, 0x4c80, r7) ioctl$LOOP_CTL_REMOVE(r4, 0x4c81, 0x0) sched_setscheduler(r0, 0x3, &(0x7f0000000100)=0xf2) r8 = socket$inet6(0xa, 0x3, 0xff) getrlimit(0x5, &(0x7f00000001c0)) connect$inet6(r8, &(0x7f0000000000)={0xa, 0x0, 0x0, @empty, 0x3}, 0x1c) r9 = socket$key(0xf, 0x3, 0x2) r10 = gettid() fcntl$lock(r9, 0x24, &(0x7f00000000c0)={0x0, 0x0, 0x1, 0x7541, r10}) sendmmsg(r8, &(0x7f00000092c0), 0x4ff, 0xbb8) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r2, 0x81f8943c, &(0x7f0000000600)) sendmsg$nl_route(r3, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000280)=ANY=[@ANYBLOB="28000000100001080000fbffffffffffffff0000", @ANYRES32=0x0, @ANYBLOB="040002000000000008001b000000000049584b5517807b4b9b68849b9a294e20620b160346c7cfdd9699819824533daf4401042fc0e446c1137621af67ed71fae9ccf249db2f83fd5fa4625b0bd2d6b4539ca1b129f3e191c08c395dd5cb143eb06a0b93b83c0df8807673cdccc55ef4953384f736a814fe78f7f7607936c5d7b40acff09b3e14bbd1815ef8b67d76a5aefa8f91149e6002000000e061876a231f52ad8800000000000000000000000000000000004ba48a8d7b7128fdd86f82f82d83216962b67524ce538aa6739b8717fc8efe6e422c6f4dec720debf75e0f2932dc3d9ae281d43e2655ade9e4339f32d81f3b590dfb830aa2faafb1847a5afced138650d2b2eacf523933b38727934139c1bbb467b3347e65c793242340b0bfdc260ee3be3ae5cdea3e1f71808ffc8d072131498188e5529c39774af45dbc727ac7ab46200860a98f3ecf174908be4a28c43f92ea1a00"/354], 0x28}}, 0x0) 00:04:37 executing program 2: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTOCLOSE(r0, 0x84, 0x4, &(0x7f0000000140)=0x2, 0x4) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) r1 = socket$inet6_sctp(0xa, 0x5, 0x84) sendmsg$inet_sctp(r1, &(0x7f0000000880)={&(0x7f0000000100)=@in6={0xa, 0x0, 0x0, @dev, 0x1f}, 0x1c, &(0x7f0000000740)=[{&(0x7f0000000140)="b5", 0x1}], 0x1, &(0x7f0000000080)=ANY=[@ANYBLOB="2000000000000000840000000200000000000200000000000000000002856e84cda3778ce390127363b713eb9770a909199f210ed7da1b498b5812dd12393f31ab4a57c87112b85738c633207fc0c89fc2323c96e69599d415d691d603281f2170aede45d068ff33ad", @ANYRES32=0x0], 0x20}, 0x40) r2 = dup(r1) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r2, 0x84, 0x1d, &(0x7f0000000200)=ANY=[@ANYBLOB="93825702"], &(0x7f00000001c0)=0x4) accept$inet6(r1, &(0x7f0000000000)={0xa, 0x0, 0x0, @ipv4={""/10, ""/2, @initdev}}, &(0x7f0000000040)=0x1c) 00:04:37 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001b00000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:37 executing program 3: socketpair(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$xdp(r0, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) recvfrom$inet(r1, 0x0, 0x2, 0x0, &(0x7f00000001c0)={0x2, 0x0, @empty}, 0x20000000) sendmsg$alg(r0, &(0x7f0000001880)={0x0, 0x0, &(0x7f0000001680)=[{&(0x7f0000000080)="bdc1e7b0a9dc0da8b5c5b7466f93ac72f92af05817ab21067073a889a175ba6a2e05fcf84b0f4b49bfbdace7a82917e85527f1c7c749d1f99bc725a93f449466a16e180a1e99f988fa22cb60636ee450823abf2e31e317b1ada6ee5493b1852051c6076289025117125904d3e3f87de50f053d35f8c744a483b9e97acbff9d5b947ef5d662ef60755a63b131e21cb881360d857a6c926fdcfbfaaeafdda42a5dd729e4ddf725a599f7d3088e788fa08e7e8b99bfa8cf0dab5b43ca823012d7383d7e3d0a643a38be868eef6a97580ec74e774cbb163c5f10aa77f85c", 0xdc}, {&(0x7f0000000200)="b051331555d549587baec85de6c4d8e63d3284be928dcea27fdb29400e0c561537e64a47e9fbd077b2614f89c3135f921162b04ca4ee6f006a8c2a62bd67f1bdd22e30a8c433677eca8570e71fe2f12cdf04af2e576053c1ce2bf4f311f12acf2959a8c52a10689cde4f79af1235f488746a70f5b223996bff26e6539b10074059dfb6e722ec2dd86166c219d1540187ed8e7854952687a0421e", 0x9a}, {&(0x7f00000002c0)="81c1efc7cc881106c4fbca7672cf362d88644211fe0f4301745278e19f485964630c589e5a20729513bf0ea44f81d3a1a3458c894ed08c52b66deb7834c3c6079ec27a2c491ab491adbb7e9d8c77c87849e919d0bf5881becdfbd26464c63de760491f648a41e4f9954597df339b025c6f3ec37cdae0231a3a990304f7d78d16864a0330d35032fec2451b045c836d69654d11eec72a90a613c9a7475fb9b3d15b9cf5b1997974b0fe019ba0d97b03ab2e0dd1b325fe", 0xb6}, {&(0x7f0000000000)="14133ca499e4611f3fb3ff8f42148b96b34d955aafd5346ce325d457d45c101f773b30cc8c4745138dd0453551219e8f304221c5de2dc22fbd7a", 0x3a}, {&(0x7f0000000400)="0effcd0e3348d50f4cbb470f6cb5f28a70a0a571d060ffcbdc34df99aa44eebe4fd84f95f4653e987976721dcae480161a619b6dda72046ba8bcd3485cdbd8194ea3782b71bb4b3dd566522866dd50563316550785fed23896a9ff1ba88a31864fac59f160025775f29377e645ae4fb52ee3ae2d702cc716f81f0319cb55720fbb518c042292dae24adf01999c9ba6bebe1a3fe033fad7ff6606a526d881bc6c0fdbcecff1774827059e7c3d854f6d0535f4e14b882dd54e234a2969644328e5348bed5e114617d1d7e8a6c8bd23e7", 0xcf}, {&(0x7f0000000180)="1d928fc205027fa83a067de5834dd4a25a", 0x11}, {&(0x7f0000000380)="be9abde18b821b0b1e9ebd57e0972a9d7f55505ba5a69f33f582f60f0e8f9ace4c279b95b3ec8fa8", 0x28}, {&(0x7f0000000500)="42664bd8b9b8bc2f2fad74ee706521e2d0f36740fb54f3ddce5eafc203ecb4e95f41ec7444dfeeaaaf6bfa91345575c83efa076d01595706b9c414a13c91c03c3ad1508dd77e650f2a67da16f456a4eb599ef549a4f25eee186aefe37412438d13a82368d3d28ea37af7baf743be92b6a235260e1075217b5b2b5cb72576e4a5cf109aa97113ae83ed248d23eb6c331174882b", 0x93}, {&(0x7f00000005c0)="9d0604c82052229b70fdbc974d6c7def109f4e88960d45a7eec402efb3b0ecf31236849448ceef840ddfcad1853e44e1192e46266a4598040a548fab2096869a931906f23d365136b64c96e8763e8fab2c04232f9c71e336ae45d02187de89563326abf89a5838ac6a32f410aa2f734a50d3caa285a0b4a7a600ce567a887d529d1e4e6f60737eb27aad798440fc9aab292849b2848319d748c408d77c1c40d12633be3d3c40c7867613586e3d2932df871935763e4e250ba0bf094905", 0xbd}, {&(0x7f0000000680)="cb215739d390097fc74591cb6f554970cf93ceb11533d133611bdda99d89a76b4b041597c29f775ad8f351101099137b1dde4ea48837903fc4871dfb8155f5afe914d6168b6b73419f4a677c0e292ba05446062070aa84a9eb1d57aef74fc4f3e1a41735cd445dfad6d2723060e07702eb323a9e5f9e40ff405e6ccff31818262bf92fe0c205eb57c225936fdf1a6e86009abe2ccbbff2bd46911a66d9ed87b6b1ca8160b5ecdee96ba2271ca9b5b3d87a7e50155cdd801ee1f5205321f0474521387a9260a887effcb71e60e63d8d80d2455955ed46f7cc871c07b3b769bb35690bb3cccd8fa1b895a0a49f01199c962182d964dc6f35497c8522e7090c755a7b1ccd2206e7b8529fe2265521be511f16facecc2844f52a629838f80b6aaa3d4d9df17d73181f861cc15cc91de1689515fb700f29f7f5ed2316ee597d11f26a82d7a26345c4c8507bff596e8859d45abe147cb12c80c2182cf9e85dc6b21b8a8f6cb1f503e5bcc836ffc67a17ca2152965c9cd22d1102efb07808983f7055997d475e9655851425a40f6f0679642cc6aa191ebd03ad721e6937adbec947d80b8c0463df7fed5b63bb032968d256dc97560052176efa93ccad6e92dbcd95a8c60eff1299e44c628efeabc6a59166d16073685ee4d8f8ad91438b633ef76cd72199d838978b3e7dad191d047df14714e73a8c3b503db1c650fe65c12c7e8b70cfbdcd7a73bc151ba07b7196cc177d56c52d45bf52c2bb8f5e536d39a1de9f10ef3e65692f3fa6f66fd7dc1c79f4a616d465974f76008df0684a2598d9e55eb38fc9d338ac4ff07d6b017b852c82aff07a83b84de1b16bd0691085485e07ea409f7b164d504135ff895dbdc457b30f22ea1d5d1ec728d4191ee313a86304be356d56abf35e71a56cdbe30288183252eb7377ccebe7cde5c4d9adc20af15c6e1415db812fa92876ee1268d0b3bce8f4e82c529224d4890496478113b120b7964abe3c6d35205bcbf5699f1f9ef2bb449894f9489d7238244ba2ec6a7bbabda98dfd59a24921eac3506fb6d7fb435965f2d7bb580503577efcc33f3484de6b79fdc5b1bbedf03c1b9a31f325826ae13263eb4d0de2d7513d33fc969cc4b8bc5ec278fda7d820fb49aa8b1671ce1fde6b20e33497ba567637737e8cdf8fd3e2b0db7fdf18631d06a2458509efc59af282f4d411a238141b8539faf123638f38f70a6c9751da53c96abe6f4b37db6a1c590a579949e276943760622196b5cfc25d4c70880fdb92df485a35e040dcc6456c534b68c7bb1d5666928ff1d15b062925bc6d4a192f31ab963640d80630934a31c8d32957325c29eb8f1b0b502e796e047f7799048827ba46cccd46478ec8ebd9e8e01ad83f63325ebba5e2a7b8dd6211dd15dc57def3f74d4aefb25b71f41fe96f3716785f4cce5ce1b9a76496c48a31717fdc1f3785f1b2e1b8c6689c5635481154c604d25cebcfe847a085004f008af872ea60a7c623b3cc31a85d41551e8ebe36e15c8cb019a8dbed177ab0c58cb68db9bb6c2f4695f3e48c9c915d811bf797160c1a68a1cfccf344ebca1b43256251b2a28b15f5293726b56b88ef7a0d8fbd37b257a39d0e59c811dd85d8b9092d4848bc0379221d8ba6383e3e10aa76d831b107d885db1fd0b1a55a7819c224f8fb1c1fa1730a0dd3d2930b77fddeb51a9f402597fbe19d7cff47c52064377d8bd043e977a873922974ecd8cfa8e18991ef9cd5b7cbb1fcd364b0e1efaa928721463f8b0d37b1089e399ea86bbfea304d8455e2c73eacd9bc26f7b1bc4dce6333ff4bb8462188c3bd6e498a5a207eb9735ec41201f3c08988f962cb788953ed7f064dc2fb242e28e03987673f78bc94981ff1ba88d3dfeb6e55b89b2417ffffab8b18d82b7d7674691892c412bd092b7e8d4812c07086c491b623c0206fc8fa19bd48d2f90ba4bc69fee6696e34fd75884d9fbf846267335d34bc513040acd8cf08badf8b779ee6b9e4df82aba4b7252a117de0775aef59900a3317ce12f35a515711ca6af58b7e6556ba9420120c4419cd0cbe58b68f9047cec4b66e0736d5c086369100ebc54b5bec4b7fa08a819187e26a8dcced3daaf38b96828e9f6a3ed50177acb04aabf9570945f1beb5efffda6daf07472b8d189a2d2b6f0471e90fecbbce6f11f9ea430ffcfefee24f97ff2b0629a3eaa34a7352d87a9ab8d48f8238eaf7c99a29ad07565540a95940752dd65f2025015e568ce3861c2e1f1ddacd72aefb49997bca2c365d07140d1836e86fe3a29138784cd35522bff65bd6483b9dfe6a6849456139a5497d8c5c76a5100b6d834da556f674a5b19e6c6abe35886efa3800674b861aff8edd1993865f3a9706ea176b3c9047c2a6fb593371306db2e4ccea0fbdefe23d1ca6c4754f2deaf268632b330bc45871a94184b063386f96cb6f98d44de0c6b6fd3a4ca6e814c692f7398d349dfa1e146cc9d1575a94afd9d09f6d06ee0ac9512bcad4923915427087084f318c697caafc64bd0b80d9e8faf68c507a513861ea2e39a26de22603af2de1666af396674257c21e631acd23cf6ff0a14b5e3673e83fb14a42995d2171d5bfaf954b25816c07362f54ebc7967316eb2e5db367f5c5812f87ee0a4d2852c790c388455487522d0fc461db7b69e8ba9ce9b2c13b09429fac1917d98fbb9962106b5b0acfe9320814f516b0642417592f7f72d37ed7ae2d18dee42753cda860b5c0d34637f470b72a013192850bc6b0df1595e1b0f95f546b0d163c9caffbfbf68d5a9581809961dcc6343d4946a83a3a5d37d7c82e565813b0b9aed9c1bd368af4fb3b803dfb724f6a8d52c0e4ce4dd7c404d384b302f3ef74750f7fbec057b016c7f5479bd3844398e68694679a81527345bd0acfd2659184d018c5f2b507b5e4070ae1802fafe4a7aaa4b8e68ae5bee152303ef1538ed662a9e5ab55053afdbc8e890829ff7ec23feaacd83323e9816ff940457d8ab1f9f4e443eba203231d3259eacb0223f0f133f8d71a3ae42137a2bc73886483512cf114f9daa770125d868dfd348ee2bc3a65eea75cc8a5912bab940911263f73b26e368bdd3b84377e31dec860615eca5c38fbbef5c57ba3aa4e3c9e726d5277cc371a687bf5ee6841178de2b5061c1e4bc6e45f773aad65633fd3bccf26ca16ee393dd94e55b42b88dfb42e4c6edff5c47e6eee3747bcf636f23f81567fccd88ce3f1ec8c58eab8654200951a465afe4c23e5a67c31a28d41bfd4b7d885b77949b8e7147086d0fead857f0a157b7913e942e809875cbd24a08a32e7d1977e69fc8b8fbe6a4bdec473f37e4c4e535e1c5f2ebc3d948526a5a703aa99525a54ca535579ffef49bb2c38b3fb63bcf07aef6e0475be2ce59990749884924bb5305c935f161fdbc967c588a19653dbcbbc466f8f0be21caa1660b3a9e5c3711dcd93067dff4bc8ce9d6541c0f6ba8a7d2e75a2065afe2151517065dce445be26e38d524a4348e7478d0c6732949025c59b623c2e1296d264af8a52f4d8c9ebf7a6c93762a0741a119cbed1bf4aa3a6022fdf0c04e9a1fe65aee3aafab33205fb9bf8d3a8a5c1bcdfa871b60a387776c637f6d9be7577f75208c9cefa24b18e799ac50c635f8256782d981a9c55553771e7943f7df6315a18c10a5ce45d48386cd48dc3a3f0c1ca459248189bc5b225cc0aced489dd50a23898b58878c702ff51464e91d53d3cfc55dcd6bc6ff9f13426de976239db0d6789cb0d9f7e7006328e550c733f1d3ab1e1ed4e757ba266137b6515033d03ce0666af25a6dad1d5452e5a92a81974b73722e4141c4232eeec719b90d3f02ad87febb71fd53b013c38152e286a864a45a025746fa3bfc6af47e116d5c14a225d83cb69c4af24a61df5a916c8545027ed3d42760d11e0f10d57ceb3e02e2609fc3cc0a2c76966c85ccae575e14d428fc7dd829d2d1489c3139463c5f831ce679a87388352c0f2a9abe5c93e042ef426f16ce6bb49e05bdcd9b7ab97e68cf1c2d7bc04dd90d8ee58257c0288d5cd7d5645870e4449ea1012aab61861980b31922709863bc93b581d1b32f1a497b1c5766aa88cf1fef8890de149594f9371767cba6e9ee21d969026d277eca027504a4d4b94378778931f888682aca23f4e5b48a5976f058ed9a86373fe91e461a093fc6d19e52a231925262028a44bbac16556093c5dc78c17c6dc8548413beee54df019213a17f0d2d09ebe2cb2049d2ce045762b39b6e90727511265783daa34d769fe27ea90f166457781e9b1ef86575f32449854a329b6f6a3622a2561ba5d2d71d2cada25e388602052d9f95b17e7a740b1182ff20209f9ce813978f0174274174fe21544ea855483cf70812b7a32418af8551c710e3eb924c8d05e74cf482c65dde858c2af4f2391ff27abe194dab71f54aa36f2ef449d4218a552113441b1f34e07b2f7f2d373cf94e16ae87e56263c6ebdb156bff91c3b9c5be31f5cf7d1f9d3329b37fdb9ece55e445e81e0a5467ca8645642e35df068c1f2563966e23f1d13ea29b81d299e5a8840085fb8eb7de39fa6b29ab39be02726716ff2dc90fea2525e193484fc11b811ab27d99e28c05b58a3ec48b76e43d6d14d81bf77dd4a1bf65718882b64aa8d648dca8d40e838a67064d71037cb381abcb04444989fcc176a667d68bf6ce9e490d3c6b535aa8805f0bd82f9fa1e899c59670821c69e32ece0d78c9e96c2d0a81662504db16265d29a1a4bd9f40e2c72787886497fcb592ec83acb2982ee2fc77c97843ea2f55229a29d8b202b15187f5ce59c8d2ed66a7efcd74863077807b1d77c6b4a4203a94c7a868a04b7e47c1eb55d206e16727c18a95479fb371bd5f6f347f3c9ab4dbaa8b5d7102c10eb12116261cc344f5dfb8c04b7a89f2cf46f9a1fda53ee44987567279926f2f37647ba8d79e5a0117e61e78c2c97b1933da9c2707fc10364530db810f14137ca1423e430fd4b4e29e9760cef902a65dbd7f7c9597defc10dd326efb2655da661d4c81e8bf6722b2dd3e5a5c0558efa295cf2584360fbfe05fef6d554c82e098086486f2dd10fb59a829ba1272bd572cbcbbd48c80c6ca64ea6e3a8171a8d76a6bd13e20d8e9ffb8289cc63fa85ab3d403a85ad5b2a680da1dffe9dc61cdef5e0799292f2a2f93e9cd06724f47cc36fa88c366a595540b475d6161c962bca4b6d004688eb4f6d828db61bf82e8fcb748a0c684c8f36899aa057fc746dc5c58739f0409ec651bbc312d8b297910e99bf7c337d11390e42610e067c50363aa997e3ca36883f71ec8830f58bc36ed99118c66645db9cf76263f637bacfa53d8257aaaf78461e549e1dfa354ce0ebab293ef0b7fa82288e7f2bf470651e7045d20ec2cb3fb9bbafb656a44df139d9db1d7bd0002e505e94552b16abb7844c72f04296098418c9b253d78f03a049336dfcb206923f5a1a54aaaddd5bddf34414738de10fa28e954acbe38398c2d90030a2b9da504b7770d81ce0e4bb2f3cc8d195e2097855425e9f6e01ac6df7680443859d62ca5e2265b8582ee924d658e27676be8d32288fd261760752a7c2f7f323c9600d3da95deb3c9d1fe5f289b6127a69bf82b67ee1c516800865fa86c4af38ef487668b8bd364b905eb9640155351c2ec5d494b2d9f6d59b7137788578277f9db00feb7c0e04aabc2e8cd9410649f8de49fd4385fb39bc6678d6735064231e38b97380a56b8e111e4a6bb4de02b7fbd7392a03c85ce3f5c2ce89f0fc69d519e5ff0331655e940f9efbee19b518d2ffce10f118", 0x1000}], 0xa, &(0x7f0000001740)=[@iv={0x80, 0x117, 0x2, 0x66, "a9789343b0e423837f40ccf5988bb5b72a9cbcb13a75a4c7c629766f5866a3d4965367cd846f794e64d8d8fb0c850bd9b7aa87743f5dd7048da36fd76ee20449b4c961ef9156ccbe3efcd198a2599e7400a3424b31324d0624aa398cf3746df3b084c6fd84b7"}, @op={0x18}, @iv={0x58, 0x117, 0x2, 0x3e, "08c4ae3550da118199701d2020b6ec8b3720a8b156833bbeb7aaf90864da0b2d2321e864984de18d2ed0c208faaa5f2f892c2f2189f6d1f98bd7510aff0c"}, @assoc={0x18, 0x117, 0x4, 0x8}, @assoc={0x18, 0x117, 0x4, 0x6}, @op={0x18, 0x117, 0x3, 0x1}], 0x138, 0x1}, 0x4) 00:04:37 executing program 0: ioprio_get$pid(0x2, 0x0) r0 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@getnexthop={0x24, 0x6a, 0x300, 0x70bd25, 0x25dfdbfb, {}, [@NHA_GROUPS={0x4}, @NHA_OIF={0x8}]}, 0x24}, 0x1, 0x0, 0x0, 0x4000000}, 0x4) 00:04:37 executing program 0: ioprio_get$pid(0x2, 0x0) r0 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@getnexthop={0x24, 0x6a, 0x300, 0x70bd25, 0x25dfdbfb, {}, [@NHA_GROUPS={0x4}, @NHA_OIF={0x8}]}, 0x24}, 0x1, 0x0, 0x0, 0x4000000}, 0x4) ioprio_get$pid(0x2, 0x0) (async) openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) (async) sendmsg$nl_route(r0, &(0x7f0000000100)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@getnexthop={0x24, 0x6a, 0x300, 0x70bd25, 0x25dfdbfb, {}, [@NHA_GROUPS={0x4}, @NHA_OIF={0x8}]}, 0x24}, 0x1, 0x0, 0x0, 0x4000000}, 0x4) (async) 00:04:37 executing program 3: socketpair(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$xdp(r0, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) recvfrom$inet(r1, 0x0, 0x2, 0x0, &(0x7f00000001c0)={0x2, 0x0, @empty}, 0x20000000) sendmsg$alg(r0, &(0x7f0000001880)={0x0, 0x0, &(0x7f0000001680)=[{&(0x7f0000000080)="bdc1e7b0a9dc0da8b5c5b7466f93ac72f92af05817ab21067073a889a175ba6a2e05fcf84b0f4b49bfbdace7a82917e85527f1c7c749d1f99bc725a93f449466a16e180a1e99f988fa22cb60636ee450823abf2e31e317b1ada6ee5493b1852051c6076289025117125904d3e3f87de50f053d35f8c744a483b9e97acbff9d5b947ef5d662ef60755a63b131e21cb881360d857a6c926fdcfbfaaeafdda42a5dd729e4ddf725a599f7d3088e788fa08e7e8b99bfa8cf0dab5b43ca823012d7383d7e3d0a643a38be868eef6a97580ec74e774cbb163c5f10aa77f85c", 0xdc}, {&(0x7f0000000200)="b051331555d549587baec85de6c4d8e63d3284be928dcea27fdb29400e0c561537e64a47e9fbd077b2614f89c3135f921162b04ca4ee6f006a8c2a62bd67f1bdd22e30a8c433677eca8570e71fe2f12cdf04af2e576053c1ce2bf4f311f12acf2959a8c52a10689cde4f79af1235f488746a70f5b223996bff26e6539b10074059dfb6e722ec2dd86166c219d1540187ed8e7854952687a0421e", 0x9a}, {&(0x7f00000002c0)="81c1efc7cc881106c4fbca7672cf362d88644211fe0f4301745278e19f485964630c589e5a20729513bf0ea44f81d3a1a3458c894ed08c52b66deb7834c3c6079ec27a2c491ab491adbb7e9d8c77c87849e919d0bf5881becdfbd26464c63de760491f648a41e4f9954597df339b025c6f3ec37cdae0231a3a990304f7d78d16864a0330d35032fec2451b045c836d69654d11eec72a90a613c9a7475fb9b3d15b9cf5b1997974b0fe019ba0d97b03ab2e0dd1b325fe", 0xb6}, {&(0x7f0000000000)="14133ca499e4611f3fb3ff8f42148b96b34d955aafd5346ce325d457d45c101f773b30cc8c4745138dd0453551219e8f304221c5de2dc22fbd7a", 0x3a}, {&(0x7f0000000400)="0effcd0e3348d50f4cbb470f6cb5f28a70a0a571d060ffcbdc34df99aa44eebe4fd84f95f4653e987976721dcae480161a619b6dda72046ba8bcd3485cdbd8194ea3782b71bb4b3dd566522866dd50563316550785fed23896a9ff1ba88a31864fac59f160025775f29377e645ae4fb52ee3ae2d702cc716f81f0319cb55720fbb518c042292dae24adf01999c9ba6bebe1a3fe033fad7ff6606a526d881bc6c0fdbcecff1774827059e7c3d854f6d0535f4e14b882dd54e234a2969644328e5348bed5e114617d1d7e8a6c8bd23e7", 0xcf}, {&(0x7f0000000180)="1d928fc205027fa83a067de5834dd4a25a", 0x11}, {&(0x7f0000000380)="be9abde18b821b0b1e9ebd57e0972a9d7f55505ba5a69f33f582f60f0e8f9ace4c279b95b3ec8fa8", 0x28}, {&(0x7f0000000500)="42664bd8b9b8bc2f2fad74ee706521e2d0f36740fb54f3ddce5eafc203ecb4e95f41ec7444dfeeaaaf6bfa91345575c83efa076d01595706b9c414a13c91c03c3ad1508dd77e650f2a67da16f456a4eb599ef549a4f25eee186aefe37412438d13a82368d3d28ea37af7baf743be92b6a235260e1075217b5b2b5cb72576e4a5cf109aa97113ae83ed248d23eb6c331174882b", 0x93}, {&(0x7f00000005c0)="9d0604c82052229b70fdbc974d6c7def109f4e88960d45a7eec402efb3b0ecf31236849448ceef840ddfcad1853e44e1192e46266a4598040a548fab2096869a931906f23d365136b64c96e8763e8fab2c04232f9c71e336ae45d02187de89563326abf89a5838ac6a32f410aa2f734a50d3caa285a0b4a7a600ce567a887d529d1e4e6f60737eb27aad798440fc9aab292849b2848319d748c408d77c1c40d12633be3d3c40c7867613586e3d2932df871935763e4e250ba0bf094905", 0xbd}, {&(0x7f0000000680)="cb215739d390097fc74591cb6f554970cf93ceb11533d133611bdda99d89a76b4b041597c29f775ad8f351101099137b1dde4ea48837903fc4871dfb8155f5afe914d6168b6b73419f4a677c0e292ba05446062070aa84a9eb1d57aef74fc4f3e1a41735cd445dfad6d2723060e07702eb323a9e5f9e40ff405e6ccff31818262bf92fe0c205eb57c225936fdf1a6e86009abe2ccbbff2bd46911a66d9ed87b6b1ca8160b5ecdee96ba2271ca9b5b3d87a7e50155cdd801ee1f5205321f0474521387a9260a887effcb71e60e63d8d80d2455955ed46f7cc871c07b3b769bb35690bb3cccd8fa1b895a0a49f01199c962182d964dc6f35497c8522e7090c755a7b1ccd2206e7b8529fe2265521be511f16facecc2844f52a629838f80b6aaa3d4d9df17d73181f861cc15cc91de1689515fb700f29f7f5ed2316ee597d11f26a82d7a26345c4c8507bff596e8859d45abe147cb12c80c2182cf9e85dc6b21b8a8f6cb1f503e5bcc836ffc67a17ca2152965c9cd22d1102efb07808983f7055997d475e9655851425a40f6f0679642cc6aa191ebd03ad721e6937adbec947d80b8c0463df7fed5b63bb032968d256dc97560052176efa93ccad6e92dbcd95a8c60eff1299e44c628efeabc6a59166d16073685ee4d8f8ad91438b633ef76cd72199d838978b3e7dad191d047df14714e73a8c3b503db1c650fe65c12c7e8b70cfbdcd7a73bc151ba07b7196cc177d56c52d45bf52c2bb8f5e536d39a1de9f10ef3e65692f3fa6f66fd7dc1c79f4a616d465974f76008df0684a2598d9e55eb38fc9d338ac4ff07d6b017b852c82aff07a83b84de1b16bd0691085485e07ea409f7b164d504135ff895dbdc457b30f22ea1d5d1ec728d4191ee313a86304be356d56abf35e71a56cdbe30288183252eb7377ccebe7cde5c4d9adc20af15c6e1415db812fa92876ee1268d0b3bce8f4e82c529224d4890496478113b120b7964abe3c6d35205bcbf5699f1f9ef2bb449894f9489d7238244ba2ec6a7bbabda98dfd59a24921eac3506fb6d7fb435965f2d7bb580503577efcc33f3484de6b79fdc5b1bbedf03c1b9a31f325826ae13263eb4d0de2d7513d33fc969cc4b8bc5ec278fda7d820fb49aa8b1671ce1fde6b20e33497ba567637737e8cdf8fd3e2b0db7fdf18631d06a2458509efc59af282f4d411a238141b8539faf123638f38f70a6c9751da53c96abe6f4b37db6a1c590a579949e276943760622196b5cfc25d4c70880fdb92df485a35e040dcc6456c534b68c7bb1d5666928ff1d15b062925bc6d4a192f31ab963640d80630934a31c8d32957325c29eb8f1b0b502e796e047f7799048827ba46cccd46478ec8ebd9e8e01ad83f63325ebba5e2a7b8dd6211dd15dc57def3f74d4aefb25b71f41fe96f3716785f4cce5ce1b9a76496c48a31717fdc1f3785f1b2e1b8c6689c5635481154c604d25cebcfe847a085004f008af872ea60a7c623b3cc31a85d41551e8ebe36e15c8cb019a8dbed177ab0c58cb68db9bb6c2f4695f3e48c9c915d811bf797160c1a68a1cfccf344ebca1b43256251b2a28b15f5293726b56b88ef7a0d8fbd37b257a39d0e59c811dd85d8b9092d4848bc0379221d8ba6383e3e10aa76d831b107d885db1fd0b1a55a7819c224f8fb1c1fa1730a0dd3d2930b77fddeb51a9f402597fbe19d7cff47c52064377d8bd043e977a873922974ecd8cfa8e18991ef9cd5b7cbb1fcd364b0e1efaa928721463f8b0d37b1089e399ea86bbfea304d8455e2c73eacd9bc26f7b1bc4dce6333ff4bb8462188c3bd6e498a5a207eb9735ec41201f3c08988f962cb788953ed7f064dc2fb242e28e03987673f78bc94981ff1ba88d3dfeb6e55b89b2417ffffab8b18d82b7d7674691892c412bd092b7e8d4812c07086c491b623c0206fc8fa19bd48d2f90ba4bc69fee6696e34fd75884d9fbf846267335d34bc513040acd8cf08badf8b779ee6b9e4df82aba4b7252a117de0775aef59900a3317ce12f35a515711ca6af58b7e6556ba9420120c4419cd0cbe58b68f9047cec4b66e0736d5c086369100ebc54b5bec4b7fa08a819187e26a8dcced3daaf38b96828e9f6a3ed50177acb04aabf9570945f1beb5efffda6daf07472b8d189a2d2b6f0471e90fecbbce6f11f9ea430ffcfefee24f97ff2b0629a3eaa34a7352d87a9ab8d48f8238eaf7c99a29ad07565540a95940752dd65f2025015e568ce3861c2e1f1ddacd72aefb49997bca2c365d07140d1836e86fe3a29138784cd35522bff65bd6483b9dfe6a6849456139a5497d8c5c76a5100b6d834da556f674a5b19e6c6abe35886efa3800674b861aff8edd1993865f3a9706ea176b3c9047c2a6fb593371306db2e4ccea0fbdefe23d1ca6c4754f2deaf268632b330bc45871a94184b063386f96cb6f98d44de0c6b6fd3a4ca6e814c692f7398d349dfa1e146cc9d1575a94afd9d09f6d06ee0ac9512bcad4923915427087084f318c697caafc64bd0b80d9e8faf68c507a513861ea2e39a26de22603af2de1666af396674257c21e631acd23cf6ff0a14b5e3673e83fb14a42995d2171d5bfaf954b25816c07362f54ebc7967316eb2e5db367f5c5812f87ee0a4d2852c790c388455487522d0fc461db7b69e8ba9ce9b2c13b09429fac1917d98fbb9962106b5b0acfe9320814f516b0642417592f7f72d37ed7ae2d18dee42753cda860b5c0d34637f470b72a013192850bc6b0df1595e1b0f95f546b0d163c9caffbfbf68d5a9581809961dcc6343d4946a83a3a5d37d7c82e565813b0b9aed9c1bd368af4fb3b803dfb724f6a8d52c0e4ce4dd7c404d384b302f3ef74750f7fbec057b016c7f5479bd3844398e68694679a81527345bd0acfd2659184d018c5f2b507b5e4070ae1802fafe4a7aaa4b8e68ae5bee152303ef1538ed662a9e5ab55053afdbc8e890829ff7ec23feaacd83323e9816ff940457d8ab1f9f4e443eba203231d3259eacb0223f0f133f8d71a3ae42137a2bc73886483512cf114f9daa770125d868dfd348ee2bc3a65eea75cc8a5912bab940911263f73b26e368bdd3b84377e31dec860615eca5c38fbbef5c57ba3aa4e3c9e726d5277cc371a687bf5ee6841178de2b5061c1e4bc6e45f773aad65633fd3bccf26ca16ee393dd94e55b42b88dfb42e4c6edff5c47e6eee3747bcf636f23f81567fccd88ce3f1ec8c58eab8654200951a465afe4c23e5a67c31a28d41bfd4b7d885b77949b8e7147086d0fead857f0a157b7913e942e809875cbd24a08a32e7d1977e69fc8b8fbe6a4bdec473f37e4c4e535e1c5f2ebc3d948526a5a703aa99525a54ca535579ffef49bb2c38b3fb63bcf07aef6e0475be2ce59990749884924bb5305c935f161fdbc967c588a19653dbcbbc466f8f0be21caa1660b3a9e5c3711dcd93067dff4bc8ce9d6541c0f6ba8a7d2e75a2065afe2151517065dce445be26e38d524a4348e7478d0c6732949025c59b623c2e1296d264af8a52f4d8c9ebf7a6c93762a0741a119cbed1bf4aa3a6022fdf0c04e9a1fe65aee3aafab33205fb9bf8d3a8a5c1bcdfa871b60a387776c637f6d9be7577f75208c9cefa24b18e799ac50c635f8256782d981a9c55553771e7943f7df6315a18c10a5ce45d48386cd48dc3a3f0c1ca459248189bc5b225cc0aced489dd50a23898b58878c702ff51464e91d53d3cfc55dcd6bc6ff9f13426de976239db0d6789cb0d9f7e7006328e550c733f1d3ab1e1ed4e757ba266137b6515033d03ce0666af25a6dad1d5452e5a92a81974b73722e4141c4232eeec719b90d3f02ad87febb71fd53b013c38152e286a864a45a025746fa3bfc6af47e116d5c14a225d83cb69c4af24a61df5a916c8545027ed3d42760d11e0f10d57ceb3e02e2609fc3cc0a2c76966c85ccae575e14d428fc7dd829d2d1489c3139463c5f831ce679a87388352c0f2a9abe5c93e042ef426f16ce6bb49e05bdcd9b7ab97e68cf1c2d7bc04dd90d8ee58257c0288d5cd7d5645870e4449ea1012aab61861980b31922709863bc93b581d1b32f1a497b1c5766aa88cf1fef8890de149594f9371767cba6e9ee21d969026d277eca027504a4d4b94378778931f888682aca23f4e5b48a5976f058ed9a86373fe91e461a093fc6d19e52a231925262028a44bbac16556093c5dc78c17c6dc8548413beee54df019213a17f0d2d09ebe2cb2049d2ce045762b39b6e90727511265783daa34d769fe27ea90f166457781e9b1ef86575f32449854a329b6f6a3622a2561ba5d2d71d2cada25e388602052d9f95b17e7a740b1182ff20209f9ce813978f0174274174fe21544ea855483cf70812b7a32418af8551c710e3eb924c8d05e74cf482c65dde858c2af4f2391ff27abe194dab71f54aa36f2ef449d4218a552113441b1f34e07b2f7f2d373cf94e16ae87e56263c6ebdb156bff91c3b9c5be31f5cf7d1f9d3329b37fdb9ece55e445e81e0a5467ca8645642e35df068c1f2563966e23f1d13ea29b81d299e5a8840085fb8eb7de39fa6b29ab39be02726716ff2dc90fea2525e193484fc11b811ab27d99e28c05b58a3ec48b76e43d6d14d81bf77dd4a1bf65718882b64aa8d648dca8d40e838a67064d71037cb381abcb04444989fcc176a667d68bf6ce9e490d3c6b535aa8805f0bd82f9fa1e899c59670821c69e32ece0d78c9e96c2d0a81662504db16265d29a1a4bd9f40e2c72787886497fcb592ec83acb2982ee2fc77c97843ea2f55229a29d8b202b15187f5ce59c8d2ed66a7efcd74863077807b1d77c6b4a4203a94c7a868a04b7e47c1eb55d206e16727c18a95479fb371bd5f6f347f3c9ab4dbaa8b5d7102c10eb12116261cc344f5dfb8c04b7a89f2cf46f9a1fda53ee44987567279926f2f37647ba8d79e5a0117e61e78c2c97b1933da9c2707fc10364530db810f14137ca1423e430fd4b4e29e9760cef902a65dbd7f7c9597defc10dd326efb2655da661d4c81e8bf6722b2dd3e5a5c0558efa295cf2584360fbfe05fef6d554c82e098086486f2dd10fb59a829ba1272bd572cbcbbd48c80c6ca64ea6e3a8171a8d76a6bd13e20d8e9ffb8289cc63fa85ab3d403a85ad5b2a680da1dffe9dc61cdef5e0799292f2a2f93e9cd06724f47cc36fa88c366a595540b475d6161c962bca4b6d004688eb4f6d828db61bf82e8fcb748a0c684c8f36899aa057fc746dc5c58739f0409ec651bbc312d8b297910e99bf7c337d11390e42610e067c50363aa997e3ca36883f71ec8830f58bc36ed99118c66645db9cf76263f637bacfa53d8257aaaf78461e549e1dfa354ce0ebab293ef0b7fa82288e7f2bf470651e7045d20ec2cb3fb9bbafb656a44df139d9db1d7bd0002e505e94552b16abb7844c72f04296098418c9b253d78f03a049336dfcb206923f5a1a54aaaddd5bddf34414738de10fa28e954acbe38398c2d90030a2b9da504b7770d81ce0e4bb2f3cc8d195e2097855425e9f6e01ac6df7680443859d62ca5e2265b8582ee924d658e27676be8d32288fd261760752a7c2f7f323c9600d3da95deb3c9d1fe5f289b6127a69bf82b67ee1c516800865fa86c4af38ef487668b8bd364b905eb9640155351c2ec5d494b2d9f6d59b7137788578277f9db00feb7c0e04aabc2e8cd9410649f8de49fd4385fb39bc6678d6735064231e38b97380a56b8e111e4a6bb4de02b7fbd7392a03c85ce3f5c2ce89f0fc69d519e5ff0331655e940f9efbee19b518d2ffce10f118", 0x1000}], 0xa, &(0x7f0000001740)=[@iv={0x80, 0x117, 0x2, 0x66, "a9789343b0e423837f40ccf5988bb5b72a9cbcb13a75a4c7c629766f5866a3d4965367cd846f794e64d8d8fb0c850bd9b7aa87743f5dd7048da36fd76ee20449b4c961ef9156ccbe3efcd198a2599e7400a3424b31324d0624aa398cf3746df3b084c6fd84b7"}, @op={0x18}, @iv={0x58, 0x117, 0x2, 0x3e, "08c4ae3550da118199701d2020b6ec8b3720a8b156833bbeb7aaf90864da0b2d2321e864984de18d2ed0c208faaa5f2f892c2f2189f6d1f98bd7510aff0c"}, @assoc={0x18, 0x117, 0x4, 0x8}, @assoc={0x18, 0x117, 0x4, 0x6}, @op={0x18, 0x117, 0x3, 0x1}], 0x138, 0x1}, 0x4) socketpair(0x1, 0x5, 0x0, &(0x7f0000000040)) (async) sendmsg$xdp(r0, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) (async) recvfrom$inet(r1, 0x0, 0x2, 0x0, &(0x7f00000001c0)={0x2, 0x0, @empty}, 0x20000000) (async) sendmsg$alg(r0, &(0x7f0000001880)={0x0, 0x0, &(0x7f0000001680)=[{&(0x7f0000000080)="bdc1e7b0a9dc0da8b5c5b7466f93ac72f92af05817ab21067073a889a175ba6a2e05fcf84b0f4b49bfbdace7a82917e85527f1c7c749d1f99bc725a93f449466a16e180a1e99f988fa22cb60636ee450823abf2e31e317b1ada6ee5493b1852051c6076289025117125904d3e3f87de50f053d35f8c744a483b9e97acbff9d5b947ef5d662ef60755a63b131e21cb881360d857a6c926fdcfbfaaeafdda42a5dd729e4ddf725a599f7d3088e788fa08e7e8b99bfa8cf0dab5b43ca823012d7383d7e3d0a643a38be868eef6a97580ec74e774cbb163c5f10aa77f85c", 0xdc}, {&(0x7f0000000200)="b051331555d549587baec85de6c4d8e63d3284be928dcea27fdb29400e0c561537e64a47e9fbd077b2614f89c3135f921162b04ca4ee6f006a8c2a62bd67f1bdd22e30a8c433677eca8570e71fe2f12cdf04af2e576053c1ce2bf4f311f12acf2959a8c52a10689cde4f79af1235f488746a70f5b223996bff26e6539b10074059dfb6e722ec2dd86166c219d1540187ed8e7854952687a0421e", 0x9a}, {&(0x7f00000002c0)="81c1efc7cc881106c4fbca7672cf362d88644211fe0f4301745278e19f485964630c589e5a20729513bf0ea44f81d3a1a3458c894ed08c52b66deb7834c3c6079ec27a2c491ab491adbb7e9d8c77c87849e919d0bf5881becdfbd26464c63de760491f648a41e4f9954597df339b025c6f3ec37cdae0231a3a990304f7d78d16864a0330d35032fec2451b045c836d69654d11eec72a90a613c9a7475fb9b3d15b9cf5b1997974b0fe019ba0d97b03ab2e0dd1b325fe", 0xb6}, {&(0x7f0000000000)="14133ca499e4611f3fb3ff8f42148b96b34d955aafd5346ce325d457d45c101f773b30cc8c4745138dd0453551219e8f304221c5de2dc22fbd7a", 0x3a}, {&(0x7f0000000400)="0effcd0e3348d50f4cbb470f6cb5f28a70a0a571d060ffcbdc34df99aa44eebe4fd84f95f4653e987976721dcae480161a619b6dda72046ba8bcd3485cdbd8194ea3782b71bb4b3dd566522866dd50563316550785fed23896a9ff1ba88a31864fac59f160025775f29377e645ae4fb52ee3ae2d702cc716f81f0319cb55720fbb518c042292dae24adf01999c9ba6bebe1a3fe033fad7ff6606a526d881bc6c0fdbcecff1774827059e7c3d854f6d0535f4e14b882dd54e234a2969644328e5348bed5e114617d1d7e8a6c8bd23e7", 0xcf}, {&(0x7f0000000180)="1d928fc205027fa83a067de5834dd4a25a", 0x11}, {&(0x7f0000000380)="be9abde18b821b0b1e9ebd57e0972a9d7f55505ba5a69f33f582f60f0e8f9ace4c279b95b3ec8fa8", 0x28}, {&(0x7f0000000500)="42664bd8b9b8bc2f2fad74ee706521e2d0f36740fb54f3ddce5eafc203ecb4e95f41ec7444dfeeaaaf6bfa91345575c83efa076d01595706b9c414a13c91c03c3ad1508dd77e650f2a67da16f456a4eb599ef549a4f25eee186aefe37412438d13a82368d3d28ea37af7baf743be92b6a235260e1075217b5b2b5cb72576e4a5cf109aa97113ae83ed248d23eb6c331174882b", 0x93}, {&(0x7f00000005c0)="9d0604c82052229b70fdbc974d6c7def109f4e88960d45a7eec402efb3b0ecf31236849448ceef840ddfcad1853e44e1192e46266a4598040a548fab2096869a931906f23d365136b64c96e8763e8fab2c04232f9c71e336ae45d02187de89563326abf89a5838ac6a32f410aa2f734a50d3caa285a0b4a7a600ce567a887d529d1e4e6f60737eb27aad798440fc9aab292849b2848319d748c408d77c1c40d12633be3d3c40c7867613586e3d2932df871935763e4e250ba0bf094905", 0xbd}, {&(0x7f0000000680)="cb215739d390097fc74591cb6f554970cf93ceb11533d133611bdda99d89a76b4b041597c29f775ad8f351101099137b1dde4ea48837903fc4871dfb8155f5afe914d6168b6b73419f4a677c0e292ba05446062070aa84a9eb1d57aef74fc4f3e1a41735cd445dfad6d2723060e07702eb323a9e5f9e40ff405e6ccff31818262bf92fe0c205eb57c225936fdf1a6e86009abe2ccbbff2bd46911a66d9ed87b6b1ca8160b5ecdee96ba2271ca9b5b3d87a7e50155cdd801ee1f5205321f0474521387a9260a887effcb71e60e63d8d80d2455955ed46f7cc871c07b3b769bb35690bb3cccd8fa1b895a0a49f01199c962182d964dc6f35497c8522e7090c755a7b1ccd2206e7b8529fe2265521be511f16facecc2844f52a629838f80b6aaa3d4d9df17d73181f861cc15cc91de1689515fb700f29f7f5ed2316ee597d11f26a82d7a26345c4c8507bff596e8859d45abe147cb12c80c2182cf9e85dc6b21b8a8f6cb1f503e5bcc836ffc67a17ca2152965c9cd22d1102efb07808983f7055997d475e9655851425a40f6f0679642cc6aa191ebd03ad721e6937adbec947d80b8c0463df7fed5b63bb032968d256dc97560052176efa93ccad6e92dbcd95a8c60eff1299e44c628efeabc6a59166d16073685ee4d8f8ad91438b633ef76cd72199d838978b3e7dad191d047df14714e73a8c3b503db1c650fe65c12c7e8b70cfbdcd7a73bc151ba07b7196cc177d56c52d45bf52c2bb8f5e536d39a1de9f10ef3e65692f3fa6f66fd7dc1c79f4a616d465974f76008df0684a2598d9e55eb38fc9d338ac4ff07d6b017b852c82aff07a83b84de1b16bd0691085485e07ea409f7b164d504135ff895dbdc457b30f22ea1d5d1ec728d4191ee313a86304be356d56abf35e71a56cdbe30288183252eb7377ccebe7cde5c4d9adc20af15c6e1415db812fa92876ee1268d0b3bce8f4e82c529224d4890496478113b120b7964abe3c6d35205bcbf5699f1f9ef2bb449894f9489d7238244ba2ec6a7bbabda98dfd59a24921eac3506fb6d7fb435965f2d7bb580503577efcc33f3484de6b79fdc5b1bbedf03c1b9a31f325826ae13263eb4d0de2d7513d33fc969cc4b8bc5ec278fda7d820fb49aa8b1671ce1fde6b20e33497ba567637737e8cdf8fd3e2b0db7fdf18631d06a2458509efc59af282f4d411a238141b8539faf123638f38f70a6c9751da53c96abe6f4b37db6a1c590a579949e276943760622196b5cfc25d4c70880fdb92df485a35e040dcc6456c534b68c7bb1d5666928ff1d15b062925bc6d4a192f31ab963640d80630934a31c8d32957325c29eb8f1b0b502e796e047f7799048827ba46cccd46478ec8ebd9e8e01ad83f63325ebba5e2a7b8dd6211dd15dc57def3f74d4aefb25b71f41fe96f3716785f4cce5ce1b9a76496c48a31717fdc1f3785f1b2e1b8c6689c5635481154c604d25cebcfe847a085004f008af872ea60a7c623b3cc31a85d41551e8ebe36e15c8cb019a8dbed177ab0c58cb68db9bb6c2f4695f3e48c9c915d811bf797160c1a68a1cfccf344ebca1b43256251b2a28b15f5293726b56b88ef7a0d8fbd37b257a39d0e59c811dd85d8b9092d4848bc0379221d8ba6383e3e10aa76d831b107d885db1fd0b1a55a7819c224f8fb1c1fa1730a0dd3d2930b77fddeb51a9f402597fbe19d7cff47c52064377d8bd043e977a873922974ecd8cfa8e18991ef9cd5b7cbb1fcd364b0e1efaa928721463f8b0d37b1089e399ea86bbfea304d8455e2c73eacd9bc26f7b1bc4dce6333ff4bb8462188c3bd6e498a5a207eb9735ec41201f3c08988f962cb788953ed7f064dc2fb242e28e03987673f78bc94981ff1ba88d3dfeb6e55b89b2417ffffab8b18d82b7d7674691892c412bd092b7e8d4812c07086c491b623c0206fc8fa19bd48d2f90ba4bc69fee6696e34fd75884d9fbf846267335d34bc513040acd8cf08badf8b779ee6b9e4df82aba4b7252a117de0775aef59900a3317ce12f35a515711ca6af58b7e6556ba9420120c4419cd0cbe58b68f9047cec4b66e0736d5c086369100ebc54b5bec4b7fa08a819187e26a8dcced3daaf38b96828e9f6a3ed50177acb04aabf9570945f1beb5efffda6daf07472b8d189a2d2b6f0471e90fecbbce6f11f9ea430ffcfefee24f97ff2b0629a3eaa34a7352d87a9ab8d48f8238eaf7c99a29ad07565540a95940752dd65f2025015e568ce3861c2e1f1ddacd72aefb49997bca2c365d07140d1836e86fe3a29138784cd35522bff65bd6483b9dfe6a6849456139a5497d8c5c76a5100b6d834da556f674a5b19e6c6abe35886efa3800674b861aff8edd1993865f3a9706ea176b3c9047c2a6fb593371306db2e4ccea0fbdefe23d1ca6c4754f2deaf268632b330bc45871a94184b063386f96cb6f98d44de0c6b6fd3a4ca6e814c692f7398d349dfa1e146cc9d1575a94afd9d09f6d06ee0ac9512bcad4923915427087084f318c697caafc64bd0b80d9e8faf68c507a513861ea2e39a26de22603af2de1666af396674257c21e631acd23cf6ff0a14b5e3673e83fb14a42995d2171d5bfaf954b25816c07362f54ebc7967316eb2e5db367f5c5812f87ee0a4d2852c790c388455487522d0fc461db7b69e8ba9ce9b2c13b09429fac1917d98fbb9962106b5b0acfe9320814f516b0642417592f7f72d37ed7ae2d18dee42753cda860b5c0d34637f470b72a013192850bc6b0df1595e1b0f95f546b0d163c9caffbfbf68d5a9581809961dcc6343d4946a83a3a5d37d7c82e565813b0b9aed9c1bd368af4fb3b803dfb724f6a8d52c0e4ce4dd7c404d384b302f3ef74750f7fbec057b016c7f5479bd3844398e68694679a81527345bd0acfd2659184d018c5f2b507b5e4070ae1802fafe4a7aaa4b8e68ae5bee152303ef1538ed662a9e5ab55053afdbc8e890829ff7ec23feaacd83323e9816ff940457d8ab1f9f4e443eba203231d3259eacb0223f0f133f8d71a3ae42137a2bc73886483512cf114f9daa770125d868dfd348ee2bc3a65eea75cc8a5912bab940911263f73b26e368bdd3b84377e31dec860615eca5c38fbbef5c57ba3aa4e3c9e726d5277cc371a687bf5ee6841178de2b5061c1e4bc6e45f773aad65633fd3bccf26ca16ee393dd94e55b42b88dfb42e4c6edff5c47e6eee3747bcf636f23f81567fccd88ce3f1ec8c58eab8654200951a465afe4c23e5a67c31a28d41bfd4b7d885b77949b8e7147086d0fead857f0a157b7913e942e809875cbd24a08a32e7d1977e69fc8b8fbe6a4bdec473f37e4c4e535e1c5f2ebc3d948526a5a703aa99525a54ca535579ffef49bb2c38b3fb63bcf07aef6e0475be2ce59990749884924bb5305c935f161fdbc967c588a19653dbcbbc466f8f0be21caa1660b3a9e5c3711dcd93067dff4bc8ce9d6541c0f6ba8a7d2e75a2065afe2151517065dce445be26e38d524a4348e7478d0c6732949025c59b623c2e1296d264af8a52f4d8c9ebf7a6c93762a0741a119cbed1bf4aa3a6022fdf0c04e9a1fe65aee3aafab33205fb9bf8d3a8a5c1bcdfa871b60a387776c637f6d9be7577f75208c9cefa24b18e799ac50c635f8256782d981a9c55553771e7943f7df6315a18c10a5ce45d48386cd48dc3a3f0c1ca459248189bc5b225cc0aced489dd50a23898b58878c702ff51464e91d53d3cfc55dcd6bc6ff9f13426de976239db0d6789cb0d9f7e7006328e550c733f1d3ab1e1ed4e757ba266137b6515033d03ce0666af25a6dad1d5452e5a92a81974b73722e4141c4232eeec719b90d3f02ad87febb71fd53b013c38152e286a864a45a025746fa3bfc6af47e116d5c14a225d83cb69c4af24a61df5a916c8545027ed3d42760d11e0f10d57ceb3e02e2609fc3cc0a2c76966c85ccae575e14d428fc7dd829d2d1489c3139463c5f831ce679a87388352c0f2a9abe5c93e042ef426f16ce6bb49e05bdcd9b7ab97e68cf1c2d7bc04dd90d8ee58257c0288d5cd7d5645870e4449ea1012aab61861980b31922709863bc93b581d1b32f1a497b1c5766aa88cf1fef8890de149594f9371767cba6e9ee21d969026d277eca027504a4d4b94378778931f888682aca23f4e5b48a5976f058ed9a86373fe91e461a093fc6d19e52a231925262028a44bbac16556093c5dc78c17c6dc8548413beee54df019213a17f0d2d09ebe2cb2049d2ce045762b39b6e90727511265783daa34d769fe27ea90f166457781e9b1ef86575f32449854a329b6f6a3622a2561ba5d2d71d2cada25e388602052d9f95b17e7a740b1182ff20209f9ce813978f0174274174fe21544ea855483cf70812b7a32418af8551c710e3eb924c8d05e74cf482c65dde858c2af4f2391ff27abe194dab71f54aa36f2ef449d4218a552113441b1f34e07b2f7f2d373cf94e16ae87e56263c6ebdb156bff91c3b9c5be31f5cf7d1f9d3329b37fdb9ece55e445e81e0a5467ca8645642e35df068c1f2563966e23f1d13ea29b81d299e5a8840085fb8eb7de39fa6b29ab39be02726716ff2dc90fea2525e193484fc11b811ab27d99e28c05b58a3ec48b76e43d6d14d81bf77dd4a1bf65718882b64aa8d648dca8d40e838a67064d71037cb381abcb04444989fcc176a667d68bf6ce9e490d3c6b535aa8805f0bd82f9fa1e899c59670821c69e32ece0d78c9e96c2d0a81662504db16265d29a1a4bd9f40e2c72787886497fcb592ec83acb2982ee2fc77c97843ea2f55229a29d8b202b15187f5ce59c8d2ed66a7efcd74863077807b1d77c6b4a4203a94c7a868a04b7e47c1eb55d206e16727c18a95479fb371bd5f6f347f3c9ab4dbaa8b5d7102c10eb12116261cc344f5dfb8c04b7a89f2cf46f9a1fda53ee44987567279926f2f37647ba8d79e5a0117e61e78c2c97b1933da9c2707fc10364530db810f14137ca1423e430fd4b4e29e9760cef902a65dbd7f7c9597defc10dd326efb2655da661d4c81e8bf6722b2dd3e5a5c0558efa295cf2584360fbfe05fef6d554c82e098086486f2dd10fb59a829ba1272bd572cbcbbd48c80c6ca64ea6e3a8171a8d76a6bd13e20d8e9ffb8289cc63fa85ab3d403a85ad5b2a680da1dffe9dc61cdef5e0799292f2a2f93e9cd06724f47cc36fa88c366a595540b475d6161c962bca4b6d004688eb4f6d828db61bf82e8fcb748a0c684c8f36899aa057fc746dc5c58739f0409ec651bbc312d8b297910e99bf7c337d11390e42610e067c50363aa997e3ca36883f71ec8830f58bc36ed99118c66645db9cf76263f637bacfa53d8257aaaf78461e549e1dfa354ce0ebab293ef0b7fa82288e7f2bf470651e7045d20ec2cb3fb9bbafb656a44df139d9db1d7bd0002e505e94552b16abb7844c72f04296098418c9b253d78f03a049336dfcb206923f5a1a54aaaddd5bddf34414738de10fa28e954acbe38398c2d90030a2b9da504b7770d81ce0e4bb2f3cc8d195e2097855425e9f6e01ac6df7680443859d62ca5e2265b8582ee924d658e27676be8d32288fd261760752a7c2f7f323c9600d3da95deb3c9d1fe5f289b6127a69bf82b67ee1c516800865fa86c4af38ef487668b8bd364b905eb9640155351c2ec5d494b2d9f6d59b7137788578277f9db00feb7c0e04aabc2e8cd9410649f8de49fd4385fb39bc6678d6735064231e38b97380a56b8e111e4a6bb4de02b7fbd7392a03c85ce3f5c2ce89f0fc69d519e5ff0331655e940f9efbee19b518d2ffce10f118", 0x1000}], 0xa, &(0x7f0000001740)=[@iv={0x80, 0x117, 0x2, 0x66, "a9789343b0e423837f40ccf5988bb5b72a9cbcb13a75a4c7c629766f5866a3d4965367cd846f794e64d8d8fb0c850bd9b7aa87743f5dd7048da36fd76ee20449b4c961ef9156ccbe3efcd198a2599e7400a3424b31324d0624aa398cf3746df3b084c6fd84b7"}, @op={0x18}, @iv={0x58, 0x117, 0x2, 0x3e, "08c4ae3550da118199701d2020b6ec8b3720a8b156833bbeb7aaf90864da0b2d2321e864984de18d2ed0c208faaa5f2f892c2f2189f6d1f98bd7510aff0c"}, @assoc={0x18, 0x117, 0x4, 0x8}, @assoc={0x18, 0x117, 0x4, 0x6}, @op={0x18, 0x117, 0x3, 0x1}], 0x138, 0x1}, 0x4) (async) 00:04:37 executing program 4: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) (async) sched_setscheduler(0x0, 0x1, &(0x7f0000000080)=0x7) (async) r0 = getpid() sched_setaffinity(0x0, 0x8, &(0x7f00000002c0)=0x2) (async) sched_setscheduler(r0, 0x2, &(0x7f0000000200)=0x4) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f0000000180)=@file={0x0, './file0\x00'}, 0x6e) (async) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) (async) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async) sched_setattr(r0, &(0x7f0000000280)={0x38, 0x0, 0x6, 0x10001, 0x1, 0x0, 0x8, 0x8, 0x8, 0x9}, 0x0) (async) sched_setaffinity(0x0, 0x8, &(0x7f00000003c0)=0xae) (async) mkdirat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040)='./cgroup.net/syz1\x00', 0x1ff) (async) openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000040), 0x200002, 0x0) (async) write$cgroup_devices(0xffffffffffffffff, 0x0, 0x9) (async) r3 = socket$inet_tcp(0x2, 0x1, 0x0) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r4, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r4, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async) setsockopt$SO_ATTACH_FILTER(r4, 0x1, 0x1a, &(0x7f0000000340)={0x1, &(0x7f0000000000)=[{0x6, 0x4, 0x0, 0x1}]}, 0x10) bind$inet(r3, &(0x7f0000000240)={0x2, 0x4e20, @multicast2}, 0x10) (async) recvfrom(r3, &(0x7f0000000480)=""/110, 0xfffffe32, 0x700, 0x0, 0xfffffffffffffecb) 00:04:37 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000500000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:37 executing program 0: ioprio_get$pid(0x2, 0x0) r0 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@getnexthop={0x24, 0x6a, 0x300, 0x70bd25, 0x25dfdbfb, {}, [@NHA_GROUPS={0x4}, @NHA_OIF={0x8}]}, 0x24}, 0x1, 0x0, 0x0, 0x4000000}, 0x4) ioprio_get$pid(0x2, 0x0) (async) openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) (async) sendmsg$nl_route(r0, &(0x7f0000000100)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)=@getnexthop={0x24, 0x6a, 0x300, 0x70bd25, 0x25dfdbfb, {}, [@NHA_GROUPS={0x4}, @NHA_OIF={0x8}]}, 0x24}, 0x1, 0x0, 0x0, 0x4000000}, 0x4) (async) 00:04:38 executing program 3: socketpair(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$xdp(r0, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) recvfrom$inet(r1, 0x0, 0x2, 0x0, &(0x7f00000001c0)={0x2, 0x0, @empty}, 0x20000000) sendmsg$alg(r0, &(0x7f0000001880)={0x0, 0x0, &(0x7f0000001680)=[{&(0x7f0000000080)="bdc1e7b0a9dc0da8b5c5b7466f93ac72f92af05817ab21067073a889a175ba6a2e05fcf84b0f4b49bfbdace7a82917e85527f1c7c749d1f99bc725a93f449466a16e180a1e99f988fa22cb60636ee450823abf2e31e317b1ada6ee5493b1852051c6076289025117125904d3e3f87de50f053d35f8c744a483b9e97acbff9d5b947ef5d662ef60755a63b131e21cb881360d857a6c926fdcfbfaaeafdda42a5dd729e4ddf725a599f7d3088e788fa08e7e8b99bfa8cf0dab5b43ca823012d7383d7e3d0a643a38be868eef6a97580ec74e774cbb163c5f10aa77f85c", 0xdc}, {&(0x7f0000000200)="b051331555d549587baec85de6c4d8e63d3284be928dcea27fdb29400e0c561537e64a47e9fbd077b2614f89c3135f921162b04ca4ee6f006a8c2a62bd67f1bdd22e30a8c433677eca8570e71fe2f12cdf04af2e576053c1ce2bf4f311f12acf2959a8c52a10689cde4f79af1235f488746a70f5b223996bff26e6539b10074059dfb6e722ec2dd86166c219d1540187ed8e7854952687a0421e", 0x9a}, {&(0x7f00000002c0)="81c1efc7cc881106c4fbca7672cf362d88644211fe0f4301745278e19f485964630c589e5a20729513bf0ea44f81d3a1a3458c894ed08c52b66deb7834c3c6079ec27a2c491ab491adbb7e9d8c77c87849e919d0bf5881becdfbd26464c63de760491f648a41e4f9954597df339b025c6f3ec37cdae0231a3a990304f7d78d16864a0330d35032fec2451b045c836d69654d11eec72a90a613c9a7475fb9b3d15b9cf5b1997974b0fe019ba0d97b03ab2e0dd1b325fe", 0xb6}, {&(0x7f0000000000)="14133ca499e4611f3fb3ff8f42148b96b34d955aafd5346ce325d457d45c101f773b30cc8c4745138dd0453551219e8f304221c5de2dc22fbd7a", 0x3a}, {&(0x7f0000000400)="0effcd0e3348d50f4cbb470f6cb5f28a70a0a571d060ffcbdc34df99aa44eebe4fd84f95f4653e987976721dcae480161a619b6dda72046ba8bcd3485cdbd8194ea3782b71bb4b3dd566522866dd50563316550785fed23896a9ff1ba88a31864fac59f160025775f29377e645ae4fb52ee3ae2d702cc716f81f0319cb55720fbb518c042292dae24adf01999c9ba6bebe1a3fe033fad7ff6606a526d881bc6c0fdbcecff1774827059e7c3d854f6d0535f4e14b882dd54e234a2969644328e5348bed5e114617d1d7e8a6c8bd23e7", 0xcf}, {&(0x7f0000000180)="1d928fc205027fa83a067de5834dd4a25a", 0x11}, {&(0x7f0000000380)="be9abde18b821b0b1e9ebd57e0972a9d7f55505ba5a69f33f582f60f0e8f9ace4c279b95b3ec8fa8", 0x28}, {&(0x7f0000000500)="42664bd8b9b8bc2f2fad74ee706521e2d0f36740fb54f3ddce5eafc203ecb4e95f41ec7444dfeeaaaf6bfa91345575c83efa076d01595706b9c414a13c91c03c3ad1508dd77e650f2a67da16f456a4eb599ef549a4f25eee186aefe37412438d13a82368d3d28ea37af7baf743be92b6a235260e1075217b5b2b5cb72576e4a5cf109aa97113ae83ed248d23eb6c331174882b", 0x93}, {&(0x7f00000005c0)="9d0604c82052229b70fdbc974d6c7def109f4e88960d45a7eec402efb3b0ecf31236849448ceef840ddfcad1853e44e1192e46266a4598040a548fab2096869a931906f23d365136b64c96e8763e8fab2c04232f9c71e336ae45d02187de89563326abf89a5838ac6a32f410aa2f734a50d3caa285a0b4a7a600ce567a887d529d1e4e6f60737eb27aad798440fc9aab292849b2848319d748c408d77c1c40d12633be3d3c40c7867613586e3d2932df871935763e4e250ba0bf094905", 0xbd}, {&(0x7f0000000680)="cb215739d390097fc74591cb6f554970cf93ceb11533d133611bdda99d89a76b4b041597c29f775ad8f351101099137b1dde4ea48837903fc4871dfb8155f5afe914d6168b6b73419f4a677c0e292ba05446062070aa84a9eb1d57aef74fc4f3e1a41735cd445dfad6d2723060e07702eb323a9e5f9e40ff405e6ccff31818262bf92fe0c205eb57c225936fdf1a6e86009abe2ccbbff2bd46911a66d9ed87b6b1ca8160b5ecdee96ba2271ca9b5b3d87a7e50155cdd801ee1f5205321f0474521387a9260a887effcb71e60e63d8d80d2455955ed46f7cc871c07b3b769bb35690bb3cccd8fa1b895a0a49f01199c962182d964dc6f35497c8522e7090c755a7b1ccd2206e7b8529fe2265521be511f16facecc2844f52a629838f80b6aaa3d4d9df17d73181f861cc15cc91de1689515fb700f29f7f5ed2316ee597d11f26a82d7a26345c4c8507bff596e8859d45abe147cb12c80c2182cf9e85dc6b21b8a8f6cb1f503e5bcc836ffc67a17ca2152965c9cd22d1102efb07808983f7055997d475e9655851425a40f6f0679642cc6aa191ebd03ad721e6937adbec947d80b8c0463df7fed5b63bb032968d256dc97560052176efa93ccad6e92dbcd95a8c60eff1299e44c628efeabc6a59166d16073685ee4d8f8ad91438b633ef76cd72199d838978b3e7dad191d047df14714e73a8c3b503db1c650fe65c12c7e8b70cfbdcd7a73bc151ba07b7196cc177d56c52d45bf52c2bb8f5e536d39a1de9f10ef3e65692f3fa6f66fd7dc1c79f4a616d465974f76008df0684a2598d9e55eb38fc9d338ac4ff07d6b017b852c82aff07a83b84de1b16bd0691085485e07ea409f7b164d504135ff895dbdc457b30f22ea1d5d1ec728d4191ee313a86304be356d56abf35e71a56cdbe30288183252eb7377ccebe7cde5c4d9adc20af15c6e1415db812fa92876ee1268d0b3bce8f4e82c529224d4890496478113b120b7964abe3c6d35205bcbf5699f1f9ef2bb449894f9489d7238244ba2ec6a7bbabda98dfd59a24921eac3506fb6d7fb435965f2d7bb580503577efcc33f3484de6b79fdc5b1bbedf03c1b9a31f325826ae13263eb4d0de2d7513d33fc969cc4b8bc5ec278fda7d820fb49aa8b1671ce1fde6b20e33497ba567637737e8cdf8fd3e2b0db7fdf18631d06a2458509efc59af282f4d411a238141b8539faf123638f38f70a6c9751da53c96abe6f4b37db6a1c590a579949e276943760622196b5cfc25d4c70880fdb92df485a35e040dcc6456c534b68c7bb1d5666928ff1d15b062925bc6d4a192f31ab963640d80630934a31c8d32957325c29eb8f1b0b502e796e047f7799048827ba46cccd46478ec8ebd9e8e01ad83f63325ebba5e2a7b8dd6211dd15dc57def3f74d4aefb25b71f41fe96f3716785f4cce5ce1b9a76496c48a31717fdc1f3785f1b2e1b8c6689c5635481154c604d25cebcfe847a085004f008af872ea60a7c623b3cc31a85d41551e8ebe36e15c8cb019a8dbed177ab0c58cb68db9bb6c2f4695f3e48c9c915d811bf797160c1a68a1cfccf344ebca1b43256251b2a28b15f5293726b56b88ef7a0d8fbd37b257a39d0e59c811dd85d8b9092d4848bc0379221d8ba6383e3e10aa76d831b107d885db1fd0b1a55a7819c224f8fb1c1fa1730a0dd3d2930b77fddeb51a9f402597fbe19d7cff47c52064377d8bd043e977a873922974ecd8cfa8e18991ef9cd5b7cbb1fcd364b0e1efaa928721463f8b0d37b1089e399ea86bbfea304d8455e2c73eacd9bc26f7b1bc4dce6333ff4bb8462188c3bd6e498a5a207eb9735ec41201f3c08988f962cb788953ed7f064dc2fb242e28e03987673f78bc94981ff1ba88d3dfeb6e55b89b2417ffffab8b18d82b7d7674691892c412bd092b7e8d4812c07086c491b623c0206fc8fa19bd48d2f90ba4bc69fee6696e34fd75884d9fbf846267335d34bc513040acd8cf08badf8b779ee6b9e4df82aba4b7252a117de0775aef59900a3317ce12f35a515711ca6af58b7e6556ba9420120c4419cd0cbe58b68f9047cec4b66e0736d5c086369100ebc54b5bec4b7fa08a819187e26a8dcced3daaf38b96828e9f6a3ed50177acb04aabf9570945f1beb5efffda6daf07472b8d189a2d2b6f0471e90fecbbce6f11f9ea430ffcfefee24f97ff2b0629a3eaa34a7352d87a9ab8d48f8238eaf7c99a29ad07565540a95940752dd65f2025015e568ce3861c2e1f1ddacd72aefb49997bca2c365d07140d1836e86fe3a29138784cd35522bff65bd6483b9dfe6a6849456139a5497d8c5c76a5100b6d834da556f674a5b19e6c6abe35886efa3800674b861aff8edd1993865f3a9706ea176b3c9047c2a6fb593371306db2e4ccea0fbdefe23d1ca6c4754f2deaf268632b330bc45871a94184b063386f96cb6f98d44de0c6b6fd3a4ca6e814c692f7398d349dfa1e146cc9d1575a94afd9d09f6d06ee0ac9512bcad4923915427087084f318c697caafc64bd0b80d9e8faf68c507a513861ea2e39a26de22603af2de1666af396674257c21e631acd23cf6ff0a14b5e3673e83fb14a42995d2171d5bfaf954b25816c07362f54ebc7967316eb2e5db367f5c5812f87ee0a4d2852c790c388455487522d0fc461db7b69e8ba9ce9b2c13b09429fac1917d98fbb9962106b5b0acfe9320814f516b0642417592f7f72d37ed7ae2d18dee42753cda860b5c0d34637f470b72a013192850bc6b0df1595e1b0f95f546b0d163c9caffbfbf68d5a9581809961dcc6343d4946a83a3a5d37d7c82e565813b0b9aed9c1bd368af4fb3b803dfb724f6a8d52c0e4ce4dd7c404d384b302f3ef74750f7fbec057b016c7f5479bd3844398e68694679a81527345bd0acfd2659184d018c5f2b507b5e4070ae1802fafe4a7aaa4b8e68ae5bee152303ef1538ed662a9e5ab55053afdbc8e890829ff7ec23feaacd83323e9816ff940457d8ab1f9f4e443eba203231d3259eacb0223f0f133f8d71a3ae42137a2bc73886483512cf114f9daa770125d868dfd348ee2bc3a65eea75cc8a5912bab940911263f73b26e368bdd3b84377e31dec860615eca5c38fbbef5c57ba3aa4e3c9e726d5277cc371a687bf5ee6841178de2b5061c1e4bc6e45f773aad65633fd3bccf26ca16ee393dd94e55b42b88dfb42e4c6edff5c47e6eee3747bcf636f23f81567fccd88ce3f1ec8c58eab8654200951a465afe4c23e5a67c31a28d41bfd4b7d885b77949b8e7147086d0fead857f0a157b7913e942e809875cbd24a08a32e7d1977e69fc8b8fbe6a4bdec473f37e4c4e535e1c5f2ebc3d948526a5a703aa99525a54ca535579ffef49bb2c38b3fb63bcf07aef6e0475be2ce59990749884924bb5305c935f161fdbc967c588a19653dbcbbc466f8f0be21caa1660b3a9e5c3711dcd93067dff4bc8ce9d6541c0f6ba8a7d2e75a2065afe2151517065dce445be26e38d524a4348e7478d0c6732949025c59b623c2e1296d264af8a52f4d8c9ebf7a6c93762a0741a119cbed1bf4aa3a6022fdf0c04e9a1fe65aee3aafab33205fb9bf8d3a8a5c1bcdfa871b60a387776c637f6d9be7577f75208c9cefa24b18e799ac50c635f8256782d981a9c55553771e7943f7df6315a18c10a5ce45d48386cd48dc3a3f0c1ca459248189bc5b225cc0aced489dd50a23898b58878c702ff51464e91d53d3cfc55dcd6bc6ff9f13426de976239db0d6789cb0d9f7e7006328e550c733f1d3ab1e1ed4e757ba266137b6515033d03ce0666af25a6dad1d5452e5a92a81974b73722e4141c4232eeec719b90d3f02ad87febb71fd53b013c38152e286a864a45a025746fa3bfc6af47e116d5c14a225d83cb69c4af24a61df5a916c8545027ed3d42760d11e0f10d57ceb3e02e2609fc3cc0a2c76966c85ccae575e14d428fc7dd829d2d1489c3139463c5f831ce679a87388352c0f2a9abe5c93e042ef426f16ce6bb49e05bdcd9b7ab97e68cf1c2d7bc04dd90d8ee58257c0288d5cd7d5645870e4449ea1012aab61861980b31922709863bc93b581d1b32f1a497b1c5766aa88cf1fef8890de149594f9371767cba6e9ee21d969026d277eca027504a4d4b94378778931f888682aca23f4e5b48a5976f058ed9a86373fe91e461a093fc6d19e52a231925262028a44bbac16556093c5dc78c17c6dc8548413beee54df019213a17f0d2d09ebe2cb2049d2ce045762b39b6e90727511265783daa34d769fe27ea90f166457781e9b1ef86575f32449854a329b6f6a3622a2561ba5d2d71d2cada25e388602052d9f95b17e7a740b1182ff20209f9ce813978f0174274174fe21544ea855483cf70812b7a32418af8551c710e3eb924c8d05e74cf482c65dde858c2af4f2391ff27abe194dab71f54aa36f2ef449d4218a552113441b1f34e07b2f7f2d373cf94e16ae87e56263c6ebdb156bff91c3b9c5be31f5cf7d1f9d3329b37fdb9ece55e445e81e0a5467ca8645642e35df068c1f2563966e23f1d13ea29b81d299e5a8840085fb8eb7de39fa6b29ab39be02726716ff2dc90fea2525e193484fc11b811ab27d99e28c05b58a3ec48b76e43d6d14d81bf77dd4a1bf65718882b64aa8d648dca8d40e838a67064d71037cb381abcb04444989fcc176a667d68bf6ce9e490d3c6b535aa8805f0bd82f9fa1e899c59670821c69e32ece0d78c9e96c2d0a81662504db16265d29a1a4bd9f40e2c72787886497fcb592ec83acb2982ee2fc77c97843ea2f55229a29d8b202b15187f5ce59c8d2ed66a7efcd74863077807b1d77c6b4a4203a94c7a868a04b7e47c1eb55d206e16727c18a95479fb371bd5f6f347f3c9ab4dbaa8b5d7102c10eb12116261cc344f5dfb8c04b7a89f2cf46f9a1fda53ee44987567279926f2f37647ba8d79e5a0117e61e78c2c97b1933da9c2707fc10364530db810f14137ca1423e430fd4b4e29e9760cef902a65dbd7f7c9597defc10dd326efb2655da661d4c81e8bf6722b2dd3e5a5c0558efa295cf2584360fbfe05fef6d554c82e098086486f2dd10fb59a829ba1272bd572cbcbbd48c80c6ca64ea6e3a8171a8d76a6bd13e20d8e9ffb8289cc63fa85ab3d403a85ad5b2a680da1dffe9dc61cdef5e0799292f2a2f93e9cd06724f47cc36fa88c366a595540b475d6161c962bca4b6d004688eb4f6d828db61bf82e8fcb748a0c684c8f36899aa057fc746dc5c58739f0409ec651bbc312d8b297910e99bf7c337d11390e42610e067c50363aa997e3ca36883f71ec8830f58bc36ed99118c66645db9cf76263f637bacfa53d8257aaaf78461e549e1dfa354ce0ebab293ef0b7fa82288e7f2bf470651e7045d20ec2cb3fb9bbafb656a44df139d9db1d7bd0002e505e94552b16abb7844c72f04296098418c9b253d78f03a049336dfcb206923f5a1a54aaaddd5bddf34414738de10fa28e954acbe38398c2d90030a2b9da504b7770d81ce0e4bb2f3cc8d195e2097855425e9f6e01ac6df7680443859d62ca5e2265b8582ee924d658e27676be8d32288fd261760752a7c2f7f323c9600d3da95deb3c9d1fe5f289b6127a69bf82b67ee1c516800865fa86c4af38ef487668b8bd364b905eb9640155351c2ec5d494b2d9f6d59b7137788578277f9db00feb7c0e04aabc2e8cd9410649f8de49fd4385fb39bc6678d6735064231e38b97380a56b8e111e4a6bb4de02b7fbd7392a03c85ce3f5c2ce89f0fc69d519e5ff0331655e940f9efbee19b518d2ffce10f118", 0x1000}], 0xa, &(0x7f0000001740)=[@iv={0x80, 0x117, 0x2, 0x66, "a9789343b0e423837f40ccf5988bb5b72a9cbcb13a75a4c7c629766f5866a3d4965367cd846f794e64d8d8fb0c850bd9b7aa87743f5dd7048da36fd76ee20449b4c961ef9156ccbe3efcd198a2599e7400a3424b31324d0624aa398cf3746df3b084c6fd84b7"}, @op={0x18}, @iv={0x58, 0x117, 0x2, 0x3e, "08c4ae3550da118199701d2020b6ec8b3720a8b156833bbeb7aaf90864da0b2d2321e864984de18d2ed0c208faaa5f2f892c2f2189f6d1f98bd7510aff0c"}, @assoc={0x18, 0x117, 0x4, 0x8}, @assoc={0x18, 0x117, 0x4, 0x6}, @op={0x18, 0x117, 0x3, 0x1}], 0x138, 0x1}, 0x4) socketpair(0x1, 0x5, 0x0, &(0x7f0000000040)) (async) sendmsg$xdp(r0, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) (async) recvfrom$inet(r1, 0x0, 0x2, 0x0, &(0x7f00000001c0)={0x2, 0x0, @empty}, 0x20000000) (async) sendmsg$alg(r0, &(0x7f0000001880)={0x0, 0x0, &(0x7f0000001680)=[{&(0x7f0000000080)="bdc1e7b0a9dc0da8b5c5b7466f93ac72f92af05817ab21067073a889a175ba6a2e05fcf84b0f4b49bfbdace7a82917e85527f1c7c749d1f99bc725a93f449466a16e180a1e99f988fa22cb60636ee450823abf2e31e317b1ada6ee5493b1852051c6076289025117125904d3e3f87de50f053d35f8c744a483b9e97acbff9d5b947ef5d662ef60755a63b131e21cb881360d857a6c926fdcfbfaaeafdda42a5dd729e4ddf725a599f7d3088e788fa08e7e8b99bfa8cf0dab5b43ca823012d7383d7e3d0a643a38be868eef6a97580ec74e774cbb163c5f10aa77f85c", 0xdc}, {&(0x7f0000000200)="b051331555d549587baec85de6c4d8e63d3284be928dcea27fdb29400e0c561537e64a47e9fbd077b2614f89c3135f921162b04ca4ee6f006a8c2a62bd67f1bdd22e30a8c433677eca8570e71fe2f12cdf04af2e576053c1ce2bf4f311f12acf2959a8c52a10689cde4f79af1235f488746a70f5b223996bff26e6539b10074059dfb6e722ec2dd86166c219d1540187ed8e7854952687a0421e", 0x9a}, {&(0x7f00000002c0)="81c1efc7cc881106c4fbca7672cf362d88644211fe0f4301745278e19f485964630c589e5a20729513bf0ea44f81d3a1a3458c894ed08c52b66deb7834c3c6079ec27a2c491ab491adbb7e9d8c77c87849e919d0bf5881becdfbd26464c63de760491f648a41e4f9954597df339b025c6f3ec37cdae0231a3a990304f7d78d16864a0330d35032fec2451b045c836d69654d11eec72a90a613c9a7475fb9b3d15b9cf5b1997974b0fe019ba0d97b03ab2e0dd1b325fe", 0xb6}, {&(0x7f0000000000)="14133ca499e4611f3fb3ff8f42148b96b34d955aafd5346ce325d457d45c101f773b30cc8c4745138dd0453551219e8f304221c5de2dc22fbd7a", 0x3a}, {&(0x7f0000000400)="0effcd0e3348d50f4cbb470f6cb5f28a70a0a571d060ffcbdc34df99aa44eebe4fd84f95f4653e987976721dcae480161a619b6dda72046ba8bcd3485cdbd8194ea3782b71bb4b3dd566522866dd50563316550785fed23896a9ff1ba88a31864fac59f160025775f29377e645ae4fb52ee3ae2d702cc716f81f0319cb55720fbb518c042292dae24adf01999c9ba6bebe1a3fe033fad7ff6606a526d881bc6c0fdbcecff1774827059e7c3d854f6d0535f4e14b882dd54e234a2969644328e5348bed5e114617d1d7e8a6c8bd23e7", 0xcf}, {&(0x7f0000000180)="1d928fc205027fa83a067de5834dd4a25a", 0x11}, {&(0x7f0000000380)="be9abde18b821b0b1e9ebd57e0972a9d7f55505ba5a69f33f582f60f0e8f9ace4c279b95b3ec8fa8", 0x28}, {&(0x7f0000000500)="42664bd8b9b8bc2f2fad74ee706521e2d0f36740fb54f3ddce5eafc203ecb4e95f41ec7444dfeeaaaf6bfa91345575c83efa076d01595706b9c414a13c91c03c3ad1508dd77e650f2a67da16f456a4eb599ef549a4f25eee186aefe37412438d13a82368d3d28ea37af7baf743be92b6a235260e1075217b5b2b5cb72576e4a5cf109aa97113ae83ed248d23eb6c331174882b", 0x93}, {&(0x7f00000005c0)="9d0604c82052229b70fdbc974d6c7def109f4e88960d45a7eec402efb3b0ecf31236849448ceef840ddfcad1853e44e1192e46266a4598040a548fab2096869a931906f23d365136b64c96e8763e8fab2c04232f9c71e336ae45d02187de89563326abf89a5838ac6a32f410aa2f734a50d3caa285a0b4a7a600ce567a887d529d1e4e6f60737eb27aad798440fc9aab292849b2848319d748c408d77c1c40d12633be3d3c40c7867613586e3d2932df871935763e4e250ba0bf094905", 0xbd}, {&(0x7f0000000680)="cb215739d390097fc74591cb6f554970cf93ceb11533d133611bdda99d89a76b4b041597c29f775ad8f351101099137b1dde4ea48837903fc4871dfb8155f5afe914d6168b6b73419f4a677c0e292ba05446062070aa84a9eb1d57aef74fc4f3e1a41735cd445dfad6d2723060e07702eb323a9e5f9e40ff405e6ccff31818262bf92fe0c205eb57c225936fdf1a6e86009abe2ccbbff2bd46911a66d9ed87b6b1ca8160b5ecdee96ba2271ca9b5b3d87a7e50155cdd801ee1f5205321f0474521387a9260a887effcb71e60e63d8d80d2455955ed46f7cc871c07b3b769bb35690bb3cccd8fa1b895a0a49f01199c962182d964dc6f35497c8522e7090c755a7b1ccd2206e7b8529fe2265521be511f16facecc2844f52a629838f80b6aaa3d4d9df17d73181f861cc15cc91de1689515fb700f29f7f5ed2316ee597d11f26a82d7a26345c4c8507bff596e8859d45abe147cb12c80c2182cf9e85dc6b21b8a8f6cb1f503e5bcc836ffc67a17ca2152965c9cd22d1102efb07808983f7055997d475e9655851425a40f6f0679642cc6aa191ebd03ad721e6937adbec947d80b8c0463df7fed5b63bb032968d256dc97560052176efa93ccad6e92dbcd95a8c60eff1299e44c628efeabc6a59166d16073685ee4d8f8ad91438b633ef76cd72199d838978b3e7dad191d047df14714e73a8c3b503db1c650fe65c12c7e8b70cfbdcd7a73bc151ba07b7196cc177d56c52d45bf52c2bb8f5e536d39a1de9f10ef3e65692f3fa6f66fd7dc1c79f4a616d465974f76008df0684a2598d9e55eb38fc9d338ac4ff07d6b017b852c82aff07a83b84de1b16bd0691085485e07ea409f7b164d504135ff895dbdc457b30f22ea1d5d1ec728d4191ee313a86304be356d56abf35e71a56cdbe30288183252eb7377ccebe7cde5c4d9adc20af15c6e1415db812fa92876ee1268d0b3bce8f4e82c529224d4890496478113b120b7964abe3c6d35205bcbf5699f1f9ef2bb449894f9489d7238244ba2ec6a7bbabda98dfd59a24921eac3506fb6d7fb435965f2d7bb580503577efcc33f3484de6b79fdc5b1bbedf03c1b9a31f325826ae13263eb4d0de2d7513d33fc969cc4b8bc5ec278fda7d820fb49aa8b1671ce1fde6b20e33497ba567637737e8cdf8fd3e2b0db7fdf18631d06a2458509efc59af282f4d411a238141b8539faf123638f38f70a6c9751da53c96abe6f4b37db6a1c590a579949e276943760622196b5cfc25d4c70880fdb92df485a35e040dcc6456c534b68c7bb1d5666928ff1d15b062925bc6d4a192f31ab963640d80630934a31c8d32957325c29eb8f1b0b502e796e047f7799048827ba46cccd46478ec8ebd9e8e01ad83f63325ebba5e2a7b8dd6211dd15dc57def3f74d4aefb25b71f41fe96f3716785f4cce5ce1b9a76496c48a31717fdc1f3785f1b2e1b8c6689c5635481154c604d25cebcfe847a085004f008af872ea60a7c623b3cc31a85d41551e8ebe36e15c8cb019a8dbed177ab0c58cb68db9bb6c2f4695f3e48c9c915d811bf797160c1a68a1cfccf344ebca1b43256251b2a28b15f5293726b56b88ef7a0d8fbd37b257a39d0e59c811dd85d8b9092d4848bc0379221d8ba6383e3e10aa76d831b107d885db1fd0b1a55a7819c224f8fb1c1fa1730a0dd3d2930b77fddeb51a9f402597fbe19d7cff47c52064377d8bd043e977a873922974ecd8cfa8e18991ef9cd5b7cbb1fcd364b0e1efaa928721463f8b0d37b1089e399ea86bbfea304d8455e2c73eacd9bc26f7b1bc4dce6333ff4bb8462188c3bd6e498a5a207eb9735ec41201f3c08988f962cb788953ed7f064dc2fb242e28e03987673f78bc94981ff1ba88d3dfeb6e55b89b2417ffffab8b18d82b7d7674691892c412bd092b7e8d4812c07086c491b623c0206fc8fa19bd48d2f90ba4bc69fee6696e34fd75884d9fbf846267335d34bc513040acd8cf08badf8b779ee6b9e4df82aba4b7252a117de0775aef59900a3317ce12f35a515711ca6af58b7e6556ba9420120c4419cd0cbe58b68f9047cec4b66e0736d5c086369100ebc54b5bec4b7fa08a819187e26a8dcced3daaf38b96828e9f6a3ed50177acb04aabf9570945f1beb5efffda6daf07472b8d189a2d2b6f0471e90fecbbce6f11f9ea430ffcfefee24f97ff2b0629a3eaa34a7352d87a9ab8d48f8238eaf7c99a29ad07565540a95940752dd65f2025015e568ce3861c2e1f1ddacd72aefb49997bca2c365d07140d1836e86fe3a29138784cd35522bff65bd6483b9dfe6a6849456139a5497d8c5c76a5100b6d834da556f674a5b19e6c6abe35886efa3800674b861aff8edd1993865f3a9706ea176b3c9047c2a6fb593371306db2e4ccea0fbdefe23d1ca6c4754f2deaf268632b330bc45871a94184b063386f96cb6f98d44de0c6b6fd3a4ca6e814c692f7398d349dfa1e146cc9d1575a94afd9d09f6d06ee0ac9512bcad4923915427087084f318c697caafc64bd0b80d9e8faf68c507a513861ea2e39a26de22603af2de1666af396674257c21e631acd23cf6ff0a14b5e3673e83fb14a42995d2171d5bfaf954b25816c07362f54ebc7967316eb2e5db367f5c5812f87ee0a4d2852c790c388455487522d0fc461db7b69e8ba9ce9b2c13b09429fac1917d98fbb9962106b5b0acfe9320814f516b0642417592f7f72d37ed7ae2d18dee42753cda860b5c0d34637f470b72a013192850bc6b0df1595e1b0f95f546b0d163c9caffbfbf68d5a9581809961dcc6343d4946a83a3a5d37d7c82e565813b0b9aed9c1bd368af4fb3b803dfb724f6a8d52c0e4ce4dd7c404d384b302f3ef74750f7fbec057b016c7f5479bd3844398e68694679a81527345bd0acfd2659184d018c5f2b507b5e4070ae1802fafe4a7aaa4b8e68ae5bee152303ef1538ed662a9e5ab55053afdbc8e890829ff7ec23feaacd83323e9816ff940457d8ab1f9f4e443eba203231d3259eacb0223f0f133f8d71a3ae42137a2bc73886483512cf114f9daa770125d868dfd348ee2bc3a65eea75cc8a5912bab940911263f73b26e368bdd3b84377e31dec860615eca5c38fbbef5c57ba3aa4e3c9e726d5277cc371a687bf5ee6841178de2b5061c1e4bc6e45f773aad65633fd3bccf26ca16ee393dd94e55b42b88dfb42e4c6edff5c47e6eee3747bcf636f23f81567fccd88ce3f1ec8c58eab8654200951a465afe4c23e5a67c31a28d41bfd4b7d885b77949b8e7147086d0fead857f0a157b7913e942e809875cbd24a08a32e7d1977e69fc8b8fbe6a4bdec473f37e4c4e535e1c5f2ebc3d948526a5a703aa99525a54ca535579ffef49bb2c38b3fb63bcf07aef6e0475be2ce59990749884924bb5305c935f161fdbc967c588a19653dbcbbc466f8f0be21caa1660b3a9e5c3711dcd93067dff4bc8ce9d6541c0f6ba8a7d2e75a2065afe2151517065dce445be26e38d524a4348e7478d0c6732949025c59b623c2e1296d264af8a52f4d8c9ebf7a6c93762a0741a119cbed1bf4aa3a6022fdf0c04e9a1fe65aee3aafab33205fb9bf8d3a8a5c1bcdfa871b60a387776c637f6d9be7577f75208c9cefa24b18e799ac50c635f8256782d981a9c55553771e7943f7df6315a18c10a5ce45d48386cd48dc3a3f0c1ca459248189bc5b225cc0aced489dd50a23898b58878c702ff51464e91d53d3cfc55dcd6bc6ff9f13426de976239db0d6789cb0d9f7e7006328e550c733f1d3ab1e1ed4e757ba266137b6515033d03ce0666af25a6dad1d5452e5a92a81974b73722e4141c4232eeec719b90d3f02ad87febb71fd53b013c38152e286a864a45a025746fa3bfc6af47e116d5c14a225d83cb69c4af24a61df5a916c8545027ed3d42760d11e0f10d57ceb3e02e2609fc3cc0a2c76966c85ccae575e14d428fc7dd829d2d1489c3139463c5f831ce679a87388352c0f2a9abe5c93e042ef426f16ce6bb49e05bdcd9b7ab97e68cf1c2d7bc04dd90d8ee58257c0288d5cd7d5645870e4449ea1012aab61861980b31922709863bc93b581d1b32f1a497b1c5766aa88cf1fef8890de149594f9371767cba6e9ee21d969026d277eca027504a4d4b94378778931f888682aca23f4e5b48a5976f058ed9a86373fe91e461a093fc6d19e52a231925262028a44bbac16556093c5dc78c17c6dc8548413beee54df019213a17f0d2d09ebe2cb2049d2ce045762b39b6e90727511265783daa34d769fe27ea90f166457781e9b1ef86575f32449854a329b6f6a3622a2561ba5d2d71d2cada25e388602052d9f95b17e7a740b1182ff20209f9ce813978f0174274174fe21544ea855483cf70812b7a32418af8551c710e3eb924c8d05e74cf482c65dde858c2af4f2391ff27abe194dab71f54aa36f2ef449d4218a552113441b1f34e07b2f7f2d373cf94e16ae87e56263c6ebdb156bff91c3b9c5be31f5cf7d1f9d3329b37fdb9ece55e445e81e0a5467ca8645642e35df068c1f2563966e23f1d13ea29b81d299e5a8840085fb8eb7de39fa6b29ab39be02726716ff2dc90fea2525e193484fc11b811ab27d99e28c05b58a3ec48b76e43d6d14d81bf77dd4a1bf65718882b64aa8d648dca8d40e838a67064d71037cb381abcb04444989fcc176a667d68bf6ce9e490d3c6b535aa8805f0bd82f9fa1e899c59670821c69e32ece0d78c9e96c2d0a81662504db16265d29a1a4bd9f40e2c72787886497fcb592ec83acb2982ee2fc77c97843ea2f55229a29d8b202b15187f5ce59c8d2ed66a7efcd74863077807b1d77c6b4a4203a94c7a868a04b7e47c1eb55d206e16727c18a95479fb371bd5f6f347f3c9ab4dbaa8b5d7102c10eb12116261cc344f5dfb8c04b7a89f2cf46f9a1fda53ee44987567279926f2f37647ba8d79e5a0117e61e78c2c97b1933da9c2707fc10364530db810f14137ca1423e430fd4b4e29e9760cef902a65dbd7f7c9597defc10dd326efb2655da661d4c81e8bf6722b2dd3e5a5c0558efa295cf2584360fbfe05fef6d554c82e098086486f2dd10fb59a829ba1272bd572cbcbbd48c80c6ca64ea6e3a8171a8d76a6bd13e20d8e9ffb8289cc63fa85ab3d403a85ad5b2a680da1dffe9dc61cdef5e0799292f2a2f93e9cd06724f47cc36fa88c366a595540b475d6161c962bca4b6d004688eb4f6d828db61bf82e8fcb748a0c684c8f36899aa057fc746dc5c58739f0409ec651bbc312d8b297910e99bf7c337d11390e42610e067c50363aa997e3ca36883f71ec8830f58bc36ed99118c66645db9cf76263f637bacfa53d8257aaaf78461e549e1dfa354ce0ebab293ef0b7fa82288e7f2bf470651e7045d20ec2cb3fb9bbafb656a44df139d9db1d7bd0002e505e94552b16abb7844c72f04296098418c9b253d78f03a049336dfcb206923f5a1a54aaaddd5bddf34414738de10fa28e954acbe38398c2d90030a2b9da504b7770d81ce0e4bb2f3cc8d195e2097855425e9f6e01ac6df7680443859d62ca5e2265b8582ee924d658e27676be8d32288fd261760752a7c2f7f323c9600d3da95deb3c9d1fe5f289b6127a69bf82b67ee1c516800865fa86c4af38ef487668b8bd364b905eb9640155351c2ec5d494b2d9f6d59b7137788578277f9db00feb7c0e04aabc2e8cd9410649f8de49fd4385fb39bc6678d6735064231e38b97380a56b8e111e4a6bb4de02b7fbd7392a03c85ce3f5c2ce89f0fc69d519e5ff0331655e940f9efbee19b518d2ffce10f118", 0x1000}], 0xa, &(0x7f0000001740)=[@iv={0x80, 0x117, 0x2, 0x66, "a9789343b0e423837f40ccf5988bb5b72a9cbcb13a75a4c7c629766f5866a3d4965367cd846f794e64d8d8fb0c850bd9b7aa87743f5dd7048da36fd76ee20449b4c961ef9156ccbe3efcd198a2599e7400a3424b31324d0624aa398cf3746df3b084c6fd84b7"}, @op={0x18}, @iv={0x58, 0x117, 0x2, 0x3e, "08c4ae3550da118199701d2020b6ec8b3720a8b156833bbeb7aaf90864da0b2d2321e864984de18d2ed0c208faaa5f2f892c2f2189f6d1f98bd7510aff0c"}, @assoc={0x18, 0x117, 0x4, 0x8}, @assoc={0x18, 0x117, 0x4, 0x6}, @op={0x18, 0x117, 0x3, 0x1}], 0x138, 0x1}, 0x4) (async) 00:04:38 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000700000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 278.356082][T13878] bridge0: port 3(gretap0) entered disabled state [ 278.546575][T13878] bridge0: port 2(bridge_slave_1) entered disabled state [ 278.548610][T13878] bridge0: port 1(bridge_slave_0) entered disabled state [ 278.817323][T13878] batman_adv: batadv0: Interface deactivated: batadv_slave_0 [ 278.843805][T13878] batman_adv: batadv0: Interface deactivated: batadv_slave_1 [ 279.225683][T13878] netdevsim netdevsim5 netdevsim0: unset [1, 0] type 2 family 0 port 6081 - 0 [ 279.228155][T13878] netdevsim netdevsim5 netdevsim1: unset [1, 0] type 2 family 0 port 6081 - 0 [ 279.230440][T13878] netdevsim netdevsim5 netdevsim2: unset [1, 0] type 2 family 0 port 6081 - 0 [ 279.232731][T13878] netdevsim netdevsim5 netdevsim3: unset [1, 0] type 2 family 0 port 6081 - 0 [ 279.465980][T13878] device bond2 left promiscuous mode [ 279.467992][T13878] device bond3 left promiscuous mode [ 279.469816][T13878] device bridge4 left promiscuous mode [ 279.479764][T13878] device bridge5 left promiscuous mode [ 279.489646][T13878] device bridge6 left promiscuous mode [ 279.500113][T13878] device bridge7 left promiscuous mode [ 279.510047][T13878] device bridge8 left promiscuous mode [ 279.519973][T13878] device bridge9 left promiscuous mode [ 279.530477][T13878] device bridge10 left promiscuous mode [ 279.540639][T13878] device bridge11 left promiscuous mode 00:04:39 executing program 5: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) sched_setscheduler(0x0, 0x2, &(0x7f0000000080)=0x6) (async, rerun: 64) sched_setaffinity(0x0, 0x8, &(0x7f0000000000)=0x5) (async, rerun: 64) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000000240)=0x1) (async) socketpair$unix(0x1, 0x3, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) (async) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) (async) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) execveat(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) (async) r4 = openat$loop_ctrl(0xffffff9c, &(0x7f0000000040), 0x0, 0x0) r5 = pidfd_getfd(0xffffffffffffffff, r4, 0x0) (async) r6 = openat(0xffffffffffffff9c, &(0x7f0000000180)='./file0\x00', 0x0, 0x101) r7 = ioctl$LOOP_CTL_ADD(r5, 0x4c80, 0x1) ioctl$LOOP_CTL_ADD(r6, 0x4c80, r7) (async) ioctl$LOOP_CTL_REMOVE(r4, 0x4c81, 0x0) (async, rerun: 64) sched_setscheduler(r0, 0x3, &(0x7f0000000100)=0xf2) (async, rerun: 64) r8 = socket$inet6(0xa, 0x3, 0xff) getrlimit(0x5, &(0x7f00000001c0)) (async) connect$inet6(r8, &(0x7f0000000000)={0xa, 0x0, 0x0, @empty, 0x3}, 0x1c) (async) r9 = socket$key(0xf, 0x3, 0x2) r10 = gettid() fcntl$lock(r9, 0x24, &(0x7f00000000c0)={0x0, 0x0, 0x1, 0x7541, r10}) sendmmsg(r8, &(0x7f00000092c0), 0x4ff, 0xbb8) (async, rerun: 64) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r2, 0x81f8943c, &(0x7f0000000600)) (async, rerun: 64) sendmsg$nl_route(r3, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000280)=ANY=[@ANYBLOB="28000000100001080000fbffffffffffffff0000", @ANYRES32=0x0, @ANYBLOB="040002000000000008001b000000000049584b5517807b4b9b68849b9a294e20620b160346c7cfdd9699819824533daf4401042fc0e446c1137621af67ed71fae9ccf249db2f83fd5fa4625b0bd2d6b4539ca1b129f3e191c08c395dd5cb143eb06a0b93b83c0df8807673cdccc55ef4953384f736a814fe78f7f7607936c5d7b40acff09b3e14bbd1815ef8b67d76a5aefa8f91149e6002000000e061876a231f52ad8800000000000000000000000000000000004ba48a8d7b7128fdd86f82f82d83216962b67524ce538aa6739b8717fc8efe6e422c6f4dec720debf75e0f2932dc3d9ae281d43e2655ade9e4339f32d81f3b590dfb830aa2faafb1847a5afced138650d2b2eacf523933b38727934139c1bbb467b3347e65c793242340b0bfdc260ee3be3ae5cdea3e1f71808ffc8d072131498188e5529c39774af45dbc727ac7ab46200860a98f3ecf174908be4a28c43f92ea1a00"/354], 0x28}}, 0x0) 00:04:39 executing program 0: r0 = openat$ipvs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/vs/sync_threshold\x00', 0x2, 0x0) ioctl$SNDRV_PCM_IOCTL_LINK(r0, 0x40044160, &(0x7f0000000040)=0x8) ioprio_get$pid(0x2, 0x0) 00:04:39 executing program 3: ioprio_get$pid(0x3, 0x0) 00:04:39 executing program 4: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='blkio.throttle.io_serviced_recursive\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f00000003c0)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x280000f, 0x28011, r0, 0x0) ioctl$FS_IOC_FSSETXATTR(r0, 0x401c5820, &(0x7f0000000000)={0xaa}) syz_clone(0x140080, 0x0, 0x0, &(0x7f0000000080), 0x0, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) ioctl$NBD_SET_FLAGS(r1, 0xab0a, 0x9) 00:04:39 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000800000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:39 executing program 2: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTOCLOSE(r0, 0x84, 0x4, &(0x7f0000000140)=0x2, 0x4) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) (async) r1 = socket$inet6_sctp(0xa, 0x5, 0x84) sendmsg$inet_sctp(r1, &(0x7f0000000880)={&(0x7f0000000100)=@in6={0xa, 0x0, 0x0, @dev, 0x1f}, 0x1c, &(0x7f0000000740)=[{&(0x7f0000000140)="b5", 0x1}], 0x1, &(0x7f0000000080)=ANY=[@ANYBLOB="2000000000000000840000000200000000000200000000000000000002856e84cda3778ce390127363b713eb9770a909199f210ed7da1b498b5812dd12393f31ab4a57c87112b85738c633207fc0c89fc2323c96e69599d415d691d603281f2170aede45d068ff33ad", @ANYRES32=0x0], 0x20}, 0x40) r2 = dup(r1) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r2, 0x84, 0x1d, &(0x7f0000000200)=ANY=[@ANYBLOB="93825702"], &(0x7f00000001c0)=0x4) (async, rerun: 64) accept$inet6(r1, &(0x7f0000000000)={0xa, 0x0, 0x0, @ipv4={""/10, ""/2, @initdev}}, &(0x7f0000000040)=0x1c) (rerun: 64) 00:04:39 executing program 3: r0 = syz_io_uring_setup(0x3ede, &(0x7f0000000240), &(0x7f0000002000/0x2000)=nil, &(0x7f00003fe000/0xc00000)=nil, &(0x7f0000000100)=0x0, &(0x7f0000000140)=0x0) r3 = socket$inet_udplite(0x2, 0x2, 0x88) r4 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x806, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000000)=@IORING_OP_READ=@pass_buffer={0x16, 0x0, 0x0, @fd_index=0x5, 0x0, &(0x7f0000000040)=""/18, 0x12}, 0x0) write$binfmt_aout(r4, &(0x7f0000001400)=ANY=[], 0x520) ioctl$sock_SIOCSIFVLAN_GET_VLAN_INGRESS_PRIORITY_CMD(r3, 0x8983, &(0x7f0000000080)) io_uring_enter(r0, 0x2ff, 0x0, 0x0, 0x0, 0x0) 00:04:39 executing program 0: r0 = openat$ipvs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/vs/sync_threshold\x00', 0x2, 0x0) ioctl$SNDRV_PCM_IOCTL_LINK(r0, 0x40044160, &(0x7f0000000040)=0x8) (async) ioprio_get$pid(0x2, 0x0) 00:04:39 executing program 5: prlimit64(0x0, 0xe, &(0x7f0000000140)={0x8, 0x8b}, 0x0) sched_setscheduler(0x0, 0x2, &(0x7f0000000080)=0x6) sched_setaffinity(0x0, 0x8, &(0x7f0000000000)=0x5) (async) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000000240)=0x1) (async) socketpair$unix(0x1, 0x3, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) (async) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) (async, rerun: 32) recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async, rerun: 32) execveat(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0) (async) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = openat$loop_ctrl(0xffffff9c, &(0x7f0000000040), 0x0, 0x0) r5 = pidfd_getfd(0xffffffffffffffff, r4, 0x0) r6 = openat(0xffffffffffffff9c, &(0x7f0000000180)='./file0\x00', 0x0, 0x101) (async) r7 = ioctl$LOOP_CTL_ADD(r5, 0x4c80, 0x1) ioctl$LOOP_CTL_ADD(r6, 0x4c80, r7) ioctl$LOOP_CTL_REMOVE(r4, 0x4c81, 0x0) (async) sched_setscheduler(r0, 0x3, &(0x7f0000000100)=0xf2) (async) r8 = socket$inet6(0xa, 0x3, 0xff) getrlimit(0x5, &(0x7f00000001c0)) (async, rerun: 64) connect$inet6(r8, &(0x7f0000000000)={0xa, 0x0, 0x0, @empty, 0x3}, 0x1c) (async, rerun: 64) r9 = socket$key(0xf, 0x3, 0x2) r10 = gettid() fcntl$lock(r9, 0x24, &(0x7f00000000c0)={0x0, 0x0, 0x1, 0x7541, r10}) (async) sendmmsg(r8, &(0x7f00000092c0), 0x4ff, 0xbb8) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r2, 0x81f8943c, &(0x7f0000000600)) (async) sendmsg$nl_route(r3, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000280)=ANY=[@ANYBLOB="28000000100001080000fbffffffffffffff0000", @ANYRES32=0x0, @ANYBLOB="040002000000000008001b000000000049584b5517807b4b9b68849b9a294e20620b160346c7cfdd9699819824533daf4401042fc0e446c1137621af67ed71fae9ccf249db2f83fd5fa4625b0bd2d6b4539ca1b129f3e191c08c395dd5cb143eb06a0b93b83c0df8807673cdccc55ef4953384f736a814fe78f7f7607936c5d7b40acff09b3e14bbd1815ef8b67d76a5aefa8f91149e6002000000e061876a231f52ad8800000000000000000000000000000000004ba48a8d7b7128fdd86f82f82d83216962b67524ce538aa6739b8717fc8efe6e422c6f4dec720debf75e0f2932dc3d9ae281d43e2655ade9e4339f32d81f3b590dfb830aa2faafb1847a5afced138650d2b2eacf523933b38727934139c1bbb467b3347e65c793242340b0bfdc260ee3be3ae5cdea3e1f71808ffc8d072131498188e5529c39774af45dbc727ac7ab46200860a98f3ecf174908be4a28c43f92ea1a00"/354], 0x28}}, 0x0) 00:04:39 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000900000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:39 executing program 3: r0 = syz_io_uring_setup(0x3ede, &(0x7f0000000240), &(0x7f0000002000/0x2000)=nil, &(0x7f00003fe000/0xc00000)=nil, &(0x7f0000000100)=0x0, &(0x7f0000000140)=0x0) (async) r3 = socket$inet_udplite(0x2, 0x2, 0x88) (async) r4 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x806, 0x0) syz_io_uring_submit(r1, r2, &(0x7f0000000000)=@IORING_OP_READ=@pass_buffer={0x16, 0x0, 0x0, @fd_index=0x5, 0x0, &(0x7f0000000040)=""/18, 0x12}, 0x0) (async) write$binfmt_aout(r4, &(0x7f0000001400)=ANY=[], 0x520) (async) ioctl$sock_SIOCSIFVLAN_GET_VLAN_INGRESS_PRIORITY_CMD(r3, 0x8983, &(0x7f0000000080)) (async) io_uring_enter(r0, 0x2ff, 0x0, 0x0, 0x0, 0x0) 00:04:39 executing program 0: r0 = openat$ipvs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/sys/net/ipv4/vs/sync_threshold\x00', 0x2, 0x0) ioctl$SNDRV_PCM_IOCTL_LINK(r0, 0x40044160, &(0x7f0000000040)=0x8) (async) ioprio_get$pid(0x2, 0x0) 00:04:39 executing program 0: ioprio_get$pid(0x0, 0x0) 00:04:39 executing program 3: r0 = syz_io_uring_setup(0x3ede, &(0x7f0000000240), &(0x7f0000002000/0x2000)=nil, &(0x7f00003fe000/0xc00000)=nil, &(0x7f0000000100)=0x0, &(0x7f0000000140)=0x0) r3 = socket$inet_udplite(0x2, 0x2, 0x88) (async) r4 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x806, 0x0) (async) syz_io_uring_submit(r1, r2, &(0x7f0000000000)=@IORING_OP_READ=@pass_buffer={0x16, 0x0, 0x0, @fd_index=0x5, 0x0, &(0x7f0000000040)=""/18, 0x12}, 0x0) write$binfmt_aout(r4, &(0x7f0000001400)=ANY=[], 0x520) (async) ioctl$sock_SIOCSIFVLAN_GET_VLAN_INGRESS_PRIORITY_CMD(r3, 0x8983, &(0x7f0000000080)) (async) io_uring_enter(r0, 0x2ff, 0x0, 0x0, 0x0, 0x0) 00:04:39 executing program 0: ioprio_get$pid(0x0, 0x0) [ 279.936727][T13952] netlink: 'syz-executor.3': attribute type 27 has an invalid length. 00:04:39 executing program 4: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='blkio.throttle.io_serviced_recursive\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f00000003c0)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x280000f, 0x28011, r0, 0x0) ioctl$FS_IOC_FSSETXATTR(r0, 0x401c5820, &(0x7f0000000000)={0xaa}) syz_clone(0x140080, 0x0, 0x0, &(0x7f0000000080), 0x0, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) ioctl$NBD_SET_FLAGS(r1, 0xab0a, 0x9) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='blkio.throttle.io_serviced_recursive\x00', 0x275a, 0x0) (async) write$binfmt_script(r0, &(0x7f00000003c0)=ANY=[], 0x208e24b) (async) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x280000f, 0x28011, r0, 0x0) (async) ioctl$FS_IOC_FSSETXATTR(r0, 0x401c5820, &(0x7f0000000000)={0xaa}) (async) syz_clone(0x140080, 0x0, 0x0, &(0x7f0000000080), 0x0, 0x0) (async) openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) (async) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) (async) ioctl$NBD_SET_FLAGS(r1, 0xab0a, 0x9) (async) 00:04:39 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) setsockopt$netlink_NETLINK_TX_RING(r0, 0x10e, 0xc, &(0x7f0000000040)={0x80}, 0x23d) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000100)=@ipv6_getroute={0x24, 0x1a, 0x1, 0x0, 0x0, {}, [@RTA_OIF={0x8, 0x1b}]}, 0x24}}, 0x0) sendmsg$sock(r0, &(0x7f0000002500)={0x0, 0x0, &(0x7f0000002400)=[{&(0x7f00000001c0)="2c9e64473881323bcd32f786ea4937a8b0ed777da75c63b3957ec1ac9efed7929744fc72d712577e3b1aa39294abc2dbb026a8e360505dd8a805bcf3cd6cc30d1af46b4dad62819963c8c2149b4bf6302e77a0ec76b82de55498640454e09e224b4e8e780b11f744c9512cda0f3c66228b5c700f510bb43b74c06998908f086c1bdcd8ed1e54d0a0c1234f4ac27a7a2fd08fdfcc9c91672b909b212b6062b75d7351057a6b6c48", 0xa7}, {&(0x7f0000000000)="7a9ad16da43fdcb80a", 0x9}, {&(0x7f00000000c0)="6e51d74859b45fa3fb90123c6e5de4ea00d4f01fd446542bb2cbbc00579897f519321cda627054b84ca88e962473828d3f178fe81f810bd706978e4a5b7e68b2", 0x40}, {&(0x7f0000000280)="b44648be508cae24a73380261dcfad14d7fd322d131aa57e9feec86b56b9ebaf4dd86315fc68811364cc7a34a3349dde98471d8f93c1a61b87416548f1f756816d800226a449bdc9c9dcc1b6601e6ec9c1bf79be11a12ab69388affd91860418a494b7ad2601ad5bca345127eb5df5ac7e0fd35dbb8372b89fb55bfc7a8b46a8a22928e6954840da36e3e54fafe3b9c9172f410673935120e53dc77f75218edfbdf4e7ed1c18ee2f73d22afecfdf6d503bd4ad1fd5d0ab0ef71803fe22548a4165846c35107669ed1108e5580adade6ff76810a0eadb1c39c493f198a2a2aacef983ae52824ed4b32099a47a2524e9f425d50cd0844179d8b01f1b447b1816689ae72bb0436116deddde77225a7c4ce01727aea62f7dd693cb79a3163a8a38027a671164ef6a20765187acf255fd2b95626c451f5fd19aa431b13d8b865d880986ad4988b6ea927b21c77409c6a2c021bb2725d3a63c17ae43a500b21a78b2e501b5162debb9cdc91bdac03030cd5437102b7e01e4cfb19bd247dcae8b9ff3736d2aaed2344d1ab6b4118d6e53f9c6604c34bed3a870f86683194435ac878cbe860bfdadca80ae468c32ea2a010e8456a1d29032e34c4766d05f48e32bb53306b440298dbdf71bf99c702315f6671edc6e3f94a99c3202c55e2159f00d454e9fd990f9a0a856f7f811b1b246694263cd1d444628ccb11f6492ed3535e151b4841651356f88e1b4cbdd2a8a878d333220e334b99954823dcee92367b791ac539439cc8652a2c0901302295d8e160f7b57d6c1bb3c17ba2621cde91fa20b871a06f7d3c1fd6c086030c9a533caca9ded712907b9218e4d78dcd69f30274bf662756804e5765f5560bee1c3cb1d82c78d8ae233e22a4790376db8e34617ea1b7ca11073407a6a66e316684c7c7fe3287d8bbb8bba4293da69a2f71a597e65aa7a33e04f5b621c6639c14344cfa4531a514d7effca0f4ff53741ce3c307cb0052728ea597fb63391a8129a228734412061b115889de4112fafbaaff86d9da03c10c006962529f1dc0c38a9437008d4c60e66cf1a966c33fa77dc36d8312767f72221c204316241bae09236bdeb05154ea1f059c3700b3f33f0ace3e128addc177497a44f6ac910bd704fd7ce7c71916f1c4bfd4a6c712dbff954a7f3c2ff30c1dd74db85133d8bec6e47ba726344c6f57c40db03a4453fe6e01050e4eaafe3e105885955b8fc82a52c55bb4ec28aa497d67a9d17aa15f436e92c3785da06a8bac907f1f498d294680789f464d59b1416b1df0e55939f4c040a15c7a5d702dd6b3204390513702c25568a6a6c24202026cc365a0622019e33157d6743f7ea1d06ff5202952db5c91dbf521c8f6d6049043d3753695b6386e52d7b5a77d012d43494cfdbc45ad1322be664cc3d66c197669c5df5c469ce99ea438f51ed781c9060859472cdc861ece141030f20023236ec4ec3f3533715af8820b0f27fa117ba4855563082512d025b2d8d1d07f71e14faf3e2d738f907fc1283ce7031be89b6e00ef5dbf6ea15c725b70a0659392b42948efab821aedfefaa500135f0a845967b7a929111732c27f3b2be3ada6c77e21502e9bc12ef0c7ebf73157922065337f72c104724694dd6844aeb559513f0162311a0c8ad31b08cbb8ad5731307e1222e1ca8b3d052ffa7ac35d4bafb6fa29fcadd5c0cf226a2bda5022c2a9a936f16839b343a407c8257fff2f740336179b1aa90e286e5bf7445018a783562a7577cc6a64daa93e4c5c969fb95c8d6f6b33b52c0505a9507eeac9bcdde7e26bbcc6b119a7dac50278635d3ac87d42192cb36e2ad04943cdc175624230f3f409db3385d14391d720a6ba7589bbbd279b3e3381cf96bdecd66625db216dc858aa5985b25bbf979fc61eae4094a2c12e1399250c547dd1072621e0f3e02eee33780a12364b551ffea84f09acf3d86bf21f6bd93386bd456021cb36017a0969f6388488f57ada63927dcffcaef0f4be3f59498c35343295bb395970cd0d9f1df189544b1f397ec26dcebbd9cfb024547d758cdd69e6ff7ac571691e688bd85b9a4aa5284a55336b1c4efa847eafbbd7bec253707ecfe394be45570b8402b297d1a3a0a347bb182d71fb753dd4d8a7edd0bfdbb6d2da5b4a33d3330cad47fc23ba0d9d41f6e56fa556e0633140225374aa246dcf33748f483ce52c6b94b5014cbcb0bafd13635b099c1f1a63415763f9faca1e6b7759568a379d69050d4d3f532a38c8817cdecd52f399f988e4317e219ec4b3cfef882b1bee2cbfbd427989b198afecaf3d559b9aad8d34e005042110ee669b78d7228a9a437ff3478bb802f056039b105e98e9b56a72f1e0e8da4bd9d97829d43833984df322fd8114ebd7f7ca27e4a79d2491e1f45c95dbcc4dae04a1843d8d940ee500ed4bbda67edfc3836ef1cee48513100081f843d859846f760251b8d68878f1049a1d16e68bbff74e081405c2f33fd455db5312cf5032c81bf910b502e451c7a2f08cf440f6822fd91e4ec20ea8ad55885f53ddbddffa839beaa43799efcca62ed7b10c4d9162f4fd2de125d608f6c82350051aac5ab4291472c45bc596219bb95593537a7be8daca146041dac5dc33ffc873f9ffa4b6a9bcc2956c8dad81d466b36284c345c219509d5b8b74e99752e02e56800cf81ae6dbdab5634aca0daeef687f02a7223608251ac99a115a2ab461baea3a78d147752a9b94371cdff546d69bd098dd1256a2a48422fddc2ff7db381411d13e25b7ad061b535cf10c0af59918264d99cbeb2be18cbb9673d8f92ed3a93c456a9a474bb592cadb026b425870225d2e555262fe65be86eaae4162dc83726a09b5d7806e36a741a03af725d58f9f24c3efccff40b9954d5bd44c63242561ac56c3f11ad69d5e9b1c3be598282b09b8724639a8562dd68fdc71ef1337c26dc2458aed4d4aa3cf716194a5ec8b8678b700aeaf1d5bfac823779380be4f0db4cad1384313d6ab79f02724b5212667d2fb80974790ea63ca5fd763630d272b5716a3c4e5a946c384fb2abef968ef9fd55ab224b1f957938c85b286be25174afe82d243fe963002ef3925117aa0a4fbff13ff37c6109a9f636425b3fbad483a7095698d0e8088416947f2ed644b13b964c3cf13b7af7945a5f8028a56a7a5a3164d06429ded0c1a5828246d9663837253ac83d122ad47a1c92ddb299b5507b2e3244e173f9e4cc7ddd86b12e1d9b0dfb67feb2ea1bf88285e9bf93d5f8917c9ec24f0902d7af3e23dd2caffe3216411712f42d593b4ae359f1d8fa14f05a8aa135d90cbda992e587f9f5664ead017c1df84a8d14ae48b42c7d53464d47a4256d99b7660d17739450b7d365be548514f8aa91bc7ba72fcf4fa4bfedfc21ab975cba0a96091db2cc507f1e9c720093bfeec63543537daa664a4bad123a5b19c3fa4eff71ce8eb1dda67d85b48a849ee6cde51fd4e3cd95044733103faedbe907d6fe91393fe7fdd5d34cfe1c345c0040bad0558af4f27e1159ce4bcdc74c73b321ff4c0b73eae8b540b1942dc97f5871e2228e43888a60226d3e2397e885ac53e6c8e15551897d7e335f04abb2ed23b93938bf1506dd232c0facbb48b1abd11c4e187ae00e64eb5938bbb8cf53855123fe029bebc7b495c80add45693e902050d5dc689ed2cdf7a30f06a2ffae39775db0741b2e33ec8feecdf5a4d97d7c7639a2be94a8051a92b329468103b9aa9f9d17b9d7b33501220ce92675182bf197dc2ebe16d0ce291104b800677e477ea35c33e4df6d308e7f90354e473d8ea57dba9c121ee4182728e65e6164f7710213804e6b59ea63a44e5d5fdef6bdbf6f7579337bf8a40620384da349a55b92c04167368f0805b34e8d397ad0c3354d07cfb6b1250ca3e5885eb7610b7a3a6455457008cd21982b0864207d9bd9ff0f1af307590f46ce2deb8b8f15008f3b42f3d46c4525bc5db65b3373b475bb43658771cac290d190fd0e613ac08eda918d62e667688b0ab55b06f846b8b9e45d39cee08387cf67c5ca98753a4a8c241fcf77c8458b9d1a7ac8a7471336edb93bb4feb5a68ff4558e2717b90ccb53a7d2f7188a71a0a1707ec3fd9d189ce8d957fb4b273d6067c2d98ae54046ea15d6734a4133aeee23ec700c180c6bf691fb7b6ea10945920cf19c17c373078a2bb595eb90229ab2e69f329261dc5464b1a7b13f1528801a05d16601d6389f153343b51145836e23c438744b35ef88f16336a17c3d589e2241251122661bddb8996d3535e0c6bd7ce76860218fefa9020e1eb5967d1840bf073eef26dce50b9e034f6484ad01c1ec78e42a9cc2f0d2c226403e162cfaab6bd65ffb44b33006c0b392efa066c72c9a181bc5827c1fba080b5ca1dd00150766b5967da044bb39f84ce6addc923fc2a51613ef502abae2796e240da57ccbae0e6cf36b0446257b733b996c29d8b8eedf4f095b6b4b43c9b8879c597dc835d8891b827fe2af56d6d354b82ddd4d6e2640fc538a8e20ad4a23307f14046b92088a57c2be3d03bc1c719890aab5e5feb9b9ad3a2489a6b141fd2e05321261cac558468ea44d2514059be5b5605cdeb3403af1b9076823e322c58b4b6ea7a821b22c3a94069d5c3aa88959e17e20209a8b8201af55a0a2f6512cffd6fbdbb29b63cf9bcb81884a764d0b67058fb8a9fd66ab18f1a293743a45e995c10fd3f926343ce51cea4ad510941c6782d2ff5893313a73dc124ad2edabd783e8dff66f1c7951a7bc004ee13380c68346c0f723711ed5874dc285046439d4d14cf5c8cf9998d2ece540dbdbb9d0e209a9670079e810d4cacaaac637b9daf12f7efff39ba37b7fb0df076acc850457931829bb642f9e6393d1de85dbf50f8fb7b1f1fcbdd1f5f6a7c11d23035bf8d7484f4e8bccb11da6a5d28b668417f30a2bd445a96a8c8ead0f3b623b42b37d95a401fd4a9cd26b66c9c452a2eb3db0ee743cb1ac831c14a7fccb43eda869ce379bfe96b0da570fd519aaa11faac7303a84d44f1f2a652c98739ec61914a9817ce195c18bfe4d4d4a6fce5ee2649fdaffb21944a5e02a176c7d7ff378cc1350782c4bd25457674af8745968203a5d01f75309ff1057f6b5735f85ff7865b0a54444b91ec0bd2c9960ba08dd8f3e8b358ee538dc3d106330261477739f6b0f033c2336d1a3c9908511b7168103cbae7cf62248c093fb2554e633c50f5ef73e798d831f1e65bbc73d939a7662838a878e10b435f62ad16c9653fa1071224014ed5c75658e843b80770c09971248dee6d566fc55f4cb577abf8a9910d6d18b008a2ea398fe1d62596bddb76aa7ad7f0b6b0432fd7fc67f755c86e948a701f8c11005a6a219fe1aa95d10fb8759649af38dfeb7b0020243e3e26698d8e7a5dcc639c9ca2f8a351ee31fd9d297276dca55a6b08213a82356c3a694d9131b83f66a3abfb5137523592064092584e7165beed9dbc49bf27b750994858d7bf6c55ae3e65ad8d1291faae379b623b526a16fb6dca41b4095d15b21fb342c3b9028058c969d9475f0853b760f4917b60be8d9b0f899fd330acbcafecd6a2ea26157135fcae378f54718262d5fc8c34610e14ba215fd7662158e823419e54f9ac543b70a4e1256742c199bef411da1bc96758779e9bfa86b2d5e1dd45364f14a72ee02aec9df0f63566eb3674e895544d70d8b65f1baada38b99c0ddd81bbcbfd573338363ff1d5bb9e3f61dd8ef57c7ce83f70750c8b7989ed7d00f9f05d219aa5dc092cad64d063cceb361898739233e6cbccfd0659d10d8f4c1ac91", 0x1000}, {&(0x7f0000001280)="d3692048eb4bb17f5e44f5c12a70592bb506c0a758affc66bff8406ec860d569718f80292675da5a4ccdd384dfad2f2e9aa08d8b1d6b2f28f15384d67bec54e9cf3a4bf033be3addcb931ea96b6a038a1ef4c7df8b49b6d91ad0b053e38cc80b2ed8fb2a2924e4d087613315f641c496c29cb515561eed78059f0fdba0bf4dc2be7591f0e659b69423d3ba1c94d4ed2d2903ceed99334a33b23c7dcb155595155b01848bb60df67a0ff7eea3e50b7b734e3e9d7ea5eb27cff65293084e824f65a2ce4b04f374d9cc094661fe7172921f425ffbc294173413858a4f8c71d300c8ea0e98e563c62d451cda57481ca99ce561884395f9c62b42d1934973ec22980ff5c96c47fe74fd9b2d3b4e2d8a4999bce252758c4c1d493045deba514713b9012daec8d1acfe521564d9a29d7fc4e82fce0c820e28de25dc5c8fb0b5eb778617d37767c754e89ab95d0f37a3b04e847c579a90f1a0b5d2e2002256c53e447e1e0e145e029f405d2cfc74f1145d0910af218ac7d406edc0d74cfc6ac89a83bdbb5c1d7f9b702fef1697af838892c37574632e2c6e9502994b667ef4b650c00f7d552f8f658a2ea83ab8eeb38c152d0ba0fd35b27c24b3400045d9f5bc0d13addccb629d67621ee16ee81c7ff3d011c85f47ed71610269d7ef5a8b7a7ae4c00d5762fa6a4ad4ea8c602d217a90aa128f963d718881a40c325ba439aeabac0df40fd364360c74082982b085fb97fd41666f1d802f5e01ac188935ed18274847086e3015d6d88b697902143cfb92419fdb878424b619996497f0ed35e941a252dd928c8e9f4de476e462ab10f0393d249bc4849046382df1f873ae1ebcc9d2c58258e577e27b3d52353026f6e3813597703425cfbcb7b19ba61d243ce3b9753272823fa2b4ee4ae0480ca51f814976cab1575be9a89c079f57e06a1c85fe75e7ad44aeae1f5f2dcfdf65de85276021534b2d721d0e1bae4107c30b69419618dd383a78f960dba10884c76178eeebfdd2aa6f788077f4854f96e60ef7f81fb31ed387d5d9de58bbb8fefac214a70f4ed1ee365a31e7047d1f1d3f9daaec90e63f27ea98c2fd3e8e9b87425292dc93b62781424d71e2dcf89bd81fd4448d491a4da7093e698522d2da7921d096ec8999db664bcd2bd86af0c07dff8d63c86d654167c5951c091ae0c7a9b3ca457d05ea3f373e1acf2398130fb8b5f6f584dd5cd534908ef1d745ad2b8d26aefd4b46126b8164ab5b042f9886837b0ee0482a94ee989de3eda168b603b00bf7c6da627d5d61418fc2b0dccc6fbda59b55d56cc1fce185cfc3b1fc85a159b4f0a2c0354dfa6304df3ea0bf15ffb1e087354a65a49f725a42d11fad5b0c6d0438fc7d9ea0298d5ac440ce66c961e0d0c4cc40896fbb8d068df71be72375662d95917f8ae3299236b50247735a54036479b7cbf8d05e4f4365e9977232265ad62d503602bef1df25204a3f21f2ce9bcc1b484feaa663044ca4ebd844fad90ac13b54385d5ae2adeef7afca878caac9d3ac4b11d04aa632c9453875ad557d20aa2007f4727ff5d8a5371d9eae2712224ded78f02a13de4f0ba351dc98a13c92693bf18d811ec3455111bd4fd9f2c5b4c214c724948e1bd9b27a81339099128997b70a7389c96f751dc299073bcc4df49e41e1087db55befedcf2f0f9452b1d269b68c8f12915cc0661516fbdeee7d1508d3ad6c92fbcf52497cc1bade124a30d8d66bb680fd14d49829fe89d148022991411bb6f2d012acccfc792e1847116d85f04516b6532113e8f0359422877a56d14a1b90f571906e40e5d46274433abae2e9a117ec4c1c8cc261740446b339ea653f6ee74fdff72b581e8025e12a7696fd450a344dbc50d37ccc1cdf5e9391bf18b83373eb7b2e6982c7d508863f8aa48ce8545a60a238dd8dfb2d3cf3cc72bdbe550d98dab1a7e07068345c2c49ae5575e0ca0ca75294219d7c852dd4347a5c67aec83aa7cec6cc83bb96e022b36be684590051be70f466a7de53ec2450161116fb7f77d9cb31350b3acbb4e7027601bfe3bfe7f3bdec9a0abdf3c722a40b66c85e3a69ece7c5ed4e57ed5ba9097ba3c4061ff47ffd7d34fda481f0536496c53fb91e954b6e96b2b886ca673fd5f90e20581b7e345032543b8eac56fa8804b709dbc5b2d7b335a7e2aca13119c4e12e46730a51ddefd5954d7f86947774f51a42183306bc8cbe76cf9481216052203d2262bd0d87786c51f098ece7ee420b475ac98693a30849576074e80402d4f9bf55a938be57140d641e850f4962da43ee1d44b44d2bbff27c4377929f6f1a2649ea0e8b0f56cc91cd00bba7564efbe57b70be2fb5b30a56e1c68855c928ae3e3b97bbe62695897bb4c433861e6ccc7d3f93d06ad09c65a2bdace0540141a271c1311ef0f2f7cfa4d66c28d87adbfa25c4ee38d3e9fad20cf83d5b9a8b695e3674a2baebbb88b02c17ff0ca7c64d6ebe3db88c2ab4829ad72faf7fd8118965ed2d7c492da85fbbe4b374518d05348dc9974f016199338f3f20236a9d40a9ab5a6e6d956bd84334739bbcf8a87f1f97dae901f3e09d4cad421e120e3a64a6c2a4cef0adcfb404d16057a0cd1d526a637bb27e3e18b0de9a24394e6ac7042e00b09037a0df3de7c51b324796090b8b7c2aca0971392d30e7834e4af3e7848d9c9526d7be5ca099484bb4deb77cd852a9048c8959f6dbef4df8eaeb81e08880c491e2c07bf27d7204ded2ade267b45db96e57f3cb2fd2a1c3f3fe7c993b0c5ef7710928e72bcb73d4422fb8d91c47cdb45f2f163fb6caa49faf153ea18405c4894f9ba5b9447a3b8ff3aa75c2896ebfe3ba9d236af4938a4e7db0d296ecc97ab9554396b8dde82476017f0d036bfc61a0760429fcc1077491f0efed40067408aa8e887b0ee8545620294ade1732c0e5b41223cda7ff58bf0921c1f3aa5351899b3b9eef21e85f9bc9e13fc293ff8dc93c87e3870f431a229a8318dd6a345c2764719c0b9abd4d0010ee60c7fbc0c18c33b7b96cfd52b6f01c6cfddfe8c723d06daa713e14c2161d057dd0ced1875ff982b7d73e0bc5182c58be1b485fd9dc2a73e626ee46677d535c9fe983d868cfcb8b0cecab470f9685bc5b3f4795e769885778c3002c8a86e7af2811838ce39ee7a1e58f4ddc34568a655185a64b788b61f4fe4a3ea24e0c97366cb0d0e6f7d300aa04c059d56ef7859170b932ca8cb11dfe1f525909918a1c050341e459b45996f7f8e81301897a4dc634ad5f6104ad9fd361a82219efb9d619685d18c6bae16e2d6f7dc14ef8e326631866a678a29b1e1b29b4ddb9638708ec2021cd9a70a1c047d8f32b1ad56afa72f891bf9aa589f2b76a042db5b8a3d5074ef76a6a7069e9f1fcc19d6c33f0dc403112cb653c696de7a1254fd8d596eb63b729f58768e7baaa57ac651eb10ec35f238fdf08352e219d50a8850dbfcaea8caf5ee865b14440a625656507f745187895ee534add97d07b1c448c8b84f65ba0efa2d550a073e5b32282353a59ba6e6afe73046b11703b7cc8bd4ea97cce9ed61a2f3d2323cb34668087a4347d3e5a8f215831b16e7898928cc53b4c52e0fc64641e9c997fea6b8b55131e89dc324d10047fda20651350070120d03eccfc4e90f6ed877ca9d262fe0278e8d8e49358852ea6ff9dcb7f6bbdc8143605c934731a0d8d292fe6627fd9b94c1fd24cedd5859df3b7ba64eb5a158a6fac0803f9e0fbf106942a97062a69bb9401efbc2d34c6f73b3770df7814787a77d086c08a10068a0f29fd25211e800b6fcd4e30959f0c25aad349d9f182f64947cd4d7d4cd8a59ee623de96ff6ba981d8b8c927e2646da58cc91dc2d9a8b24231002254f75606d95de9130c6aca88358942de427512c89dce8b9d7370e090246096f75176bfeb3acd448cca0af3f35406c914c2a8265df1638e16ff4e3f1b8d6fce0bb2d19afa78a4309a813903a47e380c4be2d79c57a3abb383030841e34f563fa80fc3e27521870cbebf4db535974ffd05955662a0159d3800080bc66049401a36e57bcac535fe8df670cb29707d22eaa4fd4fc6e3d34058b5e104619f2c1356b05c69f3d9c6824c6c13fae353fe9e70358251c015a9516899d836d98c12ddadf0a892469c241002f2514da583f53bc6c969e7ee296d3087cc99443c4734e82830d53882bf2ef34544ea99395bea7461a2b778bfd1375d80c86889b6d5adaf8d706cfdeab26510f73986accba573df9d341331378719a4c2257d79516cad846118742dd8caf19355f3852d1b373d8a7f470615d5e37b19d57abaeba7439bda1488deac35d5bcd9c9405a40f46481f276c551ca4a2fe8ccef0d3151b520e90ac491413e788bfa79fb54f7e9bb6365849198627e2de0e826f31d2efac97df3e5f979d3332c7cd053c05ccc3d7147e7ed759874400beb1d67b0fb6f095eb636b96e3c85f9b42b0270d9d79f4c8fb6b24b9c32e3aa79f858a1a3b27f6402e474cedc3d32d1e1b60230cd126b3a35dc04fab692830118744323aecd72bd0b6e982b4190fddc01fcb796606e2e191ef69454bb741eabbd20b3e5ada93045aec4cb967d649c9873b1d7cc8818cf92f2716aae9e4a9ea0c4e1ee9c80d7b29a24451d44665ebf2438c29642a1e8469bf95cdb7ad391ae143afe74c5dc2fe50724647e0bd7fd94debb74c99ef86c792594291c53a33c6b431adb6285f78b1903f236968215cbbda7d1238dd2e0fb78fcdaeba92be906065407155985166ec5d77ae0c4fc7be20f226a68ad2db3bd2721ee1e84bcf9bb22fa911de05f69c0aa0b58feb6b6f927690e3a848f4e01313572addcef42045114225158d6b6f4dddfe130de0df1f3abf5c6209b80655f62ff349a993371d371939472f7543b31d51d319a7e1d1f319c0e4ec74e73d01a1f999b2d899182d03ee0c3c0d53c104b41728fb84b09ea0518dd128483a30051c1a31399ac623cccffb65cad1d024065614fa91f054f179e47dde43ce8f2f18fd225581e1981e30dd045ad4da5f31e0e3b2c83e32e4504aba9ca30d468f2b90ac7c81f630ed8e0ae8f7553aff2d24a6760f530fb42d8aac40f3955f67feb5abf7e37e4a8661633b728fcf52eeac84ff75d74c96887700a435e33df1ef8a9af799b9ce10fb76b434482f8e505e58283a76da8cf6589f99845d76858cf4df7a99fc3009f70daf12c7c4af1b43e23507e5c3383eb9296e7b3d4458f8cad4bd1d20bebc69b4596639e8a562923a709c273828d5dc9b18d7e2ceaa7a5c011424a1597fd128f78826c92b7a6dd1939e5b623cc8928f7526342ffbf553894eec24516e7eb8e01466a96a51de9c2570add2446b3d025a5f70d7b3e79fed19712b04dcf52d09b848523ff06a92249f559800ba0be018f30c6b644c2740aad47aa053b538c3d544b7977830178c9558751874da0623a0d77e32ea556454a28e90487be5b6236f3e7a165f077f462b0fd37e41b6b3171195b2ac5aa7c92764c34b7c52c6a383ef96e264402439cf1726dde93be85de5fa3c1458dc34241d860b35ace847aef21933df881dc9cd4b01b823332d3ef34b9c7f3d5065d06f839f1c2d7cbf53079d42f5dd63bc2d1b9da9a96a207d1e741d0c2407c0a92df819a79948b54367530a9af4be8354978e80da136def1a1b3d542086b8e2f3965b921b5189ec834b85502fcd6d441a64750d47789ecc5783af3c7cdbee0545b8a5112afe2f28a4383a9b204bf3f2b7e4fb00d93448e67eb7fa570023603a34331a3b8701144cc5026c0589cbdba5739150154ce6d1ce7158795", 0x1000}, {&(0x7f0000000140)="968362891956dcda0bf5889f", 0xc}, {&(0x7f0000002280)="a624466b7156fba6d50607c724bcb1df12edf17d8fbfd146ede62ad5aa3e56c93774aba9b74cd8249adaabe33ba565c1dd9d6c48adec662247d6d04cc84da77e07d01e6e71d2b62c0fa62d18ec", 0x4d}, {&(0x7f0000002300)="8f7fd12ba1ab0e0611011e8d926d6c9d6f59eb3a142ff52e20ac9f1bed8eee9e97e54646052fecbab88f4bb74b83deb2d1f8e74ed7617a7f7e790dd8dee3d97814d5e1ce8f5050657184d69b4177d6e178", 0x51}, {&(0x7f0000002380)="b5afabd5f33bef4790ebd9ed8e6dbbf47a8ce06025d5bd988325ba63125543f3e5e17b3657ebb4fec511077cb64dbe5769f655cda586d97c837cb7007bb86f35fad780d1aaf6faf01dafe84fee21fc57f96a3ae8bd3062fdfd732300", 0x5c}], 0x9, &(0x7f00000024c0)=[@mark={{0x14, 0x1, 0x24, 0x3c}}], 0x18}, 0x840) 00:04:40 executing program 2: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_AUTOCLOSE(r0, 0x84, 0x4, &(0x7f0000000140)=0x2, 0x4) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) r1 = socket$inet6_sctp(0xa, 0x5, 0x84) sendmsg$inet_sctp(r1, &(0x7f0000000880)={&(0x7f0000000100)=@in6={0xa, 0x0, 0x0, @dev, 0x1f}, 0x1c, &(0x7f0000000740)=[{&(0x7f0000000140)="b5", 0x1}], 0x1, &(0x7f0000000080)=ANY=[@ANYBLOB="2000000000000000840000000200000000000200000000000000000002856e84cda3778ce390127363b713eb9770a909199f210ed7da1b498b5812dd12393f31ab4a57c87112b85738c633207fc0c89fc2323c96e69599d415d691d603281f2170aede45d068ff33ad", @ANYRES32=0x0], 0x20}, 0x40) r2 = dup(r1) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r2, 0x84, 0x1d, &(0x7f0000000200)=ANY=[@ANYBLOB="93825702"], &(0x7f00000001c0)=0x4) accept$inet6(r1, &(0x7f0000000000)={0xa, 0x0, 0x0, @ipv4={""/10, ""/2, @initdev}}, &(0x7f0000000040)=0x1c) socket$inet6_sctp(0xa, 0x5, 0x84) (async) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) (async) setsockopt$inet_sctp6_SCTP_AUTOCLOSE(r0, 0x84, 0x4, &(0x7f0000000140)=0x2, 0x4) (async) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) (async) socket$inet6_sctp(0xa, 0x5, 0x84) (async) sendmsg$inet_sctp(r1, &(0x7f0000000880)={&(0x7f0000000100)=@in6={0xa, 0x0, 0x0, @dev, 0x1f}, 0x1c, &(0x7f0000000740)=[{&(0x7f0000000140)="b5", 0x1}], 0x1, &(0x7f0000000080)=ANY=[@ANYBLOB="2000000000000000840000000200000000000200000000000000000002856e84cda3778ce390127363b713eb9770a909199f210ed7da1b498b5812dd12393f31ab4a57c87112b85738c633207fc0c89fc2323c96e69599d415d691d603281f2170aede45d068ff33ad", @ANYRES32=0x0], 0x20}, 0x40) (async) dup(r1) (async) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r2, 0x84, 0x1d, &(0x7f0000000200)=ANY=[@ANYBLOB="93825702"], &(0x7f00000001c0)=0x4) (async) accept$inet6(r1, &(0x7f0000000000)={0xa, 0x0, 0x0, @ipv4={""/10, ""/2, @initdev}}, &(0x7f0000000040)=0x1c) (async) 00:04:40 executing program 0: ioprio_get$pid(0x0, 0x0) 00:04:40 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x78, 0x10, 0x401, 0x70bd2a, 0x0, {}, [@IFLA_LINKINFO={0x44, 0x12, 0x0, 0x1, @geneve={{0xb}, {0x34, 0x2, 0x0, 0x1, [@IFLA_GENEVE_LABEL={0x8, 0xb, 0x1, 0x0, 0x11}, @IFLA_GENEVE_PORT={0x6}, @IFLA_GENEVE_UDP_ZERO_CSUM6_TX={0x5, 0x9, 0x1}, @IFLA_GENEVE_COLLECT_METADATA={0x4}, @IFLA_GENEVE_REMOTE6={0x14, 0x7, @loopback}]}}}, @IFLA_ALT_IFNAME={0x14, 0x35, 'vlan0\x00'}]}, 0x78}}, 0x0) r1 = syz_init_net_socket$802154_raw(0x24, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000000c0)={'syzkaller0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0xc300480}, 0xc, &(0x7f0000000100)={&(0x7f0000000040)=@ipmr_getroute={0x1c, 0x1a, 0x10, 0x70bd29, 0x25dfdbfc, {0x80, 0x80, 0x14, 0x81, 0xfd, 0x2, 0x0, 0x9, 0x400}}, 0x1c}, 0x1, 0x0, 0x0, 0x24000000}, 0x4000080) 00:04:40 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) setsockopt$netlink_NETLINK_TX_RING(r0, 0x10e, 0xc, &(0x7f0000000040)={0x80}, 0x23d) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000100)=@ipv6_getroute={0x24, 0x1a, 0x1, 0x0, 0x0, {}, [@RTA_OIF={0x8, 0x1b}]}, 0x24}}, 0x0) sendmsg$sock(r0, &(0x7f0000002500)={0x0, 0x0, &(0x7f0000002400)=[{&(0x7f00000001c0)="2c9e64473881323bcd32f786ea4937a8b0ed777da75c63b3957ec1ac9efed7929744fc72d712577e3b1aa39294abc2dbb026a8e360505dd8a805bcf3cd6cc30d1af46b4dad62819963c8c2149b4bf6302e77a0ec76b82de55498640454e09e224b4e8e780b11f744c9512cda0f3c66228b5c700f510bb43b74c06998908f086c1bdcd8ed1e54d0a0c1234f4ac27a7a2fd08fdfcc9c91672b909b212b6062b75d7351057a6b6c48", 0xa7}, {&(0x7f0000000000)="7a9ad16da43fdcb80a", 0x9}, {&(0x7f00000000c0)="6e51d74859b45fa3fb90123c6e5de4ea00d4f01fd446542bb2cbbc00579897f519321cda627054b84ca88e962473828d3f178fe81f810bd706978e4a5b7e68b2", 0x40}, {&(0x7f0000000280)="b44648be508cae24a73380261dcfad14d7fd322d131aa57e9feec86b56b9ebaf4dd86315fc68811364cc7a34a3349dde98471d8f93c1a61b87416548f1f756816d800226a449bdc9c9dcc1b6601e6ec9c1bf79be11a12ab69388affd91860418a494b7ad2601ad5bca345127eb5df5ac7e0fd35dbb8372b89fb55bfc7a8b46a8a22928e6954840da36e3e54fafe3b9c9172f410673935120e53dc77f75218edfbdf4e7ed1c18ee2f73d22afecfdf6d503bd4ad1fd5d0ab0ef71803fe22548a4165846c35107669ed1108e5580adade6ff76810a0eadb1c39c493f198a2a2aacef983ae52824ed4b32099a47a2524e9f425d50cd0844179d8b01f1b447b1816689ae72bb0436116deddde77225a7c4ce01727aea62f7dd693cb79a3163a8a38027a671164ef6a20765187acf255fd2b95626c451f5fd19aa431b13d8b865d880986ad4988b6ea927b21c77409c6a2c021bb2725d3a63c17ae43a500b21a78b2e501b5162debb9cdc91bdac03030cd5437102b7e01e4cfb19bd247dcae8b9ff3736d2aaed2344d1ab6b4118d6e53f9c6604c34bed3a870f86683194435ac878cbe860bfdadca80ae468c32ea2a010e8456a1d29032e34c4766d05f48e32bb53306b440298dbdf71bf99c702315f6671edc6e3f94a99c3202c55e2159f00d454e9fd990f9a0a856f7f811b1b246694263cd1d444628ccb11f6492ed3535e151b4841651356f88e1b4cbdd2a8a878d333220e334b99954823dcee92367b791ac539439cc8652a2c0901302295d8e160f7b57d6c1bb3c17ba2621cde91fa20b871a06f7d3c1fd6c086030c9a533caca9ded712907b9218e4d78dcd69f30274bf662756804e5765f5560bee1c3cb1d82c78d8ae233e22a4790376db8e34617ea1b7ca11073407a6a66e316684c7c7fe3287d8bbb8bba4293da69a2f71a597e65aa7a33e04f5b621c6639c14344cfa4531a514d7effca0f4ff53741ce3c307cb0052728ea597fb63391a8129a228734412061b115889de4112fafbaaff86d9da03c10c006962529f1dc0c38a9437008d4c60e66cf1a966c33fa77dc36d8312767f72221c204316241bae09236bdeb05154ea1f059c3700b3f33f0ace3e128addc177497a44f6ac910bd704fd7ce7c71916f1c4bfd4a6c712dbff954a7f3c2ff30c1dd74db85133d8bec6e47ba726344c6f57c40db03a4453fe6e01050e4eaafe3e105885955b8fc82a52c55bb4ec28aa497d67a9d17aa15f436e92c3785da06a8bac907f1f498d294680789f464d59b1416b1df0e55939f4c040a15c7a5d702dd6b3204390513702c25568a6a6c24202026cc365a0622019e33157d6743f7ea1d06ff5202952db5c91dbf521c8f6d6049043d3753695b6386e52d7b5a77d012d43494cfdbc45ad1322be664cc3d66c197669c5df5c469ce99ea438f51ed781c9060859472cdc861ece141030f20023236ec4ec3f3533715af8820b0f27fa117ba4855563082512d025b2d8d1d07f71e14faf3e2d738f907fc1283ce7031be89b6e00ef5dbf6ea15c725b70a0659392b42948efab821aedfefaa500135f0a845967b7a929111732c27f3b2be3ada6c77e21502e9bc12ef0c7ebf73157922065337f72c104724694dd6844aeb559513f0162311a0c8ad31b08cbb8ad5731307e1222e1ca8b3d052ffa7ac35d4bafb6fa29fcadd5c0cf226a2bda5022c2a9a936f16839b343a407c8257fff2f740336179b1aa90e286e5bf7445018a783562a7577cc6a64daa93e4c5c969fb95c8d6f6b33b52c0505a9507eeac9bcdde7e26bbcc6b119a7dac50278635d3ac87d42192cb36e2ad04943cdc175624230f3f409db3385d14391d720a6ba7589bbbd279b3e3381cf96bdecd66625db216dc858aa5985b25bbf979fc61eae4094a2c12e1399250c547dd1072621e0f3e02eee33780a12364b551ffea84f09acf3d86bf21f6bd93386bd456021cb36017a0969f6388488f57ada63927dcffcaef0f4be3f59498c35343295bb395970cd0d9f1df189544b1f397ec26dcebbd9cfb024547d758cdd69e6ff7ac571691e688bd85b9a4aa5284a55336b1c4efa847eafbbd7bec253707ecfe394be45570b8402b297d1a3a0a347bb182d71fb753dd4d8a7edd0bfdbb6d2da5b4a33d3330cad47fc23ba0d9d41f6e56fa556e0633140225374aa246dcf33748f483ce52c6b94b5014cbcb0bafd13635b099c1f1a63415763f9faca1e6b7759568a379d69050d4d3f532a38c8817cdecd52f399f988e4317e219ec4b3cfef882b1bee2cbfbd427989b198afecaf3d559b9aad8d34e005042110ee669b78d7228a9a437ff3478bb802f056039b105e98e9b56a72f1e0e8da4bd9d97829d43833984df322fd8114ebd7f7ca27e4a79d2491e1f45c95dbcc4dae04a1843d8d940ee500ed4bbda67edfc3836ef1cee48513100081f843d859846f760251b8d68878f1049a1d16e68bbff74e081405c2f33fd455db5312cf5032c81bf910b502e451c7a2f08cf440f6822fd91e4ec20ea8ad55885f53ddbddffa839beaa43799efcca62ed7b10c4d9162f4fd2de125d608f6c82350051aac5ab4291472c45bc596219bb95593537a7be8daca146041dac5dc33ffc873f9ffa4b6a9bcc2956c8dad81d466b36284c345c219509d5b8b74e99752e02e56800cf81ae6dbdab5634aca0daeef687f02a7223608251ac99a115a2ab461baea3a78d147752a9b94371cdff546d69bd098dd1256a2a48422fddc2ff7db381411d13e25b7ad061b535cf10c0af59918264d99cbeb2be18cbb9673d8f92ed3a93c456a9a474bb592cadb026b425870225d2e555262fe65be86eaae4162dc83726a09b5d7806e36a741a03af725d58f9f24c3efccff40b9954d5bd44c63242561ac56c3f11ad69d5e9b1c3be598282b09b8724639a8562dd68fdc71ef1337c26dc2458aed4d4aa3cf716194a5ec8b8678b700aeaf1d5bfac823779380be4f0db4cad1384313d6ab79f02724b5212667d2fb80974790ea63ca5fd763630d272b5716a3c4e5a946c384fb2abef968ef9fd55ab224b1f957938c85b286be25174afe82d243fe963002ef3925117aa0a4fbff13ff37c6109a9f636425b3fbad483a7095698d0e8088416947f2ed644b13b964c3cf13b7af7945a5f8028a56a7a5a3164d06429ded0c1a5828246d9663837253ac83d122ad47a1c92ddb299b5507b2e3244e173f9e4cc7ddd86b12e1d9b0dfb67feb2ea1bf88285e9bf93d5f8917c9ec24f0902d7af3e23dd2caffe3216411712f42d593b4ae359f1d8fa14f05a8aa135d90cbda992e587f9f5664ead017c1df84a8d14ae48b42c7d53464d47a4256d99b7660d17739450b7d365be548514f8aa91bc7ba72fcf4fa4bfedfc21ab975cba0a96091db2cc507f1e9c720093bfeec63543537daa664a4bad123a5b19c3fa4eff71ce8eb1dda67d85b48a849ee6cde51fd4e3cd95044733103faedbe907d6fe91393fe7fdd5d34cfe1c345c0040bad0558af4f27e1159ce4bcdc74c73b321ff4c0b73eae8b540b1942dc97f5871e2228e43888a60226d3e2397e885ac53e6c8e15551897d7e335f04abb2ed23b93938bf1506dd232c0facbb48b1abd11c4e187ae00e64eb5938bbb8cf53855123fe029bebc7b495c80add45693e902050d5dc689ed2cdf7a30f06a2ffae39775db0741b2e33ec8feecdf5a4d97d7c7639a2be94a8051a92b329468103b9aa9f9d17b9d7b33501220ce92675182bf197dc2ebe16d0ce291104b800677e477ea35c33e4df6d308e7f90354e473d8ea57dba9c121ee4182728e65e6164f7710213804e6b59ea63a44e5d5fdef6bdbf6f7579337bf8a40620384da349a55b92c04167368f0805b34e8d397ad0c3354d07cfb6b1250ca3e5885eb7610b7a3a6455457008cd21982b0864207d9bd9ff0f1af307590f46ce2deb8b8f15008f3b42f3d46c4525bc5db65b3373b475bb43658771cac290d190fd0e613ac08eda918d62e667688b0ab55b06f846b8b9e45d39cee08387cf67c5ca98753a4a8c241fcf77c8458b9d1a7ac8a7471336edb93bb4feb5a68ff4558e2717b90ccb53a7d2f7188a71a0a1707ec3fd9d189ce8d957fb4b273d6067c2d98ae54046ea15d6734a4133aeee23ec700c180c6bf691fb7b6ea10945920cf19c17c373078a2bb595eb90229ab2e69f329261dc5464b1a7b13f1528801a05d16601d6389f153343b51145836e23c438744b35ef88f16336a17c3d589e2241251122661bddb8996d3535e0c6bd7ce76860218fefa9020e1eb5967d1840bf073eef26dce50b9e034f6484ad01c1ec78e42a9cc2f0d2c226403e162cfaab6bd65ffb44b33006c0b392efa066c72c9a181bc5827c1fba080b5ca1dd00150766b5967da044bb39f84ce6addc923fc2a51613ef502abae2796e240da57ccbae0e6cf36b0446257b733b996c29d8b8eedf4f095b6b4b43c9b8879c597dc835d8891b827fe2af56d6d354b82ddd4d6e2640fc538a8e20ad4a23307f14046b92088a57c2be3d03bc1c719890aab5e5feb9b9ad3a2489a6b141fd2e05321261cac558468ea44d2514059be5b5605cdeb3403af1b9076823e322c58b4b6ea7a821b22c3a94069d5c3aa88959e17e20209a8b8201af55a0a2f6512cffd6fbdbb29b63cf9bcb81884a764d0b67058fb8a9fd66ab18f1a293743a45e995c10fd3f926343ce51cea4ad510941c6782d2ff5893313a73dc124ad2edabd783e8dff66f1c7951a7bc004ee13380c68346c0f723711ed5874dc285046439d4d14cf5c8cf9998d2ece540dbdbb9d0e209a9670079e810d4cacaaac637b9daf12f7efff39ba37b7fb0df076acc850457931829bb642f9e6393d1de85dbf50f8fb7b1f1fcbdd1f5f6a7c11d23035bf8d7484f4e8bccb11da6a5d28b668417f30a2bd445a96a8c8ead0f3b623b42b37d95a401fd4a9cd26b66c9c452a2eb3db0ee743cb1ac831c14a7fccb43eda869ce379bfe96b0da570fd519aaa11faac7303a84d44f1f2a652c98739ec61914a9817ce195c18bfe4d4d4a6fce5ee2649fdaffb21944a5e02a176c7d7ff378cc1350782c4bd25457674af8745968203a5d01f75309ff1057f6b5735f85ff7865b0a54444b91ec0bd2c9960ba08dd8f3e8b358ee538dc3d106330261477739f6b0f033c2336d1a3c9908511b7168103cbae7cf62248c093fb2554e633c50f5ef73e798d831f1e65bbc73d939a7662838a878e10b435f62ad16c9653fa1071224014ed5c75658e843b80770c09971248dee6d566fc55f4cb577abf8a9910d6d18b008a2ea398fe1d62596bddb76aa7ad7f0b6b0432fd7fc67f755c86e948a701f8c11005a6a219fe1aa95d10fb8759649af38dfeb7b0020243e3e26698d8e7a5dcc639c9ca2f8a351ee31fd9d297276dca55a6b08213a82356c3a694d9131b83f66a3abfb5137523592064092584e7165beed9dbc49bf27b750994858d7bf6c55ae3e65ad8d1291faae379b623b526a16fb6dca41b4095d15b21fb342c3b9028058c969d9475f0853b760f4917b60be8d9b0f899fd330acbcafecd6a2ea26157135fcae378f54718262d5fc8c34610e14ba215fd7662158e823419e54f9ac543b70a4e1256742c199bef411da1bc96758779e9bfa86b2d5e1dd45364f14a72ee02aec9df0f63566eb3674e895544d70d8b65f1baada38b99c0ddd81bbcbfd573338363ff1d5bb9e3f61dd8ef57c7ce83f70750c8b7989ed7d00f9f05d219aa5dc092cad64d063cceb361898739233e6cbccfd0659d10d8f4c1ac91", 0x1000}, {&(0x7f0000001280)="d3692048eb4bb17f5e44f5c12a70592bb506c0a758affc66bff8406ec860d569718f80292675da5a4ccdd384dfad2f2e9aa08d8b1d6b2f28f15384d67bec54e9cf3a4bf033be3addcb931ea96b6a038a1ef4c7df8b49b6d91ad0b053e38cc80b2ed8fb2a2924e4d087613315f641c496c29cb515561eed78059f0fdba0bf4dc2be7591f0e659b69423d3ba1c94d4ed2d2903ceed99334a33b23c7dcb155595155b01848bb60df67a0ff7eea3e50b7b734e3e9d7ea5eb27cff65293084e824f65a2ce4b04f374d9cc094661fe7172921f425ffbc294173413858a4f8c71d300c8ea0e98e563c62d451cda57481ca99ce561884395f9c62b42d1934973ec22980ff5c96c47fe74fd9b2d3b4e2d8a4999bce252758c4c1d493045deba514713b9012daec8d1acfe521564d9a29d7fc4e82fce0c820e28de25dc5c8fb0b5eb778617d37767c754e89ab95d0f37a3b04e847c579a90f1a0b5d2e2002256c53e447e1e0e145e029f405d2cfc74f1145d0910af218ac7d406edc0d74cfc6ac89a83bdbb5c1d7f9b702fef1697af838892c37574632e2c6e9502994b667ef4b650c00f7d552f8f658a2ea83ab8eeb38c152d0ba0fd35b27c24b3400045d9f5bc0d13addccb629d67621ee16ee81c7ff3d011c85f47ed71610269d7ef5a8b7a7ae4c00d5762fa6a4ad4ea8c602d217a90aa128f963d718881a40c325ba439aeabac0df40fd364360c74082982b085fb97fd41666f1d802f5e01ac188935ed18274847086e3015d6d88b697902143cfb92419fdb878424b619996497f0ed35e941a252dd928c8e9f4de476e462ab10f0393d249bc4849046382df1f873ae1ebcc9d2c58258e577e27b3d52353026f6e3813597703425cfbcb7b19ba61d243ce3b9753272823fa2b4ee4ae0480ca51f814976cab1575be9a89c079f57e06a1c85fe75e7ad44aeae1f5f2dcfdf65de85276021534b2d721d0e1bae4107c30b69419618dd383a78f960dba10884c76178eeebfdd2aa6f788077f4854f96e60ef7f81fb31ed387d5d9de58bbb8fefac214a70f4ed1ee365a31e7047d1f1d3f9daaec90e63f27ea98c2fd3e8e9b87425292dc93b62781424d71e2dcf89bd81fd4448d491a4da7093e698522d2da7921d096ec8999db664bcd2bd86af0c07dff8d63c86d654167c5951c091ae0c7a9b3ca457d05ea3f373e1acf2398130fb8b5f6f584dd5cd534908ef1d745ad2b8d26aefd4b46126b8164ab5b042f9886837b0ee0482a94ee989de3eda168b603b00bf7c6da627d5d61418fc2b0dccc6fbda59b55d56cc1fce185cfc3b1fc85a159b4f0a2c0354dfa6304df3ea0bf15ffb1e087354a65a49f725a42d11fad5b0c6d0438fc7d9ea0298d5ac440ce66c961e0d0c4cc40896fbb8d068df71be72375662d95917f8ae3299236b50247735a54036479b7cbf8d05e4f4365e9977232265ad62d503602bef1df25204a3f21f2ce9bcc1b484feaa663044ca4ebd844fad90ac13b54385d5ae2adeef7afca878caac9d3ac4b11d04aa632c9453875ad557d20aa2007f4727ff5d8a5371d9eae2712224ded78f02a13de4f0ba351dc98a13c92693bf18d811ec3455111bd4fd9f2c5b4c214c724948e1bd9b27a81339099128997b70a7389c96f751dc299073bcc4df49e41e1087db55befedcf2f0f9452b1d269b68c8f12915cc0661516fbdeee7d1508d3ad6c92fbcf52497cc1bade124a30d8d66bb680fd14d49829fe89d148022991411bb6f2d012acccfc792e1847116d85f04516b6532113e8f0359422877a56d14a1b90f571906e40e5d46274433abae2e9a117ec4c1c8cc261740446b339ea653f6ee74fdff72b581e8025e12a7696fd450a344dbc50d37ccc1cdf5e9391bf18b83373eb7b2e6982c7d508863f8aa48ce8545a60a238dd8dfb2d3cf3cc72bdbe550d98dab1a7e07068345c2c49ae5575e0ca0ca75294219d7c852dd4347a5c67aec83aa7cec6cc83bb96e022b36be684590051be70f466a7de53ec2450161116fb7f77d9cb31350b3acbb4e7027601bfe3bfe7f3bdec9a0abdf3c722a40b66c85e3a69ece7c5ed4e57ed5ba9097ba3c4061ff47ffd7d34fda481f0536496c53fb91e954b6e96b2b886ca673fd5f90e20581b7e345032543b8eac56fa8804b709dbc5b2d7b335a7e2aca13119c4e12e46730a51ddefd5954d7f86947774f51a42183306bc8cbe76cf9481216052203d2262bd0d87786c51f098ece7ee420b475ac98693a30849576074e80402d4f9bf55a938be57140d641e850f4962da43ee1d44b44d2bbff27c4377929f6f1a2649ea0e8b0f56cc91cd00bba7564efbe57b70be2fb5b30a56e1c68855c928ae3e3b97bbe62695897bb4c433861e6ccc7d3f93d06ad09c65a2bdace0540141a271c1311ef0f2f7cfa4d66c28d87adbfa25c4ee38d3e9fad20cf83d5b9a8b695e3674a2baebbb88b02c17ff0ca7c64d6ebe3db88c2ab4829ad72faf7fd8118965ed2d7c492da85fbbe4b374518d05348dc9974f016199338f3f20236a9d40a9ab5a6e6d956bd84334739bbcf8a87f1f97dae901f3e09d4cad421e120e3a64a6c2a4cef0adcfb404d16057a0cd1d526a637bb27e3e18b0de9a24394e6ac7042e00b09037a0df3de7c51b324796090b8b7c2aca0971392d30e7834e4af3e7848d9c9526d7be5ca099484bb4deb77cd852a9048c8959f6dbef4df8eaeb81e08880c491e2c07bf27d7204ded2ade267b45db96e57f3cb2fd2a1c3f3fe7c993b0c5ef7710928e72bcb73d4422fb8d91c47cdb45f2f163fb6caa49faf153ea18405c4894f9ba5b9447a3b8ff3aa75c2896ebfe3ba9d236af4938a4e7db0d296ecc97ab9554396b8dde82476017f0d036bfc61a0760429fcc1077491f0efed40067408aa8e887b0ee8545620294ade1732c0e5b41223cda7ff58bf0921c1f3aa5351899b3b9eef21e85f9bc9e13fc293ff8dc93c87e3870f431a229a8318dd6a345c2764719c0b9abd4d0010ee60c7fbc0c18c33b7b96cfd52b6f01c6cfddfe8c723d06daa713e14c2161d057dd0ced1875ff982b7d73e0bc5182c58be1b485fd9dc2a73e626ee46677d535c9fe983d868cfcb8b0cecab470f9685bc5b3f4795e769885778c3002c8a86e7af2811838ce39ee7a1e58f4ddc34568a655185a64b788b61f4fe4a3ea24e0c97366cb0d0e6f7d300aa04c059d56ef7859170b932ca8cb11dfe1f525909918a1c050341e459b45996f7f8e81301897a4dc634ad5f6104ad9fd361a82219efb9d619685d18c6bae16e2d6f7dc14ef8e326631866a678a29b1e1b29b4ddb9638708ec2021cd9a70a1c047d8f32b1ad56afa72f891bf9aa589f2b76a042db5b8a3d5074ef76a6a7069e9f1fcc19d6c33f0dc403112cb653c696de7a1254fd8d596eb63b729f58768e7baaa57ac651eb10ec35f238fdf08352e219d50a8850dbfcaea8caf5ee865b14440a625656507f745187895ee534add97d07b1c448c8b84f65ba0efa2d550a073e5b32282353a59ba6e6afe73046b11703b7cc8bd4ea97cce9ed61a2f3d2323cb34668087a4347d3e5a8f215831b16e7898928cc53b4c52e0fc64641e9c997fea6b8b55131e89dc324d10047fda20651350070120d03eccfc4e90f6ed877ca9d262fe0278e8d8e49358852ea6ff9dcb7f6bbdc8143605c934731a0d8d292fe6627fd9b94c1fd24cedd5859df3b7ba64eb5a158a6fac0803f9e0fbf106942a97062a69bb9401efbc2d34c6f73b3770df7814787a77d086c08a10068a0f29fd25211e800b6fcd4e30959f0c25aad349d9f182f64947cd4d7d4cd8a59ee623de96ff6ba981d8b8c927e2646da58cc91dc2d9a8b24231002254f75606d95de9130c6aca88358942de427512c89dce8b9d7370e090246096f75176bfeb3acd448cca0af3f35406c914c2a8265df1638e16ff4e3f1b8d6fce0bb2d19afa78a4309a813903a47e380c4be2d79c57a3abb383030841e34f563fa80fc3e27521870cbebf4db535974ffd05955662a0159d3800080bc66049401a36e57bcac535fe8df670cb29707d22eaa4fd4fc6e3d34058b5e104619f2c1356b05c69f3d9c6824c6c13fae353fe9e70358251c015a9516899d836d98c12ddadf0a892469c241002f2514da583f53bc6c969e7ee296d3087cc99443c4734e82830d53882bf2ef34544ea99395bea7461a2b778bfd1375d80c86889b6d5adaf8d706cfdeab26510f73986accba573df9d341331378719a4c2257d79516cad846118742dd8caf19355f3852d1b373d8a7f470615d5e37b19d57abaeba7439bda1488deac35d5bcd9c9405a40f46481f276c551ca4a2fe8ccef0d3151b520e90ac491413e788bfa79fb54f7e9bb6365849198627e2de0e826f31d2efac97df3e5f979d3332c7cd053c05ccc3d7147e7ed759874400beb1d67b0fb6f095eb636b96e3c85f9b42b0270d9d79f4c8fb6b24b9c32e3aa79f858a1a3b27f6402e474cedc3d32d1e1b60230cd126b3a35dc04fab692830118744323aecd72bd0b6e982b4190fddc01fcb796606e2e191ef69454bb741eabbd20b3e5ada93045aec4cb967d649c9873b1d7cc8818cf92f2716aae9e4a9ea0c4e1ee9c80d7b29a24451d44665ebf2438c29642a1e8469bf95cdb7ad391ae143afe74c5dc2fe50724647e0bd7fd94debb74c99ef86c792594291c53a33c6b431adb6285f78b1903f236968215cbbda7d1238dd2e0fb78fcdaeba92be906065407155985166ec5d77ae0c4fc7be20f226a68ad2db3bd2721ee1e84bcf9bb22fa911de05f69c0aa0b58feb6b6f927690e3a848f4e01313572addcef42045114225158d6b6f4dddfe130de0df1f3abf5c6209b80655f62ff349a993371d371939472f7543b31d51d319a7e1d1f319c0e4ec74e73d01a1f999b2d899182d03ee0c3c0d53c104b41728fb84b09ea0518dd128483a30051c1a31399ac623cccffb65cad1d024065614fa91f054f179e47dde43ce8f2f18fd225581e1981e30dd045ad4da5f31e0e3b2c83e32e4504aba9ca30d468f2b90ac7c81f630ed8e0ae8f7553aff2d24a6760f530fb42d8aac40f3955f67feb5abf7e37e4a8661633b728fcf52eeac84ff75d74c96887700a435e33df1ef8a9af799b9ce10fb76b434482f8e505e58283a76da8cf6589f99845d76858cf4df7a99fc3009f70daf12c7c4af1b43e23507e5c3383eb9296e7b3d4458f8cad4bd1d20bebc69b4596639e8a562923a709c273828d5dc9b18d7e2ceaa7a5c011424a1597fd128f78826c92b7a6dd1939e5b623cc8928f7526342ffbf553894eec24516e7eb8e01466a96a51de9c2570add2446b3d025a5f70d7b3e79fed19712b04dcf52d09b848523ff06a92249f559800ba0be018f30c6b644c2740aad47aa053b538c3d544b7977830178c9558751874da0623a0d77e32ea556454a28e90487be5b6236f3e7a165f077f462b0fd37e41b6b3171195b2ac5aa7c92764c34b7c52c6a383ef96e264402439cf1726dde93be85de5fa3c1458dc34241d860b35ace847aef21933df881dc9cd4b01b823332d3ef34b9c7f3d5065d06f839f1c2d7cbf53079d42f5dd63bc2d1b9da9a96a207d1e741d0c2407c0a92df819a79948b54367530a9af4be8354978e80da136def1a1b3d542086b8e2f3965b921b5189ec834b85502fcd6d441a64750d47789ecc5783af3c7cdbee0545b8a5112afe2f28a4383a9b204bf3f2b7e4fb00d93448e67eb7fa570023603a34331a3b8701144cc5026c0589cbdba5739150154ce6d1ce7158795", 0x1000}, {&(0x7f0000000140)="968362891956dcda0bf5889f", 0xc}, {&(0x7f0000002280)="a624466b7156fba6d50607c724bcb1df12edf17d8fbfd146ede62ad5aa3e56c93774aba9b74cd8249adaabe33ba565c1dd9d6c48adec662247d6d04cc84da77e07d01e6e71d2b62c0fa62d18ec", 0x4d}, {&(0x7f0000002300)="8f7fd12ba1ab0e0611011e8d926d6c9d6f59eb3a142ff52e20ac9f1bed8eee9e97e54646052fecbab88f4bb74b83deb2d1f8e74ed7617a7f7e790dd8dee3d97814d5e1ce8f5050657184d69b4177d6e178", 0x51}, {&(0x7f0000002380)="b5afabd5f33bef4790ebd9ed8e6dbbf47a8ce06025d5bd988325ba63125543f3e5e17b3657ebb4fec511077cb64dbe5769f655cda586d97c837cb7007bb86f35fad780d1aaf6faf01dafe84fee21fc57f96a3ae8bd3062fdfd732300", 0x5c}], 0x9, &(0x7f00000024c0)=[@mark={{0x14, 0x1, 0x24, 0x3c}}], 0x18}, 0x840) socket$nl_route(0x10, 0x3, 0x0) (async) setsockopt$netlink_NETLINK_TX_RING(r0, 0x10e, 0xc, &(0x7f0000000040)={0x80}, 0x23d) (async) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000100)=@ipv6_getroute={0x24, 0x1a, 0x1, 0x0, 0x0, {}, [@RTA_OIF={0x8, 0x1b}]}, 0x24}}, 0x0) (async) sendmsg$sock(r0, &(0x7f0000002500)={0x0, 0x0, &(0x7f0000002400)=[{&(0x7f00000001c0)="2c9e64473881323bcd32f786ea4937a8b0ed777da75c63b3957ec1ac9efed7929744fc72d712577e3b1aa39294abc2dbb026a8e360505dd8a805bcf3cd6cc30d1af46b4dad62819963c8c2149b4bf6302e77a0ec76b82de55498640454e09e224b4e8e780b11f744c9512cda0f3c66228b5c700f510bb43b74c06998908f086c1bdcd8ed1e54d0a0c1234f4ac27a7a2fd08fdfcc9c91672b909b212b6062b75d7351057a6b6c48", 0xa7}, {&(0x7f0000000000)="7a9ad16da43fdcb80a", 0x9}, {&(0x7f00000000c0)="6e51d74859b45fa3fb90123c6e5de4ea00d4f01fd446542bb2cbbc00579897f519321cda627054b84ca88e962473828d3f178fe81f810bd706978e4a5b7e68b2", 0x40}, {&(0x7f0000000280)="b44648be508cae24a73380261dcfad14d7fd322d131aa57e9feec86b56b9ebaf4dd86315fc68811364cc7a34a3349dde98471d8f93c1a61b87416548f1f756816d800226a449bdc9c9dcc1b6601e6ec9c1bf79be11a12ab69388affd91860418a494b7ad2601ad5bca345127eb5df5ac7e0fd35dbb8372b89fb55bfc7a8b46a8a22928e6954840da36e3e54fafe3b9c9172f410673935120e53dc77f75218edfbdf4e7ed1c18ee2f73d22afecfdf6d503bd4ad1fd5d0ab0ef71803fe22548a4165846c35107669ed1108e5580adade6ff76810a0eadb1c39c493f198a2a2aacef983ae52824ed4b32099a47a2524e9f425d50cd0844179d8b01f1b447b1816689ae72bb0436116deddde77225a7c4ce01727aea62f7dd693cb79a3163a8a38027a671164ef6a20765187acf255fd2b95626c451f5fd19aa431b13d8b865d880986ad4988b6ea927b21c77409c6a2c021bb2725d3a63c17ae43a500b21a78b2e501b5162debb9cdc91bdac03030cd5437102b7e01e4cfb19bd247dcae8b9ff3736d2aaed2344d1ab6b4118d6e53f9c6604c34bed3a870f86683194435ac878cbe860bfdadca80ae468c32ea2a010e8456a1d29032e34c4766d05f48e32bb53306b440298dbdf71bf99c702315f6671edc6e3f94a99c3202c55e2159f00d454e9fd990f9a0a856f7f811b1b246694263cd1d444628ccb11f6492ed3535e151b4841651356f88e1b4cbdd2a8a878d333220e334b99954823dcee92367b791ac539439cc8652a2c0901302295d8e160f7b57d6c1bb3c17ba2621cde91fa20b871a06f7d3c1fd6c086030c9a533caca9ded712907b9218e4d78dcd69f30274bf662756804e5765f5560bee1c3cb1d82c78d8ae233e22a4790376db8e34617ea1b7ca11073407a6a66e316684c7c7fe3287d8bbb8bba4293da69a2f71a597e65aa7a33e04f5b621c6639c14344cfa4531a514d7effca0f4ff53741ce3c307cb0052728ea597fb63391a8129a228734412061b115889de4112fafbaaff86d9da03c10c006962529f1dc0c38a9437008d4c60e66cf1a966c33fa77dc36d8312767f72221c204316241bae09236bdeb05154ea1f059c3700b3f33f0ace3e128addc177497a44f6ac910bd704fd7ce7c71916f1c4bfd4a6c712dbff954a7f3c2ff30c1dd74db85133d8bec6e47ba726344c6f57c40db03a4453fe6e01050e4eaafe3e105885955b8fc82a52c55bb4ec28aa497d67a9d17aa15f436e92c3785da06a8bac907f1f498d294680789f464d59b1416b1df0e55939f4c040a15c7a5d702dd6b3204390513702c25568a6a6c24202026cc365a0622019e33157d6743f7ea1d06ff5202952db5c91dbf521c8f6d6049043d3753695b6386e52d7b5a77d012d43494cfdbc45ad1322be664cc3d66c197669c5df5c469ce99ea438f51ed781c9060859472cdc861ece141030f20023236ec4ec3f3533715af8820b0f27fa117ba4855563082512d025b2d8d1d07f71e14faf3e2d738f907fc1283ce7031be89b6e00ef5dbf6ea15c725b70a0659392b42948efab821aedfefaa500135f0a845967b7a929111732c27f3b2be3ada6c77e21502e9bc12ef0c7ebf73157922065337f72c104724694dd6844aeb559513f0162311a0c8ad31b08cbb8ad5731307e1222e1ca8b3d052ffa7ac35d4bafb6fa29fcadd5c0cf226a2bda5022c2a9a936f16839b343a407c8257fff2f740336179b1aa90e286e5bf7445018a783562a7577cc6a64daa93e4c5c969fb95c8d6f6b33b52c0505a9507eeac9bcdde7e26bbcc6b119a7dac50278635d3ac87d42192cb36e2ad04943cdc175624230f3f409db3385d14391d720a6ba7589bbbd279b3e3381cf96bdecd66625db216dc858aa5985b25bbf979fc61eae4094a2c12e1399250c547dd1072621e0f3e02eee33780a12364b551ffea84f09acf3d86bf21f6bd93386bd456021cb36017a0969f6388488f57ada63927dcffcaef0f4be3f59498c35343295bb395970cd0d9f1df189544b1f397ec26dcebbd9cfb024547d758cdd69e6ff7ac571691e688bd85b9a4aa5284a55336b1c4efa847eafbbd7bec253707ecfe394be45570b8402b297d1a3a0a347bb182d71fb753dd4d8a7edd0bfdbb6d2da5b4a33d3330cad47fc23ba0d9d41f6e56fa556e0633140225374aa246dcf33748f483ce52c6b94b5014cbcb0bafd13635b099c1f1a63415763f9faca1e6b7759568a379d69050d4d3f532a38c8817cdecd52f399f988e4317e219ec4b3cfef882b1bee2cbfbd427989b198afecaf3d559b9aad8d34e005042110ee669b78d7228a9a437ff3478bb802f056039b105e98e9b56a72f1e0e8da4bd9d97829d43833984df322fd8114ebd7f7ca27e4a79d2491e1f45c95dbcc4dae04a1843d8d940ee500ed4bbda67edfc3836ef1cee48513100081f843d859846f760251b8d68878f1049a1d16e68bbff74e081405c2f33fd455db5312cf5032c81bf910b502e451c7a2f08cf440f6822fd91e4ec20ea8ad55885f53ddbddffa839beaa43799efcca62ed7b10c4d9162f4fd2de125d608f6c82350051aac5ab4291472c45bc596219bb95593537a7be8daca146041dac5dc33ffc873f9ffa4b6a9bcc2956c8dad81d466b36284c345c219509d5b8b74e99752e02e56800cf81ae6dbdab5634aca0daeef687f02a7223608251ac99a115a2ab461baea3a78d147752a9b94371cdff546d69bd098dd1256a2a48422fddc2ff7db381411d13e25b7ad061b535cf10c0af59918264d99cbeb2be18cbb9673d8f92ed3a93c456a9a474bb592cadb026b425870225d2e555262fe65be86eaae4162dc83726a09b5d7806e36a741a03af725d58f9f24c3efccff40b9954d5bd44c63242561ac56c3f11ad69d5e9b1c3be598282b09b8724639a8562dd68fdc71ef1337c26dc2458aed4d4aa3cf716194a5ec8b8678b700aeaf1d5bfac823779380be4f0db4cad1384313d6ab79f02724b5212667d2fb80974790ea63ca5fd763630d272b5716a3c4e5a946c384fb2abef968ef9fd55ab224b1f957938c85b286be25174afe82d243fe963002ef3925117aa0a4fbff13ff37c6109a9f636425b3fbad483a7095698d0e8088416947f2ed644b13b964c3cf13b7af7945a5f8028a56a7a5a3164d06429ded0c1a5828246d9663837253ac83d122ad47a1c92ddb299b5507b2e3244e173f9e4cc7ddd86b12e1d9b0dfb67feb2ea1bf88285e9bf93d5f8917c9ec24f0902d7af3e23dd2caffe3216411712f42d593b4ae359f1d8fa14f05a8aa135d90cbda992e587f9f5664ead017c1df84a8d14ae48b42c7d53464d47a4256d99b7660d17739450b7d365be548514f8aa91bc7ba72fcf4fa4bfedfc21ab975cba0a96091db2cc507f1e9c720093bfeec63543537daa664a4bad123a5b19c3fa4eff71ce8eb1dda67d85b48a849ee6cde51fd4e3cd95044733103faedbe907d6fe91393fe7fdd5d34cfe1c345c0040bad0558af4f27e1159ce4bcdc74c73b321ff4c0b73eae8b540b1942dc97f5871e2228e43888a60226d3e2397e885ac53e6c8e15551897d7e335f04abb2ed23b93938bf1506dd232c0facbb48b1abd11c4e187ae00e64eb5938bbb8cf53855123fe029bebc7b495c80add45693e902050d5dc689ed2cdf7a30f06a2ffae39775db0741b2e33ec8feecdf5a4d97d7c7639a2be94a8051a92b329468103b9aa9f9d17b9d7b33501220ce92675182bf197dc2ebe16d0ce291104b800677e477ea35c33e4df6d308e7f90354e473d8ea57dba9c121ee4182728e65e6164f7710213804e6b59ea63a44e5d5fdef6bdbf6f7579337bf8a40620384da349a55b92c04167368f0805b34e8d397ad0c3354d07cfb6b1250ca3e5885eb7610b7a3a6455457008cd21982b0864207d9bd9ff0f1af307590f46ce2deb8b8f15008f3b42f3d46c4525bc5db65b3373b475bb43658771cac290d190fd0e613ac08eda918d62e667688b0ab55b06f846b8b9e45d39cee08387cf67c5ca98753a4a8c241fcf77c8458b9d1a7ac8a7471336edb93bb4feb5a68ff4558e2717b90ccb53a7d2f7188a71a0a1707ec3fd9d189ce8d957fb4b273d6067c2d98ae54046ea15d6734a4133aeee23ec700c180c6bf691fb7b6ea10945920cf19c17c373078a2bb595eb90229ab2e69f329261dc5464b1a7b13f1528801a05d16601d6389f153343b51145836e23c438744b35ef88f16336a17c3d589e2241251122661bddb8996d3535e0c6bd7ce76860218fefa9020e1eb5967d1840bf073eef26dce50b9e034f6484ad01c1ec78e42a9cc2f0d2c226403e162cfaab6bd65ffb44b33006c0b392efa066c72c9a181bc5827c1fba080b5ca1dd00150766b5967da044bb39f84ce6addc923fc2a51613ef502abae2796e240da57ccbae0e6cf36b0446257b733b996c29d8b8eedf4f095b6b4b43c9b8879c597dc835d8891b827fe2af56d6d354b82ddd4d6e2640fc538a8e20ad4a23307f14046b92088a57c2be3d03bc1c719890aab5e5feb9b9ad3a2489a6b141fd2e05321261cac558468ea44d2514059be5b5605cdeb3403af1b9076823e322c58b4b6ea7a821b22c3a94069d5c3aa88959e17e20209a8b8201af55a0a2f6512cffd6fbdbb29b63cf9bcb81884a764d0b67058fb8a9fd66ab18f1a293743a45e995c10fd3f926343ce51cea4ad510941c6782d2ff5893313a73dc124ad2edabd783e8dff66f1c7951a7bc004ee13380c68346c0f723711ed5874dc285046439d4d14cf5c8cf9998d2ece540dbdbb9d0e209a9670079e810d4cacaaac637b9daf12f7efff39ba37b7fb0df076acc850457931829bb642f9e6393d1de85dbf50f8fb7b1f1fcbdd1f5f6a7c11d23035bf8d7484f4e8bccb11da6a5d28b668417f30a2bd445a96a8c8ead0f3b623b42b37d95a401fd4a9cd26b66c9c452a2eb3db0ee743cb1ac831c14a7fccb43eda869ce379bfe96b0da570fd519aaa11faac7303a84d44f1f2a652c98739ec61914a9817ce195c18bfe4d4d4a6fce5ee2649fdaffb21944a5e02a176c7d7ff378cc1350782c4bd25457674af8745968203a5d01f75309ff1057f6b5735f85ff7865b0a54444b91ec0bd2c9960ba08dd8f3e8b358ee538dc3d106330261477739f6b0f033c2336d1a3c9908511b7168103cbae7cf62248c093fb2554e633c50f5ef73e798d831f1e65bbc73d939a7662838a878e10b435f62ad16c9653fa1071224014ed5c75658e843b80770c09971248dee6d566fc55f4cb577abf8a9910d6d18b008a2ea398fe1d62596bddb76aa7ad7f0b6b0432fd7fc67f755c86e948a701f8c11005a6a219fe1aa95d10fb8759649af38dfeb7b0020243e3e26698d8e7a5dcc639c9ca2f8a351ee31fd9d297276dca55a6b08213a82356c3a694d9131b83f66a3abfb5137523592064092584e7165beed9dbc49bf27b750994858d7bf6c55ae3e65ad8d1291faae379b623b526a16fb6dca41b4095d15b21fb342c3b9028058c969d9475f0853b760f4917b60be8d9b0f899fd330acbcafecd6a2ea26157135fcae378f54718262d5fc8c34610e14ba215fd7662158e823419e54f9ac543b70a4e1256742c199bef411da1bc96758779e9bfa86b2d5e1dd45364f14a72ee02aec9df0f63566eb3674e895544d70d8b65f1baada38b99c0ddd81bbcbfd573338363ff1d5bb9e3f61dd8ef57c7ce83f70750c8b7989ed7d00f9f05d219aa5dc092cad64d063cceb361898739233e6cbccfd0659d10d8f4c1ac91", 0x1000}, {&(0x7f0000001280)="d3692048eb4bb17f5e44f5c12a70592bb506c0a758affc66bff8406ec860d569718f80292675da5a4ccdd384dfad2f2e9aa08d8b1d6b2f28f15384d67bec54e9cf3a4bf033be3addcb931ea96b6a038a1ef4c7df8b49b6d91ad0b053e38cc80b2ed8fb2a2924e4d087613315f641c496c29cb515561eed78059f0fdba0bf4dc2be7591f0e659b69423d3ba1c94d4ed2d2903ceed99334a33b23c7dcb155595155b01848bb60df67a0ff7eea3e50b7b734e3e9d7ea5eb27cff65293084e824f65a2ce4b04f374d9cc094661fe7172921f425ffbc294173413858a4f8c71d300c8ea0e98e563c62d451cda57481ca99ce561884395f9c62b42d1934973ec22980ff5c96c47fe74fd9b2d3b4e2d8a4999bce252758c4c1d493045deba514713b9012daec8d1acfe521564d9a29d7fc4e82fce0c820e28de25dc5c8fb0b5eb778617d37767c754e89ab95d0f37a3b04e847c579a90f1a0b5d2e2002256c53e447e1e0e145e029f405d2cfc74f1145d0910af218ac7d406edc0d74cfc6ac89a83bdbb5c1d7f9b702fef1697af838892c37574632e2c6e9502994b667ef4b650c00f7d552f8f658a2ea83ab8eeb38c152d0ba0fd35b27c24b3400045d9f5bc0d13addccb629d67621ee16ee81c7ff3d011c85f47ed71610269d7ef5a8b7a7ae4c00d5762fa6a4ad4ea8c602d217a90aa128f963d718881a40c325ba439aeabac0df40fd364360c74082982b085fb97fd41666f1d802f5e01ac188935ed18274847086e3015d6d88b697902143cfb92419fdb878424b619996497f0ed35e941a252dd928c8e9f4de476e462ab10f0393d249bc4849046382df1f873ae1ebcc9d2c58258e577e27b3d52353026f6e3813597703425cfbcb7b19ba61d243ce3b9753272823fa2b4ee4ae0480ca51f814976cab1575be9a89c079f57e06a1c85fe75e7ad44aeae1f5f2dcfdf65de85276021534b2d721d0e1bae4107c30b69419618dd383a78f960dba10884c76178eeebfdd2aa6f788077f4854f96e60ef7f81fb31ed387d5d9de58bbb8fefac214a70f4ed1ee365a31e7047d1f1d3f9daaec90e63f27ea98c2fd3e8e9b87425292dc93b62781424d71e2dcf89bd81fd4448d491a4da7093e698522d2da7921d096ec8999db664bcd2bd86af0c07dff8d63c86d654167c5951c091ae0c7a9b3ca457d05ea3f373e1acf2398130fb8b5f6f584dd5cd534908ef1d745ad2b8d26aefd4b46126b8164ab5b042f9886837b0ee0482a94ee989de3eda168b603b00bf7c6da627d5d61418fc2b0dccc6fbda59b55d56cc1fce185cfc3b1fc85a159b4f0a2c0354dfa6304df3ea0bf15ffb1e087354a65a49f725a42d11fad5b0c6d0438fc7d9ea0298d5ac440ce66c961e0d0c4cc40896fbb8d068df71be72375662d95917f8ae3299236b50247735a54036479b7cbf8d05e4f4365e9977232265ad62d503602bef1df25204a3f21f2ce9bcc1b484feaa663044ca4ebd844fad90ac13b54385d5ae2adeef7afca878caac9d3ac4b11d04aa632c9453875ad557d20aa2007f4727ff5d8a5371d9eae2712224ded78f02a13de4f0ba351dc98a13c92693bf18d811ec3455111bd4fd9f2c5b4c214c724948e1bd9b27a81339099128997b70a7389c96f751dc299073bcc4df49e41e1087db55befedcf2f0f9452b1d269b68c8f12915cc0661516fbdeee7d1508d3ad6c92fbcf52497cc1bade124a30d8d66bb680fd14d49829fe89d148022991411bb6f2d012acccfc792e1847116d85f04516b6532113e8f0359422877a56d14a1b90f571906e40e5d46274433abae2e9a117ec4c1c8cc261740446b339ea653f6ee74fdff72b581e8025e12a7696fd450a344dbc50d37ccc1cdf5e9391bf18b83373eb7b2e6982c7d508863f8aa48ce8545a60a238dd8dfb2d3cf3cc72bdbe550d98dab1a7e07068345c2c49ae5575e0ca0ca75294219d7c852dd4347a5c67aec83aa7cec6cc83bb96e022b36be684590051be70f466a7de53ec2450161116fb7f77d9cb31350b3acbb4e7027601bfe3bfe7f3bdec9a0abdf3c722a40b66c85e3a69ece7c5ed4e57ed5ba9097ba3c4061ff47ffd7d34fda481f0536496c53fb91e954b6e96b2b886ca673fd5f90e20581b7e345032543b8eac56fa8804b709dbc5b2d7b335a7e2aca13119c4e12e46730a51ddefd5954d7f86947774f51a42183306bc8cbe76cf9481216052203d2262bd0d87786c51f098ece7ee420b475ac98693a30849576074e80402d4f9bf55a938be57140d641e850f4962da43ee1d44b44d2bbff27c4377929f6f1a2649ea0e8b0f56cc91cd00bba7564efbe57b70be2fb5b30a56e1c68855c928ae3e3b97bbe62695897bb4c433861e6ccc7d3f93d06ad09c65a2bdace0540141a271c1311ef0f2f7cfa4d66c28d87adbfa25c4ee38d3e9fad20cf83d5b9a8b695e3674a2baebbb88b02c17ff0ca7c64d6ebe3db88c2ab4829ad72faf7fd8118965ed2d7c492da85fbbe4b374518d05348dc9974f016199338f3f20236a9d40a9ab5a6e6d956bd84334739bbcf8a87f1f97dae901f3e09d4cad421e120e3a64a6c2a4cef0adcfb404d16057a0cd1d526a637bb27e3e18b0de9a24394e6ac7042e00b09037a0df3de7c51b324796090b8b7c2aca0971392d30e7834e4af3e7848d9c9526d7be5ca099484bb4deb77cd852a9048c8959f6dbef4df8eaeb81e08880c491e2c07bf27d7204ded2ade267b45db96e57f3cb2fd2a1c3f3fe7c993b0c5ef7710928e72bcb73d4422fb8d91c47cdb45f2f163fb6caa49faf153ea18405c4894f9ba5b9447a3b8ff3aa75c2896ebfe3ba9d236af4938a4e7db0d296ecc97ab9554396b8dde82476017f0d036bfc61a0760429fcc1077491f0efed40067408aa8e887b0ee8545620294ade1732c0e5b41223cda7ff58bf0921c1f3aa5351899b3b9eef21e85f9bc9e13fc293ff8dc93c87e3870f431a229a8318dd6a345c2764719c0b9abd4d0010ee60c7fbc0c18c33b7b96cfd52b6f01c6cfddfe8c723d06daa713e14c2161d057dd0ced1875ff982b7d73e0bc5182c58be1b485fd9dc2a73e626ee46677d535c9fe983d868cfcb8b0cecab470f9685bc5b3f4795e769885778c3002c8a86e7af2811838ce39ee7a1e58f4ddc34568a655185a64b788b61f4fe4a3ea24e0c97366cb0d0e6f7d300aa04c059d56ef7859170b932ca8cb11dfe1f525909918a1c050341e459b45996f7f8e81301897a4dc634ad5f6104ad9fd361a82219efb9d619685d18c6bae16e2d6f7dc14ef8e326631866a678a29b1e1b29b4ddb9638708ec2021cd9a70a1c047d8f32b1ad56afa72f891bf9aa589f2b76a042db5b8a3d5074ef76a6a7069e9f1fcc19d6c33f0dc403112cb653c696de7a1254fd8d596eb63b729f58768e7baaa57ac651eb10ec35f238fdf08352e219d50a8850dbfcaea8caf5ee865b14440a625656507f745187895ee534add97d07b1c448c8b84f65ba0efa2d550a073e5b32282353a59ba6e6afe73046b11703b7cc8bd4ea97cce9ed61a2f3d2323cb34668087a4347d3e5a8f215831b16e7898928cc53b4c52e0fc64641e9c997fea6b8b55131e89dc324d10047fda20651350070120d03eccfc4e90f6ed877ca9d262fe0278e8d8e49358852ea6ff9dcb7f6bbdc8143605c934731a0d8d292fe6627fd9b94c1fd24cedd5859df3b7ba64eb5a158a6fac0803f9e0fbf106942a97062a69bb9401efbc2d34c6f73b3770df7814787a77d086c08a10068a0f29fd25211e800b6fcd4e30959f0c25aad349d9f182f64947cd4d7d4cd8a59ee623de96ff6ba981d8b8c927e2646da58cc91dc2d9a8b24231002254f75606d95de9130c6aca88358942de427512c89dce8b9d7370e090246096f75176bfeb3acd448cca0af3f35406c914c2a8265df1638e16ff4e3f1b8d6fce0bb2d19afa78a4309a813903a47e380c4be2d79c57a3abb383030841e34f563fa80fc3e27521870cbebf4db535974ffd05955662a0159d3800080bc66049401a36e57bcac535fe8df670cb29707d22eaa4fd4fc6e3d34058b5e104619f2c1356b05c69f3d9c6824c6c13fae353fe9e70358251c015a9516899d836d98c12ddadf0a892469c241002f2514da583f53bc6c969e7ee296d3087cc99443c4734e82830d53882bf2ef34544ea99395bea7461a2b778bfd1375d80c86889b6d5adaf8d706cfdeab26510f73986accba573df9d341331378719a4c2257d79516cad846118742dd8caf19355f3852d1b373d8a7f470615d5e37b19d57abaeba7439bda1488deac35d5bcd9c9405a40f46481f276c551ca4a2fe8ccef0d3151b520e90ac491413e788bfa79fb54f7e9bb6365849198627e2de0e826f31d2efac97df3e5f979d3332c7cd053c05ccc3d7147e7ed759874400beb1d67b0fb6f095eb636b96e3c85f9b42b0270d9d79f4c8fb6b24b9c32e3aa79f858a1a3b27f6402e474cedc3d32d1e1b60230cd126b3a35dc04fab692830118744323aecd72bd0b6e982b4190fddc01fcb796606e2e191ef69454bb741eabbd20b3e5ada93045aec4cb967d649c9873b1d7cc8818cf92f2716aae9e4a9ea0c4e1ee9c80d7b29a24451d44665ebf2438c29642a1e8469bf95cdb7ad391ae143afe74c5dc2fe50724647e0bd7fd94debb74c99ef86c792594291c53a33c6b431adb6285f78b1903f236968215cbbda7d1238dd2e0fb78fcdaeba92be906065407155985166ec5d77ae0c4fc7be20f226a68ad2db3bd2721ee1e84bcf9bb22fa911de05f69c0aa0b58feb6b6f927690e3a848f4e01313572addcef42045114225158d6b6f4dddfe130de0df1f3abf5c6209b80655f62ff349a993371d371939472f7543b31d51d319a7e1d1f319c0e4ec74e73d01a1f999b2d899182d03ee0c3c0d53c104b41728fb84b09ea0518dd128483a30051c1a31399ac623cccffb65cad1d024065614fa91f054f179e47dde43ce8f2f18fd225581e1981e30dd045ad4da5f31e0e3b2c83e32e4504aba9ca30d468f2b90ac7c81f630ed8e0ae8f7553aff2d24a6760f530fb42d8aac40f3955f67feb5abf7e37e4a8661633b728fcf52eeac84ff75d74c96887700a435e33df1ef8a9af799b9ce10fb76b434482f8e505e58283a76da8cf6589f99845d76858cf4df7a99fc3009f70daf12c7c4af1b43e23507e5c3383eb9296e7b3d4458f8cad4bd1d20bebc69b4596639e8a562923a709c273828d5dc9b18d7e2ceaa7a5c011424a1597fd128f78826c92b7a6dd1939e5b623cc8928f7526342ffbf553894eec24516e7eb8e01466a96a51de9c2570add2446b3d025a5f70d7b3e79fed19712b04dcf52d09b848523ff06a92249f559800ba0be018f30c6b644c2740aad47aa053b538c3d544b7977830178c9558751874da0623a0d77e32ea556454a28e90487be5b6236f3e7a165f077f462b0fd37e41b6b3171195b2ac5aa7c92764c34b7c52c6a383ef96e264402439cf1726dde93be85de5fa3c1458dc34241d860b35ace847aef21933df881dc9cd4b01b823332d3ef34b9c7f3d5065d06f839f1c2d7cbf53079d42f5dd63bc2d1b9da9a96a207d1e741d0c2407c0a92df819a79948b54367530a9af4be8354978e80da136def1a1b3d542086b8e2f3965b921b5189ec834b85502fcd6d441a64750d47789ecc5783af3c7cdbee0545b8a5112afe2f28a4383a9b204bf3f2b7e4fb00d93448e67eb7fa570023603a34331a3b8701144cc5026c0589cbdba5739150154ce6d1ce7158795", 0x1000}, {&(0x7f0000000140)="968362891956dcda0bf5889f", 0xc}, {&(0x7f0000002280)="a624466b7156fba6d50607c724bcb1df12edf17d8fbfd146ede62ad5aa3e56c93774aba9b74cd8249adaabe33ba565c1dd9d6c48adec662247d6d04cc84da77e07d01e6e71d2b62c0fa62d18ec", 0x4d}, {&(0x7f0000002300)="8f7fd12ba1ab0e0611011e8d926d6c9d6f59eb3a142ff52e20ac9f1bed8eee9e97e54646052fecbab88f4bb74b83deb2d1f8e74ed7617a7f7e790dd8dee3d97814d5e1ce8f5050657184d69b4177d6e178", 0x51}, {&(0x7f0000002380)="b5afabd5f33bef4790ebd9ed8e6dbbf47a8ce06025d5bd988325ba63125543f3e5e17b3657ebb4fec511077cb64dbe5769f655cda586d97c837cb7007bb86f35fad780d1aaf6faf01dafe84fee21fc57f96a3ae8bd3062fdfd732300", 0x5c}], 0x9, &(0x7f00000024c0)=[@mark={{0x14, 0x1, 0x24, 0x3c}}], 0x18}, 0x840) (async) 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001700000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 280.434654][T13965] netlink: 'syz-executor.3': attribute type 27 has an invalid length. 00:04:40 executing program 4: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='blkio.throttle.io_serviced_recursive\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f00000003c0)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x280000f, 0x28011, r0, 0x0) ioctl$FS_IOC_FSSETXATTR(r0, 0x401c5820, &(0x7f0000000000)={0xaa}) syz_clone(0x140080, 0x0, 0x0, &(0x7f0000000080), 0x0, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) ioctl$NBD_SET_FLAGS(r1, 0xab0a, 0x9) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='blkio.throttle.io_serviced_recursive\x00', 0x275a, 0x0) (async) write$binfmt_script(r0, &(0x7f00000003c0)=ANY=[], 0x208e24b) (async) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x280000f, 0x28011, r0, 0x0) (async) ioctl$FS_IOC_FSSETXATTR(r0, 0x401c5820, &(0x7f0000000000)={0xaa}) (async) syz_clone(0x140080, 0x0, 0x0, &(0x7f0000000080), 0x0, 0x0) (async) openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) (async) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) (async) ioctl$NBD_SET_FLAGS(r1, 0xab0a, 0x9) (async) [ 280.457663][T13970] netlink: 'syz-executor.3': attribute type 27 has an invalid length. 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001800000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:40 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) setsockopt$netlink_NETLINK_TX_RING(r0, 0x10e, 0xc, &(0x7f0000000040)={0x80}, 0x23d) (async) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000100)=@ipv6_getroute={0x24, 0x1a, 0x1, 0x0, 0x0, {}, [@RTA_OIF={0x8, 0x1b}]}, 0x24}}, 0x0) sendmsg$sock(r0, &(0x7f0000002500)={0x0, 0x0, &(0x7f0000002400)=[{&(0x7f00000001c0)="2c9e64473881323bcd32f786ea4937a8b0ed777da75c63b3957ec1ac9efed7929744fc72d712577e3b1aa39294abc2dbb026a8e360505dd8a805bcf3cd6cc30d1af46b4dad62819963c8c2149b4bf6302e77a0ec76b82de55498640454e09e224b4e8e780b11f744c9512cda0f3c66228b5c700f510bb43b74c06998908f086c1bdcd8ed1e54d0a0c1234f4ac27a7a2fd08fdfcc9c91672b909b212b6062b75d7351057a6b6c48", 0xa7}, {&(0x7f0000000000)="7a9ad16da43fdcb80a", 0x9}, {&(0x7f00000000c0)="6e51d74859b45fa3fb90123c6e5de4ea00d4f01fd446542bb2cbbc00579897f519321cda627054b84ca88e962473828d3f178fe81f810bd706978e4a5b7e68b2", 0x40}, {&(0x7f0000000280)="b44648be508cae24a73380261dcfad14d7fd322d131aa57e9feec86b56b9ebaf4dd86315fc68811364cc7a34a3349dde98471d8f93c1a61b87416548f1f756816d800226a449bdc9c9dcc1b6601e6ec9c1bf79be11a12ab69388affd91860418a494b7ad2601ad5bca345127eb5df5ac7e0fd35dbb8372b89fb55bfc7a8b46a8a22928e6954840da36e3e54fafe3b9c9172f410673935120e53dc77f75218edfbdf4e7ed1c18ee2f73d22afecfdf6d503bd4ad1fd5d0ab0ef71803fe22548a4165846c35107669ed1108e5580adade6ff76810a0eadb1c39c493f198a2a2aacef983ae52824ed4b32099a47a2524e9f425d50cd0844179d8b01f1b447b1816689ae72bb0436116deddde77225a7c4ce01727aea62f7dd693cb79a3163a8a38027a671164ef6a20765187acf255fd2b95626c451f5fd19aa431b13d8b865d880986ad4988b6ea927b21c77409c6a2c021bb2725d3a63c17ae43a500b21a78b2e501b5162debb9cdc91bdac03030cd5437102b7e01e4cfb19bd247dcae8b9ff3736d2aaed2344d1ab6b4118d6e53f9c6604c34bed3a870f86683194435ac878cbe860bfdadca80ae468c32ea2a010e8456a1d29032e34c4766d05f48e32bb53306b440298dbdf71bf99c702315f6671edc6e3f94a99c3202c55e2159f00d454e9fd990f9a0a856f7f811b1b246694263cd1d444628ccb11f6492ed3535e151b4841651356f88e1b4cbdd2a8a878d333220e334b99954823dcee92367b791ac539439cc8652a2c0901302295d8e160f7b57d6c1bb3c17ba2621cde91fa20b871a06f7d3c1fd6c086030c9a533caca9ded712907b9218e4d78dcd69f30274bf662756804e5765f5560bee1c3cb1d82c78d8ae233e22a4790376db8e34617ea1b7ca11073407a6a66e316684c7c7fe3287d8bbb8bba4293da69a2f71a597e65aa7a33e04f5b621c6639c14344cfa4531a514d7effca0f4ff53741ce3c307cb0052728ea597fb63391a8129a228734412061b115889de4112fafbaaff86d9da03c10c006962529f1dc0c38a9437008d4c60e66cf1a966c33fa77dc36d8312767f72221c204316241bae09236bdeb05154ea1f059c3700b3f33f0ace3e128addc177497a44f6ac910bd704fd7ce7c71916f1c4bfd4a6c712dbff954a7f3c2ff30c1dd74db85133d8bec6e47ba726344c6f57c40db03a4453fe6e01050e4eaafe3e105885955b8fc82a52c55bb4ec28aa497d67a9d17aa15f436e92c3785da06a8bac907f1f498d294680789f464d59b1416b1df0e55939f4c040a15c7a5d702dd6b3204390513702c25568a6a6c24202026cc365a0622019e33157d6743f7ea1d06ff5202952db5c91dbf521c8f6d6049043d3753695b6386e52d7b5a77d012d43494cfdbc45ad1322be664cc3d66c197669c5df5c469ce99ea438f51ed781c9060859472cdc861ece141030f20023236ec4ec3f3533715af8820b0f27fa117ba4855563082512d025b2d8d1d07f71e14faf3e2d738f907fc1283ce7031be89b6e00ef5dbf6ea15c725b70a0659392b42948efab821aedfefaa500135f0a845967b7a929111732c27f3b2be3ada6c77e21502e9bc12ef0c7ebf73157922065337f72c104724694dd6844aeb559513f0162311a0c8ad31b08cbb8ad5731307e1222e1ca8b3d052ffa7ac35d4bafb6fa29fcadd5c0cf226a2bda5022c2a9a936f16839b343a407c8257fff2f740336179b1aa90e286e5bf7445018a783562a7577cc6a64daa93e4c5c969fb95c8d6f6b33b52c0505a9507eeac9bcdde7e26bbcc6b119a7dac50278635d3ac87d42192cb36e2ad04943cdc175624230f3f409db3385d14391d720a6ba7589bbbd279b3e3381cf96bdecd66625db216dc858aa5985b25bbf979fc61eae4094a2c12e1399250c547dd1072621e0f3e02eee33780a12364b551ffea84f09acf3d86bf21f6bd93386bd456021cb36017a0969f6388488f57ada63927dcffcaef0f4be3f59498c35343295bb395970cd0d9f1df189544b1f397ec26dcebbd9cfb024547d758cdd69e6ff7ac571691e688bd85b9a4aa5284a55336b1c4efa847eafbbd7bec253707ecfe394be45570b8402b297d1a3a0a347bb182d71fb753dd4d8a7edd0bfdbb6d2da5b4a33d3330cad47fc23ba0d9d41f6e56fa556e0633140225374aa246dcf33748f483ce52c6b94b5014cbcb0bafd13635b099c1f1a63415763f9faca1e6b7759568a379d69050d4d3f532a38c8817cdecd52f399f988e4317e219ec4b3cfef882b1bee2cbfbd427989b198afecaf3d559b9aad8d34e005042110ee669b78d7228a9a437ff3478bb802f056039b105e98e9b56a72f1e0e8da4bd9d97829d43833984df322fd8114ebd7f7ca27e4a79d2491e1f45c95dbcc4dae04a1843d8d940ee500ed4bbda67edfc3836ef1cee48513100081f843d859846f760251b8d68878f1049a1d16e68bbff74e081405c2f33fd455db5312cf5032c81bf910b502e451c7a2f08cf440f6822fd91e4ec20ea8ad55885f53ddbddffa839beaa43799efcca62ed7b10c4d9162f4fd2de125d608f6c82350051aac5ab4291472c45bc596219bb95593537a7be8daca146041dac5dc33ffc873f9ffa4b6a9bcc2956c8dad81d466b36284c345c219509d5b8b74e99752e02e56800cf81ae6dbdab5634aca0daeef687f02a7223608251ac99a115a2ab461baea3a78d147752a9b94371cdff546d69bd098dd1256a2a48422fddc2ff7db381411d13e25b7ad061b535cf10c0af59918264d99cbeb2be18cbb9673d8f92ed3a93c456a9a474bb592cadb026b425870225d2e555262fe65be86eaae4162dc83726a09b5d7806e36a741a03af725d58f9f24c3efccff40b9954d5bd44c63242561ac56c3f11ad69d5e9b1c3be598282b09b8724639a8562dd68fdc71ef1337c26dc2458aed4d4aa3cf716194a5ec8b8678b700aeaf1d5bfac823779380be4f0db4cad1384313d6ab79f02724b5212667d2fb80974790ea63ca5fd763630d272b5716a3c4e5a946c384fb2abef968ef9fd55ab224b1f957938c85b286be25174afe82d243fe963002ef3925117aa0a4fbff13ff37c6109a9f636425b3fbad483a7095698d0e8088416947f2ed644b13b964c3cf13b7af7945a5f8028a56a7a5a3164d06429ded0c1a5828246d9663837253ac83d122ad47a1c92ddb299b5507b2e3244e173f9e4cc7ddd86b12e1d9b0dfb67feb2ea1bf88285e9bf93d5f8917c9ec24f0902d7af3e23dd2caffe3216411712f42d593b4ae359f1d8fa14f05a8aa135d90cbda992e587f9f5664ead017c1df84a8d14ae48b42c7d53464d47a4256d99b7660d17739450b7d365be548514f8aa91bc7ba72fcf4fa4bfedfc21ab975cba0a96091db2cc507f1e9c720093bfeec63543537daa664a4bad123a5b19c3fa4eff71ce8eb1dda67d85b48a849ee6cde51fd4e3cd95044733103faedbe907d6fe91393fe7fdd5d34cfe1c345c0040bad0558af4f27e1159ce4bcdc74c73b321ff4c0b73eae8b540b1942dc97f5871e2228e43888a60226d3e2397e885ac53e6c8e15551897d7e335f04abb2ed23b93938bf1506dd232c0facbb48b1abd11c4e187ae00e64eb5938bbb8cf53855123fe029bebc7b495c80add45693e902050d5dc689ed2cdf7a30f06a2ffae39775db0741b2e33ec8feecdf5a4d97d7c7639a2be94a8051a92b329468103b9aa9f9d17b9d7b33501220ce92675182bf197dc2ebe16d0ce291104b800677e477ea35c33e4df6d308e7f90354e473d8ea57dba9c121ee4182728e65e6164f7710213804e6b59ea63a44e5d5fdef6bdbf6f7579337bf8a40620384da349a55b92c04167368f0805b34e8d397ad0c3354d07cfb6b1250ca3e5885eb7610b7a3a6455457008cd21982b0864207d9bd9ff0f1af307590f46ce2deb8b8f15008f3b42f3d46c4525bc5db65b3373b475bb43658771cac290d190fd0e613ac08eda918d62e667688b0ab55b06f846b8b9e45d39cee08387cf67c5ca98753a4a8c241fcf77c8458b9d1a7ac8a7471336edb93bb4feb5a68ff4558e2717b90ccb53a7d2f7188a71a0a1707ec3fd9d189ce8d957fb4b273d6067c2d98ae54046ea15d6734a4133aeee23ec700c180c6bf691fb7b6ea10945920cf19c17c373078a2bb595eb90229ab2e69f329261dc5464b1a7b13f1528801a05d16601d6389f153343b51145836e23c438744b35ef88f16336a17c3d589e2241251122661bddb8996d3535e0c6bd7ce76860218fefa9020e1eb5967d1840bf073eef26dce50b9e034f6484ad01c1ec78e42a9cc2f0d2c226403e162cfaab6bd65ffb44b33006c0b392efa066c72c9a181bc5827c1fba080b5ca1dd00150766b5967da044bb39f84ce6addc923fc2a51613ef502abae2796e240da57ccbae0e6cf36b0446257b733b996c29d8b8eedf4f095b6b4b43c9b8879c597dc835d8891b827fe2af56d6d354b82ddd4d6e2640fc538a8e20ad4a23307f14046b92088a57c2be3d03bc1c719890aab5e5feb9b9ad3a2489a6b141fd2e05321261cac558468ea44d2514059be5b5605cdeb3403af1b9076823e322c58b4b6ea7a821b22c3a94069d5c3aa88959e17e20209a8b8201af55a0a2f6512cffd6fbdbb29b63cf9bcb81884a764d0b67058fb8a9fd66ab18f1a293743a45e995c10fd3f926343ce51cea4ad510941c6782d2ff5893313a73dc124ad2edabd783e8dff66f1c7951a7bc004ee13380c68346c0f723711ed5874dc285046439d4d14cf5c8cf9998d2ece540dbdbb9d0e209a9670079e810d4cacaaac637b9daf12f7efff39ba37b7fb0df076acc850457931829bb642f9e6393d1de85dbf50f8fb7b1f1fcbdd1f5f6a7c11d23035bf8d7484f4e8bccb11da6a5d28b668417f30a2bd445a96a8c8ead0f3b623b42b37d95a401fd4a9cd26b66c9c452a2eb3db0ee743cb1ac831c14a7fccb43eda869ce379bfe96b0da570fd519aaa11faac7303a84d44f1f2a652c98739ec61914a9817ce195c18bfe4d4d4a6fce5ee2649fdaffb21944a5e02a176c7d7ff378cc1350782c4bd25457674af8745968203a5d01f75309ff1057f6b5735f85ff7865b0a54444b91ec0bd2c9960ba08dd8f3e8b358ee538dc3d106330261477739f6b0f033c2336d1a3c9908511b7168103cbae7cf62248c093fb2554e633c50f5ef73e798d831f1e65bbc73d939a7662838a878e10b435f62ad16c9653fa1071224014ed5c75658e843b80770c09971248dee6d566fc55f4cb577abf8a9910d6d18b008a2ea398fe1d62596bddb76aa7ad7f0b6b0432fd7fc67f755c86e948a701f8c11005a6a219fe1aa95d10fb8759649af38dfeb7b0020243e3e26698d8e7a5dcc639c9ca2f8a351ee31fd9d297276dca55a6b08213a82356c3a694d9131b83f66a3abfb5137523592064092584e7165beed9dbc49bf27b750994858d7bf6c55ae3e65ad8d1291faae379b623b526a16fb6dca41b4095d15b21fb342c3b9028058c969d9475f0853b760f4917b60be8d9b0f899fd330acbcafecd6a2ea26157135fcae378f54718262d5fc8c34610e14ba215fd7662158e823419e54f9ac543b70a4e1256742c199bef411da1bc96758779e9bfa86b2d5e1dd45364f14a72ee02aec9df0f63566eb3674e895544d70d8b65f1baada38b99c0ddd81bbcbfd573338363ff1d5bb9e3f61dd8ef57c7ce83f70750c8b7989ed7d00f9f05d219aa5dc092cad64d063cceb361898739233e6cbccfd0659d10d8f4c1ac91", 0x1000}, {&(0x7f0000001280)="d3692048eb4bb17f5e44f5c12a70592bb506c0a758affc66bff8406ec860d569718f80292675da5a4ccdd384dfad2f2e9aa08d8b1d6b2f28f15384d67bec54e9cf3a4bf033be3addcb931ea96b6a038a1ef4c7df8b49b6d91ad0b053e38cc80b2ed8fb2a2924e4d087613315f641c496c29cb515561eed78059f0fdba0bf4dc2be7591f0e659b69423d3ba1c94d4ed2d2903ceed99334a33b23c7dcb155595155b01848bb60df67a0ff7eea3e50b7b734e3e9d7ea5eb27cff65293084e824f65a2ce4b04f374d9cc094661fe7172921f425ffbc294173413858a4f8c71d300c8ea0e98e563c62d451cda57481ca99ce561884395f9c62b42d1934973ec22980ff5c96c47fe74fd9b2d3b4e2d8a4999bce252758c4c1d493045deba514713b9012daec8d1acfe521564d9a29d7fc4e82fce0c820e28de25dc5c8fb0b5eb778617d37767c754e89ab95d0f37a3b04e847c579a90f1a0b5d2e2002256c53e447e1e0e145e029f405d2cfc74f1145d0910af218ac7d406edc0d74cfc6ac89a83bdbb5c1d7f9b702fef1697af838892c37574632e2c6e9502994b667ef4b650c00f7d552f8f658a2ea83ab8eeb38c152d0ba0fd35b27c24b3400045d9f5bc0d13addccb629d67621ee16ee81c7ff3d011c85f47ed71610269d7ef5a8b7a7ae4c00d5762fa6a4ad4ea8c602d217a90aa128f963d718881a40c325ba439aeabac0df40fd364360c74082982b085fb97fd41666f1d802f5e01ac188935ed18274847086e3015d6d88b697902143cfb92419fdb878424b619996497f0ed35e941a252dd928c8e9f4de476e462ab10f0393d249bc4849046382df1f873ae1ebcc9d2c58258e577e27b3d52353026f6e3813597703425cfbcb7b19ba61d243ce3b9753272823fa2b4ee4ae0480ca51f814976cab1575be9a89c079f57e06a1c85fe75e7ad44aeae1f5f2dcfdf65de85276021534b2d721d0e1bae4107c30b69419618dd383a78f960dba10884c76178eeebfdd2aa6f788077f4854f96e60ef7f81fb31ed387d5d9de58bbb8fefac214a70f4ed1ee365a31e7047d1f1d3f9daaec90e63f27ea98c2fd3e8e9b87425292dc93b62781424d71e2dcf89bd81fd4448d491a4da7093e698522d2da7921d096ec8999db664bcd2bd86af0c07dff8d63c86d654167c5951c091ae0c7a9b3ca457d05ea3f373e1acf2398130fb8b5f6f584dd5cd534908ef1d745ad2b8d26aefd4b46126b8164ab5b042f9886837b0ee0482a94ee989de3eda168b603b00bf7c6da627d5d61418fc2b0dccc6fbda59b55d56cc1fce185cfc3b1fc85a159b4f0a2c0354dfa6304df3ea0bf15ffb1e087354a65a49f725a42d11fad5b0c6d0438fc7d9ea0298d5ac440ce66c961e0d0c4cc40896fbb8d068df71be72375662d95917f8ae3299236b50247735a54036479b7cbf8d05e4f4365e9977232265ad62d503602bef1df25204a3f21f2ce9bcc1b484feaa663044ca4ebd844fad90ac13b54385d5ae2adeef7afca878caac9d3ac4b11d04aa632c9453875ad557d20aa2007f4727ff5d8a5371d9eae2712224ded78f02a13de4f0ba351dc98a13c92693bf18d811ec3455111bd4fd9f2c5b4c214c724948e1bd9b27a81339099128997b70a7389c96f751dc299073bcc4df49e41e1087db55befedcf2f0f9452b1d269b68c8f12915cc0661516fbdeee7d1508d3ad6c92fbcf52497cc1bade124a30d8d66bb680fd14d49829fe89d148022991411bb6f2d012acccfc792e1847116d85f04516b6532113e8f0359422877a56d14a1b90f571906e40e5d46274433abae2e9a117ec4c1c8cc261740446b339ea653f6ee74fdff72b581e8025e12a7696fd450a344dbc50d37ccc1cdf5e9391bf18b83373eb7b2e6982c7d508863f8aa48ce8545a60a238dd8dfb2d3cf3cc72bdbe550d98dab1a7e07068345c2c49ae5575e0ca0ca75294219d7c852dd4347a5c67aec83aa7cec6cc83bb96e022b36be684590051be70f466a7de53ec2450161116fb7f77d9cb31350b3acbb4e7027601bfe3bfe7f3bdec9a0abdf3c722a40b66c85e3a69ece7c5ed4e57ed5ba9097ba3c4061ff47ffd7d34fda481f0536496c53fb91e954b6e96b2b886ca673fd5f90e20581b7e345032543b8eac56fa8804b709dbc5b2d7b335a7e2aca13119c4e12e46730a51ddefd5954d7f86947774f51a42183306bc8cbe76cf9481216052203d2262bd0d87786c51f098ece7ee420b475ac98693a30849576074e80402d4f9bf55a938be57140d641e850f4962da43ee1d44b44d2bbff27c4377929f6f1a2649ea0e8b0f56cc91cd00bba7564efbe57b70be2fb5b30a56e1c68855c928ae3e3b97bbe62695897bb4c433861e6ccc7d3f93d06ad09c65a2bdace0540141a271c1311ef0f2f7cfa4d66c28d87adbfa25c4ee38d3e9fad20cf83d5b9a8b695e3674a2baebbb88b02c17ff0ca7c64d6ebe3db88c2ab4829ad72faf7fd8118965ed2d7c492da85fbbe4b374518d05348dc9974f016199338f3f20236a9d40a9ab5a6e6d956bd84334739bbcf8a87f1f97dae901f3e09d4cad421e120e3a64a6c2a4cef0adcfb404d16057a0cd1d526a637bb27e3e18b0de9a24394e6ac7042e00b09037a0df3de7c51b324796090b8b7c2aca0971392d30e7834e4af3e7848d9c9526d7be5ca099484bb4deb77cd852a9048c8959f6dbef4df8eaeb81e08880c491e2c07bf27d7204ded2ade267b45db96e57f3cb2fd2a1c3f3fe7c993b0c5ef7710928e72bcb73d4422fb8d91c47cdb45f2f163fb6caa49faf153ea18405c4894f9ba5b9447a3b8ff3aa75c2896ebfe3ba9d236af4938a4e7db0d296ecc97ab9554396b8dde82476017f0d036bfc61a0760429fcc1077491f0efed40067408aa8e887b0ee8545620294ade1732c0e5b41223cda7ff58bf0921c1f3aa5351899b3b9eef21e85f9bc9e13fc293ff8dc93c87e3870f431a229a8318dd6a345c2764719c0b9abd4d0010ee60c7fbc0c18c33b7b96cfd52b6f01c6cfddfe8c723d06daa713e14c2161d057dd0ced1875ff982b7d73e0bc5182c58be1b485fd9dc2a73e626ee46677d535c9fe983d868cfcb8b0cecab470f9685bc5b3f4795e769885778c3002c8a86e7af2811838ce39ee7a1e58f4ddc34568a655185a64b788b61f4fe4a3ea24e0c97366cb0d0e6f7d300aa04c059d56ef7859170b932ca8cb11dfe1f525909918a1c050341e459b45996f7f8e81301897a4dc634ad5f6104ad9fd361a82219efb9d619685d18c6bae16e2d6f7dc14ef8e326631866a678a29b1e1b29b4ddb9638708ec2021cd9a70a1c047d8f32b1ad56afa72f891bf9aa589f2b76a042db5b8a3d5074ef76a6a7069e9f1fcc19d6c33f0dc403112cb653c696de7a1254fd8d596eb63b729f58768e7baaa57ac651eb10ec35f238fdf08352e219d50a8850dbfcaea8caf5ee865b14440a625656507f745187895ee534add97d07b1c448c8b84f65ba0efa2d550a073e5b32282353a59ba6e6afe73046b11703b7cc8bd4ea97cce9ed61a2f3d2323cb34668087a4347d3e5a8f215831b16e7898928cc53b4c52e0fc64641e9c997fea6b8b55131e89dc324d10047fda20651350070120d03eccfc4e90f6ed877ca9d262fe0278e8d8e49358852ea6ff9dcb7f6bbdc8143605c934731a0d8d292fe6627fd9b94c1fd24cedd5859df3b7ba64eb5a158a6fac0803f9e0fbf106942a97062a69bb9401efbc2d34c6f73b3770df7814787a77d086c08a10068a0f29fd25211e800b6fcd4e30959f0c25aad349d9f182f64947cd4d7d4cd8a59ee623de96ff6ba981d8b8c927e2646da58cc91dc2d9a8b24231002254f75606d95de9130c6aca88358942de427512c89dce8b9d7370e090246096f75176bfeb3acd448cca0af3f35406c914c2a8265df1638e16ff4e3f1b8d6fce0bb2d19afa78a4309a813903a47e380c4be2d79c57a3abb383030841e34f563fa80fc3e27521870cbebf4db535974ffd05955662a0159d3800080bc66049401a36e57bcac535fe8df670cb29707d22eaa4fd4fc6e3d34058b5e104619f2c1356b05c69f3d9c6824c6c13fae353fe9e70358251c015a9516899d836d98c12ddadf0a892469c241002f2514da583f53bc6c969e7ee296d3087cc99443c4734e82830d53882bf2ef34544ea99395bea7461a2b778bfd1375d80c86889b6d5adaf8d706cfdeab26510f73986accba573df9d341331378719a4c2257d79516cad846118742dd8caf19355f3852d1b373d8a7f470615d5e37b19d57abaeba7439bda1488deac35d5bcd9c9405a40f46481f276c551ca4a2fe8ccef0d3151b520e90ac491413e788bfa79fb54f7e9bb6365849198627e2de0e826f31d2efac97df3e5f979d3332c7cd053c05ccc3d7147e7ed759874400beb1d67b0fb6f095eb636b96e3c85f9b42b0270d9d79f4c8fb6b24b9c32e3aa79f858a1a3b27f6402e474cedc3d32d1e1b60230cd126b3a35dc04fab692830118744323aecd72bd0b6e982b4190fddc01fcb796606e2e191ef69454bb741eabbd20b3e5ada93045aec4cb967d649c9873b1d7cc8818cf92f2716aae9e4a9ea0c4e1ee9c80d7b29a24451d44665ebf2438c29642a1e8469bf95cdb7ad391ae143afe74c5dc2fe50724647e0bd7fd94debb74c99ef86c792594291c53a33c6b431adb6285f78b1903f236968215cbbda7d1238dd2e0fb78fcdaeba92be906065407155985166ec5d77ae0c4fc7be20f226a68ad2db3bd2721ee1e84bcf9bb22fa911de05f69c0aa0b58feb6b6f927690e3a848f4e01313572addcef42045114225158d6b6f4dddfe130de0df1f3abf5c6209b80655f62ff349a993371d371939472f7543b31d51d319a7e1d1f319c0e4ec74e73d01a1f999b2d899182d03ee0c3c0d53c104b41728fb84b09ea0518dd128483a30051c1a31399ac623cccffb65cad1d024065614fa91f054f179e47dde43ce8f2f18fd225581e1981e30dd045ad4da5f31e0e3b2c83e32e4504aba9ca30d468f2b90ac7c81f630ed8e0ae8f7553aff2d24a6760f530fb42d8aac40f3955f67feb5abf7e37e4a8661633b728fcf52eeac84ff75d74c96887700a435e33df1ef8a9af799b9ce10fb76b434482f8e505e58283a76da8cf6589f99845d76858cf4df7a99fc3009f70daf12c7c4af1b43e23507e5c3383eb9296e7b3d4458f8cad4bd1d20bebc69b4596639e8a562923a709c273828d5dc9b18d7e2ceaa7a5c011424a1597fd128f78826c92b7a6dd1939e5b623cc8928f7526342ffbf553894eec24516e7eb8e01466a96a51de9c2570add2446b3d025a5f70d7b3e79fed19712b04dcf52d09b848523ff06a92249f559800ba0be018f30c6b644c2740aad47aa053b538c3d544b7977830178c9558751874da0623a0d77e32ea556454a28e90487be5b6236f3e7a165f077f462b0fd37e41b6b3171195b2ac5aa7c92764c34b7c52c6a383ef96e264402439cf1726dde93be85de5fa3c1458dc34241d860b35ace847aef21933df881dc9cd4b01b823332d3ef34b9c7f3d5065d06f839f1c2d7cbf53079d42f5dd63bc2d1b9da9a96a207d1e741d0c2407c0a92df819a79948b54367530a9af4be8354978e80da136def1a1b3d542086b8e2f3965b921b5189ec834b85502fcd6d441a64750d47789ecc5783af3c7cdbee0545b8a5112afe2f28a4383a9b204bf3f2b7e4fb00d93448e67eb7fa570023603a34331a3b8701144cc5026c0589cbdba5739150154ce6d1ce7158795", 0x1000}, {&(0x7f0000000140)="968362891956dcda0bf5889f", 0xc}, {&(0x7f0000002280)="a624466b7156fba6d50607c724bcb1df12edf17d8fbfd146ede62ad5aa3e56c93774aba9b74cd8249adaabe33ba565c1dd9d6c48adec662247d6d04cc84da77e07d01e6e71d2b62c0fa62d18ec", 0x4d}, {&(0x7f0000002300)="8f7fd12ba1ab0e0611011e8d926d6c9d6f59eb3a142ff52e20ac9f1bed8eee9e97e54646052fecbab88f4bb74b83deb2d1f8e74ed7617a7f7e790dd8dee3d97814d5e1ce8f5050657184d69b4177d6e178", 0x51}, {&(0x7f0000002380)="b5afabd5f33bef4790ebd9ed8e6dbbf47a8ce06025d5bd988325ba63125543f3e5e17b3657ebb4fec511077cb64dbe5769f655cda586d97c837cb7007bb86f35fad780d1aaf6faf01dafe84fee21fc57f96a3ae8bd3062fdfd732300", 0x5c}], 0x9, &(0x7f00000024c0)=[@mark={{0x14, 0x1, 0x24, 0x3c}}], 0x18}, 0x840) 00:04:40 executing program 0: fcntl$lock(0xffffffffffffffff, 0x0, &(0x7f0000000000)={0x0, 0x2, 0xdce4, 0x800, 0xffffffffffffffff}) ioprio_get$pid(0x2, 0x0) r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) r2 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r3) r4 = geteuid() ioctl$sock_kcm_SIOCKCMCLONE(0xffffffffffffffff, 0x89e2, &(0x7f0000002140)={r0}) ioctl$SIOCAX25GETUID(r5, 0x89e0, &(0x7f0000002180)={0x3, @rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, 0xee00}) read$FUSE(0xffffffffffffffff, &(0x7f0000000080)={0x2020, 0x0, 0x0, 0x0}, 0x2020) r7 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r7, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r8) fsetxattr$system_posix_acl(0xffffffffffffffff, &(0x7f0000000040)='system.posix_acl_default\x00', &(0x7f00000020c0)={{}, {}, [{0x2, 0x7, r1}, {0x2, 0x0, r3}, {0x2, 0x2, r4}, {0x2, 0x2, 0xee00}, {0x2, 0x2, r6}, {0x2, 0x2, r8}, {0x2, 0x1, 0xee01}, {0x2, 0x2, 0xffffffffffffffff}], {0x4, 0x1}, [{0x8, 0x5}], {0x10, 0x7}}, 0x6c, 0x3) [ 280.520102][T13992] netlink: 'syz-executor.3': attribute type 27 has an invalid length. 00:04:40 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x4, &(0x7f0000000200)=[{&(0x7f0000010500)="ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x71, 0x2}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x73}, {&(0x7f0000000140)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100ffff53ef010001000000dbbe655f000000000000000001000000000000000b00000000020000286e4187fb4bf73770c886d511cd0200000284", 0x6f, 0x400}, {&(0x7f0000010400)="02000000030000000400000030000f", 0xf, 0x1000}], 0x8, &(0x7f0000000500)=ANY=[@ANYBLOB="0078fab03b3c206dc07642ee74ce2370af025a1e62367575b3bcfa9f319665887b22cfcdf3f570162ce007127c176a3f1b88efb9d456184920035c0c3ef61d8abf0487c7c8360368cc8b7b2ae6e5d909532b885dc5dce78ae3f6a25a984b4dd196aa279ff85fbb2a8fafc12eda98ff76177196b1edc09c7bead06dd9c5cffa3fc9b67fa38654eeb16dacbf311fc1651a36c4ca2f8cad552776032da6a5da54e8fadf1ce822757f5a0fc2ac222a2e6ec05264eb97364076978cab97288d52c585238eaaf1d8ee1b8c9870722a00001fabbe24b0c843a7cde2c4d483a99df1c540e2e167d2b77a9202bea071fbb3e5ee71d37b89f7428e3908791d9bdf231a0b6cbd27ce707173673cb6b59c946e450646bfb7a98717521cfa6957c2d1b64f0143a8a1e6cbaf62d0a5385d89452c02e1bae5720008f14a49f268ccc8c916cdbe3c73dfbbb5a4b0160491c915afb8ed65fa322494774a19e9306698161f3d292e7017ce2dfd45dcf229b807baf2c76abf84efffd989d084000d08e7d52846b9268791dc091081326a0428a6fe690e06a7859af07fd35fbabb9d1fc2ac285337255ab898f6c979a9556fc0c5ec6a2a94a9c79be58abea8f2fb9d4f33897246a93d74f51bb1cd10055ddbc7733c37ad3e3f20bd155a4e989fb3b20fb86f597e73e8371c62c539d42aa59232596294b4e22e8556f2421c56f90f777e9d626718a7dd9ab212b8eab6e4336074979e5dadf5e2fc7dafc47fb61990388ea96929ba1aa0e50bb9388db854d847187a5c8c64e58c82e9f7e50e683990e10d337a45fb078ce25685be8373f341f1eeba0361e4260a0d955b9526079d3f057f7b20b8568644317403a6f4562e49360dca8e0295f42b5f00"/636], 0x2) 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005001b00000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:40 executing program 0: fcntl$lock(0xffffffffffffffff, 0x0, &(0x7f0000000000)={0x0, 0x2, 0xdce4, 0x800, 0xffffffffffffffff}) ioprio_get$pid(0x2, 0x0) (async) r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) (async) r2 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r3) (async) r4 = geteuid() (async) ioctl$sock_kcm_SIOCKCMCLONE(0xffffffffffffffff, 0x89e2, &(0x7f0000002140)={r0}) ioctl$SIOCAX25GETUID(r5, 0x89e0, &(0x7f0000002180)={0x3, @rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, 0xee00}) read$FUSE(0xffffffffffffffff, &(0x7f0000000080)={0x2020, 0x0, 0x0, 0x0}, 0x2020) r7 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r7, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r8) fsetxattr$system_posix_acl(0xffffffffffffffff, &(0x7f0000000040)='system.posix_acl_default\x00', &(0x7f00000020c0)={{}, {}, [{0x2, 0x7, r1}, {0x2, 0x0, r3}, {0x2, 0x2, r4}, {0x2, 0x2, 0xee00}, {0x2, 0x2, r6}, {0x2, 0x2, r8}, {0x2, 0x1, 0xee01}, {0x2, 0x2, 0xffffffffffffffff}], {0x4, 0x1}, [{0x8, 0x5}], {0x10, 0x7}}, 0x6c, 0x3) 00:04:40 executing program 2: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000003c0)={'netdevsim0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000000)=@newlink={0x3c, 0x10, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r2, 0x20410}, [@IFLA_VFINFO_LIST={0x1c, 0x16, 0x0, 0x1, [{0x18, 0x1, 0x0, 0x1, [@IFLA_VF_IB_PORT_GUID={0x14}]}]}]}, 0x3c}}, 0x0) setsockopt$netlink_NETLINK_LISTEN_ALL_NSID(r1, 0x10e, 0x8, &(0x7f0000000040)=0x37c6, 0x4) [ 280.565900][T14005] loop3: detected capacity change from 0 to 512 00:04:40 executing program 4: r0 = bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x8, 0x4, &(0x7f0000002200)=@framed={{0xffffffb4, 0x0, 0x0, 0x0, 0x0, 0x61, 0x11, 0xc, 0x6}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000003ff6)='GPL\x00', 0x1, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x2, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000)={0x6}, 0x8, 0x10, &(0x7f0000000000)={0xfffffffc, 0x0, 0x0, 0x1}, 0x10}, 0x80) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000002180)={r0, 0x0, 0x83, 0x1000, &(0x7f0000000080)="5c9db510fa2545df69d32f50ddcad4da6dc39e42f5eecbc415dc6ea1345d598db86e2fa49a7d5ea60fb691452497a1db32b8fc457e18fccb54e27e8b8e2444a4e5da4af3d944a19ea3c7ce133bce9ba545a2eb9410ff5a4862d4264cdc6284b8447d897813ba21a6066e536b9e88598c6eb82dddeca55d5a31525d84ea4069ce88ebe3", &(0x7f0000000140)=""/4096, 0x3, 0x0, 0x26, 0x1000, &(0x7f0000001140)="010058392c44f64bae198d1b8cb78e483ec2a9657413c4f6f78f0b50ec3fb2d32aebca7826ed", &(0x7f0000001180)="0fde309bdd6a1d0fa9431be2e4f12c92316028fea0117a676718d19864f996c1196bac3e4109fe3f7f3b3ff7d6c98e07081567e117eff60632bf7549f92566a8c51b180fa5fddae757c90667051809bd41466942b6e6313825a49820a08f781d111cdd57289a5e26fb19719f1b7f32beddd7ada00ada69755cbb322a1f3f29e91e718a93b2227b33b07b4630bf53653787a99ef1efae811d234682fd8f2ae0b00833f4553f042cc6b4e8cf54d953da527303bb9d05bbca832683689452527dc1cddedae36ec44b1e6303a095bd9113c89df22f1c969eb6437b97a3ab68ce30a498fcdca55ae6bc5680ee23b8ea0168c641ddfcf705576e9c0b5231ed898b4dbdf96825f9785718820e0f4f2d444076a44a9945763e4533201610e840d8b647babdccb46eb58b93ca9bba70c05ba4c326e4e6be063bfddc117ad3d873a3b12fe508905fbc7663df07a12072aa62084576564b7be5ffbb696071573bba80d7da7d1f3c567ba5f533210c908dccdf037905b2e8ddde3e4ff115c754a103f2a10ae16285e057aa99d144e25f48adb5583b0e4c35ef19a5efe8fd4fee8ad8d42889a38d268e4d69966b96a07fe3380d8a4f258f720624a51dce01a021ac6d96cf42a61789df2a3e39182310dff19738eccfdb68dd956c28925bedfa96bb9cdb3caa0f93f2d4ada725c3fbe76172ee9f4113d1423bc4aab896b557fcc5900f4cfb01c30ea4b12343e2b9f35450cfbb669c456e63ffd6786517df720e7dc87c0a30e5d3ff7beba3fa28869dee9ffbcbee9205d188aa2791dcdc8d9422d4e7b5b7a753ddb300737695833c9ebbdf48eb389aa9bef0597c9e6e498dcbd1194660c03e8b555486e7594f1dca13a38d3a1facac690bde473bf78c1f5d9a39de29f2c576c593705f261ee83d8f7050074c77cc81a913f6ca66f746a0a0040357a942d21c0101296544941680d740c756568ff0dee6cbeaf66845339acf903a38a084c785a861426dc92fbf0443ca1a12c0c8edc98d1f7ec429ea04a8af75df430911d762d5ee4df270488fa3c50b6840c77bef407331b931e4c45b2942e6426a5e02187ff11c04379004afe55c6940cb196a63274d74c6ca41b7de0e65e076bce4220de35e134d3ee2453cb0364375af13860e1df883c62e988242b06b0235924a649a1e379dce6450827899320d83468cd2b6206d94bbaff879cd041f47f1eccdd1778657a2261552f5f687cb9cda21478ba036e3d6ee9afc269e833de1238bcd12d6f46727d892b6f08320eaf855aa9f8597899caa792f65611cc44e0944287aef29fc67b2a35686dc5b26a8412476010b4a1792574da44a445080e049970211d667ca5c060740720e3b66bcdb21c8048088418b5a491f4c087eb0190a1ebb15b369f8aaf0a45e1bd383d6ed91d427f0be69137022233c0b153777a115faf2189ca379e40158477e4d5ac6bfe26625a36c8c68a4818e0b5c36217ee6fd8aed39b03aa5ce64fda6f580f0f73176c068541d0eddbfc6f0e2ab0ad7979e30d9314befc2b82d8c759adb40a705ac5363a781eaa5adf07ad9920f09192df12ed31456d9cdb7e37c396dd33c5b87f77398c1a7336ebcf5bba1fd8eb70cd6f9da19a29e52bb860ae252d93ef64e25202c801f56bca5dcc5f0d2ff2492cc10b40dcc3c5f562cea674faaeca5fbe4586309e98c14b38ad2bb580b20f5f526e9f17a5b6bd6c14ad56ce7de34fe99611b9384d6d222bd83d1d53a4d4238fe2e9801f6ba4bbacaf64dd4fcba6f3d34450d216a116a33e235130ba1ba0b56627424dbf0e97e69c2db6a14998768d122950fb8686b5082087a8a45cef8c18db2e82957fa1b07aa6af234c9e6ef573a1c3a6448000f4bb52679c7c44c282790f929a06d11b9c9792b7fe4cb0cb8602a3aae9da30770a0ac3b2f36eae6bd595f3669eaeceebec1a99a6997c9f5b26a96bfee769631f9ed7eb9011a2ca9477b24b24ac1686e307de3b517cccf42fa8442cb6842196f892d28ac70b409d011ea5c81a7ba2755bfcb83f1dbdd79935422829c2bfe1d3754590f16769a7e22ffa26572ff03a055f6b75e8b39e274e26e5e15eb7cf285cb9ba3f677f82dab5a81da5a9c1d9ffcb710a4e4f8b1eaf8aecc0433bb1f189057a159d0515392f74d2b1fd15af9941765928c5a5cdf9cc5aff740e7b2881d65ff67eb89b4da6dc2613ed1ac22a37658506b7d26e9d3d6904d0f6acfc819a40578c2208732ac7d8f12063b5fb9cd546f66bc25ff1e1f23b869ab44fb14d016324139a988e23ef006ef49c47662b24fb39df9893c50b51437422e3ca7b9fc28cd5314612e35020e1957000fa1b73dd473211e329db85ecf7f29503cfb15a97c3728d6849af292d793c025a58f1a620772f2a0d51cea659e407f6bec2a0386530e8afd40b5299ecb575326642b9bc91c2df14baa33dccd5917b88fd3dfc1f9f67738169eebcc482e9d16dffc1621c175cc9f6e39f6b2fe0210fe34c0d1a9c13dcb7cd667618ad477dacaadf09600cbd4265d9300b0fd3bbae2a23ad01bb5b25c9e01f1a73fe42f9af5d1cfec360e9b7a97c16b3dadd4894654a0963c6b0e3d36fb2e228d3baabaa910de904769fd611a9bbfc37cea7e7f807a4982446fa5c7eebe81d1f00834322ac5727402a67038ab071bc0a26c634d538a8e581be60c716ab71fee7c91b6dafae22f04bcee90e35322e85abecc2069cbf508af3b2bdc1c86d5836dd3591780231ca851e03625b5178df1f14fb01ad65ee34b2050e03db8060ee3934d114c204f84fed9ca2393ee7341cc4ca6da1fc068c009bdbd2319115f4e26deca6334f7f9035e33b3852a826165a8b5fa5302991871979b22c77f64dae556cc97e6666708d321e891417964e9938a485a583c674e0b2fec308cc2fee90c7bb6a3172698badce2459f431ab953b294b8503378c6a37c6330e5d8b2002046326461b5a50135a1d67bf1d988ad39ee0bd20785ed94b357dce2c3028816f1713c1894ce3e1177cea569549e6939de54510d2b4de7d1f8dabcb35cb42f8d9eab6e07495746d10fb4c95f043d8a83c9bb239c1566658c6a47f19ad3840834e9cce509e1f0789df8defb440ff5f9308bec92a96cf2783b388cc7ec4df5063be758c79a7a32ef0bdd4d2d1097b3928c6ba4086cd09dc7605892b33a818420bcbbc6552e7bdbdc2ddac0c1195e7561ee84806d597c83c2037723539b2fc82fa6ba8a3b2d50ece6da2cd8973c2a3d2a86d6cd852ce9814b04a7873e0e1395c8cc727490cbfe83f708bfa1329418cb55df2cda5725ea80e580af726bb524613c11318bc832a31c7ca764ba5c5f47079928ccbfb46c5b14b4a81233d6964d9b9bc678b6c57234915a646f7d05cc79c3ce5c3d4f053dc99209f8f3190876840951c6d8df45f84d0f7c81c6c9aaa9e96a4fa9246016acb41de18c25b04b06cb127bc17ef8ddb0d7bf200e9d48d73904d1e523cfa89061f45f70f81741613fb4b5bce8ee0dbd82b2a124a300ab01c993bd2eb24303196906de8042956ba649f7a424fd448b9284fe8678c14388966f29116874dfa32114fa9b45a822e370fd453b91e7c308ee40b39303e5201f7534d1547e4634ab7b8bdd6ac244be78f9e71d67f63194ba60d33d35a29a89a6610932a6833b0e3fc137a51d445fc9c95fefb831dcb52e52b922891e77df840da61f3a4ee39e76d941c386a6b69418fb557e27c66b730d238c4b52c17bbc7b331c67d7c6ff845903fe1fca71f9a9709f6a35593bc2b868b806a954ef2ac3d5d65ea8b99ec3a4786c98962cc6d620fe29fa8f819c6a70ef57c578615a1f162efc2b3ddf53bfb4af89cbe436c454d466792b9b3b8de8d7950cc1252f3270e8c6bdabb5dd1dee9b3c3f1be9cf99721d7ebd5f5e7dc24bcc5db10a63c14caf90f75fcbaa878127eeb86727a8eb6313e30934226af431465141c4ad020573383e871e277ff33e6b1dd455b15a332cce3c72e70cc22ad890669ffb46f6becc76a092eb88909aaff462d59d2630710496fa2d3ce1e28d53633e02646e3c13824b1e208be2be64191f61369bac35a54b22ee02d7a9d5e76af59e28b10692af6c80e26caf387fbc524d4241934f75cd9ec62344b9422ffda09372f8eacefca2c279b94ba2348201af1bee92c0def0293970d936418c8309f6aff430419f3bb3a86d3ada5a8941971bc4372fa4c4208c1502314a059278d87b1a386b74fcff769029c4516c46a45e0aea25269a498ab7392a6401cf342fbf2fe3c77b823868f84c1b39e7286749c9cd6b702d735dbf80a2d9d440426596bd0242a5e69518fe670c72b02ce16d273bd95415f9d126a162756b5080e85ddb34b0265a2b92d863fb58d0cee874b09f80588ad369b8654cd43e0e0b0b38347f34bfad39ed682124b7e9c6d982c3ac0bf3f5c743e2237868d7582b6e01908927f9f600e36a24dc60c8a931420e780c7a2965b02a49a43de3fd72b13e5a659755e7b283e1fca2668cab6f3850c9a5c275d680dca2b2ba22741ae6214382aa91ecb4de6449414ce3670ea118f4e7dc60c7d1ec9526ce720426e2693d853630d9b108038fd15abbef16e208d27d65676d6a3fd800743b6994c770703a9964bca2a0e021c253dd2c449d7ae1fc003b6077edcd82d35c331418652fcf6c1963e1b8e9e5343d5ac7f2ebbf19a0b908d06c7f45e97db7f12fb17a4ec3bbe0d92a577ca9b424b1e922bbf656d3d35d320e2b9d3bf9234c629a467ba8fd6e754e8c47d32e61cb25e885741b269983ce066bd6e3bc005cae65a114100c88cbcdd00ea52ea03d394708088f267ddb1097b28c28107c666514d5391b7e0f8c97e6a42a1a3b3653bacc4f258f9bfbb07312432ae2f63205dc15597e22d2d891416a668dab8850c83abede0620f635f6660542ce6569f605d43f9be5ee8289b3318f1bcc90b14831c78abed8d404b392624ba9356eb095035545d064a931bdb4a82b1637a8966a0ad24bf85e0a663689ea29853b983ea34ffc0f5514bc1d6dd6eabb3341c8e380e47d77039dd34fcb0e9c094774ed224f04a96b6dfe8b1278d51bd2040d63e558c103b622662cb1f0deec7f314571fcdbb39f49d8846b46ae8ffe385f01435a5c6addeac8e4d2af74f419a75c76f3909cfccc3c525ce2349cc973580f48d06da0be420194fbb9137819fa7cf9b27ccd6a7a914f41da2f3089f34761179aea04452d8dbf3f67117f7a685d66cf18dababb8fde8d36088bdc6f3abf7f1e7b5f622af1b21502c2a0478ac2581bed2a39b67c468f7da1027f89cd8e21d406d3588d63ed06b7aabfc14e4a33e5739e93d90bdbaee2f1d46315b8022643a0a60fccc4974886374272cb36dc2dedf9f5bcfa1d6ceae674fdb3807e811dab2dac30cd84f381b44550a1f7232b0eefdea20fa18fb56d79a44576a1f931344b223f774d9e2a52937bc628eea2f480a799386b7ace2430c177f28cfaf321611886e3eee711dcfc76f22705c908c0908cfe74bf793028df3d391edcfd38de4361330a3e2fdc76d03927044447a24d3c827b297bc816561e753331467607d733f9d4a6512e26818e2b7b72fcd185045d517a70423825fe6879ef5a85e2b97de8deabf217eb091b87b4c612ab23b276f309c5eaf55f1b62869f18b617d3adcf558f292a9258d9f3b68d98863029fc64de25d4612fe3d4f3c802dbf0c53ed1dbe21a899db9ce105e957a311664fe1169753987cb8905feca745de0b56545a3c81d975486a0444be5a6a9c57b1ea9b675e822edfc129ac48ac7c14f2b3f2381d75c9e0aab33c1e9", 0x0, 0x81}, 0x48) [ 280.587491][T14005] EXT4-fs (loop3): Encoding requested by superblock is unknown 00:04:40 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x78, 0x10, 0x401, 0x70bd2a, 0x0, {}, [@IFLA_LINKINFO={0x44, 0x12, 0x0, 0x1, @geneve={{0xb}, {0x34, 0x2, 0x0, 0x1, [@IFLA_GENEVE_LABEL={0x8, 0xb, 0x1, 0x0, 0x11}, @IFLA_GENEVE_PORT={0x6}, @IFLA_GENEVE_UDP_ZERO_CSUM6_TX={0x5, 0x9, 0x1}, @IFLA_GENEVE_COLLECT_METADATA={0x4}, @IFLA_GENEVE_REMOTE6={0x14, 0x7, @loopback}]}}}, @IFLA_ALT_IFNAME={0x14, 0x35, 'vlan0\x00'}]}, 0x78}}, 0x0) (async) r1 = syz_init_net_socket$802154_raw(0x24, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000000c0)={'syzkaller0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0xc300480}, 0xc, &(0x7f0000000100)={&(0x7f0000000040)=@ipmr_getroute={0x1c, 0x1a, 0x10, 0x70bd29, 0x25dfdbfc, {0x80, 0x80, 0x14, 0x81, 0xfd, 0x2, 0x0, 0x9, 0x400}}, 0x1c}, 0x1, 0x0, 0x0, 0x24000000}, 0x4000080) 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000602000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:40 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x4, &(0x7f0000000200)=[{&(0x7f0000010500)="ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x71, 0x2}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x73}, {&(0x7f0000000140)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100ffff53ef010001000000dbbe655f000000000000000001000000000000000b00000000020000286e4187fb4bf73770c886d511cd0200000284", 0x6f, 0x400}, {&(0x7f0000010400)="02000000030000000400000030000f", 0xf, 0x1000}], 0x8, &(0x7f0000000500)=ANY=[@ANYBLOB="0078fab03b3c206dc07642ee74ce2370af025a1e62367575b3bcfa9f319665887b22cfcdf3f570162ce007127c176a3f1b88efb9d456184920035c0c3ef61d8abf0487c7c8360368cc8b7b2ae6e5d909532b885dc5dce78ae3f6a25a984b4dd196aa279ff85fbb2a8fafc12eda98ff76177196b1edc09c7bead06dd9c5cffa3fc9b67fa38654eeb16dacbf311fc1651a36c4ca2f8cad552776032da6a5da54e8fadf1ce822757f5a0fc2ac222a2e6ec05264eb97364076978cab97288d52c585238eaaf1d8ee1b8c9870722a00001fabbe24b0c843a7cde2c4d483a99df1c540e2e167d2b77a9202bea071fbb3e5ee71d37b89f7428e3908791d9bdf231a0b6cbd27ce707173673cb6b59c946e450646bfb7a98717521cfa6957c2d1b64f0143a8a1e6cbaf62d0a5385d89452c02e1bae5720008f14a49f268ccc8c916cdbe3c73dfbbb5a4b0160491c915afb8ed65fa322494774a19e9306698161f3d292e7017ce2dfd45dcf229b807baf2c76abf84efffd989d084000d08e7d52846b9268791dc091081326a0428a6fe690e06a7859af07fd35fbabb9d1fc2ac285337255ab898f6c979a9556fc0c5ec6a2a94a9c79be58abea8f2fb9d4f33897246a93d74f51bb1cd10055ddbc7733c37ad3e3f20bd155a4e989fb3b20fb86f597e73e8371c62c539d42aa59232596294b4e22e8556f2421c56f90f777e9d626718a7dd9ab212b8eab6e4336074979e5dadf5e2fc7dafc47fb61990388ea96929ba1aa0e50bb9388db854d847187a5c8c64e58c82e9f7e50e683990e10d337a45fb078ce25685be8373f341f1eeba0361e4260a0d955b9526079d3f057f7b20b8568644317403a6f4562e49360dca8e0295f42b5f00"/636], 0x2) 00:04:40 executing program 0: fcntl$lock(0xffffffffffffffff, 0x0, &(0x7f0000000000)={0x0, 0x2, 0xdce4, 0x800, 0xffffffffffffffff}) ioprio_get$pid(0x2, 0x0) (async) r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) (async) r2 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r3) r4 = geteuid() (async) ioctl$sock_kcm_SIOCKCMCLONE(0xffffffffffffffff, 0x89e2, &(0x7f0000002140)={r0}) ioctl$SIOCAX25GETUID(r5, 0x89e0, &(0x7f0000002180)={0x3, @rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, 0xee00}) read$FUSE(0xffffffffffffffff, &(0x7f0000000080)={0x2020, 0x0, 0x0, 0x0}, 0x2020) (async) r7 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r7, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r8) fsetxattr$system_posix_acl(0xffffffffffffffff, &(0x7f0000000040)='system.posix_acl_default\x00', &(0x7f00000020c0)={{}, {}, [{0x2, 0x7, r1}, {0x2, 0x0, r3}, {0x2, 0x2, r4}, {0x2, 0x2, 0xee00}, {0x2, 0x2, r6}, {0x2, 0x2, r8}, {0x2, 0x1, 0xee01}, {0x2, 0x2, 0xffffffffffffffff}], {0x4, 0x1}, [{0x8, 0x5}], {0x10, 0x7}}, 0x6c, 0x3) 00:04:40 executing program 4: r0 = bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x8, 0x4, &(0x7f0000002200)=@framed={{0xffffffb4, 0x0, 0x0, 0x0, 0x0, 0x61, 0x11, 0xc, 0x6}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000003ff6)='GPL\x00', 0x1, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x2, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000)={0x6}, 0x8, 0x10, &(0x7f0000000000)={0xfffffffc, 0x0, 0x0, 0x1}, 0x10}, 0x80) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000002180)={r0, 0x0, 0x83, 0x1000, &(0x7f0000000080)="5c9db510fa2545df69d32f50ddcad4da6dc39e42f5eecbc415dc6ea1345d598db86e2fa49a7d5ea60fb691452497a1db32b8fc457e18fccb54e27e8b8e2444a4e5da4af3d944a19ea3c7ce133bce9ba545a2eb9410ff5a4862d4264cdc6284b8447d897813ba21a6066e536b9e88598c6eb82dddeca55d5a31525d84ea4069ce88ebe3", &(0x7f0000000140)=""/4096, 0x3, 0x0, 0x26, 0x1000, &(0x7f0000001140)="010058392c44f64bae198d1b8cb78e483ec2a9657413c4f6f78f0b50ec3fb2d32aebca7826ed", &(0x7f0000001180)="0fde309bdd6a1d0fa9431be2e4f12c92316028fea0117a676718d19864f996c1196bac3e4109fe3f7f3b3ff7d6c98e07081567e117eff60632bf7549f92566a8c51b180fa5fddae757c90667051809bd41466942b6e6313825a49820a08f781d111cdd57289a5e26fb19719f1b7f32beddd7ada00ada69755cbb322a1f3f29e91e718a93b2227b33b07b4630bf53653787a99ef1efae811d234682fd8f2ae0b00833f4553f042cc6b4e8cf54d953da527303bb9d05bbca832683689452527dc1cddedae36ec44b1e6303a095bd9113c89df22f1c969eb6437b97a3ab68ce30a498fcdca55ae6bc5680ee23b8ea0168c641ddfcf705576e9c0b5231ed898b4dbdf96825f9785718820e0f4f2d444076a44a9945763e4533201610e840d8b647babdccb46eb58b93ca9bba70c05ba4c326e4e6be063bfddc117ad3d873a3b12fe508905fbc7663df07a12072aa62084576564b7be5ffbb696071573bba80d7da7d1f3c567ba5f533210c908dccdf037905b2e8ddde3e4ff115c754a103f2a10ae16285e057aa99d144e25f48adb5583b0e4c35ef19a5efe8fd4fee8ad8d42889a38d268e4d69966b96a07fe3380d8a4f258f720624a51dce01a021ac6d96cf42a61789df2a3e39182310dff19738eccfdb68dd956c28925bedfa96bb9cdb3caa0f93f2d4ada725c3fbe76172ee9f4113d1423bc4aab896b557fcc5900f4cfb01c30ea4b12343e2b9f35450cfbb669c456e63ffd6786517df720e7dc87c0a30e5d3ff7beba3fa28869dee9ffbcbee9205d188aa2791dcdc8d9422d4e7b5b7a753ddb300737695833c9ebbdf48eb389aa9bef0597c9e6e498dcbd1194660c03e8b555486e7594f1dca13a38d3a1facac690bde473bf78c1f5d9a39de29f2c576c593705f261ee83d8f7050074c77cc81a913f6ca66f746a0a0040357a942d21c0101296544941680d740c756568ff0dee6cbeaf66845339acf903a38a084c785a861426dc92fbf0443ca1a12c0c8edc98d1f7ec429ea04a8af75df430911d762d5ee4df270488fa3c50b6840c77bef407331b931e4c45b2942e6426a5e02187ff11c04379004afe55c6940cb196a63274d74c6ca41b7de0e65e076bce4220de35e134d3ee2453cb0364375af13860e1df883c62e988242b06b0235924a649a1e379dce6450827899320d83468cd2b6206d94bbaff879cd041f47f1eccdd1778657a2261552f5f687cb9cda21478ba036e3d6ee9afc269e833de1238bcd12d6f46727d892b6f08320eaf855aa9f8597899caa792f65611cc44e0944287aef29fc67b2a35686dc5b26a8412476010b4a1792574da44a445080e049970211d667ca5c060740720e3b66bcdb21c8048088418b5a491f4c087eb0190a1ebb15b369f8aaf0a45e1bd383d6ed91d427f0be69137022233c0b153777a115faf2189ca379e40158477e4d5ac6bfe26625a36c8c68a4818e0b5c36217ee6fd8aed39b03aa5ce64fda6f580f0f73176c068541d0eddbfc6f0e2ab0ad7979e30d9314befc2b82d8c759adb40a705ac5363a781eaa5adf07ad9920f09192df12ed31456d9cdb7e37c396dd33c5b87f77398c1a7336ebcf5bba1fd8eb70cd6f9da19a29e52bb860ae252d93ef64e25202c801f56bca5dcc5f0d2ff2492cc10b40dcc3c5f562cea674faaeca5fbe4586309e98c14b38ad2bb580b20f5f526e9f17a5b6bd6c14ad56ce7de34fe99611b9384d6d222bd83d1d53a4d4238fe2e9801f6ba4bbacaf64dd4fcba6f3d34450d216a116a33e235130ba1ba0b56627424dbf0e97e69c2db6a14998768d122950fb8686b5082087a8a45cef8c18db2e82957fa1b07aa6af234c9e6ef573a1c3a6448000f4bb52679c7c44c282790f929a06d11b9c9792b7fe4cb0cb8602a3aae9da30770a0ac3b2f36eae6bd595f3669eaeceebec1a99a6997c9f5b26a96bfee769631f9ed7eb9011a2ca9477b24b24ac1686e307de3b517cccf42fa8442cb6842196f892d28ac70b409d011ea5c81a7ba2755bfcb83f1dbdd79935422829c2bfe1d3754590f16769a7e22ffa26572ff03a055f6b75e8b39e274e26e5e15eb7cf285cb9ba3f677f82dab5a81da5a9c1d9ffcb710a4e4f8b1eaf8aecc0433bb1f189057a159d0515392f74d2b1fd15af9941765928c5a5cdf9cc5aff740e7b2881d65ff67eb89b4da6dc2613ed1ac22a37658506b7d26e9d3d6904d0f6acfc819a40578c2208732ac7d8f12063b5fb9cd546f66bc25ff1e1f23b869ab44fb14d016324139a988e23ef006ef49c47662b24fb39df9893c50b51437422e3ca7b9fc28cd5314612e35020e1957000fa1b73dd473211e329db85ecf7f29503cfb15a97c3728d6849af292d793c025a58f1a620772f2a0d51cea659e407f6bec2a0386530e8afd40b5299ecb575326642b9bc91c2df14baa33dccd5917b88fd3dfc1f9f67738169eebcc482e9d16dffc1621c175cc9f6e39f6b2fe0210fe34c0d1a9c13dcb7cd667618ad477dacaadf09600cbd4265d9300b0fd3bbae2a23ad01bb5b25c9e01f1a73fe42f9af5d1cfec360e9b7a97c16b3dadd4894654a0963c6b0e3d36fb2e228d3baabaa910de904769fd611a9bbfc37cea7e7f807a4982446fa5c7eebe81d1f00834322ac5727402a67038ab071bc0a26c634d538a8e581be60c716ab71fee7c91b6dafae22f04bcee90e35322e85abecc2069cbf508af3b2bdc1c86d5836dd3591780231ca851e03625b5178df1f14fb01ad65ee34b2050e03db8060ee3934d114c204f84fed9ca2393ee7341cc4ca6da1fc068c009bdbd2319115f4e26deca6334f7f9035e33b3852a826165a8b5fa5302991871979b22c77f64dae556cc97e6666708d321e891417964e9938a485a583c674e0b2fec308cc2fee90c7bb6a3172698badce2459f431ab953b294b8503378c6a37c6330e5d8b2002046326461b5a50135a1d67bf1d988ad39ee0bd20785ed94b357dce2c3028816f1713c1894ce3e1177cea569549e6939de54510d2b4de7d1f8dabcb35cb42f8d9eab6e07495746d10fb4c95f043d8a83c9bb239c1566658c6a47f19ad3840834e9cce509e1f0789df8defb440ff5f9308bec92a96cf2783b388cc7ec4df5063be758c79a7a32ef0bdd4d2d1097b3928c6ba4086cd09dc7605892b33a818420bcbbc6552e7bdbdc2ddac0c1195e7561ee84806d597c83c2037723539b2fc82fa6ba8a3b2d50ece6da2cd8973c2a3d2a86d6cd852ce9814b04a7873e0e1395c8cc727490cbfe83f708bfa1329418cb55df2cda5725ea80e580af726bb524613c11318bc832a31c7ca764ba5c5f47079928ccbfb46c5b14b4a81233d6964d9b9bc678b6c57234915a646f7d05cc79c3ce5c3d4f053dc99209f8f3190876840951c6d8df45f84d0f7c81c6c9aaa9e96a4fa9246016acb41de18c25b04b06cb127bc17ef8ddb0d7bf200e9d48d73904d1e523cfa89061f45f70f81741613fb4b5bce8ee0dbd82b2a124a300ab01c993bd2eb24303196906de8042956ba649f7a424fd448b9284fe8678c14388966f29116874dfa32114fa9b45a822e370fd453b91e7c308ee40b39303e5201f7534d1547e4634ab7b8bdd6ac244be78f9e71d67f63194ba60d33d35a29a89a6610932a6833b0e3fc137a51d445fc9c95fefb831dcb52e52b922891e77df840da61f3a4ee39e76d941c386a6b69418fb557e27c66b730d238c4b52c17bbc7b331c67d7c6ff845903fe1fca71f9a9709f6a35593bc2b868b806a954ef2ac3d5d65ea8b99ec3a4786c98962cc6d620fe29fa8f819c6a70ef57c578615a1f162efc2b3ddf53bfb4af89cbe436c454d466792b9b3b8de8d7950cc1252f3270e8c6bdabb5dd1dee9b3c3f1be9cf99721d7ebd5f5e7dc24bcc5db10a63c14caf90f75fcbaa878127eeb86727a8eb6313e30934226af431465141c4ad020573383e871e277ff33e6b1dd455b15a332cce3c72e70cc22ad890669ffb46f6becc76a092eb88909aaff462d59d2630710496fa2d3ce1e28d53633e02646e3c13824b1e208be2be64191f61369bac35a54b22ee02d7a9d5e76af59e28b10692af6c80e26caf387fbc524d4241934f75cd9ec62344b9422ffda09372f8eacefca2c279b94ba2348201af1bee92c0def0293970d936418c8309f6aff430419f3bb3a86d3ada5a8941971bc4372fa4c4208c1502314a059278d87b1a386b74fcff769029c4516c46a45e0aea25269a498ab7392a6401cf342fbf2fe3c77b823868f84c1b39e7286749c9cd6b702d735dbf80a2d9d440426596bd0242a5e69518fe670c72b02ce16d273bd95415f9d126a162756b5080e85ddb34b0265a2b92d863fb58d0cee874b09f80588ad369b8654cd43e0e0b0b38347f34bfad39ed682124b7e9c6d982c3ac0bf3f5c743e2237868d7582b6e01908927f9f600e36a24dc60c8a931420e780c7a2965b02a49a43de3fd72b13e5a659755e7b283e1fca2668cab6f3850c9a5c275d680dca2b2ba22741ae6214382aa91ecb4de6449414ce3670ea118f4e7dc60c7d1ec9526ce720426e2693d853630d9b108038fd15abbef16e208d27d65676d6a3fd800743b6994c770703a9964bca2a0e021c253dd2c449d7ae1fc003b6077edcd82d35c331418652fcf6c1963e1b8e9e5343d5ac7f2ebbf19a0b908d06c7f45e97db7f12fb17a4ec3bbe0d92a577ca9b424b1e922bbf656d3d35d320e2b9d3bf9234c629a467ba8fd6e754e8c47d32e61cb25e885741b269983ce066bd6e3bc005cae65a114100c88cbcdd00ea52ea03d394708088f267ddb1097b28c28107c666514d5391b7e0f8c97e6a42a1a3b3653bacc4f258f9bfbb07312432ae2f63205dc15597e22d2d891416a668dab8850c83abede0620f635f6660542ce6569f605d43f9be5ee8289b3318f1bcc90b14831c78abed8d404b392624ba9356eb095035545d064a931bdb4a82b1637a8966a0ad24bf85e0a663689ea29853b983ea34ffc0f5514bc1d6dd6eabb3341c8e380e47d77039dd34fcb0e9c094774ed224f04a96b6dfe8b1278d51bd2040d63e558c103b622662cb1f0deec7f314571fcdbb39f49d8846b46ae8ffe385f01435a5c6addeac8e4d2af74f419a75c76f3909cfccc3c525ce2349cc973580f48d06da0be420194fbb9137819fa7cf9b27ccd6a7a914f41da2f3089f34761179aea04452d8dbf3f67117f7a685d66cf18dababb8fde8d36088bdc6f3abf7f1e7b5f622af1b21502c2a0478ac2581bed2a39b67c468f7da1027f89cd8e21d406d3588d63ed06b7aabfc14e4a33e5739e93d90bdbaee2f1d46315b8022643a0a60fccc4974886374272cb36dc2dedf9f5bcfa1d6ceae674fdb3807e811dab2dac30cd84f381b44550a1f7232b0eefdea20fa18fb56d79a44576a1f931344b223f774d9e2a52937bc628eea2f480a799386b7ace2430c177f28cfaf321611886e3eee711dcfc76f22705c908c0908cfe74bf793028df3d391edcfd38de4361330a3e2fdc76d03927044447a24d3c827b297bc816561e753331467607d733f9d4a6512e26818e2b7b72fcd185045d517a70423825fe6879ef5a85e2b97de8deabf217eb091b87b4c612ab23b276f309c5eaf55f1b62869f18b617d3adcf558f292a9258d9f3b68d98863029fc64de25d4612fe3d4f3c802dbf0c53ed1dbe21a899db9ce105e957a311664fe1169753987cb8905feca745de0b56545a3c81d975486a0444be5a6a9c57b1ea9b675e822edfc129ac48ac7c14f2b3f2381d75c9e0aab33c1e9", 0x0, 0x81}, 0x48) [ 280.654578][T14021] loop3: detected capacity change from 0 to 512 00:04:40 executing program 2: r0 = socket$nl_route(0x10, 0x3, 0x0) (async) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000003c0)={'netdevsim0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000000)=@newlink={0x3c, 0x10, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r2, 0x20410}, [@IFLA_VFINFO_LIST={0x1c, 0x16, 0x0, 0x1, [{0x18, 0x1, 0x0, 0x1, [@IFLA_VF_IB_PORT_GUID={0x14}]}]}]}, 0x3c}}, 0x0) setsockopt$netlink_NETLINK_LISTEN_ALL_NSID(r1, 0x10e, 0x8, &(0x7f0000000040)=0x37c6, 0x4) 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000603000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 280.665943][T14021] EXT4-fs (loop3): Encoding requested by superblock is unknown 00:04:40 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x4, &(0x7f0000000200)=[{&(0x7f0000010500)="ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x71, 0x2}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x73}, {&(0x7f0000000140)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100ffff53ef010001000000dbbe655f000000000000000001000000000000000b00000000020000286e4187fb4bf73770c886d511cd0200000284", 0x6f, 0x400}, {&(0x7f0000010400)="02000000030000000400000030000f", 0xf, 0x1000}], 0x8, &(0x7f0000000500)=ANY=[@ANYBLOB="0078fab03b3c206dc07642ee74ce2370af025a1e62367575b3bcfa9f319665887b22cfcdf3f570162ce007127c176a3f1b88efb9d456184920035c0c3ef61d8abf0487c7c8360368cc8b7b2ae6e5d909532b885dc5dce78ae3f6a25a984b4dd196aa279ff85fbb2a8fafc12eda98ff76177196b1edc09c7bead06dd9c5cffa3fc9b67fa38654eeb16dacbf311fc1651a36c4ca2f8cad552776032da6a5da54e8fadf1ce822757f5a0fc2ac222a2e6ec05264eb97364076978cab97288d52c585238eaaf1d8ee1b8c9870722a00001fabbe24b0c843a7cde2c4d483a99df1c540e2e167d2b77a9202bea071fbb3e5ee71d37b89f7428e3908791d9bdf231a0b6cbd27ce707173673cb6b59c946e450646bfb7a98717521cfa6957c2d1b64f0143a8a1e6cbaf62d0a5385d89452c02e1bae5720008f14a49f268ccc8c916cdbe3c73dfbbb5a4b0160491c915afb8ed65fa322494774a19e9306698161f3d292e7017ce2dfd45dcf229b807baf2c76abf84efffd989d084000d08e7d52846b9268791dc091081326a0428a6fe690e06a7859af07fd35fbabb9d1fc2ac285337255ab898f6c979a9556fc0c5ec6a2a94a9c79be58abea8f2fb9d4f33897246a93d74f51bb1cd10055ddbc7733c37ad3e3f20bd155a4e989fb3b20fb86f597e73e8371c62c539d42aa59232596294b4e22e8556f2421c56f90f777e9d626718a7dd9ab212b8eab6e4336074979e5dadf5e2fc7dafc47fb61990388ea96929ba1aa0e50bb9388db854d847187a5c8c64e58c82e9f7e50e683990e10d337a45fb078ce25685be8373f341f1eeba0361e4260a0d955b9526079d3f057f7b20b8568644317403a6f4562e49360dca8e0295f42b5f00"/636], 0x2) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x4, &(0x7f0000000200)=[{&(0x7f0000010500)="ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x71, 0x2}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x73}, {&(0x7f0000000140)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100ffff53ef010001000000dbbe655f000000000000000001000000000000000b00000000020000286e4187fb4bf73770c886d511cd0200000284", 0x6f, 0x400}, {&(0x7f0000010400)="02000000030000000400000030000f", 0xf, 0x1000}], 0x8, &(0x7f0000000500)=ANY=[@ANYBLOB="0078fab03b3c206dc07642ee74ce2370af025a1e62367575b3bcfa9f319665887b22cfcdf3f570162ce007127c176a3f1b88efb9d456184920035c0c3ef61d8abf0487c7c8360368cc8b7b2ae6e5d909532b885dc5dce78ae3f6a25a984b4dd196aa279ff85fbb2a8fafc12eda98ff76177196b1edc09c7bead06dd9c5cffa3fc9b67fa38654eeb16dacbf311fc1651a36c4ca2f8cad552776032da6a5da54e8fadf1ce822757f5a0fc2ac222a2e6ec05264eb97364076978cab97288d52c585238eaaf1d8ee1b8c9870722a00001fabbe24b0c843a7cde2c4d483a99df1c540e2e167d2b77a9202bea071fbb3e5ee71d37b89f7428e3908791d9bdf231a0b6cbd27ce707173673cb6b59c946e450646bfb7a98717521cfa6957c2d1b64f0143a8a1e6cbaf62d0a5385d89452c02e1bae5720008f14a49f268ccc8c916cdbe3c73dfbbb5a4b0160491c915afb8ed65fa322494774a19e9306698161f3d292e7017ce2dfd45dcf229b807baf2c76abf84efffd989d084000d08e7d52846b9268791dc091081326a0428a6fe690e06a7859af07fd35fbabb9d1fc2ac285337255ab898f6c979a9556fc0c5ec6a2a94a9c79be58abea8f2fb9d4f33897246a93d74f51bb1cd10055ddbc7733c37ad3e3f20bd155a4e989fb3b20fb86f597e73e8371c62c539d42aa59232596294b4e22e8556f2421c56f90f777e9d626718a7dd9ab212b8eab6e4336074979e5dadf5e2fc7dafc47fb61990388ea96929ba1aa0e50bb9388db854d847187a5c8c64e58c82e9f7e50e683990e10d337a45fb078ce25685be8373f341f1eeba0361e4260a0d955b9526079d3f057f7b20b8568644317403a6f4562e49360dca8e0295f42b5f00"/636], 0x2) (async) 00:04:40 executing program 4: r0 = bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x8, 0x4, &(0x7f0000002200)=@framed={{0xffffffb4, 0x0, 0x0, 0x0, 0x0, 0x61, 0x11, 0xc, 0x6}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff8}]}, &(0x7f0000003ff6)='GPL\x00', 0x1, 0xc3, &(0x7f000000cf3d)=""/195, 0x0, 0x2, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000)={0x6}, 0x8, 0x10, &(0x7f0000000000)={0xfffffffc, 0x0, 0x0, 0x1}, 0x10}, 0x80) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000002180)={r0, 0x0, 0x83, 0x1000, &(0x7f0000000080)="5c9db510fa2545df69d32f50ddcad4da6dc39e42f5eecbc415dc6ea1345d598db86e2fa49a7d5ea60fb691452497a1db32b8fc457e18fccb54e27e8b8e2444a4e5da4af3d944a19ea3c7ce133bce9ba545a2eb9410ff5a4862d4264cdc6284b8447d897813ba21a6066e536b9e88598c6eb82dddeca55d5a31525d84ea4069ce88ebe3", &(0x7f0000000140)=""/4096, 0x3, 0x0, 0x26, 0x1000, &(0x7f0000001140)="010058392c44f64bae198d1b8cb78e483ec2a9657413c4f6f78f0b50ec3fb2d32aebca7826ed", &(0x7f0000001180)="0fde309bdd6a1d0fa9431be2e4f12c92316028fea0117a676718d19864f996c1196bac3e4109fe3f7f3b3ff7d6c98e07081567e117eff60632bf7549f92566a8c51b180fa5fddae757c90667051809bd41466942b6e6313825a49820a08f781d111cdd57289a5e26fb19719f1b7f32beddd7ada00ada69755cbb322a1f3f29e91e718a93b2227b33b07b4630bf53653787a99ef1efae811d234682fd8f2ae0b00833f4553f042cc6b4e8cf54d953da527303bb9d05bbca832683689452527dc1cddedae36ec44b1e6303a095bd9113c89df22f1c969eb6437b97a3ab68ce30a498fcdca55ae6bc5680ee23b8ea0168c641ddfcf705576e9c0b5231ed898b4dbdf96825f9785718820e0f4f2d444076a44a9945763e4533201610e840d8b647babdccb46eb58b93ca9bba70c05ba4c326e4e6be063bfddc117ad3d873a3b12fe508905fbc7663df07a12072aa62084576564b7be5ffbb696071573bba80d7da7d1f3c567ba5f533210c908dccdf037905b2e8ddde3e4ff115c754a103f2a10ae16285e057aa99d144e25f48adb5583b0e4c35ef19a5efe8fd4fee8ad8d42889a38d268e4d69966b96a07fe3380d8a4f258f720624a51dce01a021ac6d96cf42a61789df2a3e39182310dff19738eccfdb68dd956c28925bedfa96bb9cdb3caa0f93f2d4ada725c3fbe76172ee9f4113d1423bc4aab896b557fcc5900f4cfb01c30ea4b12343e2b9f35450cfbb669c456e63ffd6786517df720e7dc87c0a30e5d3ff7beba3fa28869dee9ffbcbee9205d188aa2791dcdc8d9422d4e7b5b7a753ddb300737695833c9ebbdf48eb389aa9bef0597c9e6e498dcbd1194660c03e8b555486e7594f1dca13a38d3a1facac690bde473bf78c1f5d9a39de29f2c576c593705f261ee83d8f7050074c77cc81a913f6ca66f746a0a0040357a942d21c0101296544941680d740c756568ff0dee6cbeaf66845339acf903a38a084c785a861426dc92fbf0443ca1a12c0c8edc98d1f7ec429ea04a8af75df430911d762d5ee4df270488fa3c50b6840c77bef407331b931e4c45b2942e6426a5e02187ff11c04379004afe55c6940cb196a63274d74c6ca41b7de0e65e076bce4220de35e134d3ee2453cb0364375af13860e1df883c62e988242b06b0235924a649a1e379dce6450827899320d83468cd2b6206d94bbaff879cd041f47f1eccdd1778657a2261552f5f687cb9cda21478ba036e3d6ee9afc269e833de1238bcd12d6f46727d892b6f08320eaf855aa9f8597899caa792f65611cc44e0944287aef29fc67b2a35686dc5b26a8412476010b4a1792574da44a445080e049970211d667ca5c060740720e3b66bcdb21c8048088418b5a491f4c087eb0190a1ebb15b369f8aaf0a45e1bd383d6ed91d427f0be69137022233c0b153777a115faf2189ca379e40158477e4d5ac6bfe26625a36c8c68a4818e0b5c36217ee6fd8aed39b03aa5ce64fda6f580f0f73176c068541d0eddbfc6f0e2ab0ad7979e30d9314befc2b82d8c759adb40a705ac5363a781eaa5adf07ad9920f09192df12ed31456d9cdb7e37c396dd33c5b87f77398c1a7336ebcf5bba1fd8eb70cd6f9da19a29e52bb860ae252d93ef64e25202c801f56bca5dcc5f0d2ff2492cc10b40dcc3c5f562cea674faaeca5fbe4586309e98c14b38ad2bb580b20f5f526e9f17a5b6bd6c14ad56ce7de34fe99611b9384d6d222bd83d1d53a4d4238fe2e9801f6ba4bbacaf64dd4fcba6f3d34450d216a116a33e235130ba1ba0b56627424dbf0e97e69c2db6a14998768d122950fb8686b5082087a8a45cef8c18db2e82957fa1b07aa6af234c9e6ef573a1c3a6448000f4bb52679c7c44c282790f929a06d11b9c9792b7fe4cb0cb8602a3aae9da30770a0ac3b2f36eae6bd595f3669eaeceebec1a99a6997c9f5b26a96bfee769631f9ed7eb9011a2ca9477b24b24ac1686e307de3b517cccf42fa8442cb6842196f892d28ac70b409d011ea5c81a7ba2755bfcb83f1dbdd79935422829c2bfe1d3754590f16769a7e22ffa26572ff03a055f6b75e8b39e274e26e5e15eb7cf285cb9ba3f677f82dab5a81da5a9c1d9ffcb710a4e4f8b1eaf8aecc0433bb1f189057a159d0515392f74d2b1fd15af9941765928c5a5cdf9cc5aff740e7b2881d65ff67eb89b4da6dc2613ed1ac22a37658506b7d26e9d3d6904d0f6acfc819a40578c2208732ac7d8f12063b5fb9cd546f66bc25ff1e1f23b869ab44fb14d016324139a988e23ef006ef49c47662b24fb39df9893c50b51437422e3ca7b9fc28cd5314612e35020e1957000fa1b73dd473211e329db85ecf7f29503cfb15a97c3728d6849af292d793c025a58f1a620772f2a0d51cea659e407f6bec2a0386530e8afd40b5299ecb575326642b9bc91c2df14baa33dccd5917b88fd3dfc1f9f67738169eebcc482e9d16dffc1621c175cc9f6e39f6b2fe0210fe34c0d1a9c13dcb7cd667618ad477dacaadf09600cbd4265d9300b0fd3bbae2a23ad01bb5b25c9e01f1a73fe42f9af5d1cfec360e9b7a97c16b3dadd4894654a0963c6b0e3d36fb2e228d3baabaa910de904769fd611a9bbfc37cea7e7f807a4982446fa5c7eebe81d1f00834322ac5727402a67038ab071bc0a26c634d538a8e581be60c716ab71fee7c91b6dafae22f04bcee90e35322e85abecc2069cbf508af3b2bdc1c86d5836dd3591780231ca851e03625b5178df1f14fb01ad65ee34b2050e03db8060ee3934d114c204f84fed9ca2393ee7341cc4ca6da1fc068c009bdbd2319115f4e26deca6334f7f9035e33b3852a826165a8b5fa5302991871979b22c77f64dae556cc97e6666708d321e891417964e9938a485a583c674e0b2fec308cc2fee90c7bb6a3172698badce2459f431ab953b294b8503378c6a37c6330e5d8b2002046326461b5a50135a1d67bf1d988ad39ee0bd20785ed94b357dce2c3028816f1713c1894ce3e1177cea569549e6939de54510d2b4de7d1f8dabcb35cb42f8d9eab6e07495746d10fb4c95f043d8a83c9bb239c1566658c6a47f19ad3840834e9cce509e1f0789df8defb440ff5f9308bec92a96cf2783b388cc7ec4df5063be758c79a7a32ef0bdd4d2d1097b3928c6ba4086cd09dc7605892b33a818420bcbbc6552e7bdbdc2ddac0c1195e7561ee84806d597c83c2037723539b2fc82fa6ba8a3b2d50ece6da2cd8973c2a3d2a86d6cd852ce9814b04a7873e0e1395c8cc727490cbfe83f708bfa1329418cb55df2cda5725ea80e580af726bb524613c11318bc832a31c7ca764ba5c5f47079928ccbfb46c5b14b4a81233d6964d9b9bc678b6c57234915a646f7d05cc79c3ce5c3d4f053dc99209f8f3190876840951c6d8df45f84d0f7c81c6c9aaa9e96a4fa9246016acb41de18c25b04b06cb127bc17ef8ddb0d7bf200e9d48d73904d1e523cfa89061f45f70f81741613fb4b5bce8ee0dbd82b2a124a300ab01c993bd2eb24303196906de8042956ba649f7a424fd448b9284fe8678c14388966f29116874dfa32114fa9b45a822e370fd453b91e7c308ee40b39303e5201f7534d1547e4634ab7b8bdd6ac244be78f9e71d67f63194ba60d33d35a29a89a6610932a6833b0e3fc137a51d445fc9c95fefb831dcb52e52b922891e77df840da61f3a4ee39e76d941c386a6b69418fb557e27c66b730d238c4b52c17bbc7b331c67d7c6ff845903fe1fca71f9a9709f6a35593bc2b868b806a954ef2ac3d5d65ea8b99ec3a4786c98962cc6d620fe29fa8f819c6a70ef57c578615a1f162efc2b3ddf53bfb4af89cbe436c454d466792b9b3b8de8d7950cc1252f3270e8c6bdabb5dd1dee9b3c3f1be9cf99721d7ebd5f5e7dc24bcc5db10a63c14caf90f75fcbaa878127eeb86727a8eb6313e30934226af431465141c4ad020573383e871e277ff33e6b1dd455b15a332cce3c72e70cc22ad890669ffb46f6becc76a092eb88909aaff462d59d2630710496fa2d3ce1e28d53633e02646e3c13824b1e208be2be64191f61369bac35a54b22ee02d7a9d5e76af59e28b10692af6c80e26caf387fbc524d4241934f75cd9ec62344b9422ffda09372f8eacefca2c279b94ba2348201af1bee92c0def0293970d936418c8309f6aff430419f3bb3a86d3ada5a8941971bc4372fa4c4208c1502314a059278d87b1a386b74fcff769029c4516c46a45e0aea25269a498ab7392a6401cf342fbf2fe3c77b823868f84c1b39e7286749c9cd6b702d735dbf80a2d9d440426596bd0242a5e69518fe670c72b02ce16d273bd95415f9d126a162756b5080e85ddb34b0265a2b92d863fb58d0cee874b09f80588ad369b8654cd43e0e0b0b38347f34bfad39ed682124b7e9c6d982c3ac0bf3f5c743e2237868d7582b6e01908927f9f600e36a24dc60c8a931420e780c7a2965b02a49a43de3fd72b13e5a659755e7b283e1fca2668cab6f3850c9a5c275d680dca2b2ba22741ae6214382aa91ecb4de6449414ce3670ea118f4e7dc60c7d1ec9526ce720426e2693d853630d9b108038fd15abbef16e208d27d65676d6a3fd800743b6994c770703a9964bca2a0e021c253dd2c449d7ae1fc003b6077edcd82d35c331418652fcf6c1963e1b8e9e5343d5ac7f2ebbf19a0b908d06c7f45e97db7f12fb17a4ec3bbe0d92a577ca9b424b1e922bbf656d3d35d320e2b9d3bf9234c629a467ba8fd6e754e8c47d32e61cb25e885741b269983ce066bd6e3bc005cae65a114100c88cbcdd00ea52ea03d394708088f267ddb1097b28c28107c666514d5391b7e0f8c97e6a42a1a3b3653bacc4f258f9bfbb07312432ae2f63205dc15597e22d2d891416a668dab8850c83abede0620f635f6660542ce6569f605d43f9be5ee8289b3318f1bcc90b14831c78abed8d404b392624ba9356eb095035545d064a931bdb4a82b1637a8966a0ad24bf85e0a663689ea29853b983ea34ffc0f5514bc1d6dd6eabb3341c8e380e47d77039dd34fcb0e9c094774ed224f04a96b6dfe8b1278d51bd2040d63e558c103b622662cb1f0deec7f314571fcdbb39f49d8846b46ae8ffe385f01435a5c6addeac8e4d2af74f419a75c76f3909cfccc3c525ce2349cc973580f48d06da0be420194fbb9137819fa7cf9b27ccd6a7a914f41da2f3089f34761179aea04452d8dbf3f67117f7a685d66cf18dababb8fde8d36088bdc6f3abf7f1e7b5f622af1b21502c2a0478ac2581bed2a39b67c468f7da1027f89cd8e21d406d3588d63ed06b7aabfc14e4a33e5739e93d90bdbaee2f1d46315b8022643a0a60fccc4974886374272cb36dc2dedf9f5bcfa1d6ceae674fdb3807e811dab2dac30cd84f381b44550a1f7232b0eefdea20fa18fb56d79a44576a1f931344b223f774d9e2a52937bc628eea2f480a799386b7ace2430c177f28cfaf321611886e3eee711dcfc76f22705c908c0908cfe74bf793028df3d391edcfd38de4361330a3e2fdc76d03927044447a24d3c827b297bc816561e753331467607d733f9d4a6512e26818e2b7b72fcd185045d517a70423825fe6879ef5a85e2b97de8deabf217eb091b87b4c612ab23b276f309c5eaf55f1b62869f18b617d3adcf558f292a9258d9f3b68d98863029fc64de25d4612fe3d4f3c802dbf0c53ed1dbe21a899db9ce105e957a311664fe1169753987cb8905feca745de0b56545a3c81d975486a0444be5a6a9c57b1ea9b675e822edfc129ac48ac7c14f2b3f2381d75c9e0aab33c1e9", 0x0, 0x81}, 0x48) 00:04:40 executing program 0: ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, &(0x7f0000000140)={'sit0\x00', &(0x7f0000000000)={'ip_vti0\x00', 0x0, 0x8000, 0x8000, 0x7, 0xdf7c, {{0x44, 0x4, 0x0, 0x1f, 0x110, 0x64, 0x0, 0x9, 0x4, 0x0, @private=0x5, @broadcast, {[@generic={0x86, 0xd, "e4c731c82a1cdcc1e1f929"}, @generic={0x83, 0x8, "bf30e136af1d"}, @cipso={0x86, 0x41, 0x1, [{0x5, 0xa, "306c925a8d35bf49"}, {0x6, 0xc, "f64c100bfb5774064370"}, {0x7, 0xa, "6c168d52314a4d28"}, {0x7, 0xa, "0a8679a342ec570b"}, {0x7, 0x2}, {0x7, 0xf, "598e9c912106bacfa1acd9bee8"}]}, @noop, @generic={0x89, 0x7, "d73849411d"}, @cipso={0x86, 0x32, 0x2, [{0x4, 0x10, "a67d89f70d4989feac066700a7a0"}, {0x5, 0x5, "2cb661"}, {0x2, 0x3, 't'}, {0x7, 0xa, "2c349e41536abd74"}, {0x2, 0xa, "d26964cdd6605ae1"}]}, @cipso={0x86, 0x22, 0x3, [{0x7, 0x12, "eaad884ce8386e88baf949ee048397fa"}, {0x5, 0x3, '3'}, {0x2, 0x7, "1c0cd6ef19"}]}, @rr={0x7, 0x2b, 0xdd, [@multicast2, @loopback, @rand_addr=0x64010102, @broadcast, @multicast2, @multicast2, @remote, @local, @multicast1, @broadcast]}, @lsrr={0x83, 0x1b, 0xa6, [@local, @broadcast, @local, @multicast1, @private=0xa010102, @empty]}, @ra={0x94, 0x4}]}}}}}) ioprio_get$pid(0x2, 0x0) 00:04:40 executing program 2: r0 = socket$nl_route(0x10, 0x3, 0x0) (async) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000003c0)={'netdevsim0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000000)=@newlink={0x3c, 0x10, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r2, 0x20410}, [@IFLA_VFINFO_LIST={0x1c, 0x16, 0x0, 0x1, [{0x18, 0x1, 0x0, 0x1, [@IFLA_VF_IB_PORT_GUID={0x14}]}]}]}, 0x3c}}, 0x0) (async) setsockopt$netlink_NETLINK_LISTEN_ALL_NSID(r1, 0x10e, 0x8, &(0x7f0000000040)=0x37c6, 0x4) [ 280.734424][T14036] loop3: detected capacity change from 0 to 512 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000604000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 280.751319][T14036] EXT4-fs (loop3): Encoding requested by superblock is unknown 00:04:40 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x78, 0x10, 0x401, 0x70bd2a, 0x0, {}, [@IFLA_LINKINFO={0x44, 0x12, 0x0, 0x1, @geneve={{0xb}, {0x34, 0x2, 0x0, 0x1, [@IFLA_GENEVE_LABEL={0x8, 0xb, 0x1, 0x0, 0x11}, @IFLA_GENEVE_PORT={0x6}, @IFLA_GENEVE_UDP_ZERO_CSUM6_TX={0x5, 0x9, 0x1}, @IFLA_GENEVE_COLLECT_METADATA={0x4}, @IFLA_GENEVE_REMOTE6={0x14, 0x7, @loopback}]}}}, @IFLA_ALT_IFNAME={0x14, 0x35, 'vlan0\x00'}]}, 0x78}}, 0x0) r1 = syz_init_net_socket$802154_raw(0x24, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000000c0)={'syzkaller0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0xc300480}, 0xc, &(0x7f0000000100)={&(0x7f0000000040)=@ipmr_getroute={0x1c, 0x1a, 0x10, 0x70bd29, 0x25dfdbfc, {0x80, 0x80, 0x14, 0x81, 0xfd, 0x2, 0x0, 0x9, 0x400}}, 0x1c}, 0x1, 0x0, 0x0, 0x24000000}, 0x4000080) socket$nl_route(0x10, 0x3, 0x0) (async) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=@newlink={0x78, 0x10, 0x401, 0x70bd2a, 0x0, {}, [@IFLA_LINKINFO={0x44, 0x12, 0x0, 0x1, @geneve={{0xb}, {0x34, 0x2, 0x0, 0x1, [@IFLA_GENEVE_LABEL={0x8, 0xb, 0x1, 0x0, 0x11}, @IFLA_GENEVE_PORT={0x6}, @IFLA_GENEVE_UDP_ZERO_CSUM6_TX={0x5, 0x9, 0x1}, @IFLA_GENEVE_COLLECT_METADATA={0x4}, @IFLA_GENEVE_REMOTE6={0x14, 0x7, @loopback}]}}}, @IFLA_ALT_IFNAME={0x14, 0x35, 'vlan0\x00'}]}, 0x78}}, 0x0) (async) syz_init_net_socket$802154_raw(0x24, 0x3, 0x0) (async) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000000c0)={'syzkaller0\x00'}) (async) sendmsg$nl_route(r0, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0xc300480}, 0xc, &(0x7f0000000100)={&(0x7f0000000040)=@ipmr_getroute={0x1c, 0x1a, 0x10, 0x70bd29, 0x25dfdbfc, {0x80, 0x80, 0x14, 0x81, 0xfd, 0x2, 0x0, 0x9, 0x400}}, 0x1c}, 0x1, 0x0, 0x0, 0x24000000}, 0x4000080) (async) 00:04:40 executing program 0: ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, &(0x7f0000000140)={'sit0\x00', &(0x7f0000000000)={'ip_vti0\x00', 0x0, 0x8000, 0x8000, 0x7, 0xdf7c, {{0x44, 0x4, 0x0, 0x1f, 0x110, 0x64, 0x0, 0x9, 0x4, 0x0, @private=0x5, @broadcast, {[@generic={0x86, 0xd, "e4c731c82a1cdcc1e1f929"}, @generic={0x83, 0x8, "bf30e136af1d"}, @cipso={0x86, 0x41, 0x1, [{0x5, 0xa, "306c925a8d35bf49"}, {0x6, 0xc, "f64c100bfb5774064370"}, {0x7, 0xa, "6c168d52314a4d28"}, {0x7, 0xa, "0a8679a342ec570b"}, {0x7, 0x2}, {0x7, 0xf, "598e9c912106bacfa1acd9bee8"}]}, @noop, @generic={0x89, 0x7, "d73849411d"}, @cipso={0x86, 0x32, 0x2, [{0x4, 0x10, "a67d89f70d4989feac066700a7a0"}, {0x5, 0x5, "2cb661"}, {0x2, 0x3, 't'}, {0x7, 0xa, "2c349e41536abd74"}, {0x2, 0xa, "d26964cdd6605ae1"}]}, @cipso={0x86, 0x22, 0x3, [{0x7, 0x12, "eaad884ce8386e88baf949ee048397fa"}, {0x5, 0x3, '3'}, {0x2, 0x7, "1c0cd6ef19"}]}, @rr={0x7, 0x2b, 0xdd, [@multicast2, @loopback, @rand_addr=0x64010102, @broadcast, @multicast2, @multicast2, @remote, @local, @multicast1, @broadcast]}, @lsrr={0x83, 0x1b, 0xa6, [@local, @broadcast, @local, @multicast1, @private=0xa010102, @empty]}, @ra={0x94, 0x4}]}}}}}) ioprio_get$pid(0x2, 0x0) ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, &(0x7f0000000140)={'sit0\x00', &(0x7f0000000000)={'ip_vti0\x00', 0x0, 0x8000, 0x8000, 0x7, 0xdf7c, {{0x44, 0x4, 0x0, 0x1f, 0x110, 0x64, 0x0, 0x9, 0x4, 0x0, @private=0x5, @broadcast, {[@generic={0x86, 0xd, "e4c731c82a1cdcc1e1f929"}, @generic={0x83, 0x8, "bf30e136af1d"}, @cipso={0x86, 0x41, 0x1, [{0x5, 0xa, "306c925a8d35bf49"}, {0x6, 0xc, "f64c100bfb5774064370"}, {0x7, 0xa, "6c168d52314a4d28"}, {0x7, 0xa, "0a8679a342ec570b"}, {0x7, 0x2}, {0x7, 0xf, "598e9c912106bacfa1acd9bee8"}]}, @noop, @generic={0x89, 0x7, "d73849411d"}, @cipso={0x86, 0x32, 0x2, [{0x4, 0x10, "a67d89f70d4989feac066700a7a0"}, {0x5, 0x5, "2cb661"}, {0x2, 0x3, 't'}, {0x7, 0xa, "2c349e41536abd74"}, {0x2, 0xa, "d26964cdd6605ae1"}]}, @cipso={0x86, 0x22, 0x3, [{0x7, 0x12, "eaad884ce8386e88baf949ee048397fa"}, {0x5, 0x3, '3'}, {0x2, 0x7, "1c0cd6ef19"}]}, @rr={0x7, 0x2b, 0xdd, [@multicast2, @loopback, @rand_addr=0x64010102, @broadcast, @multicast2, @multicast2, @remote, @local, @multicast1, @broadcast]}, @lsrr={0x83, 0x1b, 0xa6, [@local, @broadcast, @local, @multicast1, @private=0xa010102, @empty]}, @ra={0x94, 0x4}]}}}}}) (async) ioprio_get$pid(0x2, 0x0) (async) 00:04:40 executing program 4: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) 00:04:40 executing program 2: prctl$PR_SET_SECCOMP(0x16, 0x2, &(0x7f0000000000)={0x1, &(0x7f0000000180)=[{0x200000000006, 0x0, 0x0, 0x7ffc0001}]}) setsockopt$packet_fanout_data(0xffffffffffffffff, 0x107, 0x16, &(0x7f0000000080)={0x0, &(0x7f0000000040)}, 0x10) io_cancel(0x0, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x5, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0xe1cd, 0x0, 0x2}, 0x0) 00:04:40 executing program 0: ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, &(0x7f0000000140)={'sit0\x00', &(0x7f0000000000)={'ip_vti0\x00', 0x0, 0x8000, 0x8000, 0x7, 0xdf7c, {{0x44, 0x4, 0x0, 0x1f, 0x110, 0x64, 0x0, 0x9, 0x4, 0x0, @private=0x5, @broadcast, {[@generic={0x86, 0xd, "e4c731c82a1cdcc1e1f929"}, @generic={0x83, 0x8, "bf30e136af1d"}, @cipso={0x86, 0x41, 0x1, [{0x5, 0xa, "306c925a8d35bf49"}, {0x6, 0xc, "f64c100bfb5774064370"}, {0x7, 0xa, "6c168d52314a4d28"}, {0x7, 0xa, "0a8679a342ec570b"}, {0x7, 0x2}, {0x7, 0xf, "598e9c912106bacfa1acd9bee8"}]}, @noop, @generic={0x89, 0x7, "d73849411d"}, @cipso={0x86, 0x32, 0x2, [{0x4, 0x10, "a67d89f70d4989feac066700a7a0"}, {0x5, 0x5, "2cb661"}, {0x2, 0x3, 't'}, {0x7, 0xa, "2c349e41536abd74"}, {0x2, 0xa, "d26964cdd6605ae1"}]}, @cipso={0x86, 0x22, 0x3, [{0x7, 0x12, "eaad884ce8386e88baf949ee048397fa"}, {0x5, 0x3, '3'}, {0x2, 0x7, "1c0cd6ef19"}]}, @rr={0x7, 0x2b, 0xdd, [@multicast2, @loopback, @rand_addr=0x64010102, @broadcast, @multicast2, @multicast2, @remote, @local, @multicast1, @broadcast]}, @lsrr={0x83, 0x1b, 0xa6, [@local, @broadcast, @local, @multicast1, @private=0xa010102, @empty]}, @ra={0x94, 0x4}]}}}}}) ioprio_get$pid(0x2, 0x0) ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, &(0x7f0000000140)={'sit0\x00', &(0x7f0000000000)={'ip_vti0\x00', 0x0, 0x8000, 0x8000, 0x7, 0xdf7c, {{0x44, 0x4, 0x0, 0x1f, 0x110, 0x64, 0x0, 0x9, 0x4, 0x0, @private=0x5, @broadcast, {[@generic={0x86, 0xd, "e4c731c82a1cdcc1e1f929"}, @generic={0x83, 0x8, "bf30e136af1d"}, @cipso={0x86, 0x41, 0x1, [{0x5, 0xa, "306c925a8d35bf49"}, {0x6, 0xc, "f64c100bfb5774064370"}, {0x7, 0xa, "6c168d52314a4d28"}, {0x7, 0xa, "0a8679a342ec570b"}, {0x7, 0x2}, {0x7, 0xf, "598e9c912106bacfa1acd9bee8"}]}, @noop, @generic={0x89, 0x7, "d73849411d"}, @cipso={0x86, 0x32, 0x2, [{0x4, 0x10, "a67d89f70d4989feac066700a7a0"}, {0x5, 0x5, "2cb661"}, {0x2, 0x3, 't'}, {0x7, 0xa, "2c349e41536abd74"}, {0x2, 0xa, "d26964cdd6605ae1"}]}, @cipso={0x86, 0x22, 0x3, [{0x7, 0x12, "eaad884ce8386e88baf949ee048397fa"}, {0x5, 0x3, '3'}, {0x2, 0x7, "1c0cd6ef19"}]}, @rr={0x7, 0x2b, 0xdd, [@multicast2, @loopback, @rand_addr=0x64010102, @broadcast, @multicast2, @multicast2, @remote, @local, @multicast1, @broadcast]}, @lsrr={0x83, 0x1b, 0xa6, [@local, @broadcast, @local, @multicast1, @private=0xa010102, @empty]}, @ra={0x94, 0x4}]}}}}}) (async) ioprio_get$pid(0x2, 0x0) (async) [ 280.831615][ T26] audit: type=1326 audit(280.810:146): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14051 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 00:04:40 executing program 3: r0 = syz_mount_image$ext4(&(0x7f00000000c0)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40046, 0x26, &(0x7f0000000200)=[{&(0x7f0000010740)='\x00\a', 0x2, 0x6}, {&(0x7f00000105e0)="0b000a000c0001022e04060002000000f40302022e2e0000000000000007ff00", 0x20, 0x8}, {&(0x7f0000000080)="0000000000040000000000000000000800000000000000000000000800000000", 0x20, 0x29}, {&(0x7f0000010e80)='\x00', 0x1, 0x100}, {&(0x7f0000010de0)="0c0000000c0001022e000000020000000c0002022e2e00000d0000001000050166696c65300000000e000000d803050766696c653100"/64, 0x40, 0x101}, {&(0x7f0000010d00)="0300"/32, 0x20, 0x200}, {&(0x7f0000010000)="20000000000100000c000000ce0000000f000000010000000000000000000000002000000020000020000000701f1f63701f1f630100ffff53ef010001000000701f1f63000000000000000001600000000000000b000000800000000800000052470000620100000000000000000000000000000000000073797a6b616c6c6572000000000000002f746d702f73797a2d696d61676567656e3234313932303435323000"/192, 0xc0, 0x400}, {&(0x7f00000100c0)="00000000000000000b0000003b3466cc1ea244158e332580de23589c010000000c00000000000000701f1f6300"/64, 0x40, 0x4e0}, {&(0x7f0000010100)="0100000000000500110000000000000000000000040000003c00000000000000", 0x20, 0x560}, {&(0x7f0000010120)="03000000040000000900"/32, 0x20, 0x640}, {&(0x7f0000010140)="030000001300000023000000ce000f0003df0300"/32, 0x20, 0x800}, {&(0x7f0000010160)="fffffffffcff0700000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c65300000000f0000001000050166696c6531000000100000001000050166696c6532000000100000001000050166696c6533000000110000009403090166696c652e636f6c64000000", 0x480, 0xc00}, {&(0x7f0000010600)="00000000000400"/32, 0x20, 0x1800}, {&(0x7f0000010640)="00000000000400"/32, 0x20, 0x2000}, {&(0x7f0000010ea0)="0000000000000000701f1f63701f1f63701f1f62001f000010933555033a0000", 0x20, 0x21e5}, {&(0x7f0000010660)="00000000000400"/32, 0x20, 0x23fd}, {&(0x7f00000106a0)="000000000004000000000000000000000000bcb5d83ba0000000000000000000", 0x20, 0x2c00}, {&(0x7f0000010700)="00000000000400"/32, 0x20, 0x3800}, {&(0x7f0000010720)="00000000000400"/32, 0x20, 0x3c00}, {&(0x7f0000010760)="504d4d00504d4dff701f1f63000000006872757476696b2e632e676f6f676c6572732e636f6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000006c6f6f7032006e75782f746573742f73797a5f6d6f756e745f696d6167655f650500"/128, 0x80, 0x4400}, {&(0x7f00000107e0)="111fc0d901000000803a0900803a090000000000060000000000000005000000", 0x20, 0x4800}, {&(0x7f0000010800)="ffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0300"/1056, 0x420, 0x4c00}, {&(0x7f0000000680)="0400000000000000000000000000000000000000000000004000000000004296cb8c84d5d1668d89d68dde0ce278865064c69259a53886c556b51f0eea354d3bd249d128ecb3743cc2f9288fb1f5cfe8d0703fbe9f313d6823b856337c49240000bc5388fa23a178d7271b6d168114aa95675cc68e0c1f243dfefc54e3efd3f89d0c1a6f564cc3d27ffb8aa613092061aa86a3a79441f8285e299b33f2e91fd4400ca4793a3afb10fe66d8a8ac7c1e5c7aaf521c6f0af1251d88107f3b07220c827c605e4037111c867a2bf18c830934e82287e3f2e4d276a2ad80e47472b834a40791ef6f2b989dfb40f287207f29a38799f4ce6f96cb8d", 0xf8, 0x5400}, {&(0x7f0000000000)="05000000000020040000000000f6ff00008040000000000000", 0x19, 0x5800}, {&(0x7f0000010c60)="0000000000000000010000000000000000000000000000000000000000000000000000000000000008000000000000400000000000000000000000db2406d7c161800000000000007000"/89, 0x59, 0x5c01}, {&(0x7f0000010cc0)="0200"/32, 0x20, 0x6000}, {&(0x7f0000010ce0)="2719c0d901000000803a0900803a090000000000060000000000000005000000", 0x20, 0x6400}, {&(0x7f0000010d20)="0400"/32, 0x20, 0x6c00}, {&(0x7f00000005c0)="05000000000000e6ffff4e6c9880c2333860dfd7000000000000000000000000000000000000000000489449f34e88a81120e056ebe4a525058cdaca132a3aa152bf2430202998db483a1832f4404b6e6c2beb36ca2a6c100e9388bab9a39266f9825bd4bf6daa05a0daa14202f3d33d04af49e6052cb24f9056b7af69fbd93cf824fb9ff4287d5de933c41315c2ce83f5425bd7a08cca36a1730d9ebd02a5a6c290070d0300"/175, 0xaf, 0x7000}, {&(0x7f0000010d60)="00000000000000000100000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000007000"/96, 0x60, 0x7400}, {&(0x7f0000010dc0)="02000000000000000000005522015200"/32, 0x20, 0x7800}, {&(0x7f0000010e20)="000002ea0100000001000000270f240c000000000000000000000000000000000601f8030000000006000000779b539778617474723100000601f00300000000060000007498539778617474723200"/96, 0x60, 0x8000}, {&(0x7f0000010ec0)="ed41000000040000701f1f63701f1f63701f1f6300000000000004000200000000000800050000000af301000400000000000000000000000100000004000000", 0x40, 0x8c80}, {&(0x7f0000010f00)="8081000000180000701f1f63701f1f63701f1f6300000000000001000c00000010000800000000000af303000400000000000000000000000100000012000000010000000100000018000000020000000400000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000008081000000180000701f1f63701f1f63701f1f6300000000000001000c00000010000800000000000af30300040000000000000000000000010000001900000001000000010000001e00000002000000040000001a00"/224, 0xe0, 0x8d00}, {&(0x7f0000010fe0)="c0220000f12f0000701f1f63701f1f63701f1f04000000000000000018000000000008fc000001000a165f04b80774e76f000000000000000c00000005000000", 0x40, 0x9100}, {&(0x7f0000000a00)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x9c00}, {&(0x7f0000011760)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0xcc00}, {&(0x7f00000106c0)="00000000000400"/32, 0x20, 0xd52f}], 0x0, &(0x7f0000002b80)=ANY=[@ANYBLOB="00ab000001000067000022267fa8b19b00000020d3bc0000000000000000000000008b835fe40645872b7f4237bc7fde226917b796ea557a7ce51b9d89dfaf878a5f4719036268555c537dc44d7ee2656bf146b07f290d5c3065b23a030000000319278000540fc42a62946c30505fa015624854f751fafc433831e4cd9701139498c6ff42bf005bf04b323478fdc9fc336c38dab3977be4f6c519cc2841c23c445feb93fadad2f3e98f96bc821cc11b1a86e8b349907a474960a7d0dc8b0c3f600c7c2b9712ff15bf7f6427ee5d7684cb596296563251bc1317099d2badf1c1fc79207851d77b3e0ebfeec730cb83fb0974f9ad5f35d9aee07a3d819bfa55537b686869af"], 0x1) getdents64(r0, &(0x7f0000000900)=""/237, 0xed) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) r3 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r4) statx(r0, &(0x7f00000022c0)='./file0\x00', 0x800, 0x4, &(0x7f0000002300)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r6, &(0x7f000057eff8)=@abs, 0x6e) recvmmsg(r6, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r7 = openat$smackfs_revoke_subject(0xffffffffffffff9c, &(0x7f0000002400), 0x2, 0x0) r8 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f0000000780)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020e0e4a9446c7670568982b4e020f698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f13905ea23c22624c9f87f9793f50bb546040677b0c5077da80fb982c1e9400e693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a286cecc93e64c227c95aa0b784625704f07a72c29184ff7f0000cef809606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b8588d72ec29c48b45ef4adf634be763289d01aa27ae8b09e00e79ab20b0b8e1148f49faf2ad0000000000000006fa03c6468972089b302d7bf6023cdcedb5e0125ebbc08dee510cb2364149215108333719acd97cfa15a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f4ab87b1beeda7be586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9b081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d605ffff9c4d2ec7c32f2095e63c80aff9fa749edecf1988275b238dfa5e800b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142ba11de6c5d50b83bae616b5054d1e7c13b1355d6f4a8245ffa4997da9c77af4c0eb97fca585ec6bf58351d564beb6d952aab9c70764b0a8a7584090b3433b809bdb9fbd48bc873495cbff8a326eea31ae4e0f7505ebf6c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57000000009700cf0b4b8bc2294133000000000000000000030000000000459ff4b40000000010008bc0d9559711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b98008006c4a00000000ff435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0adb02d9ba96e1010000000000000000007d5ad897ef3b7cda42013d53046da21b40216e14ba2d6ad5656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53b263339863297771429d120000003341bf4a00fca0493cf29b33dcc9ffffffffffffffd39fec2271ff0158929646efd1cf870cd7bb2366fde41f94290c2a5ff870ce5dfd3467decb05cfd9fcb32c8ed1dbd9d10a64c108285e71b5565b1768ee58969ced595229df17bcad70fb4021428ce970275d13b78249788f11f761038b75d4fe32b561d46ea3abe0fa4d30fa94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719197724f4fce1093b62d7e8c7123d8ecbbc55bf404e4e1f74b7eed82571be54c72d978cf906df0042e36acd37d7f9e119f2c06f815312e0cfe222a06f56dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef2acd1fe582786105c7dfa2e5877050c91301bb997316dbf17866fb84d4c7bb481d1b0b911759dc392ad608318c173731efe8950fed1c5560926e90109b598502d3e959efc71f665c4d75cf2458e3542c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca378e676c3e08c1ed43ca8d3d10994c0b58645ac518a75fde7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad05573af5f5b9eec8a9c940093947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d34b5457acf37331766e472391e358c3b377327ac9ecc34f24c9ae153ec60ac0694dc55bff9f5f4df90400000000000000d6b2c5ea1393fdf24285bf16b99c9cc0ad1857216f1a985f369191ae954febb3df464b635197351a5ef0a0fb89d2777399f5874c553aeb3729cffe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f895778cb25122a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003016f1514216bdf57d2a40d40b51ab63e96ec8485b3b8a8c9ae3d060000000000000062eef552fcde2981f48c482bde8a168c3f5db2fea6f26e4a4304e5000000809ecee27defc93871c5f99b355b72d538ba4958ea8e4aa370ac891e10096e7e60fc3541a2c905a1a95e9571bf38ae1981c4238ecaee6f75cd0a6881bd1517a8250df98674152f94e32409e2a3bce109b60000000000000000d6d5210d7560eb92d6a97a27602b81f76386f1535bef1497f92186086e29c6bc5a1fad6ec9a31137abf9a404abde7750898b1bd627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101293373750d1a8fe64680b0a3fc22dd704e4214de5944912d6c98cd1a9fbe1e7d58c08acaf30235b928a31d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76015e6009756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66418d160500000000000000d2a182068e1e3a0e2505bc7f41019645466a000000003bc13c334b47f067bbab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd21081920382f14d12ca3c3431ee97471c7868dcda7eaa69eb7f7f80772fdd11bb1d0d1280fbc22bf73468788df51710d7d31c632fc5ed1762eb0b428ee751c47d8e89fc745a868404a0bf35f0121008b722b1eaa6aedfa1bf2e7ccb2d61d5d76331945e20fa26b8471d42645288d7226bbd9c9e9e1cc9eb3d541e407cc2dae5e690cd628ab84875f2c50ba891cea599b079b4b4ba686fcdf240430a537a395dc73bda367bf12cb7d81691a5fe8c47be395656a297e9df0e71f96756ea5cce7daac4be290159f6bcd75f0dda9de5532e71ae9e48b0ed1254a83186c1526af6fbb869604d51a36a54c832e45b2569dc0d90b075225fde44c4e0973171ad47d6b70ebe660309e1e245b0fdf9743af930cd6db49a47613808bad959719c0000000000378a921c7f7f8433c2e24c7e800003c9e8095e02985f28e678f66422436f949e2ab8f162d7e3f855e378f4a1f40b0c6fb2d4b205aa3270d25ce1f8174af6de8c12260400b6d713acebc5b014e61a543a5a194f9ac18d76b5440e3b1a569ed7aa287378c697f6cafa86966d7ba19e720413267a6ccea9c439671d2c680f2753ca184eeeb843450368acb4383a01d25eb3d1e23e0f2645d1cdfa9fa410632f95a5f622e9f2c66ee7e30393cd7a4d67ff2a49c4f9360984b5c2d4523497e4d64f95f08493564a1df87111c9bf3194fef97dcecc467ace45feeb685c5870d05f88a0f463db88d377442e1349acaf766218b54a9d624778e1c4cba6e6390a9f302c6eb2df7766411bef0ebb5002512bcbf9b24accfecb0f477db103463af2847e6ade5b9e065ec0d0ba58fedae5f08818fea475b169469f9efd131925d98c34b3b47e5c46d121ad5087e1cdee39f5cf21d2e80a64ac97e71cafc29bfb78db090dd12225efeda2e93bf7f6ba7865e9c375a780929d210bf5858e2a4ff8e8d1e8c9cceed07c6312b734c72510d335acc94f76e7078ce4066f1e0ac9429f8013683301277a11e25b248b61180cb6207a0e26757f3f1bfc6c27f3720d1fb74afb17f3b5239bc2243853d5234afb05ed6024e94dee34666c5b5522b54cb433efa54b4e9022533e7c89bdee957dfa9ded9f16fdcd1b681e4c72f32fa3334313e334e2140daec7dcb22f463457a1a5ac230bbded86258206046f556589f5627ab2751eb34d940519f009412098398ad822a8509d2d32da656ac5935e4c7f9503ce4daf13300dfd611528049310544d2e7d1c3e8613926fbe2647e258932592c9123f1c74023144442d09ef90c64950176c666da6b6581091c54beb2379aa70501c42bd9c4e4f426ab5ff2a33767b408ed19e399c33b52abc4ac24da0d4cf07d93029583591c33f0f80513c541581977f2e9735e1edb66fdb2722eb4b0b670ba74fdee2f1a3cf85777af5d8267acaa9d83c23a4b40d0f53dce003c03c5959e405fc4f2c05d3394f014a39caabbeff7c7cadbdc57def7f5f758aa46b6e2fddc779770d7e395c4ac2a136a30e7c0a301dffc5565d7244fb29cd302c36e76221a3c4e21559216c078f06b01885a83da16bf8548776a0ae88dfeccc9ad64d2fe3cfdeb9684b7b7e5c00f7323f8214ed0189539e0e3e34c8e542c82ddbd6a75c1adbedef4d5d69b246a53c0ab802b0161908e748ed9891678c228413bf51b18a25bf776b9d1f1fedf97cf5e7de4455ea359e5796bd60cc415066fc271a2bdb7db13e72d1a99b375ff874037faf6a1d1aacf46a57346d000000000000000085c1b64dd5178485ad0f8557ccae7c06a40e8bd2ce76927bb0923dc380fd153cd2ce1242bc0a6e0fff9cfb70d41b02414730f572ca2a4898426eb6d416ff14aaefebd84bd4000000000000000000dbd064fe868ff4929d489badcf5072c61231bec614423bbf7df2989db587bf49abc6ff4d842309a1fa7f268e2c453cd8b9a746d5c6e820453a377fb09f5799b43c1951f56c211170bc102a3437778676928a1b4bd8ddc8db197d6b63913e6dccc20ccb26bc231f1428502b3279d0aace2caf8c8f5edbfeffe6d5b36439fe0f70b34ad0f1a4cad44c5237a2fff1e8f8e0521313c30a9fb5fc54ae85d19599bb1c2283e3f7bb01a11a1845db6b8eba64b45f1c000000c0c4bef4bf3e1d9b0e1b4e4147d5eb0f9b9bfe80984650dce289524659d70fc7ab8485c054e51ad1bef44c5d6cfaaf7efb61be7c38820a4279d69ff337b0f3f9c2c55de05d1c3682c41f624e735c3ce0a7b0f3d784c96cc57c83e78b336cb4022c19917284534ea9efccef28374885759f39c444d78a3f78ec3bafb4af2e7a64c967c494264c3b36591eb2049ede272a00dc74628a45de9fd219c63f1f0e2e187071f9468f1f4b880ae18459f3790010aff9f89be79e7b81ed89139dd8152e5009fa164f36bce90c661b35022c1cbbdfc9aba07ebed92b94ff9f0e1dbc0a29d5799e3ecc8eb35f791a4fc7db9e97be3f944b2360e3c9a0d2b0ab83db2fc1c3d28efda92828494b88008b9082394c113ec071cdbd8556d7cf7c11236d699da109de535f64e008a175d11e80f96e"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000000)={&(0x7f0000000080)='sched_switch\x00', r8}, 0x10) r9 = syz_io_uring_setup(0x2e2c, &(0x7f0000002440)={0x0, 0x7713, 0x80, 0x2, 0x308}, &(0x7f0000ffd000/0x1000)=nil, &(0x7f0000ffb000/0x4000)=nil, &(0x7f00000024c0), &(0x7f0000002500)) r10 = socket$inet6_udp(0xa, 0x2, 0x0) r11 = syz_open_dev$hidraw(&(0x7f0000002540), 0x3c66, 0x0) r12 = openat$nullb(0xffffffffffffff9c, &(0x7f0000002580), 0x200002, 0x0) r13 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f00000025c0)='./cgroup.cpu/syz0\x00', 0x200002, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r14, &(0x7f000057eff8)=@abs, 0x6e) recvmmsg(r14, &(0x7f00000000c0), 0x10106, 0x2, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r15, &(0x7f000057eff8)=@abs, 0x6e) recvmmsg(r15, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r16 = getpid() sched_setscheduler(r16, 0x1, &(0x7f0000001700)=0x4) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000002a00)={0x0, 0x0, 0x0}, &(0x7f0000002a40)=0xc) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000002ac0)=[{{&(0x7f0000000140)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000000e40)="aa72de587546b1dcb6ccf486267fd79ab9afe40265617001f1212e0c15b17356f3d42b6f679ea642934f7b4731ec55d7af5167131a90b3947b5807dc64d01cc61ab1aa49de40f92835c0a889dd2127ef2158934c020ca14d616ab7364407eef46b5208691a8b11270bb4ac058a104a07ef2a838a1f637f6f490b908f9afcdf2602be8ce651ac18d17fb4ca269d25918414e5a36ddec0dab29e1ed27a374773b4943bb5bc80f08b6c92dd2965b8a5bda97ec3998fa2e59e34bc96b68912b4d8f51860d0be39ad6ada43feae5957431593f2f19ee77e9acf8f09056caedda23a4a84a2760675bdabc4773f616ba799", 0xee}, {&(0x7f0000000780)="e3f57e1c34142703848f4231fccc9d74b08f42c032eab6f8d6fd102a9896504dc1dedd5a2f8e9ef93a5edc1135b0796134ce61cb22e407f1cfe7bd1d524ea9e43e753ac11b46cf9f03c9db947a7756d3d59fda7c6e8287ccd182a131273a41fe2b10", 0x62}, {&(0x7f0000000f40)="3e63dfede3fc49e9bdf12842ad46ee599c9ec156197cac21432d2c7119d20bda66a9ea65fdfb62dfa0cfcaaec3496fda235645c1945c329780e75ea3f36c4d35117551b06cb390334b9463c9fab51657b5a08f3c558766fb2fd82940247963b6c06098e3b07ca297c6439bec0b8472f1cac7dbcdfcd1c889381e672ecef510f1e31f6d66ad034f52016bee25a1f7b805ee954f777c1d9555e604a8450f5b23ac94d849076713fdb4c6ad516d1ee834931f079c370a0987caca7d4d2d53f9e6f1b63513ea082ac23af603a4dda0110eb418663969876545703bafe8efa1513ddfec68a335aad53d206b", 0xe9}, {&(0x7f0000001040)="1a6c22ee0e8ce0eb19ffb883bd39247a8a93091e3855441019a4e7c516e5b4dc8486f8e7c5f42fd373097b218477a00c4513a75f5b8dbfef622f2e1f78370158e18171b21df9f866ac2ee7b8b750", 0x4e}], 0x4, 0x0, 0x0, 0x200000d0}}, {{&(0x7f00000010c0)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000002280)=[{&(0x7f0000001140)="d26c5d97cea7b03bdcf31420a129c363d4388d4a", 0x14}, {&(0x7f0000001180)="1651929380b792b88cb421f2b364090a7b405e02904bae1926b5726c20b9ba5e4571eafcc0ced3c8db9d52c01dbd5fc0e2de1deb8da650ccfa34c1445f6dd8cde8f442c41eacdd43216ca51864087fbbc0515ef6160ee9a464a704a0516ea270cda409cc36a037161211702e4bfb842032eab3bc4ac5f4d4312c4221443c7d1663a692b9dfb58686be2f8eb0853f2c9ae6ab6e6d10358c664c5ca6ac80827cc85c757792a39cb781bdfcc24141a95e0e8b26c00c3f4c5caa3b7031eecf2067905dc7a8bb23bbebaa3c3418f5833392aa4bb09a3c0556", 0xd6}, {&(0x7f0000001280)="6d24c31ebbd2821d0c4404b5196c1dc83111404c1b2ebb69643168e6050b48a6d666c88f2f4f8e0fdfd0606255b39e151440eb1d7e75753ae04c47aad76d3247c809a858af94e133bb64d865460c0fb10966ef0eb780fef9317d6f6fb1999aa4a99a2488a6f67e2710ad12fc7f8a6f3960e1c593b16f43bc0e963a7c239a739299e8c3adbaef84640661ba19c2a3c2ed6b0f179d063550c23bc3f201cac03eb2491b79b515c5026d5f3eada23c7c2ae71b346ce37e3381bb4147a4c793cdedbf28b6f3f5f57bdb83d54dc0aaf022f40981067beaa1ed3ddcab8fe3b591ab4362a816c1f9c466983205b053165d85b2ef4c89d5d595364c44394b2eb40a81e0d910a82271a5b7094a57f5ade464b1eb1455d053f13e33098375eec575673665162edd402704d27edb9b260f420974aaf8f2745ff4df8eea2719cca20da9b2fad40e4e89bfd6a2e26230f64909617c843d8e3ba337ada02f0c6666a3deda24d824f6f3a17cfa56356c18a9a8586112ad6c100731f33057315a1a24cdb42643ed4372ed2cef748886954ea217f20edb2727b48b9b28b6c46ac4c308f105c8dbc9775fd82fd158657bc1ad3883c0d5929bdc0509393715d5a7e18b4bcb54f209765ea95f94dabb4b1b75fe056550a5d7ef5964401bfc75b13c2de1cb63cf9494869c0e2258ea8c11bbe2e577c684eda7bd54d3d661bd7de59883e6c2fa190b32b6de316dcd1253ac9af3d7f32ae43b903f0f67c02e629e3f9db5b9c506e370cafe48ba0250d66e06907ffb0891622de9f362d96f1fe986125ea49ba8655b9eb4af1a29e0447f5c6febb1d0d5ef5df953ee2fec04d2bd5280ed92fc6dfba067b6e2f26151595f092fbd3c506a1bbc4af8ec0936363fbcabb6bf999e8090ad64aab884d3d8966042bf66102a7b862268c45801835d0bab64eac266e1954cee5f4123f0315de44bbc98f826299c6e3711d78dd3dd4fe7e751575fac3e1da7355a6f3645762992df2d93fcb88e9e484bde6243d7406ff3454aff072a0c388289ea186a894227eed5ebf915428e9ce526725681f2ab26c05f20dcd3f7a5d87991442b5a06704c8c76828053f8c193653795361ad2139e514c45d467db3a7bbbbeb2285067c55bb523dd7ac27302796ff60665d4804e36ecf1c3ace33b0fdfbd220d704c9c789b69e3501e456355efbfc3e051a4fca4ffb6d9b5a8b424fdfe89f9ded92dffd80f7677745bcb4587aa515f5253cb38c2b543989313b3332a16e083f3b00f1be7765e438f29915bc0adc39a220ea2abf832cd76ee2de67fddcc8930d46299664f0d1de24d464cf35d2b9fad6ae47eb12bd59492ebeca45e8ccc7a485ceafc84c67fcce13d87c47755e675094808dc474ca81cc3375fed17dd5b536e8ecba5b5c56d5e68ced09456cc232a916511401e14de4fa49a55bed94a80a1ae023bcee1cadbf718c59b9e812f28994e23e0085f10a983a14b2a61df448de758400c95c432a7790d98614a65e19fcc6195a182b4a8e0572bd519a7a43f6648038a8c01e3a2a72179037f8ec8b3d563aacacbc51f72da58e7c9e8a22b265008caf69730d66972120986509b8c1828e3c48a1ee995bf067114b61211850a8d8dc12a519b863a138cb29e2392af3bbb790d6de713e88b0660e456edce2d032608624ed228cb8b3db129e6d9deb654cc2a8283c392856b22ca6f633bd8496058cc07644dd6e00385349ec2a928f5c8a789c54148f432ba053c7798fd2162f8e694d9b3008cb01fe3085f829e701892647dbb33e6cc2912d118c252913776eb19128ad28801727bf9290c3d927be875b8b8b3858f0eac30b1c249702448dc9ed75ef3bd5a267e89a289b13548e3ef7e8cd8c5ba84e4d53325edc30ca08b569e6329b77a002ac4dc96b64325eb5b3640258cbb5a0b7fad0962074155d77633a12c67a7d624d2366cfe50db671ce163be8b879e0011694375bbbe58ddee2bd508d3e695edda86aef1752a4f8f798514ff7a839426ffd1eabc2705505e815fa18ef9de877eba838c83f4eab0039c51231dc2eae9b3f3cecccb411667d19afedcb5dec6095cb1c26a95e1993fcb2e8160f3b2b81e5a2f859996471dc7b176dd530ba92b7c765063dba81949cba12958e10fbb80b7e855ab85e2ec59f78c691d4de41c94521ecc4d1c3630b366099f8494a28bc77d6f513a2d48108c15f8e1f007b4ef01149e8114d52bfd9300d0349c9ec313e0a6fb9aa27326a666c010235fc04ad1fb67916039a943928dbb94a1f6587ac9f48ec9ba1e3fa22b3b5098e4c4a6b7e2d38ff628ec4a89007bccdcf358a55c3a7a8b88de84e2dff0a09b06c8fc25f0a5e4c8ab96d59beaeec856b927530c75d4347c36708f2e8f49a0ff68371dc57a487e0e2128e27492dda108cfec4a1277f2a4a95243d9f666dcdbb499a5c77873258de181e3c9383edd4a9cb76d27160498a350274546827106f65051ddb38bee8174e36ff5b5c0ac22f9bceb4425190e84b699648938eee208fda0b96f575c08181dcf89112137c294163fd16b2072190e9f1815b152b83f019f16a2e2e8e5ed6e922bca46313db27dae4ebf21d6b9af3eb5425c92b4cedb67752bfdf196958458ed93a7874ac1562f05e85e803bf225c88d2f4e5d894c7a5c54e04dcb18e2718c54c616cb2d9a38cc3878e214cc395f6f95591e05d41dfc4b4aebf125d0f67cbb2e38e5ae5d0d8569a1d5e4e9b77ab2c96b9e4c8f6b09c1d8b2d4f6447ef2709e8bae7c61356bc5458cc5eac46d5dea0703d819a0d6ebd6991ff7df4620ec3fde997acd247946f5b6b742d07a098604fbc48ef2ea273ef3fd35288ae3422feaea2d902baef437f79b5585c9d7f1b30672159be241e072e7b272583d4be6b412ed0b3453e816bce3cdb8013d0b93741ef202d1c257dded79d8fce7dacf47d551df17fbc9d81ce79ad8406b452342dc98a58dec5b4fdfc785cf4560c59c74e262dbba2b92c06e5ce82533165556d2a650040fd6e9530d2daeb02692527cce1f0eb91aacfb9b7ac07c2ec25e80d260ba6d3809c31851f876aac5e2315ad21b8129608434db32daff1b904b1a208dc3940a5d6129d3882184b4eb2ab2f943aa024cad30fcff8538af9b4f944676ed9cf8bb652c54699ba0d797009524a9af6b2540bd96f90006eb5fec5266fcea37eb7d26ba692259510759369652be0bcd9ff92ce8c36f24c886112dbb54ef50def0b8031f676400badd8381989bbebce79c6cfb848036c3c4b5724f89ba4144885d5da6b7965e782dde7c98be8151a70483079aacd383b58c901ccbc475b35402e64c6ef4303f410f5b8dee90299248f9af315e0c88fde2100f8cea7e8b31a4ebb5836718741eb5cbaf5165e6c5ec86acb2dbbf6ed399e70b8acfc1c4f0f8fe72efe82eaed2305e4e54b9c11c45644069b84d280064d409498fabf35913a152318bcbbfdea3e1c68f01b56790bc490bb62247edf8f108b11d4978b3b9d488333436d0cad9dc7e5a88d2b30bf030e1128ecf0e84102c431f9736d9a4cf79773875e8ca94d516b5ffd524e7ab363e5721bb2e683854f34fd1b65f8dc2d86c36a8c34751c398870ffe90d148eae0904b34ced160568fcee3c63525a2c80d5d86832a458774fe5d99d799b08c0c6f809a8765749d3c40316483f173d433500152ccb08b87025e3ac66edcca831901ec00969731d1379c845ced364752294315f36a39acb5a374a76b3ec282f73e5cd6c97c8a9fc871724dc707cb87921e1ee702f81a21d1cdc14095f1c4f804a8bdaccbc7454840c846aa9b087a35ee9202878a88834550f3b5edbf23e911147b39b9d93dc713eda6790936a135eceada9aa7129fde5d734bfccedb5cbe4bf829da4c26050154458ae486d81ad5484ee1ce4eb0b373483d468ed34494170de09f8600d34954f6112b190af2e8dad43f78f6505ee5e45038c6997ec6d7f23a1379ec8a657a52c593fff4948695373f6d977e270738d1c78dc583e3387f670dbda35d320735ee4f85450af85e9fc2f99dde726b6bd273e29b57a5628bb58a4aa96a860e0d1f6caab770c6ce5e8ef4eef83f6df03ddf875035f09e018517cbb9c8ebc502d2db07a6a73a23aa6b30f335d280f99e1b52dae8457f07d1c5f4e5471f519f708e077b21bb7da145f52181e1c3c81e7100cdae91b635f886ebab6308237fbc95cf8437b4a45c7cb2cfcf3376fb93066a5ec4f34a7a061a98be01518651d0a0872dbf51b91ce21f96b5e6e78e0dbd1ad24a99f5e982f35c14e4266f8e0a6a26328f196bc0703daa62dd8d24c30139b2275205d51fb6efcffad081ea903ccf34405c15072c3d30b7a230e4216beecd4d75be99b1238f6ddc72ef0f68ea4a5dc75f399508df4c9df2c703cfb541b28c1cd56a7d1eb9e45b5bc0f733c3aaa4d31dca8c2600dc1bf04af4334115170d82d6bdb6d067be6d4ff7d6ccef5f3dd8d8d0b8240cb1e7a7c4bf82c7bb3d6d82d6484b85fc208e1aa698bd8205e07f414101932681c7772486b16b54b667ba7b6f53f23c3e9303241ab867b3d1ec05fbc4b51f0898ff7fc853b9557422f3b6316795afff0930ed571804e7f092522bb45769d0e6e863bbbbed53e19f8a88e3a470b7a37f47e02287dd22b5877adfeb36ca69e69a90e136b2c99df71d5f5c5e210df2b1bb125fbcb4262a6986c79f383e3af38b641a19c3c530f9059b056dd46ad67746df3b727a783afe93feef2f1995c819747bc0edf6ad74f4b48dc458b6cc18ac7713acde4526da71365c1bdd96e0388cf01fbf742fe4fd654ea8d20803229b247baf717739a3b46e11cc267c2890fa0c3b370995fabd61e47e6b042eccd456ffd7f1f5d33ead2aa7f7012ec9fa10e0085081734ba5d3259ef65d45fe7d5eb4ac6c65996462cfc9e93c21de011124017e6011a8e84b74eae816f6a8bfe54469b5f2ff8fe8347067543f6c3fdcbba1f669678a06afd8277bc37018e4c825abadf68523c0d1a93bc3be18d685d2a83544e046abfb699ba0292317d7085ba2b3553c6ab34822986baa4f89a2816780dddda2c135f2c6031931d8fa39ba3d9acb45a5514f586493c9e0c8b806ed8cbfa40b5ea40531f58f5d97d0b479e57d3cd6af9b640d70aa70ea0988d8dbfc526221f24b3b917f6d4f83d03d4ec480dedfd09360dff5f4de2a1fb3f736cf936244d356db8191b69db5695a579ef5ed926af5de6fcbd5e92c246899d4d38dd4ee792a9bb6396df9d41fdc9ff2abc7b6707b862db572cd9f2c2f012fe5962a21efa2517c7e399366767f521abe1c7e37f60f93fbbe34307866569b6bc0b50655e597be1422d9feb0778ff82fe91cfaa9ac5e92ea42ef63aa95ca7ebf384575f9640967ac411c06ea38f52fec2f13ce3e3f4d1888361c853efe8db55891d6e8c30d576768744402b3c8ebeb2500c3ab953899e8728ca1cb65e01e1b1d19c98d8ce5f2f235158c3ab31320811cc168428fd0312f5bafddece6537d6d7f4c582e58d0b407409535f4eea65c398700a638375b747013a3064df03b2275ad3ac41563b81c1ac31fc5fa0eb7a45a19b9933c3d67cc1b4a9dbbbc043115ef68ed558d250727330f52eb8bc2dfd9985c4e6197e68aba91d613cae64b3efafa4dd64ec6a44d50b4131dd43241cf112d667d8e683224113e76f72daa0a9f1933c02b8b43fb5f8709a037f63dc57324b77fea2cb93422b9eebeec13cfd2ef25baa026ea4bc4a3bd3e9a3ac362af5068ef1cb6958a7477c3bd1419a7b66a4c08bf182951f2d04f644f96e848c56e8972779e6f877ea8a952c0", 0x1000}], 0x3, &(0x7f0000002600)=[@rights={{0x18, 0x1, 0x1, [r0, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r4, r5}}}, @rights={{0x2c, 0x1, 0x1, [r6, r0, r7, r2, r8, r9, r2]}}, @rights={{0x38, 0x1, 0x1, [r0, r10, r11, r1, r1, r12, r13, r14, r2, r15]}}, @rights={{0x18, 0x1, 0x1, [r2, r0]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xee01}}}, @rights={{0x14, 0x1, 0x1, [r2]}}, @cred={{0x1c, 0x1, 0x2, {r16, 0x0, 0xee01}}}], 0x110, 0x20004080}}, {{&(0x7f0000002740)=@abs={0xe63201edaa46f9dc, 0x0, 0x4e23}, 0x6e, &(0x7f00000029c0)=[{&(0x7f00000027c0)="c8cc43f03906f9b3a84cfa067bd543a1da19c7586a7ee5942a8b04408665b5201575549a668cb4b41364c2ffc1bd4011a9525b4d5dec0d37ddb73d0a6d4aad7cd3", 0x41}, {&(0x7f0000002840)="ca637bcd49ca7cb8a4de2392470662770973d2a79351f7d5cd0b87479330a9c59dfd4fe0d1642cb851427e790315f2504054aeeac7b53c11aab846041e433df9ad0e327b094aece9c027d20689ddbc86b6812516d2dd699b98649ac4d5ee4dcd575edcabeec80e515261eaa17d4e64c5be3d95e8facad5cbea8784a292445966f41114b51d68fad8fe2000d117e7a32960881fddaa37728ce62997717ed52bcdd644358a360998c06ec22ab3", 0xac}, {&(0x7f0000002900)="b676c816c37865", 0x7}, {&(0x7f0000002940)="bd7a20525ce63d7a7cfa094442de45795e54fc0a3f262268723fbd2eb5b46e4583cf41cb8ebe888863b26967563bde1f3cc1d92edf368b733a43fae58720d80d8cf8be", 0x43}], 0x4, &(0x7f0000002a80)=[@cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xee01, r17}}}, @rights={{0x14, 0x1, 0x1, [r0]}}], 0x38, 0x4000080}}], 0x3, 0x20008010) ioctl$FS_IOC_GETVERSION(r2, 0x80087601, &(0x7f0000000040)) [ 280.896226][ T26] audit: type=1326 audit(280.870:147): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14051 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=208 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 00:04:40 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000606000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 280.907201][ T26] audit: type=1326 audit(280.870:148): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14051 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 [ 280.917342][ T26] audit: type=1326 audit(280.870:149): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14051 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=3 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 [ 280.923979][T14062] loop3: detected capacity change from 0 to 512 00:04:40 executing program 5: io_setup(0x8, &(0x7f0000000080)=0x0) io_setup(0x7, &(0x7f00000000c0)) r1 = openat$urandom(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) openat$urandom(0xffffffffffffff9c, &(0x7f0000000100), 0x301cc1, 0x0) io_submit(r0, 0x2, &(0x7f0000000040)=[&(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, 0x0, r1, 0x0, 0x1d}, 0x0]) 00:04:40 executing program 2: prctl$PR_SET_SECCOMP(0x16, 0x2, &(0x7f0000000000)={0x1, &(0x7f0000000180)=[{0x200000000006, 0x0, 0x0, 0x7ffc0001}]}) (async) setsockopt$packet_fanout_data(0xffffffffffffffff, 0x107, 0x16, &(0x7f0000000080)={0x0, &(0x7f0000000040)}, 0x10) io_cancel(0x0, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x5, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0xe1cd, 0x0, 0x2}, 0x0) 00:04:40 executing program 4: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) (async) openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) (async) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) (async) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) (async) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) (async) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) (async) [ 280.962678][ T26] audit: type=1326 audit(280.870:150): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14051 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 [ 280.967792][T14062] EXT4-fs (loop3): revision level too high, forcing read-only mode [ 280.970633][T14062] EXT4-fs (loop3): orphan cleanup on readonly fs [ 280.971987][ T26] audit: type=1326 audit(280.940:151): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14067 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 [ 280.981183][ T26] audit: type=1326 audit(280.940:152): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14067 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 00:04:40 executing program 2: prctl$PR_SET_SECCOMP(0x16, 0x2, &(0x7f0000000000)={0x1, &(0x7f0000000180)=[{0x200000000006, 0x0, 0x0, 0x7ffc0001}]}) setsockopt$packet_fanout_data(0xffffffffffffffff, 0x107, 0x16, &(0x7f0000000080)={0x0, &(0x7f0000000040)}, 0x10) io_cancel(0x0, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x5, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0xe1cd, 0x0, 0x2}, 0x0) prctl$PR_SET_SECCOMP(0x16, 0x2, &(0x7f0000000000)={0x1, &(0x7f0000000180)=[{0x200000000006, 0x0, 0x0, 0x7ffc0001}]}) (async) setsockopt$packet_fanout_data(0xffffffffffffffff, 0x107, 0x16, &(0x7f0000000080)={0x0, &(0x7f0000000040)}, 0x10) (async) io_cancel(0x0, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x5, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0xe1cd, 0x0, 0x2}, 0x0) (async) [ 280.998110][T14062] EXT4-fs error (device loop3): ext4_orphan_get:1392: inode #11: comm syz-executor.3: casefold flag without casefold feature [ 281.015147][ T26] audit: type=1326 audit(280.990:153): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14074 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 00:04:41 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="020300021200000000000000000000000500061c000000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 281.027715][T14062] EXT4-fs (loop3): 1 orphan inode deleted [ 281.027974][ T26] audit: type=1326 audit(280.990:154): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14074 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=98 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 [ 281.037758][ T26] audit: type=1326 audit(280.990:155): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=_ pid=14074 comm="syz-executor.2" exe="/root/syz-executor.2" sig=0 arch=c00000b7 syscall=208 compat=0 ip=0xffff97a5c4e4 code=0x7ffc0000 00:04:41 executing program 0: setsockopt$PNPIPE_HANDLE(0xffffffffffffffff, 0x113, 0x3, &(0x7f0000000300)=0x9, 0x4) ioprio_get$pid(0x2, 0x0) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000001700)=0x4) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) r2 = getpid() sched_setscheduler(r2, 0x1, &(0x7f0000001700)=0x4) r3 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) r4 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f0000000780)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020e0e4a9446c7670568982b4e020f698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f13905ea23c22624c9f87f9793f50bb546040677b0c5077da80fb982c1e9400e693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a286cecc93e64c227c95aa0b784625704f07a72c29184ff7f0000cef809606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b8588d72ec29c48b45ef4adf634be763289d01aa27ae8b09e00e79ab20b0b8e1148f49faf2ad0000000000000006fa03c6468972089b302d7bf6023cdcedb5e0125ebbc08dee510cb2364149215108333719acd97cfa15a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f4ab87b1beeda7be586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9b081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d605ffff9c4d2ec7c32f2095e63c80aff9fa749edecf1988275b238dfa5e800b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142ba11de6c5d50b83bae616b5054d1e7c13b1355d6f4a8245ffa4997da9c77af4c0eb97fca585ec6bf58351d564beb6d952aab9c70764b0a8a7584090b3433b809bdb9fbd48bc873495cbff8a326eea31ae4e0f7505ebf6c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57000000009700cf0b4b8bc2294133000000000000000000030000000000459ff4b40000000010008bc0d9559711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b98008006c4a00000000ff435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0adb02d9ba96e1010000000000000000007d5ad897ef3b7cda42013d53046da21b40216e14ba2d6ad5656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53b263339863297771429d120000003341bf4a00fca0493cf29b33dcc9ffffffffffffffd39fec2271ff0158929646efd1cf870cd7bb2366fde41f94290c2a5ff870ce5dfd3467decb05cfd9fcb32c8ed1dbd9d10a64c108285e71b5565b1768ee58969ced595229df17bcad70fb4021428ce970275d13b78249788f11f761038b75d4fe32b561d46ea3abe0fa4d30fa94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719197724f4fce1093b62d7e8c7123d8ecbbc55bf404e4e1f74b7eed82571be54c72d978cf906df0042e36acd37d7f9e119f2c06f815312e0cfe222a06f56dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef2acd1fe582786105c7dfa2e5877050c91301bb997316dbf17866fb84d4c7bb481d1b0b911759dc392ad608318c173731efe8950fed1c5560926e90109b598502d3e959efc71f665c4d75cf2458e3542c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca378e676c3e08c1ed43ca8d3d10994c0b58645ac518a75fde7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad05573af5f5b9eec8a9c940093947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d34b5457acf37331766e472391e358c3b377327ac9ecc34f24c9ae153ec60ac0694dc55bff9f5f4df90400000000000000d6b2c5ea1393fdf24285bf16b99c9cc0ad1857216f1a985f369191ae954febb3df464b635197351a5ef0a0fb89d2777399f5874c553aeb3729cffe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f895778cb25122a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003016f1514216bdf57d2a40d40b51ab63e96ec8485b3b8a8c9ae3d060000000000000062eef552fcde2981f48c482bde8a168c3f5db2fea6f26e4a4304e5000000809ecee27defc93871c5f99b355b72d538ba4958ea8e4aa370ac891e10096e7e60fc3541a2c905a1a95e9571bf38ae1981c4238ecaee6f75cd0a6881bd1517a8250df98674152f94e32409e2a3bce109b60000000000000000d6d5210d7560eb92d6a97a27602b81f76386f1535bef1497f92186086e29c6bc5a1fad6ec9a31137abf9a404abde7750898b1bd627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101293373750d1a8fe64680b0a3fc22dd704e4214de5944912d6c98cd1a9fbe1e7d58c08acaf30235b928a31d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76015e6009756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66418d160500000000000000d2a182068e1e3a0e2505bc7f41019645466a000000003bc13c334b47f067bbab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd21081920382f14d12ca3c3431ee97471c7868dcda7eaa69eb7f7f80772fdd11bb1d0d1280fbc22bf73468788df51710d7d31c632fc5ed1762eb0b428ee751c47d8e89fc745a868404a0bf35f0121008b722b1eaa6aedfa1bf2e7ccb2d61d5d76331945e20fa26b8471d42645288d7226bbd9c9e9e1cc9eb3d541e407cc2dae5e690cd628ab84875f2c50ba891cea599b079b4b4ba686fcdf240430a537a395dc73bda367bf12cb7d81691a5fe8c47be395656a297e9df0e71f96756ea5cce7daac4be290159f6bcd75f0dda9de5532e71ae9e48b0ed1254a83186c1526af6fbb869604d51a36a54c832e45b2569dc0d90b075225fde44c4e0973171ad47d6b70ebe660309e1e245b0fdf9743af930cd6db49a47613808bad959719c0000000000378a921c7f7f8433c2e24c7e800003c9e8095e02985f28e678f66422436f949e2ab8f162d7e3f855e378f4a1f40b0c6fb2d4b205aa3270d25ce1f8174af6de8c12260400b6d713acebc5b014e61a543a5a194f9ac18d76b5440e3b1a569ed7aa287378c697f6cafa86966d7ba19e720413267a6ccea9c439671d2c680f2753ca184eeeb843450368acb4383a01d25eb3d1e23e0f2645d1cdfa9fa410632f95a5f622e9f2c66ee7e30393cd7a4d67ff2a49c4f9360984b5c2d4523497e4d64f95f08493564a1df87111c9bf3194fef97dcecc467ace45feeb685c5870d05f88a0f463db88d377442e1349acaf766218b54a9d624778e1c4cba6e6390a9f302c6eb2df7766411bef0ebb5002512bcbf9b24accfecb0f477db103463af2847e6ade5b9e065ec0d0ba58fedae5f08818fea475b169469f9efd131925d98c34b3b47e5c46d121ad5087e1cdee39f5cf21d2e80a64ac97e71cafc29bfb78db090dd12225efeda2e93bf7f6ba7865e9c375a780929d210bf5858e2a4ff8e8d1e8c9cceed07c6312b734c72510d335acc94f76e7078ce4066f1e0ac9429f8013683301277a11e25b248b61180cb6207a0e26757f3f1bfc6c27f3720d1fb74afb17f3b5239bc2243853d5234afb05ed6024e94dee34666c5b5522b54cb433efa54b4e9022533e7c89bdee957dfa9ded9f16fdcd1b681e4c72f32fa3334313e334e2140daec7dcb22f463457a1a5ac230bbded86258206046f556589f5627ab2751eb34d940519f009412098398ad822a8509d2d32da656ac5935e4c7f9503ce4daf13300dfd611528049310544d2e7d1c3e8613926fbe2647e258932592c9123f1c74023144442d09ef90c64950176c666da6b6581091c54beb2379aa70501c42bd9c4e4f426ab5ff2a33767b408ed19e399c33b52abc4ac24da0d4cf07d93029583591c33f0f80513c541581977f2e9735e1edb66fdb2722eb4b0b670ba74fdee2f1a3cf85777af5d8267acaa9d83c23a4b40d0f53dce003c03c5959e405fc4f2c05d3394f014a39caabbeff7c7cadbdc57def7f5f758aa46b6e2fddc779770d7e395c4ac2a136a30e7c0a301dffc5565d7244fb29cd302c36e76221a3c4e21559216c078f06b01885a83da16bf8548776a0ae88dfeccc9ad64d2fe3cfdeb9684b7b7e5c00f7323f8214ed0189539e0e3e34c8e542c82ddbd6a75c1adbedef4d5d69b246a53c0ab802b0161908e748ed9891678c228413bf51b18a25bf776b9d1f1fedf97cf5e7de4455ea359e5796bd60cc415066fc271a2bdb7db13e72d1a99b375ff874037faf6a1d1aacf46a57346d000000000000000085c1b64dd5178485ad0f8557ccae7c06a40e8bd2ce76927bb0923dc380fd153cd2ce1242bc0a6e0fff9cfb70d41b02414730f572ca2a4898426eb6d416ff14aaefebd84bd4000000000000000000dbd064fe868ff4929d489badcf5072c61231bec614423bbf7df2989db587bf49abc6ff4d842309a1fa7f268e2c453cd8b9a746d5c6e820453a377fb09f5799b43c1951f56c211170bc102a3437778676928a1b4bd8ddc8db197d6b63913e6dccc20ccb26bc231f1428502b3279d0aace2caf8c8f5edbfeffe6d5b36439fe0f70b34ad0f1a4cad44c5237a2fff1e8f8e0521313c30a9fb5fc54ae85d19599bb1c2283e3f7bb01a11a1845db6b8eba64b45f1c000000c0c4bef4bf3e1d9b0e1b4e4147d5eb0f9b9bfe80984650dce289524659d70fc7ab8485c054e51ad1bef44c5d6cfaaf7efb61be7c38820a4279d69ff337b0f3f9c2c55de05d1c3682c41f624e735c3ce0a7b0f3d784c96cc57c83e78b336cb4022c19917284534ea9efccef28374885759f39c444d78a3f78ec3bafb4af2e7a64c967c494264c3b36591eb2049ede272a00dc74628a45de9fd219c63f1f0e2e187071f9468f1f4b880ae18459f3790010aff9f89be79e7b81ed89139dd8152e5009fa164f36bce90c661b35022c1cbbdfc9aba07ebed92b94ff9f0e1dbc0a29d5799e3ecc8eb35f791a4fc7db9e97be3f944b2360e3c9a0d2b0ab83db2fc1c3d28efda92828494b88008b9082394c113ec071cdbd8556d7cf7c11236d699da109de535f64e008a175d11e80f96e"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000000)={&(0x7f0000000080)='sched_switch\x00', r4}, 0x10) r5 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r5, 0x0) sendmsg$nl_route(r5, &(0x7f0000000680)={&(0x7f00000005c0)={0x10, 0x0, 0x0, 0x10000000}, 0xc, &(0x7f0000000640)={&(0x7f0000000600)=@ipv4_newroute={0x40, 0x18, 0x4, 0x70bd2a, 0x25dfdbfe, {0x2, 0x14, 0x20, 0x7a, 0xfe, 0x2, 0x0, 0x4, 0xa00}, [@RTA_TABLE={0x8, 0xf, 0x6}, @RTA_MULTIPATH={0xc, 0x9, {0x8, 0x5, 0x1f}}, @RTA_ENCAP_TYPE={0x6, 0x15, 0x1}, @RTA_NH_ID={0x8, 0x1e, 0x2}]}, 0x40}, 0x1, 0x0, 0x0, 0x20000080}, 0x20000014) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000340)={0xffffffffffffffff}) mmap(&(0x7f00000f4000/0x4000)=nil, 0x4000, 0xd, 0x110, r6, 0x0) r7 = syz_clone3(&(0x7f0000000280)={0x939efbf61ac14b50, &(0x7f0000000000), &(0x7f0000000040)=0x0, &(0x7f0000000080), {0x17}, &(0x7f00000000c0)=""/91, 0x5b, &(0x7f0000000140)=""/230, &(0x7f0000000240)=[0xffffffffffffffff, 0x0, 0xffffffffffffffff, r0, r2], 0x5, {r3}}, 0x58) r9 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r9, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) sched_setscheduler(r8, 0x3, &(0x7f0000000500)=0x3ff) connect$unix(r10, &(0x7f000057eff8)=@abs, 0x6e) recvmmsg(r10, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r11 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r11, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) getsockname$packet(r3, &(0x7f0000000540), &(0x7f0000000580)=0x14) setuid(r12) ioctl$DRM_IOCTL_GET_CLIENT(r3, 0xc0286405, &(0x7f0000000400)={0xdb1, 0x2, {r7}, {}, 0x1, 0xfff}) mount$9p_fd(0x0, &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0), 0x4000, &(0x7f0000001740)=ANY=[@ANYBLOB='trans=fd,rfdno=', @ANYRESHEX=r9, @ANYBLOB=',wfdno=', @ANYRESHEX=r10, @ANYBLOB=',access=user,access=client,mmap,defcontext=sysadm_u,fowner=', @ANYRESDEC=r12, @ANYBLOB="4651682c00d96ed8f6d4cdd074eb2ef7db900904e79121def858f60975474e404f79a2f9f4dc17b63fd8c7e0e0c6d2ee5d998336c1873e0c71ec1eb46d1fc8828d628b1e45374ddef2c70c9e159bb92b8c0814140dd9dc63edd85f4ae90d79c99b14a0fabd0e45136f01ce344741379021d7abb4ef55822dc125335b89c9cb5d4b6b246efb6c3ac29d01544bbaa6f2e29201522a5dea1b23ff5f3c600a4529b16fcd30ca778bd9d0d7064e7bebb2db694263659566e2fc2ebd0241c7e10fdce824afb3cdb9ec903207714b1a5899c060e217a04a74419064756c99b8ce00af8f6532a15885d658a7da66a77f3aa1a999700a811e"]) 00:04:41 executing program 2: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) 00:04:41 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000600030000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:41 executing program 5: io_setup(0x8, &(0x7f0000000080)=0x0) io_setup(0x7, &(0x7f00000000c0)) r1 = openat$urandom(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) openat$urandom(0xffffffffffffff9c, &(0x7f0000000100), 0x301cc1, 0x0) io_submit(r0, 0x2, &(0x7f0000000040)=[&(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, 0x0, r1, 0x0, 0x1d}, 0x0]) io_setup(0x8, &(0x7f0000000080)) (async) io_setup(0x7, &(0x7f00000000c0)) (async) openat$urandom(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) (async) openat$urandom(0xffffffffffffff9c, &(0x7f0000000100), 0x301cc1, 0x0) (async) io_submit(r0, 0x2, &(0x7f0000000040)=[&(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, 0x0, r1, 0x0, 0x1d}, 0x0]) (async) 00:04:41 executing program 0: setsockopt$PNPIPE_HANDLE(0xffffffffffffffff, 0x113, 0x3, &(0x7f0000000300)=0x9, 0x4) (async) ioprio_get$pid(0x2, 0x0) (async) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000001700)=0x4) (async, rerun: 32) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) (rerun: 32) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) r2 = getpid() sched_setscheduler(r2, 0x1, &(0x7f0000001700)=0x4) r3 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) r4 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f0000000780)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020e0e4a9446c7670568982b4e020f698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f13905ea23c22624c9f87f9793f50bb546040677b0c5077da80fb982c1e9400e693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a286cecc93e64c227c95aa0b784625704f07a72c29184ff7f0000cef809606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b8588d72ec29c48b45ef4adf634be763289d01aa27ae8b09e00e79ab20b0b8e1148f49faf2ad0000000000000006fa03c6468972089b302d7bf6023cdcedb5e0125ebbc08dee510cb2364149215108333719acd97cfa15a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f4ab87b1beeda7be586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9b081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d605ffff9c4d2ec7c32f2095e63c80aff9fa749edecf1988275b238dfa5e800b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142ba11de6c5d50b83bae616b5054d1e7c13b1355d6f4a8245ffa4997da9c77af4c0eb97fca585ec6bf58351d564beb6d952aab9c70764b0a8a7584090b3433b809bdb9fbd48bc873495cbff8a326eea31ae4e0f7505ebf6c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57000000009700cf0b4b8bc2294133000000000000000000030000000000459ff4b40000000010008bc0d9559711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b98008006c4a00000000ff435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0adb02d9ba96e1010000000000000000007d5ad897ef3b7cda42013d53046da21b40216e14ba2d6ad5656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53b263339863297771429d120000003341bf4a00fca0493cf29b33dcc9ffffffffffffffd39fec2271ff0158929646efd1cf870cd7bb2366fde41f94290c2a5ff870ce5dfd3467decb05cfd9fcb32c8ed1dbd9d10a64c108285e71b5565b1768ee58969ced595229df17bcad70fb4021428ce970275d13b78249788f11f761038b75d4fe32b561d46ea3abe0fa4d30fa94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719197724f4fce1093b62d7e8c7123d8ecbbc55bf404e4e1f74b7eed82571be54c72d978cf906df0042e36acd37d7f9e119f2c06f815312e0cfe222a06f56dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef2acd1fe582786105c7dfa2e5877050c91301bb997316dbf17866fb84d4c7bb481d1b0b911759dc392ad608318c173731efe8950fed1c5560926e90109b598502d3e959efc71f665c4d75cf2458e3542c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca378e676c3e08c1ed43ca8d3d10994c0b58645ac518a75fde7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad05573af5f5b9eec8a9c940093947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d34b5457acf37331766e472391e358c3b377327ac9ecc34f24c9ae153ec60ac0694dc55bff9f5f4df90400000000000000d6b2c5ea1393fdf24285bf16b99c9cc0ad1857216f1a985f369191ae954febb3df464b635197351a5ef0a0fb89d2777399f5874c553aeb3729cffe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f895778cb25122a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003016f1514216bdf57d2a40d40b51ab63e96ec8485b3b8a8c9ae3d060000000000000062eef552fcde2981f48c482bde8a168c3f5db2fea6f26e4a4304e5000000809ecee27defc93871c5f99b355b72d538ba4958ea8e4aa370ac891e10096e7e60fc3541a2c905a1a95e9571bf38ae1981c4238ecaee6f75cd0a6881bd1517a8250df98674152f94e32409e2a3bce109b60000000000000000d6d5210d7560eb92d6a97a27602b81f76386f1535bef1497f92186086e29c6bc5a1fad6ec9a31137abf9a404abde7750898b1bd627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101293373750d1a8fe64680b0a3fc22dd704e4214de5944912d6c98cd1a9fbe1e7d58c08acaf30235b928a31d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76015e6009756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66418d160500000000000000d2a182068e1e3a0e2505bc7f41019645466a000000003bc13c334b47f067bbab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd21081920382f14d12ca3c3431ee97471c7868dcda7eaa69eb7f7f80772fdd11bb1d0d1280fbc22bf73468788df51710d7d31c632fc5ed1762eb0b428ee751c47d8e89fc745a868404a0bf35f0121008b722b1eaa6aedfa1bf2e7ccb2d61d5d76331945e20fa26b8471d42645288d7226bbd9c9e9e1cc9eb3d541e407cc2dae5e690cd628ab84875f2c50ba891cea599b079b4b4ba686fcdf240430a537a395dc73bda367bf12cb7d81691a5fe8c47be395656a297e9df0e71f96756ea5cce7daac4be290159f6bcd75f0dda9de5532e71ae9e48b0ed1254a83186c1526af6fbb869604d51a36a54c832e45b2569dc0d90b075225fde44c4e0973171ad47d6b70ebe660309e1e245b0fdf9743af930cd6db49a47613808bad959719c0000000000378a921c7f7f8433c2e24c7e800003c9e8095e02985f28e678f66422436f949e2ab8f162d7e3f855e378f4a1f40b0c6fb2d4b205aa3270d25ce1f8174af6de8c12260400b6d713acebc5b014e61a543a5a194f9ac18d76b5440e3b1a569ed7aa287378c697f6cafa86966d7ba19e720413267a6ccea9c439671d2c680f2753ca184eeeb843450368acb4383a01d25eb3d1e23e0f2645d1cdfa9fa410632f95a5f622e9f2c66ee7e30393cd7a4d67ff2a49c4f9360984b5c2d4523497e4d64f95f08493564a1df87111c9bf3194fef97dcecc467ace45feeb685c5870d05f88a0f463db88d377442e1349acaf766218b54a9d624778e1c4cba6e6390a9f302c6eb2df7766411bef0ebb5002512bcbf9b24accfecb0f477db103463af2847e6ade5b9e065ec0d0ba58fedae5f08818fea475b169469f9efd131925d98c34b3b47e5c46d121ad5087e1cdee39f5cf21d2e80a64ac97e71cafc29bfb78db090dd12225efeda2e93bf7f6ba7865e9c375a780929d210bf5858e2a4ff8e8d1e8c9cceed07c6312b734c72510d335acc94f76e7078ce4066f1e0ac9429f8013683301277a11e25b248b61180cb6207a0e26757f3f1bfc6c27f3720d1fb74afb17f3b5239bc2243853d5234afb05ed6024e94dee34666c5b5522b54cb433efa54b4e9022533e7c89bdee957dfa9ded9f16fdcd1b681e4c72f32fa3334313e334e2140daec7dcb22f463457a1a5ac230bbded86258206046f556589f5627ab2751eb34d940519f009412098398ad822a8509d2d32da656ac5935e4c7f9503ce4daf13300dfd611528049310544d2e7d1c3e8613926fbe2647e258932592c9123f1c74023144442d09ef90c64950176c666da6b6581091c54beb2379aa70501c42bd9c4e4f426ab5ff2a33767b408ed19e399c33b52abc4ac24da0d4cf07d93029583591c33f0f80513c541581977f2e9735e1edb66fdb2722eb4b0b670ba74fdee2f1a3cf85777af5d8267acaa9d83c23a4b40d0f53dce003c03c5959e405fc4f2c05d3394f014a39caabbeff7c7cadbdc57def7f5f758aa46b6e2fddc779770d7e395c4ac2a136a30e7c0a301dffc5565d7244fb29cd302c36e76221a3c4e21559216c078f06b01885a83da16bf8548776a0ae88dfeccc9ad64d2fe3cfdeb9684b7b7e5c00f7323f8214ed0189539e0e3e34c8e542c82ddbd6a75c1adbedef4d5d69b246a53c0ab802b0161908e748ed9891678c228413bf51b18a25bf776b9d1f1fedf97cf5e7de4455ea359e5796bd60cc415066fc271a2bdb7db13e72d1a99b375ff874037faf6a1d1aacf46a57346d000000000000000085c1b64dd5178485ad0f8557ccae7c06a40e8bd2ce76927bb0923dc380fd153cd2ce1242bc0a6e0fff9cfb70d41b02414730f572ca2a4898426eb6d416ff14aaefebd84bd4000000000000000000dbd064fe868ff4929d489badcf5072c61231bec614423bbf7df2989db587bf49abc6ff4d842309a1fa7f268e2c453cd8b9a746d5c6e820453a377fb09f5799b43c1951f56c211170bc102a3437778676928a1b4bd8ddc8db197d6b63913e6dccc20ccb26bc231f1428502b3279d0aace2caf8c8f5edbfeffe6d5b36439fe0f70b34ad0f1a4cad44c5237a2fff1e8f8e0521313c30a9fb5fc54ae85d19599bb1c2283e3f7bb01a11a1845db6b8eba64b45f1c000000c0c4bef4bf3e1d9b0e1b4e4147d5eb0f9b9bfe80984650dce289524659d70fc7ab8485c054e51ad1bef44c5d6cfaaf7efb61be7c38820a4279d69ff337b0f3f9c2c55de05d1c3682c41f624e735c3ce0a7b0f3d784c96cc57c83e78b336cb4022c19917284534ea9efccef28374885759f39c444d78a3f78ec3bafb4af2e7a64c967c494264c3b36591eb2049ede272a00dc74628a45de9fd219c63f1f0e2e187071f9468f1f4b880ae18459f3790010aff9f89be79e7b81ed89139dd8152e5009fa164f36bce90c661b35022c1cbbdfc9aba07ebed92b94ff9f0e1dbc0a29d5799e3ecc8eb35f791a4fc7db9e97be3f944b2360e3c9a0d2b0ab83db2fc1c3d28efda92828494b88008b9082394c113ec071cdbd8556d7cf7c11236d699da109de535f64e008a175d11e80f96e"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000000)={&(0x7f0000000080)='sched_switch\x00', r4}, 0x10) (async) r5 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r5, 0x0) sendmsg$nl_route(r5, &(0x7f0000000680)={&(0x7f00000005c0)={0x10, 0x0, 0x0, 0x10000000}, 0xc, &(0x7f0000000640)={&(0x7f0000000600)=@ipv4_newroute={0x40, 0x18, 0x4, 0x70bd2a, 0x25dfdbfe, {0x2, 0x14, 0x20, 0x7a, 0xfe, 0x2, 0x0, 0x4, 0xa00}, [@RTA_TABLE={0x8, 0xf, 0x6}, @RTA_MULTIPATH={0xc, 0x9, {0x8, 0x5, 0x1f}}, @RTA_ENCAP_TYPE={0x6, 0x15, 0x1}, @RTA_NH_ID={0x8, 0x1e, 0x2}]}, 0x40}, 0x1, 0x0, 0x0, 0x20000080}, 0x20000014) (async) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000340)={0xffffffffffffffff}) mmap(&(0x7f00000f4000/0x4000)=nil, 0x4000, 0xd, 0x110, r6, 0x0) (async) r7 = syz_clone3(&(0x7f0000000280)={0x939efbf61ac14b50, &(0x7f0000000000), &(0x7f0000000040)=0x0, &(0x7f0000000080), {0x17}, &(0x7f00000000c0)=""/91, 0x5b, &(0x7f0000000140)=""/230, &(0x7f0000000240)=[0xffffffffffffffff, 0x0, 0xffffffffffffffff, r0, r2], 0x5, {r3}}, 0x58) (async) r9 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r9, 0x0) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) sched_setscheduler(r8, 0x3, &(0x7f0000000500)=0x3ff) (async, rerun: 32) connect$unix(r10, &(0x7f000057eff8)=@abs, 0x6e) (async, rerun: 32) recvmmsg(r10, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async) r11 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r11, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) (async) getsockname$packet(r3, &(0x7f0000000540), &(0x7f0000000580)=0x14) setuid(r12) (async) ioctl$DRM_IOCTL_GET_CLIENT(r3, 0xc0286405, &(0x7f0000000400)={0xdb1, 0x2, {r7}, {}, 0x1, 0xfff}) (async) mount$9p_fd(0x0, &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0), 0x4000, &(0x7f0000001740)=ANY=[@ANYBLOB='trans=fd,rfdno=', @ANYRESHEX=r9, @ANYBLOB=',wfdno=', @ANYRESHEX=r10, @ANYBLOB=',access=user,access=client,mmap,defcontext=sysadm_u,fowner=', @ANYRESDEC=r12, @ANYBLOB="4651682c00d96ed8f6d4cdd074eb2ef7db900904e79121def858f60975474e404f79a2f9f4dc17b63fd8c7e0e0c6d2ee5d998336c1873e0c71ec1eb46d1fc8828d628b1e45374ddef2c70c9e159bb92b8c0814140dd9dc63edd85f4ae90d79c99b14a0fabd0e45136f01ce344741379021d7abb4ef55822dc125335b89c9cb5d4b6b246efb6c3ac29d01544bbaa6f2e29201522a5dea1b23ff5f3c600a4529b16fcd30ca778bd9d0d7064e7bebb2db694263659566e2fc2ebd0241c7e10fdce824afb3cdb9ec903207714b1a5899c060e217a04a74419064756c99b8ce00af8f6532a15885d658a7da66a77f3aa1a999700a811e"]) [ 281.128490][T14062] EXT4-fs (loop3): mounted filesystem without journal. Quota mode: writeback. 00:04:41 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000600060000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:41 executing program 4: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) (async) openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) (async) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) (async) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) (async) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) (async) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) (async) 00:04:41 executing program 0: setsockopt$PNPIPE_HANDLE(0xffffffffffffffff, 0x113, 0x3, &(0x7f0000000300)=0x9, 0x4) (async) ioprio_get$pid(0x2, 0x0) (async) r0 = getpid() sched_setscheduler(r0, 0x1, &(0x7f0000001700)=0x4) (async) r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r1, 0x0) r2 = getpid() sched_setscheduler(r2, 0x1, &(0x7f0000001700)=0x4) (async) r3 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) r4 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f0000000780)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020e0e4a9446c7670568982b4e020f698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f13905ea23c22624c9f87f9793f50bb546040677b0c5077da80fb982c1e9400e693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a286cecc93e64c227c95aa0b784625704f07a72c29184ff7f0000cef809606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b8588d72ec29c48b45ef4adf634be763289d01aa27ae8b09e00e79ab20b0b8e1148f49faf2ad0000000000000006fa03c6468972089b302d7bf6023cdcedb5e0125ebbc08dee510cb2364149215108333719acd97cfa15a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f4ab87b1beeda7be586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9b081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d605ffff9c4d2ec7c32f2095e63c80aff9fa749edecf1988275b238dfa5e800b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142ba11de6c5d50b83bae616b5054d1e7c13b1355d6f4a8245ffa4997da9c77af4c0eb97fca585ec6bf58351d564beb6d952aab9c70764b0a8a7584090b3433b809bdb9fbd48bc873495cbff8a326eea31ae4e0f7505ebf6c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57000000009700cf0b4b8bc2294133000000000000000000030000000000459ff4b40000000010008bc0d9559711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b98008006c4a00000000ff435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0adb02d9ba96e1010000000000000000007d5ad897ef3b7cda42013d53046da21b40216e14ba2d6ad5656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53b263339863297771429d120000003341bf4a00fca0493cf29b33dcc9ffffffffffffffd39fec2271ff0158929646efd1cf870cd7bb2366fde41f94290c2a5ff870ce5dfd3467decb05cfd9fcb32c8ed1dbd9d10a64c108285e71b5565b1768ee58969ced595229df17bcad70fb4021428ce970275d13b78249788f11f761038b75d4fe32b561d46ea3abe0fa4d30fa94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719197724f4fce1093b62d7e8c7123d8ecbbc55bf404e4e1f74b7eed82571be54c72d978cf906df0042e36acd37d7f9e119f2c06f815312e0cfe222a06f56dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef2acd1fe582786105c7dfa2e5877050c91301bb997316dbf17866fb84d4c7bb481d1b0b911759dc392ad608318c173731efe8950fed1c5560926e90109b598502d3e959efc71f665c4d75cf2458e3542c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca378e676c3e08c1ed43ca8d3d10994c0b58645ac518a75fde7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad05573af5f5b9eec8a9c940093947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d34b5457acf37331766e472391e358c3b377327ac9ecc34f24c9ae153ec60ac0694dc55bff9f5f4df90400000000000000d6b2c5ea1393fdf24285bf16b99c9cc0ad1857216f1a985f369191ae954febb3df464b635197351a5ef0a0fb89d2777399f5874c553aeb3729cffe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f895778cb25122a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003016f1514216bdf57d2a40d40b51ab63e96ec8485b3b8a8c9ae3d060000000000000062eef552fcde2981f48c482bde8a168c3f5db2fea6f26e4a4304e5000000809ecee27defc93871c5f99b355b72d538ba4958ea8e4aa370ac891e10096e7e60fc3541a2c905a1a95e9571bf38ae1981c4238ecaee6f75cd0a6881bd1517a8250df98674152f94e32409e2a3bce109b60000000000000000d6d5210d7560eb92d6a97a27602b81f76386f1535bef1497f92186086e29c6bc5a1fad6ec9a31137abf9a404abde7750898b1bd627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101293373750d1a8fe64680b0a3fc22dd704e4214de5944912d6c98cd1a9fbe1e7d58c08acaf30235b928a31d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76015e6009756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66418d160500000000000000d2a182068e1e3a0e2505bc7f41019645466a000000003bc13c334b47f067bbab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd21081920382f14d12ca3c3431ee97471c7868dcda7eaa69eb7f7f80772fdd11bb1d0d1280fbc22bf73468788df51710d7d31c632fc5ed1762eb0b428ee751c47d8e89fc745a868404a0bf35f0121008b722b1eaa6aedfa1bf2e7ccb2d61d5d76331945e20fa26b8471d42645288d7226bbd9c9e9e1cc9eb3d541e407cc2dae5e690cd628ab84875f2c50ba891cea599b079b4b4ba686fcdf240430a537a395dc73bda367bf12cb7d81691a5fe8c47be395656a297e9df0e71f96756ea5cce7daac4be290159f6bcd75f0dda9de5532e71ae9e48b0ed1254a83186c1526af6fbb869604d51a36a54c832e45b2569dc0d90b075225fde44c4e0973171ad47d6b70ebe660309e1e245b0fdf9743af930cd6db49a47613808bad959719c0000000000378a921c7f7f8433c2e24c7e800003c9e8095e02985f28e678f66422436f949e2ab8f162d7e3f855e378f4a1f40b0c6fb2d4b205aa3270d25ce1f8174af6de8c12260400b6d713acebc5b014e61a543a5a194f9ac18d76b5440e3b1a569ed7aa287378c697f6cafa86966d7ba19e720413267a6ccea9c439671d2c680f2753ca184eeeb843450368acb4383a01d25eb3d1e23e0f2645d1cdfa9fa410632f95a5f622e9f2c66ee7e30393cd7a4d67ff2a49c4f9360984b5c2d4523497e4d64f95f08493564a1df87111c9bf3194fef97dcecc467ace45feeb685c5870d05f88a0f463db88d377442e1349acaf766218b54a9d624778e1c4cba6e6390a9f302c6eb2df7766411bef0ebb5002512bcbf9b24accfecb0f477db103463af2847e6ade5b9e065ec0d0ba58fedae5f08818fea475b169469f9efd131925d98c34b3b47e5c46d121ad5087e1cdee39f5cf21d2e80a64ac97e71cafc29bfb78db090dd12225efeda2e93bf7f6ba7865e9c375a780929d210bf5858e2a4ff8e8d1e8c9cceed07c6312b734c72510d335acc94f76e7078ce4066f1e0ac9429f8013683301277a11e25b248b61180cb6207a0e26757f3f1bfc6c27f3720d1fb74afb17f3b5239bc2243853d5234afb05ed6024e94dee34666c5b5522b54cb433efa54b4e9022533e7c89bdee957dfa9ded9f16fdcd1b681e4c72f32fa3334313e334e2140daec7dcb22f463457a1a5ac230bbded86258206046f556589f5627ab2751eb34d940519f009412098398ad822a8509d2d32da656ac5935e4c7f9503ce4daf13300dfd611528049310544d2e7d1c3e8613926fbe2647e258932592c9123f1c74023144442d09ef90c64950176c666da6b6581091c54beb2379aa70501c42bd9c4e4f426ab5ff2a33767b408ed19e399c33b52abc4ac24da0d4cf07d93029583591c33f0f80513c541581977f2e9735e1edb66fdb2722eb4b0b670ba74fdee2f1a3cf85777af5d8267acaa9d83c23a4b40d0f53dce003c03c5959e405fc4f2c05d3394f014a39caabbeff7c7cadbdc57def7f5f758aa46b6e2fddc779770d7e395c4ac2a136a30e7c0a301dffc5565d7244fb29cd302c36e76221a3c4e21559216c078f06b01885a83da16bf8548776a0ae88dfeccc9ad64d2fe3cfdeb9684b7b7e5c00f7323f8214ed0189539e0e3e34c8e542c82ddbd6a75c1adbedef4d5d69b246a53c0ab802b0161908e748ed9891678c228413bf51b18a25bf776b9d1f1fedf97cf5e7de4455ea359e5796bd60cc415066fc271a2bdb7db13e72d1a99b375ff874037faf6a1d1aacf46a57346d000000000000000085c1b64dd5178485ad0f8557ccae7c06a40e8bd2ce76927bb0923dc380fd153cd2ce1242bc0a6e0fff9cfb70d41b02414730f572ca2a4898426eb6d416ff14aaefebd84bd4000000000000000000dbd064fe868ff4929d489badcf5072c61231bec614423bbf7df2989db587bf49abc6ff4d842309a1fa7f268e2c453cd8b9a746d5c6e820453a377fb09f5799b43c1951f56c211170bc102a3437778676928a1b4bd8ddc8db197d6b63913e6dccc20ccb26bc231f1428502b3279d0aace2caf8c8f5edbfeffe6d5b36439fe0f70b34ad0f1a4cad44c5237a2fff1e8f8e0521313c30a9fb5fc54ae85d19599bb1c2283e3f7bb01a11a1845db6b8eba64b45f1c000000c0c4bef4bf3e1d9b0e1b4e4147d5eb0f9b9bfe80984650dce289524659d70fc7ab8485c054e51ad1bef44c5d6cfaaf7efb61be7c38820a4279d69ff337b0f3f9c2c55de05d1c3682c41f624e735c3ce0a7b0f3d784c96cc57c83e78b336cb4022c19917284534ea9efccef28374885759f39c444d78a3f78ec3bafb4af2e7a64c967c494264c3b36591eb2049ede272a00dc74628a45de9fd219c63f1f0e2e187071f9468f1f4b880ae18459f3790010aff9f89be79e7b81ed89139dd8152e5009fa164f36bce90c661b35022c1cbbdfc9aba07ebed92b94ff9f0e1dbc0a29d5799e3ecc8eb35f791a4fc7db9e97be3f944b2360e3c9a0d2b0ab83db2fc1c3d28efda92828494b88008b9082394c113ec071cdbd8556d7cf7c11236d699da109de535f64e008a175d11e80f96e"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000000)={&(0x7f0000000080)='sched_switch\x00', r4}, 0x10) (async) r5 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r5, 0x0) (async) sendmsg$nl_route(r5, &(0x7f0000000680)={&(0x7f00000005c0)={0x10, 0x0, 0x0, 0x10000000}, 0xc, &(0x7f0000000640)={&(0x7f0000000600)=@ipv4_newroute={0x40, 0x18, 0x4, 0x70bd2a, 0x25dfdbfe, {0x2, 0x14, 0x20, 0x7a, 0xfe, 0x2, 0x0, 0x4, 0xa00}, [@RTA_TABLE={0x8, 0xf, 0x6}, @RTA_MULTIPATH={0xc, 0x9, {0x8, 0x5, 0x1f}}, @RTA_ENCAP_TYPE={0x6, 0x15, 0x1}, @RTA_NH_ID={0x8, 0x1e, 0x2}]}, 0x40}, 0x1, 0x0, 0x0, 0x20000080}, 0x20000014) (async) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000340)={0xffffffffffffffff}) mmap(&(0x7f00000f4000/0x4000)=nil, 0x4000, 0xd, 0x110, r6, 0x0) r7 = syz_clone3(&(0x7f0000000280)={0x939efbf61ac14b50, &(0x7f0000000000), &(0x7f0000000040)=0x0, &(0x7f0000000080), {0x17}, &(0x7f00000000c0)=""/91, 0x5b, &(0x7f0000000140)=""/230, &(0x7f0000000240)=[0xffffffffffffffff, 0x0, 0xffffffffffffffff, r0, r2], 0x5, {r3}}, 0x58) (async) r9 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r9, 0x0) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) (async) sched_setscheduler(r8, 0x3, &(0x7f0000000500)=0x3ff) connect$unix(r10, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r10, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r11 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r11, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) getsockname$packet(r3, &(0x7f0000000540), &(0x7f0000000580)=0x14) (async) setuid(r12) (async) ioctl$DRM_IOCTL_GET_CLIENT(r3, 0xc0286405, &(0x7f0000000400)={0xdb1, 0x2, {r7}, {}, 0x1, 0xfff}) (async) mount$9p_fd(0x0, &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0), 0x4000, &(0x7f0000001740)=ANY=[@ANYBLOB='trans=fd,rfdno=', @ANYRESHEX=r9, @ANYBLOB=',wfdno=', @ANYRESHEX=r10, @ANYBLOB=',access=user,access=client,mmap,defcontext=sysadm_u,fowner=', @ANYRESDEC=r12, @ANYBLOB="4651682c00d96ed8f6d4cdd074eb2ef7db900904e79121def858f60975474e404f79a2f9f4dc17b63fd8c7e0e0c6d2ee5d998336c1873e0c71ec1eb46d1fc8828d628b1e45374ddef2c70c9e159bb92b8c0814140dd9dc63edd85f4ae90d79c99b14a0fabd0e45136f01ce344741379021d7abb4ef55822dc125335b89c9cb5d4b6b246efb6c3ac29d01544bbaa6f2e29201522a5dea1b23ff5f3c600a4529b16fcd30ca778bd9d0d7064e7bebb2db694263659566e2fc2ebd0241c7e10fdce824afb3cdb9ec903207714b1a5899c060e217a04a74419064756c99b8ce00af8f6532a15885d658a7da66a77f3aa1a999700a811e"]) 00:04:41 executing program 2: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) 00:04:41 executing program 5: io_setup(0x8, &(0x7f0000000080)=0x0) (async, rerun: 32) io_setup(0x7, &(0x7f00000000c0)) (rerun: 32) r1 = openat$urandom(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) (async) openat$urandom(0xffffffffffffff9c, &(0x7f0000000100), 0x301cc1, 0x0) io_submit(r0, 0x2, &(0x7f0000000040)=[&(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, 0x0, r1, 0x0, 0x1d}, 0x0]) 00:04:41 executing program 3: r0 = syz_mount_image$ext4(&(0x7f00000000c0)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40046, 0x26, &(0x7f0000000200)=[{&(0x7f0000010740)='\x00\a', 0x2, 0x6}, {&(0x7f00000105e0)="0b000a000c0001022e04060002000000f40302022e2e0000000000000007ff00", 0x20, 0x8}, {&(0x7f0000000080)="0000000000040000000000000000000800000000000000000000000800000000", 0x20, 0x29}, {&(0x7f0000010e80)='\x00', 0x1, 0x100}, {&(0x7f0000010de0)="0c0000000c0001022e000000020000000c0002022e2e00000d0000001000050166696c65300000000e000000d803050766696c653100"/64, 0x40, 0x101}, {&(0x7f0000010d00)="0300"/32, 0x20, 0x200}, {&(0x7f0000010000)="20000000000100000c000000ce0000000f000000010000000000000000000000002000000020000020000000701f1f63701f1f630100ffff53ef010001000000701f1f63000000000000000001600000000000000b000000800000000800000052470000620100000000000000000000000000000000000073797a6b616c6c6572000000000000002f746d702f73797a2d696d61676567656e3234313932303435323000"/192, 0xc0, 0x400}, {&(0x7f00000100c0)="00000000000000000b0000003b3466cc1ea244158e332580de23589c010000000c00000000000000701f1f6300"/64, 0x40, 0x4e0}, {&(0x7f0000010100)="0100000000000500110000000000000000000000040000003c00000000000000", 0x20, 0x560}, {&(0x7f0000010120)="03000000040000000900"/32, 0x20, 0x640}, {&(0x7f0000010140)="030000001300000023000000ce000f0003df0300"/32, 0x20, 0x800}, {&(0x7f0000010160)="fffffffffcff0700000000000000000000000000000000000000000000000080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c65300000000f0000001000050166696c6531000000100000001000050166696c6532000000100000001000050166696c6533000000110000009403090166696c652e636f6c64000000", 0x480, 0xc00}, {&(0x7f0000010600)="00000000000400"/32, 0x20, 0x1800}, {&(0x7f0000010640)="00000000000400"/32, 0x20, 0x2000}, {&(0x7f0000010ea0)="0000000000000000701f1f63701f1f63701f1f62001f000010933555033a0000", 0x20, 0x21e5}, {&(0x7f0000010660)="00000000000400"/32, 0x20, 0x23fd}, {&(0x7f00000106a0)="000000000004000000000000000000000000bcb5d83ba0000000000000000000", 0x20, 0x2c00}, {&(0x7f0000010700)="00000000000400"/32, 0x20, 0x3800}, {&(0x7f0000010720)="00000000000400"/32, 0x20, 0x3c00}, {&(0x7f0000010760)="504d4d00504d4dff701f1f63000000006872757476696b2e632e676f6f676c6572732e636f6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000006c6f6f7032006e75782f746573742f73797a5f6d6f756e745f696d6167655f650500"/128, 0x80, 0x4400}, {&(0x7f00000107e0)="111fc0d901000000803a0900803a090000000000060000000000000005000000", 0x20, 0x4800}, {&(0x7f0000010800)="ffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0300"/1056, 0x420, 0x4c00}, {&(0x7f0000000680)="0400000000000000000000000000000000000000000000004000000000004296cb8c84d5d1668d89d68dde0ce278865064c69259a53886c556b51f0eea354d3bd249d128ecb3743cc2f9288fb1f5cfe8d0703fbe9f313d6823b856337c49240000bc5388fa23a178d7271b6d168114aa95675cc68e0c1f243dfefc54e3efd3f89d0c1a6f564cc3d27ffb8aa613092061aa86a3a79441f8285e299b33f2e91fd4400ca4793a3afb10fe66d8a8ac7c1e5c7aaf521c6f0af1251d88107f3b07220c827c605e4037111c867a2bf18c830934e82287e3f2e4d276a2ad80e47472b834a40791ef6f2b989dfb40f287207f29a38799f4ce6f96cb8d", 0xf8, 0x5400}, {&(0x7f0000000000)="05000000000020040000000000f6ff00008040000000000000", 0x19, 0x5800}, {&(0x7f0000010c60)="0000000000000000010000000000000000000000000000000000000000000000000000000000000008000000000000400000000000000000000000db2406d7c161800000000000007000"/89, 0x59, 0x5c01}, {&(0x7f0000010cc0)="0200"/32, 0x20, 0x6000}, {&(0x7f0000010ce0)="2719c0d901000000803a0900803a090000000000060000000000000005000000", 0x20, 0x6400}, {&(0x7f0000010d20)="0400"/32, 0x20, 0x6c00}, {&(0x7f00000005c0)="05000000000000e6ffff4e6c9880c2333860dfd7000000000000000000000000000000000000000000489449f34e88a81120e056ebe4a525058cdaca132a3aa152bf2430202998db483a1832f4404b6e6c2beb36ca2a6c100e9388bab9a39266f9825bd4bf6daa05a0daa14202f3d33d04af49e6052cb24f9056b7af69fbd93cf824fb9ff4287d5de933c41315c2ce83f5425bd7a08cca36a1730d9ebd02a5a6c290070d0300"/175, 0xaf, 0x7000}, {&(0x7f0000010d60)="00000000000000000100000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000007000"/96, 0x60, 0x7400}, {&(0x7f0000010dc0)="02000000000000000000005522015200"/32, 0x20, 0x7800}, {&(0x7f0000010e20)="000002ea0100000001000000270f240c000000000000000000000000000000000601f8030000000006000000779b539778617474723100000601f00300000000060000007498539778617474723200"/96, 0x60, 0x8000}, {&(0x7f0000010ec0)="ed41000000040000701f1f63701f1f63701f1f6300000000000004000200000000000800050000000af301000400000000000000000000000100000004000000", 0x40, 0x8c80}, {&(0x7f0000010f00)="8081000000180000701f1f63701f1f63701f1f6300000000000001000c00000010000800000000000af303000400000000000000000000000100000012000000010000000100000018000000020000000400000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000008081000000180000701f1f63701f1f63701f1f6300000000000001000c00000010000800000000000af30300040000000000000000000000010000001900000001000000010000001e00000002000000040000001a00"/224, 0xe0, 0x8d00}, {&(0x7f0000010fe0)="c0220000f12f0000701f1f63701f1f63701f1f04000000000000000018000000000008fc000001000a165f04b80774e76f000000000000000c00000005000000", 0x40, 0x9100}, {&(0x7f0000000a00)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x9c00}, {&(0x7f0000011760)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0xcc00}, {&(0x7f00000106c0)="00000000000400"/32, 0x20, 0xd52f}], 0x0, &(0x7f0000002b80)=ANY=[@ANYBLOB="00ab000001000067000022267fa8b19b00000020d3bc0000000000000000000000008b835fe40645872b7f4237bc7fde226917b796ea557a7ce51b9d89dfaf878a5f4719036268555c537dc44d7ee2656bf146b07f290d5c3065b23a030000000319278000540fc42a62946c30505fa015624854f751fafc433831e4cd9701139498c6ff42bf005bf04b323478fdc9fc336c38dab3977be4f6c519cc2841c23c445feb93fadad2f3e98f96bc821cc11b1a86e8b349907a474960a7d0dc8b0c3f600c7c2b9712ff15bf7f6427ee5d7684cb596296563251bc1317099d2badf1c1fc79207851d77b3e0ebfeec730cb83fb0974f9ad5f35d9aee07a3d819bfa55537b686869af"], 0x1) getdents64(r0, &(0x7f0000000900)=""/237, 0xed) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) (async) r3 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r4) (async) statx(r0, &(0x7f00000022c0)='./file0\x00', 0x800, 0x4, &(0x7f0000002300)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r6, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r6, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r7 = openat$smackfs_revoke_subject(0xffffffffffffff9c, &(0x7f0000002400), 0x2, 0x0) (async) r8 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f0000000780)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020e0e4a9446c7670568982b4e020f698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f13905ea23c22624c9f87f9793f50bb546040677b0c5077da80fb982c1e9400e693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a286cecc93e64c227c95aa0b784625704f07a72c29184ff7f0000cef809606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b8588d72ec29c48b45ef4adf634be763289d01aa27ae8b09e00e79ab20b0b8e1148f49faf2ad0000000000000006fa03c6468972089b302d7bf6023cdcedb5e0125ebbc08dee510cb2364149215108333719acd97cfa15a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f4ab87b1beeda7be586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9b081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d605ffff9c4d2ec7c32f2095e63c80aff9fa749edecf1988275b238dfa5e800b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142ba11de6c5d50b83bae616b5054d1e7c13b1355d6f4a8245ffa4997da9c77af4c0eb97fca585ec6bf58351d564beb6d952aab9c70764b0a8a7584090b3433b809bdb9fbd48bc873495cbff8a326eea31ae4e0f7505ebf6c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57000000009700cf0b4b8bc2294133000000000000000000030000000000459ff4b40000000010008bc0d9559711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b98008006c4a00000000ff435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0adb02d9ba96e1010000000000000000007d5ad897ef3b7cda42013d53046da21b40216e14ba2d6ad5656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53b263339863297771429d120000003341bf4a00fca0493cf29b33dcc9ffffffffffffffd39fec2271ff0158929646efd1cf870cd7bb2366fde41f94290c2a5ff870ce5dfd3467decb05cfd9fcb32c8ed1dbd9d10a64c108285e71b5565b1768ee58969ced595229df17bcad70fb4021428ce970275d13b78249788f11f761038b75d4fe32b561d46ea3abe0fa4d30fa94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719197724f4fce1093b62d7e8c7123d8ecbbc55bf404e4e1f74b7eed82571be54c72d978cf906df0042e36acd37d7f9e119f2c06f815312e0cfe222a06f56dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef2acd1fe582786105c7dfa2e5877050c91301bb997316dbf17866fb84d4c7bb481d1b0b911759dc392ad608318c173731efe8950fed1c5560926e90109b598502d3e959efc71f665c4d75cf2458e3542c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca378e676c3e08c1ed43ca8d3d10994c0b58645ac518a75fde7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad05573af5f5b9eec8a9c940093947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d34b5457acf37331766e472391e358c3b377327ac9ecc34f24c9ae153ec60ac0694dc55bff9f5f4df90400000000000000d6b2c5ea1393fdf24285bf16b99c9cc0ad1857216f1a985f369191ae954febb3df464b635197351a5ef0a0fb89d2777399f5874c553aeb3729cffe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f895778cb25122a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003016f1514216bdf57d2a40d40b51ab63e96ec8485b3b8a8c9ae3d060000000000000062eef552fcde2981f48c482bde8a168c3f5db2fea6f26e4a4304e5000000809ecee27defc93871c5f99b355b72d538ba4958ea8e4aa370ac891e10096e7e60fc3541a2c905a1a95e9571bf38ae1981c4238ecaee6f75cd0a6881bd1517a8250df98674152f94e32409e2a3bce109b60000000000000000d6d5210d7560eb92d6a97a27602b81f76386f1535bef1497f92186086e29c6bc5a1fad6ec9a31137abf9a404abde7750898b1bd627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101293373750d1a8fe64680b0a3fc22dd704e4214de5944912d6c98cd1a9fbe1e7d58c08acaf30235b928a31d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76015e6009756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66418d160500000000000000d2a182068e1e3a0e2505bc7f41019645466a000000003bc13c334b47f067bbab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd21081920382f14d12ca3c3431ee97471c7868dcda7eaa69eb7f7f80772fdd11bb1d0d1280fbc22bf73468788df51710d7d31c632fc5ed1762eb0b428ee751c47d8e89fc745a868404a0bf35f0121008b722b1eaa6aedfa1bf2e7ccb2d61d5d76331945e20fa26b8471d42645288d7226bbd9c9e9e1cc9eb3d541e407cc2dae5e690cd628ab84875f2c50ba891cea599b079b4b4ba686fcdf240430a537a395dc73bda367bf12cb7d81691a5fe8c47be395656a297e9df0e71f96756ea5cce7daac4be290159f6bcd75f0dda9de5532e71ae9e48b0ed1254a83186c1526af6fbb869604d51a36a54c832e45b2569dc0d90b075225fde44c4e0973171ad47d6b70ebe660309e1e245b0fdf9743af930cd6db49a47613808bad959719c0000000000378a921c7f7f8433c2e24c7e800003c9e8095e02985f28e678f66422436f949e2ab8f162d7e3f855e378f4a1f40b0c6fb2d4b205aa3270d25ce1f8174af6de8c12260400b6d713acebc5b014e61a543a5a194f9ac18d76b5440e3b1a569ed7aa287378c697f6cafa86966d7ba19e720413267a6ccea9c439671d2c680f2753ca184eeeb843450368acb4383a01d25eb3d1e23e0f2645d1cdfa9fa410632f95a5f622e9f2c66ee7e30393cd7a4d67ff2a49c4f9360984b5c2d4523497e4d64f95f08493564a1df87111c9bf3194fef97dcecc467ace45feeb685c5870d05f88a0f463db88d377442e1349acaf766218b54a9d624778e1c4cba6e6390a9f302c6eb2df7766411bef0ebb5002512bcbf9b24accfecb0f477db103463af2847e6ade5b9e065ec0d0ba58fedae5f08818fea475b169469f9efd131925d98c34b3b47e5c46d121ad5087e1cdee39f5cf21d2e80a64ac97e71cafc29bfb78db090dd12225efeda2e93bf7f6ba7865e9c375a780929d210bf5858e2a4ff8e8d1e8c9cceed07c6312b734c72510d335acc94f76e7078ce4066f1e0ac9429f8013683301277a11e25b248b61180cb6207a0e26757f3f1bfc6c27f3720d1fb74afb17f3b5239bc2243853d5234afb05ed6024e94dee34666c5b5522b54cb433efa54b4e9022533e7c89bdee957dfa9ded9f16fdcd1b681e4c72f32fa3334313e334e2140daec7dcb22f463457a1a5ac230bbded86258206046f556589f5627ab2751eb34d940519f009412098398ad822a8509d2d32da656ac5935e4c7f9503ce4daf13300dfd611528049310544d2e7d1c3e8613926fbe2647e258932592c9123f1c74023144442d09ef90c64950176c666da6b6581091c54beb2379aa70501c42bd9c4e4f426ab5ff2a33767b408ed19e399c33b52abc4ac24da0d4cf07d93029583591c33f0f80513c541581977f2e9735e1edb66fdb2722eb4b0b670ba74fdee2f1a3cf85777af5d8267acaa9d83c23a4b40d0f53dce003c03c5959e405fc4f2c05d3394f014a39caabbeff7c7cadbdc57def7f5f758aa46b6e2fddc779770d7e395c4ac2a136a30e7c0a301dffc5565d7244fb29cd302c36e76221a3c4e21559216c078f06b01885a83da16bf8548776a0ae88dfeccc9ad64d2fe3cfdeb9684b7b7e5c00f7323f8214ed0189539e0e3e34c8e542c82ddbd6a75c1adbedef4d5d69b246a53c0ab802b0161908e748ed9891678c228413bf51b18a25bf776b9d1f1fedf97cf5e7de4455ea359e5796bd60cc415066fc271a2bdb7db13e72d1a99b375ff874037faf6a1d1aacf46a57346d000000000000000085c1b64dd5178485ad0f8557ccae7c06a40e8bd2ce76927bb0923dc380fd153cd2ce1242bc0a6e0fff9cfb70d41b02414730f572ca2a4898426eb6d416ff14aaefebd84bd4000000000000000000dbd064fe868ff4929d489badcf5072c61231bec614423bbf7df2989db587bf49abc6ff4d842309a1fa7f268e2c453cd8b9a746d5c6e820453a377fb09f5799b43c1951f56c211170bc102a3437778676928a1b4bd8ddc8db197d6b63913e6dccc20ccb26bc231f1428502b3279d0aace2caf8c8f5edbfeffe6d5b36439fe0f70b34ad0f1a4cad44c5237a2fff1e8f8e0521313c30a9fb5fc54ae85d19599bb1c2283e3f7bb01a11a1845db6b8eba64b45f1c000000c0c4bef4bf3e1d9b0e1b4e4147d5eb0f9b9bfe80984650dce289524659d70fc7ab8485c054e51ad1bef44c5d6cfaaf7efb61be7c38820a4279d69ff337b0f3f9c2c55de05d1c3682c41f624e735c3ce0a7b0f3d784c96cc57c83e78b336cb4022c19917284534ea9efccef28374885759f39c444d78a3f78ec3bafb4af2e7a64c967c494264c3b36591eb2049ede272a00dc74628a45de9fd219c63f1f0e2e187071f9468f1f4b880ae18459f3790010aff9f89be79e7b81ed89139dd8152e5009fa164f36bce90c661b35022c1cbbdfc9aba07ebed92b94ff9f0e1dbc0a29d5799e3ecc8eb35f791a4fc7db9e97be3f944b2360e3c9a0d2b0ab83db2fc1c3d28efda92828494b88008b9082394c113ec071cdbd8556d7cf7c11236d699da109de535f64e008a175d11e80f96e"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000000)={&(0x7f0000000080)='sched_switch\x00', r8}, 0x10) r9 = syz_io_uring_setup(0x2e2c, &(0x7f0000002440)={0x0, 0x7713, 0x80, 0x2, 0x308}, &(0x7f0000ffd000/0x1000)=nil, &(0x7f0000ffb000/0x4000)=nil, &(0x7f00000024c0), &(0x7f0000002500)) (async) r10 = socket$inet6_udp(0xa, 0x2, 0x0) (async) r11 = syz_open_dev$hidraw(&(0x7f0000002540), 0x3c66, 0x0) r12 = openat$nullb(0xffffffffffffff9c, &(0x7f0000002580), 0x200002, 0x0) (async) r13 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f00000025c0)='./cgroup.cpu/syz0\x00', 0x200002, 0x0) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r14, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r14, &(0x7f00000000c0), 0x10106, 0x2, 0x0) (async) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff}) connect$unix(r15, &(0x7f000057eff8)=@abs, 0x6e) (async) recvmmsg(r15, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r16 = getpid() sched_setscheduler(r16, 0x1, &(0x7f0000001700)=0x4) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000002a00)={0x0, 0x0, 0x0}, &(0x7f0000002a40)=0xc) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000002ac0)=[{{&(0x7f0000000140)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000000e40)="aa72de587546b1dcb6ccf486267fd79ab9afe40265617001f1212e0c15b17356f3d42b6f679ea642934f7b4731ec55d7af5167131a90b3947b5807dc64d01cc61ab1aa49de40f92835c0a889dd2127ef2158934c020ca14d616ab7364407eef46b5208691a8b11270bb4ac058a104a07ef2a838a1f637f6f490b908f9afcdf2602be8ce651ac18d17fb4ca269d25918414e5a36ddec0dab29e1ed27a374773b4943bb5bc80f08b6c92dd2965b8a5bda97ec3998fa2e59e34bc96b68912b4d8f51860d0be39ad6ada43feae5957431593f2f19ee77e9acf8f09056caedda23a4a84a2760675bdabc4773f616ba799", 0xee}, {&(0x7f0000000780)="e3f57e1c34142703848f4231fccc9d74b08f42c032eab6f8d6fd102a9896504dc1dedd5a2f8e9ef93a5edc1135b0796134ce61cb22e407f1cfe7bd1d524ea9e43e753ac11b46cf9f03c9db947a7756d3d59fda7c6e8287ccd182a131273a41fe2b10", 0x62}, {&(0x7f0000000f40)="3e63dfede3fc49e9bdf12842ad46ee599c9ec156197cac21432d2c7119d20bda66a9ea65fdfb62dfa0cfcaaec3496fda235645c1945c329780e75ea3f36c4d35117551b06cb390334b9463c9fab51657b5a08f3c558766fb2fd82940247963b6c06098e3b07ca297c6439bec0b8472f1cac7dbcdfcd1c889381e672ecef510f1e31f6d66ad034f52016bee25a1f7b805ee954f777c1d9555e604a8450f5b23ac94d849076713fdb4c6ad516d1ee834931f079c370a0987caca7d4d2d53f9e6f1b63513ea082ac23af603a4dda0110eb418663969876545703bafe8efa1513ddfec68a335aad53d206b", 0xe9}, {&(0x7f0000001040)="1a6c22ee0e8ce0eb19ffb883bd39247a8a93091e3855441019a4e7c516e5b4dc8486f8e7c5f42fd373097b218477a00c4513a75f5b8dbfef622f2e1f78370158e18171b21df9f866ac2ee7b8b750", 0x4e}], 0x4, 0x0, 0x0, 0x200000d0}}, {{&(0x7f00000010c0)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000002280)=[{&(0x7f0000001140)="d26c5d97cea7b03bdcf31420a129c363d4388d4a", 0x14}, {&(0x7f0000001180)="1651929380b792b88cb421f2b364090a7b405e02904bae1926b5726c20b9ba5e4571eafcc0ced3c8db9d52c01dbd5fc0e2de1deb8da650ccfa34c1445f6dd8cde8f442c41eacdd43216ca51864087fbbc0515ef6160ee9a464a704a0516ea270cda409cc36a037161211702e4bfb842032eab3bc4ac5f4d4312c4221443c7d1663a692b9dfb58686be2f8eb0853f2c9ae6ab6e6d10358c664c5ca6ac80827cc85c757792a39cb781bdfcc24141a95e0e8b26c00c3f4c5caa3b7031eecf2067905dc7a8bb23bbebaa3c3418f5833392aa4bb09a3c0556", 0xd6}, {&(0x7f0000001280)="6d24c31ebbd2821d0c4404b5196c1dc83111404c1b2ebb69643168e6050b48a6d666c88f2f4f8e0fdfd0606255b39e151440eb1d7e75753ae04c47aad76d3247c809a858af94e133bb64d865460c0fb10966ef0eb780fef9317d6f6fb1999aa4a99a2488a6f67e2710ad12fc7f8a6f3960e1c593b16f43bc0e963a7c239a739299e8c3adbaef84640661ba19c2a3c2ed6b0f179d063550c23bc3f201cac03eb2491b79b515c5026d5f3eada23c7c2ae71b346ce37e3381bb4147a4c793cdedbf28b6f3f5f57bdb83d54dc0aaf022f40981067beaa1ed3ddcab8fe3b591ab4362a816c1f9c466983205b053165d85b2ef4c89d5d595364c44394b2eb40a81e0d910a82271a5b7094a57f5ade464b1eb1455d053f13e33098375eec575673665162edd402704d27edb9b260f420974aaf8f2745ff4df8eea2719cca20da9b2fad40e4e89bfd6a2e26230f64909617c843d8e3ba337ada02f0c6666a3deda24d824f6f3a17cfa56356c18a9a8586112ad6c100731f33057315a1a24cdb42643ed4372ed2cef748886954ea217f20edb2727b48b9b28b6c46ac4c308f105c8dbc9775fd82fd158657bc1ad3883c0d5929bdc0509393715d5a7e18b4bcb54f209765ea95f94dabb4b1b75fe056550a5d7ef5964401bfc75b13c2de1cb63cf9494869c0e2258ea8c11bbe2e577c684eda7bd54d3d661bd7de59883e6c2fa190b32b6de316dcd1253ac9af3d7f32ae43b903f0f67c02e629e3f9db5b9c506e370cafe48ba0250d66e06907ffb0891622de9f362d96f1fe986125ea49ba8655b9eb4af1a29e0447f5c6febb1d0d5ef5df953ee2fec04d2bd5280ed92fc6dfba067b6e2f26151595f092fbd3c506a1bbc4af8ec0936363fbcabb6bf999e8090ad64aab884d3d8966042bf66102a7b862268c45801835d0bab64eac266e1954cee5f4123f0315de44bbc98f826299c6e3711d78dd3dd4fe7e751575fac3e1da7355a6f3645762992df2d93fcb88e9e484bde6243d7406ff3454aff072a0c388289ea186a894227eed5ebf915428e9ce526725681f2ab26c05f20dcd3f7a5d87991442b5a06704c8c76828053f8c193653795361ad2139e514c45d467db3a7bbbbeb2285067c55bb523dd7ac27302796ff60665d4804e36ecf1c3ace33b0fdfbd220d704c9c789b69e3501e456355efbfc3e051a4fca4ffb6d9b5a8b424fdfe89f9ded92dffd80f7677745bcb4587aa515f5253cb38c2b543989313b3332a16e083f3b00f1be7765e438f29915bc0adc39a220ea2abf832cd76ee2de67fddcc8930d46299664f0d1de24d464cf35d2b9fad6ae47eb12bd59492ebeca45e8ccc7a485ceafc84c67fcce13d87c47755e675094808dc474ca81cc3375fed17dd5b536e8ecba5b5c56d5e68ced09456cc232a916511401e14de4fa49a55bed94a80a1ae023bcee1cadbf718c59b9e812f28994e23e0085f10a983a14b2a61df448de758400c95c432a7790d98614a65e19fcc6195a182b4a8e0572bd519a7a43f6648038a8c01e3a2a72179037f8ec8b3d563aacacbc51f72da58e7c9e8a22b265008caf69730d66972120986509b8c1828e3c48a1ee995bf067114b61211850a8d8dc12a519b863a138cb29e2392af3bbb790d6de713e88b0660e456edce2d032608624ed228cb8b3db129e6d9deb654cc2a8283c392856b22ca6f633bd8496058cc07644dd6e00385349ec2a928f5c8a789c54148f432ba053c7798fd2162f8e694d9b3008cb01fe3085f829e701892647dbb33e6cc2912d118c252913776eb19128ad28801727bf9290c3d927be875b8b8b3858f0eac30b1c249702448dc9ed75ef3bd5a267e89a289b13548e3ef7e8cd8c5ba84e4d53325edc30ca08b569e6329b77a002ac4dc96b64325eb5b3640258cbb5a0b7fad0962074155d77633a12c67a7d624d2366cfe50db671ce163be8b879e0011694375bbbe58ddee2bd508d3e695edda86aef1752a4f8f798514ff7a839426ffd1eabc2705505e815fa18ef9de877eba838c83f4eab0039c51231dc2eae9b3f3cecccb411667d19afedcb5dec6095cb1c26a95e1993fcb2e8160f3b2b81e5a2f859996471dc7b176dd530ba92b7c765063dba81949cba12958e10fbb80b7e855ab85e2ec59f78c691d4de41c94521ecc4d1c3630b366099f8494a28bc77d6f513a2d48108c15f8e1f007b4ef01149e8114d52bfd9300d0349c9ec313e0a6fb9aa27326a666c010235fc04ad1fb67916039a943928dbb94a1f6587ac9f48ec9ba1e3fa22b3b5098e4c4a6b7e2d38ff628ec4a89007bccdcf358a55c3a7a8b88de84e2dff0a09b06c8fc25f0a5e4c8ab96d59beaeec856b927530c75d4347c36708f2e8f49a0ff68371dc57a487e0e2128e27492dda108cfec4a1277f2a4a95243d9f666dcdbb499a5c77873258de181e3c9383edd4a9cb76d27160498a350274546827106f65051ddb38bee8174e36ff5b5c0ac22f9bceb4425190e84b699648938eee208fda0b96f575c08181dcf89112137c294163fd16b2072190e9f1815b152b83f019f16a2e2e8e5ed6e922bca46313db27dae4ebf21d6b9af3eb5425c92b4cedb67752bfdf196958458ed93a7874ac1562f05e85e803bf225c88d2f4e5d894c7a5c54e04dcb18e2718c54c616cb2d9a38cc3878e214cc395f6f95591e05d41dfc4b4aebf125d0f67cbb2e38e5ae5d0d8569a1d5e4e9b77ab2c96b9e4c8f6b09c1d8b2d4f6447ef2709e8bae7c61356bc5458cc5eac46d5dea0703d819a0d6ebd6991ff7df4620ec3fde997acd247946f5b6b742d07a098604fbc48ef2ea273ef3fd35288ae3422feaea2d902baef437f79b5585c9d7f1b30672159be241e072e7b272583d4be6b412ed0b3453e816bce3cdb8013d0b93741ef202d1c257dded79d8fce7dacf47d551df17fbc9d81ce79ad8406b452342dc98a58dec5b4fdfc785cf4560c59c74e262dbba2b92c06e5ce82533165556d2a650040fd6e9530d2daeb02692527cce1f0eb91aacfb9b7ac07c2ec25e80d260ba6d3809c31851f876aac5e2315ad21b8129608434db32daff1b904b1a208dc3940a5d6129d3882184b4eb2ab2f943aa024cad30fcff8538af9b4f944676ed9cf8bb652c54699ba0d797009524a9af6b2540bd96f90006eb5fec5266fcea37eb7d26ba692259510759369652be0bcd9ff92ce8c36f24c886112dbb54ef50def0b8031f676400badd8381989bbebce79c6cfb848036c3c4b5724f89ba4144885d5da6b7965e782dde7c98be8151a70483079aacd383b58c901ccbc475b35402e64c6ef4303f410f5b8dee90299248f9af315e0c88fde2100f8cea7e8b31a4ebb5836718741eb5cbaf5165e6c5ec86acb2dbbf6ed399e70b8acfc1c4f0f8fe72efe82eaed2305e4e54b9c11c45644069b84d280064d409498fabf35913a152318bcbbfdea3e1c68f01b56790bc490bb62247edf8f108b11d4978b3b9d488333436d0cad9dc7e5a88d2b30bf030e1128ecf0e84102c431f9736d9a4cf79773875e8ca94d516b5ffd524e7ab363e5721bb2e683854f34fd1b65f8dc2d86c36a8c34751c398870ffe90d148eae0904b34ced160568fcee3c63525a2c80d5d86832a458774fe5d99d799b08c0c6f809a8765749d3c40316483f173d433500152ccb08b87025e3ac66edcca831901ec00969731d1379c845ced364752294315f36a39acb5a374a76b3ec282f73e5cd6c97c8a9fc871724dc707cb87921e1ee702f81a21d1cdc14095f1c4f804a8bdaccbc7454840c846aa9b087a35ee9202878a88834550f3b5edbf23e911147b39b9d93dc713eda6790936a135eceada9aa7129fde5d734bfccedb5cbe4bf829da4c26050154458ae486d81ad5484ee1ce4eb0b373483d468ed34494170de09f8600d34954f6112b190af2e8dad43f78f6505ee5e45038c6997ec6d7f23a1379ec8a657a52c593fff4948695373f6d977e270738d1c78dc583e3387f670dbda35d320735ee4f85450af85e9fc2f99dde726b6bd273e29b57a5628bb58a4aa96a860e0d1f6caab770c6ce5e8ef4eef83f6df03ddf875035f09e018517cbb9c8ebc502d2db07a6a73a23aa6b30f335d280f99e1b52dae8457f07d1c5f4e5471f519f708e077b21bb7da145f52181e1c3c81e7100cdae91b635f886ebab6308237fbc95cf8437b4a45c7cb2cfcf3376fb93066a5ec4f34a7a061a98be01518651d0a0872dbf51b91ce21f96b5e6e78e0dbd1ad24a99f5e982f35c14e4266f8e0a6a26328f196bc0703daa62dd8d24c30139b2275205d51fb6efcffad081ea903ccf34405c15072c3d30b7a230e4216beecd4d75be99b1238f6ddc72ef0f68ea4a5dc75f399508df4c9df2c703cfb541b28c1cd56a7d1eb9e45b5bc0f733c3aaa4d31dca8c2600dc1bf04af4334115170d82d6bdb6d067be6d4ff7d6ccef5f3dd8d8d0b8240cb1e7a7c4bf82c7bb3d6d82d6484b85fc208e1aa698bd8205e07f414101932681c7772486b16b54b667ba7b6f53f23c3e9303241ab867b3d1ec05fbc4b51f0898ff7fc853b9557422f3b6316795afff0930ed571804e7f092522bb45769d0e6e863bbbbed53e19f8a88e3a470b7a37f47e02287dd22b5877adfeb36ca69e69a90e136b2c99df71d5f5c5e210df2b1bb125fbcb4262a6986c79f383e3af38b641a19c3c530f9059b056dd46ad67746df3b727a783afe93feef2f1995c819747bc0edf6ad74f4b48dc458b6cc18ac7713acde4526da71365c1bdd96e0388cf01fbf742fe4fd654ea8d20803229b247baf717739a3b46e11cc267c2890fa0c3b370995fabd61e47e6b042eccd456ffd7f1f5d33ead2aa7f7012ec9fa10e0085081734ba5d3259ef65d45fe7d5eb4ac6c65996462cfc9e93c21de011124017e6011a8e84b74eae816f6a8bfe54469b5f2ff8fe8347067543f6c3fdcbba1f669678a06afd8277bc37018e4c825abadf68523c0d1a93bc3be18d685d2a83544e046abfb699ba0292317d7085ba2b3553c6ab34822986baa4f89a2816780dddda2c135f2c6031931d8fa39ba3d9acb45a5514f586493c9e0c8b806ed8cbfa40b5ea40531f58f5d97d0b479e57d3cd6af9b640d70aa70ea0988d8dbfc526221f24b3b917f6d4f83d03d4ec480dedfd09360dff5f4de2a1fb3f736cf936244d356db8191b69db5695a579ef5ed926af5de6fcbd5e92c246899d4d38dd4ee792a9bb6396df9d41fdc9ff2abc7b6707b862db572cd9f2c2f012fe5962a21efa2517c7e399366767f521abe1c7e37f60f93fbbe34307866569b6bc0b50655e597be1422d9feb0778ff82fe91cfaa9ac5e92ea42ef63aa95ca7ebf384575f9640967ac411c06ea38f52fec2f13ce3e3f4d1888361c853efe8db55891d6e8c30d576768744402b3c8ebeb2500c3ab953899e8728ca1cb65e01e1b1d19c98d8ce5f2f235158c3ab31320811cc168428fd0312f5bafddece6537d6d7f4c582e58d0b407409535f4eea65c398700a638375b747013a3064df03b2275ad3ac41563b81c1ac31fc5fa0eb7a45a19b9933c3d67cc1b4a9dbbbc043115ef68ed558d250727330f52eb8bc2dfd9985c4e6197e68aba91d613cae64b3efafa4dd64ec6a44d50b4131dd43241cf112d667d8e683224113e76f72daa0a9f1933c02b8b43fb5f8709a037f63dc57324b77fea2cb93422b9eebeec13cfd2ef25baa026ea4bc4a3bd3e9a3ac362af5068ef1cb6958a7477c3bd1419a7b66a4c08bf182951f2d04f644f96e848c56e8972779e6f877ea8a952c0", 0x1000}], 0x3, &(0x7f0000002600)=[@rights={{0x18, 0x1, 0x1, [r0, 0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0x0, r4, r5}}}, @rights={{0x2c, 0x1, 0x1, [r6, r0, r7, r2, r8, r9, r2]}}, @rights={{0x38, 0x1, 0x1, [r0, r10, r11, r1, r1, r12, r13, r14, r2, r15]}}, @rights={{0x18, 0x1, 0x1, [r2, r0]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xee01}}}, @rights={{0x14, 0x1, 0x1, [r2]}}, @cred={{0x1c, 0x1, 0x2, {r16, 0x0, 0xee01}}}], 0x110, 0x20004080}}, {{&(0x7f0000002740)=@abs={0xe63201edaa46f9dc, 0x0, 0x4e23}, 0x6e, &(0x7f00000029c0)=[{&(0x7f00000027c0)="c8cc43f03906f9b3a84cfa067bd543a1da19c7586a7ee5942a8b04408665b5201575549a668cb4b41364c2ffc1bd4011a9525b4d5dec0d37ddb73d0a6d4aad7cd3", 0x41}, {&(0x7f0000002840)="ca637bcd49ca7cb8a4de2392470662770973d2a79351f7d5cd0b87479330a9c59dfd4fe0d1642cb851427e790315f2504054aeeac7b53c11aab846041e433df9ad0e327b094aece9c027d20689ddbc86b6812516d2dd699b98649ac4d5ee4dcd575edcabeec80e515261eaa17d4e64c5be3d95e8facad5cbea8784a292445966f41114b51d68fad8fe2000d117e7a32960881fddaa37728ce62997717ed52bcdd644358a360998c06ec22ab3", 0xac}, {&(0x7f0000002900)="b676c816c37865", 0x7}, {&(0x7f0000002940)="bd7a20525ce63d7a7cfa094442de45795e54fc0a3f262268723fbd2eb5b46e4583cf41cb8ebe888863b26967563bde1f3cc1d92edf368b733a43fae58720d80d8cf8be", 0x43}], 0x4, &(0x7f0000002a80)=[@cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xee01, r17}}}, @rights={{0x14, 0x1, 0x1, [r0]}}], 0x38, 0x4000080}}], 0x3, 0x20008010) ioctl$FS_IOC_GETVERSION(r2, 0x80087601, &(0x7f0000000040)) [ 281.785596][ T3115] EXT4-fs (loop3): unmounting filesystem. [ 281.789160][T14113] ------------[ cut here ]------------ [ 281.790615][T14113] WARNING: CPU: 1 PID: 14113 at include/linux/gfp.h:221 alloc_charge_hpage+0x5a4/0x938 [ 281.793191][T14113] Modules linked in: [ 281.794191][T14113] CPU: 1 PID: 14113 Comm: syz-executor.4 Not tainted 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 [ 281.796934][T14113] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 281.799655][T14113] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 281.801722][T14113] pc : alloc_charge_hpage+0x5a4/0x938 [ 281.803166][T14113] lr : alloc_charge_hpage+0x5a4/0x938 [ 281.804566][T14113] sp : ffff8000139a3930 [ 281.805640][T14113] x29: ffff8000139a3930 x28: 0000000020200000 x27: 0000000000000000 [ 281.807835][T14113] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000001 [ 281.809959][T14113] x23: 0000000000000001 x22: 0000000000000000 x21: 00000000003c24ca [ 281.812045][T14113] x20: ffff0001153bea00 x19: ffff8000139a3a30 x18: ffff80000db78158 [ 281.814157][T14113] x17: ffff80000ddda198 x16: ffff80000dc18158 x15: ffff00011c08cec0 [ 281.816214][T14113] x14: 0000000000000000 x13: 00000000ffffffff x12: ffff00011c08cec0 [ 281.818349][T14113] x11: ff8080000856ac98 x10: 0000000000000000 x9 : ffff80000856ac98 [ 281.820450][T14113] x8 : ffff00011c08cec0 x7 : ffff8000081f1e48 x6 : 0000000000000000 [ 281.822639][T14113] x5 : 0000000000000080 x4 : ffff000117fbce80 x3 : 0000000000000200 [ 281.824799][T14113] x2 : ffff000117fbce80 x1 : 0000000000000000 x0 : 0000000000000000 [ 281.826899][T14113] Call trace: [ 281.827791][T14113] alloc_charge_hpage+0x5a4/0x938 [ 281.829112][T14113] collapse_file+0xd0/0x2ffc [ 281.830298][T14113] hpage_collapse_scan_file+0x938/0xb64 [ 281.831794][T14113] madvise_collapse+0x328/0x864 [ 281.833086][T14113] madvise_vma_behavior+0x148/0x7f4 [ 281.834446][T14113] do_madvise+0x438/0x5c0 [ 281.835615][T14113] __arm64_sys_madvise+0x2c/0x40 [ 281.836913][T14113] el0_svc_common+0x138/0x220 [ 281.838134][T14113] do_el0_svc+0x48/0x164 [ 281.839257][T14113] el0_svc+0x58/0x150 [ 281.840299][T14113] el0t_64_sync_handler+0x84/0xf0 [ 281.841595][T14113] el0t_64_sync+0x190/0x194 [ 281.842771][T14113] irq event stamp: 1534 [ 281.843870][T14113] hardirqs last enabled at (1533): [] _raw_spin_unlock_irqrestore+0x48/0x8c [ 281.846668][T14113] hardirqs last disabled at (1534): [] el1_dbg+0x24/0x80 [ 281.849023][T14113] softirqs last enabled at (448): [] local_bh_enable+0x10/0x34 [ 281.851772][T14113] softirqs last disabled at (446): [] local_bh_disable+0x10/0x34 [ 281.854208][T14113] ---[ end trace 0000000000000000 ]--- 00:04:41 executing program 0: r0 = syz_genetlink_get_family_id$SEG6(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$SEG6_CMD_DUMPHMAC(0xffffffffffffffff, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x34, r0, 0x400, 0x70bd2c, 0x25dfdbfe, {}, [@SEG6_ATTR_ALGID={0x5, 0x6, 0x3f}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0x4}, @SEG6_ATTR_ALGID={0x5, 0x6, 0x5}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0xff}]}, 0x34}, 0x1, 0x0, 0x0, 0x881}, 0x8040) 00:04:41 executing program 0: r0 = syz_genetlink_get_family_id$SEG6(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$SEG6_CMD_DUMPHMAC(0xffffffffffffffff, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x34, r0, 0x400, 0x70bd2c, 0x25dfdbfe, {}, [@SEG6_ATTR_ALGID={0x5, 0x6, 0x3f}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0x4}, @SEG6_ATTR_ALGID={0x5, 0x6, 0x5}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0xff}]}, 0x34}, 0x1, 0x0, 0x0, 0x881}, 0x8040) 00:04:41 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="02030002120000000000000000000000050006001c0000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) 00:04:41 executing program 2: sendmmsg$alg(0xffffffffffffffff, &(0x7f0000003540)=[{0x0, 0x0, 0x0}], 0x1, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x5, 0x12, r0, 0x0) mount$9p_xen(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', &(0x7f0000000180), 0x80000, &(0x7f00000001c0)={'trans=xen,', {[{@access_user}, {@version_9p2000}], [{@func={'func', 0x3d, 'CREDS_CHECK'}}, {@subj_role={'subj_role', 0x3d, '{{'}}, {@func={'func', 0x3d, 'FILE_MMAP'}}]}}) read$alg(r0, &(0x7f0000000000)=""/254, 0xfe) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) 00:04:41 executing program 5: symlinkat(&(0x7f00000002c0)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00', 0xffffffffffffff9c, &(0x7f0000000240)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00') sync() unlinkat(0xffffffffffffff9c, &(0x7f0000000000)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00', 0x0) sync() [ 281.902934][T14120] loop3: detected capacity change from 0 to 512 00:04:41 executing program 0: r0 = syz_genetlink_get_family_id$SEG6(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$SEG6_CMD_DUMPHMAC(0xffffffffffffffff, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x34, r0, 0x400, 0x70bd2c, 0x25dfdbfe, {}, [@SEG6_ATTR_ALGID={0x5, 0x6, 0x3f}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0x4}, @SEG6_ATTR_ALGID={0x5, 0x6, 0x5}, @SEG6_ATTR_HMACKEYID={0x8, 0x3, 0xff}]}, 0x34}, 0x1, 0x0, 0x0, 0x881}, 0x8040) [ 281.925902][T14113] Unable to handle kernel paging request at virtual address 0000000000002818 [ 281.932754][T14126] ------------[ cut here ]------------ [ 281.934192][T14126] WARNING: CPU: 0 PID: 14126 at include/linux/gfp.h:221 alloc_charge_hpage+0x5a4/0x938 [ 281.936791][T14126] Modules linked in: [ 281.937826][T14126] CPU: 0 PID: 14126 Comm: syz-executor.2 Tainted: G W 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 00:04:41 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000000200)) sendmsg$key(r0, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="0203000212000000000000000000000005000600200000000a000000fffffffcfe800010000000000000000000000000000000000000000002000100000000000000070b0000000005000500000000000a0000000001000000000000000000000000ffff000000001fc87b71d7e69cf702000800080000003700000000000000020009"], 0x90}}, 0x0) [ 281.940976][T14126] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 281.943667][T14126] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 281.945792][T14126] pc : alloc_charge_hpage+0x5a4/0x938 [ 281.947239][T14126] lr : alloc_charge_hpage+0x5a4/0x938 [ 281.948708][T14126] sp : ffff80001428b930 [ 281.949821][T14126] x29: ffff80001428b930 x28: 0000000020200000 x27: 0000000000000000 [ 281.951988][T14126] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000001 [ 281.952252][T14113] Mem abort info: [ 281.954201][T14126] x23: 0000000000000001 x22: 0000000000000000 x21: 00000000003c24ca [ 281.954217][T14126] x20: ffff000117f36f40 x19: ffff80001428ba30 x18: 00000000000002af [ 281.959642][T14126] x17: ffff80000c0ed83c x16: 0000000000000000 x15: 0000000000000000 [ 281.961813][T14126] x14: 0000000000000002 x13: 0000000000000003 x12: 0000000000040000 [ 281.964006][T14126] x11: 000000000003cbc7 x10: ffff800017b35000 x9 : ffff80000856ac98 [ 281.965166][T14113] ESR = 0x0000000096000006 [ 281.966175][T14126] x8 : 000000000003cbc8 x7 : ffff80000856a680 x6 : 0000000000000000 [ 281.966191][T14126] x5 : 0000000000000000 x4 : ffff00011b2be280 [ 281.967729][T14113] EC = 0x25: DABT (current EL), IL = 32 bits [ 281.969573][T14126] x3 : 0000000000000200 [ 281.969582][T14126] x2 : ffff00011b2be280 x1 : 0000000000000000 x0 : 0000000000000000 [ 281.969596][T14126] Call trace: [ 281.974368][T14113] SET = 0, FnV = 0 [ 281.976176][T14126] alloc_charge_hpage+0x5a4/0x938 [ 281.976191][T14126] collapse_file+0xd0/0x2ffc [ 281.976199][T14126] hpage_collapse_scan_file+0x938/0xb64 [ 281.976212][T14126] madvise_collapse+0x328/0x864 [ 281.976223][T14126] madvise_vma_behavior+0x148/0x7f4 [ 281.980334][T14113] EA = 0, S1PTW = 0 [ 281.980626][T14126] do_madvise+0x438/0x5c0 [ 281.980638][T14126] __arm64_sys_madvise+0x2c/0x40 [ 281.980648][T14126] el0_svc_common+0x138/0x220 [ 281.982257][T14113] FSC = 0x06: level 2 translation fault [ 281.983387][T14126] do_el0_svc+0x48/0x164 [ 281.983403][T14126] el0_svc+0x58/0x150 [ 281.984769][T14113] Data abort info: [ 281.985796][T14126] el0t_64_sync_handler+0x84/0xf0 [ 281.985809][T14126] el0t_64_sync+0x190/0x194 [ 281.985818][T14126] irq event stamp: 2330 [ 281.985822][T14126] hardirqs last enabled at (2329): [] _raw_spin_unlock_irqrestore+0x48/0x8c [ 281.987721][T14113] ISV = 0, ISS = 0x00000006 [ 281.988229][T14126] hardirqs last disabled at (2330): [] el1_dbg+0x24/0x80 [ 281.989518][T14113] CM = 0, WnR = 0 [ 281.990903][T14126] softirqs last enabled at (734): [] _stext+0x2e4/0x37c [ 281.990916][T14126] softirqs last disabled at (613): [] ____do_softirq+0x14/0x20 [ 281.990927][T14126] ---[ end trace 0000000000000000 ]--- [ 281.992165][T14113] user pgtable: 4k pages, 48-bit VAs, pgdp=000000015bc53000 [ 282.014282][T14113] [0000000000002818] pgd=080000015ad57003, p4d=080000015ad57003, pud=080000015ac34003, pmd=0000000000000000 [ 282.015027][T14120] EXT4-fs: failed to create workqueue [ 282.021534][T14120] EXT4-fs (loop3): mount failed [ 282.030706][T14113] Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP [ 282.032592][T14113] Modules linked in: [ 282.033605][T14113] CPU: 1 PID: 14113 Comm: syz-executor.4 Tainted: G W 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 [ 282.036658][T14113] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 282.039266][T14113] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 282.041273][T14113] pc : __next_zones_zonelist+0x24/0x58 [ 282.042697][T14113] lr : prepare_alloc_pages+0x1bc/0x244 [ 282.044137][T14113] sp : ffff8000139a3860 [ 282.045205][T14113] x29: ffff8000139a3860 x28: 0000000020200000 x27: 0000000000000000 [ 282.047249][T14113] x26: 0000000000000000 x25: ffff80000d3a9000 x24: 0000000000000008 [ 282.049293][T14113] x23: ffff8000084c1994 x22: 0000000000000000 x21: ffff8000139a38e4 [ 282.051379][T14113] x20: 00000000003c24ca x19: ffff8000139a38b8 x18: ffff80000db78158 [ 282.053525][T14113] x17: ffff80000ddda198 x16: ffff80000dc18158 x15: ffff00011c08cec0 [ 282.055742][T14113] x14: 0000000000000010 x13: 0000000000000000 x12: ffff00011c08cec0 [ 282.057827][T14113] x11: 0000000000000000 x10: 0000000000000081 x9 : 0000000000000000 [ 282.059915][T14113] x8 : 0000000000000000 x7 : ffff8000084c0640 x6 : 0000000000000000 [ 282.062018][T14113] x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000000 [ 282.064144][T14113] x2 : ffff00011c08e0c8 x1 : 0000000000000003 x0 : 0000000000002810 [ 282.066207][T14113] Call trace: [ 282.067046][T14113] __next_zones_zonelist+0x24/0x58 [ 282.068371][T14113] __alloc_pages+0xa4/0x1fc [ 282.069533][T14113] alloc_charge_hpage+0x318/0x938 [ 282.070827][T14113] collapse_file+0xd0/0x2ffc [ 282.072066][T14113] hpage_collapse_scan_file+0x938/0xb64 [ 282.073519][T14113] madvise_collapse+0x328/0x864 [ 282.074876][T14113] madvise_vma_behavior+0x148/0x7f4 [ 282.076251][T14113] do_madvise+0x438/0x5c0 [ 282.077406][T14113] __arm64_sys_madvise+0x2c/0x40 [ 282.078687][T14113] el0_svc_common+0x138/0x220 [ 282.079893][T14113] do_el0_svc+0x48/0x164 [ 282.080995][T14113] el0_svc+0x58/0x150 [ 282.081270][T14126] Unable to handle kernel paging request at virtual address 0000000000002818 [ 282.082088][T14113] el0t_64_sync_handler+0x84/0xf0 [ 282.085488][T14113] el0t_64_sync+0x190/0x194 [ 282.086561][T14126] Mem abort info: [ 282.086642][T14113] Code: 6b01011f 54ffffa8 1400000d 91004000 (b9400808) [ 282.087690][T14126] ESR = 0x0000000096000006 [ 282.089274][T14113] ---[ end trace 0000000000000000 ]--- [ 282.092946][T14126] EC = 0x25: DABT (current EL), IL = 32 bits [ 282.096815][T14126] SET = 0, FnV = 0 [ 282.098260][T14126] EA = 0, S1PTW = 0 [ 282.100457][T14126] FSC = 0x06: level 2 translation fault [ 282.103113][T14126] Data abort info: [ 282.105299][T14126] ISV = 0, ISS = 0x00000006 [ 282.106631][T14126] CM = 0, WnR = 0 [ 282.116109][T14126] user pgtable: 4k pages, 48-bit VAs, pgdp=000000015bcac000 [ 282.120304][T14126] [0000000000002818] pgd=0800000155196003, p4d=0800000155196003, pud=080000015b07a003, pmd=0000000000000000 [ 282.597980][T14113] Kernel panic - not syncing: Oops: Fatal exception [ 282.599717][T14113] SMP: stopping secondary CPUs [ 283.687811][T14113] SMP: failed to stop secondary CPUs 0-1 [ 283.689426][T14113] Kernel Offset: disabled [ 283.690560][T14113] CPU features: 0x00000,040e0108,4c017203 [ 283.692086][T14113] Memory Limit: none [ 284.208341][T14113] Rebooting in 86400 seconds..