(cherry picked from commit 05ecf5cc5126d75cc9c32a56a71ac1b791629b5c)
(cherry picked from commit 5236d8521f779cb74037bdaf57999a2fd77b0caa)