Mitigating Both Covariate and Conditional Shift for Domain Generalization