Yоu wоrk fоr а compаny thаt is having issues where many employees use passwords that are too weak. Your task is to help by writing a program that reads a list of employee passwords from a file and checks how strong they are. The program will: - read passwords from a text file (you can assume the input passwords.txt file is not erroneous) - use a function to check if a password conforms to the official company rules - write an analysis.txt back to disk with the password and whether or not it was OK Use only the features we've covered in this course: from the first 7 chapters. Use exception handling for file input / output by including a try - except block. You can check for more than one exception if you wish, but a generic Exception check should be made at a minimum. Functions to be coded in addition to a main() function: Tip: Don't try to do all these at once, I suggest getting the contents of the passwords.txt read in first, then print it to confirm you can access each password. Then, move ahead with the other tasks. 1. read_passwords() - takes a file name string and returns a list of string; you'll need to connect to the file name passed, read the list in line by line and return the list (each line holds one employee password). 2. satisfies_policy() - takes a password string, pword, and returns a true if pass has the following characteristics; false otherwise. If you can't remember how to do one of these checks do the ones you know how to do. a) pword must be a length of at least 8 b) pword must contain exactly three $ or three # characters c) pword must contain at least 1 number 3. write_report() - takes a output_file_name string a list of passwords and returns nothing; the function should create a file connection via open() to the output_file_name, iterate over each line of the file (each line will be a password), then you'll call your satisfies_policy() function on that password to determine if it's strong enough or not. - If the password is OK, you'll write to the file the password followed by the string "(OK)" - If the password is not OK as determined by your satisfies_policy() function, then you'll write to the file the password followed by an "(X)" -- meaning it violates company policy; see below for a model output examples. Don't forget that you'll need to put a new line escape character of "n" (without the quotes) after each line that you write to the file. Here's pseudocode for the main() function: main: call the read_passwords("passwords.txt") function (save the list of passwords read_passwords() returns into a variable) call the write_report("analysis.txt", list-of-read-passwords saved from the above call) When done, the analysis.txt file will contain each password and its status, such as the following where (X) is a bad password and (OK) is a good password: WeakPass (X) WeakPass1## (X) Strong$Pass1## (OK) short1## (X) NoDigits### (X) 1234567$$$ (OK) abc123$$$ (OK) Pa$$$w0rd (OK) Cash###123 (OK) mix#of$chars#9 (OK) #####999 (OK) lettersONLY (X) ###7$abc (OK) You should create passwords.txt (the input file for this assignment) using the below list. Simply copy / paste this list into passwords.txt and then access it using your read_passwords() function. WeakPass WeakPass1## Strong$Pass1## short1## NoDigits### 1234567$$$ abc123$$$ Pa$$$w0rd Cash###123 mix#of$chars#9 #####999 lettersONLY ###7$abc