Source: https://www.math.univ-paris13.fr/~rousselin/fichiers/enseignement/shell/Partiel2019_corr.pdf