(cherry picked from commit 490f6e2e6aa3f220cc98f257a3ca3b2bea48fb80) (cherry picked from commit 8f3f90d4078d9d072d8ad4ccc3be35963b7435d6) (cherry picked from commit 2b0da546c9dae40fbc1b2654387be80a17c1848f)