Synced with the source at fd1a76ec7f15bcfb68e831e70fe8abe2ad2b6ed2.