(cherry picked from commit ea59390307ad1fb145ce0bb5b619fb8b537f524a)
(cherry picked from commit cf5cc7dfdfc2184209bdd2993f60fb49b1e0cefe)