Question: Reimplement the Undo Redo Handler in drawer6 so that it uses one doubly linked list of States instead of two stacks of States. The handler maintains a reference to the current State in the list, which matches the state of the canvas. An undo action moves the reference to the previous state in the list and a redo action moves the reference to the next state. A save-state action causes every state after the current state to be deleted and replaced with a new state, which becomes the current state.