last updated March 2022 but still mostly accurate, i think