Synced with the source at 57386fd740e32591d5595ee99dbd768c0af46ca7.