(cherry picked from commit e5d4b0d25dd2a8469e4c203c2223c29d6f77c148)
(cherry picked from commit dd508cd24c1e6b59962222e6e46d3b96fad3d267)