Solutions by Darren Bottin.