Contributed by NaN
Contributed by Ignasi Àvila Padró
Contributed by Ramdwin Gonzalez Otero
Contributed by MPTY
Contributed by Colin Jäck