Source: https://www.osfi-bsif.gc.ca/Fra/Docs/cpp16.pdf