(cherry picked from commit 63838184)
(cherry picked from commit 6b6b2c36)
(cherry picked from commit 24f30293)