(cherry picked from commit 5fc9b9c4471c95655b626e1842742a1eecf0b17d)
(cherry picked from commit db09cf1eff4cefc0adb9b3243b645626a5f1f9c7)