(cherry picked from commit 16aac738581606c46b4938ff97b80c633f3f07c5)
(cherry picked from commit 9793734fdc73c0f3707ffcd74e1a0605eeebd77a)