Virginia posts $21B surplus in new report