(cherry picked from commit c72e16b576835b7748e20ab3e5cce5e1f505a65f)
(cherry picked from commit 2d1533194967ebc472e9fb236f917e49e1aa52ab)