For 70 Points Continue to develop your Scanner class with the following public methods. public void maxVRun(String filename) This method prints to the specified file an array of the same shape as the scanner array, preserving the elements of each maximal vertical run in the scanner array. All other array elements are replaced by ‘-’ characters. Make sure you print exactly one blank space in between consecutive array elements. public void maxVRun() This method prints to the console instead of a file. public void maxHRun() This method prints to the console instead of a file. public boolean shapeEquals(Scanner scan) Returns true only if the two Scanner objects (“this” and scan) have identical dimensions. public boolean equals(Scanner scan) Returns true only if the two Scanner objects (“this” and scan) are identical. A vertical run is a consecutive sequence of identical array elements within a single column of the array. A vertical run cannot wrap around the end of one column and continue on into the next column. A maximal vertical run is a vertical run whose length is greater than or equal to the length of any other vertical run in the array. Two Scanner objects s1 and s2 have the same shape if s1.shapeEquals(s2) returns true. Here is a sample scanner array: 3 0 2 2 5 1 3 3 2 2 0 0 3 9 9 2 1 5 1 1 2 1 9 5 3 9 2 7 7 5 For this scanner array maxVRun should produce the following output: 3 - - 2 - - 3 - - 2 - - 3 - - 2 - 5 - - - - - 5 - - - - - 5 Note: If your program is not operating correctly at this level, you will not get credit for any work done above this level.