(cherry picked from commit05b7251d51) (cherry picked from commitaf0c9b2cee) (cherry picked from commitfaedafd2b4) (cherry picked from commit67b63a3e10)
(cherry picked from commit05b7251d51) (cherry picked from commitaf0c9b2cee) (cherry picked from commitfaedafd2b4) (cherry picked from commit67b63a3e10)