(cherry picked from commit 89a140c25adf435064e0dab095f5bf0331afbad8)
(cherry picked from commit 405f6487c03fa838fe84909de5b8f560b9d04fa5)