Synced with the source at d26272e32ecd19a9bc1b534e1cb52c892fced838.