Walmart gets $2.9 billion tariff refund as it cuts prices