Cherry pick 66455600c7e5a45dd5bf7dfd8266c33603d5c253
Cherry pick ff4a1b2468edb3184b1f03ea4e9fbd2f3b2107b3