Contributed by Soimadou Ibrahim-Aliamane
Contributed by Étienne Aubert Bonn
Contributed by Nick Adam