Updated from commit cbc2179887aa71a0716770874c936e7ce309062b.
Updated from commit d4c9b25b2fb80a12355b7e4ae352162345df09bf.
Updated from commit 9e3154220c3f072c8906b80b0e963fec6594a2df.