rebase to 40fdf3e

[ci skip]