Synced with the source at 587d4118bea5022dd7ad46e27ab14c44e4e9d08b.