(cherry picked from commit 103685269e632dba60c717f5168a99481695a6ab)
(cherry picked from commit d796af204093535d862d91cdc694312dfbfbab5e)