Generates an