Pull in all the changes from upstream

sdfds