(cherry picked from commit e78afc10ea562f7adc25fe49b6af71e8be3034cf)
(cherry picked from commit b1290897a8fc307900037f87d0a0f833450a6b53)