(cherry picked from commit 600106f8a1c711274be290609053238ccd7cf603)
(cherry picked from commit 20727bad022d2f4f0c58e6191714d60027b6e17f)