(cherry picked from commit 5b4fb066)
(cherry picked from commit 5e0a8b65)
(cherry picked from commit bc922e54)