(cherry picked from commit a2e06e9e650642518b926a61f624a2c7a49c0988) (cherry picked from commit cfa2f4d4c6e35d7b9ddd2e1da2e59f7287859516)
(cherry picked from commit b2c43fb2a67965d68d3d35b72302b0cddb5aca23)