(cherry picked from commit 6dc57047) (cherry picked from commit e6407ca2) (cherry picked from commit d442b879) (cherry picked from commit 4ac578db)