(cherry picked from commite20790c956) (cherry picked from commitedb761b08c) (cherry picked from commitb3e93d1b0f) (cherry picked from commit56628dffc7)
(cherry picked from commite20790c956) (cherry picked from commitedb761b08c) (cherry picked from commitb3e93d1b0f) (cherry picked from commit56628dffc7)