(cherry picked from commit 77acea0b187ec7f29658ca420dfde14aa2b4135a)
(cherry picked from commit 41a09289cda3137f96c69c69c924af34f0e64865)