Many of you have probably selected or created an avatar. pernaps for a video game or a profile image. There are also general-purpose avatar creators online, such as avatarmaker.com. These tools can be used to create an cvator for use on various online accounts. In this assignment, you will be writing a console-based avatar creation tool. The program that you build will allow the user to build a custom avatar, or select from 3 pre-designed ones. The avatars that this program will create will not be of just a face, but rather, an avatar body. All of the interaction for this program will happen on the command-line. Part of the purpose of this PA is to get you to use and better understand functions, parameters, f-statements, and while-loops. Name your program avatar Program Behavior The program will begin with a title and then a prompt to select / create an avatar. L NH ANH Select on Avatar or create your own This prompt will walt user input. At this point the user can do one of several things Type exit) to end the program without printing out an avatar. Type custom to begin the custom avatar creation interface. Choose from one of three pre-defined avatars. The names of the three pre-defined avatars are Deft, Jane, and Chris, if anything other than exit), custon, Jeff, Jane, or Chris is entered, the program will just repeat the question until a valid input is entered. After the name is entered the avatar is printed and then the program ands. Jeff, Jane, and Chris are shown below. If one of these is selected, you should print out this exact character and then the program can end. Jeff Jano Chris IV 1 "TV 1 OTTTTI ---ITTO TX www- TX- J. 1-X-1 -X 100 H// MI H/ 11/ M 17 VH now WH Take a close look at the above avatars. There are mary similarities, but also some key differences. The differences of note are. . All of then have a similar cap on, but one is a top-hat one is a com to the right, and the other is facing forward They all have the same basic face structure, but with two types of hair (single-quotes and double-quotes) showing below the hot and differing eyes, . Similor neck/torso style, but with varying height Similar arms, but with varying characters used Similar legs, but with varying length and shoes of susten is selected, then the program should prompt the user for a number of look customization options. There are 7 total option to select, and the program should ask for the inputs one by one. The prompts should look as follows example values shown after the question markal Select an votar or create your own Answer the following in to create custom water Het style right Character for eyes tong moir Craio Ar style Torse length Le length (1-1) Shoe Look P This sequence of inputs should produce this avatar: BPPPPPPPPO 1-X. 1-X-1 1-X-1 // 1 Each of the options control something about the look of the printed avatar. All of the inputs are collected, and then the avatar is printed using the values. More test cases of custom avatars will be provided via the gradescope tests. Custom Input Values This section explains what each input values controls. Each of the inputs have an expected format. However, you do not need to validate all of these inputs. You may assume that the user will enter a value that follows the rules for all of them Hat Style Can be left, right, both or front. If an invalid value in entered the default in front, These correspond to left right both front Hair The user should enter either True or False This determines wether or not the avatar should have long hair or short hair. The table shows what True/False correspond to: True False : Eye Character Pretty simple-controls which character should be used for the eyes. The user should enter just one character, not a long string Arm Style This input should be a single character, as with the eyes. The character will be used for the arm of the avatar, 8 is always used for the hand, and 1salways used for the body portion. The entered character should only change the actual or component Torso Length Controls the length (height of the forno. The value entered should be any positive integet. Below cre examples of various torso lengths X X 11 IX Leg Length Controls the length height of the legs. The value entered should be a positive integer between 1 and 5. Below are examples of the various leg length possibles 1 2 HE WW 1/ 1 MI w === 1 11 W Shoes The input here should be a string that is exactly 5 characters long. That is the amount of space allocated for shoes. There can be empty-spaces in the string. The shoe style provided should be used for both the left and right shoe. Development Strategy Perhaps you've noticed by now, but there are a lot of "chunks" of predefined and custom avatars that are similar. For example, all of the avators have foto sections, but the height of them varles. All of the avators have the same face structure, but the eyes and hair can change. You should write a function that is responsible for printing och "chunk of the cvator. Thus, your program must have at least functions to receive full point. A main function and a function for each of the following chunks: the hot foon, arm, torso, and legs. The parameters of each function should be the values that control the look. For example, you could write a function called def hat direction, where the direction is a string indicating which stylo to print. Within the function, you can have if-statements that allow different styles to be printed. For the face, you could create a function named Gel face her eyes. This function will have the standard face shape print out, but use the hair and eyes parameters to change those specific parts of the face. You should end up with a function for each part of the body See the differ tool and/or Gradescope for examples of complete runs. Restrictions You are not allowed to use any string multiplication on this program, except for the legs of the avatar. For the forso height and legs, you should try to use while loop rather than hard-coding. Also, all of your code should be organized into functions. The only code that may not be in a function is a call to meto You are not allowed to have any global variables. You also should not use the exit function for this PA