(cherry picked from commit bebf10d2455cad1aa8985553417d4d74a61150ee) (cherry picked from commit ab7072838f8bb848b5f7b3b10ed36f7480da8683) (cherry picked from commit 7b5e12229d72f87667ba91c9259d35abd8f1b5c6)
(cherry picked from commit bebf10d2455cad1aa8985553417d4d74a61150ee) (cherry picked from commit ab7072838f8bb848b5f7b3b10ed36f7480da8683) (cherry picked from commit 7b5e12229d72f87667ba91c9259d35abd8f1b5c6)