Objectives 1. [10 pts] Exception Handling: Throw and catch exceptions for the following: a. When a user inputs a wrong tab number. b. When a user inputs a wrong action: After you read the wrong action makes sure you read the rest of the input and ignore them. 2. [10 pts] All arrays should be dynamic and sizes of them should not be fixed. 3. [30 pts] Each class you write must have the following methods in addition to others required to process it the input file: a. Default Constructor b. Initializer Constructor c. Copy Constructor d. Destructor e. Overloaded ‘=’ operator f. Overloaded ostream operator 4. [30 pts] Design and implement the program according to the project description. 30 pts are distributed as follows: a. [10 pts] Implement the move browser tab method in browserTab class. b. [10 pts] Implement the remove method in browserTab class. c. [10 pts] Change the URL on the existing tab 5. [20 pts] Document your project thoroughly as the examples in the textbook. This includes but not limited to header comments for all classes/methods, explanatory comments for each section of code, meaningful variable and method names, and consistent indentation. Project Description This project is an extension of the previous project (Project One). Make sure that you implement all the new methods as described above. The new actions are M (for Move Before), R (for Remove), and C (for Change). The input for each will be as follows (given as examples): 10 M 8 //This line means that tab 10 is moved before tab 8. 6 R //Remove tab 6 5 C http://www.cnn.com/ //Change the url for tab 5 to http://www.cnn.com/. Constraints 1. In this project, the only header you will use is #include <iostream. 2. None of the projects is a group project.