CSC 15 Lab 7: 1. Finish Horse Race. The Horse Race program MUST be done before spring break. 2. Write the following additional functions. a. def countcaps(S): This function should count and return the number of captial letters in string S. For example, countcaps("aBc3De") should return 2. b. def allupper(S): This should be a boolean function that returns True if all alphabetical letters in S are upper-case, and False otherwise. For example, allupper("abCd") should return False. Note that unlike the "lowercase" example done in class, you're not making the letters upper-case, just checking if they're already upper-case. c. Write a function to generate a random string of characters. For this, first generate a number for the length, then construct the string one character at a time. For each character, you can generate a random integer between ord("A") and ord("Z"), then convert it into a character. You can limit the function to generate only capital letters. c2. Write a function to generate random strings with just the characters "A", "C", "G" and "T". This time, the length of the string should be determined by a parameter to the function (part c above can be a function that does not take any paramters). d. One simple way to scramble a string is to "rotate the characters". For example, we can rotate each character 3 slots forward: A becomes D, B becomes E, C becomes F, etc.., W becomes Z, X becomes A (wrapping around), Y becomes B, and Z becomes C. If we rotate every character, then a string such as "AWE" will become "DZH". Write a function def scramble(S,r): That returns the scrambled form of string S by rotating each character r spots forward. So scramble("AWE",3) should return "DZH". To make things simpler, you may assume that the string contains only upper-case letters. e. Write a function to descramble a string to recover the original.