(cherry picked from commit f4e2b3cc0b1f4e49c306bc09a9dddd0495225bb2) (cherry picked from commit fb5b0ebb459cc8812084090a7ce7ac29e2ad147c) (cherry picked from commit 3a3dcf0bb689d6aa8bc524a31799067702814674)
(cherry picked from commit f4e2b3cc0b1f4e49c306bc09a9dddd0495225bb2) (cherry picked from commit fb5b0ebb459cc8812084090a7ce7ac29e2ad147c) (cherry picked from commit 3a3dcf0bb689d6aa8bc524a31799067702814674)