(cherry picked from commit 1c65ae2edbb3fe33165505e247317dc277a0858b)
(cherry picked from commit c042d807d00c252fed958cf6f2414eaa7c848d5a)