(cherry picked from commit979f054702) (cherry picked from commitaf48544b75) (cherry picked from commit814cd21e22) (cherry picked from commit7014d0994b)
(cherry picked from commit979f054702) (cherry picked from commitaf48544b75) (cherry picked from commit814cd21e22) (cherry picked from commit7014d0994b)