(cherry picked from commit 57659422abbf6d9bf52e6e27fca775254bb77a56) (cherry picked from commit e3a52804b03d646f15048c078f8c5292d5cbecfa)
(cherry picked from commit 57659422abbf6d9bf52e6e27fca775254bb77a56) (cherry picked from commit e3a52804b03d646f15048c078f8c5292d5cbecfa)