Fill in the grid so that every row, column and coloured region contains a different number.
Created by Shaw Tan. Source code availiable on GitHub.