(cherry picked from commit 6b17c3de353d7202d4b47b7cc437063f4d542ad3) (cherry picked from commit 41d10eb1) (cherry picked from commit d850af4b)