Merge upstream to get recent features and fixes.