Synced with the source at 564877e6a070342c331b8a710f609df79b8324a9.