Full Code of stepp/stanford-cpp-library for AI

master f7cb08751e57 cached
2285 files
31.0 MB
8.3M tokens
14345 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (33,026K chars total). Download the full file to get everything.
Repository: stepp/stanford-cpp-library
Branch: master
Commit: f7cb08751e57
Files: 2285
Total size: 31.0 MB

Directory structure:
gitextract_uknl7n05/

├── .gitignore
├── Archived/
│   ├── Autograder_QtCreatorProject/
│   │   ├── Autograder_QtCreatorProject.pro
│   │   ├── lateDays.txt
│   │   ├── lib/
│   │   │   └── readme.txt
│   │   ├── res/
│   │   │   ├── inputpanel-mainfunc.xml
│   │   │   ├── myinput.txt
│   │   │   └── stylecheck-mainfunc-cpp.xml
│   │   └── src/
│   │       ├── mainfunc.cpp
│   │       ├── readme.txt
│   │       └── test/
│   │           ├── _collectionTests.cp_
│   │           ├── collection-test-basicgraph.cpp
│   │           ├── collection-test-common.h
│   │           ├── collection-test-dawglexicon.cpp
│   │           ├── collection-test-deque.cpp
│   │           ├── collection-test-graph.cpp
│   │           ├── collection-test-grid.cpp
│   │           ├── collection-test-hashmap.cpp
│   │           ├── collection-test-hashset.cpp
│   │           ├── collection-test-lexicon.cpp
│   │           ├── collection-test-linkedhashmap.cpp
│   │           ├── collection-test-linkedhashset.cpp
│   │           ├── collection-test-linkedlist.cpp
│   │           ├── collection-test-map.cpp
│   │           ├── collection-test-priorityqueue.cpp
│   │           ├── collection-test-queue.cpp
│   │           ├── collection-test-set.cpp
│   │           ├── collection-test-sparsegrid.cpp
│   │           ├── collection-test-stack.cpp
│   │           ├── collection-test-vector.cpp
│   │           ├── exceptionTests.cpp
│   │           ├── guiTests.cpp
│   │           ├── imageDiffTests.cpp
│   │           ├── pipeTest.cpp
│   │           ├── serverTest.cpp
│   │           ├── stringTests.cpp
│   │           ├── systemTests.cpp
│   │           ├── testcases.h
│   │           └── urlTests.cpp
│   ├── JavaBackEnd/
│   │   ├── eclipseproject/
│   │   │   ├── .classpath
│   │   │   ├── .idea/
│   │   │   │   ├── codeStyleSettings.xml
│   │   │   │   ├── compiler.xml
│   │   │   │   ├── copyright/
│   │   │   │   │   └── profiles_settings.xml
│   │   │   │   ├── dictionaries/
│   │   │   │   │   └── stepp.xml
│   │   │   │   ├── inspectionProfiles/
│   │   │   │   │   ├── Project_Default.xml
│   │   │   │   │   └── profiles_settings.xml
│   │   │   │   ├── misc.xml
│   │   │   │   ├── modules.xml
│   │   │   │   ├── vcs.xml
│   │   │   │   └── workspace.xml
│   │   │   ├── .project
│   │   │   ├── .settings/
│   │   │   │   └── org.eclipse.jdt.core.prefs
│   │   │   ├── StanfordCPPLib_JavaBackEnd.iml
│   │   │   ├── doc/
│   │   │   │   ├── acm/
│   │   │   │   │   ├── graphics/
│   │   │   │   │   │   ├── G3DRect.html
│   │   │   │   │   │   ├── GCanvas.html
│   │   │   │   │   │   ├── GCanvasInterface.html
│   │   │   │   │   │   ├── GCompound.html
│   │   │   │   │   │   ├── GContainer.html
│   │   │   │   │   │   ├── GImage.html
│   │   │   │   │   │   ├── GLabel.html
│   │   │   │   │   │   ├── GLine.html
│   │   │   │   │   │   ├── GLineGroup.html
│   │   │   │   │   │   ├── GMath.html
│   │   │   │   │   │   ├── GObject.html
│   │   │   │   │   │   ├── GOval.html
│   │   │   │   │   │   ├── GPoint.html
│   │   │   │   │   │   ├── GRectangle.html
│   │   │   │   │   │   ├── GResizable.html
│   │   │   │   │   │   ├── GScalable.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── gui/
│   │   │   │   │   │   ├── DoubleField.html
│   │   │   │   │   │   ├── Event.html
│   │   │   │   │   │   ├── IntField.html
│   │   │   │   │   │   ├── JButtonGroup.html
│   │   │   │   │   │   ├── JFontChooser.DialogCancelAction.html
│   │   │   │   │   │   ├── JFontChooser.DialogOKAction.html
│   │   │   │   │   │   ├── JFontChooser.ListSearchTextFieldDocumentHandler.ListSelector.html
│   │   │   │   │   │   ├── JFontChooser.ListSearchTextFieldDocumentHandler.html
│   │   │   │   │   │   ├── JFontChooser.ListSelectionHandler.html
│   │   │   │   │   │   ├── JFontChooser.TextFieldFocusHandlerForTextSelection.html
│   │   │   │   │   │   ├── JFontChooser.TextFieldKeyHandlerForListSelectionUpDown.html
│   │   │   │   │   │   ├── JFontChooser.html
│   │   │   │   │   │   ├── JListOptionPane.html
│   │   │   │   │   │   ├── JPlaceholderTextField.html
│   │   │   │   │   │   ├── JStringList.html
│   │   │   │   │   │   ├── TableLayout.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── io/
│   │   │   │   │   │   ├── ConsoleModel.html
│   │   │   │   │   │   ├── IOConsole.html
│   │   │   │   │   │   ├── SimpleScanner.html
│   │   │   │   │   │   ├── StandardConsoleModel.html
│   │   │   │   │   │   ├── SystemConsoleModel.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── program/
│   │   │   │   │   │   ├── AbstractConsoleProgram.html
│   │   │   │   │   │   ├── AsciiArtProgram.html
│   │   │   │   │   │   ├── CommandLineProgram.html
│   │   │   │   │   │   ├── ConsoleProgram.html
│   │   │   │   │   │   ├── DialogProgram.html
│   │   │   │   │   │   ├── GraphicsProgram.html
│   │   │   │   │   │   ├── GraphicsProgramInterface.html
│   │   │   │   │   │   ├── HeadlessGraphicsProgram.html
│   │   │   │   │   │   ├── Program.html
│   │   │   │   │   │   ├── ProgramInterface.html
│   │   │   │   │   │   ├── ProgramMenuBar.html
│   │   │   │   │   │   ├── ProgramStartupFlags.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   └── util/
│   │   │   │   │       ├── ErrorException.html
│   │   │   │   │       ├── FileChooserFilter.html
│   │   │   │   │       ├── MediaTools.html
│   │   │   │   │       ├── PatchingClassLoader.html
│   │   │   │   │       ├── RandomGenerator.html
│   │   │   │   │       ├── SoundClip.html
│   │   │   │   │       ├── package-frame.html
│   │   │   │   │       ├── package-summary.html
│   │   │   │   │       └── package-tree.html
│   │   │   │   ├── allclasses-frame.html
│   │   │   │   ├── allclasses-noframe.html
│   │   │   │   ├── constant-values.html
│   │   │   │   ├── deprecated-list.html
│   │   │   │   ├── help-doc.html
│   │   │   │   ├── index-all.html
│   │   │   │   ├── index.html
│   │   │   │   ├── javazoom/
│   │   │   │   │   └── jlgui/
│   │   │   │   │       └── basicplayer/
│   │   │   │   │           ├── BasicController.html
│   │   │   │   │           ├── BasicPlayer.html
│   │   │   │   │           ├── BasicPlayerEvent.html
│   │   │   │   │           ├── BasicPlayerEventLauncher.html
│   │   │   │   │           ├── BasicPlayerException.html
│   │   │   │   │           ├── BasicPlayerListener.html
│   │   │   │   │           ├── package-frame.html
│   │   │   │   │           ├── package-summary.html
│   │   │   │   │           └── package-tree.html
│   │   │   │   ├── overview-frame.html
│   │   │   │   ├── overview-summary.html
│   │   │   │   ├── overview-tree.html
│   │   │   │   ├── package-list
│   │   │   │   ├── script.js
│   │   │   │   ├── serialized-form.html
│   │   │   │   ├── stanford/
│   │   │   │   │   ├── cs106/
│   │   │   │   │   │   ├── audio/
│   │   │   │   │   │   │   ├── Accidental.html
│   │   │   │   │   │   │   ├── Note.html
│   │   │   │   │   │   │   ├── Pitch.html
│   │   │   │   │   │   │   ├── SplClip.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEvent.Type.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEvent.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEventListener.html
│   │   │   │   │   │   │   ├── StdAudio.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── autograder/
│   │   │   │   │   │   │   ├── GuidedAutograder.ReflectionPanel.html
│   │   │   │   │   │   │   ├── GuidedAutograder.StudentProgramRunnerThread.html
│   │   │   │   │   │   │   ├── GuidedAutograder.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── collections/
│   │   │   │   │   │   │   ├── AbstractMultimap.html
│   │   │   │   │   │   │   ├── AbstractTable.html
│   │   │   │   │   │   │   ├── BasicGraph.html
│   │   │   │   │   │   │   ├── Edge.html
│   │   │   │   │   │   │   ├── Graph.html
│   │   │   │   │   │   │   ├── GraphColor.html
│   │   │   │   │   │   │   ├── Grid.html
│   │   │   │   │   │   │   ├── HashBasedTable.html
│   │   │   │   │   │   │   ├── HashMultimap.html
│   │   │   │   │   │   │   ├── Lexicon.html
│   │   │   │   │   │   │   ├── Multimap.html
│   │   │   │   │   │   │   ├── Table.html
│   │   │   │   │   │   │   ├── TreeBasedTable.html
│   │   │   │   │   │   │   ├── TreeMultimap.html
│   │   │   │   │   │   │   ├── Vertex.Event.html
│   │   │   │   │   │   │   ├── Vertex.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── diff/
│   │   │   │   │   │   │   ├── Diff.Difference.Type.html
│   │   │   │   │   │   │   ├── Diff.Difference.html
│   │   │   │   │   │   │   ├── Diff.html
│   │   │   │   │   │   │   ├── DiffCollection.Difference.html
│   │   │   │   │   │   │   ├── DiffCollection.html
│   │   │   │   │   │   │   ├── DiffGui.html
│   │   │   │   │   │   │   ├── DiffImage.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── gui/
│   │   │   │   │   │   │   ├── ClipboardUtils.html
│   │   │   │   │   │   │   ├── GuiUtils.html
│   │   │   │   │   │   │   ├── JComboGroupBox.html
│   │   │   │   │   │   │   ├── ListOptionPane.html
│   │   │   │   │   │   │   ├── ResizeListener.html
│   │   │   │   │   │   │   ├── WindowCloseKeyListener.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── io/
│   │   │   │   │   │   │   ├── ExtensionFileFilter.html
│   │   │   │   │   │   │   ├── IORuntimeException.html
│   │   │   │   │   │   │   ├── IOUtils.html
│   │   │   │   │   │   │   ├── LimitedPrintStream.ExcessiveOutputException.html
│   │   │   │   │   │   │   ├── LimitedPrintStream.html
│   │   │   │   │   │   │   ├── OutputCapturer.html
│   │   │   │   │   │   │   ├── ReaderInputStream.html
│   │   │   │   │   │   │   ├── ResourceUtils.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── junit/
│   │   │   │   │   │   │   ├── Assert.html
│   │   │   │   │   │   │   ├── ComparisonFailureEnhanced.html
│   │   │   │   │   │   │   ├── JUnitListener.html
│   │   │   │   │   │   │   ├── JUnitUtils.html
│   │   │   │   │   │   │   ├── TestCategory.html
│   │   │   │   │   │   │   ├── UnitTestType.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── net/
│   │   │   │   │   │   │   ├── BackEndServer.html
│   │   │   │   │   │   │   ├── Downloader.html
│   │   │   │   │   │   │   ├── NetworkManager.html
│   │   │   │   │   │   │   ├── Request.html
│   │   │   │   │   │   │   ├── SimpleClient.html
│   │   │   │   │   │   │   ├── SimpleServer.SimpleServerException.html
│   │   │   │   │   │   │   ├── SimpleServer.html
│   │   │   │   │   │   │   ├── SimpleServerListener.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── program/
│   │   │   │   │   │   │   ├── CommandLineProgramMarty.html
│   │   │   │   │   │   │   ├── ConsoleProgramMarty.html
│   │   │   │   │   │   │   ├── ProgramUtils.html
│   │   │   │   │   │   │   ├── ResizableProgram.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── reflect/
│   │   │   │   │   │   │   ├── ClassUtils.BetterClassLoader.html
│   │   │   │   │   │   │   ├── ClassUtils.ClassComparator.html
│   │   │   │   │   │   │   ├── ClassUtils.ExtensionFilter.html
│   │   │   │   │   │   │   ├── ClassUtils.html
│   │   │   │   │   │   │   ├── CompilerErrorException.html
│   │   │   │   │   │   │   ├── ReflectionRuntimeException.html
│   │   │   │   │   │   │   ├── ReflectionUtils.FieldNameComparator.html
│   │   │   │   │   │   │   ├── ReflectionUtils.MethodNameComparator.html
│   │   │   │   │   │   │   ├── ReflectionUtils.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── CollectionUtils.html
│   │   │   │   │   │       ├── ConstantUtils.html
│   │   │   │   │   │       ├── ExceptionUtils.html
│   │   │   │   │   │       ├── OperatingSystem.html
│   │   │   │   │   │       ├── ProcessUtils.html
│   │   │   │   │   │       ├── RandomGenerator.html
│   │   │   │   │   │       ├── RecursionUtils.html
│   │   │   │   │   │       ├── Stanford.html
│   │   │   │   │   │       ├── StringUtils.html
│   │   │   │   │   │       ├── SystemProperties.html
│   │   │   │   │   │       ├── XmlUtils.XmlRuntimeException.html
│   │   │   │   │   │       ├── XmlUtils.html
│   │   │   │   │   │       ├── package-frame.html
│   │   │   │   │   │       ├── package-summary.html
│   │   │   │   │   │       └── package-tree.html
│   │   │   │   │   ├── karel/
│   │   │   │   │   │   ├── Event.html
│   │   │   │   │   │   ├── HeadlessKarel.html
│   │   │   │   │   │   ├── HeadlessSuperKarel.html
│   │   │   │   │   │   ├── Karel.html
│   │   │   │   │   │   ├── KarelControlPanel.html
│   │   │   │   │   │   ├── KarelDirection.html
│   │   │   │   │   │   ├── KarelInterface.html
│   │   │   │   │   │   ├── KarelProgram.State.html
│   │   │   │   │   │   ├── KarelProgram.html
│   │   │   │   │   │   ├── KarelWorld.html
│   │   │   │   │   │   ├── SuperKarel.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   └── spl/
│   │   │   │   │       ├── AutograderInput.html
│   │   │   │   │       ├── AutograderInput_addButton.html
│   │   │   │   │       ├── AutograderInput_addCategory.html
│   │   │   │   │       ├── AutograderInput_removeButton.html
│   │   │   │   │       ├── AutograderInput_removeCategory.html
│   │   │   │   │       ├── AutograderInput_setColumns.html
│   │   │   │   │       ├── AutograderInput_setVisible.html
│   │   │   │   │       ├── AutograderUnitTestGUI.html
│   │   │   │   │       ├── AutograderUnitTest_addTest.html
│   │   │   │   │       ├── AutograderUnitTest_catchExceptions.html
│   │   │   │   │       ├── AutograderUnitTest_clearTestResults.html
│   │   │   │   │       ├── AutograderUnitTest_clearTests.html
│   │   │   │   │       ├── AutograderUnitTest_isChecked.html
│   │   │   │   │       ├── AutograderUnitTest_setChecked.html
│   │   │   │   │       ├── AutograderUnitTest_setTestCounts.html
│   │   │   │   │       ├── AutograderUnitTest_setTestDetails.html
│   │   │   │   │       ├── AutograderUnitTest_setTestResult.html
│   │   │   │   │       ├── AutograderUnitTest_setTestRuntime.html
│   │   │   │   │       ├── AutograderUnitTest_setTestingCompleted.html
│   │   │   │   │       ├── AutograderUnitTest_setVisible.html
│   │   │   │   │       ├── AutograderUnitTest_setWindowDescriptionText.html
│   │   │   │   │       ├── Base64.InputStream.html
│   │   │   │   │       ├── Base64.OutputStream.html
│   │   │   │   │       ├── Base64.html
│   │   │   │   │       ├── Clipboard_get.html
│   │   │   │   │       ├── Clipboard_set.html
│   │   │   │   │       ├── DiffImage_compareImages.html
│   │   │   │   │       ├── DiffImage_compareWindowToImage.html
│   │   │   │   │       ├── DiffImage_show.html
│   │   │   │   │       ├── File_getTempDirectory.html
│   │   │   │   │       ├── File_openFileDialog.html
│   │   │   │   │       ├── GBufferedImage.html
│   │   │   │   │       ├── GBufferedImage_create.html
│   │   │   │   │       ├── GBufferedImage_fill.html
│   │   │   │   │       ├── GBufferedImage_fillRegion.html
│   │   │   │   │       ├── GBufferedImage_load.html
│   │   │   │   │       ├── GBufferedImage_resize.html
│   │   │   │   │       ├── GBufferedImage_save.html
│   │   │   │   │       ├── GBufferedImage_setRGB.html
│   │   │   │   │       ├── GBufferedImage_updateAllPixels.html
│   │   │   │   │       ├── GCompound_add.html
│   │   │   │   │       ├── GFileChooser_showOpenDialog.GFileChooserFileFilter.html
│   │   │   │   │       ├── GFileChooser_showOpenDialog.html
│   │   │   │   │       ├── GFileChooser_showSaveDialog.html
│   │   │   │   │       ├── GInteractor.html
│   │   │   │   │       ├── GInteractor_addActionListener.html
│   │   │   │   │       ├── GInteractor_getAccelerator.html
│   │   │   │   │       ├── GInteractor_getFont.html
│   │   │   │   │       ├── GInteractor_getMnemonic.html
│   │   │   │   │       ├── GInteractor_isEnabled.html
│   │   │   │   │       ├── GInteractor_removeActionListener.html
│   │   │   │   │       ├── GInteractor_requestFocus.html
│   │   │   │   │       ├── GInteractor_setAccelerator.html
│   │   │   │   │       ├── GInteractor_setBackground.html
│   │   │   │   │       ├── GInteractor_setEnabled.html
│   │   │   │   │       ├── GInteractor_setFont.html
│   │   │   │   │       ├── GInteractor_setIcon.html
│   │   │   │   │       ├── GInteractor_setMnemonic.html
│   │   │   │   │       ├── GInteractor_setText.html
│   │   │   │   │       ├── GInteractor_setTextPosition.html
│   │   │   │   │       ├── GInteractor_setTooltip.html
│   │   │   │   │       ├── GObject_remove.html
│   │   │   │   │       ├── GObject_setAntialiasing.html
│   │   │   │   │       ├── GOptionPane_showConfirmDialog.html
│   │   │   │   │       ├── GOptionPane_showInputDialog.html
│   │   │   │   │       ├── GOptionPane_showMessageDialog.html
│   │   │   │   │       ├── GOptionPane_showOptionDialog.html
│   │   │   │   │       ├── GOptionPane_showTextFileDialog.html
│   │   │   │   │       ├── GRadioButton.html
│   │   │   │   │       ├── GRadioButton_create.html
│   │   │   │   │       ├── GRadioButton_isSelected.html
│   │   │   │   │       ├── GRadioButton_setSelected.html
│   │   │   │   │       ├── GSlider.html
│   │   │   │   │       ├── GSlider_getMajorTickSpacing.html
│   │   │   │   │       ├── GSlider_getMinorTickSpacing.html
│   │   │   │   │       ├── GSlider_getPaintLabels.html
│   │   │   │   │       ├── GSlider_getPaintTicks.html
│   │   │   │   │       ├── GSlider_getSnapToTicks.html
│   │   │   │   │       ├── GSlider_setMajorTickSpacing.html
│   │   │   │   │       ├── GSlider_setMinorTickSpacing.html
│   │   │   │   │       ├── GSlider_setPaintLabels.html
│   │   │   │   │       ├── GSlider_setPaintTicks.html
│   │   │   │   │       ├── GSlider_setSnapToTicks.html
│   │   │   │   │       ├── GTable.html
│   │   │   │   │       ├── GTableAdapter.html
│   │   │   │   │       ├── GTableEvent.html
│   │   │   │   │       ├── GTableListener.html
│   │   │   │   │       ├── GTable_autofitColumnWidths.html
│   │   │   │   │       ├── GTable_clear.html
│   │   │   │   │       ├── GTable_clearFormatting.html
│   │   │   │   │       ├── GTable_create.html
│   │   │   │   │       ├── GTable_get.html
│   │   │   │   │       ├── GTable_getColumnWidth.html
│   │   │   │   │       ├── GTable_getSelection.html
│   │   │   │   │       ├── GTable_resize.html
│   │   │   │   │       ├── GTable_select.html
│   │   │   │   │       ├── GTable_set.html
│   │   │   │   │       ├── GTable_setCellAlignment.html
│   │   │   │   │       ├── GTable_setCellBackground.html
│   │   │   │   │       ├── GTable_setCellFont.html
│   │   │   │   │       ├── GTable_setCellForeground.html
│   │   │   │   │       ├── GTable_setColumnAlignment.html
│   │   │   │   │       ├── GTable_setColumnBackground.html
│   │   │   │   │       ├── GTable_setColumnFont.html
│   │   │   │   │       ├── GTable_setColumnForeground.html
│   │   │   │   │       ├── GTable_setColumnHeaderStyle.html
│   │   │   │   │       ├── GTable_setColumnWidth.html
│   │   │   │   │       ├── GTable_setEditable.html
│   │   │   │   │       ├── GTable_setEditorValue.html
│   │   │   │   │       ├── GTable_setEventEnabled.html
│   │   │   │   │       ├── GTable_setFont.html
│   │   │   │   │       ├── GTable_setHorizontalAlignment.html
│   │   │   │   │       ├── GTable_setRowAlignment.html
│   │   │   │   │       ├── GTable_setRowBackground.html
│   │   │   │   │       ├── GTable_setRowColumnHeadersVisible.html
│   │   │   │   │       ├── GTable_setRowFont.html
│   │   │   │   │       ├── GTable_setRowForeground.html
│   │   │   │   │       ├── GTextArea.html
│   │   │   │   │       ├── GTextArea_create.html
│   │   │   │   │       ├── GTextArea_getText.html
│   │   │   │   │       ├── GTextArea_setEditable.html
│   │   │   │   │       ├── GTextArea_setFont.html
│   │   │   │   │       ├── GTextArea_setText.html
│   │   │   │   │       ├── GTextField.html
│   │   │   │   │       ├── GTextField_isEditable.html
│   │   │   │   │       ├── GTextField_setEditable.html
│   │   │   │   │       ├── GTextField_setPlaceholder.html
│   │   │   │   │       ├── GWindow_clearCanvas.html
│   │   │   │   │       ├── GWindow_close.html
│   │   │   │   │       ├── GWindow_create.html
│   │   │   │   │       ├── GWindow_drawInBackground.html
│   │   │   │   │       ├── GWindow_getCanvasSize.html
│   │   │   │   │       ├── GWindow_getContentPaneSize.html
│   │   │   │   │       ├── GWindow_getLocation.html
│   │   │   │   │       ├── GWindow_getPixel.html
│   │   │   │   │       ├── GWindow_getPixels.html
│   │   │   │   │       ├── GWindow_getRegionSize.html
│   │   │   │   │       ├── GWindow_getScreenSize.html
│   │   │   │   │       ├── GWindow_getSize.html
│   │   │   │   │       ├── GWindow_minimize.html
│   │   │   │   │       ├── GWindow_pack.html
│   │   │   │   │       ├── GWindow_removeFromRegion.html
│   │   │   │   │       ├── GWindow_saveCanvasPixels.html
│   │   │   │   │       ├── GWindow_setCanvasSize.html
│   │   │   │   │       ├── GWindow_setCloseOperation.html
│   │   │   │   │       ├── GWindow_setExitOnClose.html
│   │   │   │   │       ├── GWindow_setLocation.html
│   │   │   │   │       ├── GWindow_setLocationSaved.html
│   │   │   │   │       ├── GWindow_setPixel.html
│   │   │   │   │       ├── GWindow_setPixels.html
│   │   │   │   │       ├── GWindow_setRegionSize.html
│   │   │   │   │       ├── GWindow_setResizable.html
│   │   │   │   │       ├── GWindow_setSize.html
│   │   │   │   │       ├── GWindow_toBack.html
│   │   │   │   │       ├── GWindow_toFront.html
│   │   │   │   │       ├── HttpServer_sendResponse.html
│   │   │   │   │       ├── HttpServer_sendResponseFile.html
│   │   │   │   │       ├── HttpServer_start.html
│   │   │   │   │       ├── HttpServer_stop.html
│   │   │   │   │       ├── JBECanvas.html
│   │   │   │   │       ├── JBECommand.html
│   │   │   │   │       ├── JBEConsole_minimize.html
│   │   │   │   │       ├── JBEConsole_print.html
│   │   │   │   │       ├── JBEConsole_setCloseOperation.html
│   │   │   │   │       ├── JBEConsole_setErrorColor.html
│   │   │   │   │       ├── JBEConsole_setExitOnClose.html
│   │   │   │   │       ├── JBEConsole_setLocation.html
│   │   │   │   │       ├── JBEConsole_setLocationSaved.html
│   │   │   │   │       ├── JBEConsole_setOutputColor.html
│   │   │   │   │       ├── JBEConsole_setTitle.html
│   │   │   │   │       ├── JBEConsole_setVisible.html
│   │   │   │   │       ├── JBEConsole_toFront.html
│   │   │   │   │       ├── JBEDummyProgram.html
│   │   │   │   │       ├── JBEFileFilter.html
│   │   │   │   │       ├── JBELabel.html
│   │   │   │   │       ├── JBEMenuBar.html
│   │   │   │   │       ├── JBESwingCommand.html
│   │   │   │   │       ├── JBEWindow.html
│   │   │   │   │       ├── JavaBackEnd.html
│   │   │   │   │       ├── LibraryUpdater.html
│   │   │   │   │       ├── Note_play.html
│   │   │   │   │       ├── Regex_match.html
│   │   │   │   │       ├── Regex_matchCount.html
│   │   │   │   │       ├── Regex_matchCountWithLines.html
│   │   │   │   │       ├── Regex_replace.html
│   │   │   │   │       ├── SPLWindowSettings.html
│   │   │   │   │       ├── SplPipeDecoder.html
│   │   │   │   │       ├── StanfordCppLib_getJbeVersion.html
│   │   │   │   │       ├── StanfordCppLib_setCppVersion.html
│   │   │   │   │       ├── TextFileDialog.html
│   │   │   │   │       ├── URL_download.html
│   │   │   │   │       ├── UrlDownloader.html
│   │   │   │   │       ├── Version.html
│   │   │   │   │       ├── package-frame.html
│   │   │   │   │       ├── package-summary.html
│   │   │   │   │       └── package-tree.html
│   │   │   │   └── stylesheet.css
│   │   │   ├── files.list
│   │   │   ├── lib/
│   │   │   │   ├── acm.jar
│   │   │   │   ├── jl1.0.1.jar
│   │   │   │   ├── jogg-0.0.7.jar
│   │   │   │   ├── jorbis-0.0.15.jar
│   │   │   │   ├── junit.jar
│   │   │   │   ├── mp3spi1.9.5.jar
│   │   │   │   ├── tritonus_share.jar
│   │   │   │   └── vorbisspi1.0.2.jar
│   │   │   ├── make-javadoc.sh
│   │   │   ├── obf/
│   │   │   │   ├── MANIFEST
│   │   │   │   ├── META-INF/
│   │   │   │   │   └── services/
│   │   │   │   │       ├── javax.sound.sampled.spi.AudioFileReader
│   │   │   │   │       ├── javax.sound.sampled.spi.AudioFileReader.BACKUP
│   │   │   │   │       ├── javax.sound.sampled.spi.FormatConversionProvider
│   │   │   │   │       └── javax.sound.sampled.spi.FormatConversionProvider.BACKUP
│   │   │   │   ├── compile.sh
│   │   │   │   ├── copyobf.sh
│   │   │   │   ├── decompile.sh
│   │   │   │   ├── jar-do-everything.sh
│   │   │   │   ├── jartmp8082730507693879001.tmp
│   │   │   │   ├── makeandcopy.sh
│   │   │   │   ├── makejar.sh
│   │   │   │   ├── obfuscate.sh
│   │   │   │   ├── out/
│   │   │   │   │   └── temp.jar
│   │   │   │   ├── proguard-settings.pro
│   │   │   │   ├── retro.txt
│   │   │   │   └── spl.jar
│   │   │   └── src/
│   │   │       ├── acm/
│   │   │       │   ├── graphics/
│   │   │       │   │   ├── G3DRect.java
│   │   │       │   │   ├── GCanvas.java
│   │   │       │   │   ├── GCanvasInterface.java
│   │   │       │   │   ├── GCompound.java
│   │   │       │   │   ├── GContainer.java
│   │   │       │   │   ├── GImage.java
│   │   │       │   │   ├── GIterator.java
│   │   │       │   │   ├── GLabel.java
│   │   │       │   │   ├── GLine.java
│   │   │       │   │   ├── GLineGroup.java
│   │   │       │   │   ├── GMath.java
│   │   │       │   │   ├── GObject.java
│   │   │       │   │   ├── GObjectList.java
│   │   │       │   │   ├── GOval.java
│   │   │       │   │   ├── GPoint.java
│   │   │       │   │   ├── GRectangle.java
│   │   │       │   │   ├── GResizable.java
│   │   │       │   │   ├── GScalable.java
│   │   │       │   │   └── GraphicsUtils.java
│   │   │       │   ├── gui/
│   │   │       │   │   ├── DoubleField.java
│   │   │       │   │   ├── Event.java
│   │   │       │   │   ├── IntField.java
│   │   │       │   │   ├── JButtonGroup.java
│   │   │       │   │   ├── JFontChooser.java
│   │   │       │   │   ├── JListOptionPane.java
│   │   │       │   │   ├── JPlaceholderTextField.java
│   │   │       │   │   ├── JStringList.java
│   │   │       │   │   └── TableLayout.java
│   │   │       │   ├── io/
│   │   │       │   │   ├── ConsoleModel.java
│   │   │       │   │   ├── IOConsole.java
│   │   │       │   │   ├── SimpleScanner.java
│   │   │       │   │   ├── StandardConsoleModel.java
│   │   │       │   │   └── SystemConsoleModel.java
│   │   │       │   ├── program/
│   │   │       │   │   ├── AbstractConsoleProgram.java
│   │   │       │   │   ├── AccessibleConsoleProgram.java
│   │   │       │   │   ├── AppletStarter.java
│   │   │       │   │   ├── AsciiArtProgram.java
│   │   │       │   │   ├── CommandLineProgram.java
│   │   │       │   │   ├── ConsoleProgram.java
│   │   │       │   │   ├── DefaultActionListener.java
│   │   │       │   │   ├── DialogProgram.java
│   │   │       │   │   ├── GObjectProgram.java
│   │   │       │   │   ├── GProgramListener.java
│   │   │       │   │   ├── GraphicsProgram.java
│   │   │       │   │   ├── GraphicsProgramInterface.java
│   │   │       │   │   ├── HeadlessGraphicsProgram.java
│   │   │       │   │   ├── Program.java
│   │   │       │   │   ├── ProgramActionListener.java
│   │   │       │   │   ├── ProgramAppletStub.java
│   │   │       │   │   ├── ProgramContentPaneLayout.java
│   │   │       │   │   ├── ProgramFrame.java
│   │   │       │   │   ├── ProgramInterface.java
│   │   │       │   │   ├── ProgramMenuBar.java
│   │   │       │   │   ├── ProgramStartupFlags.java
│   │   │       │   │   ├── ProgramStartupListener.java
│   │   │       │   │   ├── ProgramWindowListener.java
│   │   │       │   │   └── package.html
│   │   │       │   └── util/
│   │   │       │       ├── ErrorException.java
│   │   │       │       ├── FileChooserFilter.java
│   │   │       │       ├── MediaTools.java
│   │   │       │       ├── PatchingClassLoader.java
│   │   │       │       ├── RandomGenerator.java
│   │   │       │       ├── SoundClip.java
│   │   │       │       ├── Timer.java
│   │   │       │       └── TokenScanner.java
│   │   │       ├── javazoom/
│   │   │       │   └── jlgui/
│   │   │       │       └── basicplayer/
│   │   │       │           ├── BasicController.java
│   │   │       │           ├── BasicPlayer.java
│   │   │       │           ├── BasicPlayerEvent.java
│   │   │       │           ├── BasicPlayerEventLauncher.java
│   │   │       │           ├── BasicPlayerException.java
│   │   │       │           └── BasicPlayerListener.java
│   │   │       └── stanford/
│   │   │           ├── cs106/
│   │   │           │   ├── audio/
│   │   │           │   │   ├── Accidental.java
│   │   │           │   │   ├── Note.java
│   │   │           │   │   ├── Pitch.java
│   │   │           │   │   ├── SplClip.java
│   │   │           │   │   └── StdAudio.java
│   │   │           │   ├── autograder/
│   │   │           │   │   └── GuidedAutograder.java
│   │   │           │   ├── collections/
│   │   │           │   │   ├── AbstractMultimap.java
│   │   │           │   │   ├── AbstractTable.java
│   │   │           │   │   ├── BasicGraph.java
│   │   │           │   │   ├── Edge.java
│   │   │           │   │   ├── Graph.java
│   │   │           │   │   ├── GraphColor.java
│   │   │           │   │   ├── Grid.java
│   │   │           │   │   ├── HashBasedTable.java
│   │   │           │   │   ├── HashMultimap.java
│   │   │           │   │   ├── Lexicon.java
│   │   │           │   │   ├── Multimap.java
│   │   │           │   │   ├── SearchableGraph.java
│   │   │           │   │   ├── Table.java
│   │   │           │   │   ├── TreeBasedTable.java
│   │   │           │   │   ├── TreeMultimap.java
│   │   │           │   │   └── Vertex.java
│   │   │           │   ├── diff/
│   │   │           │   │   ├── Diff.java
│   │   │           │   │   ├── DiffCollection.java
│   │   │           │   │   ├── DiffGui.java
│   │   │           │   │   └── DiffImage.java
│   │   │           │   ├── gui/
│   │   │           │   │   ├── ClipboardUtils.java
│   │   │           │   │   ├── GuiUtils.java
│   │   │           │   │   ├── JComboGroupBox.java
│   │   │           │   │   ├── JFileChooserUtils.java
│   │   │           │   │   ├── ListOptionPane.java
│   │   │           │   │   ├── ResizeListener.java
│   │   │           │   │   └── WindowCloseKeyListener.java
│   │   │           │   ├── io/
│   │   │           │   │   ├── ExtensionFileFilter.java
│   │   │           │   │   ├── IORuntimeException.java
│   │   │           │   │   ├── IOUtils.java
│   │   │           │   │   ├── LimitedPrintStream.java
│   │   │           │   │   ├── OutputCapturer.java
│   │   │           │   │   ├── ReaderInputStream.java
│   │   │           │   │   └── ResourceUtils.java
│   │   │           │   ├── junit/
│   │   │           │   │   ├── Assert.java
│   │   │           │   │   ├── ComparisonFailureEnhanced.java
│   │   │           │   │   ├── JUnitListener.java
│   │   │           │   │   ├── JUnitUtils.java
│   │   │           │   │   ├── TestCategory.java
│   │   │           │   │   └── UnitTestType.java
│   │   │           │   ├── net/
│   │   │           │   │   ├── BackEndServer.java
│   │   │           │   │   ├── Downloader.java
│   │   │           │   │   ├── NetworkManager.java
│   │   │           │   │   ├── Request.java
│   │   │           │   │   ├── SimpleClient.java
│   │   │           │   │   ├── SimpleServer.java
│   │   │           │   │   └── SimpleServerListener.java
│   │   │           │   ├── program/
│   │   │           │   │   ├── CommandLineProgramMarty.java
│   │   │           │   │   ├── ConsoleProgramMarty.java
│   │   │           │   │   ├── ProgramUtils.java
│   │   │           │   │   └── ResizableProgram.java
│   │   │           │   ├── reflect/
│   │   │           │   │   ├── ClassUtils.java
│   │   │           │   │   ├── CompilerErrorException.java
│   │   │           │   │   ├── ReflectionRuntimeException.java
│   │   │           │   │   └── ReflectionUtils.java
│   │   │           │   └── util/
│   │   │           │       ├── CollectionUtils.java
│   │   │           │       ├── ConstantUtils.java
│   │   │           │       ├── ExceptionUtils.java
│   │   │           │       ├── OperatingSystem.java
│   │   │           │       ├── ProcessUtils.java
│   │   │           │       ├── RandomGenerator.java
│   │   │           │       ├── RecursionUtils.java
│   │   │           │       ├── Stanford.java
│   │   │           │       ├── StringUtils.java
│   │   │           │       ├── SystemProperties.java
│   │   │           │       └── XmlUtils.java
│   │   │           ├── karel/
│   │   │           │   ├── AbstractKarel.java
│   │   │           │   ├── AccessibleKarel.java
│   │   │           │   ├── CardPanel.java
│   │   │           │   ├── EmptyCanvas.java
│   │   │           │   ├── Event.java
│   │   │           │   ├── HPanel.java
│   │   │           │   ├── HVLayout.java
│   │   │           │   ├── HeadlessKarel.java
│   │   │           │   ├── HeadlessSuperKarel.java
│   │   │           │   ├── Karel.java
│   │   │           │   ├── KarelBugIcon.java
│   │   │           │   ├── KarelControlPanel.java
│   │   │           │   ├── KarelDirection.java
│   │   │           │   ├── KarelErrorCanvas.java
│   │   │           │   ├── KarelErrorDialog.java
│   │   │           │   ├── KarelInterface.java
│   │   │           │   ├── KarelProgram.java
│   │   │           │   ├── KarelResizer.java
│   │   │           │   ├── KarelWorld.java
│   │   │           │   ├── KarelWorldEditor.java
│   │   │           │   ├── KarelWorldMonitor.java
│   │   │           │   ├── LoadWorldDialog.java
│   │   │           │   ├── NewWorldDialog.java
│   │   │           │   ├── OptionTable.java
│   │   │           │   ├── ResizeCanvas.java
│   │   │           │   ├── ResizeLayout.java
│   │   │           │   ├── SuperKarel.java
│   │   │           │   └── VPanel.java
│   │   │           └── spl/
│   │   │               ├── AutograderInput.java
│   │   │               ├── AutograderInput_addButton.java
│   │   │               ├── AutograderInput_addCategory.java
│   │   │               ├── AutograderInput_removeButton.java
│   │   │               ├── AutograderInput_removeCategory.java
│   │   │               ├── AutograderInput_setColumns.java
│   │   │               ├── AutograderInput_setVisible.java
│   │   │               ├── AutograderUnitTestGUI.java
│   │   │               ├── AutograderUnitTest_addTest.java
│   │   │               ├── AutograderUnitTest_catchExceptions.java
│   │   │               ├── AutograderUnitTest_clearTestResults.java
│   │   │               ├── AutograderUnitTest_clearTests.java
│   │   │               ├── AutograderUnitTest_isChecked.java
│   │   │               ├── AutograderUnitTest_runTestsInSeparateThreads.java
│   │   │               ├── AutograderUnitTest_setChecked.java
│   │   │               ├── AutograderUnitTest_setTestCounts.java
│   │   │               ├── AutograderUnitTest_setTestDetails.java
│   │   │               ├── AutograderUnitTest_setTestResult.java
│   │   │               ├── AutograderUnitTest_setTestRuntime.java
│   │   │               ├── AutograderUnitTest_setTestingCompleted.java
│   │   │               ├── AutograderUnitTest_setVisible.java
│   │   │               ├── AutograderUnitTest_setWindowDescriptionText.java
│   │   │               ├── Base64.java
│   │   │               ├── Clipboard_get.java
│   │   │               ├── Clipboard_set.java
│   │   │               ├── DiffImage_compareImages.java
│   │   │               ├── DiffImage_compareWindowToImage.java
│   │   │               ├── DiffImage_show.java
│   │   │               ├── File_getTempDirectory.java
│   │   │               ├── File_openFileDialog.java
│   │   │               ├── GBufferedImage.java
│   │   │               ├── GBufferedImage_create.java
│   │   │               ├── GBufferedImage_fill.java
│   │   │               ├── GBufferedImage_fillRegion.java
│   │   │               ├── GBufferedImage_load.java
│   │   │               ├── GBufferedImage_resize.java
│   │   │               ├── GBufferedImage_save.java
│   │   │               ├── GBufferedImage_setRGB.java
│   │   │               ├── GBufferedImage_updateAllPixels.java
│   │   │               ├── GCompound_add.java
│   │   │               ├── GFileChooser_showOpenDialog.java
│   │   │               ├── GFileChooser_showSaveDialog.java
│   │   │               ├── GFormattedPane.java
│   │   │               ├── GFormattedPane_create.java
│   │   │               ├── GFormattedPane_getContentType.java
│   │   │               ├── GFormattedPane_getPage.java
│   │   │               ├── GFormattedPane_getText.java
│   │   │               ├── GFormattedPane_setContentType.java
│   │   │               ├── GFormattedPane_setPage.java
│   │   │               ├── GFormattedPane_setText.java
│   │   │               ├── GInteractor.java
│   │   │               ├── GInteractor_addActionListener.java
│   │   │               ├── GInteractor_addChangeListener.java
│   │   │               ├── GInteractor_getAccelerator.java
│   │   │               ├── GInteractor_getFont.java
│   │   │               ├── GInteractor_getMnemonic.java
│   │   │               ├── GInteractor_isEnabled.java
│   │   │               ├── GInteractor_removeActionListener.java
│   │   │               ├── GInteractor_removeChangeListener.java
│   │   │               ├── GInteractor_requestFocus.java
│   │   │               ├── GInteractor_setAccelerator.java
│   │   │               ├── GInteractor_setBackground.java
│   │   │               ├── GInteractor_setEnabled.java
│   │   │               ├── GInteractor_setFont.java
│   │   │               ├── GInteractor_setIcon.java
│   │   │               ├── GInteractor_setMnemonic.java
│   │   │               ├── GInteractor_setText.java
│   │   │               ├── GInteractor_setTextPosition.java
│   │   │               ├── GInteractor_setTooltip.java
│   │   │               ├── GObject_remove.java
│   │   │               ├── GObject_setAntialiasing.java
│   │   │               ├── GOptionPane_showConfirmDialog.java
│   │   │               ├── GOptionPane_showInputDialog.java
│   │   │               ├── GOptionPane_showMessageDialog.java
│   │   │               ├── GOptionPane_showOptionDialog.java
│   │   │               ├── GOptionPane_showTextFileDialog.java
│   │   │               ├── GRadioButton.java
│   │   │               ├── GRadioButton_create.java
│   │   │               ├── GRadioButton_isSelected.java
│   │   │               ├── GRadioButton_setSelected.java
│   │   │               ├── GScrollBar.java
│   │   │               ├── GScrollBar_create.java
│   │   │               ├── GScrollBar_getValue.java
│   │   │               ├── GScrollBar_setValues.java
│   │   │               ├── GSlider.java
│   │   │               ├── GSlider_getMajorTickSpacing.java
│   │   │               ├── GSlider_getMinorTickSpacing.java
│   │   │               ├── GSlider_getPaintLabels.java
│   │   │               ├── GSlider_getPaintTicks.java
│   │   │               ├── GSlider_getSnapToTicks.java
│   │   │               ├── GSlider_setMajorTickSpacing.java
│   │   │               ├── GSlider_setMinorTickSpacing.java
│   │   │               ├── GSlider_setPaintLabels.java
│   │   │               ├── GSlider_setPaintTicks.java
│   │   │               ├── GSlider_setSnapToTicks.java
│   │   │               ├── GTable.java
│   │   │               ├── GTableAdapter.java
│   │   │               ├── GTableEvent.java
│   │   │               ├── GTableListener.java
│   │   │               ├── GTable_autofitColumnWidths.java
│   │   │               ├── GTable_clear.java
│   │   │               ├── GTable_clearFormatting.java
│   │   │               ├── GTable_create.java
│   │   │               ├── GTable_get.java
│   │   │               ├── GTable_getColumnWidth.java
│   │   │               ├── GTable_getSelection.java
│   │   │               ├── GTable_resize.java
│   │   │               ├── GTable_select.java
│   │   │               ├── GTable_set.java
│   │   │               ├── GTable_setCellAlignment.java
│   │   │               ├── GTable_setCellBackground.java
│   │   │               ├── GTable_setCellFont.java
│   │   │               ├── GTable_setCellForeground.java
│   │   │               ├── GTable_setColumnAlignment.java
│   │   │               ├── GTable_setColumnBackground.java
│   │   │               ├── GTable_setColumnFont.java
│   │   │               ├── GTable_setColumnForeground.java
│   │   │               ├── GTable_setColumnHeaderStyle.java
│   │   │               ├── GTable_setColumnWidth.java
│   │   │               ├── GTable_setEditable.java
│   │   │               ├── GTable_setEditorValue.java
│   │   │               ├── GTable_setEventEnabled.java
│   │   │               ├── GTable_setFont.java
│   │   │               ├── GTable_setHorizontalAlignment.java
│   │   │               ├── GTable_setRowAlignment.java
│   │   │               ├── GTable_setRowBackground.java
│   │   │               ├── GTable_setRowColumnHeadersVisible.java
│   │   │               ├── GTable_setRowFont.java
│   │   │               ├── GTable_setRowForeground.java
│   │   │               ├── GTextArea.java
│   │   │               ├── GTextArea_create.java
│   │   │               ├── GTextArea_getText.java
│   │   │               ├── GTextArea_setEditable.java
│   │   │               ├── GTextArea_setFont.java
│   │   │               ├── GTextArea_setText.java
│   │   │               ├── GTextField.java
│   │   │               ├── GTextField_isEditable.java
│   │   │               ├── GTextField_setEditable.java
│   │   │               ├── GTextField_setPlaceholder.java
│   │   │               ├── GTextLabel.java
│   │   │               ├── GTextLabel_create.java
│   │   │               ├── GTimer.java
│   │   │               ├── GTimer_create.java
│   │   │               ├── GWindow_addToRegion.java
│   │   │               ├── GWindow_clear.java
│   │   │               ├── GWindow_clearCanvas.java
│   │   │               ├── GWindow_close.java
│   │   │               ├── GWindow_create.java
│   │   │               ├── GWindow_delete.java
│   │   │               ├── GWindow_draw.java
│   │   │               ├── GWindow_drawInBackground.java
│   │   │               ├── GWindow_exitGraphics.java
│   │   │               ├── GWindow_getCanvasSize.java
│   │   │               ├── GWindow_getContentPaneSize.java
│   │   │               ├── GWindow_getLocation.java
│   │   │               ├── GWindow_getPixel.java
│   │   │               ├── GWindow_getPixels.java
│   │   │               ├── GWindow_getRegionSize.java
│   │   │               ├── GWindow_getScreenHeight.java
│   │   │               ├── GWindow_getScreenSize.java
│   │   │               ├── GWindow_getScreenWidth.java
│   │   │               ├── GWindow_getSize.java
│   │   │               ├── GWindow_minimize.java
│   │   │               ├── GWindow_pack.java
│   │   │               ├── GWindow_rememberPosition.java
│   │   │               ├── GWindow_removeFromRegion.java
│   │   │               ├── GWindow_repaint.java
│   │   │               ├── GWindow_requestFocus.java
│   │   │               ├── GWindow_saveCanvasPixels.java
│   │   │               ├── GWindow_setCanvasDrawingMode.java
│   │   │               ├── GWindow_setCanvasSize.java
│   │   │               ├── GWindow_setCloseOperation.java
│   │   │               ├── GWindow_setExitOnClose.java
│   │   │               ├── GWindow_setLocation.java
│   │   │               ├── GWindow_setLocationSaved.java
│   │   │               ├── GWindow_setPixel.java
│   │   │               ├── GWindow_setPixels.java
│   │   │               ├── GWindow_setRegionAlignment.java
│   │   │               ├── GWindow_setRegionSize.java
│   │   │               ├── GWindow_setRepaintImmediately.java
│   │   │               ├── GWindow_setResizable.java
│   │   │               ├── GWindow_setSize.java
│   │   │               ├── GWindow_setTitle.java
│   │   │               ├── GWindow_setVisible.java
│   │   │               ├── GWindow_toBack.java
│   │   │               ├── GWindow_toFront.java
│   │   │               ├── HTTPDownloadException.java
│   │   │               ├── HttpServer_sendResponse.java
│   │   │               ├── HttpServer_sendResponseFile.java
│   │   │               ├── HttpServer_start.java
│   │   │               ├── HttpServer_stop.java
│   │   │               ├── JBECanvas.java
│   │   │               ├── JBECommand.java
│   │   │               ├── JBEConsole_getLine.java
│   │   │               ├── JBEConsole_getTitle.java
│   │   │               ├── JBEConsole_minimize.java
│   │   │               ├── JBEConsole_print.java
│   │   │               ├── JBEConsole_setCloseOperation.java
│   │   │               ├── JBEConsole_setErrorColor.java
│   │   │               ├── JBEConsole_setExitOnClose.java
│   │   │               ├── JBEConsole_setLocation.java
│   │   │               ├── JBEConsole_setLocationSaved.java
│   │   │               ├── JBEConsole_setOutputColor.java
│   │   │               ├── JBEConsole_setTitle.java
│   │   │               ├── JBEConsole_setVisible.java
│   │   │               ├── JBEConsole_toFront.java
│   │   │               ├── JBEDummyProgram.java
│   │   │               ├── JBEFileFilter.java
│   │   │               ├── JBEHeadlessWindow.java
│   │   │               ├── JBELabel.java
│   │   │               ├── JBEMenuBar.java
│   │   │               ├── JBESwingCommand.java
│   │   │               ├── JBEWindow.java
│   │   │               ├── JBEWindowInterface.java
│   │   │               ├── JavaBackEnd.java
│   │   │               ├── LibraryUpdater.java
│   │   │               ├── Note_play.java
│   │   │               ├── Regex_match.java
│   │   │               ├── Regex_matchCount.java
│   │   │               ├── Regex_matchCountWithLines.java
│   │   │               ├── Regex_replace.java
│   │   │               ├── SPLWindowSettings.java
│   │   │               ├── SplPipeDecoder.java
│   │   │               ├── StanfordCppLib_getJbeVersion.java
│   │   │               ├── StanfordCppLib_setCppVersion.java
│   │   │               ├── TextFileDialog.java
│   │   │               ├── URL_download.java
│   │   │               ├── URL_downloadWithHeaders.java
│   │   │               ├── UrlDownloader.java
│   │   │               └── Version.java
│   │   └── latest-version-decompiled/
│   │       ├── META-INF/
│   │       │   └── MANIFEST.MF
│   │       ├── acm/
│   │       │   ├── graphics/
│   │       │   │   ├── DrawLineElement.java
│   │       │   │   ├── EndRegionElement.java
│   │       │   │   ├── FinalPathElement.java
│   │       │   │   ├── G3DRect.java
│   │       │   │   ├── GArc.java
│   │       │   │   ├── GCanvas.java
│   │       │   │   ├── GCanvasListener.java
│   │       │   │   ├── GCompound.java
│   │       │   │   ├── GContainer.java
│   │       │   │   ├── GDimension.java
│   │       │   │   ├── GFillable.java
│   │       │   │   ├── GImage.java
│   │       │   │   ├── GIterator.java
│   │       │   │   ├── GLabel.java
│   │       │   │   ├── GLine.java
│   │       │   │   ├── GMath.java
│   │       │   │   ├── GMouseEvent.java
│   │       │   │   ├── GObject.java
│   │       │   │   ├── GObjectList.java
│   │       │   │   ├── GOval.java
│   │       │   │   ├── GPen.java
│   │       │   │   ├── GPoint.java
│   │       │   │   ├── GPolygon.java
│   │       │   │   ├── GRect.java
│   │       │   │   ├── GRectangle.java
│   │       │   │   ├── GResizable.java
│   │       │   │   ├── GRoundRect.java
│   │       │   │   ├── GScalable.java
│   │       │   │   ├── GTurtle.java
│   │       │   │   ├── PathElement.java
│   │       │   │   ├── PathList.java
│   │       │   │   ├── PathState.java
│   │       │   │   ├── PenImage.java
│   │       │   │   ├── SetColorElement.java
│   │       │   │   ├── SetLocationElement.java
│   │       │   │   ├── StartRegionElement.java
│   │       │   │   └── VertexList.java
│   │       │   ├── gui/
│   │       │   │   ├── DoubleField.java
│   │       │   │   ├── HPanel.java
│   │       │   │   ├── IntField.java
│   │       │   │   ├── TableConstraints.java
│   │       │   │   ├── TableLayout.java
│   │       │   │   ├── TablePanel.java
│   │       │   │   └── VPanel.java
│   │       │   ├── io/
│   │       │   │   ├── AWTBooleanInputDialog.java
│   │       │   │   ├── AWTDialog.java
│   │       │   │   ├── AWTDialogModel.java
│   │       │   │   ├── AWTIconCanvas.java
│   │       │   │   ├── AWTLineInputDialog.java
│   │       │   │   ├── AWTMessageCanvas.java
│   │       │   │   ├── AWTMessageDialog.java
│   │       │   │   ├── CharacterQueue.java
│   │       │   │   ├── ConsoleActionListener.java
│   │       │   │   ├── ConsoleInputMonitor.java
│   │       │   │   ├── ConsoleModel.java
│   │       │   │   ├── ConsoleOutputMonitor.java
│   │       │   │   ├── ConsoleReader.java
│   │       │   │   ├── ConsoleWriter.java
│   │       │   │   ├── DialogModel.java
│   │       │   │   ├── IOConsole.java
│   │       │   │   ├── IODialog.java
│   │       │   │   ├── IOModel.java
│   │       │   │   ├── StandardConsoleModel.java
│   │       │   │   ├── SwingDialogModel.java
│   │       │   │   ├── SystemConsole.java
│   │       │   │   └── SystemConsoleModel.java
│   │       │   ├── program/
│   │       │   │   ├── AppletStarter.java
│   │       │   │   ├── CommandLineProgram.java
│   │       │   │   ├── CommandLineProgramLoader.java
│   │       │   │   ├── ConsoleProgram.java
│   │       │   │   ├── DefaultActionListener.java
│   │       │   │   ├── DialogProgram.java
│   │       │   │   ├── GObjectProgram.java
│   │       │   │   ├── GProgramListener.java
│   │       │   │   ├── GraphicsProgram.java
│   │       │   │   ├── OldStyleCheckBoxMenuItem.java
│   │       │   │   ├── OldStyleMenuItem.java
│   │       │   │   ├── Program.java
│   │       │   │   ├── ProgramActionListener.java
│   │       │   │   ├── ProgramAppletStub.java
│   │       │   │   ├── ProgramContentPaneLayout.java
│   │       │   │   ├── ProgramFrame.java
│   │       │   │   ├── ProgramMenuBar.java
│   │       │   │   ├── ProgramMenuBarListener.java
│   │       │   │   ├── ProgramStartupListener.java
│   │       │   │   └── ProgramWindowListener.java
│   │       │   └── util/
│   │       │       ├── Animator.java
│   │       │       ├── BMPImageSaver.java
│   │       │       ├── Base64OutputStream.java
│   │       │       ├── CancelledException.java
│   │       │       ├── DOSCommandLine.java
│   │       │       ├── DirectGif89Frame.java
│   │       │       ├── EPSImageSaver.java
│   │       │       ├── EmptyContainer.java
│   │       │       ├── ErrorException.java
│   │       │       ├── ExportAppletDialog.java
│   │       │       ├── FileChooserFilter.java
│   │       │       ├── GIF89ImageSaver.java
│   │       │       ├── GIFImageSaver.java
│   │       │       ├── Gif89Encoder.java
│   │       │       ├── Gif89Frame.java
│   │       │       ├── Gif89Put.java
│   │       │       ├── GifColorTable.java
│   │       │       ├── GifPixelsEncoder.java
│   │       │       ├── HexByteOutputStream.java
│   │       │       ├── HexInputStream.java
│   │       │       ├── ImageSaver.java
│   │       │       ├── IndexGif89Frame.java
│   │       │       ├── JPEGImageSaver.java
│   │       │       ├── JPGImageSaver.java
│   │       │       ├── JTFTools.java
│   │       │       ├── MailStream.java
│   │       │       ├── MediaTools.java
│   │       │       ├── NullAudioClip.java
│   │       │       ├── NullOutputStream.java
│   │       │       ├── OptionTable.java
│   │       │       ├── PICImageSaver.java
│   │       │       ├── PICTImageSaver.java
│   │       │       ├── PNGImageSaver.java
│   │       │       ├── Platform.java
│   │       │       ├── ProgressBarDialog.java
│   │       │       ├── RTFImageSaver.java
│   │       │       ├── RandomGenerator.java
│   │       │       ├── ReverseColorMap.java
│   │       │       ├── SecurityManagerThatFails.java
│   │       │       ├── SoundClip.java
│   │       │       ├── SoundPlayer.java
│   │       │       ├── SpeedBarListener.java
│   │       │       ├── SubmitOptions.java
│   │       │       ├── SunAudioClip.java
│   │       │       ├── SwingTimer.java
│   │       │       ├── TIFFImageSaver.java
│   │       │       ├── TIFImageSaver.java
│   │       │       ├── ThreadedMenuAction.java
│   │       │       └── TokenScanner.java
│   │       ├── spl.jar
│   │       └── stanford/
│   │           └── spl/
│   │               ├── File_openFileDialog.java
│   │               ├── G3DRect_create.java
│   │               ├── G3DRect_setRaised.java
│   │               ├── GArc_create.java
│   │               ├── GArc_setFrameRectangle.java
│   │               ├── GArc_setStartAngle.java
│   │               ├── GArc_setSweepAngle.java
│   │               ├── GButton.java
│   │               ├── GButton_create.java
│   │               ├── GCheckBox.java
│   │               ├── GCheckBox_create.java
│   │               ├── GCheckBox_isSelected.java
│   │               ├── GCheckBox_setSelected.java
│   │               ├── GChooser.java
│   │               ├── GChooser_addItem.java
│   │               ├── GChooser_create.java
│   │               ├── GChooser_getSelectedItem.java
│   │               ├── GChooser_setSelectedItem.java
│   │               ├── GCompound_add.java
│   │               ├── GCompound_create.java
│   │               ├── GEvent_getNextEvent.java
│   │               ├── GEvent_waitForEvent.java
│   │               ├── GImage_create.java
│   │               ├── GInteractor.java
│   │               ├── GInteractor_getSize.java
│   │               ├── GInteractor_setActionCommand.java
│   │               ├── GLabel_create.java
│   │               ├── GLabel_getFontAscent.java
│   │               ├── GLabel_getFontDescent.java
│   │               ├── GLabel_getGLabelSize.java
│   │               ├── GLabel_setFont.java
│   │               ├── GLabel_setLabel.java
│   │               ├── GLine_create.java
│   │               ├── GLine_setEndPoint.java
│   │               ├── GLine_setStartPoint.java
│   │               ├── GObject_contains.java
│   │               ├── GObject_delete.java
│   │               ├── GObject_getBounds.java
│   │               ├── GObject_remove.java
│   │               ├── GObject_rotate.java
│   │               ├── GObject_scale.java
│   │               ├── GObject_sendBackward.java
│   │               ├── GObject_sendForward.java
│   │               ├── GObject_sendToBack.java
│   │               ├── GObject_sendToFront.java
│   │               ├── GObject_setColor.java
│   │               ├── GObject_setFillColor.java
│   │               ├── GObject_setFilled.java
│   │               ├── GObject_setLineWidth.java
│   │               ├── GObject_setLocation.java
│   │               ├── GObject_setSize.java
│   │               ├── GObject_setVisible.java
│   │               ├── GOval_create.java
│   │               ├── GPolygon_addVertex.java
│   │               ├── GPolygon_create.java
│   │               ├── GRect_create.java
│   │               ├── GRoundRect_create.java
│   │               ├── GSlider.java
│   │               ├── GSlider_create.java
│   │               ├── GSlider_getValue.java
│   │               ├── GSlider_setValue.java
│   │               ├── GTextField.java
│   │               ├── GTextField_create.java
│   │               ├── GTextField_getText.java
│   │               ├── GTextField_setText.java
│   │               ├── GTimer.java
│   │               ├── GTimer_create.java
│   │               ├── GTimer_deleteTimer.java
│   │               ├── GTimer_pause.java
│   │               ├── GTimer_startTimer.java
│   │               ├── GTimer_stopTimer.java
│   │               ├── GWindow_addToRegion.java
│   │               ├── GWindow_clear.java
│   │               ├── GWindow_close.java
│   │               ├── GWindow_create.java
│   │               ├── GWindow_delete.java
│   │               ├── GWindow_draw.java
│   │               ├── GWindow_exitGraphics.java
│   │               ├── GWindow_getScreenHeight.java
│   │               ├── GWindow_getScreenWidth.java
│   │               ├── GWindow_repaint.java
│   │               ├── GWindow_requestFocus.java
│   │               ├── GWindow_setRegionAlignment.java
│   │               ├── GWindow_setResizable.java
│   │               ├── GWindow_setTitle.java
│   │               ├── GWindow_setVisible.java
│   │               ├── JBECanvas.java
│   │               ├── JBEConsole.java
│   │               ├── JBEConsole_clear.java
│   │               ├── JBEConsole_getLine.java
│   │               ├── JBEConsole_print.java
│   │               ├── JBEConsole_println.java
│   │               ├── JBEConsole_setFont.java
│   │               ├── JBEConsole_setSize.java
│   │               ├── JBEDummyProgram.java
│   │               ├── JBEFileFilter.java
│   │               ├── JBELabel.java
│   │               ├── JBEMenuBar.java
│   │               ├── JBEWindow.java
│   │               ├── Sound_create.java
│   │               ├── Sound_delete.java
│   │               ├── Sound_play.java
│   │               ├── TopCompound.java
│   │               └── TopCompound_create.java
│   ├── JavaTaskForce/
│   │   ├── Makefile
│   │   ├── acm.jar
│   │   └── src/
│   │       └── acm/
│   │           ├── graphics/
│   │           │   ├── G3DRect.java
│   │           │   ├── GArc.java
│   │           │   ├── GCanvas.java
│   │           │   ├── GCompound.java
│   │           │   ├── GContainer.java
│   │           │   ├── GDimension.java
│   │           │   ├── GFillable.java
│   │           │   ├── GImage.java
│   │           │   ├── GLabel.java
│   │           │   ├── GLine.java
│   │           │   ├── GMath.java
│   │           │   ├── GObject.java
│   │           │   ├── GOval.java
│   │           │   ├── GPen.java
│   │           │   ├── GPoint.java
│   │           │   ├── GPolygon.java
│   │           │   ├── GRect.java
│   │           │   ├── GRectangle.java
│   │           │   ├── GResizable.java
│   │           │   ├── GRoundRect.java
│   │           │   ├── GScalable.java
│   │           │   ├── GTurtle.java
│   │           │   └── package.html
│   │           ├── gui/
│   │           │   ├── DoubleField.java
│   │           │   ├── HPanel.java
│   │           │   ├── IntField.java
│   │           │   ├── TableConstraints.java
│   │           │   ├── TableLayout.java
│   │           │   ├── TablePanel.java
│   │           │   ├── VPanel.java
│   │           │   └── package.html
│   │           ├── io/
│   │           │   ├── IOConsole.java
│   │           │   ├── IODialog.java
│   │           │   ├── IOModel.java
│   │           │   └── package.html
│   │           ├── program/
│   │           │   ├── CommandLineProgram.java
│   │           │   ├── ConsoleProgram.java
│   │           │   ├── DialogProgram.java
│   │           │   ├── GraphicsProgram.java
│   │           │   ├── Program.java
│   │           │   ├── ProgramMenuBar.java
│   │           │   └── package.html
│   │           └── util/
│   │               ├── Animator.java
│   │               ├── CancelledException.java
│   │               ├── ErrorException.java
│   │               ├── FileChooserFilter.java
│   │               ├── JTFTools.java
│   │               ├── MediaTools.java
│   │               ├── MovieClip.java
│   │               ├── OptionTable.java
│   │               ├── Platform.java
│   │               ├── RandomGenerator.java
│   │               ├── SoundClip.java
│   │               ├── SwingTimer.java
│   │               └── package.html
│   ├── Karel/
│   │   ├── .classpath
│   │   ├── .project
│   │   ├── .settings/
│   │   │   └── org.eclipse.jdt.core.prefs
│   │   ├── lib/
│   │   │   └── spl.jar
│   │   ├── obf/
│   │   │   ├── copyjar.sh
│   │   │   ├── karel.jar
│   │   │   └── makejar.sh
│   │   ├── src/
│   │   │   └── stanford/
│   │   │       └── karel/
│   │   │           ├── CardPanel.java
│   │   │           ├── EmptyCanvas.java
│   │   │           ├── Event.java
│   │   │           ├── HPanel.java
│   │   │           ├── HVLayout.java
│   │   │           ├── Karel.java
│   │   │           ├── KarelBugIcon.java
│   │   │           ├── KarelControlPanel.java
│   │   │           ├── KarelErrorCanvas.java
│   │   │           ├── KarelErrorDialog.java
│   │   │           ├── KarelProgram.java
│   │   │           ├── KarelResizer.java
│   │   │           ├── KarelWorld.java
│   │   │           ├── KarelWorldEditor.java
│   │   │           ├── KarelWorldMonitor.java
│   │   │           ├── LoadWorldDialog.java
│   │   │           ├── NewWorldDialog.java
│   │   │           ├── OptionTable.java
│   │   │           ├── ResizeCanvas.java
│   │   │           ├── ResizeLayout.java
│   │   │           ├── SuperKarel.java
│   │   │           ├── VPanel.java
│   │   │           └── Version.java
│   │   └── worlds/
│   │       ├── 16x20.w
│   │       ├── 1x8.w
│   │       ├── 1x9-marty.w
│   │       ├── 3x9-marty.w
│   │       ├── 40x40.w
│   │       ├── 6x5.w
│   │       ├── 7x7.w
│   │       ├── 8x1.w
│   │       ├── 8x8.w
│   │       ├── Checkerboard.w
│   │       ├── CollectNewspaper.w
│   │       ├── MidpointFinder.w
│   │       ├── SampleQuad1.w
│   │       ├── SampleQuad2.w
│   │       └── StoneMason.w
│   ├── README.md
│   ├── Scripts/
│   │   ├── extract-cpplib.pl
│   │   ├── make-autograder_zip.sh
│   │   ├── make-image-strip.sh
│   │   ├── make-stanfordcpplib_zip.sh
│   │   ├── pack-autograder-lib-into-single-cpp-file.sh
│   │   ├── pack-lib-into-single-cpp-file.sh
│   │   └── zip-cpplib.sh
│   ├── StanfordCPPLib_CodeStepByStep_Project/
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── input-1.txt
│   │   ├── res/
│   │   │   ├── .empty.txt
│   │   │   ├── res file with spaces.txt
│   │   │   ├── resfile1.txt
│   │   │   ├── resfile2.doc
│   │   │   └── resfile3.html
│   │   ├── src/
│   │   │   ├── ArrayIntList.cpp
│   │   │   ├── ArrayIntList.h
│   │   │   ├── BinaryTree.cpp
│   │   │   ├── BinaryTree.h
│   │   │   ├── BinaryTreeMap.cpp
│   │   │   ├── BinaryTreeMap.h
│   │   │   ├── BinaryTreeMapNode.h
│   │   │   ├── BinaryTreeNode.h
│   │   │   ├── HashTableMap.h
│   │   │   ├── HashTableSet.cpp
│   │   │   ├── HashTableSet.h
│   │   │   ├── HeapPriorityQueue.cpp
│   │   │   ├── HeapPriorityQueue.h
│   │   │   ├── LinkedIntList.cpp
│   │   │   ├── LinkedIntList.h
│   │   │   ├── codestepbystep.cpp
│   │   │   ├── codestepbystep.h
│   │   │   ├── cppdoc.c
│   │   │   ├── cppdoc.css
│   │   │   ├── fillcomments.c
│   │   │   ├── graphsupport.cpp
│   │   │   ├── graphsupport.h
│   │   │   ├── mainfunc-biginteger.cpp
│   │   │   ├── mainfunc-functional.cpp
│   │   │   ├── mainfunc-iurlstream.cpp
│   │   │   ├── mainfunc-menu.cpp
│   │   │   ├── mainfunc-process.cpp
│   │   │   ├── mainfunc-qt-2dgraphics.cpp
│   │   │   ├── mainfunc-qt-console.cpp
│   │   │   ├── mainfunc-qt-layout.cpp
│   │   │   ├── mainfunc-qt-table.cpp
│   │   │   ├── mainfunc-qt-widgets.cpp
│   │   │   ├── mainfunc.cpp
│   │   │   ├── mainfunc2.cpp
│   │   │   ├── mainfunc3.cpp
│   │   │   ├── readme.txt
│   │   │   ├── searching.cpp
│   │   │   ├── searchingsorting.h
│   │   │   ├── sorting.cpp
│   │   │   ├── types.cpp
│   │   │   └── types.h
│   │   └── stanfordcpplib-codestepbystep.pro
│   ├── StanfordCPPLib_QtCreatorProject/
│   │   ├── input/
│   │   │   ├── input-1.txt
│   │   │   ├── input-2.txt
│   │   │   └── input-subdir/
│   │   │       └── input-subdir-1.txt
│   │   ├── lib/
│   │   │   └── readme.txt
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── expected-output-2.txt
│   │   ├── res/
│   │   │   ├── .empty.txt
│   │   │   ├── res file with spaces.txt
│   │   │   ├── resfile1.txt
│   │   │   ├── resfile2.doc
│   │   │   └── resfile3.html
│   │   ├── src/
│   │   │   ├── mainfunc.cpp
│   │   │   ├── multimain/
│   │   │   │   ├── mainfunc-biginteger.cpp
│   │   │   │   ├── mainfunc-functional.cpp
│   │   │   │   ├── mainfunc-iurlstream.cpp
│   │   │   │   ├── mainfunc-menu.cpp
│   │   │   │   ├── mainfunc-process.cpp
│   │   │   │   ├── mainfunc-qt-2dgraphics.cpp
│   │   │   │   ├── mainfunc-qt-console.cpp
│   │   │   │   ├── mainfunc-qt-diffimage.cpp
│   │   │   │   ├── mainfunc-qt-layout.cpp
│   │   │   │   ├── mainfunc-qt-table.cpp
│   │   │   │   ├── mainfunc-qt-widgets.cpp
│   │   │   │   ├── mainfunc2.cpp
│   │   │   │   └── mainfunc3.cpp
│   │   │   └── readme.txt
│   │   └── stanfordcpplib.pro
│   ├── autograder-empty-project/
│   │   ├── autograder-empty-project.pro
│   │   ├── lib/
│   │   │   └── StanfordCPPLib/
│   │   │       ├── autograder/
│   │   │       │   ├── assertions.h
│   │   │       │   ├── autograder.h
│   │   │       │   ├── autogradercompat.h
│   │   │       │   ├── autogradertest.h
│   │   │       │   ├── consoleautograder.h
│   │   │       │   ├── date.h
│   │   │       │   ├── gtest-marty.h
│   │   │       │   ├── gtest.h
│   │   │       │   ├── guiautograder.h
│   │   │       │   ├── ioutils.h
│   │   │       │   ├── stylecheck.h
│   │   │       │   ├── testresultprinter.h
│   │   │       │   ├── unittestdetails.h
│   │   │       │   └── versionautograder.h
│   │   │       ├── collections/
│   │   │       │   ├── basicgraph.h
│   │   │       │   ├── collections.h
│   │   │       │   ├── dawglexicon.h
│   │   │       │   ├── deque.h
│   │   │       │   ├── functional.h
│   │   │       │   ├── graph.h
│   │   │       │   ├── grid.h
│   │   │       │   ├── gridlocation.h
│   │   │       │   ├── hashcode.h
│   │   │       │   ├── hashmap.h
│   │   │       │   ├── hashset.h
│   │   │       │   ├── lexicon.h
│   │   │       │   ├── linkedhashmap.h
│   │   │       │   ├── linkedhashset.h
│   │   │       │   ├── linkedlist.h
│   │   │       │   ├── map.h
│   │   │       │   ├── pqueue.h
│   │   │       │   ├── priorityqueue.h
│   │   │       │   ├── queue.h
│   │   │       │   ├── set.h
│   │   │       │   ├── shuffle.h
│   │   │       │   ├── sparsegrid.h
│   │   │       │   ├── stack.h
│   │   │       │   ├── stl.h
│   │   │       │   └── vector.h
│   │   │       ├── graphics/
│   │   │       │   ├── console.h
│   │   │       │   ├── consoletext.h
│   │   │       │   ├── gbrowserpane.h
│   │   │       │   ├── gbufferedimage.h
│   │   │       │   ├── gbutton.h
│   │   │       │   ├── gcanvas.h
│   │   │       │   ├── gcheckbox.h
│   │   │       │   ├── gchooser.h
│   │   │       │   ├── gclipboard.h
│   │   │       │   ├── gcolor.h
│   │   │       │   ├── gcolorchooser.h
│   │   │       │   ├── gconsolewindow.h
│   │   │       │   ├── gcontainer.h
│   │   │       │   ├── gdiffgui.h
│   │   │       │   ├── gdiffimage.h
│   │   │       │   ├── gdownloader.h
│   │   │       │   ├── gdrawingsurface.h
│   │   │       │   ├── gevent.h
│   │   │       │   ├── geventqueue.h
│   │   │       │   ├── gevents.h
│   │   │       │   ├── gfilechooser.h
│   │   │       │   ├── gfont.h
│   │   │       │   ├── gfontchooser.h
│   │   │       │   ├── gformattedpane.h
│   │   │       │   ├── ginputpanel.h
│   │   │       │   ├── ginteractor.h
│   │   │       │   ├── ginteractors.h
│   │   │       │   ├── glabel.h
│   │   │       │   ├── glayout.h
│   │   │       │   ├── gobjects.h
│   │   │       │   ├── gobservable.h
│   │   │       │   ├── goptionpane.h
│   │   │       │   ├── gradiobutton.h
│   │   │       │   ├── gscrollbar.h
│   │   │       │   ├── gscrollpane.h
│   │   │       │   ├── gslider.h
│   │   │       │   ├── gspacer.h
│   │   │       │   ├── gtable.h
│   │   │       │   ├── gtextarea.h
│   │   │       │   ├── gtextfield.h
│   │   │       │   ├── gthread.h
│   │   │       │   ├── gtimer.h
│   │   │       │   ├── gtypes.h
│   │   │       │   ├── gwindow.h
│   │   │       │   └── qtgui.h
│   │   │       ├── io/
│   │   │       │   ├── base64.h
│   │   │       │   ├── bitstream.h
│   │   │       │   ├── filelib.h
│   │   │       │   ├── plainconsole.h
│   │   │       │   ├── rapidxml.h
│   │   │       │   ├── server.h
│   │   │       │   ├── simpio.h
│   │   │       │   ├── tokenscanner.h
│   │   │       │   ├── urlstream.h
│   │   │       │   └── xmlutils.h
│   │   │       ├── private/
│   │   │       │   ├── consolestreambuf.h
│   │   │       │   ├── echoinputstreambuf.h
│   │   │       │   ├── foreachpatch.h
│   │   │       │   ├── forwardingstreambuf.h
│   │   │       │   ├── headless.h
│   │   │       │   ├── init.h
│   │   │       │   ├── initstudent.h
│   │   │       │   ├── limitoutputstreambuf.h
│   │   │       │   ├── multimain.h
│   │   │       │   ├── precompiled.h
│   │   │       │   ├── randompatch.h
│   │   │       │   ├── static.h
│   │   │       │   └── version.h
│   │   │       ├── spl.cpp
│   │   │       ├── splautograder.cpp
│   │   │       ├── system/
│   │   │       │   ├── call_stack.h
│   │   │       │   ├── error.h
│   │   │       │   ├── exceptions.h
│   │   │       │   └── os.h
│   │   │       └── util/
│   │   │           ├── bigfloat.h
│   │   │           ├── biginteger.h
│   │   │           ├── complex.h
│   │   │           ├── diff.h
│   │   │           ├── direction.h
│   │   │           ├── foreach.h
│   │   │           ├── gmath.h
│   │   │           ├── intrange.h
│   │   │           ├── managed.h
│   │   │           ├── memory.h
│   │   │           ├── note.h
│   │   │           ├── observable.h
│   │   │           ├── point.h
│   │   │           ├── random.h
│   │   │           ├── recursion.h
│   │   │           ├── regexpr.h
│   │   │           ├── require.h
│   │   │           ├── sound.h
│   │   │           ├── stringutils.h
│   │   │           ├── strlib.h
│   │   │           └── timer.h
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── input-1.txt
│   │   ├── res/
│   │   │   └── readme.txt
│   │   └── src/
│   │       ├── ArrayIntList.cpp
│   │       ├── ArrayIntList.h
│   │       ├── BinaryTree.cpp
│   │       ├── BinaryTree.h
│   │       ├── BinaryTreeMap.cpp
│   │       ├── BinaryTreeMap.h
│   │       ├── BinaryTreeMapNode.h
│   │       ├── BinaryTreeNode.h
│   │       ├── HashTableMap.h
│   │       ├── HashTableSet.cpp
│   │       ├── HashTableSet.h
│   │       ├── HeapPriorityQueue.cpp
│   │       ├── HeapPriorityQueue.h
│   │       ├── LinkedIntList.cpp
│   │       ├── LinkedIntList.h
│   │       ├── codestepbystep.cpp
│   │       ├── codestepbystep.h
│   │       ├── cppdoc.c
│   │       ├── cppdoc.css
│   │       ├── fillcomments.c
│   │       ├── graphsupport.cpp
│   │       ├── graphsupport.h
│   │       ├── mainfunc-biginteger.cpp
│   │       ├── mainfunc-functional.cpp
│   │       ├── mainfunc-iurlstream.cpp
│   │       ├── mainfunc-menu.cpp
│   │       ├── mainfunc-process.cpp
│   │       ├── mainfunc-qt-2dgraphics.cpp
│   │       ├── mainfunc-qt-console.cpp
│   │       ├── mainfunc-qt-layout.cpp
│   │       ├── mainfunc-qt-table.cpp
│   │       ├── mainfunc-qt-widgets.cpp
│   │       ├── mainfunc.cpp
│   │       ├── readme.txt
│   │       ├── searching.cpp
│   │       ├── searchingsorting.h
│   │       ├── sorting.cpp
│   │       ├── types.cpp
│   │       └── types.h
│   ├── bugs/
│   │   └── vector_race_condition_ali.txt
│   ├── cppdoc/
│   │   ├── BasicGraph-class.html
│   │   ├── DawgLexicon-class.html
│   │   ├── Deque-class.html
│   │   ├── Edge-class.html
│   │   ├── ErrorException-class.html
│   │   ├── G3DRect-class-old.html
│   │   ├── G3DRect-class.html
│   │   ├── GActionEvent-class-old.html
│   │   ├── GActionEvent.html
│   │   ├── GArc-class-old.html
│   │   ├── GArc-class.html
│   │   ├── GBufferedImage-class-old.html
│   │   ├── GBufferedImage-class.html
│   │   ├── GButton-class-old.html
│   │   ├── GButton-class.html
│   │   ├── GCheckBox-class-old.html
│   │   ├── GCheckBox-class.html
│   │   ├── GChooser-class-old.html
│   │   ├── GChooser-class.html
│   │   ├── GCompound-class-old.html
│   │   ├── GCompound-class.html
│   │   ├── GDimension-class-old.html
│   │   ├── GDimension-class.html
│   │   ├── GEvent-class-old.html
│   │   ├── GEvent-class.html
│   │   ├── GImage-class-old.html
│   │   ├── GImage-class.html
│   │   ├── GInteractor-class-old.html
│   │   ├── GInteractor-class.html
│   │   ├── GKeyEvent-class-old.html
│   │   ├── GKeyEvent-class.html
│   │   ├── GLabel-class-old.html
│   │   ├── GLabel-class.html
│   │   ├── GLine-class-old.html
│   │   ├── GLine-class.html
│   │   ├── GMouseEvent-class-old.html
│   │   ├── GMouseEvent-class.html
│   │   ├── GObject-class-old.html
│   │   ├── GObject-class.html
│   │   ├── GOptionPane-class-old.html
│   │   ├── GOptionPane-class.html
│   │   ├── GOval-class-old.html
│   │   ├── GOval-class.html
│   │   ├── GPoint-class-old.html
│   │   ├── GPoint-class.html
│   │   ├── GPolygon-class-old.html
│   │   ├── GPolygon-class.html
│   │   ├── GRect-class-old.html
│   │   ├── GRect-class.html
│   │   ├── GRectangle-class-old.html
│   │   ├── GRectangle-class.html
│   │   ├── GRoundRect-class-old.html
│   │   ├── GRoundRect-class.html
│   │   ├── GSlider-class-old.html
│   │   ├── GSlider-class.html
│   │   ├── GTable-class-old.html
│   │   ├── GTable-class.html
│   │   ├── GTableEvent-class-old.html
│   │   ├── GTableEvent-class.html
│   │   ├── GText-class.html
│   │   ├── GTextField-class-old.html
│   │   ├── GTextField-class.html
│   │   ├── GTimer-class-old.html
│   │   ├── GTimer-class.html
│   │   ├── GTimerEvent-class-old.html
│   │   ├── GTimerEvent-class.html
│   │   ├── GWindow-class-old.html
│   │   ├── GWindow-class.html
│   │   ├── GWindowEvent-class-old.html
│   │   ├── GWindowEvent-class.html
│   │   ├── Graph-class.html
│   │   ├── Grid-class.html
│   │   ├── HashMap-class.html
│   │   ├── HashSet-class.html
│   │   ├── Lexicon-class.html
│   │   ├── LinkedHashMap-class.html
│   │   ├── LinkedHashSet-class.html
│   │   ├── LinkedList-class.html
│   │   ├── Lock-class.html
│   │   ├── Makefile
│   │   ├── Map-class.html
│   │   ├── Point-class.html
│   │   ├── PriorityQueue-class.html
│   │   ├── Queue-class.html
│   │   ├── Set-class.html
│   │   ├── Sound-class.html
│   │   ├── SparseGrid-class.html
│   │   ├── Stack-class.html
│   │   ├── Thread-class.html
│   │   ├── Timer-class.html
│   │   ├── TokenScanner-class.html
│   │   ├── Vector-class.html
│   │   ├── Vertex-class.html
│   │   ├── basicgraph.html
│   │   ├── bitstream.html
│   │   ├── console.html
│   │   ├── cppdoc.css
│   │   ├── dawglexicon.html
│   │   ├── deque.html
│   │   ├── direction.html
│   │   ├── dist/
│   │   │   ├── CURRENTVERSION_CPPLIB.txt
│   │   │   ├── CURRENTVERSION_SPLJAR.txt
│   │   │   ├── autograder-empty-project.pro
│   │   │   ├── empty-project.pro
│   │   │   ├── sample-project.pro
│   │   │   └── spl.jar
│   │   ├── error.html
│   │   ├── filelib.html
│   │   ├── foreach.html
│   │   ├── functions.html
│   │   ├── gbufferedimage.html
│   │   ├── gevents.html
│   │   ├── ginteractors.html
│   │   ├── gmath.html
│   │   ├── gobjects.html
│   │   ├── goptionpane.html
│   │   ├── graph.html
│   │   ├── grid.html
│   │   ├── gtable.html
│   │   ├── gtimer.html
│   │   ├── gtypes.html
│   │   ├── gwindow.html
│   │   ├── hashmap.html
│   │   ├── hashset.html
│   │   ├── ibitstream-class.html
│   │   ├── ifbitstream-class.html
│   │   ├── index.html
│   │   ├── istringbitstream-class.html
│   │   ├── lexicon.html
│   │   ├── linkedhashmap.html
│   │   ├── linkedhashset.html
│   │   ├── linkedlist.html
│   │   ├── map.html
│   │   ├── modifications.html
│   │   ├── obitstream-class.html
│   │   ├── ofbitstream-class.html
│   │   ├── ostringbitstream-class.html
│   │   ├── point.html
│   │   ├── pqueue.html
│   │   ├── queue.html
│   │   ├── random.html
│   │   ├── rationale.css
│   │   ├── rationale.html
│   │   ├── regexpr.html
│   │   ├── set.html
│   │   ├── shuffle.html
│   │   ├── simpio.html
│   │   ├── sorttable.js
│   │   ├── sound.html
│   │   ├── sparsegrid.html
│   │   ├── spl.jar
│   │   ├── stack.html
│   │   ├── strlib.html
│   │   ├── thread.html
│   │   ├── timer.html
│   │   ├── tokenscanner.html
│   │   ├── variables.html
│   │   └── vector.html
│   ├── cpplib_old_eroberts/
│   │   ├── cppdoc/
│   │   │   ├── Makefile
│   │   │   ├── appsection.c
│   │   │   ├── cppdoc.c
│   │   │   ├── cppdoc.css
│   │   │   ├── doc/
│   │   │   │   ├── EnumRange-class.html
│   │   │   │   ├── ErrorException-class.html
│   │   │   │   ├── GActionEvent-class.html
│   │   │   │   ├── GArc-class.html
│   │   │   │   ├── GCompound-class.html
│   │   │   │   ├── GEvent-class.html
│   │   │   │   ├── GImage-class.html
│   │   │   │   ├── GKeyEvent-class.html
│   │   │   │   ├── GLabel-class.html
│   │   │   │   ├── GLine-class.html
│   │   │   │   ├── GMouseEvent-class.html
│   │   │   │   ├── GObject-class.html
│   │   │   │   ├── GOval-class.html
│   │   │   │   ├── GPoint-class.html
│   │   │   │   ├── GPolygon-class.html
│   │   │   │   ├── GRect-class.html
│   │   │   │   ├── GRectangle-class.html
│   │   │   │   ├── GTimerEvent-class.html
│   │   │   │   ├── GWindow-class.html
│   │   │   │   ├── GWindowEvent-class.html
│   │   │   │   ├── Graph-class.html
│   │   │   │   ├── Grid-class.html
│   │   │   │   ├── Lexicon-class.html
│   │   │   │   ├── Lock-class.html
│   │   │   │   ├── Map-class.html
│   │   │   │   ├── Point-class.html
│   │   │   │   ├── Queue-class.html
│   │   │   │   ├── Set-class.html
│   │   │   │   ├── Sound-class.html
│   │   │   │   ├── Stack-class.html
│   │   │   │   ├── Thread-class.html
│   │   │   │   ├── TokenScanner-class.html
│   │   │   │   ├── Vector-class.html
│   │   │   │   ├── cmpfn-h.html
│   │   │   │   ├── cmpfn.html
│   │   │   │   ├── console-h.html
│   │   │   │   ├── console.html
│   │   │   │   ├── cppdoc.css
│   │   │   │   ├── direction-h.html
│   │   │   │   ├── direction.html
│   │   │   │   ├── error-h.html
│   │   │   │   ├── error.html
│   │   │   │   ├── filelib-h.html
│   │   │   │   ├── filelib.html
│   │   │   │   ├── foreach-h.html
│   │   │   │   ├── foreach.html
│   │   │   │   ├── gevents-h.html
│   │   │   │   ├── gevents.html
│   │   │   │   ├── gobjects-h.html
│   │   │   │   ├── gobjects.html
│   │   │   │   ├── graph-h.html
│   │   │   │   ├── graph.html
│   │   │   │   ├── graphics-h.html
│   │   │   │   ├── graphics.html
│   │   │   │   ├── grid-h.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── gtypes-h.html
│   │   │   │   ├── gtypes.html
│   │   │   │   ├── gwindow-h.html
│   │   │   │   ├── gwindow.html
│   │   │   │   ├── lexicon-h.html
│   │   │   │   ├── lexicon.html
│   │   │   │   ├── map-h.html
│   │   │   │   ├── map.html
│   │   │   │   ├── point-h.html
│   │   │   │   ├── point.html
│   │   │   │   ├── queue-h.html
│   │   │   │   ├── queue.html
│   │   │   │   ├── random-h.html
│   │   │   │   ├── random.html
│   │   │   │   ├── scanner-h.html
│   │   │   │   ├── scanner.html
│   │   │   │   ├── set-h.html
│   │   │   │   ├── set.html
│   │   │   │   ├── simpio-h.html
│   │   │   │   ├── simpio.html
│   │   │   │   ├── sound-h.html
│   │   │   │   ├── sound.html
│   │   │   │   ├── stack-h.html
│   │   │   │   ├── stack.html
│   │   │   │   ├── strlib-h.html
│   │   │   │   ├── strlib.html
│   │   │   │   ├── thread-h.html
│   │   │   │   ├── thread.html
│   │   │   │   ├── vector-h.html
│   │   │   │   └── vector.html
│   │   │   ├── fillcomments.c
│   │   │   ├── index.txt
│   │   │   ├── test.h
│   │   │   ├── test.html
│   │   │   └── testindex.html
│   │   └── cslib/
│   │       ├── Makefile
│   │       ├── bst.c
│   │       ├── bst.h
│   │       ├── charset.c
│   │       ├── charset.h
│   │       ├── cmdscan.c
│   │       ├── cmdscan.h
│   │       ├── cmpfn.c
│   │       ├── cmpfn.h
│   │       ├── cslib.c
│   │       ├── cslib.h
│   │       ├── cstest.c
│   │       ├── doc/
│   │       │   ├── Makefile
│   │       │   ├── bst-h.html
│   │       │   ├── bst.html
│   │       │   ├── charset-h.html
│   │       │   ├── charset.html
│   │       │   ├── cmdscan-h.html
│   │       │   ├── cmdscan.html
│   │       │   ├── cmpfn-h.html
│   │       │   ├── cmpfn.html
│   │       │   ├── cppdoc.css
│   │       │   ├── cslib-h.html
│   │       │   ├── cslib.html
│   │       │   ├── exception-h.html
│   │       │   ├── exception.html
│   │       │   ├── fastsexp-h.html
│   │       │   ├── fastsexp.html
│   │       │   ├── filelib-h.html
│   │       │   ├── filelib.html
│   │       │   ├── foreach-h.html
│   │       │   ├── foreach.html
│   │       │   ├── gcalloc-h.html
│   │       │   ├── gcalloc.html
│   │       │   ├── gcdebug-h.html
│   │       │   ├── gcdebug.html
│   │       │   ├── generic-h.html
│   │       │   ├── generic.html
│   │       │   ├── gevents-h.html
│   │       │   ├── gevents.html
│   │       │   ├── ginteractors-h.html
│   │       │   ├── ginteractors.html
│   │       │   ├── gmath-h.html
│   │       │   ├── gmath.html
│   │       │   ├── gobjects-h.html
│   │       │   ├── gobjects.html
│   │       │   ├── graph-h.html
│   │       │   ├── graph.html
│   │       │   ├── gtimer-h.html
│   │       │   ├── gtimer.html
│   │       │   ├── gtypes-h.html
│   │       │   ├── gtypes.html
│   │       │   ├── gwindow-h.html
│   │       │   ├── gwindow.html
│   │       │   ├── hashmap-h.html
│   │       │   ├── hashmap.html
│   │       │   ├── include/
│   │       │   │   └── package.html
│   │       │   ├── index.html
│   │       │   ├── iterator-h.html
│   │       │   ├── iterator.html
│   │       │   ├── itertype-h.html
│   │       │   ├── itertype.html
│   │       │   ├── lex-h.html
│   │       │   ├── lex.html
│   │       │   ├── loadobj-h.html
│   │       │   ├── loadobj.html
│   │       │   ├── map-h.html
│   │       │   ├── map.html
│   │       │   ├── options-h.html
│   │       │   ├── options.html
│   │       │   ├── pictures/
│   │       │   │   ├── GInteractorDiagrams/
│   │       │   │   │   ├── GCheckBox.html
│   │       │   │   │   ├── GChooser.html
│   │       │   │   │   └── GSlider.html
│   │       │   │   ├── GObjectDiagrams/
│   │       │   │   │   ├── GArcExamples.html
│   │       │   │   │   ├── GArcExamples.ps
│   │       │   │   │   ├── GArcGeometry.html
│   │       │   │   │   ├── GArcGeometry.ps
│   │       │   │   │   ├── GLabelGeometry.html
│   │       │   │   │   ├── GLabelGeometry.ps
│   │       │   │   │   ├── GPolygonExamples.ps
│   │       │   │   │   ├── Makefile
│   │       │   │   │   ├── PacMan.html
│   │       │   │   │   ├── PacMan.ps
│   │       │   │   │   ├── StopSign.html
│   │       │   │   │   └── StopSign.ps
│   │       │   │   ├── HelloWorld/
│   │       │   │   │   ├── HelloWorld.ps
│   │       │   │   │   └── Makefile
│   │       │   │   └── TypeHierarchies/
│   │       │   │       ├── GEventHierarchy.html
│   │       │   │       ├── GEventHierarchy.ps
│   │       │   │       ├── GInteractorHierarchy.html
│   │       │   │       ├── GInteractorHierarchy.ps
│   │       │   │       ├── GObjectHierarchy.html
│   │       │   │       ├── GObjectHierarchy.ps
│   │       │   │       ├── Makefile
│   │       │   │       └── hierarchy.ps
│   │       │   ├── platform-h.html
│   │       │   ├── platform.html
│   │       │   ├── pqueue-h.html
│   │       │   ├── pqueue.html
│   │       │   ├── queue-h.html
│   │       │   ├── queue.html
│   │       │   ├── random-h.html
│   │       │   ├── random.html
│   │       │   ├── ref-h.html
│   │       │   ├── ref.html
│   │       │   ├── scanner-h.html
│   │       │   ├── scanner.html
│   │       │   ├── set-h.html
│   │       │   ├── set.html
│   │       │   ├── sexp-h.html
│   │       │   ├── sexp.html
│   │       │   ├── sexpcdt-h.html
│   │       │   ├── sexpcdt.html
│   │       │   ├── simpio-h.html
│   │       │   ├── simpio.html
│   │       │   ├── sound-h.html
│   │       │   ├── sound.html
│   │       │   ├── stack-h.html
│   │       │   ├── stack.html
│   │       │   ├── strlib-h.html
│   │       │   ├── strlib.html
│   │       │   ├── symtab-h.html
│   │       │   ├── symtab.html
│   │       │   ├── thread-h.html
│   │       │   ├── thread.html
│   │       │   ├── tokenscanner-h.html
│   │       │   ├── tokenscanner.html
│   │       │   ├── unittest-h.html
│   │       │   ├── unittest.html
│   │       │   ├── vector-h.html
│   │       │   └── vector.html
│   │       ├── exception.c
│   │       ├── exception.h
│   │       ├── filelib.c
│   │       ├── filelib.h
│   │       ├── foreach.c
│   │       ├── foreach.h
│   │       ├── gccx
│   │       ├── generic.c
│   │       ├── generic.h
│   │       ├── gevents.c
│   │       ├── gevents.h
│   │       ├── ginteractors.c
│   │       ├── ginteractors.h
│   │       ├── gmath.c
│   │       ├── gmath.h
│   │       ├── gobjects.c
│   │       ├── gobjects.h
│   │       ├── graph.c
│   │       ├── graph.h
│   │       ├── gtimer.c
│   │       ├── gtimer.h
│   │       ├── gtransform.c
│   │       ├── gtransform.h
│   │       ├── gtypes.c
│   │       ├── gtypes.h
│   │       ├── gwindow.c
│   │       ├── gwindow.h
│   │       ├── hashmap.c
│   │       ├── hashmap.h
│   │       ├── iterator.c
│   │       ├── iterator.h
│   │       ├── itertype.h
│   │       ├── loadobj.c
│   │       ├── loadobj.h
│   │       ├── map.c
│   │       ├── map.h
│   │       ├── options.c
│   │       ├── options.h
│   │       ├── platform.c
│   │       ├── platform.h
│   │       ├── posixthread.c
│   │       ├── pqueue.c
│   │       ├── pqueue.h
│   │       ├── private/
│   │       │   ├── randompatch.h
│   │       │   └── tokenpatch.h
│   │       ├── queue.c
│   │       ├── queue.h
│   │       ├── random.c
│   │       ├── random.h
│   │       ├── ref.c
│   │       ├── ref.h
│   │       ├── set.c
│   │       ├── set.h
│   │       ├── simpio.c
│   │       ├── simpio.h
│   │       ├── sound.c
│   │       ├── sound.h
│   │       ├── stack.c
│   │       ├── stack.h
│   │       ├── strbuf.c
│   │       ├── strbuf.h
│   │       ├── strlib.c
│   │       ├── strlib.h
│   │       ├── thread.c
│   │       ├── thread.h
│   │       ├── todo.txt
│   │       ├── tokenscanner.c
│   │       ├── tokenscanner.h
│   │       ├── unittest.c
│   │       ├── unittest.h
│   │       ├── unixfile.c
│   │       ├── unixfile.e
│   │       ├── vector.c
│   │       ├── vector.h
│   │       ├── winfile.c
│   │       └── winthread.c
│   ├── doc/
│   │   ├── customdoxygen.css
│   │   ├── doxygen.ini
│   │   └── postprocess-doc-file.pl
│   ├── docs/
│   │   └── _old/
│   │       ├── console-h.html
│   │       ├── direction-h.html
│   │       ├── error-h.html
│   │       ├── filelib-h.html
│   │       ├── foreach-h.html
│   │       ├── gevents-h.html
│   │       ├── ginteractors-h.html
│   │       ├── gmath-h.html
│   │       ├── gobjects-h.html
│   │       ├── graph-h.html
│   │       ├── grid-h.html
│   │       ├── gtimer-h.html
│   │       ├── gtypes-h.html
│   │       ├── gwindow-h.html
│   │       ├── hashmap-h.html
│   │       ├── hashset-h.html
│   │       ├── lexicon-h.html
│   │       ├── map-h.html
│   │       ├── point-h.html
│   │       ├── pqueue-h.html
│   │       ├── queue-h.html
│   │       ├── random-h.html
│   │       ├── set-h.html
│   │       ├── simpio-h.html
│   │       ├── sound-h.html
│   │       ├── stack-h.html
│   │       ├── strlib-h.html
│   │       ├── thread-h.html
│   │       ├── tokenscanner-h.html
│   │       └── vector-h.html
│   ├── sample-project/
│   │   ├── res/
│   │   │   └── readme.txt
│   │   ├── sample-project.pro
│   │   └── src/
│   │       ├── hello.cpp
│   │       └── hello.h
│   ├── spl.cpp
│   ├── spl.h
│   ├── spl_cpp_header_autograder_text.txt
│   └── spl_cpp_header_text.txt
├── BothLibraryWelcome.pro
├── DebugHelper/
│   ├── DebugHelper.pro
│   ├── README.md
│   ├── assign_uses.cpp
│   ├── bits.cpp
│   ├── bits.h
│   ├── generate_class_coverage.py
│   ├── main.cpp
│   ├── node_pair.cpp
│   ├── shared.cpp
│   ├── shared.h
│   ├── stanford_hash.cpp
│   ├── stanford_linear.cpp
│   ├── stanford_pq.cpp
│   ├── stanford_tree.cpp
│   └── stl.cpp
├── Docs/
│   ├── ErrorException.html
│   ├── GPoint.html
│   ├── Grid.html
│   ├── GridLocation.html
│   ├── GridLocationRange.html
│   ├── HashMap.html
│   ├── HashSet.html
│   ├── Lexicon.html
│   ├── Map.html
│   ├── PriorityQueue.html
│   ├── Queue.html
│   ├── Set.html
│   ├── Stack.html
│   ├── Vector.html
│   ├── _tokenscanner.html
│   ├── cppdoc.css
│   ├── direction.html
│   ├── error.html
│   ├── filelib.html
│   ├── gmath.html
│   ├── index.html
│   ├── random.html
│   ├── simpio.html
│   ├── strlib.html
│   └── timer.html
├── Library/
│   ├── Library.pro
│   ├── assume_install.mk
│   ├── collections/
│   │   ├── basicgraph.cpp
│   │   ├── basicgraph.h
│   │   ├── collections.cpp
│   │   ├── collections.h
│   │   ├── dawglexicon.cpp
│   │   ├── dawglexicon.h
│   │   ├── deque.h
│   │   ├── graph.h
│   │   ├── grid.h
│   │   ├── gridlocation.cpp
│   │   ├── gridlocation.h
│   │   ├── hashcode.cpp
│   │   ├── hashcode.h
│   │   ├── hashmap.h
│   │   ├── hashset.h
│   │   ├── lexicon.h
│   │   ├── linkedlist.h
│   │   ├── map.h
│   │   ├── optional.cpp
│   │   ├── optional.h
│   │   ├── priorityqueue.h
│   │   ├── queue.h
│   │   ├── set.h
│   │   ├── stack.h
│   │   ├── trielexicon.cpp
│   │   ├── trielexicon.h
│   │   └── vector.h
│   ├── console/
│   │   ├── console.cpp
│   │   ├── console.h
│   │   ├── consolestreambuf.h
│   │   ├── consoletext.h
│   │   ├── echoinputstreambuf.h
│   │   ├── forwardingstreambuf.h
│   │   ├── gconsolewindow.cpp
│   │   ├── gconsolewindow.h
│   │   ├── ioutils.cpp
│   │   ├── ioutils.h
│   │   ├── limitoutputstreambuf.h
│   │   ├── plainconsole.cpp
│   │   └── plainconsole.h
│   ├── graphics/
│   │   ├── gbrowserpane.cpp
│   │   ├── gbrowserpane.h
│   │   ├── gbutton.cpp
│   │   ├── gbutton.h
│   │   ├── gcanvas.cpp
│   │   ├── gcanvas.h
│   │   ├── gcheckbox.cpp
│   │   ├── gcheckbox.h
│   │   ├── gchooser.cpp
│   │   ├── gchooser.h
│   │   ├── gclipboard.cpp
│   │   ├── gclipboard.h
│   │   ├── gcolor.cpp
│   │   ├── gcolor.h
│   │   ├── gcolorchooser.cpp
│   │   ├── gcolorchooser.h
│   │   ├── gcontainer.cpp
│   │   ├── gcontainer.h
│   │   ├── gdiffimage.cpp
│   │   ├── gdiffimage.h
│   │   ├── gdownloader.cpp
│   │   ├── gdownloader.h
│   │   ├── gdrawingsurface.cpp
│   │   ├── gdrawingsurface.h
│   │   ├── gevent.cpp
│   │   ├── gevent.h
│   │   ├── geventqueue.cpp
│   │   ├── geventqueue.h
│   │   ├── gfilechooser.cpp
│   │   ├── gfilechooser.h
│   │   ├── gfont.cpp
│   │   ├── gfont.h
│   │   ├── gfontchooser.cpp
│   │   ├── gfontchooser.h
│   │   ├── ginteractor.cpp
│   │   ├── ginteractor.h
│   │   ├── ginteractors.h
│   │   ├── glabel.cpp
│   │   ├── glabel.h
│   │   ├── glayout.cpp
│   │   ├── glayout.h
│   │   ├── gobjects.cpp
│   │   ├── gobjects.h
│   │   ├── gobservable.cpp
│   │   ├── gobservable.h
│   │   ├── goptionpane.cpp
│   │   ├── goptionpane.h
│   │   ├── gradiobutton.cpp
│   │   ├── gradiobutton.h
│   │   ├── gscrollbar.cpp
│   │   ├── gscrollbar.h
│   │   ├── gscrollpane.cpp
│   │   ├── gscrollpane.h
│   │   ├── gslider.cpp
│   │   ├── gslider.h
│   │   ├── gspacer.cpp
│   │   ├── gspacer.h
│   │   ├── gtable.cpp
│   │   ├── gtable.h
│   │   ├── gtextarea.cpp
│   │   ├── gtextarea.h
│   │   ├── gtextfield.cpp
│   │   ├── gtextfield.h
│   │   ├── gthread.cpp
│   │   ├── gthread.h
│   │   ├── gtimer.cpp
│   │   ├── gtimer.h
│   │   ├── gtypes.cpp
│   │   ├── gtypes.h
│   │   ├── gwindow.cpp
│   │   ├── gwindow.h
│   │   ├── moc_unity.cpp
│   │   ├── qtgui.cpp
│   │   └── qtgui.h
│   ├── images.qrc
│   ├── io/
│   │   ├── filelib.cpp
│   │   ├── filelib.h
│   │   ├── simpio.cpp
│   │   ├── simpio.h
│   │   ├── tokenscanner.cpp
│   │   ├── tokenscanner.h
│   │   ├── urlstream.cpp
│   │   └── urlstream.h
│   ├── private/
│   │   ├── README.md
│   │   ├── build.h.in
│   │   ├── filelibunix.cpp
│   │   ├── filelibwindows.cpp
│   │   ├── headless.h
│   │   ├── init.cpp
│   │   ├── init.h
│   │   ├── librarymain.cpp
│   │   ├── mainwrapper.cpp
│   │   └── static.h
│   ├── resources/
│   │   ├── EnglishWords.txt
│   │   └── Makefile
│   ├── spl_version.in
│   ├── stanfordtypes.py
│   ├── system/
│   │   ├── error.cpp
│   │   ├── error.h
│   │   ├── exceptions.cpp
│   │   ├── exceptions.h
│   │   ├── os.cpp
│   │   └── os.h
│   ├── testing/
│   │   ├── MemoryDiagnostics.cpp
│   │   ├── MemoryDiagnostics.h
│   │   ├── README.txt
│   │   ├── SimpleTest.h
│   │   ├── TestDriver.cpp
│   │   ├── TestDriver.h
│   │   ├── TestingGUI.cpp
│   │   ├── TextUtils.cpp
│   │   ├── TextUtils.h
│   │   └── styles_css_h
│   └── util/
│       ├── direction.cpp
│       ├── direction.h
│       ├── gmath.cpp
│       ├── gmath.h
│       ├── observable.h
│       ├── random.cpp
│       ├── random.h
│       ├── require.cpp
│       ├── require.h
│       ├── sound.cpp
│       ├── sound.h
│       ├── splversion.cpp
│       ├── splversion.h
│       ├── strlib.cpp
│       ├── strlib.h
│       ├── timer.cpp
│       └── timer.h
├── README.md
├── RandomClientTests/
│   ├── BugFixes/
│   │   ├── BugFixes.pro
│   │   └── bugfixes.cpp
│   ├── CompileFlags/
│   │   ├── CompileFlags.pro
│   │   └── compile.cpp
│   ├── LexCrash/
│   │   ├── LexTest.pro
│   │   ├── README.md
│   │   ├── main.cpp
│   │   └── res/
│   │       └── EnglishWords.txt
│   └── ShadowTest/
│       ├── ShadowTest.pro
│       ├── again.h
│       ├── extra/
│       │   ├── NOTstrlib.h
│       │   ├── mine.h
│       │   └── vector.h
│       ├── main.cpp
│       ├── strlib.cpp
│       └── strlib.h
├── SPL-unit-tests/
│   ├── .gitignore
│   ├── README.md
│   ├── UnitTests.pro
│   ├── common.h
│   ├── main.cpp
│   ├── res/
│   │   ├── EnglishWords.txt
│   │   ├── end_cr
│   │   ├── end_crlf
│   │   └── end_lf
│   ├── test-collection-read.cpp
│   ├── test-collections.cpp
│   ├── test-console.cpp
│   ├── test-dawg.cpp
│   ├── test-deque.cpp
│   ├── test-error.cpp
│   ├── test-exceptions.cpp
│   ├── test-filelib.cpp
│   ├── test-graphics.cpp
│   ├── test-grid.cpp
│   ├── test-hashmap.cpp
│   ├── test-hashset.cpp
│   ├── test-lex.cpp
│   ├── test-linkedlist.cpp
│   ├── test-map.cpp
│   ├── test-pqueue.cpp
│   ├── test-queue.cpp
│   ├── test-set.cpp
│   ├── test-simpio.cpp
│   ├── test-simpletest.cpp
│   ├── test-sound.cpp
│   ├── test-stack.cpp
│   ├── test-strlib.cpp
│   ├── test-trie.cpp
│   ├── test-url.cpp
│   └── test-vector.cpp
├── SimpleTestGuide/
│   ├── SimpleTest.pro
│   ├── main.cpp
│   ├── simpletest.css
│   ├── simpletestguide.cpp
│   └── unittest.cpp
├── Welcome/
│   ├── Welcome.pro
│   └── welcome.cpp
└── Wizard/
    ├── README.md.in
    ├── file.pro.in
    ├── main.cpp.in
    └── wizard.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Editor droppings
*~
*.sw?

# MacOS droppings
.DS_Store

*.pro.user.*
*.pro.user

# Build products
build*/
*.app
*.exe


================================================
FILE: Archived/Autograder_QtCreatorProject/Autograder_QtCreatorProject.pro
================================================
#####################################################################
## Stanford CS 106 B/X Qt Creator project file                     ##
#####################################################################
#
# This file specifies the information about your project to Qt Creator.
# You should not need to modify this file to complete your assignment.
#
# @author Marty Stepp (past authors/support by Keith Schwarz, Reid Watson, etc.)
# @version 2019/04/23
# - revert copydata code for copying resource files
DEFINES += SPL_PROJECT_VERSION=20190423   # kludgy YYYYMMDD constant used by lib to know its version

# global Qt/project settings
TEMPLATE = app
PROJECT_FILTER =
QT       += core gui multimedia network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

###############################################################################
# BEGIN SECTION FOR SPECIFYING SOURCE/LIBRARY/RESOURCE FILES OF PROJECT       #
###############################################################################

# remove spaces from target executable for better Windows compatibility
TARGET = $$replace(TARGET, " ", _)

# checks to make sure we haven't accidentally opened the project
# from within a ZIP archive (common mistake on Windows)

win32 {
    contains(PWD, .*\.zip.*) | contains(PWD, .*\.ZIP.*) {
        message("")
        message(*******************************************************************)
        message(*** ERROR: You are trying to open this project from within a .ZIP archive:)
        message(*** $$PWD)
        message(*** You need to extract the files out of the ZIP file first.)
        message(*** Open the ZIP in your file explorer and press the Extract button.)
        message(*******************************************************************)
        message("")
        error(Exiting.)
    }
}

# check for intl chars in path (common issue for intl students)
PWD_WITHOUT_BAD_CHARS = $$PWD
PWD_WITHOUT_BAD_CHARS ~= s|[^a-zA-Z0-9_ ().\/:;+-]+|???
BAD_CHARS = $$PWD
BAD_CHARS ~= s|[a-zA-Z0-9_ ().\/:;-]+|
!isEmpty(BAD_CHARS) {
    message("")
    message(*******************************************************************)
    message(*** ERROR: Your project directory contains invalid characters:)
    message(*** $$PWD)
    message(***)
    message(*** The characters that are invalid are: $$BAD_CHARS)
    message(***)
    message(*** You need to store your project in a directory without any punctuation)
    message(*** marks such as commas, or international symbols such as)
    message(*** Chinese or Korean symbols.)
    message(*** If you keep seeing this error try creating a simple directory)
    message(*** name such as "C:\Programs\Homework1.")
    message(*******************************************************************)
    message("")
    error(Exiting.)
}

# checks to ensure that the Stanford C++ library is present in this project
!exists($$PWD/lib/StanfordCPPLib/private/version.h) {
    message("")
    message(*******************************************************************)
    message(*** ERROR: Stanford C++ library not found!)
    message(*** This project cannot run without the folder lib/StanfordCPPLib/.)
    message(*** Place that folder into your project and try again.)
    message(*******************************************************************)
    message("")
    error(Exiting.)
}

win64 {
    !exists($$PWD/lib/addr2line64.exe) {
        message("")
        message(*******************************************************************)
        message(*** ERROR: Stanford C++ library support file 'addr2line64.exe' not found!)
        message(*** Our library needs this file present to produce stack traces.)
        message(*** Place that file into your lib/ folder and try again.)
        message(*******************************************************************)
        message("")
        warning(Exiting.)
    }
}

win32 {
    !exists($$PWD/lib/addr2line.exe) {
        message("")
        message(*******************************************************************)
        message(*** ERROR: Stanford C++ library support file 'addr2line.exe' not found!)
        message(*** Our library needs this file present to produce stack traces.)
        message(*** Place that file into your lib/ folder and try again.)
        message(*******************************************************************)
        message("")
        warning(Exiting.)
    }
}

!exists($$PWD/lib/iconstrip.png) {
    message("")
    message(*******************************************************************)
    message(*** ERROR: Stanford library cannot find image strip file:)
    message(*** lib/iconstrip.png)
    message(*** This project cannot run without this file present.)
    message(*** Place the file into your lib/ folder and try again.)
    message(*******************************************************************)
    message("")
    warning(Exiting.)
}

# precompiled header speeds up build times
!win32 {
PRECOMPILED_HEADER = $$files($$PWD/lib/StanfordCPPLib/private/precompiled.h)
}

# honeypot to trick Qt Creator so that adding files works from within IDE;
# Qt looks for first 'SOURCES *=' line and adds newly added .cpp/h files there.
# But then that causes the files to be added twice because of *.cpp/h rules below.
# To get around this, we follow the first 'SOURCES *=' line by a line that clears
# out SOURCES, so that the Qt Creator .pro modification is ineffectual.
DISTFILES *= ""
DISTFILES = ""
HEADERS *= ""
HEADERS = ""
SOURCES *= ""
SOURCES = ""

# include various source .cpp files and header .h files in the build process
# (student's source code can be put into project root, or src/ subfolder)
SOURCES *= $$files($$PWD/lib/StanfordCPPLib/*.cpp, true)
SOURCES *= $$files($$PWD/src/*.cpp, true)
exists($$PWD/$$PROJECT_FILTER*.cpp) {
    SOURCES *= $$files($$PWD/$$PROJECT_FILTER*.cpp)
}

exists($$PWD/lib/StanfordCPPLib/*.h) {
    HEADERS *= $$files($$PWD/lib/StanfordCPPLib/*.h)
}
HEADERS *= $$files($$PWD/lib/StanfordCPPLib/*.h, true)
HEADERS *= $$files($$PWD/src/*.h, true)
exists($$PWD/$$PROJECT_FILTER*.h) {
    HEADERS *= $$files($$PWD/$$PROJECT_FILTER*.h)
}

# directories examined by Qt Creator when student writes an #include statement
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/collections/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/graphics/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/io/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/system/
INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/util/
exists($$PWD/lib/StanfordCPPLib/autograder/*) {
    INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/autograder/
}
INCLUDEPATH *= $$PWD/src/
INCLUDEPATH *= $$PWD/
exists($$PWD/src/autograder/$$PROJECT_FILTER/*.h) {
    INCLUDEPATH *= $$PWD/src/autograder/$$PROJECT_FILTER/
}
exists($$PWD/src/test/*.h) {
    INCLUDEPATH *= $$PWD/src/test/
}

# directories listed as "Other files" in left Project pane of Qt Creator
exists($$PWD/res/*) {
    OTHER_FILES *= $$files($$PWD/res/*, true)
}
exists($$PWD/*.txt) {
    OTHER_FILES *= $$files($$PWD/*.txt)
}
exists($$PWD/input/*) {
    OTHER_FILES *= $$files($$PWD/input/*, true)
}
exists($$PWD/output/*) {
    OTHER_FILES *= $$files($$PWD/output/*, true)
}

###############################################################################
# END SECTION FOR SPECIFYING SOURCE/LIBRARY/RESOURCE FILES OF PROJECT         #
###############################################################################


###############################################################################
# BEGIN SECTION FOR SPECIFYING COMPILER/LINKER FLAGS AND LIBRARIES            #
###############################################################################

# set up flags for the C++ compiler
# (In general, many warnings/errors are enabled to tighten compile-time checking.
# A few overly pedantic/confusing errors are turned off for simplicity.)
CONFIG += no_include_pwd         # make sure we do not accidentally #include files placed in 'resources'
CONFIG += sdk_no_version_check   # removes spurious warnings on Mac OS X
# CONFIG += warn_off

# gives us a bit more precision about which errors are printed
QMAKE_CFLAGS_WARN_ON -= -Wall
QMAKE_CFLAGS_WARN_ON -= -Wextra
QMAKE_CFLAGS_WARN_ON -= -W
QMAKE_CXXFLAGS_WARN_ON -= -Wall
QMAKE_CXXFLAGS_WARN_ON -= -Wextra
QMAKE_CXXFLAGS_WARN_ON -= -W

win32 {
    # some Windows systems have old MinGW compilers, so be safe and use C++11
    CONFIG += c++11
} else {
    # Mac/Linux should support the latest C++ features
    CONFIG += c++14
}

# uncomment this if you want to dump the preprocessor output into the .o files
# (useful when debugging advanced preprocessor hacking)
# QMAKE_CXXFLAGS += -E

QMAKE_CXXFLAGS += -Wall
#QMAKE_CXXFLAGS += -Wextra
QMAKE_CXXFLAGS += -Wcast-align
#QMAKE_CXXFLAGS += -Wfloat-equal
QMAKE_CXXFLAGS += -Wformat=2
QMAKE_CXXFLAGS += -Wlogical-op
QMAKE_CXXFLAGS += -Wno-missing-field-initializers
QMAKE_CXXFLAGS += -Wno-old-style-cast
QMAKE_CXXFLAGS += -Wno-sign-compare
QMAKE_CXXFLAGS += -Wno-sign-conversion
QMAKE_CXXFLAGS += -Wno-write-strings
QMAKE_CXXFLAGS += -Wreturn-type
QMAKE_CXXFLAGS += -Werror=return-type
QMAKE_CXXFLAGS += -Werror=uninitialized
QMAKE_CXXFLAGS += -Wunreachable-code
QMAKE_CXXFLAGS += -Wunused-parameter
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/$$PROJECT_FILTER/*.h) | exists($$PWD/lib/autograder/$$PROJECT_FILTER/*.cpp) {
    # omit some warnings/errors in autograder projects
    # (largely because the Google Test framework violates them a ton of times)
    QMAKE_CXXFLAGS += -Wno-deprecated
    QMAKE_CXXFLAGS += -Wno-reorder
    QMAKE_CXXFLAGS += -Wno-unused-function
    QMAKE_CXXFLAGS += -Wno-useless-cast
}

# additional flags for Windows
win32 {
    LIBS += -lDbghelp
    LIBS += -lbfd
    LIBS += -limagehlp
    cache()
} else {
    # flags that don't work on Windows MinGW compiler
    QMAKE_CXXFLAGS += -Wno-unused-const-variable
    LIBS += -ldl
}

# additional flags for Mac OS X
macx {
    # calling cache() reduces warnings on Mac OS X systems
    cache()
    QMAKE_MAC_SDK = macosx
}

# additional flags for Linux
unix:!macx {
    cache()
}

# libraries for all OSes
LIBS += -lpthread

# additional flags for clang compiler (default on Mac)
COMPILERNAME = $$QMAKE_CXX
COMPILERNAME ~= s|.*/|
equals(COMPILERNAME, clang++) {
    QMAKE_CXXFLAGS += -Wempty-init-stmt
    QMAKE_CXXFLAGS += -Wignored-qualifiers
    QMAKE_CXXFLAGS += -Winitializer-overrides
    QMAKE_CXXFLAGS += -Wmissing-field-initializers
    QMAKE_CXXFLAGS += -Wmissing-method-return-type
    QMAKE_CXXFLAGS += -Wnull-pointer-arithmetic
    QMAKE_CXXFLAGS += -Wsemicolon-before-method-body
    QMAKE_CXXFLAGS += -Wno-format-nonliteral
    QMAKE_CXXFLAGS += -Wno-inconsistent-missing-override
    QMAKE_CXXFLAGS += -Wno-overloaded-virtual
    QMAKE_CXXFLAGS += -Wno-unknown-warning-option
}

# set up configuration flags used internally by the Stanford C++ libraries
# These flags are all optional but can simplify project configuration.
# (setting x/y to 999999 centers the window)
# (see platform.cpp/h for descriptions of some of these flags)

# wrapper name for 'main' function (needed so student can write 'int main'
# but our library can grab the actual main function to initialize itself)
DEFINES += SPL_REPLACE_MAIN_FUNCTION=1
DEFINES += main=qMain

# x/y location and w/h of the graphical console window; set to -1 to center
DEFINES += SPL_CONSOLE_X=-1
DEFINES += SPL_CONSOLE_Y=-1
DEFINES += SPL_CONSOLE_WIDTH=900
DEFINES += SPL_CONSOLE_HEIGHT=550

# font size of the font in the graphical console window; can also be set via window menu
#DEFINES += SPL_CONSOLE_FONTSIZE=18

# echo graphical console onto the plain text console as well?
DEFINES += SPL_CONSOLE_ECHO

# quit the C++ program when the graphical console is closed?
DEFINES += SPL_CONSOLE_EXIT_ON_CLOSE

# crash if the .pro is older than the minimum specified in version.h? (SPL_PROJECT_VERSION)
DEFINES += SPL_VERIFY_PROJECT_VERSION

# allow clients to access the internal data inside the heap of PriorityQueue?
# (used for some practice exam exercises/demos)
DEFINES += SPL_PQUEUE_ALLOW_HEAP_ACCESS

# should toString / << of a PriorityQueue display the elements in sorted order,
# or in heap internal order? the former is more expected by client; the latter
# is faster and avoids a deep-copy
DEFINES += SPL_PQUEUE_PRINT_IN_HEAP_ORDER

# flag to throw exceptions when a collection iterator is used after it has
# been invalidated (e.g. if you remove from a Map while iterating over it)
DEFINES += SPL_THROW_ON_INVALID_ITERATOR

# flag to add members like 'cost', 'visited', etc. to BasicGraph Vertex/Edge
# (we are going to disable these to force more interesting implementations)
# DEFINES += SPL_BASICGRAPH_VERTEX_EDGE_RICH_MEMBERS

# should we throw an error() when operator >> fails on a collection?
# for years this was true, but the C++ standard says you should just silently
# set the fail bit on the stream and exit, so that has been made the default.
# DEFINES += SPL_ERROR_ON_STREAM_EXTRACT

# scale up the console window on high-DPI screens?
# DEFINES += SPL_SCALE_HIGH_DPI_SCREEN

# is the .cpp portion of the library merged into a single .cpp file
# to speed up compilation?
DEFINES += SPL_MERGED_LIBRARY_SINGLE_FILE

# should we attempt to precompile the Qt moc_*.cpp files for speed?
DEFINES += SPL_PRECOMPILE_QT_MOC_FILES

# build-specific options (debug vs release)

# options for the 'debug' target (default):
# use no optimization, generate debugger symbols,
# and catch/print to console any uncaught exceptions thrown by the program
CONFIG(debug, debug|release) {
    QMAKE_CXXFLAGS += -g3
    QMAKE_CXXFLAGS += -fno-inline
    QMAKE_CXXFLAGS += -fno-omit-frame-pointer

    unix:!macx {
        equals(COMPILERNAME, g++) {
            # on Linux g++, these flags help us gather line numbers for stack traces
            QMAKE_CXXFLAGS += -rdynamic
            QMAKE_CXXFLAGS += -export-dynamic
            QMAKE_CXXFLAGS += -Wl,--export-dynamic
            QMAKE_LFLAGS += -export-dynamic
            QMAKE_LFLAGS += -rdynamic
        }
    }
    unix:macx {
        equals(COMPILERNAME, clang++) {
            QMAKE_CXXFLAGS += -Wno-unused-command-line-argument
            QMAKE_CXXFLAGS += -Wl,-export_dynamic
            QMAKE_CXXFLAGS += -Wl,-export-dynamic
            QMAKE_CXXFLAGS += -Wl,--export-dynamic
            QMAKE_LFLAGS += -rdynamic
            QMAKE_LFLAGS += -Wl,-no_pie
        }
    }

    # print details about uncaught exceptions with red error text / stack trace
    DEFINES += SPL_CONSOLE_PRINT_EXCEPTIONS
}

# options for the 'release' target:
# enable some compiler optimizations, and
# make it statically linked so it is a stand-alone executable
CONFIG(release, debug|release) {
    QMAKE_CXXFLAGS += -O2
    # commenting out -static because it doesn't link to Qt libraries properly
    #QMAKE_LFLAGS += -static

    macx {
        QMAKE_POST_LINK += 'macdeployqt $${OUT_PWD}/$${TARGET}.app'
    }
    unix:!macx {
        QMAKE_LFLAGS += -static-libgcc
        QMAKE_LFLAGS += -static-libstdc++
    }
    win32 {
        TARGET_PATH = $${OUT_PWD}/release/$${TARGET}.exe
        TARGET_PATH ~= s,/,\\,g

        OUT_PATH = $${OUT_PWD}/
        OUT_PATH ~= s,/,\\,g

        QMAKE_LFLAGS += -static-libgcc
        QMAKE_LFLAGS += -static-libstdc++
        QMAKE_POST_LINK += copy '"'$${TARGET_PATH}'"' '"'$${OUT_PATH}'"'
    }
}

###############################################################################
# END SECTION FOR SPECIFYING COMPILER/LINKER FLAGS AND LIBRARIES              #
###############################################################################


###############################################################################
# BEGIN SECTION FOR CS 106B/X AUTOGRADER PROGRAMS                             #
###############################################################################

# settings specific to CS 106 B/X auto-grading programs; do not modify
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/*.h) | exists($$PWD/src/autograder/$$PROJECT_FILTER/*.cpp) {
    # include the various autograder source code and libraries in the build process
    exists($$PWD/lib/autograder/*.cpp) {
        SOURCES *= $$files($$PWD/lib/autograder/*.cpp, true)
    }
    exists($$PWD/lib/autograder/*.h) {
        HEADERS *= $$files($$PWD/lib/autograder/*.h, true)
    }
    exists($$PWD/lib/autograder/*) {
        INCLUDEPATH *= $$PWD/lib/autograder/
    }
    exists($$PWD/lib/StanfordCPPLib/autograder/*) {
        INCLUDEPATH *= $$PWD/lib/StanfordCPPLib/autograder/
    }
    exists($$PWD/src/autograder/*.h) {
        INCLUDEPATH *= $$PWD/src/autograder/
    }
    exists($$PWD/src/autograder/$$PROJECT_FILTER/*.h) {
        INCLUDEPATH *= $$PWD/src/autograder/$$PROJECT_FILTER/
    }

    DEFINES += SPL_AUTOGRADER_MODE

    # define the style of autograder you want to use (GUI vs console)
    DEFINES += SPL_GRAPHICAL_AUTOGRADER
    # DEFINES += SPL_CONSOLE_AUTOGRADER

    # a check to ensure that required autograder resources are present in this project
    !exists($$PWD/lib/iconstrip-autograder.png) {
        message("")
        message(*******************************************************************)
        message(*** ERROR: Stanford library cannot find autograder image strip file:)
        message(*** lib/iconstrip-autograder.png)
        message(*** This project cannot run without this file present.)
        message(*** Place the file into your lib/ folder and try again.)
        message(*******************************************************************)
        message("")
        error(Exiting.)
    }
}
###############################################################################
# END SECTION FOR CS 106B/X AUTOGRADER PROGRAMS                               #
###############################################################################


###############################################################################
# BEGIN SECTION FOR DEFINING HELPER FUNCTIONS FOR RESOURCE COPYING            #
###############################################################################

COPY_RESOURCE_FILES_INPUT = ""

win32 {
    # copy addr2line exe program(s) to capture stack traces on Windows
    exists($$PWD/lib/*.exe) {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.exe)
    }
    # optional .dll files for network features on Windows
    exists($$PWD/lib/*.dll) {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.dll)
    }
}
# copy icons and image strips for library GUI/console windows
exists($$PWD/lib/*.png) {
    COPY_RESOURCE_FILES_INPUT += $$files($$PWD/lib/*.png)
}
exists($$PWD/*.txt) {
    COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.txt)
}
exists($$PWD/res/*) {
    win32 {
        exists($$PWD/res/*/*) {
            # this will preserve the nested res/ directory structure on Windows,
            # at the unfortunate cost of copying res/ to build dir on every run;
            # recommended: avoid res subfolders to avoid this penalty on Windows
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res)
        } else {
            # res/ with no subdirectories will properly be copied only on modification
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res/*.*)
        }
    } else {
        # Mac/Linux have proper recursive file-copying semantics in all cases
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/res/*, true)
    }
}
# input/ and output/ have same nested subfolder issue as res/
exists($$PWD/input/*) {
    win32 {
        exists($$PWD/input/*/*) {
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input)
        } else {
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input/*.*)
        }
    } else {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/input, true)
    }
}
exists($$PWD/output/*) {
    win32 {
        exists($$PWD/output/*/*) {
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output)
        } else {
            COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output/*.*)
        }
    } else {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/output, true)
    }
}
exists($$PWD/lib/autograder/*.h) | exists($$PWD/lib/StanfordCPPLib/autograder/*.h) | exists($$PWD/src/autograder/$$PROJECT_FILTER/*.cpp) {
    # in autograder projects, copy over student's .cpp and .h files for possible style checking
    exists($$PWD/*.cpp) {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.cpp)
    }
    exists($$PWD/*.h) {
        COPY_RESOURCE_FILES_INPUT += $$files($$PWD/*.h)
    }
}

# platform-specific commands to copy files and folders to build directory
copy_resource_files.name = Copy resource files to the build directory
win32 {
    # https://support.microsoft.com/en-us/help/289483/switches-that-you-can-use-with-xcopy-and-xcopy32-commands
    # /s - copy subfolders
    # /q - quiet (no verbose output)
    # /y - overwrite without prompting
    # /i - if destination does not exist and copying more than one file, assumes destination is a folder
    copy_resource_files.commands = xcopy /s /q /y ${QMAKE_FILE_IN}
} else {
    copy_resource_files.commands = cp -rf ${QMAKE_FILE_IN} .
}
# copy_resource_files.commands = ${COPY_FILE} ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_resource_files.input = COPY_RESOURCE_FILES_INPUT
copy_resource_files.output = $${OUT_PWD}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_resource_files.CONFIG = no_link no_clean target_predeps
QMAKE_EXTRA_COMPILERS += copy_resource_files

###############################################################################
# END SECTION FOR DEFINING HELPER FUNCTIONS FOR RESOURCE COPYING              #
###############################################################################

# END OF FILE (this should be line #560; if not, your .pro has been changed!)


================================================
FILE: Archived/Autograder_QtCreatorProject/lateDays.txt
================================================
student_submission_time: 13/Oct/2014 10:31:15
assignment_due_time: 13/Oct/2014 23:59:00
calendar_days_late: 0


================================================
FILE: Archived/Autograder_QtCreatorProject/lib/readme.txt
================================================
This directory contains any libraries that should be
linked to your project when it is built.
The most common library we will link to is the
Stanford C++ library (cpplib).


================================================
FILE: Archived/Autograder_QtCreatorProject/res/inputpanel-mainfunc.xml
================================================
<inputpanel assignment="CS 106B Test">
	<category name="General">
		<button text="Yes" />
		<button text="No" />
		<button text="Enter" input="\n" />
	</category>
	
	<category name="Other">
		<button text="OK" />
		<button text="Cancel" />
	</category>
</inputpanel>


================================================
FILE: Archived/Autograder_QtCreatorProject/res/myinput.txt
================================================
EMPTY DEFAULT FILE CONTENTS (replace with the student's!)
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789


================================================
FILE: Archived/Autograder_QtCreatorProject/res/stylecheck-mainfunc-cpp.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<stylecheck type="text" filename="life.cpp" omitonpass="true">
	<pattern regex="INSTRUCTOR'S SOLUTION" count="0" showcounts="false" description="Are you running the style checker on the instructor's solution?" />

	<!-- decomposition -->
	<category name="Procedural decomp and parameters">
		<pattern regex="\n(?:int|double|bool|Grid|Vector)[^()]+;" count="0" description="global variables" />
		<pattern regex="\n(:IDENT:)[^()\n]*(:IDENT:)(:SPACES:)\([^\)]*\)[ \t\n]{0,255}\{" mincount="3" description="functions (including main)" />
		<pattern regex="\n(:IDENT:)[^()\n]*(:IDENT:)(:SPACES:)\([^\)]*\)[ \t\n]{0,255};" mincount="2" description="function prototypes" />
		<pattern regex="const" mincount="2" description="using 'const' on parameters (rough count)" />
		<pattern regex="const(:SPACES:)(?:bool|char|double|int)" count="0" description="using 'const' on primitive parameters (not needed!)" />
	</category>
	
	<category name="Collections and algorithms">
		<pattern regex="#(:SPACES:)include(:SPACES:)&lt;(:SPACES:)(?:map|set|algorithm|vector|stack|queue|deque|hash_map|hash_set)(:SPACES:)&gt;" count="0" description="including STL ... why?" />
		<pattern regex="\([^\)]*string(:SPACES:)(:IDENT:).*\)" count="0" description="passing strings by value" />
		<pattern regex="(?:[vV]ector|LinkedList|[sS]et|[mM]ap|HashSet|HashMap|Lexicon|Stack|Queue|Grid)(:SPACES:)&lt;(:SPACES:)(?:int|double|string)(:SPACES:)&gt;" count="0" description="using collections" />
		<pattern regex="readEntireFile" count="0" description="using readEntireFile instead of ifstream" />
	</category>
	
	<!-- redundancy -->
	<category name="Redundancy">
		<pattern regex=".*nimate,(:SPACES:).*ick,(:SPACES:).*uit" maxcount="1" description="redundancy check: 'animate/tick/quit' prompt message" />
		<pattern regex="[pP]lease type a" maxcount="2" description="redundancy check: 'Please type a' prompt message" />
		<pattern regex="[mM]ad [lL]ib input file[?]" maxcount="1" description="redundancy check: 'Mad Lib input file?' prompt message" />
		<pattern regex="\.(:SPACES:)open(:SPACES:)\(" maxcount="1" description="redundancy check: calling open() on an ifstream" />
		<pattern regex="\[[^\]]+\](:SPACES:)=(:SPACES:)(?:true|false|0|1|'X'|'-'|&quot;X&quot;|&quot;-&quot;)(:SPACES:);" maxcount="4" description="redundancy check: assigning literal values into grid cells (did they not use a for-loop around the 8 neighbors?)" />
	</category>

	<!-- goofy C++ stuff -->
	<category name="C++ idioms">
		<pattern regex="(?:int|double|char|string|bool|(?:DawgLexicon|Grid|Graph|HashMap|HashSet|Lexicon|LinkedList|Map|Queue|Set|Stack|Vector|map|set|algorithm|vector|stack|queue|deque|hash_map|hash_set)(:SPACES:)&lt;(:SPACES:)(:IDENT:)(:SPACES:)&gt;)(:SPACES:)\*(:SPACES:)(:IDENT:)" count="0" description="using pointers" />
		<pattern regex="(?:printf|scanf|fopen|fclose|fread|fwrite|fprintf|fscanf|atoi|itoa)" count="0" description="calling C I/O functions like printf, scanf, fopen" />
		<pattern regex="ifstream" mincount="1" description="using ifstream to read input file" />
		<pattern regex="ostringstream" mincount="1" description="using ostringstream to buffer story output" />
	</category>

	<!-- aesthetics and formatting -->
	<category name="Aesthetics and formatting">
		<pattern regex=".{101,}\n" count="0" description="long lines" />
		<pattern regex=".*;.*;.*;" count="0" description="multiple statements on same line" />
		<pattern regex="\r?\n(:SPACES:)\r?\n" mincount="6" description="blank lines; why don't they have any spacing in their program?" />
	</category>
	
	<!-- commenting -->
	<category name="Commenting">
		<pattern regex="(\/\/.*)|(\/\*([^*]|([*][^\/])\r?\n?)*\*\/)" mincount="8" description="comments" list="false" />
		<pattern regex="(?:short stories that have blanks called placeholders)|(?:second person to fill in each of the placeholders)|(?:often with humorous results)|(?:nce the user has filled in all of the placeholders)|(?:input files are mostly just plain text)|(?:Placeholders are represented as ranges of characters that begin with)|(?:user's response to the prompt is inserted into the eventual output)" count="0" description="copying comments from spec (approximate)" />
		<pattern regex="(?:TODO: [rR]emove this comment)|(?:TODO: [fF]inish the program)" count="0" description="TODO comments from starter code" />
	</category>

	<!-- otherwise good style -->
	<category name="Otherwise good style">
		<pattern regex="double " maxcount="1" description="type double should not be used on this assignment" />
		<pattern regex="[!=]=(:SPACES:)(true|false)" count="0" description="bad boolean zen (== true/false)" />
		<!--
		<pattern regex="else(:SPACES:)if" mincount="2" description="'else if' statement (are they always using if/if/if?  that's bad structure)" />
		-->
		<pattern regex="else" mincount="2" description="'else' statement (are they always using if/if/if?  that's bad structure)" />
	</category>
</stylecheck>


================================================
FILE: Archived/Autograder_QtCreatorProject/src/mainfunc.cpp
================================================
/*
 * Test file for verifying the Stanford C++ autograder lib functionality.
 */

#include <iostream>
#include <string>
#include <vector>
#include "autograder.h"
#include "consoletext.h"
#include "gtest-marty.h"
#include "queue.h"
#include "simpio.h"
#include "stack.h"
#include "stl.h"
#include "stylecheck.h"
#include "vector.h"
#include "testcases.h"
#include "private/version.h"
#include "exceptions.h"
using namespace std;

//TEST_CATEGORY(PassFailTests, "standard pass/fail tests");

//void bar() {
//    // error("oooooops");
//    int* n = nullptr;
//    n[28583275] = 17;   // segfault
//}

//void foo() {
//    bar();
//}

//TIMED_TEST(PassFailTests, test_exception_after_easy_assert, TEST_TIMEOUT_DEFAULT) {
//    // assertTrue("Brussel sprouts are yummy", true);
//    foo();
//    // assertTrue("Pie is yummy", true);
//}


//TIMED_TEST(PassFailTests, test_diffs_strict_FAIL, TEST_TIMEOUT_DEFAULT) {
//    string expected = "Hello!\nhow are you?\n";
//    string student  = "hello!\nhow ARE you?\n";
//    assertDiffFlags("message goes here", expected, student, diff::IGNORE_NONE);
//}

//TIMED_TEST(PassFailTests, test_ints_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("compare ints", 42, 42);
//}

//TIMED_TEST(PassFailTests, test_ints_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("compare ints", 42, 69);
//}

//TIMED_TEST(PassFailTests, test_doubles_near_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertDoubleNear("hi there", 3.14, 3.1415, 0.1);
//}

//TIMED_TEST(PassFailTests, test_doubles_near_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertDoubleNear("hi there", 3.14, 2.718, 0.1);
//}

//TIMED_TEST(PassFailTests, test_string_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("hi there", string("a"), string("a"));
//}

//TIMED_TEST(PassFailTests, test_string_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("hi there", string("a"), string("b"));
//}

//TIMED_TEST(PassFailTests, test_cstring_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEqualsCString("hi there", "a", "a");
//}

//TIMED_TEST(PassFailTests, test_cstring_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertEqualsCString("hi there", "xxx", "yy");
//}

//TIMED_TEST(PassFailTests, test_char_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("hi there", 'a', 'a');
//}

//TIMED_TEST(PassFailTests, test_char_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("hi there", 'a', 'b');
//}

//TIMED_TEST(PassFailTests, test_multiple_assertions_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("some test 1", string("abc"), string("abc"));
//    assertEquals("some test 2", string("abc2"), string("abc2"));
//    assertEquals("some test 3", 42, 42);
//    assertEquals("some test 4", 123, 123);
//}

//TIMED_TEST(PassFailTests, test_multiple_assertions_FAIL1, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("some test 1", string("abc"), string("abc"));
//    assertEquals("some test 2", string("abc"), string("def"));   // <-- should show this
//    assertEquals("some test 3", string("abc2"), string("def2"));
//}

//TIMED_TEST(PassFailTests, test_multiple_assertions_FAIL2, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("some test 1", string("abc"), string("abc"));
//    assertEquals("some test 2", string("abc"), string("def"));   // <-- should show this
//    assertEquals("some test 3", string("abc2"), string("def2"));
//    assertEquals("some test 4", string("abc"), string("abc"));
//    assertEquals("some test 5", 42, 42);
//}

//TIMED_TEST(PassFailTests, test_reeeeeeeeeeeeeeally_long_name_FAIL, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("some failed test 1", string("abc"), string("oops"));
//    assertEquals("some failed test 2", string("abc2"), string("oops2"));
//    assertEquals("some later test that passes 1", string("same1"), string("same1"));
//    assertEquals("some later test that passes 2", string("same2"), string("same2"));
//}


//TEST_CATEGORY(InfiniteLoops, "infinite loops");

//TIMED_TEST(InfiniteLoops, test_infinite_loop1, TEST_TIMEOUT_DEFAULT/2) {
//    while (1) { /* lolol */ }
//}


//TIMED_TEST(InfiniteLoops, test_infinite_loop2, TEST_TIMEOUT_DEFAULT) {
//    while (1) { sleep(1); }
//}

//TIMED_TEST(InfiniteLoops, test_notInfiniteButExceedsTimeout, TEST_TIMEOUT_DEFAULT) {
//    string exp = "a\nb\nc";
//    string stu = "a\nb\nc";
//    assertDiff("some diffs", exp, stu);
//    sleep(5);
//}


//TEST_CATEGORY(Crashes, "crashes and exceptions");

//TIMED_TEST(Crashes, test_exception, TEST_TIMEOUT_DEFAULT) {
//    Vector<int> v;
//    v[29] = 42;   // boom
//    assertDiff("a diff", 42, 42);
//}

//TIMED_TEST(Crashes, test_sigfpe, TEST_TIMEOUT_DEFAULT) {
//    int y = 0 + 0;
//    int x = 1 / y;  // boom
//    assertEquals("a diff", 42, x);
//}

//TIMED_TEST(Crashes, test_segfault, TEST_TIMEOUT_DEFAULT) {
//    int* p = NULL;
//    int x = *p;  // boom
//    assertEquals("a diff", 42, x);
//}

//TEST_CATEGORY(PassFailTestsEnd, "standard pass/fail tests at end");

//TIMED_TEST(PassFailTestsEnd, test_ints_again_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("compare ints", 42, 42);
//}

//TIMED_TEST(PassFailTestsEnd, test_ints_again_2_PASS, TEST_TIMEOUT_DEFAULT) {
//    sleep(1);
//    assertEquals("compare doubles", 42.0, 42.0);
//}

//TIMED_TEST(PassFailTestsEnd, test_ints_again_3_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEquals("compare ints", 42, 42);
//}

//TIMED_TEST(PassFailTestsEnd, test_ints_again_4_FAIL, TEST_TIMEOUT_DEFAULT) {
//    sleep(1);
//    assertEquals("compare ints", 42, 43);
//}

//TIMED_TEST(PassFailTestsEnd, test_ints_again_5_PASS, TEST_TIMEOUT_DEFAULT) {
//    assertEqualsCString("compare strings", "42", "42");
//}

int f() {
    if (2 % 2 == 1) {
        return 42;
    } else {
        return 43;
    }
}

/*
 * A custom autograder UI button to show the student's creative input file.
 */
void showMyInputTxt() {
    // empty
    autograder::showStudentTextFile("myinput.txt", /* maxWidth */ 75, /* maxHeight */ 30);
}

// this just needs to be here so that it will become studentMain()
int main() {
    cout << "Hello, world!" << endl;
    cout << "f is: " << f() << endl;
    int x = getInteger("Type x: ");
    cout << "You typed " << x << endl;
    return 0;
}

void autograderMain() {
    // autograder::setAssignmentName("Stanford C++ Library Test");
    stanfordcpplib::autograder::Autograder* autograder = stanfordcpplib::autograder::Autograder::instance();
    autograder->setAboutMessage("Stanford C++ library tester by Marty Stepp");
    autograder->setGraphicalUI(true);
    autograder->setTestNameWidth(static_cast<int>(std::string("test02_abc_oops_real_long_name_gonnaFail").length()));
    autograder->setStartMessage("my <b>COOL</b> start <i>message</i> yay! "
                                "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum "
                                "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ");

    //stylecheck::setStyleCheckMergedWithUnitTests(true);
    //autograder::styleCheckAddFile("mainfunc.cpp");
    autograder::addCallbackButton(showMyInputTxt, "View\nmyinput.txt", "textfile.gif");
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/readme.txt
================================================
This directory contains the source code files (*.cpp, *.h)
that you will write as you complete the assignment.
We will also put any instructor-provided code here.


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/_collectionTests.cp_
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

// all collections:
// BasicGraph, DawgLexicon, Graph, Grid, HashMap, HashSet, Lexicon, LinkedList,
// Map, PriorityQueue, Queue, Set, SparseGrid, Stack, Vector

#include "testcases.h"
#include "basicgraph.h"
#include "dawglexicon.h"
#include "deque.h"
#include "graph.h"
#include "grid.h"
#include "hashcode.h"
#include "hashmap.h"
#include "hashset.h"
#include "lexicon.h"
#include "linkedhashmap.h"
#include "linkedhashset.h"
#include "linkedlist.h"
#include "map.h"
#include "pqueue.h"
#include "queue.h"
#include "set.h"
#include "sparsegrid.h"
#include "stack.h"
#include "vector.h"
#include "assertions.h"
#include "gtest-marty.h"
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

#define TEST_TIMEOUT_DEFAULT 3000

TEST_CATEGORY(CollectionTests, "collection tests");


// for testing collections with non- ==, < elements
class Student {
public:
    std::string name;
};

// for testing Graph class
struct DumbNode;
struct DumbEdge;
struct DumbNode {
    std::string name;
    Set<DumbEdge*> arcs;
    double cost;
};

struct DumbEdge {
    DumbNode* start;
    DumbNode* finish;
    double cost;
};

template <typename T>
static void compareTestHelper(const T& o1, const T& o2, std::string type = "",
                              int compareTo = 0) {
    assertEqualsBool(type + o1.toString() + " <  " + o2.toString(), compareTo <  0,  o1 <  o2);
    assertEqualsBool(type + o1.toString() + " <= " + o2.toString(), compareTo <= 0,  o1 <= o2);
    assertEqualsBool(type + o1.toString() + " >  " + o2.toString(), compareTo >  0,  o1 >  o2);
    assertEqualsBool(type + o1.toString() + " >= " + o2.toString(), compareTo >= 0,  o1 >= o2);
    assertEqualsBool(type + o1.toString() + " == " + o2.toString(), compareTo == 0,  o1 == o2);
    assertEqualsBool(type + o1.toString() + " != " + o2.toString(), compareTo != 0,  o1 != o2);
}

void randomElementTest() {
    std::cout << "randomElement/Key test:" << std::endl;
    Map<std::string, int> counts;
    int RUNS = 200;
    
    std::cout << "Grid: ";
    Grid<std::string> grid;
    grid.resize(2, 3);
    grid[0][0] = "a";
    grid[0][1] = "b";
    grid[0][2] = "c";
    grid[1][0] = "d";
    grid[1][1] = "e";
    grid[1][2] = "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(grid);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "HashMap: ";
    HashMap<std::string, int> hmap;
    hmap["a"] = 50;
    hmap["b"] = 40;
    hmap["c"] = 30;
    hmap["d"] = 20;
    hmap["e"] = 10;
    hmap["f"] =  0;
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomKey(hmap);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "HashSet: ";
    HashSet<std::string> hset;
    hset += "a", "b", "c", "d", "e", "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(hset);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "LinkedList: ";
    LinkedList<std::string> list;
    list += "a", "b", "c", "d", "e", "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(list);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "Map: ";
    Map<std::string, int> map;
    map["a"] = 50;
    map["b"] = 40;
    map["c"] = 30;
    map["d"] = 20;
    map["e"] = 10;
    map["f"] =  0;
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomKey(map);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "Set: ";
    Set<std::string> set;
    set += "a", "b", "c", "d", "e", "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(set);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    
    std::cout << "SparseGrid: ";
    SparseGrid<std::string> sgrid;
    sgrid.resize(4, 3);
    sgrid[0][0] = "a";
    sgrid[0][1] = "b";
    sgrid[1][2] = "c";   // row 2 is blank
    sgrid[3][0] = "d";
    sgrid[1][1] = "e";
    sgrid[1][2] = "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(sgrid);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;

    std::cout << "Vector: ";
    Vector<std::string> v;
    v += "a", "b", "c", "d", "e", "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(v);
        std::cout << s << " ";
        counts[s]++;
    }
    std::cout << std::endl;
    std::cout << "counts:" << counts << std::endl << std::endl;
}

TIMED_TEST(CollectionTests, shuffleTest, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v {10, 20, 30, 40, 50};
    Map<int, Map<int, int> > valueIndexCount;

    // shuffle 100 times
    for (int i = 0; i < 100; i++) {
        shuffle(v);
        for (int j = 0; j < v.size(); j++) {
            valueIndexCount[v[j]][j]++;
        }
    }

    // make sure each value appeared at each index at least once
    for (int n : v) {
        for (int j = 0; j < v.size(); j++) {
            assertNotEqualsInt("", 0, valueIndexCount[n][j]);
        }
    }
}

TIMED_TEST(CollectionTests, streamExtractTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    istringstream hmstream("{1:10, 2:20, 3:30}");
    HashMap<int, int> hm;
    hmstream >> hm;
    assertEqualsString("hm", "{1:10, 2:20, 3:30}", hm.toString());
}

TIMED_TEST(CollectionTests, streamExtractTest_HashMap2bad, TEST_TIMEOUT_DEFAULT) {
    HashMap<int, int> hm;
    istringstream hmstreambad("1:1, 2, 33}");
    bool result = bool(hmstreambad >> hm);
    assertFalse("operator >> on bad hashmap", result);
}

TIMED_TEST(CollectionTests, streamExtractTest_Vector, TEST_TIMEOUT_DEFAULT) {
    istringstream vstream("{1, 2, 3}");
    Vector<int> v;
    vstream >> v;
    assertEqualsString("v", "{1, 2, 3}", v.toString());
}

TIMED_TEST(CollectionTests, streamExtractTest_Vector2bad, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v;
    istringstream vstreambad("1, 2, 3}");
    bool result = bool(vstreambad >> v);
    assertFalse("operator >> on bad vector", result);
}

TIMED_TEST(CollectionTests, compareTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");

    BasicGraph bgraph2;
    bgraph2.addNode("a");
    bgraph2.addNode("b");
    bgraph2.addNode("c");
    bgraph2.addNode("d");
    bgraph2.addNode("e");
    bgraph2.addNode("f");
    bgraph2.addArc("a", "b");
    bgraph2.addArc("a", "d");
    bgraph2.addArc("b", "c");
    bgraph2.addArc("b", "d");
    bgraph2.addArc("c", "b");
    bgraph2.addArc("b", "e");

    BasicGraph bgraph3;

    compareTestHelper(bgraph, bgraph2, "BasicGraph", /* compareTo */ -1);
    compareTestHelper(bgraph, bgraph3, "BasicGraph", /* compareTo */  1);
    compareTestHelper(bgraph2, bgraph, "BasicGraph", /* compareTo */  1);
    compareTestHelper(bgraph, bgraph, "BasicGraph", /* compareTo */  0);

    Set<BasicGraph> sbgraph {bgraph, bgraph2, bgraph3};
    assertEqualsString("sbgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sbgraph.toString());
}

TIMED_TEST(CollectionTests, compareTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon dawg;
    dawg.add("a");
    dawg.add("b");
    dawg.add("c");
    DawgLexicon dawg2;
    dawg2.add("a");
    dawg2.add("ab");
    dawg2.add("bc");
    DawgLexicon dawg3;
    compareTestHelper(dawg, dawg2, "DawgLexicon", /* compareTo */ 1);
    compareTestHelper(dawg2, dawg, "DawgLexicon", /* compareTo */ -1);
    compareTestHelper(dawg, dawg, "DawgLexicon", /* compareTo */ 0);

    Set<DawgLexicon> sdlex {dawg, dawg2, dawg3};
    assertEqualsString("sdlex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdlex.toString());
}

TIMED_TEST(CollectionTests, compareTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<std::string> deq;
    deq.add("a");
    deq.add("b");
    deq.add("c");
    Deque<std::string> deq2;
    deq2.add("a");
    deq2.add("ab");
    deq2.add("bc");
    Deque<std::string> deq3;
    compareTestHelper(deq, deq2, "Deque", /* compareTo */ 1);
    compareTestHelper(deq2, deq, "Deque", /* compareTo */ -1);
    compareTestHelper(deq, deq, "Deque", /* compareTo */ 0);
    Set<Deque<std::string> > sdeque {deq, deq2, deq3};
    assertEqualsString("sdeque", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdeque.toString());
}

TIMED_TEST(CollectionTests, compareTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");

    Graph<DumbNode, DumbEdge> graph2;
    graph2.addNode("a");
    graph2.addNode("b");
    graph2.addNode("c");
    graph2.addNode("d");
    graph2.addNode("e");
    graph2.addNode("f");
    graph2.addArc("a", "b");
    graph2.addArc("a", "d");
    graph2.addArc("b", "c");
    graph2.addArc("b", "d");
    graph2.addArc("c", "b");
    graph2.addArc("b", "e");

    Graph<DumbNode, DumbEdge> graph3;

    compareTestHelper(graph, graph2, "Graph", /* compareTo */ -1);
    compareTestHelper(graph, graph3, "Graph", /* compareTo */  1);
    compareTestHelper(graph2, graph, "Graph", /* compareTo */  1);
    compareTestHelper(graph, graph, "Graph", /* compareTo */ 0);

    Set<Graph<DumbNode, DumbEdge> > sgraph {graph, graph2, graph3};
    assertEqualsString("sgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sgraph.toString());
}

TIMED_TEST(CollectionTests, compareTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid1;
    grid1.resize(2, 2);
    Grid<int> grid2;
    grid2.resize(2, 3);
    Grid<int> grid3;
    grid3.resize(3, 2);
    Grid<int> grid4;
    compareTestHelper(grid1, grid2, "Grid", /* compareTo */ -1);
    compareTestHelper(grid2, grid1, "Grid", /* compareTo */  1);
    compareTestHelper(grid1, grid3, "Grid", /* compareTo */ -1);
    compareTestHelper(grid3, grid1, "Grid", /* compareTo */  1);
    compareTestHelper(grid2, grid3, "Grid", /* compareTo */  1);
    compareTestHelper(grid3, grid2, "Grid", /* compareTo */ -1);
    compareTestHelper(grid1, grid1, "Grid", /* compareTo */  0);

    Set<Grid<int> > sgrid {grid1, grid2, grid3, grid4};
    assertEqualsString("sgrid", "{{}, {{0, 0}, {0, 0}}, {{0, 0}, {0, 0}, {0, 0}}, {{0, 0, 0}, {0, 0, 0}}}", sgrid.toString());
}

TIMED_TEST(CollectionTests, compareTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex;
    lex.add("a");
    lex.add("ab");
    lex.add("bc");
    Lexicon lex2;
    lex2.add("a");
    lex2.add("b");
    lex2.add("c");
    Lexicon lex3;
    compareTestHelper(lex, lex2, "Lexicon", /* compareTo */ -1);
    compareTestHelper(lex2, lex, "Lexicon", /* compareTo */ 1);
    compareTestHelper(lex, lex, "Lexicon", /* compareTo */ 0);

    Set<Lexicon> slex {lex, lex2, lex3};
    assertEqualsString("slex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", slex.toString());
}

TIMED_TEST(CollectionTests, compareTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> ll1;
    ll1 += 1, 2, 4, 5;
    LinkedList<int> ll2;
    ll2 += 1, 3, 1, 4, 8;
    LinkedList<int> ll3;
    ll3 += 1, 1, 7;
    LinkedList<int> ll4;  // empty
    compareTestHelper(ll1, ll2, "LinkedList", /* compareTo */ -1);
    compareTestHelper(ll1, ll3, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll1, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll3, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll3, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll2, "LinkedList", /* compareTo */ 0);

    Set<LinkedList<int> > sll {ll1, ll2, ll3, ll4};
    assertEqualsString("sll", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 3, 1, 4, 8}}", sll.toString());
}

TIMED_TEST(CollectionTests, compareTest_Queue, TEST_TIMEOUT_DEFAULT) {
    Queue<int> q1;
    q1.add(1);
    q1.add(2);
    q1.add(1);
    q1.add(5);
    Queue<int> q2;
    q2.add(1);
    q2.add(2);
    q2.add(1);
    q2.add(4);
    q2.add(7);
    compareTestHelper(q1, q2, "Queue", /* compareTo */  1);
    compareTestHelper(q2, q1, "Queue", /* compareTo */ -1);
    compareTestHelper(q1, q1, "Queue", /* compareTo */  0);

    Set<Queue<int> > sq {q1, q2};
    assertEqualsString("sq", "{{1, 2, 1, 4, 7}, {1, 2, 1, 5}}", sq.toString());
}

TIMED_TEST(CollectionTests, compareTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set1;
    set1 += 7, 5, 1, 2, 8;
    Set<int> set2;
    set2 += 1, 2, 3, 4;
    Set<int> set3;
    compareTestHelper(set1, set2, "Set", /* compareTo */  1);
    compareTestHelper(set2, set1, "Set", /* compareTo */ -1);
    compareTestHelper(set1, set3, "Set", /* compareTo */  1);
    compareTestHelper(set2, set3, "Set", /* compareTo */  1);

    Set<Set<int> > sset {set1, set2, set3};
    assertEqualsString("sset", "{{}, {1, 2, 3, 4}, {1, 2, 5, 7, 8}}", sset.toString());
}

TIMED_TEST(CollectionTests, compareTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> sgrid1;
    sgrid1.resize(2, 2);
    SparseGrid<int> sgrid2;
    sgrid2.resize(2, 3);
    SparseGrid<int> sgrid3;
    sgrid3.resize(3, 2);
    compareTestHelper(sgrid1, sgrid2, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid2, sgrid1, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid1, sgrid3, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid3, sgrid1, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid2, sgrid3, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid3, sgrid2, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid1, sgrid1, "SparseGrid", /* compareTo */  0);

    Set<SparseGrid<int> > ssgrid {sgrid1, sgrid2, sgrid3};
    assertEqualsString("ssgrid", "{{}, 2 x 2, {}, 3 x 2, {}, 2 x 3}", ssgrid.toString());
}

TIMED_TEST(CollectionTests, compareTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v1 {1, 2, 4, 5};
    Vector<int> v2 {1, 3, 1, 4, 8};
    Vector<int> v3 {1, 1, 7};
    Vector<int> v4 {2, 0};
    Vector<int> v5 {1, 2, 4, 5, 6, 7};
    Vector<int> v6;  // empty
    compareTestHelper(v1, v2, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v3, "Vector", /* compareTo */  1);
    compareTestHelper(v1, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v5, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v3, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v2, v5, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v3, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v3, v5, "Vector", /* compareTo */ -1);
    compareTestHelper(v3, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v4, v5, "Vector", /* compareTo */  1);
    compareTestHelper(v4, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v5, v6, "Vector", /* compareTo */  1);

    Set<Vector<int> > sv {v1, v2, v3, v4, v5, v6};
    assertEqualsString("sv", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 2, 4, 5, 6, 7}, {1, 3, 1, 4, 8}, {2, 0}}", sv.toString());
}

void foreachTest() {
    std::cout << "foreach test: " << std::endl;

    Vector<int> v1;
    v1 += 1, 2, 3;
    cout << "v1: " << v1 << endl;

    Vector<string> v2;
    v2 += "a", "b", "c";
    cout << "v2: " << v2 << endl;

    Stack<int> s1;
    s1.push(1);
    s1.push(2);
    s1.push(3);
    cout << "s1: " << s1 << endl;

    Stack<string> s2;
    s2.push("a");
    s2.push("b");
    s2.push("c");
    cout << "s2: " << s2 << endl;

    Queue<int> q1;
    q1.enqueue(1);
    q1.enqueue(2);
    q1.enqueue(3);
    cout << "q1: " << q1 << endl;

    Queue<string> q2;
    q2.enqueue("a");
    q2.enqueue("b");
    q2.enqueue("c");
    cout << "q2: " << q2 << endl;

    
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");
    std::cout << "basicgraph: " << bgraph << std::endl;
    for (Vertex* node : bgraph) {
        std::cout << node->name << std::endl;
    }
    
    DawgLexicon dlex;
    dlex.add("a");
    dlex.add("cc");
    dlex.add("bbb");
    std::cout << "dawglexicon: " << dlex << std::endl;
    for (std::string n : dlex) {
        std::cout << n << std::endl;
    }
    
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");
    std::cout << "graph: " << graph << std::endl;
    for (DumbNode* node : graph) {
        std::cout << node->name << std::endl;
    }
    
    Grid<int> grid(4, 2);
    grid.fill(42);
    std::cout << "grid: " << grid << std::endl;
    for (int n : grid) {
        std::cout << n << std::endl;
    }
    
    HashMap<std::string, int> hmap;
    hmap["a"] = 1;
    hmap["bbbb"] = 2;
    hmap["zz"] = 26;
    std::cout << "hashmap: " << hmap << std::endl;
    for (std::string k : hmap) {
        std::cout << k << " => " << hmap[k] << std::endl;
    }
    
    HashSet<int> hset;
    hset += 10, 20, 30, 40;
    std::cout << "hashset: " << hset << std::endl;
    for (int n : hset) {
        std::cout << n << std::endl;
    }

    Lexicon lex;
    lex.add("a");
    lex.add("cc");
    lex.add("bbb");
    std::cout << "lexicon: " << lex << std::endl;
    for (std::string n : lex) {
        std::cout << n << std::endl;
    }

    std::cout << std::endl;
    LinkedHashMap<std::string, int> lhmap;
//    lhmap["zz"] = 26;
//    lhmap["a"] = 1;
//    lhmap["ss"] = 97;
//    lhmap["bbbb"] = 2;
//    lhmap["E"] = 4;
//    lhmap["yZ44"] = 33;
    lhmap.put("zz", 26);
    lhmap.put("a", 1);
    lhmap.put("ss", 97);
    lhmap.put("bbbb", 2);
    lhmap.put("E", 4);
    lhmap.put("yZ44", 33);
    std::cout << "linkedhashmap: " << lhmap << std::endl;
    for (std::string k : lhmap) {
        std::cout << k << " => " << lhmap[k] << std::endl;
    }
    lhmap.remove("ss");
    lhmap.remove("zz");
    lhmap.remove("yZ44");
    lhmap.remove("notfound");
    std::cout << "after removes:" << std::endl;
    std::cout << "linkedhashmap: " << lhmap << std::endl;
    for (std::string k : lhmap) {
        std::cout << k << " => " << lhmap[k] << std::endl;
    }
    std::cout << std::endl;
    
    LinkedHashSet<int> lhset;
    lhset += 30, 10, 40, 66, -1, 42, 99;
    std::cout << "linkedhashset: " << lhset << std::endl;
    for (int n : lhset) {
        std::cout << n << std::endl;
    }
    lhset -= 40, 30, 99;
    std::cout << "linkedhashset: " << lhset << std::endl;
    for (int n : lhset) {
        std::cout << n << std::endl;
    }
    std::cout << std::endl;

    LinkedList<int> ll;
    ll += 10, 20, 30, 40;
    std::cout << "linkedlist: " << ll << std::endl;
    for (int n : ll) {
        std::cout << n << std::endl;
    }
    
    Map<std::string, int> map;
    map["a"] = 1;
    map["bbbb"] = 2;
    map["zz"] = 26;
    std::cout << "map: " << map << std::endl;
    for (std::string k : map) {
        std::cout << k << " => " << map[k] << std::endl;
    }
    
    PriorityQueue<std::string> pq;
    pq.add("a", 4);
    pq.add("bb", 3);
    pq.add("c", 1);
    pq.add("ddd", 6);
    pq.add("e", 5);
    pq.add("ffff", 2);
    
    // dupe priorities
    pq.add("ffff-2nd", 2);
    pq.add("a-2nd", 4);
    pq.add("e-2nd", 5);
    std::cout << "pq: " << pq << std::endl;

    // this should not compile since PQ has no public iterator
//    std::cout << "foreach loop: " << std::endl;
//    for (std::string str : pq) {
//        std::cout << "next element: " << str << std::endl;
//    }
    
    Queue<std::string> q;
    q.add("a");
    q.add("bb");
    q.add("c");
    q.add("ddd");
    q.add("e");
    q.add("ffff");
    std::cout << "q: " << q << std::endl;
    
    // this should not compile since PQ has no public iterator
//    std::cout << "foreach loop: " << std::endl;
//    for (std::string str : q) {
//        std::cout << "next element: " << str << std::endl;
//    }
}

TIMED_TEST(CollectionTests, forEachTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set {10, 20, 30, 40};
    Queue<int> expected {10, 20, 30, 40};

    for (int n : set) {
        int exp = expected.dequeue();
        assertEqualsInt("set foreach", exp, n);
    }
}

TIMED_TEST(CollectionTests, forEachTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> sgrid(4, 2);
    sgrid.fill(42);
    std::cout << "sparsegrid: " << sgrid << std::endl;
    for (int n : sgrid) {
        std::cout << n << std::endl;
    }
    
    Vector<int> v;
    v += 10, 20, 30, 40;
    std::cout << "vector: " << v << std::endl;
    for (int n : v) {
        std::cout << n << std::endl;
    }
    
    std::cout << "done!" << std::endl;
}

void hashCodeTest() {
    std::cout << "================= BEGIN HASHCODE TESTS =================" << std::endl;
    
    // BasicGraph
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");
    BasicGraph bgraph2;
    bgraph2.addNode("a");
    bgraph2.addNode("b");
    bgraph2.addNode("c");
    bgraph2.addNode("d");
    bgraph2.addNode("e");
    bgraph2.addNode("f");
    bgraph2.addArc("a", "b");
    bgraph2.addArc("a", "d");
    bgraph2.addArc("b", "c");
    bgraph2.addArc("b", "d");
    bgraph2.addArc("c", "b");
    bgraph2.addArc("b", "e");
    HashSet<BasicGraph> hashbgraph;
    hashbgraph.add(bgraph);
    hashbgraph.add(bgraph2);
    std::cout << "hashset of basicgraph: " << hashbgraph << std::endl;
    
    // DawgLexicon
    HashSet<DawgLexicon> hashdawg;
    DawgLexicon dlex;
    dlex.add("a");
    dlex.add("abc");
    hashdawg.add(dlex);
    std::cout << "hashset of dawglexicon: " << hashdawg << std::endl;
    
    // Deque
    HashSet<Deque<int> > hashdeq;
    Deque<int> deq;
    deq.addBack(1);
    deq.addFront(2);
    deq.addBack(3);
    deq.addFront(4);
    hashdeq.add(deq);
    std::cout << "hashset of deque: " << hashdeq << std::endl;

    // Graph
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");
    Graph<DumbNode, DumbEdge> graph2;
    graph2.addNode("a");
    graph2.addNode("b");
    graph2.addNode("c");
    graph2.addNode("d");
    graph2.addNode("e");
    graph2.addNode("f");
    graph2.addArc("a", "b");
    graph2.addArc("a", "d");
    graph2.addArc("b", "c");
    graph2.addArc("b", "d");
    graph2.addArc("c", "b");
    graph2.addArc("b", "e");
    //graph2.addArc("c", "e");
    HashSet<Graph<DumbNode, DumbEdge> > hashgraph;
    hashgraph.add(graph);
    hashgraph.add(graph2);
    std::cout << "hashset of graph: " << hashgraph << std::endl;
    
    // Grid
    HashSet<Grid<int> > hashgrid;
    Grid<int> grid(2, 3);
    grid.fill(42);
    hashgrid.add(grid);
    std::cout << "hashset of grid: " << hashgrid << std::endl;
    
    // HashMap
    HashSet<HashMap<int, int> > hashhashmap;
    HashMap<int, int> hmap;
    hmap.add(69, 96);
    hmap.add(42, 24);
    hashhashmap.add(hmap);
    std::cout << "hashset of hashmap: " << hashhashmap << std::endl;
    
    // HashSet
    HashSet<HashSet<int> > hashhashset;
    HashSet<int> hset;
    hset.add(69);
    hset.add(42);
    hashhashset.add(hset);
    std::cout << "hashset of hashset: " << hashhashset << std::endl;
    
    // Lexicon
    HashSet<Lexicon> hashlex;
    Lexicon lex;
    lex.add("a");
    lex.add("abc");
    hashlex.add(lex);
    std::cout << "hashset of lexicon: " << hashlex << std::endl;
    
    // LinkedList
    HashSet<LinkedList<int> > hashlink;
    LinkedList<int> llist;
    llist.add(69);
    llist.add(42);
    hashlink.add(llist);
    std::cout << "hashset of linkedlist: " << hashlink << std::endl;
    
    // Map
    HashSet<Map<int, int> > hashmap;
    Map<int, int> map;
    map.add(69, 96);
    map.add(42, 24);
    hashmap.add(map);
    std::cout << "hashset of map: " << hashmap << std::endl;
    
    // PriorityQueue
    HashSet<PriorityQueue<std::string> > hashpq;
    PriorityQueue<std::string> pq;
    pq.add("a", 3);
    pq.add("b", 2);
    hashpq.add(pq);
    std::cout << "hashset of priorityqueue: " << hashpq << std::endl;
    
    // Queue
    HashSet<Queue<int> > hashq;
    Queue<int> q;
    q.add(69);
    q.add(42);
    hashq.add(q);
    std::cout << "hashset of queue: " << hashq << std::endl;
    
//    for (int n : q) {
//        std::cout << "queue element: " << n << std::endl;
//    }
    
    // Set
    HashSet<Set<int> > hashset;
    Set<int> set;
    set.add(69);
    set.add(42);
    hashset.add(set);
    std::cout << "hashset of set: " << hashset << std::endl;
    
    // SparseGrid
    HashSet<SparseGrid<int> > hashsparsegrid;
    SparseGrid<int> sparsegrid(2, 2);
    sparsegrid.fill(8);
    hashsparsegrid.add(sparsegrid);
    std::cout << "hashset of sparsegrid: " << hashsparsegrid << std::endl;
    
    // Stack
    HashSet<Stack<int> > hashstack;
    Stack<int> s;
    s.add(69);
    s.add(42);
    
//    for (int val : s) {
//        std::cout << "stack value: " << val << std::endl;
//    }
    
    hashstack.add(s);
    std::cout << "hashset of stack: " << hashstack << std::endl;
    
    // Vector
    HashSet<Vector<int> > hashvec;
    Vector<int> v;
    v.add(69);
    v.add(42);
    hashvec.add(v);
    std::cout << "hashset of vector: " << hashvec << std::endl;
    
    Stack<Student> vstud;
    Student sam;
    vstud.add(sam);
    Vector <Student> vstud2;
    vstud2.add(sam);
    std::cout << "stack of student: size " << vstud.size() << std::endl;
    
    HashSet<HashSet<int>> hhset;
    HashSet<int> hset1;
    hset1.add(42);
    hset1.add(17);
    hset1.add(318);
    hhset.add(hset1);
    HashSet<int> hset2;
    hset2.add(99);
    hset2.add(19);
    hset2.add(59);
    hset2.add(999);
    hhset.add(hset2);
    std::cout << "hashset of hashset of int: " << hhset << std::endl;
    
    Vertex* v1 = new Vertex("v1");
    Vertex* v2 = new Vertex("v2");
    Vertex* v3 = new Vertex("v3");
    Vertex* v4 = new Vertex("v4");
    Vertex* v5 = new Vertex("v5");
    Vertex* v6 = new Vertex("v6");
    
    HashSet<HashSet<Vertex*>> hhset2;
    HashSet<Vertex*> hset3;
    hset3.add(v1);
    hset3.add(v2);
    hset3.add(v3);
    hhset2.add(hset3);
    HashSet<Vertex*> hset4;
    hset4.add(v4);
    hset4.add(v5);
    hset4.add(v6);
    hhset2.add(hset4);
    std::cout << "hashset of hashset of Vertex*: " << hhset2 << std::endl;
    
    std::cout << std::endl;
    HashMap< HashSet<Vector<std::string> >, Vector<std::string> > ngram;
    HashSet<Vector<std::string> > key;
    Vector<std::string> value;
    ngram.put(key, value);
    std::cout << "ngram is " << ngram << std::endl;
    
    
    // hash code of hash collections after they are deep-copied
    HashMap<int, int> hmapcode;
    for (int i = 0; i < 99; i++) {
        int rand = randomInteger(-9999, 9999);
        hmapcode[rand] = i*i;
    }
    std::cout << "HashMap deep-copy hashCode tests:" << std::endl;
    std::cout << "hashcode of copy 1 is " << hashCode(hmapcode) << std::endl;
    HashMap<int, int> hmapcode2 = hmapcode;
    std::cout << "hashcode of copy 2 is " << hashCode(hmapcode2) << std::endl;
    std::cout << "map 1 equals map 2? " << std::boolalpha << (hmapcode == hmapcode2) << std::endl;
    std::cout << "sizes: " << hmapcode.size() << ", " << hmapcode2.size() << std::endl;

    HashSet<int> hsetcode;
    for (int i = 0; i < 99; i++) {
        int rand = randomInteger(-9999, 9999);
        hsetcode.add(rand);
    }
    std::cout << std::endl << "HashSet deep-copy hashCode tests:" << std::endl;
    std::cout << "hashcode of copy 1 is " << hashCode(hsetcode) << std::endl;
    HashSet<int> hsetcode2 = hsetcode;
    std::cout << "hashcode of copy 2 is " << hashCode(hsetcode2) << std::endl;
    std::cout << "set 1 equals set 2? " << std::boolalpha << (hsetcode == hsetcode2) << std::endl;
    std::cout << "sizes: " << hsetcode.size() << ", " << hsetcode2.size() << std::endl;

    std::cout << "================== END HASHCODE TESTS ==================" << std::endl;
}

void initializerListTest() {
    auto list = {60, 70};
    auto list2 = {20, 50};
    std::initializer_list<std::string> lexlist = {"sixty", "seventy"};
    std::initializer_list<std::string> lexlist2 = {"twenty", "fifty"};
    std::initializer_list<std::pair<std::string, int> > pairlist = {{"k", 60}, {"t", 70}};
    std::initializer_list<std::pair<std::string, int> > pairlist2 = {{"b", 20}, {"e", 50}};

    BasicGraph graph {"a", "b", "c", "d"};
    cout << "init list BasicGraph = " << graph << endl;

    Grid<int> grid {{1, 2, 3}, {4, 5, 6}};
    cout << "init list Grid = " << grid << endl;

    HashMap<string, int> hmap {{"a", 10}, {"b", 20}, {"c", 30}};
    cout << "init list HashMap = " << hmap << endl;
    hmap += {{"d", 40}, {"e", 50}};
    cout << "after +=, HashMap = " << hmap << endl;
    cout << "HashMap + {} list = " << (hmap + pairlist) << endl;
    cout << "HashMap - {} list = " << (hmap - pairlist2) << endl;
    cout << "HashMap * {} list = " << (hmap * pairlist2) << endl;
    hmap -= {{"b", 20}, {"e", 50}, {"a", 999}};
    cout << "HashMap -={} list = " << hmap << endl;
    hmap *= {{"z", 0}, {"a", 10}, {"d", 40}, {"x", 99}};
    cout << "HashMap *={} list = " << hmap << endl;
    cout << "at end,   HashMap = " << hmap << endl;

    HashSet<int> hset {10, 20, 30};
    cout << "init list HashSet = " << hset << endl;
    hset += {40, 50};
    cout << "after +=, HashSet = " << hset << endl;
    cout << "HashSet + {} list = " << (hset + list) << endl;
    cout << "HashSet - {} list = " << (hset - list2) << endl;
    cout << "HashSet * {} list = " << (hset * list2) << endl;
    hset -= {20, 50};
    cout << "HashSet -={} list = " << hset << endl;
    hset *= {0, 10, 40, 99};
    cout << "HashSet *={} list = " << hset << endl;
    cout << "at end,   HashSet = " << hset << endl;

    std::initializer_list<std::string> lexallwords = {
        "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy"
    };
    Lexicon lex {"ten", "twenty", "thirty"};
    cout << "init list Lexicon = " << lex << ", size " << lex.size() << endl;
    for (std::string s : lexallwords) { cout << boolalpha << lex.contains(s) << " "; }
    cout << endl;
    lex += "forty", "fifty";
    cout << "after +=, Lexicon = " << lex << ", size " << lex.size() << endl;
    lex -= "forty", "fifty";
    cout << "after -=, Lexicon = " << lex << ", size " << lex.size() << endl;
    lex += {"forty", "fifty"};
    cout << "after +=, Lexicon = " << lex << ", size " << lex.size() << endl;
    for (std::string s : lexallwords) { cout << boolalpha << lex.contains(s) << " "; }
    cout << endl;
    cout << "Lexicon + {} list = " << (lex + lexlist) << endl;
    cout << "Lexicon - {} list = " << (lex - lexlist2) << endl;
    cout << "Lexicon * {} list = " << (lex * lexlist2) << endl;
    lex -= {"twenty", "fifty"};
    cout << "Lexicon -={} list = " << lex << ", size " << lex.size() << endl;
    lex *= {"zero", "ten", "forty", "ninetynine"};
    cout << "Lexicon *={} list = " << lex << ", size " << lex.size() << endl;
    cout << "at end,   Lexicon = " << lex << ", size " << lex.size() << endl;

    DawgLexicon dlex {"ten", "twenty", "thirty"};
    cout << "init list DawgLexicon = " << dlex << ", size " << dlex.size() << endl;
    for (std::string s : lexallwords) { cout << boolalpha << dlex.contains(s) << " "; }
    cout << endl;
    dlex += "forty", "fifty";
    cout << "after +=, DawgLexicon = " << dlex << ", size " << dlex.size() << endl;
    for (std::string s : lexallwords) { cout << boolalpha << dlex.contains(s) << " "; }
    cout << endl;
    cout << "DawgLexicon + {} list = " << (dlex + lexlist) << endl;
    cout << "at end,   DawgLexicon = " << dlex << ", size " << dlex.size() << endl;

    LinkedHashMap<string, int> lhmap {{"a", 10}, {"b", 20}, {"c", 30}};
    cout << "init list LinkedHashMap = " << lhmap << endl;
    lhmap += {{"d", 40}, {"e", 50}};
    cout << "after +=, LinkedHashMap = " << lhmap << endl;
    cout << "LinkedHashMap + {} list = " << (lhmap + pairlist) << endl;
    cout << "LinkedHashMap - {} list = " << (lhmap - pairlist2) << endl;
    cout << "LinkedHashMap * {} list = " << (lhmap * pairlist2) << endl;
    lhmap -= {{"b", 20}, {"e", 50}, {"a", 999}};
    cout << "LinkedHashMap -={} list = " << lhmap << endl;
    lhmap *= {{"z", 0}, {"a", 10}, {"d", 40}, {"x", 99}};
    cout << "LinkedHashMap *={} list = " << lhmap << endl;
    cout << "at end,   LinkedHashMap = " << lhmap << endl;

    LinkedHashSet<int> lhset {10, 20, 30};
    cout << "init list LinkedHashSet = " << lhset << endl;
    lhset += {40, 50};
    cout << "after +=, LinkedHashSet = " << lhset << endl;
    cout << "LinkedHashSet + {} list = " << (lhset + list) << endl;
    cout << "LinkedHashSet - {} list = " << (lhset - list2) << endl;
    cout << "LinkedHashSet * {} list = " << (lhset * list2) << endl;
    lhset -= {20, 50};
    cout << "LinkedHashSet -={} list = " << lhset << endl;
    lhset *= {0, 10, 40, 99};
    cout << "LinkedHashSet *={} list = " << lhset << endl;
    cout << "at end,   LinkedHashSet = " << lhset << endl;

    LinkedList<int> llist {10, 20, 30};
    cout << "init list LinkedList = " << llist << endl;
    llist += {40, 50};
    cout << "after +=, LinkedList = " << llist << endl;
    cout << "LinkedList + {} list = " << (llist + list) << endl;
    cout << "at end,   LinkedList = " << llist << endl;

    Map<string, int> map {{"a", 10}, {"b", 20}, {"c", 30}};
    cout << "init list Map = " << map << endl;
    map += {{"d", 40}, {"e", 50}};
    cout << "after +=, Map = " << map << endl;
    cout << "Map + {} list = " << (map + pairlist) << endl;
    cout << "Map - {} list = " << (map - pairlist2) << endl;
    cout << "Map * {} list = " << (map * pairlist2) << endl;
    map -= {{"b", 20}, {"e", 50}, {"a", 999}};
    cout << "Map -={} list = " << map << endl;
    map *= {{"z", 0}, {"a", 10}, {"d", 40}, {"x", 99}};
    cout << "Map *={} list = " << map << endl;
    cout << "at end,   Map = " << map << endl;

    PriorityQueue<string> pqueue {{40.0, "Marty"}, {20.0, "Eric"}, {30.0, "Mehran"}};
    cout << "init list PQueue = " << pqueue << endl;
    while (!pqueue.isEmpty()) {
        cout << "  " << pqueue.peekPriority() << " " << pqueue.peek() << endl;
        pqueue.dequeue();
    }

    Queue<int> queue {10, 20, 30};
    cout << "init list Queue = " << queue << endl;

    Deque<int> deque {10, 20, 30};
    cout << "init list Deque = " << deque << endl;

    Set<int> set {10, 20, 30};
    cout << "init list Set = " << set << endl;
    set += {40, 50};
    cout << "after +=, Set = " << set << endl;
    cout << "Set + {} list = " << (set + list) << endl;
    cout << "Set - {} list = " << (set - list2) << endl;
    cout << "Set * {} list = " << (set * list2) << endl;
    set -= {20, 50};
    cout << "Set -={} list = " << set << endl;
    set *= {0, 10, 40, 99};
    cout << "Set *={} list = " << set << endl;
    cout << "at end,   Set = " << set << endl;

    SparseGrid<int> sgrid {{1, 2, 3}, {4, 5, 6}};
    cout << "init list SparseGrid = " << sgrid << endl;

    Stack<int> stack {10, 20, 30};
    cout << "init list Stack = " << stack << endl;

    Vector<int> v {10, 20, 30};
    cout << "init list Vector = " << v << endl;
    v += {40, 50};
    cout << "after +=, Vector = " << v << endl;
    cout << "Vector + {} list = " << (v + list) << endl;
    cout << "at end,   Vector = " << v << endl;
    v = {999, 888, 777};
    cout << "on =,     Vector = " << v << endl;
    v.clear();
    v.add(777);
    std::initializer_list<int> sevenlist = {777};
    if (v == sevenlist) {
        cout << "op ==, Vector equal" << endl;
    } else {
        cout << "op ==, Vector not equal" << endl;
    }

    // test containsAll

}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-basicgraph.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "basicgraph.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(BasicGraphTests, "BasicGraph tests");

TIMED_TEST(BasicGraphTests, basicTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");   // TODO: uncomment

    BasicGraph copy = bgraph;

    assertEqualsInt("basicgraph size", 5, bgraph.size());
    assertEqualsInt("basicgraph vertex count", 5, bgraph.getVertexSet().size());
    assertEqualsInt("basicgraph edge count", 6, bgraph.getEdgeSet().size());

    assertTrue("basicgraph contains a", bgraph.containsVertex("a"));
    assertTrue("basicgraph contains b", bgraph.containsVertex("b"));
    assertTrue("basicgraph contains c", bgraph.containsVertex("c"));
    assertTrue("basicgraph contains d", bgraph.containsVertex("d"));
    assertTrue("basicgraph contains e", bgraph.containsVertex("e"));
    assertFalse("basicgraph contains f", bgraph.containsVertex("f"));
    assertFalse("basicgraph contains g", bgraph.containsVertex("g"));

    assertTrue("basicgraph contains edge a -> b", bgraph.containsEdge("a", "b"));
    assertTrue("basicgraph contains edge b -> c", bgraph.containsEdge("b", "c"));
    assertTrue("basicgraph contains edge c -> e", bgraph.containsEdge("c", "e"));
    assertFalse("basicgraph contains edge a -> c", bgraph.containsEdge("a", "c"));
    assertFalse("basicgraph contains edge b -> a", bgraph.containsEdge("b", "a"));

    bgraph.removeArc("a", "b");
    assertEqualsInt("basicgraph edge count", 5, bgraph.getEdgeSet().size());
    assertFalse("basicgraph contains edge a -> b", bgraph.containsEdge("a", "b"));
    assertFalse("basicgraph contains edge a -> b", bgraph.containsEdge("a", "b"));

    // error("shiiiiiiit");

    bgraph.removeVertex("b");
    assertEqualsInt("basicgraph vertex count", 4, bgraph.getVertexSet().size());
    assertEqualsInt("basicgraph edge count", 2, bgraph.getEdgeSet().size());
    assertFalse("basicgraph contains edge a -> b", bgraph.containsEdge("a", "b"));
    assertFalse("basicgraph contains edge b -> c", bgraph.containsEdge("b", "c"));
    assertFalse("basicgraph contains edge b -> d", bgraph.containsEdge("b", "d"));
    assertFalse("basicgraph contains edge c -> b", bgraph.containsEdge("c", "b"));

    bgraph = copy;
    bgraph.clearEdges();
    assertEqualsInt("basicgraph size", 5, bgraph.size());
    assertEqualsInt("basicgraph vertex count", 5, bgraph.getVertexSet().size());
    assertEqualsInt("basicgraph edge count", 0, bgraph.getEdgeSet().size());

    bgraph = copy;
    bgraph.clear();
    assertEqualsInt("basicgraph size", 0, bgraph.size());
    assertEqualsInt("basicgraph vertex count", 0, bgraph.getVertexSet().size());
    assertEqualsInt("basicgraph edge count", 0, bgraph.getEdgeSet().size());
}

TIMED_TEST(BasicGraphTests, compareTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");

    BasicGraph bgraph2;
    bgraph2.addNode("a");
    bgraph2.addNode("b");
    bgraph2.addNode("c");
    bgraph2.addNode("d");
    bgraph2.addNode("e");
    bgraph2.addNode("f");
    bgraph2.addArc("a", "b");
    bgraph2.addArc("a", "d");
    bgraph2.addArc("b", "c");
    bgraph2.addArc("b", "d");
    bgraph2.addArc("c", "b");
    bgraph2.addArc("b", "e");

    BasicGraph bgraph3;

    compareTestHelper(bgraph, bgraph2, "BasicGraph", /* compareTo */ -1);
    compareTestHelper(bgraph, bgraph3, "BasicGraph", /* compareTo */  1);
    compareTestHelper(bgraph2, bgraph, "BasicGraph", /* compareTo */  1);
    compareTestHelper(bgraph, bgraph, "BasicGraph", /* compareTo */  0);

    Set<BasicGraph> sbgraph {bgraph, bgraph2, bgraph3};
    assertEqualsString("sbgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sbgraph.toString());
}

TIMED_TEST(BasicGraphTests, forEachTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");
    Queue<std::string> expected {"a", "b", "c", "d", "e"};
    for (Vertex* node : bgraph) {
        std::string exp = expected.dequeue();
        assertEqualsString("BasicGraph foreach vertex name", exp, node->name);
    }
}

TIMED_TEST(BasicGraphTests, frontBackTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");
    assertEqualsString("BasicGraph front", "a", bgraph.front()->name);
    assertEqualsString("BasicGraph back",  "e", bgraph.back()->name);
}

TIMED_TEST(BasicGraphTests, hashCodeTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");
    assertEqualsInt("hashcode of self basicgraph", hashCode(bgraph), hashCode(bgraph));

    BasicGraph copy = bgraph;
    assertEqualsInt("hashcode of copy basicgraph", hashCode(bgraph), hashCode(copy));

    BasicGraph bgraph2;
    bgraph2.addNode("a");
    bgraph2.addNode("b");
    bgraph2.addNode("c");
    bgraph2.addNode("d");
    bgraph2.addNode("e");
    bgraph2.addNode("f");
    bgraph2.addArc("a", "b");
    bgraph2.addArc("a", "d");
    bgraph2.addArc("b", "c");
    bgraph2.addArc("b", "d");
    bgraph2.addArc("c", "b");
    bgraph2.addArc("b", "e");
    assertNotEqualsInt("hashcode of unequal basicgraph", hashCode(bgraph), hashCode(bgraph2));

    HashSet<BasicGraph> hashbgraph;
    hashbgraph.add(bgraph);
    hashbgraph.add(bgraph2);
    assertEqualsInt("hashset of basicgraph size", 2, hashbgraph.size());

    Vertex* v1 = new Vertex("v1");
    Vertex* v2 = new Vertex("v2");
    Vertex* v3 = new Vertex("v3");
    Vertex* v4 = new Vertex("v4");
    Vertex* v5 = new Vertex("v5");
    Vertex* v6 = new Vertex("v6");

    HashSet<HashSet<Vertex*>> hhset2;
    HashSet<Vertex*> hset3;
    hset3.add(v1);
    hset3.add(v2);
    hset3.add(v3);
    hhset2.add(hset3);
    HashSet<Vertex*> hset4;
    hset4.add(v4);
    hset4.add(v5);
    hset4.add(v6);
    hhset2.add(hset4);
    assertEqualsInt("hashset of hashset of vertex size", 2, hhset2.size());

    delete v1;
    delete v2;
    delete v3;
    delete v4;
    delete v5;
    delete v6;
}

TIMED_TEST(BasicGraphTests, initializerListTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph graph {"a", "b", "c", "d"};
    assertEqualsString("init list BasicGraph", "{a, b, c, d}", graph.toString());
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(BasicGraphTests, iteratorVersionTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
    BasicGraph bgraph;
    bgraph.addNode("a");
    bgraph.addNode("b");
    bgraph.addNode("c");
    bgraph.addNode("d");
    bgraph.addNode("e");
    bgraph.addArc("a", "b");
    bgraph.addArc("a", "d");
    bgraph.addArc("b", "c");
    bgraph.addArc("b", "d");
    bgraph.addArc("c", "b");
    bgraph.addArc("c", "e");

    try {
        for (Vertex* v : bgraph) {
            bgraph.removeNode(v);
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

//static void temp(BasicGraph /*bg*/) {
//    // empty
//}

//static Set<Edge*> temp2() {
//    BasicGraph bgraph;
//    bgraph.addNode("a");
//    bgraph.addNode("b");
//    bgraph.addNode("c");
//    bgraph.addNode("d");
//    bgraph.addNode("e");
//    bgraph.addArc("a", "b");
//    bgraph.addArc("a", "d");
//    bgraph.addArc("b", "c");
//    bgraph.addArc("b", "d");
//    bgraph.addArc("c", "b");
//    bgraph.addArc("c", "e");

//    Set<Edge*> edges;
//    for (Vertex* v : bgraph.getVertexSet()) {
//        edges += v->arcs;
//    }

////    {
////        BasicGraph bgraph2 = bgraph;
////        temp(bgraph2);

////        // let it fall out of scope; should free memory (oops!)
////    }

//    return edges;
//}

//TIMED_TEST(BasicGraphTests, operatorEqualsTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
//    Set<Edge*> edges = temp2();

//    // this code should crash
//    int count = 0;
//    for (Edge* e : edges) {
//        if (e->start || e->finish) {
//            std::cout << "e is " << e->start->name
//                      << " -> " << e->finish->name << std::endl;
//            count++;
//        }
//    }

//    assertPass("Graph didn't crash after operator =");
//}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-common.h
================================================
/*
 * Common helper functions used by collection tests.
 * @version 2016/10/22
 * - initial version
 */

#ifndef _collection_test_common_h
#define _collection_test_common_h

#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>
#include <utility>
#include "assertions.h"
#include "set.h"

template <typename CollectionType, typename T>
void assertCollection(std::string message,
                      std::initializer_list<T> expectedList,
                      const CollectionType& collection,
                      bool checkOrder = true) {
    if (checkOrder) {
        CollectionType copy(expectedList);
        assertEqualsCollection("Collections must be equal", copy, collection);
    } else {
        // just needs to contain the same elements in some order
        Set<T> expected(expectedList);
        Set<T> actual;
        for (auto element : collection) {
            actual.add(element);
        }
        assertEqualsCollection("Collections must be equal", expected, actual);
    }
    assertEquals(message + ": size of collection", (int) expectedList.size(), collection.size());
}

template <typename MapType, typename K, typename V>
void assertMap(std::string message, std::initializer_list<std::pair<const K, V>> expected,
               const MapType& map,
               bool checkOrder = true) {
    if (checkOrder) {
        MapType copy(expected);
        assertEqualsCollection("Collections must be equal", copy, map);
    } else {
        // just needs to contain the same key/value pairs in some order
        Set<K> expectedKeys;
        Set<V> expectedValues;
        Set<K> actualKeys;
        Set<V> actualValues;
        for (auto pair : expected) {
            expectedKeys.add(pair.first);
            expectedValues.add(pair.second);
        }
        for (auto key : map) {
            actualKeys.add(key);
            actualValues.add(map.get(key));
        }
        assertEqualsCollection("Keys must be equal", expectedKeys, actualKeys);
        assertEqualsCollection("Values must be equal", expectedValues, actualValues);
    }
    assertEquals(message + ": size of collection", (int) expected.size(), map.size());
}

#endif // _collection_test_common_h


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-dawglexicon.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "dawglexicon.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(DawgLexiconTests, "DawgLexicon tests");

TIMED_TEST(DawgLexiconTests, basicTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::string> words = {
        "a",
        "ab",
        "aab",
        "aaab",
        "aardvark",
        "b",
        "banana"
    };
    std::initializer_list<std::string> badWords = {
        "abb",
        "ad",
        "and",
        "aaardvark",
        "aardvarks",
    };
    std::initializer_list<std::string> badPrefixes = {
        "aaaa",
        "abb",
        "aardvarz",
        "bb",
        "bananas",
        "c",
        "r",
        "z"
    };

    DawgLexicon dawg;
    for (std::string word : words) {
        dawg.add(word);
    }
    assertEquals("DawgLexicon size", (int) words.size(), dawg.size());

    for (std::string word : words) {
        assertTrue("DawgLexicon contains " + word, dawg.contains(word));
    }

    for (std::string word : badWords) {
        assertFalse("DawgLexicon contains " + word, dawg.contains(word));
    }

    for (std::string word : words) {
        for (int i = 0; i < (int) word.length(); i++) {
            std::string prefix = word.substr(0, i);
            assertTrue("DawgLexicon containsPrefix " + word, dawg.containsPrefix(word));
        }
    }

    for (std::string word : badPrefixes) {
        assertFalse("DawgLexicon containsPrefix " + word, dawg.containsPrefix(word));
    }
}

TIMED_TEST(DawgLexiconTests, compareTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon dawg;
    dawg.add("a");
    dawg.add("b");
    dawg.add("c");
    DawgLexicon dawg2;
    dawg2.add("a");
    dawg2.add("ab");
    dawg2.add("bc");
    DawgLexicon dawg3;
    compareTestHelper(dawg, dawg2, "DawgLexicon", /* compareTo */ 1);
    compareTestHelper(dawg2, dawg, "DawgLexicon", /* compareTo */ -1);
    compareTestHelper(dawg, dawg, "DawgLexicon", /* compareTo */ 0);

    Set<DawgLexicon> sdlex {dawg, dawg2, dawg3};
    assertEqualsString("sdlex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdlex.toString());
}

TIMED_TEST(DawgLexiconTests, forEachTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon dlex;
    dlex.add("a");
    dlex.add("cc");
    dlex.add("bbb");
    Queue<std::string> expected {"a", "bbb", "cc"};
    for (std::string word : dlex) {
        std::string exp = expected.dequeue();
        assertEqualsString("DawgLexicon foreach", exp, word);
    }
}

TIMED_TEST(DawgLexiconTests, frontBackTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon dlex {"apple", "apricot", "banana", "zebra"};
    assertEqualsString("DawgLexicon front", "apple", dlex.front());
    // assertEqualsString("DawgLexicon back",  "zebra", dlex.back());
}

TIMED_TEST(DawgLexiconTests, hashCodeTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon dlex;
    dlex.add("a");
    dlex.add("abc");
    assertEqualsInt("hashcode of self dawglexicon", hashCode(dlex), hashCode(dlex));

    DawgLexicon copy = dlex;
    assertEqualsInt("hashcode of copy dawglexicon", hashCode(dlex), hashCode(copy));

    DawgLexicon dlex2;   // empty

    // shouldn't add two copies of same lexicon
    HashSet<DawgLexicon> hashdawg {dlex, copy, dlex2};
    assertEqualsInt("hashset of dawglexicon size", 2, hashdawg.size());
}

TIMED_TEST(DawgLexiconTests, initializerListTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::string> lexlist = {"sixty", "seventy"};

    DawgLexicon dlex {"ten", "twenty", "thirty"};
    assertEqualsString("init list DawgLexicon", "{\"ten\", \"thirty\", \"twenty\"}", dlex.toString());
    assertEqualsInt("init list DawgLexicon size", 3, dlex.size());
    assertTrue("init list DawgLexicon contains ten", dlex.contains("ten"));
    assertTrue("init list DawgLexicon contains twenty", dlex.contains("twenty"));
    assertTrue("init list DawgLexicon contains thirty", dlex.contains("thirty"));
    assertFalse("init list DawgLexicon contains forty", dlex.contains("forty"));
    assertFalse("init list DawgLexicon contains fifty", dlex.contains("fifty"));

    dlex += {"forty", "fifty"};
    assertEqualsString("after += DawgLexicon", "{\"fifty\", \"forty\", \"ten\", \"thirty\", \"twenty\"}", dlex.toString());
    assertEqualsInt("after += DawgLexicon size", 5, dlex.size());
    assertTrue("init list DawgLexicon contains ten", dlex.contains("ten"));
    assertTrue("init list DawgLexicon contains twenty", dlex.contains("twenty"));
    assertTrue("init list DawgLexicon contains thirty", dlex.contains("thirty"));
    assertTrue("init list DawgLexicon contains forty", dlex.contains("forty"));
    assertTrue("init list DawgLexicon contains fifty", dlex.contains("fifty"));
    assertFalse("init list DawgLexicon contains sixty", dlex.contains("sixty"));
    assertFalse("init list DawgLexicon contains seventy", dlex.contains("seventy"));

    DawgLexicon dlex2 = (dlex + lexlist);
    assertEqualsString("after += DawgLexicon", "{\"fifty\", \"forty\", \"ten\", \"thirty\", \"twenty\"}", dlex.toString());
    assertEqualsInt("after + DawgLexicon size", 5, dlex.size());
    assertTrue("init list DawgLexicon contains ten", dlex.contains("ten"));
    assertTrue("init list DawgLexicon contains twenty", dlex.contains("twenty"));
    assertTrue("init list DawgLexicon contains thirty", dlex.contains("thirty"));
    assertTrue("init list DawgLexicon contains forty", dlex.contains("forty"));
    assertTrue("init list DawgLexicon contains fifty", dlex.contains("fifty"));
    assertFalse("init list DawgLexicon contains sixty", dlex.contains("sixty"));
    assertFalse("init list DawgLexicon contains seventy", dlex.contains("seventy"));

    assertEqualsString("after + DawgLexicon 2", "{\"fifty\", \"forty\", \"seventy\", \"sixty\", \"ten\", \"thirty\", \"twenty\"}", dlex2.toString());
    assertEqualsInt("after + DawgLexicon 2 size", 7, dlex2.size());
    assertTrue("init list DawgLexicon contains ten", dlex2.contains("ten"));
    assertTrue("init list DawgLexicon contains twenty", dlex2.contains("twenty"));
    assertTrue("init list DawgLexicon contains thirty", dlex2.contains("thirty"));
    assertTrue("init list DawgLexicon contains forty", dlex2.contains("forty"));
    assertTrue("init list DawgLexicon contains fifty", dlex2.contains("fifty"));
    assertTrue("init list DawgLexicon contains sixty", dlex2.contains("sixty"));
    assertTrue("init list DawgLexicon contains seventy", dlex2.contains("seventy"));
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(DawgLexiconTests, iteratorVersionTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
    DawgLexicon lex {"ten", "twenty", "thirty", "forty"};
    try {
        for (std::string s : lex) {
            if (s.length() % 2 == 0) {
                lex.add("hi");
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-deque.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "deque.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(DequeTests, "Deque tests");

/*
 * Force instantiation of Deque on a few types to make sure we didn't miss anything.
 * These types must be comparable and hashable to avoid instaniating functions we
 * can't support.
 */
template class Deque<int>;
template class Deque<bool>;
template class Deque<std::string>;

TIMED_TEST(DequeTests, compareTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<std::string> deq;
    deq.add("a");
    deq.add("b");
    deq.add("c");
    Deque<std::string> deq2;
    deq2.add("a");
    deq2.add("ab");
    deq2.add("bc");
    Deque<std::string> deq3;
    compareTestHelper(deq, deq2, "Deque", /* compareTo */ 1);
    compareTestHelper(deq2, deq, "Deque", /* compareTo */ -1);
    compareTestHelper(deq, deq, "Deque", /* compareTo */ 0);
    Set<Deque<std::string> > sdeque {deq, deq2, deq3};
    assertEqualsString("sdeque", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", sdeque.toString());
}

TIMED_TEST(DequeTests, forEachTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<int> deq;
    deq.addBack(1);
    deq.addFront(2);
    deq.addBack(3);
    deq.addFront(4);

    assertCollection("Deque foreach", {4, 2, 1, 3}, deq);
}

TIMED_TEST(DequeTests, frontBackTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<int> deq {10, 20, 30, 40};
    assertEqualsInt("Deque front", 10, deq.front());
    assertEqualsInt("Deque back", 40, deq.back());
}

TIMED_TEST(DequeTests, hashCodeTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<int> deq;
    deq.addBack(1);
    deq.addFront(2);
    deq.addBack(3);
    deq.addFront(4);
    assertEqualsInt("hashcode of self Deque", hashCode(deq), hashCode(deq));

    Deque<int> copy = deq;
    assertEqualsInt("hashcode of copy Deque", hashCode(deq), hashCode(copy));

    Deque<int> empty;

    HashSet<Deque<int> > hashdeq {deq, copy, empty, empty};
    assertEqualsInt("hashset of Deque size", 2, hashdeq.size());
}

TIMED_TEST(DequeTests, initializerListTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<int> deque {10, 20, 30};
    assertEqualsString("deque initializer list", "{10, 20, 30}", deque.toString());
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(DequeTests, iteratorVersionTest_Deque, TEST_TIMEOUT_DEFAULT) {
    Deque<int> deque {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    try {
        for (int n : deque) {
            if (n % 2 == 0) {
                deque.dequeueBack();
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-graph.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "graph.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(GraphTests, "Graph tests");

// for testing Graph class
struct DumbNode;
struct DumbEdge;

struct DumbNode {
    std::string name;
    Set<DumbEdge*> arcs;
    double cost;
};

struct DumbEdge {
    DumbNode* start;
    DumbNode* finish;
    double cost;
};

TIMED_TEST(GraphTests, basicTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");

    Graph<DumbNode, DumbEdge> copy = graph;

    assertEqualsInt("graph size", 5, graph.size());
    assertEqualsInt("graph node count", 5, graph.getNodeSet().size());
    assertEqualsInt("graph arc count", 6, graph.getArcSet().size());

    assertNotNull("graph contains a", graph.getNode("a"));
    assertNotNull("graph contains b", graph.getNode("b"));
    assertNotNull("graph contains c", graph.getNode("c"));
    assertNotNull("graph contains d", graph.getNode("d"));
    assertNotNull("graph contains e", graph.getNode("e"));
    assertNull("graph contains f", graph.getNode("f"));
    assertNull("graph contains g", graph.getNode("g"));

    graph.removeArc("a", "b");
    assertEqualsInt("graph arc count", 5, graph.getArcSet().size());

    graph.removeNode("b");
    assertEqualsInt("graph node count", 4, graph.getNodeSet().size());
    assertEqualsInt("graph arc count", 2, graph.getArcSet().size());

    graph = copy;
    graph.clear();
    assertEqualsInt("graph size", 0, graph.size());
    assertEqualsInt("graph node count", 0, graph.getNodeSet().size());
    assertEqualsInt("graph arc count", 0, graph.getArcSet().size());
}

TIMED_TEST(GraphTests, compareTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");

    Graph<DumbNode, DumbEdge> graph2;
    graph2.addNode("a");
    graph2.addNode("b");
    graph2.addNode("c");
    graph2.addNode("d");
    graph2.addNode("e");
    graph2.addNode("f");
    graph2.addArc("a", "b");
    graph2.addArc("a", "d");
    graph2.addArc("b", "c");
    graph2.addArc("b", "d");
    graph2.addArc("c", "b");
    graph2.addArc("b", "e");

    Graph<DumbNode, DumbEdge> graph3;

    compareTestHelper(graph, graph2, "Graph", /* compareTo */ -1);
    compareTestHelper(graph, graph3, "Graph", /* compareTo */  1);
    compareTestHelper(graph2, graph, "Graph", /* compareTo */  1);
    compareTestHelper(graph, graph, "Graph", /* compareTo */ 0);

    Set<Graph<DumbNode, DumbEdge> > sgraph {graph, graph2, graph3};
    assertEqualsString("sgraph", "{{}, {a, b, c, d, e, a -> b, a -> d, b -> c, b -> d, c -> b, c -> e}, {a, b, c, d, e, f, a -> b, a -> d, b -> c, b -> d, b -> e, c -> b}}", sgraph.toString());
}

TIMED_TEST(GraphTests, forEachTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");
    Queue<std::string> expected {"a", "b", "c", "d", "e"};
    for (DumbNode* node : graph) {
        std::string exp = expected.dequeue();
        assertEqualsString("Graph foreach node name", exp, node->name);
    }
}

TIMED_TEST(GraphTests, frontBackTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");
    assertEqualsString("Graph front", "a", graph.front()->name);
    assertEqualsString("Graph back",  "e", graph.back()->name);
}

TIMED_TEST(GraphTests, hashCodeTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");
    assertEqualsInt("hashcode of self cgraph", hashCode(graph), hashCode(graph));

    Graph<DumbNode, DumbEdge> copy = graph;
    assertEqualsInt("hashcode of copy graph", hashCode(graph), hashCode(copy));

    Graph<DumbNode, DumbEdge> graph2;
    graph2.addNode("a");
    graph2.addNode("b");
    graph2.addNode("c");
    graph2.addNode("d");
    graph2.addNode("e");
    graph2.addNode("f");
    graph2.addArc("a", "b");
    graph2.addArc("a", "d");
    graph2.addArc("b", "c");
    graph2.addArc("b", "d");
    graph2.addArc("c", "b");
    graph2.addArc("b", "e");
    assertNotEqualsInt("hashcode of unequal graph", hashCode(graph), hashCode(graph2));

    HashSet<Graph<DumbNode, DumbEdge> > hashgraph;
    hashgraph.add(graph);
    hashgraph.add(graph2);
    assertEqualsInt("hashset of graph size", 2, hashgraph.size());
}

TIMED_TEST(GraphTests, initializerListTest_Graph, TEST_TIMEOUT_DEFAULT) {
    // TODO
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(GraphTests, iteratorVersionTest_Graph, TEST_TIMEOUT_DEFAULT) {
    Graph<DumbNode, DumbEdge> graph;
    graph.addNode("a");
    graph.addNode("b");
    graph.addNode("c");
    graph.addNode("d");
    graph.addNode("e");
    graph.addArc("a", "b");
    graph.addArc("a", "d");
    graph.addArc("b", "c");
    graph.addArc("b", "d");
    graph.addArc("c", "b");
    graph.addArc("c", "e");

    try {
        for (DumbNode* v : graph) {
            graph.removeNode(v);
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-grid.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "grid.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(GridTests, "Grid tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class Grid<int>;
template class Grid<std::string>;

TIMED_TEST(GridTests, compareTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid1;
    grid1.resize(2, 2);
    Grid<int> grid2;
    grid2.resize(2, 3);
    Grid<int> grid3;
    grid3.resize(3, 2);
    Grid<int> grid4;

    /* Comparison is lexicographic by rows, then cols, then
     * elements.
     */
    compareTestHelper(grid1, grid2, "Grid", /* compareTo */ -1);
    compareTestHelper(grid2, grid1, "Grid", /* compareTo */  1);
    compareTestHelper(grid1, grid3, "Grid", /* compareTo */ -1);
    compareTestHelper(grid3, grid1, "Grid", /* compareTo */  1);
    compareTestHelper(grid2, grid3, "Grid", /* compareTo */ -1);
    compareTestHelper(grid3, grid2, "Grid", /* compareTo */  1);
    compareTestHelper(grid1, grid1, "Grid", /* compareTo */  0);

    Set<Grid<int>> sgrid {grid1, grid2, grid3, grid4};
    assertEqualsString("sgrid", "{{}, {{0, 0}, {0, 0}}, {{0, 0, 0}, {0, 0, 0}}, {{0, 0}, {0, 0}, {0, 0}}}", sgrid.toString());
}

TIMED_TEST(GridTests, forEachTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid(4, 2);
    grid.fill(42);
    grid[2][0] = 17;
    grid[3][1] = 0;
    Queue<int> expected {42, 42, 42, 42, 17, 42, 42, 0};
    for (int n : grid) {
        int exp = expected.dequeue();
        assertEqualsInt("Grid foreach", exp, n);
    }
}

TIMED_TEST(GridTests, frontBackTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid {{10, 20, 30}, {40, 50, 60}};
    assertEqualsInt("Grid front", 10, grid.front());
    assertEqualsInt("Grid back",  60, grid.back());
}

TIMED_TEST(GridTests, hashCodeTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid(2, 3);
    grid.fill(42);
    assertEqualsInt("hashcode of self Grid", hashCode(grid), hashCode(grid));

    Grid<int> copy = grid;
    assertEqualsInt("hashcode of copy Grid", hashCode(grid), hashCode(copy));

    Grid<int> empty;   // empty
    HashSet<Grid<int> > hashgrid {grid, copy, empty, empty};

    assertEqualsInt("hashset of Grid size", 2, hashgrid.size());
}

TIMED_TEST(GridTests, initializerListTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid {{10, 20, 30}, {40, 50, 60}};
    assertEqualsInt("init list Grid numRows", 2, grid.numRows());
    assertEqualsInt("init list Grid numCols", 3, grid.numCols());
    assertEqualsInt("init list Grid size", 6, grid.size());
    assertEqualsInt("init list Grid[0][0]", 10, grid[0][0]);
    assertEqualsInt("init list Grid[0][1]", 20, grid[0][1]);
    assertEqualsInt("init list Grid[0][2]", 30, grid[0][2]);
    assertEqualsInt("init list Grid[1][0]", 40, grid[1][0]);
    assertEqualsInt("init list Grid[1][1]", 50, grid[1][1]);
    assertEqualsInt("init list Grid[1][2]", 60, grid[1][2]);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(GridTests, iteratorVersionTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> grid {{10, 20, 30}, {40, 50, 60}};
    try {
        for (int n : grid) {
            if (n % 2 == 0) {
                grid.fill(42);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(GridTests, mapAllTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Grid<int> rowSort = {
        { 0, 1, 2 },
        { 3, 4, 5 },
        { 6, 7, 8 }
    };

    int lastRowVal = -1;
    rowSort.mapAll([&](auto val) {
        assertTrue("Visits values in row-major order", lastRowVal < val);
        lastRowVal = val;
    });

    Grid<int> colSort = {
        { 0, 3, 6 },
        { 1, 4, 7 },
        { 2, 5, 8 }
    };

    int lastColVal = -1;
    colSort.mapAllColumnMajor([&](auto val) {
        assertTrue("Visits values in col-major order", lastColVal < val);
        lastColVal = val;
    });
}

TIMED_TEST(GridTests, randomElementTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    Grid<std::string> grid;
    grid.resize(2, 3);
    grid[0][0] = "a";
    grid[0][1] = "b";
    grid[0][2] = "c";
    grid[1][0] = "d";
    grid[1][1] = "e";
    grid[1][2] = "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(grid);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-hashmap.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "hashmap.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include "strlib.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(HashMapTests, "HashMap tests");

/*
 * Force instantiation of HashMap on a few types to make sure we didn't miss anything.
 * The key types must be hashable.
 */
template class HashMap<int, int>;
template class HashMap<std::string, int>;

/*
 * Uncomment this code to include tests that the nice error messages for types missing
 * hashing show up properly.
 */
#if 0
void causeCompilerError() {
    struct Bad {};

    HashMap<Bad, int> bad; // Should trigger a static assertion rather than a long chain of sorrows
}
#endif

TIMED_TEST(HashMapTests, forEachTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    HashMap<std::string, int> hmap;
    hmap["a"] = 1;
    hmap["bbbb"] = 2;
    hmap["zz"] = 26;
    Queue<std::string> expectedKeys {"a", "bbbb", "zz"};
    Queue<int> expectedValues {1, 2, 26};
    while (!expectedKeys.isEmpty()) {
        std::string key = expectedKeys.dequeue();
        assertTrue("HashMap must contain key " + key, hmap.containsKey(key));
        int value = expectedValues.dequeue();
        assertEqualsInt("HashMap[" + key + "] must equal " + std::to_string(value), value, hmap[key]);
    }
}

TIMED_TEST(HashMapTests, frontBackTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    HashMap<std::string, int> hmap {{"a", 10}, {"b", 20}, {"c", 30}};

    std::string front = hmap.front();
    std::string back  = hmap.back();
    if (front != "a" && front != "b" && front != "c") {
        assertFail("HashMap front fail!");
    }
    if ((back != "a" && back != "b" && back != "c") || (front == back)) {
        assertFail("HashMap back fail!");
    }
}

TIMED_TEST(HashMapTests, initializerListTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::pair<const std::string, int>> pairlist = {{"k", 60}, {"t", 70}};
    std::initializer_list<std::pair<const std::string, int>> pairlist2 = {{"b", 20}, {"e", 50}};
    std::initializer_list<std::pair<const std::string, int>> expected;

    HashMap<std::string, int> hmap {{"a", 10}, {"b", 20}, {"c", 30}};
    assertEqualsInt("init list HashMap get a", 10, hmap.get("a"));
    assertEqualsInt("init list HashMap get b", 20, hmap.get("b"));
    assertEqualsInt("init list HashMap get c", 30, hmap.get("c"));
    assertEqualsInt("init list HashMap size", 3, hmap.size());

    hmap += {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after +=", expected, hmap);

    HashMap<std::string, int> copy = hmap + pairlist;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after + (shouldn't modify)", expected, hmap);
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}, {"k", 60}, {"t", 70}};
    // assertMap("after + copy", expected, copy);

    copy = hmap - pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after - (shouldn't modify)", expected, hmap);
    expected = {{"a", 10}, {"c", 30}, {"d", 40}};
    assertMap("after - copy", expected, copy);

    copy = hmap * pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after * (shouldn't modify)", expected, hmap);
    expected = {{"b", 20}, {"e", 50}};
    assertMap("after * copy", expected, copy);

    hmap -= {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}};
    assertMap("after -=", expected, hmap);

    hmap *= pairlist2;
    expected = {{"b", 20}};
    assertMap("after *=", expected, hmap);
}

TIMED_TEST(HashMapTests, iteratorBasic_HashMap, TEST_TIMEOUT_DEFAULT) {
    HashMap<std::string, int> map;

    map["A"] = 1;
    map["B"] = 2;
    map["C"] = 3;
    map["D"] = 4;

    assertEquals("Map should have all elements present.", map.size(), 4);

    Map<std::string, int> ref;

    for (const auto& key: map) {
        ref[key] = map[key];
    }

    assertEquals("Reference map should have all elements present.", ref.size(), 4);
    assertTrue("Reference map should contain A.", ref.containsKey("A"));
    assertTrue("Reference map should have A = 1.", ref.get("A") == 1);
    assertTrue("Reference map should contain B.", ref.containsKey("B"));
    assertTrue("Reference map should have B = 2.", ref.get("B") == 2);
    assertTrue("Reference map should contain C.", ref.containsKey("C"));
    assertTrue("Reference map should have C = 3.", ref.get("C") == 3);
    assertTrue("Reference map should contain D.", ref.containsKey("D"));
    assertTrue("Reference map should have D = 4.", ref.get("D") == 4);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(HashMapTests, iteratorVersionTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    HashMap<std::string, int> map {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}, {"f", 60}};
    try {
        for (std::string key : map) {
            int val = map[key];
            if (val % 2 == 0) {
                map.remove(key);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(HashMapTests, randomKeyTest_HashMap, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    HashMap<std::string, int> hmap;
    hmap["a"] = 50;
    hmap["b"] = 40;
    hmap["c"] = 30;
    hmap["d"] = 20;
    hmap["e"] = 10;
    hmap["f"] =  0;
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomKey(hmap);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(HashMapTests, streamExtractTest_HashMap2bad, TEST_TIMEOUT_DEFAULT) {
    HashMap<int, int> hm;
    std::istringstream hmstreambad("1:1, 2, 33}");
    bool result = bool(hmstreambad >> hm);
    assertFalse("operator >> on bad hashmap", result);
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-hashset.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "hashcode.h"
#include "hashset.h"
#include "map.h"
#include "queue.h"
#include "stl.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>
#include <numeric>

TEST_CATEGORY(HashSetTests, "HashSet tests");

/*
 * Force instantiation of HashSet on a few types to make sure we didn't miss anything.
 * The types must be hashable.
 */
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::HashSetTraits<int>>;
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::HashSetTraits<std::string>>;

/*
 * Uncomment this code to include tests that the nice error messages for types missing
 * hashing show up properly.
 */
#if 0
void causeCompilerError() {
    struct Bad {};

    HashSet<Bad> bad; // Should trigger a static assertion rather than a long chain of sorrows
}
#endif

/*
 * Uncomment this code to check whether nice error messages show up when you try to initialize
 * a HashSet improperly.
 */
#if 0
void badInitializationError() {
    HashSet<std::string> mySet = "137";
}
#endif

TIMED_TEST(HashSetTests, commaOperatorTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    /* Confirm that commas work properly. */
    HashSet<int> one = {1, 2, 3};

    /* Begin by adding some elements in. */
    one += 3, 4, 5; // {1, 2, 3, 4, 5}
    assertEqualsInt("elements were added", one.size(), 5);

    /* Now remove some elements. */
    one -= 3, 4, 5; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);

    /* Now add a collection of elements. */
    HashSet<int> two = {3, 4, 5};
    one += two, 6; // {1, 2, 3, 4, 5, 6}
    assertEqualsInt("elements were added", one.size(), 6);

    /* Now remove a collection of elements. */
    one -= two, 6; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);
}

TIMED_TEST(HashSetTests, forEachTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> hset {40, 20, 10, 30};
    Set<int> expected {10, 20, 30, 40};
    for (int n : hset) {
        assertTrue("HashSet must contain " + std::to_string(n), expected.contains(n));
    }
}

TIMED_TEST(HashSetTests, frontBackTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> hset {10, 20, 30, 40};
    int front = hset.front();
    int back = hset.back();
    if (front != 10 && front != 20 && front != 30 && front != 40) {
        assertFail("HashSet front fail!");
    }
    if ((back != 10 && back != 20 && back != 30 && back != 40) || (front == back)) {
        assertFail("HashSet back fail!");
    }
}

TIMED_TEST(HashSetTests, hashCodeTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> hset;
    hset.add(69);
    hset.add(42);
    assertEqualsInt("hashcode of self HashSet", hashCode(hset), hashCode(hset));

    HashSet<int> copy = hset;
    assertEqualsInt("hashcode of copy HashSet", hashCode(hset), hashCode(copy));

    HashSet<int> empty;
    HashSet<HashSet<int> > hashhashset {hset, copy, empty, empty};
    assertEqualsInt("hashset of Hashset size", 2, hashhashset.size());
}

TIMED_TEST(HashSetTests, initializerListTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    auto list = {60, 70};
    auto list2 = {20, 50};

    HashSet<int> hset {10, 20, 30};
    assertCollection("initial", {10, 20, 30}, hset);

    hset += {40, 50};
    assertCollection("after +=", {10, 20, 30, 40, 50}, hset);

    HashSet<int> copy = hset + list;
    assertCollection("after + (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after + copy", {10, 20, 30, 40, 50, 60, 70}, copy);

    copy = hset - list2;
    assertCollection("after - (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after - copy", {10, 30, 40}, copy);

    copy = hset * list2;
    assertCollection("after * (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after * copy", {20, 50}, copy);

    hset -= {20, 50};
    assertCollection("after -=", {10, 30, 40}, hset);
    hset *= {0, 10, 40, 99};
    assertCollection("after *=", {10, 40}, hset);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(HashSetTests, iteratorVersionTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> set {1, 2, 3, 4, 1, 6, 1, 8, 2, 10};
    try {
        for (int n : set) {
            if (n % 2 == 0) {
                set.remove(n);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(HashSetTests, mapAllTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> set {7, 5, 1, 2, 8};

    int total = 0;
    set.mapAll([&] (int value) {
        total += value;
    });

    assertEqualsInt("mapAll produces correct sum.", std::accumulate(set.begin(), set.end(), 0), total);
}

TIMED_TEST(HashSetTests, randomElementTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    HashSet<std::string> hset(list);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(hset);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(HashSetTests, removeAndRetainTest_HashSet, TEST_TIMEOUT_DEFAULT) {
    HashSet<int> all   = { 1, 2, 3, 4, 5, 6, 7, 8 };
    HashSet<int> evens = {    2,    4,    6,    8,   10 };
    HashSet<int> odds  = { 1,    3,    5,    7    };

    all.removeAll(evens);
    assertEqualsCollection("should just have odds left", all, odds);

    HashSet<int> primes   = { 2, 3, 5, 7, 11 };
    HashSet<int> expected = { 3, 5, 7 };

    all.retainAll(primes);
    assertEqualsCollection("should have lost 1", all, expected);
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-lexicon.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "lexicon.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(LexiconTests, "Lexicon tests");

TIMED_TEST(LexiconTests, basicTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::string> words = {
        "a",
        "ab",
        "aab",
        "aaab",
        "aardvark",
        "b",
        "banana"
    };
    std::initializer_list<std::string> badWords = {
        "abb",
        "ad",
        "and",
        "aaardvark",
        "aardvarks",
    };
    std::initializer_list<std::string> badPrefixes = {
        "aaaa",
        "abb",
        "aardvarz",
        "bb",
        "bananas",
        "c",
        "r",
        "z"
    };

    Lexicon lex;
    for (std::string word : words) {
        lex.add(word);
    }
    assertEquals("Lexicon size", (int) words.size(), lex.size());

    for (std::string word : words) {
        assertTrue("Lexicon contains " + word, lex.contains(word));
    }

    for (std::string word : badWords) {
        assertFalse("Lexicon contains " + word, lex.contains(word));
    }

    for (std::string word : words) {
        for (int i = 0; i < (int) word.length(); i++) {
            std::string prefix = word.substr(0, i);
            assertTrue("Lexicon containsPrefix " + word, lex.containsPrefix(word));
        }
    }

    for (std::string word : badPrefixes) {
        assertFalse("Lexicon containsPrefix " + word, lex.containsPrefix(word));
    }
}

TIMED_TEST(LexiconTests, compareTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex;
    lex.add("a");
    lex.add("ab");
    lex.add("bc");
    Lexicon lex2;
    lex2.add("a");
    lex2.add("b");
    lex2.add("c");
    Lexicon lex3;
    compareTestHelper(lex, lex2, "Lexicon", /* compareTo */ -1);
    compareTestHelper(lex2, lex, "Lexicon", /* compareTo */ 1);
    compareTestHelper(lex, lex, "Lexicon", /* compareTo */ 0);

    Set<Lexicon> slex {lex, lex2, lex3};
    assertEqualsString("slex", "{{}, {\"a\", \"ab\", \"bc\"}, {\"a\", \"b\", \"c\"}}", slex.toString());
}

TIMED_TEST(LexiconTests, forEachTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex;
    lex.add("a");
    lex.add("aba");
    lex.add("cc");
    lex.add("bbb");
    lex.add("c");
    lex.add("bart");
    std::initializer_list<std::string> list {"a", "aba", "bart", "bbb", "c", "cc"};
    assertCollection("foreach Lexicon", list, lex);
}

TIMED_TEST(LexiconTests, frontBackTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex {"apple", "apricot", "banana", "zebra"};
    assertEqualsString("Lexicon front", "apple", lex.front());
    assertEqualsString("Lexicon back",  "zebra", lex.back());
}

TIMED_TEST(LexiconTests, hashCodeTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex;
    lex.add("a");
    lex.add("bc");
    assertEqualsInt("hashcode of self lexicon", hashCode(lex), hashCode(lex));

    Lexicon copy = lex;
    assertEqualsInt("hashcode of copy lexicon", hashCode(lex), hashCode(copy));

    Lexicon lex2;   // empty

    // shouldn't add two copies of same lexicon
    HashSet<Lexicon> hashlex {lex, copy, lex2};
    assertEqualsInt("hashset of lexicon size", 2, hashlex.size());
}

TIMED_TEST(LexiconTests, initializerListTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::string> lexlist = {"sixty", "seventy"};

    Lexicon lex {"ten", "twenty", "thirty"};
    assertEqualsString("init list Lexicon", "{\"ten\", \"thirty\", \"twenty\"}", lex.toString());
    assertEqualsInt("init list Lexicon size", 3, lex.size());
    assertTrue("init list Lexicon contains ten", lex.contains("ten"));
    assertTrue("init list Lexicon contains twenty", lex.contains("twenty"));
    assertTrue("init list Lexicon contains thirty", lex.contains("thirty"));
    assertFalse("init list Lexicon contains forty", lex.contains("forty"));
    assertFalse("init list Lexicon contains fifty", lex.contains("fifty"));

    lex += {"forty", "fifty"};
    assertEqualsString("after += Lexicon", "{\"fifty\", \"forty\", \"ten\", \"thirty\", \"twenty\"}", lex.toString());
    assertEqualsInt("after += Lexicon size", 5, lex.size());
    assertTrue("init list Lexicon contains ten", lex.contains("ten"));
    assertTrue("init list Lexicon contains twenty", lex.contains("twenty"));
    assertTrue("init list Lexicon contains thirty", lex.contains("thirty"));
    assertTrue("init list Lexicon contains forty", lex.contains("forty"));
    assertTrue("init list Lexicon contains fifty", lex.contains("fifty"));
    assertFalse("init list Lexicon contains sixty", lex.contains("sixty"));
    assertFalse("init list Lexicon contains seventy", lex.contains("seventy"));

    Lexicon lex2 = (lex + lexlist);
    assertEqualsString("after += Lexicon", "{\"fifty\", \"forty\", \"ten\", \"thirty\", \"twenty\"}", lex.toString());
    assertEqualsInt("after + Lexicon size", 5, lex.size());
    assertTrue("init list Lexicon contains ten", lex.contains("ten"));
    assertTrue("init list Lexicon contains twenty", lex.contains("twenty"));
    assertTrue("init list Lexicon contains thirty", lex.contains("thirty"));
    assertTrue("init list Lexicon contains forty", lex.contains("forty"));
    assertTrue("init list Lexicon contains fifty", lex.contains("fifty"));
    assertFalse("init list Lexicon contains sixty", lex.contains("sixty"));
    assertFalse("init list Lexicon contains seventy", lex.contains("seventy"));

    assertEqualsString("after + Lexicon 2", "{\"fifty\", \"forty\", \"seventy\", \"sixty\", \"ten\", \"thirty\", \"twenty\"}", lex2.toString());
    assertEqualsInt("after + Lexicon 2 size", 7, lex2.size());
    assertTrue("init list Lexicon contains ten", lex2.contains("ten"));
    assertTrue("init list Lexicon contains twenty", lex2.contains("twenty"));
    assertTrue("init list Lexicon contains thirty", lex2.contains("thirty"));
    assertTrue("init list Lexicon contains forty", lex2.contains("forty"));
    assertTrue("init list Lexicon contains fifty", lex2.contains("fifty"));
    assertTrue("init list Lexicon contains sixty", lex2.contains("sixty"));
    assertTrue("init list Lexicon contains seventy", lex2.contains("seventy"));
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(LexiconTests, iteratorVersionTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
    Lexicon lex {"ten", "twenty", "thirty", "forty"};
    try {
        for (std::string s : lex) {
            if (s.length() % 2 == 0) {
                lex.remove(s);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashmap.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "linkedhashmap.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(LinkedHashMapTests, "LinkedHashMap tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class LinkedHashMap<int, int>;
template class LinkedHashMap<int, std::string>;
template class LinkedHashMap<std::string, int>;
template class LinkedHashMap<std::string, std::string>;

TIMED_TEST(LinkedHashMapTests, compareTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    // TODO
}

TIMED_TEST(LinkedHashMapTests, forEachTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    LinkedHashMap<std::string, int> lhmap;
    lhmap.put("zz", 26);
    lhmap.put("a", 1);
    lhmap.put("ss", 97);
    lhmap.put("bbbb", 2);
    lhmap.put("E", 4);
    lhmap.put("yZ44", 33);
    Queue<std::string> expected {"zz", "a", "ss", "bbbb", "E", "yZ44"};
    for (const std::string& key : lhmap) {
        std::string expkey = expected.dequeue();
        assertEqualsString("foreach LinkedHashMap", expkey, key);
    }
    lhmap.remove("ss");
    lhmap.remove("zz");
    lhmap.remove("yZ44");
    lhmap.remove("notfound");
    expected = {"a", "bbbb", "E"};
    for (const std::string& key : lhmap) {
        std::string expkey = expected.dequeue();
        assertEqualsString("foreach LinkedHashMap after removes", expkey, key);
    }
}

TIMED_TEST(LinkedHashMapTests, frontBackTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    LinkedHashMap<std::string, int> lhmap {{"b", 20}, {"c", 30}, {"a", 10}};
    assertEqualsString("LinkedHashMap front", "b", lhmap.front());
    assertEqualsString("LinkedHashMap back",  "a", lhmap.back());
}

TIMED_TEST(LinkedHashMapTests, hashCodeTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    LinkedHashMap<int, int> lhmap;
    lhmap.add(69, 96);
    lhmap.add(42, 24);
    assertEqualsInt("hashcode of self LinkedHashMap", hashCode(lhmap), hashCode(lhmap));

    LinkedHashMap<int, int> copy = lhmap;
    assertEqualsInt("hashcode of copy LinkedHashMap", hashCode(lhmap), hashCode(copy));

    LinkedHashMap<int, int> empty;

    HashSet<LinkedHashMap<int, int> > hashhashmap {lhmap, copy, empty, empty};
    assertEqualsInt("hashset of LinkedHashMap size", 2, hashhashmap.size());
}

TIMED_TEST(LinkedHashMapTests, initializerListTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::pair<const std::string, int> > pairlist = {{"k", 60}, {"t", 70}};
    std::initializer_list<std::pair<const std::string, int> > pairlist2 = {{"b", 20}, {"e", 50}};
    std::initializer_list<std::pair<const std::string, int> > expected;

    LinkedHashMap<std::string, int> hmap {{"a", 10}, {"b", 20}, {"c", 30}};
    assertEqualsInt("init list LinkedHashMap get a", 10, hmap.get("a"));
    assertEqualsInt("init list LinkedHashMap get b", 20, hmap.get("b"));
    assertEqualsInt("init list LinkedHashMap get c", 30, hmap.get("c"));
    assertEqualsInt("init list LinkedHashMap size", 3, hmap.size());

    hmap += {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after +=", expected, hmap);

    LinkedHashMap<std::string, int> copy = hmap + pairlist;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after + (shouldn't modify)", expected, hmap);
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}, {"k", 60}, {"t", 70}};
    // assertMap("after + copy", expected, copy);

    copy = hmap - pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after - (shouldn't modify)", expected, hmap);
    expected = {{"a", 10}, {"c", 30}, {"d", 40}};
    assertMap("after - copy", expected, copy);

    copy = hmap * pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after * (shouldn't modify)", expected, hmap);
    expected = {{"b", 20}, {"e", 50}};
    assertMap("after * copy", expected, copy);

    hmap -= {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}};
    assertMap("after -=", expected, hmap);

    hmap *= pairlist2;
    expected = {{"b", 20}};
    assertMap("after *=", expected, hmap);
}

TIMED_TEST(LinkedHashMapTests, randomKeyTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    LinkedHashMap<std::string, int> lhmap;
    lhmap.put("a", 50);
    lhmap.put("b", 40);
    lhmap.put("c", 30);
    lhmap.put("d", 20);
    lhmap.put("e", 10);
    lhmap.put("f",  0);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomKey(lhmap);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(LinkedHashMapTests, streamExtractTest_LinkedHashMap, TEST_TIMEOUT_DEFAULT) {
    std::istringstream lhmstream("{2:20, 1:10, 4:40, 3:30}");
    LinkedHashMap<int, int> lhm;
    lhmstream >> lhm;
    assertEqualsString("lhm", "{2:20, 1:10, 4:40, 3:30}", lhm.toString());
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashset.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "linkedhashset.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::LinkedHashSetTraits<int>>;
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::LinkedHashSetTraits<std::string>>;

TEST_CATEGORY(LinkedHashSetTests, "LinkedHashSet tests");

#if 0
void causeCompilerError() {
    struct Bad {};

    LinkedHashSet<Bad> bad; // Should trigger a static assertion rather than a long chain of sorrows
}
#endif

#if 0
void badInitializationError() {
    LinkedHashSet<std::string> mySet = "137";
}
#endif

TIMED_TEST(LinkedHashSetTests, commaOperatorLinkedHashTest_Set, TEST_TIMEOUT_DEFAULT) {
    /* Confirm that commas work properly. */
    LinkedHashSet<int> one = {1, 2, 3};

    /* Begin by adding some elements in. */
    one += 3, 4, 5; // {1, 2, 3, 4, 5}
    assertEqualsInt("elements were added", one.size(), 5);

    /* Now remove some elements. */
    one -= 3, 4, 5; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);

    /* Now add a collection of elements. */
    LinkedHashSet<int> two = {3, 4, 5};
    one += two, 6; // {1, 2, 3, 4, 5, 6}
    assertEqualsInt("elements were added", one.size(), 6);

    /* Now remove a collection of elements. */
    one -= two, 6; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);
}

TIMED_TEST(LinkedHashSetTests, compareTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    LinkedHashSet<int> set1 {7, 5, 1, 2, 8};
    LinkedHashSet<int> set2 {1, 2, 3, 4};
    LinkedHashSet<int> set3 {2, 1, 3, 4};
    LinkedHashSet<int> set4;
    compareTestHelper(set1, set2, "LinkedHashSet", /* compareTo */  1);
    compareTestHelper(set2, set1, "LinkedHashSet", /* compareTo */ -1);
    compareTestHelper(set1, set3, "LinkedHashSet", /* compareTo */  1);
    compareTestHelper(set2, set3, "LinkedHashSet", /* compareTo */  0);
    compareTestHelper(set3, set2, "LinkedHashSet", /* compareTo */  0);
    compareTestHelper(set2, set4, "LinkedHashSet", /* compareTo */  1);

    // note: shouldn't add set3 because it is 'equal' to set2 (duplicate)
    Set<LinkedHashSet<int> > slhset {set1, set2, set3, set4};
    assertEqualsString("slhset", "{{}, {1, 2, 3, 4}, {7, 5, 1, 2, 8}}", slhset.toString());
}

TIMED_TEST(LinkedHashSetTests, forEachTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    LinkedHashSet<int> lhset {30, 10, 40, 66, -1, 42, 99};
    Queue<int> expected {30, 10, 40, 66, -1, 42, 99};
    for (int n : lhset) {
        int exp = expected.dequeue();
        assertEqualsInt("LinkedHashSet foreach", exp, n);
    }
}

TIMED_TEST(LinkedHashSetTests, frontBackTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    LinkedHashSet<int> lhset {20, 10, 40, 30};
    assertEqualsInt("LinkedHashSet front", 20, lhset.front());
    assertEqualsInt("LinkedHashSet back",  30, lhset.back());
}

TIMED_TEST(LinkedHashSetTests, hashcodeTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    LinkedHashSet<int> hset;
    hset.add(69);
    hset.add(42);
    assertEqualsInt("hashcode of self LinkedHashSet", hashCode(hset), hashCode(hset));

    LinkedHashSet<int> hset2;
    hset2.add(42);
    hset2.add(69);
    assertEqualsInt("hashcode of LinkedHashSet other order", hashCode(hset), hashCode(hset2));

    LinkedHashSet<int> copy = hset;
    assertEqualsInt("hashcode of copy LinkedHashSet", hashCode(hset), hashCode(copy));

    LinkedHashSet<int> empty;
    HashSet<LinkedHashSet<int> > hashhashset {hset, copy, hset2, empty, empty};
    assertEqualsInt("hashset of LinkedHashset size", 2, hashhashset.size());
}

TIMED_TEST(LinkedHashSetTests, initializerListTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    auto list = {60, 70};
    auto list2 = {20, 50};

    LinkedHashSet<int> hset {10, 20, 30};
    assertCollection("initial", {10, 20, 30}, hset);

    hset += {40, 50};
    assertCollection("after +=", {10, 20, 30, 40, 50}, hset);

    LinkedHashSet<int> copy = hset + list;
    assertCollection("after + (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after + copy", {10, 20, 30, 40, 50, 60, 70}, copy);

    copy = hset - list2;
    assertCollection("after - (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after - copy", {10, 30, 40}, copy);

    copy = hset * list2;
    assertCollection("after * (shouldn't modify)", {10, 20, 30, 40, 50}, hset);
    assertCollection("after * copy", {20, 50}, copy);

    hset -= {20, 50};
    assertCollection("after -=", {10, 30, 40}, hset);
    hset *= {0, 10, 40, 99};
    assertCollection("after *=", {10, 40}, hset);
}

TIMED_TEST(LinkedHashSetTests, randomElementTest_LinkedHashSet, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    LinkedHashSet<std::string> hset(list);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(hset);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedlist.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "linkedlist.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(LinkedListTests, "LinkedList tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class LinkedList<int>;
template class LinkedList<std::string>;

TIMED_TEST(LinkedListTests, compareTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> ll1;
    ll1 += 1, 2, 4, 5;
    LinkedList<int> ll2;
    ll2 += 1, 3, 1, 4, 8;
    LinkedList<int> ll3;
    ll3 += 1, 1, 7;
    LinkedList<int> ll4;  // empty
    compareTestHelper(ll1, ll2, "LinkedList", /* compareTo */ -1);
    compareTestHelper(ll1, ll3, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll1, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll3, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll3, ll4, "LinkedList", /* compareTo */ 1);
    compareTestHelper(ll2, ll2, "LinkedList", /* compareTo */ 0);

    Set<LinkedList<int> > sll {ll1, ll2, ll3, ll4};
    assertEqualsString("sll", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 3, 1, 4, 8}}", sll.toString());
}

TIMED_TEST(LinkedListTests, forEachTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> v1 {1, 2, 3};
    assertCollection("foreach LinkedList", {1, 2, 3}, v1);

    LinkedList<std::string> v2 {"a", "b", "c"};
    std::initializer_list<std::string> list {"a", "b", "c"};
    assertCollection("foreach LinkedList", list, v2);
}

TIMED_TEST(LinkedListTests, hashCodeTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> llist;
    llist.add(69);
    llist.add(42);
    assertEqualsInt("hashcode of self LinkedList", hashCode(llist), hashCode(llist));

    LinkedList<int> copy = llist;
    assertEqualsInt("hashcode of copy LinkedList", hashCode(llist), hashCode(copy));

    LinkedList<int> empty;
    HashSet<LinkedList<int> > hashllist {llist, copy, empty, empty};
    assertEqualsInt("hashset of LinkedList size", 2, hashllist.size());
}

TIMED_TEST(LinkedListTests, indexOfTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    //                    0   1   2   3   4   5   6   7  8
    LinkedList<int> vec {10, 20, 30, 10, 40, 10, 50, 60, 0};
    assertEqualsInt("indexOf 10", 0, vec.indexOf(10));
    assertEqualsInt("indexOf 20", 1, vec.indexOf(20));
    assertEqualsInt("indexOf 50", 6, vec.indexOf(50));

    assertEqualsInt("lastIndexOf 10", 5, vec.lastIndexOf(10));
    assertEqualsInt("lastIndexOf 20", 1, vec.lastIndexOf(20));
    assertEqualsInt("lastIndexOf 0",  8, vec.lastIndexOf(0));

    assertEqualsBool("contains 10", true, vec.contains(10));
    assertEqualsBool("contains 20", true, vec.contains(20));
    assertEqualsBool("contains 50", true, vec.contains(50));
    assertEqualsBool("contains 70", false, vec.contains(70));
    assertEqualsBool("contains -1", false, vec.contains(-1));
    assertEqualsBool("contains 99", false, vec.contains(99));
}

TIMED_TEST(LinkedListTests, initializerListTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    auto list = {60, 70};

    LinkedList<int> llist {10, 20, 30};
    assertCollection("initial", {10, 20, 30}, llist);

    llist += {40, 50};
    assertCollection("after +=", {10, 20, 30, 40, 50}, llist);

    LinkedList<int> copy = llist + list;
    assertCollection("after + (shouldn't modify)", {10, 20, 30, 40, 50}, llist);
    assertCollection("after + copy", {10, 20, 30, 40, 50, 60, 70}, copy);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(LinkedListTests, iteratorVersionTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> ll {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    try {
        for (int n : ll) {
            if (n % 2 == 0) {
                ll.remove(ll.size() - 1);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(LinkedListTests, randomElementTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    LinkedList<std::string> llist(list);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(llist);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(LinkedListTests, removeValueTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    //                    0   1   2   3   4   5   6   7  8
    LinkedList<int> vec {10, 20, 30, 10, 40, 10, 50, 60, 0};
    vec.removeValue(40);
    vec.removeValue(10);
    vec.removeValue(10);
    vec.removeValue(0);
    LinkedList<int> exp {20, 30, 10, 50, 60};
    assertEqualsString("after removes", exp.toString(), vec.toString());
}

TIMED_TEST(LinkedListTests, reverseTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    //                    0   1   2   3   4   5   6   7   8   9  10
    LinkedList<int> vec {70, 30, 20, 10, 40, 90, 10, 50,  0, 60, 50};
    vec.reverse();
    LinkedList<int> exp {50, 60, 0, 50, 10, 90, 40, 10, 20, 30, 70};
    assertEqualsString("after reverse", exp.toString(), vec.toString());
}

TIMED_TEST(LinkedListTests, shuffleTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    LinkedList<int> v {10, 20, 30, 40, 50};
    Map<int, Map<int, int> > valueIndexCount;

    // shuffle 100 times
    for (int i = 0; i < 100; i++) {
        v.shuffle();
        for (int j = 0; j < v.size(); j++) {
            valueIndexCount[v[j]][j]++;
        }
    }

    // make sure each value appeared at each index at least once
    for (int n : v) {
        for (int j = 0; j < v.size(); j++) {
            assertNotEqualsInt("", 0, valueIndexCount[n][j]);
        }
    }
}

TIMED_TEST(LinkedListTests, sortTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
    //                    0   1   2   3   4   5   6   7   8   9  10
    LinkedList<int> vec {70, 30, 20, 10, 40, 90, 10, 50,  0, 60, 50};
    vec.sort();
    LinkedList<int> exp { 0, 10, 10, 20, 30, 40, 50, 50, 60, 70, 90};
    assertEqualsString("after sort", exp.toString(), vec.toString());
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-map.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "map.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "set.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(MapTests, "Map tests");

/*
 * Force instantiation of Map on a few types to make sure we didn't miss anything.
 * The key types must be comparable.
 */
template class Map<int, int>;
template class Map<std::string, int>;

/*
 * Uncomment this code to include tests that the nice error messages for types missing
 * hashing show up properly.
 */
#if 0
void causeCompilerError() {
    struct Bad {};

    Map<Bad, int> bad; // Should trigger a static assertion rather than a long chain of sorrows
}
#endif

/* This code, on the other hand, should NOT cause a compiler error, since we gave an
 * explicit comparison function.
 */
static void customComparatorNoError() {
    struct Meh {};

    Map<Meh, int> okay([](const Meh&, const Meh&) {
        return true;
    });

    (void) okay;
}

TIMED_TEST(MapTests, compareTest_Map, TEST_TIMEOUT_DEFAULT) {
    // TODO
}

TIMED_TEST(MapTests, forEachTest_Map, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> map;
    map.put("zz", 26);
    map.put("a", 1);
    map.put("ss", 97);
    map.put("bbbb", 2);
    map.put("E", 4);
    map.put("yZ44", 33);
    Set<std::string> expected {"zz", "a", "ss", "bbbb", "E", "yZ44"};
    for (const std::string& key : map) {
        assertTrue("foreach Map contains " + key, expected.contains(key));
    }
    map.remove("ss");
    map.remove("zz");
    map.remove("yZ44");
    map.remove("notfound");
    expected = {"a", "bbbb", "E"};
    for (const std::string& key : map) {
        assertTrue("foreach Map contains " + key, expected.contains(key));
    }
}

TIMED_TEST(MapTests, frontBackTest_Map, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> map {{"a", 10}, {"b", 20}, {"c", 30}};
    assertEqualsString("Map front", "a", map.front());
    assertEqualsString("Map back",  "c", map.back());
}

TIMED_TEST(MapTests, hashCodeTest_Map, TEST_TIMEOUT_DEFAULT) {
    Map<int, int> map;
    map.add(69, 96);
    map.add(42, 24);
    assertEqualsInt("hashcode of self Map", hashCode(map), hashCode(map));

    Map<int, int> copy = map;
    assertEqualsInt("hashcode of copy Map", hashCode(map), hashCode(copy));

    Map<int, int> empty;

    HashSet<Map<int, int> > hashmap {map, copy, empty, empty};
    assertEqualsInt("hashset of Map size", 2, hashmap.size());
}

TIMED_TEST(MapTests, initializerListTest_Map, TEST_TIMEOUT_DEFAULT) {
    std::initializer_list<std::pair<const std::string, int>> pairlist = {{"k", 60}, {"t", 70}};
    std::initializer_list<std::pair<const std::string, int>> pairlist2 = {{"b", 20}, {"e", 50}};
    std::initializer_list<std::pair<const std::string, int>> expected;

    Map<std::string, int> map {{"a", 10}, {"b", 20}, {"c", 30}};
    assertEqualsInt("init list Map get a", 10, map.get("a"));
    assertEqualsInt("init list Map get b", 20, map.get("b"));
    assertEqualsInt("init list Map get c", 30, map.get("c"));
    assertEqualsInt("init list Map size", 3, map.size());

    map += {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after +=", expected, map);

    Map<std::string, int> copy = map + pairlist;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after + (shouldn't modify)", expected, map);
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}, {"k", 60}, {"t", 70}};
    // assertMap("after + copy", expected, copy);

    copy = map - pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after - (shouldn't modify)", expected, map);
    expected = {{"a", 10}, {"c", 30}, {"d", 40}};
    assertMap("after - copy", expected, copy);

    copy = map * pairlist2;
    expected = {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}};
    assertMap("after * (shouldn't modify)", expected, map);
    expected = {{"b", 20}, {"e", 50}};
    assertMap("after * copy", expected, copy);

    map -= {{"d", 40}, {"e", 50}};
    expected = {{"a", 10}, {"b", 20}, {"c", 30}};
    assertMap("after -=", expected, map);

    map *= pairlist2;
    expected = {{"b", 20}};
    assertMap("after *=", expected, map);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(MapTests, iteratorVersionTest_Map, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> map {{"a", 10}, {"b", 20}, {"c", 30}, {"d", 40}, {"e", 50}, {"f", 60}};
    try {
        for (std::string key : map) {
            int val = map[key];
            if (val % 2 == 0) {
                map.remove(key);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(MapTests, randomKeyTest_Map, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    Map<std::string, int> map;
    map["a"] = 50;
    map["b"] = 40;
    map["c"] = 30;
    map["d"] = 20;
    map["e"] = 10;
    map["f"] =  0;
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomKey(map);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(MapTests, streamExtractTest_Map, TEST_TIMEOUT_DEFAULT) {
    std::istringstream stream("{2:20, 1:10, 4:40, 3:30}");
    Map<int, int> map;
    stream >> map;
    assertEqualsString("map", "{1:10, 2:20, 3:30, 4:40}", map.toString());
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-priorityqueue.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "priorityqueue.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(PriorityQueueTests, "PriorityQueue tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class PriorityQueue<int>;
template class PriorityQueue<std::string>;

TIMED_TEST(PriorityQueueTests, basicSortingTest_PriorityQueue, TEST_TIMEOUT_DEFAULT) {
    PriorityQueue<std::string> pq;
    pq.add("a", 4);
    pq.add("bb", 3);
    pq.add("c", 1);
    pq.add("ddd", 6);
    pq.add("e", 5);
    pq.add("ffff", 2);
    Queue<std::string> expected {"c", "ffff", "bb", "a", "e", "ddd"};
    Queue<double> expectedPriority {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
    while (!pq.isEmpty()) {
        double expPri = expectedPriority.dequeue();
        std::string exp = expected.dequeue();
        double actPri = pq.peekPriority();
        std::string act = pq.dequeue();
        assertEqualsDouble("basic sorting PriorityQueue", expPri, actPri);
        assertEqualsString("basic sorting PriorityQueue", exp, act);
    }
}

TIMED_TEST(PriorityQueueTests, changePriority_PriorityQueue, TEST_TIMEOUT_DEFAULT) {
    static const int kNumEntries = 137;

    /* Test changing each index individually. */
    for (int value = 0; value < kNumEntries; value++) {
        PriorityQueue<int> pq;

        /* Add in a bunch of integers, each of which has their own priority. */
        for (int i = 0; i < kNumEntries; i++) {
            pq.enqueue(i, i);
        }

        /* Change the priority of the indicated value to -1 to make it dequeue first. */
        pq.changePriority(value, -1);

        /* Confirm we get back what we expected - that value first, then everything else. */
        int found = pq.dequeue();
        assertEqualsInt("change priority PriorityQueue", found, value);

        for (int i = 0; i < value; i++) {
            int found = pq.dequeue();
            assertEqualsInt("change priority PriorityQueue", found, i);
        }

        for (int i = value + 1; i < kNumEntries; i++) {
            int found = pq.dequeue();
            assertEqualsInt("change priority PriorityQueue", found, i);
        }
    }

    /* Edge cases! */
    {
        PriorityQueue<int> pq;
        for (int i = 0; i < kNumEntries; i++) {
            pq.enqueue(i, i);
        }

        try {
            /* Change a nonexistent element. */
            pq.changePriority(kNumEntries, kNumEntries);
            assertFail("Changed priority of a nonexistent element?");
        } catch (const ErrorException& ) {
            // All is well, this is expected.
        }
    }

    {
        PriorityQueue<int> pq;
        for (int i = 0; i < kNumEntries; i++) {
            pq.enqueue(i, i);
        }

        try {
            /* Increase, rather than decrease, priority. */
            pq.changePriority(0, kNumEntries);
            assertFail("Should have caused error increasing priority.");
        } catch (const ErrorException& ) {
            // All is well, this is expected.
        }
    }
}

TIMED_TEST(PriorityQueueTests, hashCodeTest_PriorityQueue, TEST_TIMEOUT_DEFAULT) {
    PriorityQueue<std::string> pq;
    pq.add("a", 4);
    pq.add("bb", 3);
    pq.add("c", 1);
    pq.add("ddd", 6);
    pq.add("e", 5);
    pq.add("ffff", 2);
    assertEqualsInt("hashcode of self PriorityQueue", hashCode(pq), hashCode(pq));

    PriorityQueue<std::string> copy = pq;
    assertEqualsInt("hashcode of copy PriorityQueue", hashCode(pq), hashCode(copy));

    PriorityQueue<std::string> empty;

    HashSet<PriorityQueue<std::string> > hashpq {pq, copy, empty, empty};
    assertEqualsInt("hashset of PriorityQueue size", 2, hashpq.size());
}

TIMED_TEST(PriorityQueueTests, initializerListTest_PriorityQueue, TEST_TIMEOUT_DEFAULT) {
    PriorityQueue<std::string> pq {{40.0, "Marty"}, {20.0, "Eric"}, {30.0, "Mehran"}};
    Queue<std::string> expected {"Eric", "Mehran", "Marty"};
    Queue<double> expectedPriority {20.0, 30.0, 40.0};
    while (!pq.isEmpty()) {
        double expPri = expectedPriority.dequeue();
        std::string exp = expected.dequeue();
        double actPri = pq.peekPriority();
        std::string act = pq.dequeue();
        assertEqualsDouble("initializer list PriorityQueue", expPri, actPri);
        assertEqualsString("initializer list PriorityQueue", exp, act);
    }
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-queue.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "queue.h"
#include "hashcode.h"
#include "hashset.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(QueueTests, "Queue tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class Queue<int>;
template class Queue<std::string>;

TIMED_TEST(QueueTests, compareTest_Queue, TEST_TIMEOUT_DEFAULT) {
    Queue<int> q1;
    q1.add(1);
    q1.add(2);
    q1.add(1);
    q1.add(5);
    Queue<int> q2;
    q2.add(1);
    q2.add(2);
    q2.add(1);
    q2.add(4);
    q2.add(7);
    compareTestHelper(q1, q2, "Queue", /* compareTo */  1);
    compareTestHelper(q2, q1, "Queue", /* compareTo */ -1);
    compareTestHelper(q1, q1, "Queue", /* compareTo */  0);

    Set<Queue<int> > sq {q1, q2};
    assertEqualsString("sq", "{{1, 2, 1, 4, 7}, {1, 2, 1, 5}}", sq.toString());
}

TIMED_TEST(QueueTests, forEachTest_Queue, TEST_TIMEOUT_DEFAULT) {
    Queue<std::string> q;
    q.add("a");
    q.add("bb");
    q.add("c");
    q.add("ddd");
    q.add("e");
    q.add("ffff");

    Queue<std::string> expected {"a", "bb", "c", "ddd", "e", "ffff"};
    while (!q.isEmpty()) {
        assertEqualsString("foreach Queue", expected.dequeue(), q.dequeue());
    }
}

TIMED_TEST(QueueTests, hashCodeTest_Queue, TEST_TIMEOUT_DEFAULT) {
    Queue<std::string> queue;
    queue.add("a");
    queue.add("bb");
    queue.add("c");
    queue.add("ddd");
    queue.add("e");
    queue.add("ffff");
    assertEqualsInt("hashcode of self Queue", hashCode(queue), hashCode(queue));

    Queue<std::string> copy = queue;
    assertEqualsInt("hashcode of copy Queue", hashCode(queue), hashCode(copy));

    Queue<std::string> empty;

    HashSet<Queue<std::string> > hashq {queue, copy, empty, empty};
    assertEqualsInt("hashset of Queue size", 2, hashq.size());
}

TIMED_TEST(QueueTests, initializerListTest_Queue, TEST_TIMEOUT_DEFAULT) {
    Queue<int> queue {10, 20, 30};
    assertEqualsString("initializer list Queue", "{10, 20, 30}", queue.toString());
}

TIMED_TEST(QueueTests, peekEnqueueBugTest_Queue, TEST_TIMEOUT_DEFAULT) {
    {
        Queue<int> queue {10, 20, 30, 40, 50, 60, 70, 80};
        assertEqualsString("Queue 1 initial", "{10, 20, 30, 40, 50, 60, 70, 80}", queue.toString());
        queue.enqueue(queue.peek());
        assertEqualsString("Queue 1 after enqueue", "{10, 20, 30, 40, 50, 60, 70, 80, 10}", queue.toString());
    }
    {
        Queue<int> queue {10, 20, 30, 40, 50, 60, 70, 80, 90};
        assertEqualsString("Queue 2 initial", "{10, 20, 30, 40, 50, 60, 70, 80, 90}", queue.toString());
        queue.enqueue(queue.peek());
        assertEqualsString("Queue 2 after enqueue", "{10, 20, 30, 40, 50, 60, 70, 80, 90, 10}", queue.toString());
    }
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-set.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "set.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>
#include <numeric>

TEST_CATEGORY(SetTests, "Set tests");

/*
 * Force instantiation of Set on a few types to make sure we didn't miss anything.
 * The types must be comparable.
 */
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::SetTraits<int>>;
template class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::SetTraits<std::string>>;

/*
 * Uncomment this code to include tests that the nice error messages for types missing
 * hashing show up properly.
 */
#if 0
void causeCompilerError() {
    struct Bad {};

    Set<Bad> bad; // Should trigger a static assertion rather than a long chain of sorrows
}
#endif

/*
 * We should NOT get a compiler error trying to stash things in a Set that are not
 * comparable as long as we provide a custom comparator.
 */
static void customComparatorNoError() {
    struct Meh {};

    Set<Meh> okay([](const Meh&, const Meh&) {
        return true;
    });

    (void) okay;
}

#if 0
void badInitializationError() {
    Set<std::string> mySet = "137";
}
#endif

TIMED_TEST(SetTests, commaOperatorTest_Set, TEST_TIMEOUT_DEFAULT) {
    /* Confirm that commas work properly. */
    Set<int> one = {1, 2, 3};

    /* Begin by adding some elements in. */
    one += 3, 4, 5; // {1, 2, 3, 4, 5}
    assertEqualsInt("elements were added", one.size(), 5);

    /* Now remove some elements. */
    one -= 3, 4, 5; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);

    /* Now add a collection of elements. */
    Set<int> two = {3, 4, 5};
    one += two, 6; // {1, 2, 3, 4, 5, 6}
    assertEqualsInt("elements were added", one.size(), 6);

    /* Now remove a collection of elements. */
    one -= two, 6; // {1, 2}
    assertEqualsInt("elements were removed", one.size(), 2);
}

TIMED_TEST(SetTests, compareTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set1 {7, 5, 1, 2, 8};
    Set<int> set2 {1, 2, 3, 4};
    Set<int> set3 {2, 1, 3, 4};
    Set<int> set4;
    compareTestHelper(set1, set2, "Set", /* compareTo */  1);
    compareTestHelper(set2, set1, "Set", /* compareTo */ -1);
    compareTestHelper(set1, set3, "Set", /* compareTo */  1);
    compareTestHelper(set2, set3, "Set", /* compareTo */  0);
    compareTestHelper(set2, set4, "Set", /* compareTo */  1);
    compareTestHelper(set4, set1, "Set", /* compareTo */ -1);

    // note: shouldn't add set3 because it is 'equal' to set2 (duplicate)
    Set<Set<int> > sset {set1, set2, set3, set4};
    assertEqualsString("sset", "{{}, {1, 2, 3, 4}, {1, 2, 5, 7, 8}}", sset.toString());
}

TIMED_TEST(SetTests, customComparatorTest_Set, TEST_TIMEOUT_DEFAULT) {
    /* Confirm that we can override the comparator if need be. */
    Set<int> descending({1, 2, 3, 4, 5}, std::greater<int>());
    assertEqualsInt("has all elements", descending.size(), 5);

    auto itr = descending.begin();
    for (int i = 5; i > 0; i--, ++itr) {
        assertEqualsInt("has right values", *itr, i);
    }

    /* Now leave the set empty and try overriding the comparator. */
    Set<int> descending2{std::greater<int>()};
    descending2 += 1, 2, 3, 4, 5;

    assertEqualsInt("has all elements", descending2.size(), 5);

    itr = descending2.begin();
    for (int i = 5; i > 0; i--, ++itr) {
        assertEqualsInt("has right values", *itr, i);
    }
}

TIMED_TEST(SetTests, forEachTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set {10, 20, 30, 40};
    Queue<int> expected {10, 20, 30, 40};

    for (int n : set) {
        int exp = expected.dequeue();
        assertEqualsInt("set foreach", exp, n);
    }
}

TIMED_TEST(SetTests, frontBackTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set {20, 10, 40, 30};
    assertEqualsInt("Set front", 10, set.front());
    assertEqualsInt("Set back",  40, set.back());
}

TIMED_TEST(SetTests, hashCodeTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set;
    set.add(69);
    set.add(42);
    assertEqualsInt("hashcode of self Set", hashCode(set), hashCode(set));

    Set<int> copy = set;
    assertEqualsInt("hashcode of copy Set", hashCode(set), hashCode(copy));

    Set<int> empty;
    HashSet<Set<int> > hashset {set, copy, empty, empty};
    assertEqualsInt("hashset of Set size", 2, hashset.size());
}

TIMED_TEST(SetTests, initializerListTest_Set, TEST_TIMEOUT_DEFAULT) {
    auto list = {60, 70};
    auto list2 = {20, 50};

    Set<int> set {10, 20, 30};
    assertCollection("initial", {10, 20, 30}, set);

    set += {40, 50};
    assertCollection("after +=", {10, 20, 30, 40, 50}, set);

    Set<int> copy = set + list;
    assertCollection("after + (shouldn't modify)", {10, 20, 30, 40, 50}, set);
    assertCollection("after + copy", {10, 20, 30, 40, 50, 60, 70}, copy);

    copy = set - list2;
    assertCollection("after - (shouldn't modify)", {10, 20, 30, 40, 50}, set);
    assertCollection("after - copy", {10, 30, 40}, copy);

    copy = set * list2;
    assertCollection("after * (shouldn't modify)", {10, 20, 30, 40, 50}, set);
    assertCollection("after * copy", {20, 50}, copy);

    set -= {20, 50};
    assertCollection("after -=", {10, 30, 40}, set);
    set *= {0, 10, 40, 99};
    assertCollection("after *=", {10, 40}, set);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(SetTests, iteratorVersionTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set {1, 2, 3, 4, 1, 6, 1, 8, 2, 10};
    try {
        for (int n : set) {
            if (n % 2 == 0) {
                set.remove(n);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(SetTests, mapAllTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> set {7, 5, 1, 2, 8};

    int total = 0;
    set.mapAll([&] (int value) {
        total += value;
    });

    assertEqualsInt("mapAll produces correct sum.", std::accumulate(set.begin(), set.end(), 0), total);
}

TIMED_TEST(SetTests, randomElementTest_Set, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    Set<std::string> hset(list);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(hset);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(SetTests, removeAndRetainTest_Set, TEST_TIMEOUT_DEFAULT) {
    Set<int> all   = { 1, 2, 3, 4, 5, 6, 7, 8 };
    Set<int> evens = {    2,    4,    6,    8,   10 };
    Set<int> odds  = { 1,    3,    5,    7    };

    all.removeAll(evens);
    assertEqualsCollection("should just have odds left", all, odds);

    Set<int> primes   = { 2, 3, 5, 7, 11 };
    Set<int> expected = { 3, 5, 7 };

    all.retainAll(primes);
    assertEqualsCollection("should have lost 1", all, expected);
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-sparsegrid.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "sparsegrid.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(SparseGridTests, "SparseGrid tests");

/*
 * Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class SparseGrid<int>;
template class SparseGrid<std::string>;

TIMED_TEST(SparseGridTests, compareTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> sgrid1;
    sgrid1.resize(2, 2);
    SparseGrid<int> sgrid2;
    sgrid2.resize(2, 3);
    SparseGrid<int> sgrid3;
    sgrid3.resize(3, 2);
    compareTestHelper(sgrid1, sgrid2, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid2, sgrid1, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid1, sgrid3, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid3, sgrid1, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid2, sgrid3, "SparseGrid", /* compareTo */  1);
    compareTestHelper(sgrid3, sgrid2, "SparseGrid", /* compareTo */ -1);
    compareTestHelper(sgrid1, sgrid1, "SparseGrid", /* compareTo */  0);

    Set<SparseGrid<int> > ssgrid {sgrid1, sgrid2, sgrid3};
    assertEqualsString("ssgrid", "{{}, 2 x 2, {}, 3 x 2, {}, 2 x 3}", ssgrid.toString());
}

TIMED_TEST(SparseGridTests, forEachTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> grid(4, 2);
    grid.fill(42);
    grid[2][0] = 17;
    grid[3][1] = 0;
    Queue<int> expected {42, 42, 42, 42, 17, 42, 42, 0};
    for (int n : grid) {
        int exp = expected.dequeue();
        assertEqualsInt("SparseGrid foreach", exp, n);
    }
}

TIMED_TEST(SparseGridTests, frontBackTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> grid {{10, 20, 30}, {40, 50, 60}};
    assertEqualsInt("SparseGrid front", 10, grid.front());
    assertEqualsInt("SparseGrid back",  60, grid.back());
}

TIMED_TEST(SparseGridTests, hashCodeTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> grid(2, 3);
    grid.fill(42);
    assertEqualsInt("hashcode of self SparseGrid", hashCode(grid), hashCode(grid));

    SparseGrid<int> copy = grid;
    assertEqualsInt("hashcode of copy SparseGrid", hashCode(grid), hashCode(copy));

    SparseGrid<int> empty;   // empty
    HashSet<SparseGrid<int> > hashgrid {grid, copy, empty, empty};

    assertEqualsInt("hashset of SparseGrid size", 2, hashgrid.size());
}

TIMED_TEST(SparseGridTests, initializerListTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> grid {{10, 20, 30}, {40, 50, 60}};
    assertEqualsInt("init list SparseGrid numRows", 2, grid.numRows());
    assertEqualsInt("init list SparseGrid numCols", 3, grid.numCols());
    assertEqualsInt("init list SparseGrid size", 6, grid.size());
    assertEqualsInt("init list SparseGrid[0][0]", 10, grid[0][0]);
    assertEqualsInt("init list SparseGrid[0][1]", 20, grid[0][1]);
    assertEqualsInt("init list SparseGrid[0][2]", 30, grid[0][2]);
    assertEqualsInt("init list SparseGrid[1][0]", 40, grid[1][0]);
    assertEqualsInt("init list SparseGrid[1][1]", 50, grid[1][1]);
    assertEqualsInt("init list SparseGrid[1][2]", 60, grid[1][2]);
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(SparseGridTests, iteratorVersionTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
    SparseGrid<int> grid {{10, 20, 30}, {40, 50, 60}};
    try {
        for (int n : grid) {
            if (n % 2 == 0) {
                grid.fill(42);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(SparseGridTests, randomElementTest_Grid, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    SparseGrid<std::string> grid;
    grid.resize(2, 3);
    grid[0][0] = "a";
    grid[0][1] = "b";
    grid[0][2] = "c";
    grid[1][0] = "d";
    grid[1][1] = "e";
    grid[1][2] = "f";
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(grid);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}


================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-stack.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "stack.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>

TEST_CATEGORY(StackTests, "Stack tests");

/* Force instantiation of the template on a type to ensure that we don't have anything
 * insidious lurking that just didn't get compiled.
 */
template class Stack<int>;
template class Stack<std::string>;

TIMED_TEST(StackTests, compareTest_Stack, TEST_TIMEOUT_DEFAULT) {
    Stack<int> s1;
    s1.add(1);
    s1.add(2);
    s1.add(1);
    s1.add(5);
    Stack<int> s2;
    s2.add(1);
    s2.add(2);
    s2.add(1);
    s2.add(4);
    s2.add(7);
    compareTestHelper(s1, s2, "Stack", /* compareTo */  1);
    compareTestHelper(s2, s1, "Stack", /* compareTo */ -1);
    compareTestHelper(s1, s1, "Stack", /* compareTo */  0);

    Set<Stack<int> > ss {s1, s2};
    assertEqualsString("ss", "{{1, 2, 1, 4, 7}, {1, 2, 1, 5}}", ss.toString());
}

TIMED_TEST(StackTests, hashCodeTest_Stack, TEST_TIMEOUT_DEFAULT) {
    Stack<int> stack;
    stack.add(69);
    stack.add(42);
    assertEqualsInt("hashcode of self Stack", hashCode(stack), hashCode(stack));

    Stack<int> copy = stack;
    assertEqualsInt("hashcode of copy Stack", hashCode(stack), hashCode(copy));

    Stack<int> empty;
    HashSet<Stack<int> > hashstack {stack, copy, empty, empty};
    assertEqualsInt("hashset of Stack size", 2, hashstack.size());
}

TIMED_TEST(StackTests, initializerListTest_Stack, TEST_TIMEOUT_DEFAULT) {
    Stack<int> stack {10, 20, 30};
    assertEqualsString("init list Stack", "{10, 20, 30}", stack.toString());
}



================================================
FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-vector.cpp
================================================
/*
 * Test file for verifying the Stanford C++ lib collection functionality.
 */

#include "testcases.h"
#include "stack.h"
#include "hashcode.h"
#include "hashset.h"
#include "queue.h"
#include "assertions.h"
#include "collection-test-common.h"
#include "gtest-marty.h"
#include <initializer_list>
#include <iostream>
#include <sstream>
#include <string>
#include <numeric>

TEST_CATEGORY(VectorTests, "Vector tests");

/* Force instantiation of Vector on a few types to make sure we didn't miss anything.
 * These types must be comparable and hashable to avoid instaniating functions we
 * can't support.
 */
template class Vector<int>;
template class Vector<bool>;
template class Vector<std::string>;

TIMED_TEST(VectorTests, basicsTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> values;
    for (int i = 0; i < 1000; i++) {
        values += i;
    }

    assertEqualsInt("Size is 1000", values.size(), 1000);
    assertFalse("Vector isn't empty.", values.isEmpty());

    for (int i = 0; i < 1000; i++) {
        assertEquals("Vector entry at position " + std::to_string(i) + " is correct.",
                     values[i], i);
    }

    /* Mutate things. */
    for (int& elem: values) {
        elem *= 2;
    }

    assertEqualsInt("Size is 1000", values.size(), 1000);
    assertFalse("Vector isn't empty.", values.isEmpty());

    for (int i = 0; i < 1000; i++) {
        assertEquals("Vector entry at position " + std::to_string(i) + " is correct.",
                     values[i], 2 * i);
    }
}

TIMED_TEST(VectorTests, compareTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v1 {1, 2, 4, 5};
    Vector<int> v2 {1, 3, 1, 4, 8};
    Vector<int> v3 {1, 1, 7};
    Vector<int> v4 {2, 0};
    Vector<int> v5 {1, 2, 4, 5, 6, 7};
    Vector<int> v6;  // empty
    compareTestHelper(v1, v2, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v3, "Vector", /* compareTo */  1);
    compareTestHelper(v1, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v5, "Vector", /* compareTo */ -1);
    compareTestHelper(v1, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v3, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v2, v5, "Vector", /* compareTo */  1);
    compareTestHelper(v2, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v3, v4, "Vector", /* compareTo */ -1);
    compareTestHelper(v3, v5, "Vector", /* compareTo */ -1);
    compareTestHelper(v3, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v4, v5, "Vector", /* compareTo */  1);
    compareTestHelper(v4, v6, "Vector", /* compareTo */  1);
    compareTestHelper(v5, v6, "Vector", /* compareTo */  1);

    Set<Vector<int> > sv {v1, v2, v3, v4, v5, v6};
    assertEqualsString("sv", "{{}, {1, 1, 7}, {1, 2, 4, 5}, {1, 2, 4, 5, 6, 7}, {1, 3, 1, 4, 8}, {2, 0}}", sv.toString());
}

TIMED_TEST(VectorTests, concatTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> lhs =      {  1,  3,  5,  7,  9 };
    Vector<int> rhs =      { 11, 13, 15, 17, 19 };
    auto expected   =      {  1,  3,  5,  7,  9,
                             11, 13, 15, 17, 19 };

    auto lhsBackup  =      {  1,  3,  5,  7,  9 };
    auto rhsBackup  =      { 11, 13, 15, 17, 19 };

    /* Confirm that Vector + Vector works. */
    assertCollection("basic concat", expected, lhs + rhs);
    assertCollection("don't change operands", lhsBackup, lhs);
    assertCollection("don't change operands", rhsBackup, rhs);

    /* Try appending individual values. */
    Vector<int> before = { 1, 3, 5, 7 };
    auto beforeBackup  = { 1, 3, 5, 7 };
    auto after         = { 1, 3, 5, 7, 9 };

    assertCollection("single elem concat", after, before + 9);
    assertCollection("don't change operands", beforeBackup, before);
}

TIMED_TEST(VectorTests, forEachTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v1 {1, 2, 3};
    assertCollection("foreach Vector", {1, 2, 3}, v1);

    Vector<std::string> v2 {"a", "b", "c"};
    std::initializer_list<std::string> list {"a", "b", "c"};
    assertCollection("foreach Vector", list, v2);
}

TIMED_TEST(VectorTests, frontBackTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v {10, 20, 30, 40};
    assertEqualsInt("Vector front", 10, v.front());
    assertEqualsInt("Vector back",  40, v.back());
}

TIMED_TEST(VectorTests, hashCodeTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v;
    v.add(69);
    v.add(42);
    assertEqualsInt("hashcode of self Vector", hashCode(v), hashCode(v));

    Vector<int> copy = v;
    assertEqualsInt("hashcode of copy Vector", hashCode(v), hashCode(copy));

    Vector<int> empty;
    HashSet<Vector<int> > hashvec {v, copy, empty, empty};
    assertEqualsInt("hashset of Vector size", 2, hashvec.size());
}

TIMED_TEST(VectorTests, indexOfTest_Vector, TEST_TIMEOUT_DEFAULT) {
    //                0   1   2   3   4   5   6   7  8
    Vector<int> vec {10, 20, 30, 10, 40, 10, 50, 60, 0};
    assertEqualsInt("indexOf 10", 0, vec.indexOf(10));
    assertEqualsInt("indexOf 20", 1, vec.indexOf(20));
    assertEqualsInt("indexOf 50", 6, vec.indexOf(50));
    assertEqualsInt("indexOf 99", -1, vec.indexOf(99));

    assertEqualsInt("lastIndexOf 10", 5, vec.lastIndexOf(10));
    assertEqualsInt("lastIndexOf 20", 1, vec.lastIndexOf(20));
    assertEqualsInt("lastIndexOf 0",  8, vec.lastIndexOf(0));
    assertEqualsInt("lastIndexOf 99", -1, vec.lastIndexOf(99));

    assertEqualsBool("contains 10", true, vec.contains(10));
    assertEqualsBool("contains 20", true, vec.contains(20));
    assertEqualsBool("contains 50", true, vec.contains(50));
    assertEqualsBool("contains 70", false, vec.contains(70));
    assertEqualsBool("contains -1", false, vec.contains(-1));
    assertEqualsBool("contains 99", false, vec.contains(99));
}

TIMED_TEST(VectorTests, initializerListTest_Vector, TEST_TIMEOUT_DEFAULT) {
    auto list = {60, 70};

    Vector<int> vec {10, 20, 30};
    assertCollection("initial", {10, 20, 30}, vec);

    vec += {40, 50};
    assertCollection("after +=", {10, 20, 30, 40, 50}, vec);

    Vector<int> copy = vec + list;
    assertCollection("after + (shouldn't modify)", {10, 20, 30, 40, 50}, vec);
    assertCollection("after + copy", {10, 20, 30, 40, 50, 60, 70}, copy);
}

TIMED_TEST(VectorTests, insertTest_Vector, TEST_TIMEOUT_DEFAULT) {
    /* Confirm that insert works at all the right positions, and no other positions. */
    static const int kNumElems = 137;

    for (int i = 0; i <= kNumElems; i++) {
        Vector<int> values;
        for (int j = 0; j < kNumElems; j++) {
            values += j;
        }
        assertEqualsInt("Vector has proper size", kNumElems, values.size());

        values.insert(i, kNumElems + 1);
        assertEqualsInt("Vector was resized.", kNumElems + 1, values.size());

        /* Confirm all the values are correct. */
        for (int j = 0; j < i; j++) {
            assertEqualsInt("prior elements unchanged", values[j], j);
        }
        assertEqualsInt("new element inserted", values[i], kNumElems + 1);
        for (int j = i + 1; j < values.size(); j++) {
            assertEqualsInt("post elements unchanged", values[j], j - 1);
        }
    }
}

TIMED_TEST(VectorTests, iteratorConversionTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    const auto& cv = v;

    assertTrue("Const and non-const iterators to same element compare equal.", v.begin() == cv.begin());
    assertTrue("Const and non-const iterators to past-end compare equal.", v.end() == cv.end());
}

TIMED_TEST(VectorTests, iteratorRangeCheckingTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    /* Should fail if we try to back up past beginning. */
    try {
        auto itr = v.begin();
        --itr;
        assertFail("Should have triggered an error decrementing start-of-range");
    } catch (const ErrorException &) {

    }
    try {
        auto itr = v.begin();
        itr--;
        assertFail("Should have triggered an error decrementing start-of-range");
    } catch (const ErrorException &) {

    }

    /* Should fail if we try to advance past end. */
    try {
        auto itr = v.end();
        ++itr;
        assertFail("Should have triggered an error incrementing end-of-range.");
    } catch (const ErrorException &) {

    }
    try {
        auto itr = v.end();
        ++itr;
        assertFail("Should have triggered an error incrementing end-of-range.");
    } catch (const ErrorException &) {

    }

    /* Should fail if we try to use random access to jump out of range. */
    try {
        auto itr = v.begin();
        itr[137] = 42;
        assertFail("Should have triggered an error incrementing end-of-range.");
    } catch (const ErrorException &) {

    }
    try {
        auto itr = v.begin();
        itr[137] = 42;
        assertFail("Should have triggered an error incrementing end-of-range.");
    } catch (const ErrorException &) {

    }

    /* Should NOT fail if we try to use random access to jump into range. */
    try {
        auto itr = v.begin();
        itr[9] = 137;
    } catch (const ErrorException &) {
        assertFail("Triggered an exception trying to go in range.");
    }
    try {
        auto itr = v.end();
        itr[-10] = 42;
    } catch (const ErrorException &) {
        assertFail("Triggered an exception trying to go in range.");
    }

    /* Should fail doing ANYTHING except comparisons with a singular iterator. */
    try {
        Vector<int>::iterator itr;
        itr++;
        assertFail("No exception triggered incrementing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        ++itr;
        assertFail("No exception triggered incrementing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        itr--;
        assertFail("No exception triggered decrementing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        --itr;
        assertFail("No exception triggered incrementing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<std::string>::iterator itr;
        *itr;
        assertFail("No exception triggered dereferencing singular iterator.");
    } catch (const ErrorException &) {

    }

    try {
        Vector<std::string>::iterator itr;
        itr->size();
        assertFail("No exception triggered dereferencing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<std::string>::iterator itr;
        itr[137];
        assertFail("No exception triggered dereferencing singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        itr - v.begin();
        assertFail("No exception triggered subtracting singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        v.begin() - itr;
        assertFail("No exception triggered subtracting singular iterator.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr == v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr != v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr < v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr <= v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr >= v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(itr >  v.begin());
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }

    try {
        Vector<int>::iterator itr;
        (void)(v.begin() == itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(v.begin() != itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(v.begin() < itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(v.begin() <= itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(v.begin() >= itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int>::iterator itr;
        (void)(v.begin() > itr);
        assertFail("No exception comparing singular iterators.");
    } catch (const ErrorException &) {

    }

    /* Shouldn't be able to do anything with iterators from two different
     * containers.
     */
    try {
        Vector<int> v2;
        (void)(v.begin() == v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        (void)(v.begin() != v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        (void)(v.begin() < v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        (void)(v.begin() <= v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        (void)(v.begin() >= v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        (void)(v.begin() > v2.begin());
        assertFail("No exception comparing iterators from different containers.");
    } catch (const ErrorException &) {

    }
    try {
        Vector<int> v2;
        v.begin() - v2.begin();
        assertFail("No exception subtracting iterators from different containers.");
    } catch (const ErrorException &) {

    }
}

#ifdef SPL_THROW_ON_INVALID_ITERATOR
TIMED_TEST(VectorTests, iteratorVersionTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    try {
        for (int n : v1) {
            if (n % 2 == 0) {
                v1.remove(v1.size() - 1);
            }
        }
        assertFail("should not get to end of test; should throw exception before now");
    } catch (ErrorException ex) {
        assertPass("threw exception successfully");
    }
}
#endif // SPL_THROW_ON_INVALID_ITERATOR

TIMED_TEST(VectorTests, mapAllTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Vector<int> set {7, 5, 1, 2, 8};

    int total = 0;
    set.mapAll([&] (int value) {
        total += value;
    });

    assertEqualsInt("mapAll produces correct sum.", std::accumulate(set.begin(), set.end(), 0), total);
}

TIMED_TEST(VectorTests, randomElementTest_Vector, TEST_TIMEOUT_DEFAULT) {
    Map<std::string, int> counts;
    int RUNS = 200;

    std::initializer_list<std::string> list {"a", "b", "c", "d", "e", "f"};

    Vector<std::string> v(list);
    for (int i = 0; i < RUNS; i++) {
        std::string s = randomElement(v);
        counts[s]++;
    }

    for (const std::string& s : list) {
        assertTrue("must choose " + s + " sometimes", counts[s] > 0);
    }
}

TIMED_TEST(VectorTests, removeValueTest_Vector, TEST_TIMEOUT_DEFAULT) {
    //                0   1   2   3   4   5   6   7  8
    Vector<int> vec {10, 20, 30, 10, 40, 10, 50, 60, 0};
    vec.removeValue(40);
    vec.removeValue(10);
    vec.removeValue(10);
    vec.removeValue(0);
    Vector<int> exp {20, 30, 10, 50, 60};
    assertEqualsString("after removes", exp.toString(), vec.toString());
}

TIMED_TEST(VectorTests, reverseTest_Vector, TEST_TIMEOUT_DEFAULT) {
    //                0   1   2   3   4   5   6   7   8   9  10
    Vector<int> vec {70, 30, 20, 10, 40, 90, 10, 50,  0, 60, 50};
    vec.reverse();
    Vector<int> exp {50, 60, 0, 50, 10, 90, 40, 10, 20, 30, 70};
    assertEqualsString("after reverse", exp.toString(), vec.toString());
}

TIMED_TEST(VectorTests, shuffleTest, TEST_TIMEOUT_DEFAULT) {
    Vector<int> v {10, 20, 30, 40, 50};
    Map<int, Map<int, int> > valueIndexCount;

    // shuffle 100 times
    for (int i = 0; i < 100; i++) {
        v.shuffle();
        for (int j = 0; j < v.size(); j++) {
            valueIndexCount[v[j]][j]++;
        }
    }

    // make sure each value appeared at each index at least once
    for (int n : v) {
        for (int j = 0; j < v.size(); j++) {
            assertNotEqualsInt("", 0, valueIndexCount[n][j]);
        }
    }
}

TIMED_TEST(VectorTests, sortTest_Vector, TEST_TIMEOUT_DEFAULT) {
    //                0   1   2   3   4   5   6   7   8   9  10
    Vector<int> vec {70, 30, 20, 10, 40, 90, 10, 
Download .txt
gitextract_uknl7n05/

├── .gitignore
├── Archived/
│   ├── Autograder_QtCreatorProject/
│   │   ├── Autograder_QtCreatorProject.pro
│   │   ├── lateDays.txt
│   │   ├── lib/
│   │   │   └── readme.txt
│   │   ├── res/
│   │   │   ├── inputpanel-mainfunc.xml
│   │   │   ├── myinput.txt
│   │   │   └── stylecheck-mainfunc-cpp.xml
│   │   └── src/
│   │       ├── mainfunc.cpp
│   │       ├── readme.txt
│   │       └── test/
│   │           ├── _collectionTests.cp_
│   │           ├── collection-test-basicgraph.cpp
│   │           ├── collection-test-common.h
│   │           ├── collection-test-dawglexicon.cpp
│   │           ├── collection-test-deque.cpp
│   │           ├── collection-test-graph.cpp
│   │           ├── collection-test-grid.cpp
│   │           ├── collection-test-hashmap.cpp
│   │           ├── collection-test-hashset.cpp
│   │           ├── collection-test-lexicon.cpp
│   │           ├── collection-test-linkedhashmap.cpp
│   │           ├── collection-test-linkedhashset.cpp
│   │           ├── collection-test-linkedlist.cpp
│   │           ├── collection-test-map.cpp
│   │           ├── collection-test-priorityqueue.cpp
│   │           ├── collection-test-queue.cpp
│   │           ├── collection-test-set.cpp
│   │           ├── collection-test-sparsegrid.cpp
│   │           ├── collection-test-stack.cpp
│   │           ├── collection-test-vector.cpp
│   │           ├── exceptionTests.cpp
│   │           ├── guiTests.cpp
│   │           ├── imageDiffTests.cpp
│   │           ├── pipeTest.cpp
│   │           ├── serverTest.cpp
│   │           ├── stringTests.cpp
│   │           ├── systemTests.cpp
│   │           ├── testcases.h
│   │           └── urlTests.cpp
│   ├── JavaBackEnd/
│   │   ├── eclipseproject/
│   │   │   ├── .classpath
│   │   │   ├── .idea/
│   │   │   │   ├── codeStyleSettings.xml
│   │   │   │   ├── compiler.xml
│   │   │   │   ├── copyright/
│   │   │   │   │   └── profiles_settings.xml
│   │   │   │   ├── dictionaries/
│   │   │   │   │   └── stepp.xml
│   │   │   │   ├── inspectionProfiles/
│   │   │   │   │   ├── Project_Default.xml
│   │   │   │   │   └── profiles_settings.xml
│   │   │   │   ├── misc.xml
│   │   │   │   ├── modules.xml
│   │   │   │   ├── vcs.xml
│   │   │   │   └── workspace.xml
│   │   │   ├── .project
│   │   │   ├── .settings/
│   │   │   │   └── org.eclipse.jdt.core.prefs
│   │   │   ├── StanfordCPPLib_JavaBackEnd.iml
│   │   │   ├── doc/
│   │   │   │   ├── acm/
│   │   │   │   │   ├── graphics/
│   │   │   │   │   │   ├── G3DRect.html
│   │   │   │   │   │   ├── GCanvas.html
│   │   │   │   │   │   ├── GCanvasInterface.html
│   │   │   │   │   │   ├── GCompound.html
│   │   │   │   │   │   ├── GContainer.html
│   │   │   │   │   │   ├── GImage.html
│   │   │   │   │   │   ├── GLabel.html
│   │   │   │   │   │   ├── GLine.html
│   │   │   │   │   │   ├── GLineGroup.html
│   │   │   │   │   │   ├── GMath.html
│   │   │   │   │   │   ├── GObject.html
│   │   │   │   │   │   ├── GOval.html
│   │   │   │   │   │   ├── GPoint.html
│   │   │   │   │   │   ├── GRectangle.html
│   │   │   │   │   │   ├── GResizable.html
│   │   │   │   │   │   ├── GScalable.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── gui/
│   │   │   │   │   │   ├── DoubleField.html
│   │   │   │   │   │   ├── Event.html
│   │   │   │   │   │   ├── IntField.html
│   │   │   │   │   │   ├── JButtonGroup.html
│   │   │   │   │   │   ├── JFontChooser.DialogCancelAction.html
│   │   │   │   │   │   ├── JFontChooser.DialogOKAction.html
│   │   │   │   │   │   ├── JFontChooser.ListSearchTextFieldDocumentHandler.ListSelector.html
│   │   │   │   │   │   ├── JFontChooser.ListSearchTextFieldDocumentHandler.html
│   │   │   │   │   │   ├── JFontChooser.ListSelectionHandler.html
│   │   │   │   │   │   ├── JFontChooser.TextFieldFocusHandlerForTextSelection.html
│   │   │   │   │   │   ├── JFontChooser.TextFieldKeyHandlerForListSelectionUpDown.html
│   │   │   │   │   │   ├── JFontChooser.html
│   │   │   │   │   │   ├── JListOptionPane.html
│   │   │   │   │   │   ├── JPlaceholderTextField.html
│   │   │   │   │   │   ├── JStringList.html
│   │   │   │   │   │   ├── TableLayout.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── io/
│   │   │   │   │   │   ├── ConsoleModel.html
│   │   │   │   │   │   ├── IOConsole.html
│   │   │   │   │   │   ├── SimpleScanner.html
│   │   │   │   │   │   ├── StandardConsoleModel.html
│   │   │   │   │   │   ├── SystemConsoleModel.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   ├── program/
│   │   │   │   │   │   ├── AbstractConsoleProgram.html
│   │   │   │   │   │   ├── AsciiArtProgram.html
│   │   │   │   │   │   ├── CommandLineProgram.html
│   │   │   │   │   │   ├── ConsoleProgram.html
│   │   │   │   │   │   ├── DialogProgram.html
│   │   │   │   │   │   ├── GraphicsProgram.html
│   │   │   │   │   │   ├── GraphicsProgramInterface.html
│   │   │   │   │   │   ├── HeadlessGraphicsProgram.html
│   │   │   │   │   │   ├── Program.html
│   │   │   │   │   │   ├── ProgramInterface.html
│   │   │   │   │   │   ├── ProgramMenuBar.html
│   │   │   │   │   │   ├── ProgramStartupFlags.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   └── util/
│   │   │   │   │       ├── ErrorException.html
│   │   │   │   │       ├── FileChooserFilter.html
│   │   │   │   │       ├── MediaTools.html
│   │   │   │   │       ├── PatchingClassLoader.html
│   │   │   │   │       ├── RandomGenerator.html
│   │   │   │   │       ├── SoundClip.html
│   │   │   │   │       ├── package-frame.html
│   │   │   │   │       ├── package-summary.html
│   │   │   │   │       └── package-tree.html
│   │   │   │   ├── allclasses-frame.html
│   │   │   │   ├── allclasses-noframe.html
│   │   │   │   ├── constant-values.html
│   │   │   │   ├── deprecated-list.html
│   │   │   │   ├── help-doc.html
│   │   │   │   ├── index-all.html
│   │   │   │   ├── index.html
│   │   │   │   ├── javazoom/
│   │   │   │   │   └── jlgui/
│   │   │   │   │       └── basicplayer/
│   │   │   │   │           ├── BasicController.html
│   │   │   │   │           ├── BasicPlayer.html
│   │   │   │   │           ├── BasicPlayerEvent.html
│   │   │   │   │           ├── BasicPlayerEventLauncher.html
│   │   │   │   │           ├── BasicPlayerException.html
│   │   │   │   │           ├── BasicPlayerListener.html
│   │   │   │   │           ├── package-frame.html
│   │   │   │   │           ├── package-summary.html
│   │   │   │   │           └── package-tree.html
│   │   │   │   ├── overview-frame.html
│   │   │   │   ├── overview-summary.html
│   │   │   │   ├── overview-tree.html
│   │   │   │   ├── package-list
│   │   │   │   ├── script.js
│   │   │   │   ├── serialized-form.html
│   │   │   │   ├── stanford/
│   │   │   │   │   ├── cs106/
│   │   │   │   │   │   ├── audio/
│   │   │   │   │   │   │   ├── Accidental.html
│   │   │   │   │   │   │   ├── Note.html
│   │   │   │   │   │   │   ├── Pitch.html
│   │   │   │   │   │   │   ├── SplClip.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEvent.Type.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEvent.html
│   │   │   │   │   │   │   ├── StdAudio.AudioEventListener.html
│   │   │   │   │   │   │   ├── StdAudio.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── autograder/
│   │   │   │   │   │   │   ├── GuidedAutograder.ReflectionPanel.html
│   │   │   │   │   │   │   ├── GuidedAutograder.StudentProgramRunnerThread.html
│   │   │   │   │   │   │   ├── GuidedAutograder.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── collections/
│   │   │   │   │   │   │   ├── AbstractMultimap.html
│   │   │   │   │   │   │   ├── AbstractTable.html
│   │   │   │   │   │   │   ├── BasicGraph.html
│   │   │   │   │   │   │   ├── Edge.html
│   │   │   │   │   │   │   ├── Graph.html
│   │   │   │   │   │   │   ├── GraphColor.html
│   │   │   │   │   │   │   ├── Grid.html
│   │   │   │   │   │   │   ├── HashBasedTable.html
│   │   │   │   │   │   │   ├── HashMultimap.html
│   │   │   │   │   │   │   ├── Lexicon.html
│   │   │   │   │   │   │   ├── Multimap.html
│   │   │   │   │   │   │   ├── Table.html
│   │   │   │   │   │   │   ├── TreeBasedTable.html
│   │   │   │   │   │   │   ├── TreeMultimap.html
│   │   │   │   │   │   │   ├── Vertex.Event.html
│   │   │   │   │   │   │   ├── Vertex.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── diff/
│   │   │   │   │   │   │   ├── Diff.Difference.Type.html
│   │   │   │   │   │   │   ├── Diff.Difference.html
│   │   │   │   │   │   │   ├── Diff.html
│   │   │   │   │   │   │   ├── DiffCollection.Difference.html
│   │   │   │   │   │   │   ├── DiffCollection.html
│   │   │   │   │   │   │   ├── DiffGui.html
│   │   │   │   │   │   │   ├── DiffImage.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── gui/
│   │   │   │   │   │   │   ├── ClipboardUtils.html
│   │   │   │   │   │   │   ├── GuiUtils.html
│   │   │   │   │   │   │   ├── JComboGroupBox.html
│   │   │   │   │   │   │   ├── ListOptionPane.html
│   │   │   │   │   │   │   ├── ResizeListener.html
│   │   │   │   │   │   │   ├── WindowCloseKeyListener.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── io/
│   │   │   │   │   │   │   ├── ExtensionFileFilter.html
│   │   │   │   │   │   │   ├── IORuntimeException.html
│   │   │   │   │   │   │   ├── IOUtils.html
│   │   │   │   │   │   │   ├── LimitedPrintStream.ExcessiveOutputException.html
│   │   │   │   │   │   │   ├── LimitedPrintStream.html
│   │   │   │   │   │   │   ├── OutputCapturer.html
│   │   │   │   │   │   │   ├── ReaderInputStream.html
│   │   │   │   │   │   │   ├── ResourceUtils.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── junit/
│   │   │   │   │   │   │   ├── Assert.html
│   │   │   │   │   │   │   ├── ComparisonFailureEnhanced.html
│   │   │   │   │   │   │   ├── JUnitListener.html
│   │   │   │   │   │   │   ├── JUnitUtils.html
│   │   │   │   │   │   │   ├── TestCategory.html
│   │   │   │   │   │   │   ├── UnitTestType.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── net/
│   │   │   │   │   │   │   ├── BackEndServer.html
│   │   │   │   │   │   │   ├── Downloader.html
│   │   │   │   │   │   │   ├── NetworkManager.html
│   │   │   │   │   │   │   ├── Request.html
│   │   │   │   │   │   │   ├── SimpleClient.html
│   │   │   │   │   │   │   ├── SimpleServer.SimpleServerException.html
│   │   │   │   │   │   │   ├── SimpleServer.html
│   │   │   │   │   │   │   ├── SimpleServerListener.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── program/
│   │   │   │   │   │   │   ├── CommandLineProgramMarty.html
│   │   │   │   │   │   │   ├── ConsoleProgramMarty.html
│   │   │   │   │   │   │   ├── ProgramUtils.html
│   │   │   │   │   │   │   ├── ResizableProgram.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   ├── reflect/
│   │   │   │   │   │   │   ├── ClassUtils.BetterClassLoader.html
│   │   │   │   │   │   │   ├── ClassUtils.ClassComparator.html
│   │   │   │   │   │   │   ├── ClassUtils.ExtensionFilter.html
│   │   │   │   │   │   │   ├── ClassUtils.html
│   │   │   │   │   │   │   ├── CompilerErrorException.html
│   │   │   │   │   │   │   ├── ReflectionRuntimeException.html
│   │   │   │   │   │   │   ├── ReflectionUtils.FieldNameComparator.html
│   │   │   │   │   │   │   ├── ReflectionUtils.MethodNameComparator.html
│   │   │   │   │   │   │   ├── ReflectionUtils.html
│   │   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── CollectionUtils.html
│   │   │   │   │   │       ├── ConstantUtils.html
│   │   │   │   │   │       ├── ExceptionUtils.html
│   │   │   │   │   │       ├── OperatingSystem.html
│   │   │   │   │   │       ├── ProcessUtils.html
│   │   │   │   │   │       ├── RandomGenerator.html
│   │   │   │   │   │       ├── RecursionUtils.html
│   │   │   │   │   │       ├── Stanford.html
│   │   │   │   │   │       ├── StringUtils.html
│   │   │   │   │   │       ├── SystemProperties.html
│   │   │   │   │   │       ├── XmlUtils.XmlRuntimeException.html
│   │   │   │   │   │       ├── XmlUtils.html
│   │   │   │   │   │       ├── package-frame.html
│   │   │   │   │   │       ├── package-summary.html
│   │   │   │   │   │       └── package-tree.html
│   │   │   │   │   ├── karel/
│   │   │   │   │   │   ├── Event.html
│   │   │   │   │   │   ├── HeadlessKarel.html
│   │   │   │   │   │   ├── HeadlessSuperKarel.html
│   │   │   │   │   │   ├── Karel.html
│   │   │   │   │   │   ├── KarelControlPanel.html
│   │   │   │   │   │   ├── KarelDirection.html
│   │   │   │   │   │   ├── KarelInterface.html
│   │   │   │   │   │   ├── KarelProgram.State.html
│   │   │   │   │   │   ├── KarelProgram.html
│   │   │   │   │   │   ├── KarelWorld.html
│   │   │   │   │   │   ├── SuperKarel.html
│   │   │   │   │   │   ├── package-frame.html
│   │   │   │   │   │   ├── package-summary.html
│   │   │   │   │   │   └── package-tree.html
│   │   │   │   │   └── spl/
│   │   │   │   │       ├── AutograderInput.html
│   │   │   │   │       ├── AutograderInput_addButton.html
│   │   │   │   │       ├── AutograderInput_addCategory.html
│   │   │   │   │       ├── AutograderInput_removeButton.html
│   │   │   │   │       ├── AutograderInput_removeCategory.html
│   │   │   │   │       ├── AutograderInput_setColumns.html
│   │   │   │   │       ├── AutograderInput_setVisible.html
│   │   │   │   │       ├── AutograderUnitTestGUI.html
│   │   │   │   │       ├── AutograderUnitTest_addTest.html
│   │   │   │   │       ├── AutograderUnitTest_catchExceptions.html
│   │   │   │   │       ├── AutograderUnitTest_clearTestResults.html
│   │   │   │   │       ├── AutograderUnitTest_clearTests.html
│   │   │   │   │       ├── AutograderUnitTest_isChecked.html
│   │   │   │   │       ├── AutograderUnitTest_setChecked.html
│   │   │   │   │       ├── AutograderUnitTest_setTestCounts.html
│   │   │   │   │       ├── AutograderUnitTest_setTestDetails.html
│   │   │   │   │       ├── AutograderUnitTest_setTestResult.html
│   │   │   │   │       ├── AutograderUnitTest_setTestRuntime.html
│   │   │   │   │       ├── AutograderUnitTest_setTestingCompleted.html
│   │   │   │   │       ├── AutograderUnitTest_setVisible.html
│   │   │   │   │       ├── AutograderUnitTest_setWindowDescriptionText.html
│   │   │   │   │       ├── Base64.InputStream.html
│   │   │   │   │       ├── Base64.OutputStream.html
│   │   │   │   │       ├── Base64.html
│   │   │   │   │       ├── Clipboard_get.html
│   │   │   │   │       ├── Clipboard_set.html
│   │   │   │   │       ├── DiffImage_compareImages.html
│   │   │   │   │       ├── DiffImage_compareWindowToImage.html
│   │   │   │   │       ├── DiffImage_show.html
│   │   │   │   │       ├── File_getTempDirectory.html
│   │   │   │   │       ├── File_openFileDialog.html
│   │   │   │   │       ├── GBufferedImage.html
│   │   │   │   │       ├── GBufferedImage_create.html
│   │   │   │   │       ├── GBufferedImage_fill.html
│   │   │   │   │       ├── GBufferedImage_fillRegion.html
│   │   │   │   │       ├── GBufferedImage_load.html
│   │   │   │   │       ├── GBufferedImage_resize.html
│   │   │   │   │       ├── GBufferedImage_save.html
│   │   │   │   │       ├── GBufferedImage_setRGB.html
│   │   │   │   │       ├── GBufferedImage_updateAllPixels.html
│   │   │   │   │       ├── GCompound_add.html
│   │   │   │   │       ├── GFileChooser_showOpenDialog.GFileChooserFileFilter.html
│   │   │   │   │       ├── GFileChooser_showOpenDialog.html
│   │   │   │   │       ├── GFileChooser_showSaveDialog.html
│   │   │   │   │       ├── GInteractor.html
│   │   │   │   │       ├── GInteractor_addActionListener.html
│   │   │   │   │       ├── GInteractor_getAccelerator.html
│   │   │   │   │       ├── GInteractor_getFont.html
│   │   │   │   │       ├── GInteractor_getMnemonic.html
│   │   │   │   │       ├── GInteractor_isEnabled.html
│   │   │   │   │       ├── GInteractor_removeActionListener.html
│   │   │   │   │       ├── GInteractor_requestFocus.html
│   │   │   │   │       ├── GInteractor_setAccelerator.html
│   │   │   │   │       ├── GInteractor_setBackground.html
│   │   │   │   │       ├── GInteractor_setEnabled.html
│   │   │   │   │       ├── GInteractor_setFont.html
│   │   │   │   │       ├── GInteractor_setIcon.html
│   │   │   │   │       ├── GInteractor_setMnemonic.html
│   │   │   │   │       ├── GInteractor_setText.html
│   │   │   │   │       ├── GInteractor_setTextPosition.html
│   │   │   │   │       ├── GInteractor_setTooltip.html
│   │   │   │   │       ├── GObject_remove.html
│   │   │   │   │       ├── GObject_setAntialiasing.html
│   │   │   │   │       ├── GOptionPane_showConfirmDialog.html
│   │   │   │   │       ├── GOptionPane_showInputDialog.html
│   │   │   │   │       ├── GOptionPane_showMessageDialog.html
│   │   │   │   │       ├── GOptionPane_showOptionDialog.html
│   │   │   │   │       ├── GOptionPane_showTextFileDialog.html
│   │   │   │   │       ├── GRadioButton.html
│   │   │   │   │       ├── GRadioButton_create.html
│   │   │   │   │       ├── GRadioButton_isSelected.html
│   │   │   │   │       ├── GRadioButton_setSelected.html
│   │   │   │   │       ├── GSlider.html
│   │   │   │   │       ├── GSlider_getMajorTickSpacing.html
│   │   │   │   │       ├── GSlider_getMinorTickSpacing.html
│   │   │   │   │       ├── GSlider_getPaintLabels.html
│   │   │   │   │       ├── GSlider_getPaintTicks.html
│   │   │   │   │       ├── GSlider_getSnapToTicks.html
│   │   │   │   │       ├── GSlider_setMajorTickSpacing.html
│   │   │   │   │       ├── GSlider_setMinorTickSpacing.html
│   │   │   │   │       ├── GSlider_setPaintLabels.html
│   │   │   │   │       ├── GSlider_setPaintTicks.html
│   │   │   │   │       ├── GSlider_setSnapToTicks.html
│   │   │   │   │       ├── GTable.html
│   │   │   │   │       ├── GTableAdapter.html
│   │   │   │   │       ├── GTableEvent.html
│   │   │   │   │       ├── GTableListener.html
│   │   │   │   │       ├── GTable_autofitColumnWidths.html
│   │   │   │   │       ├── GTable_clear.html
│   │   │   │   │       ├── GTable_clearFormatting.html
│   │   │   │   │       ├── GTable_create.html
│   │   │   │   │       ├── GTable_get.html
│   │   │   │   │       ├── GTable_getColumnWidth.html
│   │   │   │   │       ├── GTable_getSelection.html
│   │   │   │   │       ├── GTable_resize.html
│   │   │   │   │       ├── GTable_select.html
│   │   │   │   │       ├── GTable_set.html
│   │   │   │   │       ├── GTable_setCellAlignment.html
│   │   │   │   │       ├── GTable_setCellBackground.html
│   │   │   │   │       ├── GTable_setCellFont.html
│   │   │   │   │       ├── GTable_setCellForeground.html
│   │   │   │   │       ├── GTable_setColumnAlignment.html
│   │   │   │   │       ├── GTable_setColumnBackground.html
│   │   │   │   │       ├── GTable_setColumnFont.html
│   │   │   │   │       ├── GTable_setColumnForeground.html
│   │   │   │   │       ├── GTable_setColumnHeaderStyle.html
│   │   │   │   │       ├── GTable_setColumnWidth.html
│   │   │   │   │       ├── GTable_setEditable.html
│   │   │   │   │       ├── GTable_setEditorValue.html
│   │   │   │   │       ├── GTable_setEventEnabled.html
│   │   │   │   │       ├── GTable_setFont.html
│   │   │   │   │       ├── GTable_setHorizontalAlignment.html
│   │   │   │   │       ├── GTable_setRowAlignment.html
│   │   │   │   │       ├── GTable_setRowBackground.html
│   │   │   │   │       ├── GTable_setRowColumnHeadersVisible.html
│   │   │   │   │       ├── GTable_setRowFont.html
│   │   │   │   │       ├── GTable_setRowForeground.html
│   │   │   │   │       ├── GTextArea.html
│   │   │   │   │       ├── GTextArea_create.html
│   │   │   │   │       ├── GTextArea_getText.html
│   │   │   │   │       ├── GTextArea_setEditable.html
│   │   │   │   │       ├── GTextArea_setFont.html
│   │   │   │   │       ├── GTextArea_setText.html
│   │   │   │   │       ├── GTextField.html
│   │   │   │   │       ├── GTextField_isEditable.html
│   │   │   │   │       ├── GTextField_setEditable.html
│   │   │   │   │       ├── GTextField_setPlaceholder.html
│   │   │   │   │       ├── GWindow_clearCanvas.html
│   │   │   │   │       ├── GWindow_close.html
│   │   │   │   │       ├── GWindow_create.html
│   │   │   │   │       ├── GWindow_drawInBackground.html
│   │   │   │   │       ├── GWindow_getCanvasSize.html
│   │   │   │   │       ├── GWindow_getContentPaneSize.html
│   │   │   │   │       ├── GWindow_getLocation.html
│   │   │   │   │       ├── GWindow_getPixel.html
│   │   │   │   │       ├── GWindow_getPixels.html
│   │   │   │   │       ├── GWindow_getRegionSize.html
│   │   │   │   │       ├── GWindow_getScreenSize.html
│   │   │   │   │       ├── GWindow_getSize.html
│   │   │   │   │       ├── GWindow_minimize.html
│   │   │   │   │       ├── GWindow_pack.html
│   │   │   │   │       ├── GWindow_removeFromRegion.html
│   │   │   │   │       ├── GWindow_saveCanvasPixels.html
│   │   │   │   │       ├── GWindow_setCanvasSize.html
│   │   │   │   │       ├── GWindow_setCloseOperation.html
│   │   │   │   │       ├── GWindow_setExitOnClose.html
│   │   │   │   │       ├── GWindow_setLocation.html
│   │   │   │   │       ├── GWindow_setLocationSaved.html
│   │   │   │   │       ├── GWindow_setPixel.html
│   │   │   │   │       ├── GWindow_setPixels.html
│   │   │   │   │       ├── GWindow_setRegionSize.html
│   │   │   │   │       ├── GWindow_setResizable.html
│   │   │   │   │       ├── GWindow_setSize.html
│   │   │   │   │       ├── GWindow_toBack.html
│   │   │   │   │       ├── GWindow_toFront.html
│   │   │   │   │       ├── HttpServer_sendResponse.html
│   │   │   │   │       ├── HttpServer_sendResponseFile.html
│   │   │   │   │       ├── HttpServer_start.html
│   │   │   │   │       ├── HttpServer_stop.html
│   │   │   │   │       ├── JBECanvas.html
│   │   │   │   │       ├── JBECommand.html
│   │   │   │   │       ├── JBEConsole_minimize.html
│   │   │   │   │       ├── JBEConsole_print.html
│   │   │   │   │       ├── JBEConsole_setCloseOperation.html
│   │   │   │   │       ├── JBEConsole_setErrorColor.html
│   │   │   │   │       ├── JBEConsole_setExitOnClose.html
│   │   │   │   │       ├── JBEConsole_setLocation.html
│   │   │   │   │       ├── JBEConsole_setLocationSaved.html
│   │   │   │   │       ├── JBEConsole_setOutputColor.html
│   │   │   │   │       ├── JBEConsole_setTitle.html
│   │   │   │   │       ├── JBEConsole_setVisible.html
│   │   │   │   │       ├── JBEConsole_toFront.html
│   │   │   │   │       ├── JBEDummyProgram.html
│   │   │   │   │       ├── JBEFileFilter.html
│   │   │   │   │       ├── JBELabel.html
│   │   │   │   │       ├── JBEMenuBar.html
│   │   │   │   │       ├── JBESwingCommand.html
│   │   │   │   │       ├── JBEWindow.html
│   │   │   │   │       ├── JavaBackEnd.html
│   │   │   │   │       ├── LibraryUpdater.html
│   │   │   │   │       ├── Note_play.html
│   │   │   │   │       ├── Regex_match.html
│   │   │   │   │       ├── Regex_matchCount.html
│   │   │   │   │       ├── Regex_matchCountWithLines.html
│   │   │   │   │       ├── Regex_replace.html
│   │   │   │   │       ├── SPLWindowSettings.html
│   │   │   │   │       ├── SplPipeDecoder.html
│   │   │   │   │       ├── StanfordCppLib_getJbeVersion.html
│   │   │   │   │       ├── StanfordCppLib_setCppVersion.html
│   │   │   │   │       ├── TextFileDialog.html
│   │   │   │   │       ├── URL_download.html
│   │   │   │   │       ├── UrlDownloader.html
│   │   │   │   │       ├── Version.html
│   │   │   │   │       ├── package-frame.html
│   │   │   │   │       ├── package-summary.html
│   │   │   │   │       └── package-tree.html
│   │   │   │   └── stylesheet.css
│   │   │   ├── files.list
│   │   │   ├── lib/
│   │   │   │   ├── acm.jar
│   │   │   │   ├── jl1.0.1.jar
│   │   │   │   ├── jogg-0.0.7.jar
│   │   │   │   ├── jorbis-0.0.15.jar
│   │   │   │   ├── junit.jar
│   │   │   │   ├── mp3spi1.9.5.jar
│   │   │   │   ├── tritonus_share.jar
│   │   │   │   └── vorbisspi1.0.2.jar
│   │   │   ├── make-javadoc.sh
│   │   │   ├── obf/
│   │   │   │   ├── MANIFEST
│   │   │   │   ├── META-INF/
│   │   │   │   │   └── services/
│   │   │   │   │       ├── javax.sound.sampled.spi.AudioFileReader
│   │   │   │   │       ├── javax.sound.sampled.spi.AudioFileReader.BACKUP
│   │   │   │   │       ├── javax.sound.sampled.spi.FormatConversionProvider
│   │   │   │   │       └── javax.sound.sampled.spi.FormatConversionProvider.BACKUP
│   │   │   │   ├── compile.sh
│   │   │   │   ├── copyobf.sh
│   │   │   │   ├── decompile.sh
│   │   │   │   ├── jar-do-everything.sh
│   │   │   │   ├── jartmp8082730507693879001.tmp
│   │   │   │   ├── makeandcopy.sh
│   │   │   │   ├── makejar.sh
│   │   │   │   ├── obfuscate.sh
│   │   │   │   ├── out/
│   │   │   │   │   └── temp.jar
│   │   │   │   ├── proguard-settings.pro
│   │   │   │   ├── retro.txt
│   │   │   │   └── spl.jar
│   │   │   └── src/
│   │   │       ├── acm/
│   │   │       │   ├── graphics/
│   │   │       │   │   ├── G3DRect.java
│   │   │       │   │   ├── GCanvas.java
│   │   │       │   │   ├── GCanvasInterface.java
│   │   │       │   │   ├── GCompound.java
│   │   │       │   │   ├── GContainer.java
│   │   │       │   │   ├── GImage.java
│   │   │       │   │   ├── GIterator.java
│   │   │       │   │   ├── GLabel.java
│   │   │       │   │   ├── GLine.java
│   │   │       │   │   ├── GLineGroup.java
│   │   │       │   │   ├── GMath.java
│   │   │       │   │   ├── GObject.java
│   │   │       │   │   ├── GObjectList.java
│   │   │       │   │   ├── GOval.java
│   │   │       │   │   ├── GPoint.java
│   │   │       │   │   ├── GRectangle.java
│   │   │       │   │   ├── GResizable.java
│   │   │       │   │   ├── GScalable.java
│   │   │       │   │   └── GraphicsUtils.java
│   │   │       │   ├── gui/
│   │   │       │   │   ├── DoubleField.java
│   │   │       │   │   ├── Event.java
│   │   │       │   │   ├── IntField.java
│   │   │       │   │   ├── JButtonGroup.java
│   │   │       │   │   ├── JFontChooser.java
│   │   │       │   │   ├── JListOptionPane.java
│   │   │       │   │   ├── JPlaceholderTextField.java
│   │   │       │   │   ├── JStringList.java
│   │   │       │   │   └── TableLayout.java
│   │   │       │   ├── io/
│   │   │       │   │   ├── ConsoleModel.java
│   │   │       │   │   ├── IOConsole.java
│   │   │       │   │   ├── SimpleScanner.java
│   │   │       │   │   ├── StandardConsoleModel.java
│   │   │       │   │   └── SystemConsoleModel.java
│   │   │       │   ├── program/
│   │   │       │   │   ├── AbstractConsoleProgram.java
│   │   │       │   │   ├── AccessibleConsoleProgram.java
│   │   │       │   │   ├── AppletStarter.java
│   │   │       │   │   ├── AsciiArtProgram.java
│   │   │       │   │   ├── CommandLineProgram.java
│   │   │       │   │   ├── ConsoleProgram.java
│   │   │       │   │   ├── DefaultActionListener.java
│   │   │       │   │   ├── DialogProgram.java
│   │   │       │   │   ├── GObjectProgram.java
│   │   │       │   │   ├── GProgramListener.java
│   │   │       │   │   ├── GraphicsProgram.java
│   │   │       │   │   ├── GraphicsProgramInterface.java
│   │   │       │   │   ├── HeadlessGraphicsProgram.java
│   │   │       │   │   ├── Program.java
│   │   │       │   │   ├── ProgramActionListener.java
│   │   │       │   │   ├── ProgramAppletStub.java
│   │   │       │   │   ├── ProgramContentPaneLayout.java
│   │   │       │   │   ├── ProgramFrame.java
│   │   │       │   │   ├── ProgramInterface.java
│   │   │       │   │   ├── ProgramMenuBar.java
│   │   │       │   │   ├── ProgramStartupFlags.java
│   │   │       │   │   ├── ProgramStartupListener.java
│   │   │       │   │   ├── ProgramWindowListener.java
│   │   │       │   │   └── package.html
│   │   │       │   └── util/
│   │   │       │       ├── ErrorException.java
│   │   │       │       ├── FileChooserFilter.java
│   │   │       │       ├── MediaTools.java
│   │   │       │       ├── PatchingClassLoader.java
│   │   │       │       ├── RandomGenerator.java
│   │   │       │       ├── SoundClip.java
│   │   │       │       ├── Timer.java
│   │   │       │       └── TokenScanner.java
│   │   │       ├── javazoom/
│   │   │       │   └── jlgui/
│   │   │       │       └── basicplayer/
│   │   │       │           ├── BasicController.java
│   │   │       │           ├── BasicPlayer.java
│   │   │       │           ├── BasicPlayerEvent.java
│   │   │       │           ├── BasicPlayerEventLauncher.java
│   │   │       │           ├── BasicPlayerException.java
│   │   │       │           └── BasicPlayerListener.java
│   │   │       └── stanford/
│   │   │           ├── cs106/
│   │   │           │   ├── audio/
│   │   │           │   │   ├── Accidental.java
│   │   │           │   │   ├── Note.java
│   │   │           │   │   ├── Pitch.java
│   │   │           │   │   ├── SplClip.java
│   │   │           │   │   └── StdAudio.java
│   │   │           │   ├── autograder/
│   │   │           │   │   └── GuidedAutograder.java
│   │   │           │   ├── collections/
│   │   │           │   │   ├── AbstractMultimap.java
│   │   │           │   │   ├── AbstractTable.java
│   │   │           │   │   ├── BasicGraph.java
│   │   │           │   │   ├── Edge.java
│   │   │           │   │   ├── Graph.java
│   │   │           │   │   ├── GraphColor.java
│   │   │           │   │   ├── Grid.java
│   │   │           │   │   ├── HashBasedTable.java
│   │   │           │   │   ├── HashMultimap.java
│   │   │           │   │   ├── Lexicon.java
│   │   │           │   │   ├── Multimap.java
│   │   │           │   │   ├── SearchableGraph.java
│   │   │           │   │   ├── Table.java
│   │   │           │   │   ├── TreeBasedTable.java
│   │   │           │   │   ├── TreeMultimap.java
│   │   │           │   │   └── Vertex.java
│   │   │           │   ├── diff/
│   │   │           │   │   ├── Diff.java
│   │   │           │   │   ├── DiffCollection.java
│   │   │           │   │   ├── DiffGui.java
│   │   │           │   │   └── DiffImage.java
│   │   │           │   ├── gui/
│   │   │           │   │   ├── ClipboardUtils.java
│   │   │           │   │   ├── GuiUtils.java
│   │   │           │   │   ├── JComboGroupBox.java
│   │   │           │   │   ├── JFileChooserUtils.java
│   │   │           │   │   ├── ListOptionPane.java
│   │   │           │   │   ├── ResizeListener.java
│   │   │           │   │   └── WindowCloseKeyListener.java
│   │   │           │   ├── io/
│   │   │           │   │   ├── ExtensionFileFilter.java
│   │   │           │   │   ├── IORuntimeException.java
│   │   │           │   │   ├── IOUtils.java
│   │   │           │   │   ├── LimitedPrintStream.java
│   │   │           │   │   ├── OutputCapturer.java
│   │   │           │   │   ├── ReaderInputStream.java
│   │   │           │   │   └── ResourceUtils.java
│   │   │           │   ├── junit/
│   │   │           │   │   ├── Assert.java
│   │   │           │   │   ├── ComparisonFailureEnhanced.java
│   │   │           │   │   ├── JUnitListener.java
│   │   │           │   │   ├── JUnitUtils.java
│   │   │           │   │   ├── TestCategory.java
│   │   │           │   │   └── UnitTestType.java
│   │   │           │   ├── net/
│   │   │           │   │   ├── BackEndServer.java
│   │   │           │   │   ├── Downloader.java
│   │   │           │   │   ├── NetworkManager.java
│   │   │           │   │   ├── Request.java
│   │   │           │   │   ├── SimpleClient.java
│   │   │           │   │   ├── SimpleServer.java
│   │   │           │   │   └── SimpleServerListener.java
│   │   │           │   ├── program/
│   │   │           │   │   ├── CommandLineProgramMarty.java
│   │   │           │   │   ├── ConsoleProgramMarty.java
│   │   │           │   │   ├── ProgramUtils.java
│   │   │           │   │   └── ResizableProgram.java
│   │   │           │   ├── reflect/
│   │   │           │   │   ├── ClassUtils.java
│   │   │           │   │   ├── CompilerErrorException.java
│   │   │           │   │   ├── ReflectionRuntimeException.java
│   │   │           │   │   └── ReflectionUtils.java
│   │   │           │   └── util/
│   │   │           │       ├── CollectionUtils.java
│   │   │           │       ├── ConstantUtils.java
│   │   │           │       ├── ExceptionUtils.java
│   │   │           │       ├── OperatingSystem.java
│   │   │           │       ├── ProcessUtils.java
│   │   │           │       ├── RandomGenerator.java
│   │   │           │       ├── RecursionUtils.java
│   │   │           │       ├── Stanford.java
│   │   │           │       ├── StringUtils.java
│   │   │           │       ├── SystemProperties.java
│   │   │           │       └── XmlUtils.java
│   │   │           ├── karel/
│   │   │           │   ├── AbstractKarel.java
│   │   │           │   ├── AccessibleKarel.java
│   │   │           │   ├── CardPanel.java
│   │   │           │   ├── EmptyCanvas.java
│   │   │           │   ├── Event.java
│   │   │           │   ├── HPanel.java
│   │   │           │   ├── HVLayout.java
│   │   │           │   ├── HeadlessKarel.java
│   │   │           │   ├── HeadlessSuperKarel.java
│   │   │           │   ├── Karel.java
│   │   │           │   ├── KarelBugIcon.java
│   │   │           │   ├── KarelControlPanel.java
│   │   │           │   ├── KarelDirection.java
│   │   │           │   ├── KarelErrorCanvas.java
│   │   │           │   ├── KarelErrorDialog.java
│   │   │           │   ├── KarelInterface.java
│   │   │           │   ├── KarelProgram.java
│   │   │           │   ├── KarelResizer.java
│   │   │           │   ├── KarelWorld.java
│   │   │           │   ├── KarelWorldEditor.java
│   │   │           │   ├── KarelWorldMonitor.java
│   │   │           │   ├── LoadWorldDialog.java
│   │   │           │   ├── NewWorldDialog.java
│   │   │           │   ├── OptionTable.java
│   │   │           │   ├── ResizeCanvas.java
│   │   │           │   ├── ResizeLayout.java
│   │   │           │   ├── SuperKarel.java
│   │   │           │   └── VPanel.java
│   │   │           └── spl/
│   │   │               ├── AutograderInput.java
│   │   │               ├── AutograderInput_addButton.java
│   │   │               ├── AutograderInput_addCategory.java
│   │   │               ├── AutograderInput_removeButton.java
│   │   │               ├── AutograderInput_removeCategory.java
│   │   │               ├── AutograderInput_setColumns.java
│   │   │               ├── AutograderInput_setVisible.java
│   │   │               ├── AutograderUnitTestGUI.java
│   │   │               ├── AutograderUnitTest_addTest.java
│   │   │               ├── AutograderUnitTest_catchExceptions.java
│   │   │               ├── AutograderUnitTest_clearTestResults.java
│   │   │               ├── AutograderUnitTest_clearTests.java
│   │   │               ├── AutograderUnitTest_isChecked.java
│   │   │               ├── AutograderUnitTest_runTestsInSeparateThreads.java
│   │   │               ├── AutograderUnitTest_setChecked.java
│   │   │               ├── AutograderUnitTest_setTestCounts.java
│   │   │               ├── AutograderUnitTest_setTestDetails.java
│   │   │               ├── AutograderUnitTest_setTestResult.java
│   │   │               ├── AutograderUnitTest_setTestRuntime.java
│   │   │               ├── AutograderUnitTest_setTestingCompleted.java
│   │   │               ├── AutograderUnitTest_setVisible.java
│   │   │               ├── AutograderUnitTest_setWindowDescriptionText.java
│   │   │               ├── Base64.java
│   │   │               ├── Clipboard_get.java
│   │   │               ├── Clipboard_set.java
│   │   │               ├── DiffImage_compareImages.java
│   │   │               ├── DiffImage_compareWindowToImage.java
│   │   │               ├── DiffImage_show.java
│   │   │               ├── File_getTempDirectory.java
│   │   │               ├── File_openFileDialog.java
│   │   │               ├── GBufferedImage.java
│   │   │               ├── GBufferedImage_create.java
│   │   │               ├── GBufferedImage_fill.java
│   │   │               ├── GBufferedImage_fillRegion.java
│   │   │               ├── GBufferedImage_load.java
│   │   │               ├── GBufferedImage_resize.java
│   │   │               ├── GBufferedImage_save.java
│   │   │               ├── GBufferedImage_setRGB.java
│   │   │               ├── GBufferedImage_updateAllPixels.java
│   │   │               ├── GCompound_add.java
│   │   │               ├── GFileChooser_showOpenDialog.java
│   │   │               ├── GFileChooser_showSaveDialog.java
│   │   │               ├── GFormattedPane.java
│   │   │               ├── GFormattedPane_create.java
│   │   │               ├── GFormattedPane_getContentType.java
│   │   │               ├── GFormattedPane_getPage.java
│   │   │               ├── GFormattedPane_getText.java
│   │   │               ├── GFormattedPane_setContentType.java
│   │   │               ├── GFormattedPane_setPage.java
│   │   │               ├── GFormattedPane_setText.java
│   │   │               ├── GInteractor.java
│   │   │               ├── GInteractor_addActionListener.java
│   │   │               ├── GInteractor_addChangeListener.java
│   │   │               ├── GInteractor_getAccelerator.java
│   │   │               ├── GInteractor_getFont.java
│   │   │               ├── GInteractor_getMnemonic.java
│   │   │               ├── GInteractor_isEnabled.java
│   │   │               ├── GInteractor_removeActionListener.java
│   │   │               ├── GInteractor_removeChangeListener.java
│   │   │               ├── GInteractor_requestFocus.java
│   │   │               ├── GInteractor_setAccelerator.java
│   │   │               ├── GInteractor_setBackground.java
│   │   │               ├── GInteractor_setEnabled.java
│   │   │               ├── GInteractor_setFont.java
│   │   │               ├── GInteractor_setIcon.java
│   │   │               ├── GInteractor_setMnemonic.java
│   │   │               ├── GInteractor_setText.java
│   │   │               ├── GInteractor_setTextPosition.java
│   │   │               ├── GInteractor_setTooltip.java
│   │   │               ├── GObject_remove.java
│   │   │               ├── GObject_setAntialiasing.java
│   │   │               ├── GOptionPane_showConfirmDialog.java
│   │   │               ├── GOptionPane_showInputDialog.java
│   │   │               ├── GOptionPane_showMessageDialog.java
│   │   │               ├── GOptionPane_showOptionDialog.java
│   │   │               ├── GOptionPane_showTextFileDialog.java
│   │   │               ├── GRadioButton.java
│   │   │               ├── GRadioButton_create.java
│   │   │               ├── GRadioButton_isSelected.java
│   │   │               ├── GRadioButton_setSelected.java
│   │   │               ├── GScrollBar.java
│   │   │               ├── GScrollBar_create.java
│   │   │               ├── GScrollBar_getValue.java
│   │   │               ├── GScrollBar_setValues.java
│   │   │               ├── GSlider.java
│   │   │               ├── GSlider_getMajorTickSpacing.java
│   │   │               ├── GSlider_getMinorTickSpacing.java
│   │   │               ├── GSlider_getPaintLabels.java
│   │   │               ├── GSlider_getPaintTicks.java
│   │   │               ├── GSlider_getSnapToTicks.java
│   │   │               ├── GSlider_setMajorTickSpacing.java
│   │   │               ├── GSlider_setMinorTickSpacing.java
│   │   │               ├── GSlider_setPaintLabels.java
│   │   │               ├── GSlider_setPaintTicks.java
│   │   │               ├── GSlider_setSnapToTicks.java
│   │   │               ├── GTable.java
│   │   │               ├── GTableAdapter.java
│   │   │               ├── GTableEvent.java
│   │   │               ├── GTableListener.java
│   │   │               ├── GTable_autofitColumnWidths.java
│   │   │               ├── GTable_clear.java
│   │   │               ├── GTable_clearFormatting.java
│   │   │               ├── GTable_create.java
│   │   │               ├── GTable_get.java
│   │   │               ├── GTable_getColumnWidth.java
│   │   │               ├── GTable_getSelection.java
│   │   │               ├── GTable_resize.java
│   │   │               ├── GTable_select.java
│   │   │               ├── GTable_set.java
│   │   │               ├── GTable_setCellAlignment.java
│   │   │               ├── GTable_setCellBackground.java
│   │   │               ├── GTable_setCellFont.java
│   │   │               ├── GTable_setCellForeground.java
│   │   │               ├── GTable_setColumnAlignment.java
│   │   │               ├── GTable_setColumnBackground.java
│   │   │               ├── GTable_setColumnFont.java
│   │   │               ├── GTable_setColumnForeground.java
│   │   │               ├── GTable_setColumnHeaderStyle.java
│   │   │               ├── GTable_setColumnWidth.java
│   │   │               ├── GTable_setEditable.java
│   │   │               ├── GTable_setEditorValue.java
│   │   │               ├── GTable_setEventEnabled.java
│   │   │               ├── GTable_setFont.java
│   │   │               ├── GTable_setHorizontalAlignment.java
│   │   │               ├── GTable_setRowAlignment.java
│   │   │               ├── GTable_setRowBackground.java
│   │   │               ├── GTable_setRowColumnHeadersVisible.java
│   │   │               ├── GTable_setRowFont.java
│   │   │               ├── GTable_setRowForeground.java
│   │   │               ├── GTextArea.java
│   │   │               ├── GTextArea_create.java
│   │   │               ├── GTextArea_getText.java
│   │   │               ├── GTextArea_setEditable.java
│   │   │               ├── GTextArea_setFont.java
│   │   │               ├── GTextArea_setText.java
│   │   │               ├── GTextField.java
│   │   │               ├── GTextField_isEditable.java
│   │   │               ├── GTextField_setEditable.java
│   │   │               ├── GTextField_setPlaceholder.java
│   │   │               ├── GTextLabel.java
│   │   │               ├── GTextLabel_create.java
│   │   │               ├── GTimer.java
│   │   │               ├── GTimer_create.java
│   │   │               ├── GWindow_addToRegion.java
│   │   │               ├── GWindow_clear.java
│   │   │               ├── GWindow_clearCanvas.java
│   │   │               ├── GWindow_close.java
│   │   │               ├── GWindow_create.java
│   │   │               ├── GWindow_delete.java
│   │   │               ├── GWindow_draw.java
│   │   │               ├── GWindow_drawInBackground.java
│   │   │               ├── GWindow_exitGraphics.java
│   │   │               ├── GWindow_getCanvasSize.java
│   │   │               ├── GWindow_getContentPaneSize.java
│   │   │               ├── GWindow_getLocation.java
│   │   │               ├── GWindow_getPixel.java
│   │   │               ├── GWindow_getPixels.java
│   │   │               ├── GWindow_getRegionSize.java
│   │   │               ├── GWindow_getScreenHeight.java
│   │   │               ├── GWindow_getScreenSize.java
│   │   │               ├── GWindow_getScreenWidth.java
│   │   │               ├── GWindow_getSize.java
│   │   │               ├── GWindow_minimize.java
│   │   │               ├── GWindow_pack.java
│   │   │               ├── GWindow_rememberPosition.java
│   │   │               ├── GWindow_removeFromRegion.java
│   │   │               ├── GWindow_repaint.java
│   │   │               ├── GWindow_requestFocus.java
│   │   │               ├── GWindow_saveCanvasPixels.java
│   │   │               ├── GWindow_setCanvasDrawingMode.java
│   │   │               ├── GWindow_setCanvasSize.java
│   │   │               ├── GWindow_setCloseOperation.java
│   │   │               ├── GWindow_setExitOnClose.java
│   │   │               ├── GWindow_setLocation.java
│   │   │               ├── GWindow_setLocationSaved.java
│   │   │               ├── GWindow_setPixel.java
│   │   │               ├── GWindow_setPixels.java
│   │   │               ├── GWindow_setRegionAlignment.java
│   │   │               ├── GWindow_setRegionSize.java
│   │   │               ├── GWindow_setRepaintImmediately.java
│   │   │               ├── GWindow_setResizable.java
│   │   │               ├── GWindow_setSize.java
│   │   │               ├── GWindow_setTitle.java
│   │   │               ├── GWindow_setVisible.java
│   │   │               ├── GWindow_toBack.java
│   │   │               ├── GWindow_toFront.java
│   │   │               ├── HTTPDownloadException.java
│   │   │               ├── HttpServer_sendResponse.java
│   │   │               ├── HttpServer_sendResponseFile.java
│   │   │               ├── HttpServer_start.java
│   │   │               ├── HttpServer_stop.java
│   │   │               ├── JBECanvas.java
│   │   │               ├── JBECommand.java
│   │   │               ├── JBEConsole_getLine.java
│   │   │               ├── JBEConsole_getTitle.java
│   │   │               ├── JBEConsole_minimize.java
│   │   │               ├── JBEConsole_print.java
│   │   │               ├── JBEConsole_setCloseOperation.java
│   │   │               ├── JBEConsole_setErrorColor.java
│   │   │               ├── JBEConsole_setExitOnClose.java
│   │   │               ├── JBEConsole_setLocation.java
│   │   │               ├── JBEConsole_setLocationSaved.java
│   │   │               ├── JBEConsole_setOutputColor.java
│   │   │               ├── JBEConsole_setTitle.java
│   │   │               ├── JBEConsole_setVisible.java
│   │   │               ├── JBEConsole_toFront.java
│   │   │               ├── JBEDummyProgram.java
│   │   │               ├── JBEFileFilter.java
│   │   │               ├── JBEHeadlessWindow.java
│   │   │               ├── JBELabel.java
│   │   │               ├── JBEMenuBar.java
│   │   │               ├── JBESwingCommand.java
│   │   │               ├── JBEWindow.java
│   │   │               ├── JBEWindowInterface.java
│   │   │               ├── JavaBackEnd.java
│   │   │               ├── LibraryUpdater.java
│   │   │               ├── Note_play.java
│   │   │               ├── Regex_match.java
│   │   │               ├── Regex_matchCount.java
│   │   │               ├── Regex_matchCountWithLines.java
│   │   │               ├── Regex_replace.java
│   │   │               ├── SPLWindowSettings.java
│   │   │               ├── SplPipeDecoder.java
│   │   │               ├── StanfordCppLib_getJbeVersion.java
│   │   │               ├── StanfordCppLib_setCppVersion.java
│   │   │               ├── TextFileDialog.java
│   │   │               ├── URL_download.java
│   │   │               ├── URL_downloadWithHeaders.java
│   │   │               ├── UrlDownloader.java
│   │   │               └── Version.java
│   │   └── latest-version-decompiled/
│   │       ├── META-INF/
│   │       │   └── MANIFEST.MF
│   │       ├── acm/
│   │       │   ├── graphics/
│   │       │   │   ├── DrawLineElement.java
│   │       │   │   ├── EndRegionElement.java
│   │       │   │   ├── FinalPathElement.java
│   │       │   │   ├── G3DRect.java
│   │       │   │   ├── GArc.java
│   │       │   │   ├── GCanvas.java
│   │       │   │   ├── GCanvasListener.java
│   │       │   │   ├── GCompound.java
│   │       │   │   ├── GContainer.java
│   │       │   │   ├── GDimension.java
│   │       │   │   ├── GFillable.java
│   │       │   │   ├── GImage.java
│   │       │   │   ├── GIterator.java
│   │       │   │   ├── GLabel.java
│   │       │   │   ├── GLine.java
│   │       │   │   ├── GMath.java
│   │       │   │   ├── GMouseEvent.java
│   │       │   │   ├── GObject.java
│   │       │   │   ├── GObjectList.java
│   │       │   │   ├── GOval.java
│   │       │   │   ├── GPen.java
│   │       │   │   ├── GPoint.java
│   │       │   │   ├── GPolygon.java
│   │       │   │   ├── GRect.java
│   │       │   │   ├── GRectangle.java
│   │       │   │   ├── GResizable.java
│   │       │   │   ├── GRoundRect.java
│   │       │   │   ├── GScalable.java
│   │       │   │   ├── GTurtle.java
│   │       │   │   ├── PathElement.java
│   │       │   │   ├── PathList.java
│   │       │   │   ├── PathState.java
│   │       │   │   ├── PenImage.java
│   │       │   │   ├── SetColorElement.java
│   │       │   │   ├── SetLocationElement.java
│   │       │   │   ├── StartRegionElement.java
│   │       │   │   └── VertexList.java
│   │       │   ├── gui/
│   │       │   │   ├── DoubleField.java
│   │       │   │   ├── HPanel.java
│   │       │   │   ├── IntField.java
│   │       │   │   ├── TableConstraints.java
│   │       │   │   ├── TableLayout.java
│   │       │   │   ├── TablePanel.java
│   │       │   │   └── VPanel.java
│   │       │   ├── io/
│   │       │   │   ├── AWTBooleanInputDialog.java
│   │       │   │   ├── AWTDialog.java
│   │       │   │   ├── AWTDialogModel.java
│   │       │   │   ├── AWTIconCanvas.java
│   │       │   │   ├── AWTLineInputDialog.java
│   │       │   │   ├── AWTMessageCanvas.java
│   │       │   │   ├── AWTMessageDialog.java
│   │       │   │   ├── CharacterQueue.java
│   │       │   │   ├── ConsoleActionListener.java
│   │       │   │   ├── ConsoleInputMonitor.java
│   │       │   │   ├── ConsoleModel.java
│   │       │   │   ├── ConsoleOutputMonitor.java
│   │       │   │   ├── ConsoleReader.java
│   │       │   │   ├── ConsoleWriter.java
│   │       │   │   ├── DialogModel.java
│   │       │   │   ├── IOConsole.java
│   │       │   │   ├── IODialog.java
│   │       │   │   ├── IOModel.java
│   │       │   │   ├── StandardConsoleModel.java
│   │       │   │   ├── SwingDialogModel.java
│   │       │   │   ├── SystemConsole.java
│   │       │   │   └── SystemConsoleModel.java
│   │       │   ├── program/
│   │       │   │   ├── AppletStarter.java
│   │       │   │   ├── CommandLineProgram.java
│   │       │   │   ├── CommandLineProgramLoader.java
│   │       │   │   ├── ConsoleProgram.java
│   │       │   │   ├── DefaultActionListener.java
│   │       │   │   ├── DialogProgram.java
│   │       │   │   ├── GObjectProgram.java
│   │       │   │   ├── GProgramListener.java
│   │       │   │   ├── GraphicsProgram.java
│   │       │   │   ├── OldStyleCheckBoxMenuItem.java
│   │       │   │   ├── OldStyleMenuItem.java
│   │       │   │   ├── Program.java
│   │       │   │   ├── ProgramActionListener.java
│   │       │   │   ├── ProgramAppletStub.java
│   │       │   │   ├── ProgramContentPaneLayout.java
│   │       │   │   ├── ProgramFrame.java
│   │       │   │   ├── ProgramMenuBar.java
│   │       │   │   ├── ProgramMenuBarListener.java
│   │       │   │   ├── ProgramStartupListener.java
│   │       │   │   └── ProgramWindowListener.java
│   │       │   └── util/
│   │       │       ├── Animator.java
│   │       │       ├── BMPImageSaver.java
│   │       │       ├── Base64OutputStream.java
│   │       │       ├── CancelledException.java
│   │       │       ├── DOSCommandLine.java
│   │       │       ├── DirectGif89Frame.java
│   │       │       ├── EPSImageSaver.java
│   │       │       ├── EmptyContainer.java
│   │       │       ├── ErrorException.java
│   │       │       ├── ExportAppletDialog.java
│   │       │       ├── FileChooserFilter.java
│   │       │       ├── GIF89ImageSaver.java
│   │       │       ├── GIFImageSaver.java
│   │       │       ├── Gif89Encoder.java
│   │       │       ├── Gif89Frame.java
│   │       │       ├── Gif89Put.java
│   │       │       ├── GifColorTable.java
│   │       │       ├── GifPixelsEncoder.java
│   │       │       ├── HexByteOutputStream.java
│   │       │       ├── HexInputStream.java
│   │       │       ├── ImageSaver.java
│   │       │       ├── IndexGif89Frame.java
│   │       │       ├── JPEGImageSaver.java
│   │       │       ├── JPGImageSaver.java
│   │       │       ├── JTFTools.java
│   │       │       ├── MailStream.java
│   │       │       ├── MediaTools.java
│   │       │       ├── NullAudioClip.java
│   │       │       ├── NullOutputStream.java
│   │       │       ├── OptionTable.java
│   │       │       ├── PICImageSaver.java
│   │       │       ├── PICTImageSaver.java
│   │       │       ├── PNGImageSaver.java
│   │       │       ├── Platform.java
│   │       │       ├── ProgressBarDialog.java
│   │       │       ├── RTFImageSaver.java
│   │       │       ├── RandomGenerator.java
│   │       │       ├── ReverseColorMap.java
│   │       │       ├── SecurityManagerThatFails.java
│   │       │       ├── SoundClip.java
│   │       │       ├── SoundPlayer.java
│   │       │       ├── SpeedBarListener.java
│   │       │       ├── SubmitOptions.java
│   │       │       ├── SunAudioClip.java
│   │       │       ├── SwingTimer.java
│   │       │       ├── TIFFImageSaver.java
│   │       │       ├── TIFImageSaver.java
│   │       │       ├── ThreadedMenuAction.java
│   │       │       └── TokenScanner.java
│   │       ├── spl.jar
│   │       └── stanford/
│   │           └── spl/
│   │               ├── File_openFileDialog.java
│   │               ├── G3DRect_create.java
│   │               ├── G3DRect_setRaised.java
│   │               ├── GArc_create.java
│   │               ├── GArc_setFrameRectangle.java
│   │               ├── GArc_setStartAngle.java
│   │               ├── GArc_setSweepAngle.java
│   │               ├── GButton.java
│   │               ├── GButton_create.java
│   │               ├── GCheckBox.java
│   │               ├── GCheckBox_create.java
│   │               ├── GCheckBox_isSelected.java
│   │               ├── GCheckBox_setSelected.java
│   │               ├── GChooser.java
│   │               ├── GChooser_addItem.java
│   │               ├── GChooser_create.java
│   │               ├── GChooser_getSelectedItem.java
│   │               ├── GChooser_setSelectedItem.java
│   │               ├── GCompound_add.java
│   │               ├── GCompound_create.java
│   │               ├── GEvent_getNextEvent.java
│   │               ├── GEvent_waitForEvent.java
│   │               ├── GImage_create.java
│   │               ├── GInteractor.java
│   │               ├── GInteractor_getSize.java
│   │               ├── GInteractor_setActionCommand.java
│   │               ├── GLabel_create.java
│   │               ├── GLabel_getFontAscent.java
│   │               ├── GLabel_getFontDescent.java
│   │               ├── GLabel_getGLabelSize.java
│   │               ├── GLabel_setFont.java
│   │               ├── GLabel_setLabel.java
│   │               ├── GLine_create.java
│   │               ├── GLine_setEndPoint.java
│   │               ├── GLine_setStartPoint.java
│   │               ├── GObject_contains.java
│   │               ├── GObject_delete.java
│   │               ├── GObject_getBounds.java
│   │               ├── GObject_remove.java
│   │               ├── GObject_rotate.java
│   │               ├── GObject_scale.java
│   │               ├── GObject_sendBackward.java
│   │               ├── GObject_sendForward.java
│   │               ├── GObject_sendToBack.java
│   │               ├── GObject_sendToFront.java
│   │               ├── GObject_setColor.java
│   │               ├── GObject_setFillColor.java
│   │               ├── GObject_setFilled.java
│   │               ├── GObject_setLineWidth.java
│   │               ├── GObject_setLocation.java
│   │               ├── GObject_setSize.java
│   │               ├── GObject_setVisible.java
│   │               ├── GOval_create.java
│   │               ├── GPolygon_addVertex.java
│   │               ├── GPolygon_create.java
│   │               ├── GRect_create.java
│   │               ├── GRoundRect_create.java
│   │               ├── GSlider.java
│   │               ├── GSlider_create.java
│   │               ├── GSlider_getValue.java
│   │               ├── GSlider_setValue.java
│   │               ├── GTextField.java
│   │               ├── GTextField_create.java
│   │               ├── GTextField_getText.java
│   │               ├── GTextField_setText.java
│   │               ├── GTimer.java
│   │               ├── GTimer_create.java
│   │               ├── GTimer_deleteTimer.java
│   │               ├── GTimer_pause.java
│   │               ├── GTimer_startTimer.java
│   │               ├── GTimer_stopTimer.java
│   │               ├── GWindow_addToRegion.java
│   │               ├── GWindow_clear.java
│   │               ├── GWindow_close.java
│   │               ├── GWindow_create.java
│   │               ├── GWindow_delete.java
│   │               ├── GWindow_draw.java
│   │               ├── GWindow_exitGraphics.java
│   │               ├── GWindow_getScreenHeight.java
│   │               ├── GWindow_getScreenWidth.java
│   │               ├── GWindow_repaint.java
│   │               ├── GWindow_requestFocus.java
│   │               ├── GWindow_setRegionAlignment.java
│   │               ├── GWindow_setResizable.java
│   │               ├── GWindow_setTitle.java
│   │               ├── GWindow_setVisible.java
│   │               ├── JBECanvas.java
│   │               ├── JBEConsole.java
│   │               ├── JBEConsole_clear.java
│   │               ├── JBEConsole_getLine.java
│   │               ├── JBEConsole_print.java
│   │               ├── JBEConsole_println.java
│   │               ├── JBEConsole_setFont.java
│   │               ├── JBEConsole_setSize.java
│   │               ├── JBEDummyProgram.java
│   │               ├── JBEFileFilter.java
│   │               ├── JBELabel.java
│   │               ├── JBEMenuBar.java
│   │               ├── JBEWindow.java
│   │               ├── Sound_create.java
│   │               ├── Sound_delete.java
│   │               ├── Sound_play.java
│   │               ├── TopCompound.java
│   │               └── TopCompound_create.java
│   ├── JavaTaskForce/
│   │   ├── Makefile
│   │   ├── acm.jar
│   │   └── src/
│   │       └── acm/
│   │           ├── graphics/
│   │           │   ├── G3DRect.java
│   │           │   ├── GArc.java
│   │           │   ├── GCanvas.java
│   │           │   ├── GCompound.java
│   │           │   ├── GContainer.java
│   │           │   ├── GDimension.java
│   │           │   ├── GFillable.java
│   │           │   ├── GImage.java
│   │           │   ├── GLabel.java
│   │           │   ├── GLine.java
│   │           │   ├── GMath.java
│   │           │   ├── GObject.java
│   │           │   ├── GOval.java
│   │           │   ├── GPen.java
│   │           │   ├── GPoint.java
│   │           │   ├── GPolygon.java
│   │           │   ├── GRect.java
│   │           │   ├── GRectangle.java
│   │           │   ├── GResizable.java
│   │           │   ├── GRoundRect.java
│   │           │   ├── GScalable.java
│   │           │   ├── GTurtle.java
│   │           │   └── package.html
│   │           ├── gui/
│   │           │   ├── DoubleField.java
│   │           │   ├── HPanel.java
│   │           │   ├── IntField.java
│   │           │   ├── TableConstraints.java
│   │           │   ├── TableLayout.java
│   │           │   ├── TablePanel.java
│   │           │   ├── VPanel.java
│   │           │   └── package.html
│   │           ├── io/
│   │           │   ├── IOConsole.java
│   │           │   ├── IODialog.java
│   │           │   ├── IOModel.java
│   │           │   └── package.html
│   │           ├── program/
│   │           │   ├── CommandLineProgram.java
│   │           │   ├── ConsoleProgram.java
│   │           │   ├── DialogProgram.java
│   │           │   ├── GraphicsProgram.java
│   │           │   ├── Program.java
│   │           │   ├── ProgramMenuBar.java
│   │           │   └── package.html
│   │           └── util/
│   │               ├── Animator.java
│   │               ├── CancelledException.java
│   │               ├── ErrorException.java
│   │               ├── FileChooserFilter.java
│   │               ├── JTFTools.java
│   │               ├── MediaTools.java
│   │               ├── MovieClip.java
│   │               ├── OptionTable.java
│   │               ├── Platform.java
│   │               ├── RandomGenerator.java
│   │               ├── SoundClip.java
│   │               ├── SwingTimer.java
│   │               └── package.html
│   ├── Karel/
│   │   ├── .classpath
│   │   ├── .project
│   │   ├── .settings/
│   │   │   └── org.eclipse.jdt.core.prefs
│   │   ├── lib/
│   │   │   └── spl.jar
│   │   ├── obf/
│   │   │   ├── copyjar.sh
│   │   │   ├── karel.jar
│   │   │   └── makejar.sh
│   │   ├── src/
│   │   │   └── stanford/
│   │   │       └── karel/
│   │   │           ├── CardPanel.java
│   │   │           ├── EmptyCanvas.java
│   │   │           ├── Event.java
│   │   │           ├── HPanel.java
│   │   │           ├── HVLayout.java
│   │   │           ├── Karel.java
│   │   │           ├── KarelBugIcon.java
│   │   │           ├── KarelControlPanel.java
│   │   │           ├── KarelErrorCanvas.java
│   │   │           ├── KarelErrorDialog.java
│   │   │           ├── KarelProgram.java
│   │   │           ├── KarelResizer.java
│   │   │           ├── KarelWorld.java
│   │   │           ├── KarelWorldEditor.java
│   │   │           ├── KarelWorldMonitor.java
│   │   │           ├── LoadWorldDialog.java
│   │   │           ├── NewWorldDialog.java
│   │   │           ├── OptionTable.java
│   │   │           ├── ResizeCanvas.java
│   │   │           ├── ResizeLayout.java
│   │   │           ├── SuperKarel.java
│   │   │           ├── VPanel.java
│   │   │           └── Version.java
│   │   └── worlds/
│   │       ├── 16x20.w
│   │       ├── 1x8.w
│   │       ├── 1x9-marty.w
│   │       ├── 3x9-marty.w
│   │       ├── 40x40.w
│   │       ├── 6x5.w
│   │       ├── 7x7.w
│   │       ├── 8x1.w
│   │       ├── 8x8.w
│   │       ├── Checkerboard.w
│   │       ├── CollectNewspaper.w
│   │       ├── MidpointFinder.w
│   │       ├── SampleQuad1.w
│   │       ├── SampleQuad2.w
│   │       └── StoneMason.w
│   ├── README.md
│   ├── Scripts/
│   │   ├── extract-cpplib.pl
│   │   ├── make-autograder_zip.sh
│   │   ├── make-image-strip.sh
│   │   ├── make-stanfordcpplib_zip.sh
│   │   ├── pack-autograder-lib-into-single-cpp-file.sh
│   │   ├── pack-lib-into-single-cpp-file.sh
│   │   └── zip-cpplib.sh
│   ├── StanfordCPPLib_CodeStepByStep_Project/
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── input-1.txt
│   │   ├── res/
│   │   │   ├── .empty.txt
│   │   │   ├── res file with spaces.txt
│   │   │   ├── resfile1.txt
│   │   │   ├── resfile2.doc
│   │   │   └── resfile3.html
│   │   ├── src/
│   │   │   ├── ArrayIntList.cpp
│   │   │   ├── ArrayIntList.h
│   │   │   ├── BinaryTree.cpp
│   │   │   ├── BinaryTree.h
│   │   │   ├── BinaryTreeMap.cpp
│   │   │   ├── BinaryTreeMap.h
│   │   │   ├── BinaryTreeMapNode.h
│   │   │   ├── BinaryTreeNode.h
│   │   │   ├── HashTableMap.h
│   │   │   ├── HashTableSet.cpp
│   │   │   ├── HashTableSet.h
│   │   │   ├── HeapPriorityQueue.cpp
│   │   │   ├── HeapPriorityQueue.h
│   │   │   ├── LinkedIntList.cpp
│   │   │   ├── LinkedIntList.h
│   │   │   ├── codestepbystep.cpp
│   │   │   ├── codestepbystep.h
│   │   │   ├── cppdoc.c
│   │   │   ├── cppdoc.css
│   │   │   ├── fillcomments.c
│   │   │   ├── graphsupport.cpp
│   │   │   ├── graphsupport.h
│   │   │   ├── mainfunc-biginteger.cpp
│   │   │   ├── mainfunc-functional.cpp
│   │   │   ├── mainfunc-iurlstream.cpp
│   │   │   ├── mainfunc-menu.cpp
│   │   │   ├── mainfunc-process.cpp
│   │   │   ├── mainfunc-qt-2dgraphics.cpp
│   │   │   ├── mainfunc-qt-console.cpp
│   │   │   ├── mainfunc-qt-layout.cpp
│   │   │   ├── mainfunc-qt-table.cpp
│   │   │   ├── mainfunc-qt-widgets.cpp
│   │   │   ├── mainfunc.cpp
│   │   │   ├── mainfunc2.cpp
│   │   │   ├── mainfunc3.cpp
│   │   │   ├── readme.txt
│   │   │   ├── searching.cpp
│   │   │   ├── searchingsorting.h
│   │   │   ├── sorting.cpp
│   │   │   ├── types.cpp
│   │   │   └── types.h
│   │   └── stanfordcpplib-codestepbystep.pro
│   ├── StanfordCPPLib_QtCreatorProject/
│   │   ├── input/
│   │   │   ├── input-1.txt
│   │   │   ├── input-2.txt
│   │   │   └── input-subdir/
│   │   │       └── input-subdir-1.txt
│   │   ├── lib/
│   │   │   └── readme.txt
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── expected-output-2.txt
│   │   ├── res/
│   │   │   ├── .empty.txt
│   │   │   ├── res file with spaces.txt
│   │   │   ├── resfile1.txt
│   │   │   ├── resfile2.doc
│   │   │   └── resfile3.html
│   │   ├── src/
│   │   │   ├── mainfunc.cpp
│   │   │   ├── multimain/
│   │   │   │   ├── mainfunc-biginteger.cpp
│   │   │   │   ├── mainfunc-functional.cpp
│   │   │   │   ├── mainfunc-iurlstream.cpp
│   │   │   │   ├── mainfunc-menu.cpp
│   │   │   │   ├── mainfunc-process.cpp
│   │   │   │   ├── mainfunc-qt-2dgraphics.cpp
│   │   │   │   ├── mainfunc-qt-console.cpp
│   │   │   │   ├── mainfunc-qt-diffimage.cpp
│   │   │   │   ├── mainfunc-qt-layout.cpp
│   │   │   │   ├── mainfunc-qt-table.cpp
│   │   │   │   ├── mainfunc-qt-widgets.cpp
│   │   │   │   ├── mainfunc2.cpp
│   │   │   │   └── mainfunc3.cpp
│   │   │   └── readme.txt
│   │   └── stanfordcpplib.pro
│   ├── autograder-empty-project/
│   │   ├── autograder-empty-project.pro
│   │   ├── lib/
│   │   │   └── StanfordCPPLib/
│   │   │       ├── autograder/
│   │   │       │   ├── assertions.h
│   │   │       │   ├── autograder.h
│   │   │       │   ├── autogradercompat.h
│   │   │       │   ├── autogradertest.h
│   │   │       │   ├── consoleautograder.h
│   │   │       │   ├── date.h
│   │   │       │   ├── gtest-marty.h
│   │   │       │   ├── gtest.h
│   │   │       │   ├── guiautograder.h
│   │   │       │   ├── ioutils.h
│   │   │       │   ├── stylecheck.h
│   │   │       │   ├── testresultprinter.h
│   │   │       │   ├── unittestdetails.h
│   │   │       │   └── versionautograder.h
│   │   │       ├── collections/
│   │   │       │   ├── basicgraph.h
│   │   │       │   ├── collections.h
│   │   │       │   ├── dawglexicon.h
│   │   │       │   ├── deque.h
│   │   │       │   ├── functional.h
│   │   │       │   ├── graph.h
│   │   │       │   ├── grid.h
│   │   │       │   ├── gridlocation.h
│   │   │       │   ├── hashcode.h
│   │   │       │   ├── hashmap.h
│   │   │       │   ├── hashset.h
│   │   │       │   ├── lexicon.h
│   │   │       │   ├── linkedhashmap.h
│   │   │       │   ├── linkedhashset.h
│   │   │       │   ├── linkedlist.h
│   │   │       │   ├── map.h
│   │   │       │   ├── pqueue.h
│   │   │       │   ├── priorityqueue.h
│   │   │       │   ├── queue.h
│   │   │       │   ├── set.h
│   │   │       │   ├── shuffle.h
│   │   │       │   ├── sparsegrid.h
│   │   │       │   ├── stack.h
│   │   │       │   ├── stl.h
│   │   │       │   └── vector.h
│   │   │       ├── graphics/
│   │   │       │   ├── console.h
│   │   │       │   ├── consoletext.h
│   │   │       │   ├── gbrowserpane.h
│   │   │       │   ├── gbufferedimage.h
│   │   │       │   ├── gbutton.h
│   │   │       │   ├── gcanvas.h
│   │   │       │   ├── gcheckbox.h
│   │   │       │   ├── gchooser.h
│   │   │       │   ├── gclipboard.h
│   │   │       │   ├── gcolor.h
│   │   │       │   ├── gcolorchooser.h
│   │   │       │   ├── gconsolewindow.h
│   │   │       │   ├── gcontainer.h
│   │   │       │   ├── gdiffgui.h
│   │   │       │   ├── gdiffimage.h
│   │   │       │   ├── gdownloader.h
│   │   │       │   ├── gdrawingsurface.h
│   │   │       │   ├── gevent.h
│   │   │       │   ├── geventqueue.h
│   │   │       │   ├── gevents.h
│   │   │       │   ├── gfilechooser.h
│   │   │       │   ├── gfont.h
│   │   │       │   ├── gfontchooser.h
│   │   │       │   ├── gformattedpane.h
│   │   │       │   ├── ginputpanel.h
│   │   │       │   ├── ginteractor.h
│   │   │       │   ├── ginteractors.h
│   │   │       │   ├── glabel.h
│   │   │       │   ├── glayout.h
│   │   │       │   ├── gobjects.h
│   │   │       │   ├── gobservable.h
│   │   │       │   ├── goptionpane.h
│   │   │       │   ├── gradiobutton.h
│   │   │       │   ├── gscrollbar.h
│   │   │       │   ├── gscrollpane.h
│   │   │       │   ├── gslider.h
│   │   │       │   ├── gspacer.h
│   │   │       │   ├── gtable.h
│   │   │       │   ├── gtextarea.h
│   │   │       │   ├── gtextfield.h
│   │   │       │   ├── gthread.h
│   │   │       │   ├── gtimer.h
│   │   │       │   ├── gtypes.h
│   │   │       │   ├── gwindow.h
│   │   │       │   └── qtgui.h
│   │   │       ├── io/
│   │   │       │   ├── base64.h
│   │   │       │   ├── bitstream.h
│   │   │       │   ├── filelib.h
│   │   │       │   ├── plainconsole.h
│   │   │       │   ├── rapidxml.h
│   │   │       │   ├── server.h
│   │   │       │   ├── simpio.h
│   │   │       │   ├── tokenscanner.h
│   │   │       │   ├── urlstream.h
│   │   │       │   └── xmlutils.h
│   │   │       ├── private/
│   │   │       │   ├── consolestreambuf.h
│   │   │       │   ├── echoinputstreambuf.h
│   │   │       │   ├── foreachpatch.h
│   │   │       │   ├── forwardingstreambuf.h
│   │   │       │   ├── headless.h
│   │   │       │   ├── init.h
│   │   │       │   ├── initstudent.h
│   │   │       │   ├── limitoutputstreambuf.h
│   │   │       │   ├── multimain.h
│   │   │       │   ├── precompiled.h
│   │   │       │   ├── randompatch.h
│   │   │       │   ├── static.h
│   │   │       │   └── version.h
│   │   │       ├── spl.cpp
│   │   │       ├── splautograder.cpp
│   │   │       ├── system/
│   │   │       │   ├── call_stack.h
│   │   │       │   ├── error.h
│   │   │       │   ├── exceptions.h
│   │   │       │   └── os.h
│   │   │       └── util/
│   │   │           ├── bigfloat.h
│   │   │           ├── biginteger.h
│   │   │           ├── complex.h
│   │   │           ├── diff.h
│   │   │           ├── direction.h
│   │   │           ├── foreach.h
│   │   │           ├── gmath.h
│   │   │           ├── intrange.h
│   │   │           ├── managed.h
│   │   │           ├── memory.h
│   │   │           ├── note.h
│   │   │           ├── observable.h
│   │   │           ├── point.h
│   │   │           ├── random.h
│   │   │           ├── recursion.h
│   │   │           ├── regexpr.h
│   │   │           ├── require.h
│   │   │           ├── sound.h
│   │   │           ├── stringutils.h
│   │   │           ├── strlib.h
│   │   │           └── timer.h
│   │   ├── output/
│   │   │   ├── expected-output-1.txt
│   │   │   └── input-1.txt
│   │   ├── res/
│   │   │   └── readme.txt
│   │   └── src/
│   │       ├── ArrayIntList.cpp
│   │       ├── ArrayIntList.h
│   │       ├── BinaryTree.cpp
│   │       ├── BinaryTree.h
│   │       ├── BinaryTreeMap.cpp
│   │       ├── BinaryTreeMap.h
│   │       ├── BinaryTreeMapNode.h
│   │       ├── BinaryTreeNode.h
│   │       ├── HashTableMap.h
│   │       ├── HashTableSet.cpp
│   │       ├── HashTableSet.h
│   │       ├── HeapPriorityQueue.cpp
│   │       ├── HeapPriorityQueue.h
│   │       ├── LinkedIntList.cpp
│   │       ├── LinkedIntList.h
│   │       ├── codestepbystep.cpp
│   │       ├── codestepbystep.h
│   │       ├── cppdoc.c
│   │       ├── cppdoc.css
│   │       ├── fillcomments.c
│   │       ├── graphsupport.cpp
│   │       ├── graphsupport.h
│   │       ├── mainfunc-biginteger.cpp
│   │       ├── mainfunc-functional.cpp
│   │       ├── mainfunc-iurlstream.cpp
│   │       ├── mainfunc-menu.cpp
│   │       ├── mainfunc-process.cpp
│   │       ├── mainfunc-qt-2dgraphics.cpp
│   │       ├── mainfunc-qt-console.cpp
│   │       ├── mainfunc-qt-layout.cpp
│   │       ├── mainfunc-qt-table.cpp
│   │       ├── mainfunc-qt-widgets.cpp
│   │       ├── mainfunc.cpp
│   │       ├── readme.txt
│   │       ├── searching.cpp
│   │       ├── searchingsorting.h
│   │       ├── sorting.cpp
│   │       ├── types.cpp
│   │       └── types.h
│   ├── bugs/
│   │   └── vector_race_condition_ali.txt
│   ├── cppdoc/
│   │   ├── BasicGraph-class.html
│   │   ├── DawgLexicon-class.html
│   │   ├── Deque-class.html
│   │   ├── Edge-class.html
│   │   ├── ErrorException-class.html
│   │   ├── G3DRect-class-old.html
│   │   ├── G3DRect-class.html
│   │   ├── GActionEvent-class-old.html
│   │   ├── GActionEvent.html
│   │   ├── GArc-class-old.html
│   │   ├── GArc-class.html
│   │   ├── GBufferedImage-class-old.html
│   │   ├── GBufferedImage-class.html
│   │   ├── GButton-class-old.html
│   │   ├── GButton-class.html
│   │   ├── GCheckBox-class-old.html
│   │   ├── GCheckBox-class.html
│   │   ├── GChooser-class-old.html
│   │   ├── GChooser-class.html
│   │   ├── GCompound-class-old.html
│   │   ├── GCompound-class.html
│   │   ├── GDimension-class-old.html
│   │   ├── GDimension-class.html
│   │   ├── GEvent-class-old.html
│   │   ├── GEvent-class.html
│   │   ├── GImage-class-old.html
│   │   ├── GImage-class.html
│   │   ├── GInteractor-class-old.html
│   │   ├── GInteractor-class.html
│   │   ├── GKeyEvent-class-old.html
│   │   ├── GKeyEvent-class.html
│   │   ├── GLabel-class-old.html
│   │   ├── GLabel-class.html
│   │   ├── GLine-class-old.html
│   │   ├── GLine-class.html
│   │   ├── GMouseEvent-class-old.html
│   │   ├── GMouseEvent-class.html
│   │   ├── GObject-class-old.html
│   │   ├── GObject-class.html
│   │   ├── GOptionPane-class-old.html
│   │   ├── GOptionPane-class.html
│   │   ├── GOval-class-old.html
│   │   ├── GOval-class.html
│   │   ├── GPoint-class-old.html
│   │   ├── GPoint-class.html
│   │   ├── GPolygon-class-old.html
│   │   ├── GPolygon-class.html
│   │   ├── GRect-class-old.html
│   │   ├── GRect-class.html
│   │   ├── GRectangle-class-old.html
│   │   ├── GRectangle-class.html
│   │   ├── GRoundRect-class-old.html
│   │   ├── GRoundRect-class.html
│   │   ├── GSlider-class-old.html
│   │   ├── GSlider-class.html
│   │   ├── GTable-class-old.html
│   │   ├── GTable-class.html
│   │   ├── GTableEvent-class-old.html
│   │   ├── GTableEvent-class.html
│   │   ├── GText-class.html
│   │   ├── GTextField-class-old.html
│   │   ├── GTextField-class.html
│   │   ├── GTimer-class-old.html
│   │   ├── GTimer-class.html
│   │   ├── GTimerEvent-class-old.html
│   │   ├── GTimerEvent-class.html
│   │   ├── GWindow-class-old.html
│   │   ├── GWindow-class.html
│   │   ├── GWindowEvent-class-old.html
│   │   ├── GWindowEvent-class.html
│   │   ├── Graph-class.html
│   │   ├── Grid-class.html
│   │   ├── HashMap-class.html
│   │   ├── HashSet-class.html
│   │   ├── Lexicon-class.html
│   │   ├── LinkedHashMap-class.html
│   │   ├── LinkedHashSet-class.html
│   │   ├── LinkedList-class.html
│   │   ├── Lock-class.html
│   │   ├── Makefile
│   │   ├── Map-class.html
│   │   ├── Point-class.html
│   │   ├── PriorityQueue-class.html
│   │   ├── Queue-class.html
│   │   ├── Set-class.html
│   │   ├── Sound-class.html
│   │   ├── SparseGrid-class.html
│   │   ├── Stack-class.html
│   │   ├── Thread-class.html
│   │   ├── Timer-class.html
│   │   ├── TokenScanner-class.html
│   │   ├── Vector-class.html
│   │   ├── Vertex-class.html
│   │   ├── basicgraph.html
│   │   ├── bitstream.html
│   │   ├── console.html
│   │   ├── cppdoc.css
│   │   ├── dawglexicon.html
│   │   ├── deque.html
│   │   ├── direction.html
│   │   ├── dist/
│   │   │   ├── CURRENTVERSION_CPPLIB.txt
│   │   │   ├── CURRENTVERSION_SPLJAR.txt
│   │   │   ├── autograder-empty-project.pro
│   │   │   ├── empty-project.pro
│   │   │   ├── sample-project.pro
│   │   │   └── spl.jar
│   │   ├── error.html
│   │   ├── filelib.html
│   │   ├── foreach.html
│   │   ├── functions.html
│   │   ├── gbufferedimage.html
│   │   ├── gevents.html
│   │   ├── ginteractors.html
│   │   ├── gmath.html
│   │   ├── gobjects.html
│   │   ├── goptionpane.html
│   │   ├── graph.html
│   │   ├── grid.html
│   │   ├── gtable.html
│   │   ├── gtimer.html
│   │   ├── gtypes.html
│   │   ├── gwindow.html
│   │   ├── hashmap.html
│   │   ├── hashset.html
│   │   ├── ibitstream-class.html
│   │   ├── ifbitstream-class.html
│   │   ├── index.html
│   │   ├── istringbitstream-class.html
│   │   ├── lexicon.html
│   │   ├── linkedhashmap.html
│   │   ├── linkedhashset.html
│   │   ├── linkedlist.html
│   │   ├── map.html
│   │   ├── modifications.html
│   │   ├── obitstream-class.html
│   │   ├── ofbitstream-class.html
│   │   ├── ostringbitstream-class.html
│   │   ├── point.html
│   │   ├── pqueue.html
│   │   ├── queue.html
│   │   ├── random.html
│   │   ├── rationale.css
│   │   ├── rationale.html
│   │   ├── regexpr.html
│   │   ├── set.html
│   │   ├── shuffle.html
│   │   ├── simpio.html
│   │   ├── sorttable.js
│   │   ├── sound.html
│   │   ├── sparsegrid.html
│   │   ├── spl.jar
│   │   ├── stack.html
│   │   ├── strlib.html
│   │   ├── thread.html
│   │   ├── timer.html
│   │   ├── tokenscanner.html
│   │   ├── variables.html
│   │   └── vector.html
│   ├── cpplib_old_eroberts/
│   │   ├── cppdoc/
│   │   │   ├── Makefile
│   │   │   ├── appsection.c
│   │   │   ├── cppdoc.c
│   │   │   ├── cppdoc.css
│   │   │   ├── doc/
│   │   │   │   ├── EnumRange-class.html
│   │   │   │   ├── ErrorException-class.html
│   │   │   │   ├── GActionEvent-class.html
│   │   │   │   ├── GArc-class.html
│   │   │   │   ├── GCompound-class.html
│   │   │   │   ├── GEvent-class.html
│   │   │   │   ├── GImage-class.html
│   │   │   │   ├── GKeyEvent-class.html
│   │   │   │   ├── GLabel-class.html
│   │   │   │   ├── GLine-class.html
│   │   │   │   ├── GMouseEvent-class.html
│   │   │   │   ├── GObject-class.html
│   │   │   │   ├── GOval-class.html
│   │   │   │   ├── GPoint-class.html
│   │   │   │   ├── GPolygon-class.html
│   │   │   │   ├── GRect-class.html
│   │   │   │   ├── GRectangle-class.html
│   │   │   │   ├── GTimerEvent-class.html
│   │   │   │   ├── GWindow-class.html
│   │   │   │   ├── GWindowEvent-class.html
│   │   │   │   ├── Graph-class.html
│   │   │   │   ├── Grid-class.html
│   │   │   │   ├── Lexicon-class.html
│   │   │   │   ├── Lock-class.html
│   │   │   │   ├── Map-class.html
│   │   │   │   ├── Point-class.html
│   │   │   │   ├── Queue-class.html
│   │   │   │   ├── Set-class.html
│   │   │   │   ├── Sound-class.html
│   │   │   │   ├── Stack-class.html
│   │   │   │   ├── Thread-class.html
│   │   │   │   ├── TokenScanner-class.html
│   │   │   │   ├── Vector-class.html
│   │   │   │   ├── cmpfn-h.html
│   │   │   │   ├── cmpfn.html
│   │   │   │   ├── console-h.html
│   │   │   │   ├── console.html
│   │   │   │   ├── cppdoc.css
│   │   │   │   ├── direction-h.html
│   │   │   │   ├── direction.html
│   │   │   │   ├── error-h.html
│   │   │   │   ├── error.html
│   │   │   │   ├── filelib-h.html
│   │   │   │   ├── filelib.html
│   │   │   │   ├── foreach-h.html
│   │   │   │   ├── foreach.html
│   │   │   │   ├── gevents-h.html
│   │   │   │   ├── gevents.html
│   │   │   │   ├── gobjects-h.html
│   │   │   │   ├── gobjects.html
│   │   │   │   ├── graph-h.html
│   │   │   │   ├── graph.html
│   │   │   │   ├── graphics-h.html
│   │   │   │   ├── graphics.html
│   │   │   │   ├── grid-h.html
│   │   │   │   ├── grid.html
│   │   │   │   ├── gtypes-h.html
│   │   │   │   ├── gtypes.html
│   │   │   │   ├── gwindow-h.html
│   │   │   │   ├── gwindow.html
│   │   │   │   ├── lexicon-h.html
│   │   │   │   ├── lexicon.html
│   │   │   │   ├── map-h.html
│   │   │   │   ├── map.html
│   │   │   │   ├── point-h.html
│   │   │   │   ├── point.html
│   │   │   │   ├── queue-h.html
│   │   │   │   ├── queue.html
│   │   │   │   ├── random-h.html
│   │   │   │   ├── random.html
│   │   │   │   ├── scanner-h.html
│   │   │   │   ├── scanner.html
│   │   │   │   ├── set-h.html
│   │   │   │   ├── set.html
│   │   │   │   ├── simpio-h.html
│   │   │   │   ├── simpio.html
│   │   │   │   ├── sound-h.html
│   │   │   │   ├── sound.html
│   │   │   │   ├── stack-h.html
│   │   │   │   ├── stack.html
│   │   │   │   ├── strlib-h.html
│   │   │   │   ├── strlib.html
│   │   │   │   ├── thread-h.html
│   │   │   │   ├── thread.html
│   │   │   │   ├── vector-h.html
│   │   │   │   └── vector.html
│   │   │   ├── fillcomments.c
│   │   │   ├── index.txt
│   │   │   ├── test.h
│   │   │   ├── test.html
│   │   │   └── testindex.html
│   │   └── cslib/
│   │       ├── Makefile
│   │       ├── bst.c
│   │       ├── bst.h
│   │       ├── charset.c
│   │       ├── charset.h
│   │       ├── cmdscan.c
│   │       ├── cmdscan.h
│   │       ├── cmpfn.c
│   │       ├── cmpfn.h
│   │       ├── cslib.c
│   │       ├── cslib.h
│   │       ├── cstest.c
│   │       ├── doc/
│   │       │   ├── Makefile
│   │       │   ├── bst-h.html
│   │       │   ├── bst.html
│   │       │   ├── charset-h.html
│   │       │   ├── charset.html
│   │       │   ├── cmdscan-h.html
│   │       │   ├── cmdscan.html
│   │       │   ├── cmpfn-h.html
│   │       │   ├── cmpfn.html
│   │       │   ├── cppdoc.css
│   │       │   ├── cslib-h.html
│   │       │   ├── cslib.html
│   │       │   ├── exception-h.html
│   │       │   ├── exception.html
│   │       │   ├── fastsexp-h.html
│   │       │   ├── fastsexp.html
│   │       │   ├── filelib-h.html
│   │       │   ├── filelib.html
│   │       │   ├── foreach-h.html
│   │       │   ├── foreach.html
│   │       │   ├── gcalloc-h.html
│   │       │   ├── gcalloc.html
│   │       │   ├── gcdebug-h.html
│   │       │   ├── gcdebug.html
│   │       │   ├── generic-h.html
│   │       │   ├── generic.html
│   │       │   ├── gevents-h.html
│   │       │   ├── gevents.html
│   │       │   ├── ginteractors-h.html
│   │       │   ├── ginteractors.html
│   │       │   ├── gmath-h.html
│   │       │   ├── gmath.html
│   │       │   ├── gobjects-h.html
│   │       │   ├── gobjects.html
│   │       │   ├── graph-h.html
│   │       │   ├── graph.html
│   │       │   ├── gtimer-h.html
│   │       │   ├── gtimer.html
│   │       │   ├── gtypes-h.html
│   │       │   ├── gtypes.html
│   │       │   ├── gwindow-h.html
│   │       │   ├── gwindow.html
│   │       │   ├── hashmap-h.html
│   │       │   ├── hashmap.html
│   │       │   ├── include/
│   │       │   │   └── package.html
│   │       │   ├── index.html
│   │       │   ├── iterator-h.html
│   │       │   ├── iterator.html
│   │       │   ├── itertype-h.html
│   │       │   ├── itertype.html
│   │       │   ├── lex-h.html
│   │       │   ├── lex.html
│   │       │   ├── loadobj-h.html
│   │       │   ├── loadobj.html
│   │       │   ├── map-h.html
│   │       │   ├── map.html
│   │       │   ├── options-h.html
│   │       │   ├── options.html
│   │       │   ├── pictures/
│   │       │   │   ├── GInteractorDiagrams/
│   │       │   │   │   ├── GCheckBox.html
│   │       │   │   │   ├── GChooser.html
│   │       │   │   │   └── GSlider.html
│   │       │   │   ├── GObjectDiagrams/
│   │       │   │   │   ├── GArcExamples.html
│   │       │   │   │   ├── GArcExamples.ps
│   │       │   │   │   ├── GArcGeometry.html
│   │       │   │   │   ├── GArcGeometry.ps
│   │       │   │   │   ├── GLabelGeometry.html
│   │       │   │   │   ├── GLabelGeometry.ps
│   │       │   │   │   ├── GPolygonExamples.ps
│   │       │   │   │   ├── Makefile
│   │       │   │   │   ├── PacMan.html
│   │       │   │   │   ├── PacMan.ps
│   │       │   │   │   ├── StopSign.html
│   │       │   │   │   └── StopSign.ps
│   │       │   │   ├── HelloWorld/
│   │       │   │   │   ├── HelloWorld.ps
│   │       │   │   │   └── Makefile
│   │       │   │   └── TypeHierarchies/
│   │       │   │       ├── GEventHierarchy.html
│   │       │   │       ├── GEventHierarchy.ps
│   │       │   │       ├── GInteractorHierarchy.html
│   │       │   │       ├── GInteractorHierarchy.ps
│   │       │   │       ├── GObjectHierarchy.html
│   │       │   │       ├── GObjectHierarchy.ps
│   │       │   │       ├── Makefile
│   │       │   │       └── hierarchy.ps
│   │       │   ├── platform-h.html
│   │       │   ├── platform.html
│   │       │   ├── pqueue-h.html
│   │       │   ├── pqueue.html
│   │       │   ├── queue-h.html
│   │       │   ├── queue.html
│   │       │   ├── random-h.html
│   │       │   ├── random.html
│   │       │   ├── ref-h.html
│   │       │   ├── ref.html
│   │       │   ├── scanner-h.html
│   │       │   ├── scanner.html
│   │       │   ├── set-h.html
│   │       │   ├── set.html
│   │       │   ├── sexp-h.html
│   │       │   ├── sexp.html
│   │       │   ├── sexpcdt-h.html
│   │       │   ├── sexpcdt.html
│   │       │   ├── simpio-h.html
│   │       │   ├── simpio.html
│   │       │   ├── sound-h.html
│   │       │   ├── sound.html
│   │       │   ├── stack-h.html
│   │       │   ├── stack.html
│   │       │   ├── strlib-h.html
│   │       │   ├── strlib.html
│   │       │   ├── symtab-h.html
│   │       │   ├── symtab.html
│   │       │   ├── thread-h.html
│   │       │   ├── thread.html
│   │       │   ├── tokenscanner-h.html
│   │       │   ├── tokenscanner.html
│   │       │   ├── unittest-h.html
│   │       │   ├── unittest.html
│   │       │   ├── vector-h.html
│   │       │   └── vector.html
│   │       ├── exception.c
│   │       ├── exception.h
│   │       ├── filelib.c
│   │       ├── filelib.h
│   │       ├── foreach.c
│   │       ├── foreach.h
│   │       ├── gccx
│   │       ├── generic.c
│   │       ├── generic.h
│   │       ├── gevents.c
│   │       ├── gevents.h
│   │       ├── ginteractors.c
│   │       ├── ginteractors.h
│   │       ├── gmath.c
│   │       ├── gmath.h
│   │       ├── gobjects.c
│   │       ├── gobjects.h
│   │       ├── graph.c
│   │       ├── graph.h
│   │       ├── gtimer.c
│   │       ├── gtimer.h
│   │       ├── gtransform.c
│   │       ├── gtransform.h
│   │       ├── gtypes.c
│   │       ├── gtypes.h
│   │       ├── gwindow.c
│   │       ├── gwindow.h
│   │       ├── hashmap.c
│   │       ├── hashmap.h
│   │       ├── iterator.c
│   │       ├── iterator.h
│   │       ├── itertype.h
│   │       ├── loadobj.c
│   │       ├── loadobj.h
│   │       ├── map.c
│   │       ├── map.h
│   │       ├── options.c
│   │       ├── options.h
│   │       ├── platform.c
│   │       ├── platform.h
│   │       ├── posixthread.c
│   │       ├── pqueue.c
│   │       ├── pqueue.h
│   │       ├── private/
│   │       │   ├── randompatch.h
│   │       │   └── tokenpatch.h
│   │       ├── queue.c
│   │       ├── queue.h
│   │       ├── random.c
│   │       ├── random.h
│   │       ├── ref.c
│   │       ├── ref.h
│   │       ├── set.c
│   │       ├── set.h
│   │       ├── simpio.c
│   │       ├── simpio.h
│   │       ├── sound.c
│   │       ├── sound.h
│   │       ├── stack.c
│   │       ├── stack.h
│   │       ├── strbuf.c
│   │       ├── strbuf.h
│   │       ├── strlib.c
│   │       ├── strlib.h
│   │       ├── thread.c
│   │       ├── thread.h
│   │       ├── todo.txt
│   │       ├── tokenscanner.c
│   │       ├── tokenscanner.h
│   │       ├── unittest.c
│   │       ├── unittest.h
│   │       ├── unixfile.c
│   │       ├── unixfile.e
│   │       ├── vector.c
│   │       ├── vector.h
│   │       ├── winfile.c
│   │       └── winthread.c
│   ├── doc/
│   │   ├── customdoxygen.css
│   │   ├── doxygen.ini
│   │   └── postprocess-doc-file.pl
│   ├── docs/
│   │   └── _old/
│   │       ├── console-h.html
│   │       ├── direction-h.html
│   │       ├── error-h.html
│   │       ├── filelib-h.html
│   │       ├── foreach-h.html
│   │       ├── gevents-h.html
│   │       ├── ginteractors-h.html
│   │       ├── gmath-h.html
│   │       ├── gobjects-h.html
│   │       ├── graph-h.html
│   │       ├── grid-h.html
│   │       ├── gtimer-h.html
│   │       ├── gtypes-h.html
│   │       ├── gwindow-h.html
│   │       ├── hashmap-h.html
│   │       ├── hashset-h.html
│   │       ├── lexicon-h.html
│   │       ├── map-h.html
│   │       ├── point-h.html
│   │       ├── pqueue-h.html
│   │       ├── queue-h.html
│   │       ├── random-h.html
│   │       ├── set-h.html
│   │       ├── simpio-h.html
│   │       ├── sound-h.html
│   │       ├── stack-h.html
│   │       ├── strlib-h.html
│   │       ├── thread-h.html
│   │       ├── tokenscanner-h.html
│   │       └── vector-h.html
│   ├── sample-project/
│   │   ├── res/
│   │   │   └── readme.txt
│   │   ├── sample-project.pro
│   │   └── src/
│   │       ├── hello.cpp
│   │       └── hello.h
│   ├── spl.cpp
│   ├── spl.h
│   ├── spl_cpp_header_autograder_text.txt
│   └── spl_cpp_header_text.txt
├── BothLibraryWelcome.pro
├── DebugHelper/
│   ├── DebugHelper.pro
│   ├── README.md
│   ├── assign_uses.cpp
│   ├── bits.cpp
│   ├── bits.h
│   ├── generate_class_coverage.py
│   ├── main.cpp
│   ├── node_pair.cpp
│   ├── shared.cpp
│   ├── shared.h
│   ├── stanford_hash.cpp
│   ├── stanford_linear.cpp
│   ├── stanford_pq.cpp
│   ├── stanford_tree.cpp
│   └── stl.cpp
├── Docs/
│   ├── ErrorException.html
│   ├── GPoint.html
│   ├── Grid.html
│   ├── GridLocation.html
│   ├── GridLocationRange.html
│   ├── HashMap.html
│   ├── HashSet.html
│   ├── Lexicon.html
│   ├── Map.html
│   ├── PriorityQueue.html
│   ├── Queue.html
│   ├── Set.html
│   ├── Stack.html
│   ├── Vector.html
│   ├── _tokenscanner.html
│   ├── cppdoc.css
│   ├── direction.html
│   ├── error.html
│   ├── filelib.html
│   ├── gmath.html
│   ├── index.html
│   ├── random.html
│   ├── simpio.html
│   ├── strlib.html
│   └── timer.html
├── Library/
│   ├── Library.pro
│   ├── assume_install.mk
│   ├── collections/
│   │   ├── basicgraph.cpp
│   │   ├── basicgraph.h
│   │   ├── collections.cpp
│   │   ├── collections.h
│   │   ├── dawglexicon.cpp
│   │   ├── dawglexicon.h
│   │   ├── deque.h
│   │   ├── graph.h
│   │   ├── grid.h
│   │   ├── gridlocation.cpp
│   │   ├── gridlocation.h
│   │   ├── hashcode.cpp
│   │   ├── hashcode.h
│   │   ├── hashmap.h
│   │   ├── hashset.h
│   │   ├── lexicon.h
│   │   ├── linkedlist.h
│   │   ├── map.h
│   │   ├── optional.cpp
│   │   ├── optional.h
│   │   ├── priorityqueue.h
│   │   ├── queue.h
│   │   ├── set.h
│   │   ├── stack.h
│   │   ├── trielexicon.cpp
│   │   ├── trielexicon.h
│   │   └── vector.h
│   ├── console/
│   │   ├── console.cpp
│   │   ├── console.h
│   │   ├── consolestreambuf.h
│   │   ├── consoletext.h
│   │   ├── echoinputstreambuf.h
│   │   ├── forwardingstreambuf.h
│   │   ├── gconsolewindow.cpp
│   │   ├── gconsolewindow.h
│   │   ├── ioutils.cpp
│   │   ├── ioutils.h
│   │   ├── limitoutputstreambuf.h
│   │   ├── plainconsole.cpp
│   │   └── plainconsole.h
│   ├── graphics/
│   │   ├── gbrowserpane.cpp
│   │   ├── gbrowserpane.h
│   │   ├── gbutton.cpp
│   │   ├── gbutton.h
│   │   ├── gcanvas.cpp
│   │   ├── gcanvas.h
│   │   ├── gcheckbox.cpp
│   │   ├── gcheckbox.h
│   │   ├── gchooser.cpp
│   │   ├── gchooser.h
│   │   ├── gclipboard.cpp
│   │   ├── gclipboard.h
│   │   ├── gcolor.cpp
│   │   ├── gcolor.h
│   │   ├── gcolorchooser.cpp
│   │   ├── gcolorchooser.h
│   │   ├── gcontainer.cpp
│   │   ├── gcontainer.h
│   │   ├── gdiffimage.cpp
│   │   ├── gdiffimage.h
│   │   ├── gdownloader.cpp
│   │   ├── gdownloader.h
│   │   ├── gdrawingsurface.cpp
│   │   ├── gdrawingsurface.h
│   │   ├── gevent.cpp
│   │   ├── gevent.h
│   │   ├── geventqueue.cpp
│   │   ├── geventqueue.h
│   │   ├── gfilechooser.cpp
│   │   ├── gfilechooser.h
│   │   ├── gfont.cpp
│   │   ├── gfont.h
│   │   ├── gfontchooser.cpp
│   │   ├── gfontchooser.h
│   │   ├── ginteractor.cpp
│   │   ├── ginteractor.h
│   │   ├── ginteractors.h
│   │   ├── glabel.cpp
│   │   ├── glabel.h
│   │   ├── glayout.cpp
│   │   ├── glayout.h
│   │   ├── gobjects.cpp
│   │   ├── gobjects.h
│   │   ├── gobservable.cpp
│   │   ├── gobservable.h
│   │   ├── goptionpane.cpp
│   │   ├── goptionpane.h
│   │   ├── gradiobutton.cpp
│   │   ├── gradiobutton.h
│   │   ├── gscrollbar.cpp
│   │   ├── gscrollbar.h
│   │   ├── gscrollpane.cpp
│   │   ├── gscrollpane.h
│   │   ├── gslider.cpp
│   │   ├── gslider.h
│   │   ├── gspacer.cpp
│   │   ├── gspacer.h
│   │   ├── gtable.cpp
│   │   ├── gtable.h
│   │   ├── gtextarea.cpp
│   │   ├── gtextarea.h
│   │   ├── gtextfield.cpp
│   │   ├── gtextfield.h
│   │   ├── gthread.cpp
│   │   ├── gthread.h
│   │   ├── gtimer.cpp
│   │   ├── gtimer.h
│   │   ├── gtypes.cpp
│   │   ├── gtypes.h
│   │   ├── gwindow.cpp
│   │   ├── gwindow.h
│   │   ├── moc_unity.cpp
│   │   ├── qtgui.cpp
│   │   └── qtgui.h
│   ├── images.qrc
│   ├── io/
│   │   ├── filelib.cpp
│   │   ├── filelib.h
│   │   ├── simpio.cpp
│   │   ├── simpio.h
│   │   ├── tokenscanner.cpp
│   │   ├── tokenscanner.h
│   │   ├── urlstream.cpp
│   │   └── urlstream.h
│   ├── private/
│   │   ├── README.md
│   │   ├── build.h.in
│   │   ├── filelibunix.cpp
│   │   ├── filelibwindows.cpp
│   │   ├── headless.h
│   │   ├── init.cpp
│   │   ├── init.h
│   │   ├── librarymain.cpp
│   │   ├── mainwrapper.cpp
│   │   └── static.h
│   ├── resources/
│   │   ├── EnglishWords.txt
│   │   └── Makefile
│   ├── spl_version.in
│   ├── stanfordtypes.py
│   ├── system/
│   │   ├── error.cpp
│   │   ├── error.h
│   │   ├── exceptions.cpp
│   │   ├── exceptions.h
│   │   ├── os.cpp
│   │   └── os.h
│   ├── testing/
│   │   ├── MemoryDiagnostics.cpp
│   │   ├── MemoryDiagnostics.h
│   │   ├── README.txt
│   │   ├── SimpleTest.h
│   │   ├── TestDriver.cpp
│   │   ├── TestDriver.h
│   │   ├── TestingGUI.cpp
│   │   ├── TextUtils.cpp
│   │   ├── TextUtils.h
│   │   └── styles_css_h
│   └── util/
│       ├── direction.cpp
│       ├── direction.h
│       ├── gmath.cpp
│       ├── gmath.h
│       ├── observable.h
│       ├── random.cpp
│       ├── random.h
│       ├── require.cpp
│       ├── require.h
│       ├── sound.cpp
│       ├── sound.h
│       ├── splversion.cpp
│       ├── splversion.h
│       ├── strlib.cpp
│       ├── strlib.h
│       ├── timer.cpp
│       └── timer.h
├── README.md
├── RandomClientTests/
│   ├── BugFixes/
│   │   ├── BugFixes.pro
│   │   └── bugfixes.cpp
│   ├── CompileFlags/
│   │   ├── CompileFlags.pro
│   │   └── compile.cpp
│   ├── LexCrash/
│   │   ├── LexTest.pro
│   │   ├── README.md
│   │   ├── main.cpp
│   │   └── res/
│   │       └── EnglishWords.txt
│   └── ShadowTest/
│       ├── ShadowTest.pro
│       ├── again.h
│       ├── extra/
│       │   ├── NOTstrlib.h
│       │   ├── mine.h
│       │   └── vector.h
│       ├── main.cpp
│       ├── strlib.cpp
│       └── strlib.h
├── SPL-unit-tests/
│   ├── .gitignore
│   ├── README.md
│   ├── UnitTests.pro
│   ├── common.h
│   ├── main.cpp
│   ├── res/
│   │   ├── EnglishWords.txt
│   │   ├── end_cr
│   │   ├── end_crlf
│   │   └── end_lf
│   ├── test-collection-read.cpp
│   ├── test-collections.cpp
│   ├── test-console.cpp
│   ├── test-dawg.cpp
│   ├── test-deque.cpp
│   ├── test-error.cpp
│   ├── test-exceptions.cpp
│   ├── test-filelib.cpp
│   ├── test-graphics.cpp
│   ├── test-grid.cpp
│   ├── test-hashmap.cpp
│   ├── test-hashset.cpp
│   ├── test-lex.cpp
│   ├── test-linkedlist.cpp
│   ├── test-map.cpp
│   ├── test-pqueue.cpp
│   ├── test-queue.cpp
│   ├── test-set.cpp
│   ├── test-simpio.cpp
│   ├── test-simpletest.cpp
│   ├── test-sound.cpp
│   ├── test-stack.cpp
│   ├── test-strlib.cpp
│   ├── test-trie.cpp
│   ├── test-url.cpp
│   └── test-vector.cpp
├── SimpleTestGuide/
│   ├── SimpleTest.pro
│   ├── main.cpp
│   ├── simpletest.css
│   ├── simpletestguide.cpp
│   └── unittest.cpp
├── Welcome/
│   ├── Welcome.pro
│   └── welcome.cpp
└── Wizard/
    ├── README.md.in
    ├── file.pro.in
    ├── main.cpp.in
    └── wizard.json
Download .txt
Showing preview only (1,851K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (14345 symbols across 1164 files)

FILE: Archived/Autograder_QtCreatorProject/src/mainfunc.cpp
  function f (line 179) | int f() {
  function showMyInputTxt (line 190) | void showMyInputTxt() {
  function main (line 196) | int main() {
  function autograderMain (line 204) | void autograderMain() {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-basicgraph.cpp
  function TIMED_TEST (line 19) | TIMED_TEST(BasicGraphTests, basicTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 81) | TIMED_TEST(BasicGraphTests, compareTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 120) | TIMED_TEST(BasicGraphTests, forEachTest_BasicGraph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 140) | TIMED_TEST(BasicGraphTests, frontBackTest_BasicGraph, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 157) | TIMED_TEST(BasicGraphTests, hashCodeTest_BasicGraph, TEST_TIMEOUT_DEFAUL...
  function TIMED_TEST (line 223) | TIMED_TEST(BasicGraphTests, initializerListTest_BasicGraph, TEST_TIMEOUT...
  function TIMED_TEST (line 229) | TIMED_TEST(BasicGraphTests, iteratorVersionTest_BasicGraph, TEST_TIMEOUT...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-dawglexicon.cpp
  function TIMED_TEST (line 19) | TIMED_TEST(DawgLexiconTests, basicTest_DawgLexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 73) | TIMED_TEST(DawgLexiconTests, compareTest_DawgLexicon, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 91) | TIMED_TEST(DawgLexiconTests, forEachTest_DawgLexicon, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 103) | TIMED_TEST(DawgLexiconTests, frontBackTest_DawgLexicon, TEST_TIMEOUT_DEF...
  function TIMED_TEST (line 109) | TIMED_TEST(DawgLexiconTests, hashCodeTest_DawgLexicon, TEST_TIMEOUT_DEFA...
  function TIMED_TEST (line 125) | TIMED_TEST(DawgLexiconTests, initializerListTest_DawgLexicon, TEST_TIMEO...
  function TIMED_TEST (line 171) | TIMED_TEST(DawgLexiconTests, iteratorVersionTest_DawgLexicon, TEST_TIMEO...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-deque.cpp
  class Deque<int> (line 25) | class Deque<int>
  class Deque<bool> (line 26) | class Deque<bool>
  class Deque<std::string> (line 27) | class Deque<std::string>
  function TIMED_TEST (line 29) | TIMED_TEST(DequeTests, compareTest_Deque, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 46) | TIMED_TEST(DequeTests, forEachTest_Deque, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 56) | TIMED_TEST(DequeTests, frontBackTest_Deque, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 62) | TIMED_TEST(DequeTests, hashCodeTest_Deque, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 79) | TIMED_TEST(DequeTests, initializerListTest_Deque, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 85) | TIMED_TEST(DequeTests, iteratorVersionTest_Deque, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-graph.cpp
  type DumbNode (line 20) | struct DumbNode
  type DumbEdge (line 21) | struct DumbEdge
  type DumbNode (line 23) | struct DumbNode {
  type DumbEdge (line 29) | struct DumbEdge {
  function TIMED_TEST (line 35) | TIMED_TEST(GraphTests, basicTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 77) | TIMED_TEST(GraphTests, compareTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 116) | TIMED_TEST(GraphTests, forEachTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 136) | TIMED_TEST(GraphTests, frontBackTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 153) | TIMED_TEST(GraphTests, hashCodeTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 192) | TIMED_TEST(GraphTests, initializerListTest_Graph, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 197) | TIMED_TEST(GraphTests, iteratorVersionTest_Graph, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-grid.cpp
  class Grid<int> (line 23) | class Grid<int>
  class Grid<std::string> (line 24) | class Grid<std::string>
  function TIMED_TEST (line 26) | TIMED_TEST(GridTests, compareTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 50) | TIMED_TEST(GridTests, forEachTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 62) | TIMED_TEST(GridTests, frontBackTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 68) | TIMED_TEST(GridTests, hashCodeTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 82) | TIMED_TEST(GridTests, initializerListTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 96) | TIMED_TEST(GridTests, iteratorVersionTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 111) | TIMED_TEST(GridTests, mapAllTest_Grid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 137) | TIMED_TEST(GridTests, randomElementTest_Grid, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-hashmap.cpp
  class HashMap<int, int> (line 25) | class HashMap<int, int>
  class HashMap<std::string, int> (line 26) | class HashMap<std::string, int>
  function causeCompilerError (line 33) | void causeCompilerError() {
  function TIMED_TEST (line 40) | TIMED_TEST(HashMapTests, forEachTest_HashMap, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 55) | TIMED_TEST(HashMapTests, frontBackTest_HashMap, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 68) | TIMED_TEST(HashMapTests, initializerListTest_HashMap, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 110) | TIMED_TEST(HashMapTests, iteratorBasic_HashMap, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 138) | TIMED_TEST(HashMapTests, iteratorVersionTest_HashMap, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 154) | TIMED_TEST(HashMapTests, randomKeyTest_HashMap, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 177) | TIMED_TEST(HashMapTests, streamExtractTest_HashMap2bad, TEST_TIMEOUT_DEF...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-hashset.cpp
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::HashSetTraits<int>> (line 26) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::HashSetTraits<std::string>> (line 27) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  function causeCompilerError (line 34) | void causeCompilerError() {
  function badInitializationError (line 46) | void badInitializationError() {
  function TIMED_TEST (line 51) | TIMED_TEST(HashSetTests, commaOperatorTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 73) | TIMED_TEST(HashSetTests, forEachTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 81) | TIMED_TEST(HashSetTests, frontBackTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 93) | TIMED_TEST(HashSetTests, hashCodeTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 107) | TIMED_TEST(HashSetTests, initializerListTest_HashSet, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 136) | TIMED_TEST(HashSetTests, iteratorVersionTest_HashSet, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 151) | TIMED_TEST(HashSetTests, mapAllTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 162) | TIMED_TEST(HashSetTests, randomElementTest_HashSet, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 179) | TIMED_TEST(HashSetTests, removeAndRetainTest_HashSet, TEST_TIMEOUT_DEFAU...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-lexicon.cpp
  function TIMED_TEST (line 20) | TIMED_TEST(LexiconTests, basicTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 74) | TIMED_TEST(LexiconTests, compareTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 92) | TIMED_TEST(LexiconTests, forEachTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 104) | TIMED_TEST(LexiconTests, frontBackTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 110) | TIMED_TEST(LexiconTests, hashCodeTest_Lexicon, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 126) | TIMED_TEST(LexiconTests, initializerListTest_Lexicon, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 172) | TIMED_TEST(LexiconTests, iteratorVersionTest_Lexicon, TEST_TIMEOUT_DEFAU...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashmap.cpp
  class LinkedHashMap<int, int> (line 24) | class LinkedHashMap<int, int>
  class LinkedHashMap<int, std::string> (line 25) | class LinkedHashMap<int, std::string>
  class LinkedHashMap<std::string, int> (line 26) | class LinkedHashMap<std::string, int>
  class LinkedHashMap<std::string, std::string> (line 27) | class LinkedHashMap<std::string, std::string>
  function TIMED_TEST (line 29) | TIMED_TEST(LinkedHashMapTests, compareTest_LinkedHashMap, TEST_TIMEOUT_D...
  function TIMED_TEST (line 33) | TIMED_TEST(LinkedHashMapTests, forEachTest_LinkedHashMap, TEST_TIMEOUT_D...
  function TIMED_TEST (line 57) | TIMED_TEST(LinkedHashMapTests, frontBackTest_LinkedHashMap, TEST_TIMEOUT...
  function TIMED_TEST (line 63) | TIMED_TEST(LinkedHashMapTests, hashCodeTest_LinkedHashMap, TEST_TIMEOUT_...
  function TIMED_TEST (line 78) | TIMED_TEST(LinkedHashMapTests, initializerListTest_LinkedHashMap, TEST_T...
  function TIMED_TEST (line 120) | TIMED_TEST(LinkedHashMapTests, randomKeyTest_LinkedHashMap, TEST_TIMEOUT...
  function TIMED_TEST (line 143) | TIMED_TEST(LinkedHashMapTests, streamExtractTest_LinkedHashMap, TEST_TIM...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashset.cpp
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::LinkedHashSetTraits<int>> (line 22) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::LinkedHashSetTraits<std::string>> (line 23) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  function causeCompilerError (line 28) | void causeCompilerError() {
  function badInitializationError (line 36) | void badInitializationError() {
  function TIMED_TEST (line 41) | TIMED_TEST(LinkedHashSetTests, commaOperatorLinkedHashTest_Set, TEST_TIM...
  function TIMED_TEST (line 63) | TIMED_TEST(LinkedHashSetTests, compareTest_LinkedHashSet, TEST_TIMEOUT_D...
  function TIMED_TEST (line 80) | TIMED_TEST(LinkedHashSetTests, forEachTest_LinkedHashSet, TEST_TIMEOUT_D...
  function TIMED_TEST (line 89) | TIMED_TEST(LinkedHashSetTests, frontBackTest_LinkedHashSet, TEST_TIMEOUT...
  function TIMED_TEST (line 95) | TIMED_TEST(LinkedHashSetTests, hashcodeTest_LinkedHashSet, TEST_TIMEOUT_...
  function TIMED_TEST (line 114) | TIMED_TEST(LinkedHashSetTests, initializerListTest_LinkedHashSet, TEST_T...
  function TIMED_TEST (line 142) | TIMED_TEST(LinkedHashSetTests, randomElementTest_LinkedHashSet, TEST_TIM...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedlist.cpp
  class LinkedList<int> (line 24) | class LinkedList<int>
  class LinkedList<std::string> (line 25) | class LinkedList<std::string>
  function TIMED_TEST (line 27) | TIMED_TEST(LinkedListTests, compareTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 47) | TIMED_TEST(LinkedListTests, forEachTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 56) | TIMED_TEST(LinkedListTests, hashCodeTest_LinkedList, TEST_TIMEOUT_DEFAUL...
  function TIMED_TEST (line 70) | TIMED_TEST(LinkedListTests, indexOfTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 89) | TIMED_TEST(LinkedListTests, initializerListTest_LinkedList, TEST_TIMEOUT...
  function TIMED_TEST (line 104) | TIMED_TEST(LinkedListTests, iteratorVersionTest_LinkedList, TEST_TIMEOUT...
  function TIMED_TEST (line 119) | TIMED_TEST(LinkedListTests, randomElementTest_LinkedList, TEST_TIMEOUT_D...
  function TIMED_TEST (line 136) | TIMED_TEST(LinkedListTests, removeValueTest_LinkedList, TEST_TIMEOUT_DEF...
  function TIMED_TEST (line 147) | TIMED_TEST(LinkedListTests, reverseTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 155) | TIMED_TEST(LinkedListTests, shuffleTest_LinkedList, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 175) | TIMED_TEST(LinkedListTests, sortTest_LinkedList, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-map.cpp
  class Map<int, int> (line 25) | class Map<int, int>
  class Map<std::string, int> (line 26) | class Map<std::string, int>
  function causeCompilerError (line 33) | void causeCompilerError() {
  function customComparatorNoError (line 43) | static void customComparatorNoError() {
  function TIMED_TEST (line 53) | TIMED_TEST(MapTests, compareTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 57) | TIMED_TEST(MapTests, forEachTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 79) | TIMED_TEST(MapTests, frontBackTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 85) | TIMED_TEST(MapTests, hashCodeTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 100) | TIMED_TEST(MapTests, initializerListTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 143) | TIMED_TEST(MapTests, iteratorVersionTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 159) | TIMED_TEST(MapTests, randomKeyTest_Map, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 182) | TIMED_TEST(MapTests, streamExtractTest_Map, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-priorityqueue.cpp
  class PriorityQueue<int> (line 24) | class PriorityQueue<int>
  class PriorityQueue<std::string> (line 25) | class PriorityQueue<std::string>
  function TIMED_TEST (line 27) | TIMED_TEST(PriorityQueueTests, basicSortingTest_PriorityQueue, TEST_TIME...
  function TIMED_TEST (line 47) | TIMED_TEST(PriorityQueueTests, changePriority_PriorityQueue, TEST_TIMEOU...
  function TIMED_TEST (line 109) | TIMED_TEST(PriorityQueueTests, hashCodeTest_PriorityQueue, TEST_TIMEOUT_...
  function TIMED_TEST (line 128) | TIMED_TEST(PriorityQueueTests, initializerListTest_PriorityQueue, TEST_T...

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-queue.cpp
  class Queue<int> (line 23) | class Queue<int>
  class Queue<std::string> (line 24) | class Queue<std::string>
  function TIMED_TEST (line 26) | TIMED_TEST(QueueTests, compareTest_Queue, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 46) | TIMED_TEST(QueueTests, forEachTest_Queue, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 61) | TIMED_TEST(QueueTests, hashCodeTest_Queue, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 80) | TIMED_TEST(QueueTests, initializerListTest_Queue, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 85) | TIMED_TEST(QueueTests, peekEnqueueBugTest_Queue, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-set.cpp
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::SetTraits<int>> (line 25) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  class stanfordcpplib::collections::GenericSet<stanfordcpplib::collections::SetTraits<std::string>> (line 26) | class stanfordcpplib::collections::GenericSet<stanfordcpplib::collection...
  function causeCompilerError (line 33) | void causeCompilerError() {
  function customComparatorNoError (line 44) | static void customComparatorNoError() {
  function badInitializationError (line 55) | void badInitializationError() {
  function TIMED_TEST (line 60) | TIMED_TEST(SetTests, commaOperatorTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 82) | TIMED_TEST(SetTests, compareTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 99) | TIMED_TEST(SetTests, customComparatorTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 121) | TIMED_TEST(SetTests, forEachTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 131) | TIMED_TEST(SetTests, frontBackTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 137) | TIMED_TEST(SetTests, hashCodeTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 151) | TIMED_TEST(SetTests, initializerListTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 180) | TIMED_TEST(SetTests, iteratorVersionTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 195) | TIMED_TEST(SetTests, mapAllTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 206) | TIMED_TEST(SetTests, randomElementTest_Set, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 223) | TIMED_TEST(SetTests, removeAndRetainTest_Set, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-sparsegrid.cpp
  class SparseGrid<int> (line 24) | class SparseGrid<int>
  class SparseGrid<std::string> (line 25) | class SparseGrid<std::string>
  function TIMED_TEST (line 27) | TIMED_TEST(SparseGridTests, compareTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 46) | TIMED_TEST(SparseGridTests, forEachTest_SparseGrid, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 58) | TIMED_TEST(SparseGridTests, frontBackTest_SparseGrid, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 64) | TIMED_TEST(SparseGridTests, hashCodeTest_SparseGrid, TEST_TIMEOUT_DEFAUL...
  function TIMED_TEST (line 78) | TIMED_TEST(SparseGridTests, initializerListTest_SparseGrid, TEST_TIMEOUT...
  function TIMED_TEST (line 92) | TIMED_TEST(SparseGridTests, iteratorVersionTest_SparseGrid, TEST_TIMEOUT...
  function TIMED_TEST (line 107) | TIMED_TEST(SparseGridTests, randomElementTest_Grid, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-stack.cpp
  class Stack<int> (line 23) | class Stack<int>
  class Stack<std::string> (line 24) | class Stack<std::string>
  function TIMED_TEST (line 26) | TIMED_TEST(StackTests, compareTest_Stack, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 46) | TIMED_TEST(StackTests, hashCodeTest_Stack, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 60) | TIMED_TEST(StackTests, initializerListTest_Stack, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/collection-test-vector.cpp
  class Vector<int> (line 25) | class Vector<int>
  class Vector<bool> (line 26) | class Vector<bool>
  class Vector<std::string> (line 27) | class Vector<std::string>
  function TIMED_TEST (line 29) | TIMED_TEST(VectorTests, basicsTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 57) | TIMED_TEST(VectorTests, compareTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 84) | TIMED_TEST(VectorTests, concatTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 107) | TIMED_TEST(VectorTests, forEachTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 116) | TIMED_TEST(VectorTests, frontBackTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 122) | TIMED_TEST(VectorTests, hashCodeTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 136) | TIMED_TEST(VectorTests, indexOfTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 157) | TIMED_TEST(VectorTests, initializerListTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 171) | TIMED_TEST(VectorTests, insertTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 196) | TIMED_TEST(VectorTests, iteratorConversionTest_Vector, TEST_TIMEOUT_DEFA...
  function TIMED_TEST (line 204) | TIMED_TEST(VectorTests, iteratorRangeCheckingTest_Vector, TEST_TIMEOUT_D...
  function TIMED_TEST (line 475) | TIMED_TEST(VectorTests, iteratorVersionTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 490) | TIMED_TEST(VectorTests, mapAllTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 501) | TIMED_TEST(VectorTests, randomElementTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 518) | TIMED_TEST(VectorTests, removeValueTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 529) | TIMED_TEST(VectorTests, reverseTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 537) | TIMED_TEST(VectorTests, shuffleTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 557) | TIMED_TEST(VectorTests, sortTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 565) | TIMED_TEST(VectorTests, streamExtractTest_Vector, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 572) | TIMED_TEST(VectorTests, streamExtractTest_Vector2bad, TEST_TIMEOUT_DEFAU...
  function TIMED_TEST (line 579) | TIMED_TEST(VectorTests, sublistTest_Vector, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/exceptionTests.cpp
  type MyNS (line 15) | namespace MyNS {
    class LoL (line 16) | class LoL {
      method cCcCc_cCcCc (line 18) | static int cCcCc_cCcCc(int, char*, double, char, bool) {
  function b (line 30) | void b() {
  function a (line 36) | void a() {
  function exceptionTest (line 42) | void exceptionTest() {
  function rihelper (line 46) | int rihelper(int k) {
  function recursionIndentTest (line 57) | void recursionIndentTest() {
  function stackOverflowTest (line 62) | void stackOverflowTest(int n) {
  function segC_theOneThatActuallyThrows (line 72) | void segC_theOneThatActuallyThrows(int sig) {
  function segB (line 89) | void segB(int sig) {
  function segA (line 93) | void segA(int sig) {
  function segfaultTest (line 97) | void segfaultTest(int sig) {
  function TIMED_TEST (line 109) | TIMED_TEST(ExceptionTests, ErrorExceptionTest, TEST_TIMEOUT_DEFAULT) {
  function excepB (line 113) | void excepB() {
  function excepA (line 120) | void excepA() {
  function TIMED_TEST (line 131) | TIMED_TEST(ExceptionTests, DoubleExceptionTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 135) | TIMED_TEST(ExceptionTests, StringExceptionTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 139) | TIMED_TEST(ExceptionTests, CharStarExceptionTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 143) | TIMED_TEST(ExceptionTests, StdExceptionTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 148) | TIMED_TEST(ExceptionTests, SegfaultTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 152) | TIMED_TEST(ExceptionTests, SIGFPETest, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/guiTests.cpp
  function fileDialogTest (line 25) | void fileDialogTest() {
  function goptionpaneTest (line 32) | void goptionpaneTest() {
  function border (line 55) | static void border(GBufferedImage* img) {
  function gbufferedImageTest (line 71) | void gbufferedImageTest() {
  function gtableTest (line 174) | void gtableTest() {
  function radioButtonTest (line 256) | void radioButtonTest() {

FILE: Archived/Autograder_QtCreatorProject/src/test/imageDiffTests.cpp
  function amplifyContrast (line 19) | void amplifyContrast(GBufferedImage& image, int threshold = 0x01) {
  function pixelate (line 35) | void pixelate(GBufferedImage& image, int factor = 2) {
  function TIMED_TEST (line 86) | TIMED_TEST(ImageDiffTests, imageDiffLineOrderTest1, TEST_TIMEOUT_DEFAULT...
  function TIMED_TEST (line 102) | TIMED_TEST(ImageDiffTests, imageDiffLineOrderTest2, TEST_TIMEOUT_DEFAULT...
  function TIMED_TEST (line 116) | TIMED_TEST(ImageDiffTests, imageDiffLineOrderTest5, TEST_TIMEOUT_DEFAULT...

FILE: Archived/Autograder_QtCreatorProject/src/test/pipeTest.cpp
  function animationTest (line 11) | void animationTest() {
  function cinOutTest (line 34) | void cinOutTest() {
  function coutCerrMixTest (line 44) | void coutCerrMixTest() {
  function getIntegerTest (line 58) | void getIntegerTest() {
  function killProcessTest (line 95) | void killProcessTest() {
  function longStringTest (line 107) | void longStringTest() {
  function outputColorTest (line 119) | void outputColorTest() {

FILE: Archived/Autograder_QtCreatorProject/src/test/serverTest.cpp
  function serverTest (line 10) | void serverTest() {

FILE: Archived/Autograder_QtCreatorProject/src/test/stringTests.cpp
  function TIMED_TEST (line 17) | TIMED_TEST(StringTests, diffOutputFailTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 24) | TIMED_TEST(StringTests, stringToIntegerTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 30) | TIMED_TEST(StringTests, stringWithWeirdCharsTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 40) | TIMED_TEST(StringTests, stringToIntegerInvalidRadixTest, TEST_TIMEOUT_DE...

FILE: Archived/Autograder_QtCreatorProject/src/test/systemTests.cpp
  function TIMED_TEST (line 18) | TIMED_TEST(SystemTests, callExitTest, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 31) | TIMED_TEST(AssertionTests, passFirstFailSecond, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 36) | TIMED_TEST(AssertionTests, failFirstPassSecondFailThird, TEST_TIMEOUT_DE...
  function TIMED_TEST (line 42) | TIMED_TEST(AssertionTests, passFirstFailSecondPassThird, TEST_TIMEOUT_DE...
  function TIMED_TEST (line 48) | TIMED_TEST(AssertionTests, coutFlagsTest1, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 55) | TIMED_TEST(AssertionTests, coutFlagsTest2, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 62) | TIMED_TEST(AssertionTests, assertPointerPass, TEST_TIMEOUT_DEFAULT) {
  function TIMED_TEST (line 68) | TIMED_TEST(AssertionTests, assertPointerFail, TEST_TIMEOUT_DEFAULT) {

FILE: Archived/Autograder_QtCreatorProject/src/test/urlTests.cpp
  function urlstreamTest (line 10) | void urlstreamTest() {

FILE: Archived/JavaBackEnd/eclipseproject/doc/script.js
  function show (line 1) | function show(type)
  function updateTabs (line 16) | function updateTabs(type)

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/G3DRect.java
  class G3DRect (line 11) | public class G3DRect extends GRect {
    method G3DRect (line 16) | public G3DRect(double d, double d1) {
    method G3DRect (line 20) | public G3DRect(double d, double d1, double d2, double d3) {
    method G3DRect (line 24) | public G3DRect(double d, double d1, double d2, double d3, boolean flag) {
    method paint2d (line 47) | protected void paint2d(Graphics2D g) {
    method setRaised (line 57) | public void setRaised(boolean flag) {
    method isRaised (line 61) | public boolean isRaised() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GCanvas.java
  class GCanvas (line 97) | public class GCanvas extends JComponent
    method GCanvas (line 132) | public GCanvas() {
    method add (line 167) | @Override
    method add (line 193) | public final void add(Component comp, double x, double y) {
    method add (line 205) | public final void add(Component comp, GPoint pt) {
    method add (line 215) | public void add(GObject gobj) {
    method add (line 229) | public final void add(GObject gobj, double x, double y) {
    method add (line 241) | public final void add(GObject gobj, GPoint pt) {
    method clear (line 248) | public void clear() {
    method clear (line 260) | private void clear(BufferedImage img) {
    method conditionalRepaint (line 284) | protected void conditionalRepaint() {
    method conditionalRepaint (line 301) | protected void conditionalRepaint(int x, int y, int w, int h) {
    method diff (line 313) | public void diff(File file) {
    method diff (line 322) | public void diff(File file, boolean ignoreWindowSize) {
    method diff (line 390) | public void diff(String file) {
    method diff (line 399) | public void diff(String file, boolean ignoreWindowSize) {
    method dispatchMouseEvent (line 411) | protected void dispatchMouseEvent(MouseEvent e) {
    method draw (line 450) | public void draw(Shape shape) {
    method drawArc (line 468) | public void drawArc(Arc2D arc) {
    method drawArc (line 482) | public void drawArc(double x, double y, double width, double height, d...
    method drawLine (line 496) | public void drawLine(Line2D line) {
    method drawLine (line 510) | public void drawLine(double x1, double y1, double x2, double y2) {
    method drawOval (line 524) | public void drawOval(Ellipse2D oval) {
    method drawOval (line 538) | public void drawOval(double x, double y, double width, double height) {
    method drawPolarLine (line 552) | public GPoint drawPolarLine(double x0, double y0, double r, double the...
    method drawPolarLine (line 563) | public GPoint drawPolarLine(GPoint p0, double r, double theta) {
    method drawRect (line 570) | public void drawRect(double x, double y, double width, double height) {
    method drawRect (line 584) | public void drawRect(Rectangle2D rect) {
    method fill (line 598) | public void fill(Shape shape) {
    method fillArc (line 616) | public void fillArc(Arc2D arc) {
    method fillArc (line 632) | public void fillArc(double x, double y, double width, double height, d...
    method fillOval (line 648) | public void fillOval(Ellipse2D oval) {
    method fillOval (line 664) | public void fillOval(double x, double y, double width, double height) {
    method fillRect (line 680) | public void fillRect(double x, double y, double width, double height) {
    method fillRect (line 696) | public void fillRect(Rectangle2D rect) {
    method getAutoRepaintFlag (line 717) | public boolean getAutoRepaintFlag() {
    method getDrawingMode (line 721) | public int getDrawingMode() {
    method getElement (line 733) | @SuppressWarnings("unchecked")
    method getElementAt (line 749) | @SuppressWarnings("unchecked")
    method getElementAt (line 762) | @SuppressWarnings("unchecked")
    method getElementAt (line 787) | @SuppressWarnings("unchecked")
    method getElementCount (line 798) | public int getElementCount() {
    method getNativeArcFlag (line 815) | public boolean getNativeArcFlag() {
    method getOSG (line 822) | public Graphics2D getOSG() {
    method getPixelsAsString (line 837) | public String getPixelsAsString() {
    method getRGB (line 848) | public int getRGB(double x, double y) {
    method getRGB (line 855) | public int getRGB(int x, int y) {
    method handleResize (line 870) | private void handleResize() {
    method hasElementAt (line 910) | public boolean hasElementAt(double x, double y) {
    method hasElementAt (line 921) | public boolean hasElementAt(double... coords) {
    method hasElementAt (line 929) | public boolean hasElementAt(GPoint pt) {
    method hasOSG (line 936) | private boolean hasOSG() {
    method inBounds (line 943) | public boolean inBounds(int x, int y) {
    method isAntiAliasing (line 953) | public boolean isAntiAliasing() {
    method iterator (line 968) | public Iterator<GObject> iterator() {
    method iterator (line 986) | public Iterator<GObject> iterator(int direction) {
    method paintComponent (line 997) | @Override
    method paintPixelGrid (line 1040) | private void paintPixelGrid(Graphics g) {
    method paintPixelInfo (line 1059) | private void paintPixelInfo(Graphics g) {
    method remove (line 1091) | public void remove(Component comp) {
    method remove (line 1102) | public void remove(double x, double y) {
    method remove (line 1115) | public void remove(GObject gobj) {
    method remove (line 1126) | public void remove(GPoint pt) {
    method removeAll (line 1138) | public void removeAll() {
    method removeAll (line 1150) | public void removeAll(double x, double y) {
    method removeAll (line 1164) | public void removeAll(double... coords) {
    method removeAll (line 1185) | public void removeAll(GPoint pt) {
    method save (line 1196) | public void save(File file) {
    method save (line 1204) | public void save(String filename) {
    method sendBackward (line 1214) | protected void sendBackward(GObject gobj) {
    method sendForward (line 1225) | protected void sendForward(GObject gobj) {
    method sendToBack (line 1236) | protected void sendToBack(GObject gobj) {
    method sendToFront (line 1247) | protected void sendToFront(GObject gobj) {
    method setAntiAliasing (line 1256) | public void setAntiAliasing(boolean antialias) {
    method setAutoRepaintFlag (line 1287) | public void setAutoRepaintFlag(boolean state) {
    method setBackground (line 1291) | public void setBackground(Color color) {
    method setBorder (line 1298) | public void setBorder(Color color) {
    method setBorder (line 1305) | public void setBorder(Color color, int thickness) {
    method setColor (line 1309) | public void setColor(Color color) {
    method setColor (line 1313) | public void setColor(int rgb) {
    method setDrawingMode (line 1317) | public void setDrawingMode(int mode) {
    method setForeground (line 1329) | @Override
    method setForeground (line 1337) | public void setForeground(int rgb) {
    method setNativeArcFlag (line 1351) | public void setNativeArcFlag(boolean state) {
    method setOpaque (line 1366) | public void setOpaque(boolean flag) {
    method setPixelsFromString (line 1371) | public void setPixelsFromString(String base64) {
    method setRGB (line 1378) | public void setRGB(double x, double y, int rgb) {
    method setRGB (line 1383) | public void setRGB(double x, double y, int rgb, boolean repaint) {
    method setRGB (line 1388) | public void setRGB(int x, int y, int rgb) {
    method setRGB (line 1393) | public void setRGB(int x, int y, int rgb, boolean repaint) {
    method setShowPixelGrid (line 1416) | public void setShowPixelGrid(boolean show) {
    method setShowPixelInfo (line 1426) | public void setShowPixelInfo(boolean show) {
    method showDiffDialog (line 1446) | public void showDiffDialog() {
    method showDiffDialog (line 1455) | public void showDiffDialog(File directory) {
    method showDiffDialog (line 1473) | public void showDiffDialog(String directory) {
    method showSaveDialog (line 1481) | public File showSaveDialog() {
    method showSaveDialog (line 1490) | public File showSaveDialog(File directory) {
    method showSaveDialog (line 1525) | public File showSaveDialog(String directory) {
    method toImage (line 1532) | public BufferedImage toImage() {
    method toImage (line 1543) | public BufferedImage toImage(int width, int height) {
    method updateEnabledList (line 1561) | protected void updateEnabledList() {
    method createMouseEvent (line 1572) | static MouseEvent createMouseEvent(Object gobj, int eventID, MouseEven...
    class GCanvasListener (line 1579) | private class GCanvasListener implements MouseListener, MouseMotionLis...
      method componentHidden (line 1581) | public void componentHidden(ComponentEvent e) {
      method componentMoved (line 1585) | public void componentMoved(ComponentEvent e) {
      method componentResized (line 1589) | public void componentResized(ComponentEvent e) {
      method componentShown (line 1593) | public void componentShown(ComponentEvent e) {
      method mouseClicked (line 1598) | public void mouseClicked(MouseEvent e) {
      method mouseDragged (line 1602) | public void mouseDragged(MouseEvent e) {
      method mouseEntered (line 1610) | public void mouseEntered(MouseEvent e) {
      method mouseExited (line 1614) | public void mouseExited(MouseEvent e) {
      method mouseMoved (line 1618) | public void mouseMoved(MouseEvent e) {
      method mousePressed (line 1626) | public void mousePressed(MouseEvent e) {
      method mouseReleased (line 1631) | public void mouseReleased(MouseEvent e) {
      method mouseWheelMoved (line 1635) | public void mouseWheelMoved(MouseWheelEvent e) {
    class GMouseEvent (line 1640) | private static class GMouseEvent extends MouseEvent {
      method GMouseEvent (line 1649) | @SuppressWarnings("deprecation")
      method getSource (line 1661) | public Object getSource() {
      method getComponent (line 1669) | public Component getComponent() {
      method toString (line 1676) | public String toString() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GCanvasInterface.java
  type GCanvasInterface (line 12) | public interface GCanvasInterface {
    method add (line 13) | public void add(GObject gobj);
    method add (line 14) | public void add(GObject gobj, double x, double y);
    method add (line 15) | public void add(GObject gobj, GPoint pt);
    method add (line 16) | public void add(Component comp, double x, double y);
    method add (line 17) | public void add(Component comp, GPoint pt);
    method clear (line 18) | public void clear();
    method getBackground (line 19) | public Color getBackground();
    method getElementCount (line 20) | public int getElementCount();
    method getFont (line 21) | public Font getFont();
    method getElement (line 22) | public <T extends GObject> T getElement(int index);
    method getElementAt (line 23) | public <T extends GObject> T getElementAt(double x, double y);
    method getElementAt (line 24) | public <T extends GObject> T getElementAt(double... coords);
    method getElementAt (line 25) | public <T extends GObject> T getElementAt(GPoint pt);
    method getHeight (line 26) | public int getHeight();
    method getSize (line 27) | public Dimension getSize();
    method getWidth (line 28) | public int getWidth();
    method hasElementAt (line 29) | public boolean hasElementAt(double x, double y);
    method hasElementAt (line 30) | public boolean hasElementAt(double... coords);
    method hasElementAt (line 31) | public boolean hasElementAt(GPoint pt);
    method isAntiAliasing (line 32) | public boolean isAntiAliasing();
    method isOpaque (line 33) | public boolean isOpaque();
    method iterator (line 34) | public Iterator<GObject> iterator();
    method iterator (line 35) | public Iterator<GObject> iterator(int direction);
    method remove (line 36) | public void remove(double x, double y);
    method remove (line 37) | public void remove(GPoint pt);
    method remove (line 38) | public void remove(GObject gobj);
    method removeAll (line 39) | public void removeAll();
    method removeAll (line 40) | public void removeAll(double x, double y);
    method removeAll (line 41) | public void removeAll(double... coords);
    method removeAll (line 42) | public void removeAll(GPoint pt);
    method repaint (line 43) | public void repaint();
    method setAntiAliasing (line 44) | public void setAntiAliasing(boolean antialias);
    method setBackground (line 45) | public void setBackground(Color bg);
    method setFont (line 46) | public void setFont(Font font);
    method setOpaque (line 48) | public void setOpaque(boolean opaque);
    method setSize (line 49) | public void setSize(Dimension size);
    method setShowPixelInfo (line 51) | public void setShowPixelInfo(boolean show);
    method toImage (line 52) | public BufferedImage toImage();

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GCompound.java
  class GCompound (line 54) | public class GCompound extends GObject implements GContainer, GScalable,...
    method GCompound (line 73) | public GCompound() {
    method add (line 84) | public void add(GObject gobj) {
    method add (line 102) | public final void add(GObject gobj, double x, double y) {
    method add (line 114) | public final void add(GObject gobj, GPoint pt) {
    method areMouseListenersEnabled (line 126) | protected boolean areMouseListenersEnabled() {
    method contains (line 141) | public boolean contains(double x, double y) {
    method fireMouseListeners (line 151) | protected void fireMouseListeners(MouseEvent e) {
    method getBounds (line 197) | public GRectangle getBounds() {
    method getCanvasPoint (line 211) | public final GPoint getCanvasPoint(GPoint localPoint) {
    method getCanvasPoint (line 224) | public GPoint getCanvasPoint(double x, double y) {
    method getElement (line 242) | @SuppressWarnings("unchecked")
    method getElementAt (line 260) | @SuppressWarnings("unchecked")
    method getElementAt (line 274) | @SuppressWarnings("unchecked")
    method getElementCount (line 285) | public int getElementCount() {
    method getLocalPoint (line 298) | public GPoint getLocalPoint(double x, double y) {
    method getLocalPoint (line 316) | public final GPoint getLocalPoint(GPoint canvasPoint) {
    method iterator (line 331) | public Iterator<GObject> iterator() {
    method iterator (line 349) | public Iterator<GObject> iterator(int direction) {
    method markAsComplete (line 360) | public void markAsComplete() {
    method paint2d (line 382) | protected void paint2d(Graphics2D g) {
    method remove (line 400) | public void remove(GObject gobj) {
    method removeAll (line 414) | public void removeAll() {
    method scale (line 432) | public void scale(double sx, double sy) {
    method sendBackward (line 459) | protected void sendBackward(GObject gobj) {
    method sendForward (line 471) | protected void sendForward(GObject gobj) {
    method sendToBack (line 483) | protected void sendToBack(GObject gobj) {
    method sendToFront (line 495) | protected void sendToFront(GObject gobj) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GContainer.java
  type GContainer (line 35) | public interface GContainer {
    method add (line 52) | public void add(GObject gobj);
    method add (line 64) | public void add(GObject gobj, double x, double y);
    method add (line 74) | public void add(GObject gobj, GPoint pt);
    method remove (line 83) | public void remove(GObject gobj);
    method removeAll (line 91) | public void removeAll();
    method getElementCount (line 100) | public int getElementCount();
    method getElement (line 111) | public <T extends GObject> T getElement(int index);
    method getElementAt (line 125) | public <T extends GObject> T getElementAt(double x, double y);
    method getElementAt (line 137) | public <T extends GObject> T getElementAt(GPoint pt);

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GImage.java
  class GImage (line 60) | public class GImage extends GObject implements GResizable, GScalable {
    method GImage (line 81) | public GImage(Image image) {
    method GImage (line 104) | public GImage(String name) {
    method GImage (line 128) | public GImage(int[][] array) {
    method GImage (line 143) | public GImage(Image image, double x, double y) {
    method GImage (line 161) | public GImage(String name, double x, double y) {
    method GImage (line 186) | public GImage(int[][] array, double x, double y) {
    method createRGBPixel (line 200) | public static int createRGBPixel(int red, int green, int blue) {
    method createRGBPixel (line 216) | public static int createRGBPixel(int red, int green, int blue, int alp...
    method determineSize (line 223) | private void determineSize() {
    method fit (line 244) | public void fit(double width, double height) {
    method getAlpha (line 266) | public static int getAlpha(int pixel) {
    method getAWTBounds (line 276) | protected Rectangle getAWTBounds() {
    method getBlue (line 288) | public static int getBlue(int pixel) {
    method getBounds (line 298) | public GRectangle getBounds() {
    method getGreen (line 310) | public static int getGreen(int pixel) {
    method getImage (line 320) | public Image getImage() {
    method getRed (line 331) | public static int getRed(int pixel) {
    method getSize (line 341) | public GDimension getSize() {
    method inBounds (line 353) | public boolean inBounds(double x, double y) {
    method paint2d (line 388) | protected void paint2d(Graphics2D graphics2d) {
    method saveImage (line 413) | public void saveImage(File file) {
    method saveImage (line 426) | public void saveImage(String filename) {
    method setBounds (line 439) | public void setBounds(double x, double y, double width, double height) {
    method setBounds (line 452) | public final void setBounds(GRectangle bounds) {
    method setImage (line 464) | public void setImage(Image image) {
    method setImage (line 480) | public void setImage(String name) {
    method setSize (line 491) | public void setSize(double width, double height) {
    method setSize (line 504) | public final void setSize(GDimension size) {
    method scale (line 515) | public void scale(double sx, double sy) {
    method getPixelArray (line 527) | public int[][] getPixelArray() {
    method setPixelArray (line 536) | public void setPixelArray(int[][] pixels) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GIterator.java
  class GIterator (line 32) | class GIterator implements Iterator<GObject> {
    method GIterator (line 49) | public GIterator(GContainer container, int direction) {
    method hasNext (line 70) | public boolean hasNext() {
    method next (line 82) | public GObject next() {
    method nextElement (line 98) | public GObject nextElement() {
    method remove (line 109) | public void remove() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GLabel.java
  class GLabel (line 48) | public class GLabel extends GObject {
    method GLabel (line 73) | public GLabel(String str) {
    method GLabel (line 86) | public GLabel(String str, double x, double y) {
    method contains (line 99) | public boolean contains(double x, double y) {
    method getAscent (line 117) | public double getAscent() {
    method getBounds (line 127) | public GRectangle getBounds() {
    method getDescent (line 148) | public double getDescent() {
    method getFont (line 158) | public Font getFont() {
    method getFontMetrics (line 169) | public FontMetrics getFontMetrics() {
    method getHeight (line 183) | public double getHeight() {
    method getLabel (line 194) | public String getLabel() {
    method getText (line 205) | public String getText() {
    method getWidth (line 215) | public double getWidth() {
    method paint2d (line 225) | public void paint2d(Graphics2D g) {
    method paramString (line 235) | public String paramString() {
    method setBottomY (line 247) | @Override
    method setCenterLocation (line 261) | @Override
    method setCenterY (line 274) | @Override
    method setFont (line 290) | public void setFont(Font font) {
    method setFont (line 309) | public void setFont(String str) {
    method setLabel (line 321) | public void setLabel(String str) {
    method setText (line 334) | public void setText(String str) {
    method setTopY (line 346) | public void setTopY(double topY) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GLine.java
  class GLine (line 27) | public class GLine extends GObject implements GScalable {
    method GLine (line 54) | public GLine() {
    method GLine (line 64) | public GLine(double x0, double y0) {
    method GLine (line 84) | public GLine(double x0, double y0, double x1, double y1) {
    method GLine (line 93) | public GLine(GPoint p1, GPoint p2) {
    method GLine (line 100) | public GLine(Line2D line) {
    method GLine (line 107) | public GLine(Point p1, Point p2) {
    method contains (line 126) | public boolean contains(double x, double y) {
    method distanceSquared (line 139) | public static double distanceSquared(double x0, double y0, double x1, ...
    method getBounds (line 150) | public GRectangle getBounds() {
    method getEndPoint (line 163) | public GPoint getEndPoint() {
    method getStartPoint (line 177) | public GPoint getStartPoint() {
    method intersects (line 184) | public static boolean intersects(double x, double y, double x0, double...
    method paint2d (line 211) | public void paint2d(Graphics2D g) {
    method paramString (line 223) | public String paramString() {
    method scale (line 246) | public void scale(double sx, double sy) {
    method setEndPoint (line 263) | public void setEndPoint(double x, double y) {
    method setEndPointPolar (line 278) | public void setEndPointPolar(double r, double theta) {
    method setStartPoint (line 298) | public void setStartPoint(double x, double y) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GLineGroup.java
  class GLineGroup (line 23) | public class GLineGroup extends GObject implements Iterable<GPoint> {
    method GLineGroup (line 29) | public GLineGroup() {
    method GLineGroup (line 38) | public GLineGroup(double... coords) {
    method GLineGroup (line 50) | public GLineGroup(GPoint... points) {
    method add (line 62) | public void add(double x, double y) {
    method addAtOffset (line 69) | public void addAtOffset(double dx, double dy) {
    method addPolar (line 80) | public void addPolar(double r, double theta) {
    method add (line 91) | public void add(GPoint point) {
    method clear (line 102) | public void clear() {
    method contains (line 110) | @Override
    method first (line 132) | public GPoint first() {
    method getBounds (line 144) | @Override
    method isEmpty (line 168) | public boolean isEmpty() {
    method iterator (line 175) | public Iterator<GPoint> iterator() {
    method last (line 183) | public GPoint last() {
    method paint2d (line 193) | @Override
    method paramString (line 214) | public String paramString() {
    method remove (line 223) | public void remove(double x, double y) {
    method remove (line 230) | public void remove(GPoint point) {
    method setLocation (line 239) | @Override
    method size (line 255) | public int size() {
    method translate (line 262) | public void translate(double dx, double dy) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GMath.java
  class GMath (line 38) | public class GMath {
    method GMath (line 42) | private GMath() {
    method isBoolean (line 50) | public static boolean isBoolean(String s) {
    method isChar (line 58) | public static boolean isChar(String s) {
    method isDouble (line 66) | public static boolean isDouble(String s) {
    method isInteger (line 79) | public static boolean isInteger(String s) {
    method isLong (line 92) | public static boolean isLong(String s) {
    method round (line 109) | public static int round(double x) {
    method round (line 124) | public static double round(double x, int digitsAfterDecimal) {
    method sinDegrees (line 141) | public static double sinDegrees(double angle) {
    method cosDegrees (line 154) | public static double cosDegrees(double angle) {
    method tanDegrees (line 167) | public static double tanDegrees(double angle) {
    method toDegrees (line 181) | public static double toDegrees(double radians) {
    method toRadians (line 195) | public static double toRadians(double degrees) {
    method distance (line 211) | public static double distance(double x, double y) {
    method distance (line 231) | public static double distance(double x0, double y0, double x1, double ...
    method angle (line 252) | public static double angle(double x, double y) {
    method angle (line 275) | public static double angle(double x0, double y0, double x1, double y1) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GObject.java
  class GObject (line 43) | public abstract class GObject implements Cloneable, Serializable, GScala...
    method isAntiAliasing (line 46) | public static boolean isAntiAliasing() {
    method setAntiAliasing (line 50) | public static void setAntiAliasing(boolean value) {
    method GObject (line 73) | protected GObject() {
    method addActionListener (line 83) | public void addActionListener(ActionListener listener) {
    method addMouseListener (line 93) | public void addMouseListener(MouseListener listener) {
    method addMouseMotionListener (line 105) | public void addMouseMotionListener(MouseMotionListener listener) {
    method areMouseListenersEnabled (line 119) | protected boolean areMouseListenersEnabled() {
    method clone (line 128) | public Object clone() {
    method colorName (line 150) | public static String colorName(Color color) {
    method colorName (line 198) | public static String colorName(int colorRGB) {
    method colorNameFriendly (line 246) | public static String colorNameFriendly(Color color) {
    method colorNameFriendly (line 255) | public static String colorNameFriendly(int colorRGB) {
    method contains (line 274) | public boolean contains(double x, double y) {
    method contains (line 286) | public final boolean contains(GPoint pt) {
    method createTransformedGraphics (line 297) | protected Graphics2D createTransformedGraphics(Graphics g) {
    method fireActionEvent (line 324) | public void fireActionEvent(ActionEvent e) {
    method fireActionEvent (line 337) | public void fireActionEvent(String actionCommand) {
    method fireMouseListeners (line 348) | protected void fireMouseListeners(MouseEvent e) {
    method getBottomY (line 394) | public double getBottomY() {
    method getBounds (line 412) | public abstract GRectangle getBounds();
    method getCenterLocation (line 419) | public final GPoint getCenterLocation() {
    method getCenterX (line 428) | public double getCenterX() {
    method getCenterY (line 437) | public double getCenterY() {
    method getColor (line 447) | public Color getColor() {
    method getComponent (line 470) | protected Component getComponent() {
    method getHeight (line 485) | public double getHeight() {
    method getLineWidth (line 493) | public double getLineWidth() {
    method getLocation (line 503) | public GPoint getLocation() {
    method getMatrix (line 512) | protected AffineTransform getMatrix() {
    method getObjectColor (line 523) | protected Color getObjectColor() {
    method getParent (line 534) | public GContainer getParent() {
    method getRightX (line 544) | public double getRightX() {
    method getSize (line 554) | public GDimension getSize() {
    method getWidth (line 566) | public double getWidth() {
    method getX (line 576) | public double getX() {
    method getY (line 586) | public double getY() {
    method intersects (line 596) | public boolean intersects(GObject obj) {
    method isVisible (line 606) | public boolean isVisible() {
    method move (line 617) | public void move(double dx, double dy) {
    method movePolar (line 632) | public final void movePolar(double r, double theta) {
    method paint (line 645) | public final void paint(Graphics g) {
    method paint2d (line 663) | protected abstract void paint2d(Graphics2D g);
    method paramString (line 670) | protected String paramString() {
    method pause (line 701) | public void pause(double milliseconds) {
    method removeActionListener (line 711) | public void removeActionListener(ActionListener listener) {
    method removeMouseListener (line 721) | public void removeMouseListener(MouseListener listener) {
    method removeMouseMotionListener (line 731) | public void removeMouseMotionListener(MouseMotionListener listener) {
    method repaint (line 740) | protected void repaint() {
    method rotate (line 755) | public void rotate(double degrees) {
    method scale (line 769) | public void scale(double sx, double sy) {
    method scale (line 782) | public final void scale(double sf) {
    method sendBackward (line 792) | public void sendBackward() {
    method sendForward (line 821) | public void sendForward() {
    method sendToBack (line 851) | public void sendToBack() {
    method sendToFront (line 881) | public void sendToFront() {
    method setBottomY (line 910) | public void setBottomY(double bottomY) {
    method setCenterLocation (line 921) | public void setCenterLocation(double centerX, double centerY) {
    method setCenterLocation (line 931) | public final void setCenterLocation(GPoint pt) {
    method setCenterX (line 941) | public void setCenterX(double centerX) {
    method setCenterY (line 951) | public void setCenterY(double centerY) {
    method setColor (line 961) | public void setColor(Color color) {
    method setLineWidth (line 971) | public void setLineWidth(double lineWidth) {
    method setLocation (line 983) | public void setLocation(double x, double y) {
    method setLocation (line 996) | public final void setLocation(GPoint pt) {
    method setParent (line 1011) | public void setParent(GContainer parent) {
    method setRightX (line 1027) | public final void setRightX(double rightX) {
    method setVisible (line 1037) | public void setVisible(boolean visible) {
    method setX (line 1048) | public final void setX(double x) {
    method setY (line 1058) | public final void setY(double y) {
    method start (line 1068) | protected void start() {
    method start (line 1080) | protected void start(String[] args) {
    method toString (line 1099) | public String toString() {
    method updateEnabledList (line 1112) | protected void updateEnabledList() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GObjectList.java
  class GObjectList (line 20) | class GObjectList implements Serializable {
    method GObjectList (line 32) | public GObjectList(GContainer container) {
    method add (line 43) | public synchronized void add(GObject gobj) {
    method remove (line 56) | public synchronized void remove(GObject gobj) {
    method removeAll (line 66) | public synchronized void removeAll() {
    method getElementCount (line 75) | public int getElementCount() {
    method getElement (line 84) | public GObject getElement(int index) {
    method getElementAt (line 94) | public synchronized GObject getElementAt(double x, double y, boolean r...
    method sendToFront (line 108) | public synchronized void sendToFront(GObject gobj) {
    method sendToBack (line 121) | public synchronized void sendToBack(GObject gobj) {
    method sendForward (line 134) | public synchronized void sendForward(GObject gobj) {
    method sendBackward (line 147) | public synchronized void sendBackward(GObject gobj) {
    method getBounds (line 159) | public synchronized GRectangle getBounds() {
    method contains (line 176) | public synchronized boolean contains(double x, double y) {
    method mapPaint (line 188) | public synchronized void mapPaint(Graphics g) {
    method areMouseListenersEnabled (line 200) | public synchronized boolean areMouseListenersEnabled() {
    method updateEnabledList (line 213) | public synchronized void updateEnabledList() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GOval.java
  class GOval (line 15) | public class GOval extends GObject implements GFillable, GResizable {
    method GOval (line 23) | public GOval() {
    method GOval (line 27) | public GOval(double width, double height) {
    method GOval (line 31) | public GOval(double x, double y, double width, double height) {
    method GOval (line 37) | public GOval(Ellipse2D oval) {
    method getBounds (line 41) | public GRectangle getBounds() {
    method contains (line 52) | public boolean contains(double x, double y) {
    method paint2d (line 64) | protected void paint2d(Graphics2D g2) {
    method setFilled (line 75) | public void setFilled(boolean flag) {
    method isFilled (line 80) | public boolean isFilled() {
    method setFillColor (line 84) | public void setFillColor(Color color) {
    method getFillColor (line 90) | public Color getFillColor() {
    method setSize (line 94) | public void setSize(double width, double height) {
    method setSize (line 105) | public final void setSize(GDimension gdimension) {
    method getSize (line 109) | public GDimension getSize() {
    method setBounds (line 113) | public void setBounds(double x, double y, double width, double height) {
    method setBounds (line 124) | public final void setBounds(GRectangle grectangle) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GPoint.java
  class GPoint (line 41) | public class GPoint implements Serializable {
    method GPoint (line 49) | public GPoint() {
    method GPoint (line 63) | public GPoint(double x, double y) {
    method GPoint (line 76) | public GPoint(GPoint p) {
    method GPoint (line 89) | public GPoint(Point p) {
    method getX (line 100) | public double getX() {
    method getY (line 111) | public double getY() {
    method setLocation (line 126) | public void setLocation(double x, double y) {
    method setLocation (line 139) | public void setLocation(GPoint p) {
    method getLocation (line 151) | public GPoint getLocation() {
    method translate (line 166) | public void translate(double dx, double dy) {
    method toPoint (line 179) | public Point toPoint() {
    method hashCode (line 194) | public int hashCode() {
    method equals (line 214) | public boolean equals(Object obj) {
    method equals (line 224) | public boolean equals(double x, double y) {
    method toString (line 238) | public String toString() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GRectangle.java
  class GRectangle (line 40) | public class GRectangle implements Serializable {
    method GRectangle (line 48) | public GRectangle() {
    method GRectangle (line 62) | public GRectangle(double x, double y, double width, double height) {
    method GRectangle (line 77) | public GRectangle(double width, double height) {
    method GRectangle (line 89) | public GRectangle(GPoint pt, GDimension size) {
    method GRectangle (line 100) | public GRectangle(GPoint pt) {
    method GRectangle (line 111) | public GRectangle(GDimension size) {
    method GRectangle (line 122) | public GRectangle(GRectangle r) {
    method getX (line 133) | public double getX() {
    method getY (line 144) | public double getY() {
    method getWidth (line 155) | public double getWidth() {
    method getHeight (line 166) | public double getHeight() {
    method setBounds (line 180) | public void setBounds(double x, double y, double width, double height) {
    method setBounds (line 195) | public void setBounds(GPoint pt, GDimension size) {
    method setBounds (line 206) | public void setBounds(GRectangle bounds) {
    method getBounds (line 217) | public GRectangle getBounds() {
    method setLocation (line 230) | public void setLocation(double x, double y) {
    method setLocation (line 242) | public void setLocation(GPoint pt) {
    method getLocation (line 253) | public GPoint getLocation() {
    method translate (line 266) | public void translate(double dx, double dy) {
    method setSize (line 279) | public void setSize(double width, double height) {
    method setSize (line 291) | public void setSize(GDimension size) {
    method getSize (line 301) | public GDimension getSize() {
    method grow (line 314) | public void grow(double dx, double dy) {
    method isEmpty (line 328) | public boolean isEmpty() {
    method contains (line 342) | public boolean contains(double x, double y) {
    method contains (line 355) | public boolean contains(GPoint pt) {
    method intersects (line 368) | public boolean intersects(GRectangle r2) {
    method intersection (line 386) | public GRectangle intersection(GRectangle r2) {
    method union (line 404) | public GRectangle union(GRectangle r2) {
    method add (line 423) | public void add(GRectangle r) {
    method add (line 445) | public void add(double x, double y) {
    method toRectangle (line 465) | public Rectangle toRectangle() {
    method hashCode (line 481) | public int hashCode() {
    method equals (line 502) | public boolean equals(Object obj) {
    method toString (line 520) | public String toString() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GResizable.java
  type GResizable (line 28) | public interface GResizable {
    method setSize (line 38) | public void setSize(double width, double height);
    method setSize (line 48) | public void setSize(GDimension size);
    method setBounds (line 60) | public void setBounds(double x, double y, double width, double height);
    method setBounds (line 70) | public void setBounds(GRectangle bounds);

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GScalable.java
  type GScalable (line 28) | public interface GScalable {
    method scale (line 38) | public void scale(double sx, double sy);
    method scale (line 48) | public void scale(double sf);

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/graphics/GraphicsUtils.java
  class GraphicsUtils (line 13) | public final class GraphicsUtils {
    method GraphicsUtils (line 14) | private GraphicsUtils() {
    method printGraphicsDebugInfo (line 18) | public static void printGraphicsDebugInfo(Graphics g) {
    method setAntialiasingDefault (line 24) | public static void setAntialiasingDefault(Component comp) {
    method setAntialiasing (line 30) | public static void setAntialiasing(Component comp, boolean antialiasin...
    method setAntialiasingDefault (line 36) | public static void setAntialiasingDefault(Graphics g) {
    method setAntialiasing (line 40) | public static void setAntialiasing(Graphics g, boolean antialiasing) {
    method setAntialiasingDefault (line 54) | public static void setAntialiasingDefault(Image image) {
    method setAntialiasing (line 60) | public static void setAntialiasing(Image image, boolean antialiasing) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/DoubleField.java
  class DoubleField (line 47) | public class DoubleField extends JTextField {
    method DoubleField (line 56) | public DoubleField() {
    method DoubleField (line 68) | public DoubleField(double value) {
    method DoubleField (line 82) | public DoubleField(double low, double high) {
    method DoubleField (line 97) | public DoubleField(double value, double low, double high) {
    method DoubleField (line 107) | private DoubleField(String str, double low, double high) {
    method getValue (line 128) | public double getValue() {
    method setValue (line 175) | public void setValue(double d) {
    method getFormat (line 187) | public String getFormat() {
    method setFormat (line 202) | public void setFormat(String format) {
    method setExceptionOnError (line 237) | public void setExceptionOnError(boolean flag) {
    method getExceptionOnError (line 249) | public boolean getExceptionOnError() {
    method getPreferredSize (line 258) | public Dimension getPreferredSize() {
    method defaultFormat (line 270) | private String defaultFormat(double d) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/Event.java
  class Event (line 8) | @SuppressWarnings("deprecation")
    method fire (line 11) | public void fire() {
    method fire (line 16) | public void fire(T arg) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/IntField.java
  class IntField (line 47) | public class IntField extends JTextField {
    method IntField (line 56) | public IntField() {
    method IntField (line 68) | public IntField(int value) {
    method IntField (line 82) | public IntField(int low, int high) {
    method IntField (line 97) | public IntField(int value, int low, int high) {
    method IntField (line 107) | private IntField(String str, int low, int high) {
    method getValue (line 128) | public int getValue() {
    method setValue (line 175) | public void setValue(int n) {
    method getFormat (line 187) | public String getFormat() {
    method setFormat (line 200) | public void setFormat(String format) {
    method setExceptionOnError (line 235) | public void setExceptionOnError(boolean flag) {
    method getExceptionOnError (line 247) | public boolean getExceptionOnError() {
    method getPreferredSize (line 256) | public Dimension getPreferredSize() {
    method defaultFormat (line 268) | private String defaultFormat(int n) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/JButtonGroup.java
  class JButtonGroup (line 14) | public class JButtonGroup extends JPanel implements Iterable<JRadioButto...
    method JButtonGroup (line 24) | public JButtonGroup() {
    method JButtonGroup (line 28) | public JButtonGroup(String... items) {
    method JButtonGroup (line 32) | public JButtonGroup(ActionListener listener, String... items) {
    method addActionListener (line 36) | public void addActionListener(ActionListener listener) {
    method getActionListeners (line 51) | public ActionListener[] getActionListeners() {
    method removeActionListener (line 61) | public void removeActionListener(ActionListener listener) {
    method addAll (line 67) | public void addAll(ActionListener listener, String... items) {
    method add (line 76) | @Override
    method add (line 86) | @Override
    method add (line 91) | @Override
    method add (line 96) | public void add(JRadioButton button) {
    method add (line 104) | public AbstractButton add(String text) {
    method clear (line 110) | public void clear() {
    method getButtonCount (line 116) | public int getButtonCount() {
    method getSelectedButton (line 120) | public JRadioButton getSelectedButton() {
    method getSelectedText (line 129) | public String getSelectedText() {
    method isEmpty (line 138) | public boolean isEmpty() {
    method isSelected (line 142) | public boolean isSelected(String text) {
    method isVertical (line 147) | public boolean isVertical() {
    method iterator (line 151) | public Iterator<JRadioButton> iterator() {
    method remove (line 155) | @Override
    method remove (line 164) | public void remove(JRadioButton button) {
    method remove (line 175) | public void remove(String text) {
    method removeAll (line 186) | @Override
    method setVertical (line 191) | public void setVertical(boolean vertical) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/JFontChooser.java
  class JFontChooser (line 33) | @SuppressWarnings("rawtypes")
    method JFontChooser (line 82) | public JFontChooser() {
    method JFontChooser (line 86) | public JFontChooser(int[] fontSizes) {
    method JFontChooser (line 101) | public JFontChooser(String[] fontSizeStrings) {
    method init (line 105) | private void init(String[] fontSizeStrings) {
    method getFontFamilyTextField (line 131) | public JTextField getFontFamilyTextField() {
    method getFontStyleTextField (line 144) | public JTextField getFontStyleTextField() {
    method getFontSizeTextField (line 156) | public JTextField getFontSizeTextField() {
    method getFontFamilyList (line 168) | @SuppressWarnings("unchecked")
    method getFontStyleList (line 181) | @SuppressWarnings("unchecked")
    method getFontSizeList (line 194) | @SuppressWarnings("unchecked")
    method getSelectedFontFamily (line 214) | public String getSelectedFontFamily() {
    method getSelectedFontStyle (line 231) | public int getSelectedFontStyle() {
    method getSelectedFontSize (line 243) | public int getSelectedFontSize() {
    method getSelectedFont (line 267) | public Font getSelectedFont() {
    method setSelectedFontFamily (line 280) | public void setSelectedFontFamily(String name) {
    method setSelectedFontStyle (line 304) | public void setSelectedFontStyle(int style) {
    method setSelectedFontSize (line 322) | public void setSelectedFontSize(int size) {
    method setSelectedFont (line 343) | public void setSelectedFont(Font font) {
    method getVersionString (line 349) | public String getVersionString() {
    method showDialog (line 364) | public int showDialog(Component parent) {
    class ListSelectionHandler (line 380) | protected class ListSelectionHandler implements ListSelectionListener {
      method ListSelectionHandler (line 383) | ListSelectionHandler(JTextComponent textComponent) {
      method valueChanged (line 387) | public void valueChanged(ListSelectionEvent e) {
    class TextFieldFocusHandlerForTextSelection (line 404) | protected class TextFieldFocusHandlerForTextSelection extends FocusAda...
      method TextFieldFocusHandlerForTextSelection (line 407) | public TextFieldFocusHandlerForTextSelection(JTextComponent textComp...
      method focusGained (line 411) | public void focusGained(FocusEvent e) {
      method focusLost (line 415) | public void focusLost(FocusEvent e) {
    class TextFieldKeyHandlerForListSelectionUpDown (line 421) | protected class TextFieldKeyHandlerForListSelectionUpDown extends KeyA...
      method TextFieldKeyHandlerForListSelectionUpDown (line 424) | public TextFieldKeyHandlerForListSelectionUpDown(JList list) {
      method keyPressed (line 428) | public void keyPressed(KeyEvent e) {
    class ListSearchTextFieldDocumentHandler (line 452) | protected class ListSearchTextFieldDocumentHandler implements Document...
      method ListSearchTextFieldDocumentHandler (line 455) | public ListSearchTextFieldDocumentHandler(JList targetList) {
      method insertUpdate (line 459) | public void insertUpdate(DocumentEvent e) {
      method removeUpdate (line 463) | public void removeUpdate(DocumentEvent e) {
      method changedUpdate (line 467) | public void changedUpdate(DocumentEvent e) {
      method update (line 471) | private void update(DocumentEvent event) {
      class ListSelector (line 496) | public class ListSelector implements Runnable {
        method ListSelector (line 499) | public ListSelector(int index) {
        method run (line 503) | public void run() {
    class DialogOKAction (line 509) | protected class DialogOKAction extends AbstractAction {
      method DialogOKAction (line 513) | protected DialogOKAction(JDialog dialog) {
      method actionPerformed (line 520) | public void actionPerformed(ActionEvent e) {
    class DialogCancelAction (line 526) | protected class DialogCancelAction extends AbstractAction {
      method DialogCancelAction (line 530) | protected DialogCancelAction(JDialog dialog) {
      method actionPerformed (line 537) | public void actionPerformed(ActionEvent e) {
    method createDialog (line 543) | protected JDialog createDialog(Component parent) {
    method updateSampleFont (line 580) | protected void updateSampleFont() {
    method getFontFamilyPanel (line 585) | protected JPanel getFontFamilyPanel() {
    method getFontStylePanel (line 614) | protected JPanel getFontStylePanel() {
    method getFontSizePanel (line 642) | protected JPanel getFontSizePanel() {
    method getSamplePanel (line 672) | protected JPanel getSamplePanel() {
    method getSampleTextField (line 687) | protected JTextField getSampleTextField() {
    method getFontFamilies (line 698) | protected String[] getFontFamilies() {
    method getFontStyleNames (line 706) | protected String[] getFontStyleNames() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/JListOptionPane.java
  class JListOptionPane (line 29) | public class JListOptionPane extends JDialog implements ActionListener {
    method showInputDialog (line 33) | public static int showInputDialog(Frame frame, String message, String ...
    method showInputDialog (line 40) | public static int showInputDialog(Frame frame, String message, String ...
    method JListOptionPane (line 56) | public JListOptionPane(Frame frame, Iterable<String> items) {
    method JListOptionPane (line 60) | public JListOptionPane(Frame frame, String message, Iterable<String> i...
    method JListOptionPane (line 64) | public JListOptionPane(Frame frame, String message, String title, Stri...
    method JListOptionPane (line 68) | @SuppressWarnings({ "unchecked", "rawtypes" })
    method actionPerformed (line 121) | public void actionPerformed(ActionEvent e) {
    method getSelectedIndex (line 132) | public int getSelectedIndex() {
    method getSelectedValue (line 136) | public Object getSelectedValue() {
    method getSelectedValues (line 140) | @SuppressWarnings("deprecation")
    method hasSelectedValue (line 145) | public boolean hasSelectedValue() {
    method pressedOk (line 149) | public boolean pressedOk() {
    method setMultipleSelection (line 153) | public void setMultipleSelection(boolean enabled) {
    class ListOptionPaneListSelectionListener (line 161) | private class ListOptionPaneListSelectionListener implements ListSelec...
      method valueChanged (line 162) | public void valueChanged(ListSelectionEvent arg0) {
    class ListOptionPaneKeyListener (line 177) | private class ListOptionPaneKeyListener extends KeyAdapter {
      method keyPressed (line 178) | public void keyPressed(KeyEvent event) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/JPlaceholderTextField.java
  class JPlaceholderTextField (line 23) | public class JPlaceholderTextField extends JTextField {
    method JPlaceholderTextField (line 27) | public JPlaceholderTextField() {
    method JPlaceholderTextField (line 31) | public JPlaceholderTextField(final Document pDoc, final String pText, ...
    method JPlaceholderTextField (line 35) | public JPlaceholderTextField(final int pColumns) {
    method JPlaceholderTextField (line 39) | public JPlaceholderTextField(final String pText) {
    method JPlaceholderTextField (line 43) | public JPlaceholderTextField(final String pText, final int pColumns) {
    method getPlaceholder (line 47) | public String getPlaceholder() {
    method getValueAsDouble (line 51) | public double getValueAsDouble() {
    method getValueAsInt (line 55) | public int getValueAsInt() {
    method getValueAsInteger (line 59) | public int getValueAsInteger() {
    method paintComponent (line 63) | @Override
    method setPlaceholder (line 80) | public void setPlaceholder(final String s) {
    method setValue (line 84) | public void setValue(double value) {
    method setValue (line 88) | public void setValue(int value) {
    method setValue (line 92) | public void setValue(long value) {
    method valueIsDouble (line 96) | public boolean valueIsDouble() {
    method valueIsInt (line 100) | public boolean valueIsInt() {
    method valueIsInteger (line 104) | public boolean valueIsInteger() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/JStringList.java
  class JStringList (line 32) | @SuppressWarnings("rawtypes")
    method JStringList (line 42) | @SuppressWarnings("unchecked")
    method addActionListener (line 58) | public void addActionListener(ActionListener listener) {
    method addItem (line 70) | public void addItem(String s) {
    method addItem (line 80) | @SuppressWarnings("unchecked")
    method addItems (line 92) | public void addItems(String[] items) {
    method addItems (line 109) | public void addItems(String[] items, Color[] colors) {
    method clear (line 121) | public void clear() {
    method getActionCommand (line 132) | public String getActionCommand() {
    method getActionListeners (line 142) | public ActionListener[] getActionListeners() {
    method getColor (line 152) | public Color getColor(int index) {
    method getItem (line 162) | public String getItem(int index) {
    method getItemCount (line 171) | public int getItemCount() {
    method getModel (line 179) | public DefaultListModel getModel() {
    method getSelectedValue (line 187) | public String getSelectedValue() {
    method getSelectedValueColor (line 200) | public Color getSelectedValueColor() {
    method removeActionListener (line 216) | public void removeActionListener(ActionListener listener) {
    method removeItem (line 229) | public void removeItem(int index) {
    method removeItem (line 241) | public void removeItem(String s) {
    method setActionCommand (line 259) | public void setActionCommand(String actionCommand) {
    method setColor (line 271) | @SuppressWarnings("unchecked")
    method setColors (line 288) | public void setColors(Color[] colors) {
    method setItem (line 304) | @SuppressWarnings("unchecked")
    method setItem (line 318) | @SuppressWarnings("unchecked")
    method setItems (line 331) | public void setItems(String[] items, Color[] colors) {
    method ensureNotNull (line 340) | private void ensureNotNull(Object... args) {
    method fireActionPerformed (line 351) | private void fireActionPerformed() {
    method stripHTML (line 364) | private String stripHTML(String s) {
    method toRgbString (line 371) | private String toRgbString(Color color) {
    method wrapWithColor (line 379) | private String wrapWithColor(String s, Color c) {
    class JStringListSelectionListener (line 388) | private class JStringListSelectionListener implements ListSelectionLis...
      method valueChanged (line 389) | public void valueChanged(ListSelectionEvent event) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/gui/TableLayout.java
  class TableLayout (line 97) | public class TableLayout implements LayoutManager2, Serializable {
    method TableLayout (line 136) | public TableLayout() {
    method TableLayout (line 149) | public TableLayout(int rows, int columns) {
    method TableLayout (line 164) | public TableLayout(int rows, int columns, int hgap, int vgap) {
    method setColumnCount (line 184) | public void setColumnCount(int columns) {
    method getColumnCount (line 196) | public int getColumnCount() {
    method setRowCount (line 207) | public void setRowCount(int rows) {
    method getRowCount (line 219) | public int getRowCount() {
    method setHorizontalAlignment (line 232) | public void setHorizontalAlignment(int align) {
    method getHorizontalAlignment (line 244) | public int getHorizontalAlignment() {
    method setVerticalAlignment (line 257) | public void setVerticalAlignment(int align) {
    method getVerticalAlignment (line 269) | public int getVerticalAlignment() {
    method setDefaultFill (line 282) | public void setDefaultFill(int fill) {
    method getDefaultFill (line 294) | public int getDefaultFill() {
    method setHgap (line 305) | public void setHgap(int pixels) {
    method getHgap (line 317) | public int getHgap() {
    method setVgap (line 328) | public void setVgap(int pixels) {
    method getVgap (line 340) | public int getVgap() {
    method setStrictGridBagModel (line 369) | public void setStrictGridBagModel(boolean flag) {
    method isStrictGridBagModel (line 383) | public boolean isStrictGridBagModel() {
    method setConstraints (line 396) | public void setConstraints(Component comp, GridBagConstraints constrai...
    method setConstraints (line 410) | public void setConstraints(Component comp, String constraints) {
    method getConstraints (line 425) | public TableConstraints getConstraints(Component comp) {
    method addLayoutComponent (line 440) | public void addLayoutComponent(String constraints, Component comp) {
    method removeLayoutComponent (line 451) | public void removeLayoutComponent(Component comp) {
    method preferredLayoutSize (line 465) | public Dimension preferredLayoutSize(Container target) {
    method minimumLayoutSize (line 479) | public Dimension minimumLayoutSize(Container target) {
    method layoutContainer (line 491) | public void layoutContainer(Container target) {
    method addLayoutComponent (line 505) | public void addLayoutComponent(Component comp, Object constraints) {
    method maximumLayoutSize (line 531) | public Dimension maximumLayoutSize(Container target) {
    method getLayoutAlignmentX (line 544) | public float getLayoutAlignmentX(Container target) {
    method getLayoutAlignmentY (line 557) | public float getLayoutAlignmentY(Container target) {
    method invalidateLayout (line 568) | public synchronized void invalidateLayout(Container target) {
    method toString (line 593) | public String toString() {
    method lookupConstraints (line 610) | protected GridBagConstraints lookupConstraints(Component comp) {
    method lookupConstraints (line 627) | protected TableConstraints lookupConstraints(Component comp, Container...
    method getMinimumComponentSize (line 644) | private Dimension getMinimumComponentSize(Component comp) {
    method getPreferredComponentSize (line 659) | private Dimension getPreferredComponentSize(Component comp) {
    method isScrollbar (line 668) | private boolean isScrollbar(Component comp) {
    method getMinimumScrollbarSize (line 677) | private Dimension getMinimumScrollbarSize(Component comp) {
    method processLayout (line 701) | private Dimension processLayout(Container target, int caller) {
    method lockedProcessLayout (line 711) | private synchronized Dimension lockedProcessLayout(Container target, i...
    method computeLayoutTable (line 878) | private void computeLayoutTable(Container target) {
    method computeCellBounds (line 998) | private Rectangle computeCellBounds(Rectangle enclosure, Dimension psi...
    method setMaxProperty (line 1037) | private void setMaxProperty(String key, int value) {
    method setMaxProperty (line 1046) | private void setMaxProperty(String key, double value) {
    method setIntProperty (line 1054) | private void setIntProperty(String key, int value) {
    method getIntProperty (line 1063) | private int getIntProperty(String key) {
    method setDoubleProperty (line 1073) | private void setDoubleProperty(String key, double value) {
    method getDoubleProperty (line 1082) | private double getDoubleProperty(String key) {
    method getFirstAvailableColumn (line 1094) | private int getFirstAvailableColumn(int[] unfinishedSpans) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/io/ConsoleModel.java
  type ConsoleModel (line 11) | public interface ConsoleModel {
    method setConsole (line 13) | public abstract void setConsole(IOConsole ioconsole);
    method getConsole (line 15) | public abstract IOConsole getConsole();
    method print (line 17) | public abstract void print(String s, int i);
    method readLine (line 19) | public abstract String readLine();
    method setInputScript (line 21) | public abstract void setInputScript(BufferedReader bufferedreader);
    method getInputScript (line 23) | public abstract BufferedReader getInputScript();
    method clear (line 25) | public abstract void clear();
    method getText (line 27) | public abstract String getText();
    method getText (line 29) | public abstract String getText(int i, int j);
    method getLength (line 31) | public abstract int getLength();
    method getConsolePane (line 33) | public abstract Component getConsolePane();
    method getTextPane (line 35) | public abstract Component getTextPane();
    method cut (line 37) | public abstract void cut();
    method copy (line 39) | public abstract void copy();
    method paste (line 41) | public abstract void paste();
    method selectAll (line 43) | public abstract void selectAll();
    method isPointSelection (line 45) | public abstract boolean isPointSelection();
    method print (line 47) | public abstract void print(PrintJob printjob);
    method setInputStyle (line 49) | public abstract void setInputStyle(int i);
    method setInputColor (line 51) | public abstract void setInputColor(Color color);
    method setErrorStyle (line 53) | public abstract void setErrorStyle(int i);
    method setErrorColor (line 55) | public abstract void setErrorColor(Color color);
    method requestFocus (line 57) | public abstract void requestFocus();
    method setMenuBar (line 59) | public abstract void setMenuBar(ProgramMenuBar programmenubar);

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/io/IOConsole.java
  class IOConsole (line 21) | public class IOConsole extends Container implements IOModel {
    method IOConsole (line 26) | public IOConsole() {
    method clear (line 45) | public void clear() {
    method getConsoleModel (line 49) | public ConsoleModel getConsoleModel() {
    method print (line 53) | public void print(String paramString) {
    method print (line 61) | public final void print(boolean paramBoolean) {
    method print (line 65) | public final void print(char paramChar) {
    method print (line 69) | public final void print(double paramDouble) {
    method print (line 73) | public final void print(float paramFloat) {
    method print (line 77) | public final void print(int paramInt) {
    method print (line 81) | public final void print(long paramLong) {
    method print (line 85) | public final void print(Object paramObject) {
    method println (line 89) | public void println() {
    method println (line 97) | public void println(String paramString) {
    method println (line 105) | public final void println(boolean paramBoolean) {
    method println (line 109) | public final void println(char paramChar) {
    method println (line 113) | public final void println(double paramDouble) {
    method println (line 117) | public final void println(float paramFloat) {
    method println (line 121) | public final void println(int paramInt) {
    method println (line 125) | public final void println(long paramLong) {
    method println (line 129) | public final void println(Object paramObject) {
    method showErrorMessage (line 133) | public void showErrorMessage(String paramString) {
    method readLine (line 138) | public final String readLine() {
    method readLine (line 142) | public String readLine(String paramString) {
    method readInt (line 160) | public final int readInt() {
    method readInt (line 164) | public final int readInt(int paramInt1, int paramInt2) {
    method readInt (line 168) | public final int readInt(String paramString) {
    method readInt (line 172) | public int readInt(String paramString, int paramInt1, int paramInt2) {
    method setReadIntDefaultPrompt (line 193) | protected void setReadIntDefaultPrompt(String prompt) {
    method setReadIntRepromptMessage (line 197) | protected void setReadIntRepromptMessage(String message) {
    method readDouble (line 201) | public final double readDouble() {
    method readDouble (line 206) | public final double readDouble(double paramDouble1, double paramDouble...
    method readDouble (line 210) | public final double readDouble(String paramString) {
    method readDouble (line 215) | public double readDouble(String paramString, double paramDouble1,
    method setEcho (line 237) | public void setEcho(boolean echo) {
    method setReadDoubleDefaultPrompt (line 241) | protected void setReadDoubleDefaultPrompt(String prompt) {
    method setReadDoubleRepromptMessage (line 245) | protected void setReadDoubleRepromptMessage(String message) {
    method readBoolean (line 249) | public final boolean readBoolean() {
    method readBoolean (line 253) | public final boolean readBoolean(String paramString) {
    method readBoolean (line 257) | public boolean readBoolean(String paramString1, String paramString2,
    method setReadBooleanRepromptMessage (line 280) | protected void setReadBooleanRepromptMessage(String message) {
    method appendSpace (line 284) | protected String appendSpace(String s) {
    method getReader (line 292) | public BufferedReader getReader() {
    method getWriter (line 300) | public PrintWriter getWriter() {
    method setExceptionOnError (line 307) | public void setExceptionOnError(boolean paramBoolean) {
    method getExceptionOnError (line 311) | public boolean getExceptionOnError() {
    method setInputStyle (line 315) | public void setInputStyle(int paramInt) {
    method getInputStyle (line 320) | public int getInputStyle() {
    method setInputColor (line 324) | public void setInputColor(Color paramColor) {
    method getInputColor (line 329) | public Color getInputColor() {
    method setErrorStyle (line 333) | public void setErrorStyle(int paramInt) {
    method getErrorStyle (line 338) | public int getErrorStyle() {
    method setErrorColor (line 342) | public void setErrorColor(Color paramColor) {
    method getErrorColor (line 347) | public Color getErrorColor() {
    method setFont (line 351) | public void setFont(String paramString) {
    method setInputScript (line 355) | public void setInputScript(BufferedReader paramBufferedReader) {
    method getInputScript (line 359) | public BufferedReader getInputScript() {
    method cut (line 363) | public void cut() {
    method copy (line 367) | public void copy() {
    method paste (line 371) | public void paste() {
    method selectAll (line 375) | public void selectAll() {
    method save (line 379) | public void save() {
    method saveAs (line 411) | public void saveAs() {
    method save (line 416) | public void save(Writer paramWriter) {
    method printConsole (line 424) | public void printConsole() {
    method printConsole (line 438) | public void printConsole(PrintJob paramPrintJob) {
    method script (line 442) | public void script() {
    method setMenuBar (line 461) | public void setMenuBar(ProgramMenuBar paramProgramMenuBar) {
    method getMenuBar (line 466) | public ProgramMenuBar getMenuBar() {
    method menuAction (line 470) | public boolean menuAction(ActionEvent paramActionEvent) {
    method isConsoleMenuItem (line 511) | public boolean isConsoleMenuItem(JMenuItem paramJMenuItem) {
    method updateMenuBar (line 524) | public void updateMenuBar(ProgramMenuBar paramProgramMenuBar) {
    method setBackground (line 537) | public void setBackground(Color paramColor) {
    method setForeground (line 545) | public void setForeground(Color paramColor) {
    method setFont (line 553) | public void setFont(Font paramFont) {
    method requestFocus (line 562) | public void requestFocus() {
    method getPreferredSize (line 566) | public Dimension getPreferredSize() {
    method getMinimumSize (line 570) | public Dimension getMinimumSize() {
    method createConsoleModel (line 574) | protected ConsoleModel createConsoleModel() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/io/SimpleScanner.java
  class SimpleScanner (line 151) | public final class SimpleScanner {
    method clearCache (line 194) | public static void clearCache() {
    method getEcho (line 201) | public static boolean getEcho() {
    method getAppletMode (line 210) | public static boolean getAppletMode() {
    method getReuse (line 219) | public static boolean getReuse() {
    method getWorkingDir (line 228) | public static String getWorkingDir() {
    method setAppletMode (line 236) | public static void setAppletMode(boolean value) {
    method setEcho (line 244) | public static void setEcho(boolean value) {
    method setReuse (line 254) | public static void setReuse(boolean value) {
    method setWorkingDir (line 263) | public static void setWorkingDir(String value) {
    method _getStackTraceAsString (line 271) | private static String _getStackTraceAsString(Throwable e) {
    method _inHasNextMethod (line 288) | private static boolean _inHasNextMethod() {
    method isTruthy (line 293) | private static boolean isTruthy(String s) {
    method SimpleScanner (line 321) | public SimpleScanner(File source) {
    method SimpleScanner (line 333) | private SimpleScanner(File source, boolean echo) {
    method SimpleScanner (line 365) | public SimpleScanner(InputStream source) {
    method SimpleScanner (line 377) | private SimpleScanner(InputStream source, boolean echo) {
    method SimpleScanner (line 428) | public SimpleScanner(Reader source) {
    method SimpleScanner (line 432) | private SimpleScanner(Reader source, boolean echo) {
    method SimpleScanner (line 443) | public SimpleScanner(String source) {
    method SimpleScanner (line 447) | private SimpleScanner(String source, boolean echo) {
    method _init (line 453) | private void _init(Reader source, boolean echo) {
    method close (line 467) | public void close() {
    method delimiter (line 481) | public Pattern delimiter() {
    method findWithinHorizon (line 513) | public String findWithinHorizon(Pattern pattern, int horizon) {
    method findWithinHorizon (line 530) | public String findWithinHorizon(String pattern, int horizon) {
    method findInLine (line 551) | public String findInLine(Pattern pattern) {
    method findInLine (line 566) | public String findInLine(String pattern) {
    method hasNext (line 578) | public boolean hasNext() {
    method hasNext (line 601) | public boolean hasNext(Pattern pattern) {
    method hasNext (line 624) | public boolean hasNext(String pattern) {
    method hasNextBigDecimal (line 636) | public boolean hasNextBigDecimal() {
    method hasNextBigInteger (line 655) | public boolean hasNextBigInteger() {
    method hasNextBigInteger (line 668) | public boolean hasNextBigInteger(int radix) {
    method hasNextBoolean (line 686) | public boolean hasNextBoolean() {
    method hasNextByte (line 705) | public boolean hasNextByte() {
    method hasNextByte (line 718) | public boolean hasNextByte(int radix) {
    method hasNextDouble (line 737) | public boolean hasNextDouble() {
    method hasNextFloat (line 757) | public boolean hasNextFloat() {
    method hasNextInt (line 776) | public boolean hasNextInt() {
    method hasNextInt (line 790) | public boolean hasNextInt(int radix) {
    method hasNextLine (line 809) | public boolean hasNextLine() {
    method hasNextLong (line 822) | public boolean hasNextLong() {
    method hasNextLong (line 834) | public boolean hasNextLong(int radix) {
    method hasNextShort (line 854) | public boolean hasNextShort() {
    method hasNextShort (line 868) | public boolean hasNextShort(int radix) {
    method ioException (line 885) | public IOException ioException() {
    method locale (line 896) | public Locale locale() {
    method next (line 933) | public String next() {
    method next (line 1033) | public String next(Pattern pattern) {
    method next (line 1055) | public String next(String pattern) {
    method nextBigDecimal (line 1066) | public BigDecimal nextBigDecimal() {
    method nextBigInteger (line 1081) | public BigInteger nextBigInteger() {
    method nextBigInteger (line 1093) | public BigInteger nextBigInteger(int radix) {
    method nextBoolean (line 1111) | public boolean nextBoolean() {
    method nextByte (line 1135) | public byte nextByte() {
    method nextByte (line 1149) | public byte nextByte(int radix) {
    method nextDouble (line 1167) | public double nextDouble() {
    method nextFloat (line 1186) | public float nextFloat() {
    method nextInt (line 1204) | public int nextInt() {
    method nextInt (line 1220) | public int nextInt(int radix) {
    method nextLine (line 1242) | public String nextLine() {
    method nextLong (line 1277) | public long nextLong() {
    method nextLong (line 1292) | public long nextLong(int radix) {
    method nextShort (line 1310) | public short nextShort() {
    method nextShort (line 1325) | public short nextShort(int radix) {
    method radix (line 1344) | public int radix() {
    method remove (line 1353) | public void remove() {
    method setEchoForce (line 1357) | public void setEchoForce(boolean value) {
    method setEchoStream (line 1361) | public void setEchoStream(java.io.PrintStream stream) {
    method skip (line 1386) | public SimpleScanner skip(Pattern pattern) {
    method skip (line 1419) | public SimpleScanner skip(String pattern) {
    method toString (line 1430) | public String toString() {
    method useDelimiter (line 1440) | public SimpleScanner useDelimiter(Pattern pattern) {
    method useDelimiter (line 1458) | public SimpleScanner useDelimiter(String pattern) {
    method useLocale (line 1470) | public SimpleScanner useLocale(Locale locale) {
    method useRadix (line 1488) | public SimpleScanner useRadix(int radix) {
    method _hasNextChar (line 1497) | private boolean _hasNextChar() {
    method _nextChar (line 1514) | private int _nextChar() {
    method _peek (line 1527) | private int _peek() throws IOException {
    method _getNoSuchElementException (line 1533) | private NoSuchElementException _getNoSuchElementException(String messa...
    method _getNoSuchElementException (line 1541) | private NoSuchElementException _getNoSuchElementException(Class<?> cla...
    method _setIoException (line 1554) | private void _setIoException(IOException ioe) {
    method _undoNext (line 1567) | private void _undoNext() {
    method _unread (line 1578) | private void _unread(int chr) throws IOException {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/io/StandardConsoleModel.java
  class StandardConsoleModel (line 23) | public class StandardConsoleModel implements KeyListener, FocusListener,...
    method StandardConsoleModel (line 50) | public StandardConsoleModel() {
    method getScrollPane (line 68) | public JScrollPane getScrollPane() {
    method setConsole (line 72) | public void setConsole(IOConsole paramIOConsole) {
    method getConsole (line 76) | public IOConsole getConsole() {
    method historyDown (line 80) | public void historyDown() {
    method historyUp (line 87) | public void historyUp() {
    method historyUpdate (line 94) | private void historyUpdate() {
    method print (line 112) | public void print(String paramString, int paramInt) {
    method readLine (line 116) | public String readLine() {
    method setInputScript (line 126) | public void setInputScript(BufferedReader paramBufferedReader) {
    method getInputScript (line 138) | public BufferedReader getInputScript() {
    method clear (line 142) | public void clear() {
    method getText (line 156) | public String getText() {
    method getText (line 160) | public String getText(int paramInt1, int paramInt2) {
    method getLength (line 168) | public int getLength() {
    method getConsolePane (line 172) | public JScrollPane getConsolePane() {
    method getTextPane (line 176) | public JTextPane getTextPane() {
    method cut (line 180) | public void cut() {
    method copy (line 185) | public void copy() {
    method paste (line 189) | public void paste() {
    method selectAll (line 206) | public void selectAll() {
    method isPointSelection (line 210) | public boolean isPointSelection() {
    method print (line 215) | public void print(PrintJob paramPrintJob) {
    method setInputStyle (line 283) | public void setInputStyle(int paramInt) {
    method setInputColor (line 294) | public void setInputColor(Color paramColor) {
    method setErrorStyle (line 303) | public void setErrorStyle(int paramInt) {
    method setErrorColor (line 314) | public void setErrorColor(Color paramColor) {
    method setOutputStyle (line 323) | public void setOutputStyle(int paramInt) {
    method getOutputColor (line 330) | public Color getOutputColor() {
    method setOutputColor (line 334) | public void setOutputColor(Color paramColor) {
    method requestFocus (line 345) | public void requestFocus() {
    method setMenuBar (line 351) | public void setMenuBar(ProgramMenuBar paramProgramMenuBar) {
    method focusGained (line 355) | public void focusGained(FocusEvent paramFocusEvent) {
    method focusLost (line 366) | public void focusLost(FocusEvent paramFocusEvent) {
    method keyTyped (line 373) | public void keyTyped(KeyEvent paramKeyEvent) {
    method keyPressed (line 380) | public void keyPressed(KeyEvent paramKeyEvent) {
    method keyReleased (line 398) | public void keyReleased(KeyEvent paramKeyEvent) {
    method printCallback (line 402) | protected void printCallback(String paramString, int paramInt) {
    method readLineCallback (line 416) | protected String readLineCallback() {
    method isCommandEnabled (line 505) | public boolean isCommandEnabled(String paramString) {
    method insert (line 509) | private void insert(String paramString, int paramInt1, int paramInt2) {
    method delete (line 525) | private void delete(int paramInt1, int paramInt2) {
    method setCaretPosition (line 533) | private void setCaretPosition(int paramInt) {
    method getCaretPosition (line 537) | private int getCaretPosition() {
    method select (line 541) | private void select(int paramInt1, int paramInt2) {
    method getSelectionStart (line 545) | private int getSelectionStart() {
    method getSelectionEnd (line 549) | private int getSelectionEnd() {
    method deleteSelection (line 553) | private int deleteSelection() {
    method setStyleFromAttributes (line 563) | private void setStyleFromAttributes(Graphics paramGraphics,

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/io/SystemConsoleModel.java
  class SystemConsoleModel (line 7) | public class SystemConsoleModel implements ConsoleModel {
    method SystemConsoleModel (line 12) | public SystemConsoleModel() {
    method setConsole (line 16) | public void setConsole(IOConsole paramIOConsole) {
    method getConsole (line 20) | public IOConsole getConsole() {
    method clear (line 24) | public void clear() {
    method print (line 27) | public void print(String paramString, int paramInt) {
    method readLine (line 32) | public String readLine() {
    method getText (line 66) | public String getText() {
    method getText (line 70) | public String getText(int paramInt1, int paramInt2) {
    method getLength (line 74) | public int getLength() {
    method getConsoleModel (line 78) | public Component getConsoleModel() {
    method getTextPane (line 82) | public Component getTextPane() {
    method setFont (line 86) | public void setFont(Font paramFont) {
    method setInputStyle (line 89) | public void setInputStyle(int paramInt) {
    method setInputColor (line 92) | public void setInputColor(Color paramColor) {
    method setErrorStyle (line 95) | public void setErrorStyle(int paramInt) {
    method setErrorColor (line 98) | public void setErrorColor(Color paramColor) {
    method cut (line 101) | public void cut() {
    method copy (line 104) | public void copy() {
    method paste (line 107) | public void paste() {
    method selectAll (line 110) | public void selectAll() {
    method isPointSelection (line 113) | public boolean isPointSelection() {
    method print (line 117) | public void print(PrintJob paramPrintJob) {
    method setInputScript (line 120) | public void setInputScript(BufferedReader paramBufferedReader) {
    method getInputScript (line 124) | public BufferedReader getInputScript() {
    method getConsolePane (line 128) | public Component getConsolePane() {
    method requestFocus (line 132) | public void requestFocus() {
    method setMenuBar (line 135) | public void setMenuBar(ProgramMenuBar paramProgramMenuBar) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/AbstractConsoleProgram.java
  class AbstractConsoleProgram (line 37) | public abstract class AbstractConsoleProgram extends Program {
    method checkCompilerFlags (line 53) | protected void checkCompilerFlags() {
    method clearConsole (line 84) | public void clearConsole() {
    method compareOutput (line 93) | protected void compareOutput() {
    method compareOutput (line 115) | protected void compareOutput(File file) {
    method compareOutput (line 130) | protected boolean compareOutput(int num) {
    method endHook (line 150) | protected void endHook() {
    method loadInputScript (line 155) | protected void loadInputScript() {
    method loadInputScript (line 181) | protected void loadInputScript(File file) {
    method loadInputScript (line 189) | protected boolean loadInputScript(int num) {
    method fontChangeSize (line 204) | private void fontChangeSize(int increment) {
    method fontEnlarge (line 220) | public void fontEnlarge() {
    method fontExtract (line 227) | private Font fontExtract() {
    method fontShrink (line 241) | public void fontShrink() {
    method fontToggleBold (line 248) | public void fontToggleBold() {
    method getAllOutput (line 265) | public String getAllOutput() {
    method getFont (line 272) | public Font getFont() {
    method getScrollPane (line 286) | private JScrollPane getScrollPane() {
    method historyDown (line 299) | public void historyDown() {
    method historyUp (line 310) | public void historyUp() {
    method loadConfiguration (line 321) | @Override
    method menuAction (line 360) | @Override
    method mouseWheelMoved (line 387) | public void mouseWheelMoved(MouseWheelEvent e) {
    method promptUserForFile (line 413) | public String promptUserForFile(String prompt) {
    method promptUserForFile (line 426) | public String promptUserForFile(String prompt, String directory) {
    method promptUserForFile (line 439) | public String promptUserForFile(String prompt, String directory, Strin...
    method setClearConsoleEnabled (line 459) | public void setClearConsoleEnabled(boolean enabled) {
    method saveConfiguration (line 481) | @Override
    method scrollBy (line 522) | private void scrollBy(int dy) {
    method scrollLineHeight (line 551) | private int scrollLineHeight() {
    method scrollLineDown (line 564) | public void scrollLineDown() {
    method scrollLineUp (line 571) | public void scrollLineUp() {
    method scrollPageDown (line 578) | public void scrollPageDown() {
    method scrollPageHeight (line 585) | private int scrollPageHeight() {
    method scrollPageUp (line 597) | public void scrollPageUp() {
    method scrollToTop (line 604) | public void scrollToTop() {
    method scrollToBottom (line 611) | public void scrollToBottom() {
    method setColorFromChooser (line 618) | protected void setColorFromChooser(boolean background) {
    method setFont (line 653) | @Override
    method setFont (line 678) | public void setFont(String str) {
    method setFontFromChooser (line 689) | protected void setFontFromChooser() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/AccessibleConsoleProgram.java
  class AccessibleConsoleProgram (line 3) | public class AccessibleConsoleProgram extends ConsoleProgram {
    method AccessibleConsoleProgram (line 4) | public AccessibleConsoleProgram() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/AppletStarter.java
  class AppletStarter (line 19) | class AppletStarter implements Runnable {
    method AppletStarter (line 29) | public AppletStarter(Program program) {
    method forkUsingExecutor (line 40) | private void forkUsingExecutor() {
    method getMainThread (line 85) | public Thread getMainThread() {
    method run (line 94) | public void run() {
    method start (line 103) | public void start() {
    method stop (line 141) | public void stop() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/AsciiArtProgram.java
  class AsciiArtProgram (line 12) | public class AsciiArtProgram extends ConsoleProgram {
    method AsciiArtProgram (line 22) | public AsciiArtProgram() {
    method checkBounds (line 39) | private void checkBounds(int x, int y) {
    method clear (line 46) | public void clear() {
    method conditionalRedraw (line 53) | private void conditionalRedraw() {
    method drawCharacter (line 59) | public void drawCharacter(int x, int y) {
    method drawCharacter (line 63) | public void drawCharacter(int x, int y, String character) {
    method drawCharacterHelper (line 72) | private void drawCharacterHelper(int x, int y) {
    method drawCharacterHelper (line 80) | private void drawCharacterHelper(int x, int y, String character, boole...
    method drawLine (line 95) | public void drawLine(double x1, double y1, double x2, double y2) {
    method drawLine (line 99) | public void drawLine(int x1, int y1, int x2, int y2) {
    method drawRect (line 116) | public void drawRect(double x, double y, double width, double height) {
    method drawRect (line 120) | public void drawRect(int x, int y, int width, int height) {
    method fillRect (line 127) | public void fillRect(double x, double y, double width, double height) {
    method fillRect (line 131) | public void fillRect(int x, int y, int width, int height) {
    method getBackgroundCharacter (line 140) | public String getBackgroundCharacter() {
    method getBackgroundColor (line 144) | public Color getBackgroundColor() {
    method getCharacter (line 148) | public String getCharacter(double x, double y) {
    method getCharacter (line 152) | public String getCharacter(int x, int y) {
    method getColumns (line 161) | public int getColumns() {
    method getFillCharacter (line 168) | public String getFillCharacter() {
    method getForegroundCharacter (line 172) | public String getForegroundCharacter() {
    method getForegroundColor (line 176) | public Color getForegroundColor() {
    method getKey (line 180) | private String getKey(int x, int y) {
    method getRows (line 184) | public int getRows() {
    method redraw (line 191) | public void redraw() {
    method setBackgroundCharacter (line 211) | public void setBackgroundCharacter(char character) {
    method setBackgroundCharacter (line 215) | public void setBackgroundCharacter(String character) {
    method setBackgroundColor (line 222) | public void setBackgroundColor(Color color) {
    method setForegroundCharacter (line 227) | public void setForegroundCharacter(char character) {
    method setForegroundCharacter (line 231) | public void setForegroundCharacter(String character) {
    method setFillCharacter (line 237) | public void setFillCharacter(char character) {
    method setFillCharacter (line 241) | public void setFillCharacter(String character) {
    method setForegroundColor (line 247) | public void setForegroundColor(Color color) {
    method setRedrawAutomatically (line 252) | public void setRedrawAutomatically(boolean redraw) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/CommandLineProgram.java
  class CommandLineProgram (line 51) | public class CommandLineProgram
    method CommandLineProgram (line 67) | protected CommandLineProgram() {
    method isHeadless (line 78) | public static boolean isHeadless() {
    method checkIfHeadless (line 105) | public static void checkIfHeadless(String className) {
    method run (line 169) | public void run() {
    method init (line 184) | public void init() {
    method pause (line 191) | public void pause(double milliseconds) {
    method print (line 208) | public void print(String value) {
    method print (line 216) | public final void print(boolean x) {
    method print (line 224) | public final void print(char x) {
    method print (line 232) | public final void print(double x) {
    method print (line 240) | public final void print(float x) {
    method print (line 248) | public final void print(int x) {
    method print (line 256) | public final void print(long x) {
    method print (line 264) | public final void print(Object x) {
    method printf (line 275) | public void printf(String format, Object... args) {
    method println (line 285) | public void println() {
    method println (line 298) | public void println(String value) {
    method println (line 306) | public final void println(boolean x) {
    method println (line 314) | public final void println(char x) {
    method println (line 322) | public final void println(double x) {
    method println (line 330) | public final void println(float x) {
    method println (line 338) | public final void println(int x) {
    method println (line 346) | public final void println(long x) {
    method println (line 354) | public final void println(Object x) {
    method showErrorMessage (line 365) | public void showErrorMessage(String msg) {
    method readLine (line 378) | public final String readLine() {
    method readLine (line 391) | public String readLine(String prompt) {
    method readInt (line 406) | public final int readInt() {
    method readInt (line 423) | public final int readInt(int low, int high) {
    method readInt (line 439) | public final int readInt(String prompt) {
    method readInt (line 459) | public int readInt(String prompt, int low, int high) {
    method readDouble (line 474) | public final double readDouble() {
    method readDouble (line 492) | public final double readDouble(double low, double high) {
    method readDouble (line 508) | public final double readDouble(String prompt) {
    method readDouble (line 527) | public double readDouble(String prompt, double low, double high) {
    method readBoolean (line 543) | public final boolean readBoolean() {
    method readBoolean (line 559) | public final boolean readBoolean(String prompt) {
    method readBoolean (line 577) | public boolean readBoolean(String prompt, String trueLabel, String fal...
    method isAppletMode (line 589) | public boolean isAppletMode() {
    method setConsole (line 600) | public void setConsole(IOConsole console) {
    method getConsole (line 611) | public IOConsole getConsole() {
    method getDialog (line 622) | public IODialog getDialog() {
    method getInputModel (line 634) | public IOModel getInputModel() {
    method getOutputModel (line 646) | public IOModel getOutputModel() {
    method getReader (line 657) | public BufferedReader getReader() {
    method getWriter (line 668) | public PrintWriter getWriter() {
    method getRegionPanel (line 675) | public JPanel getRegionPanel(String region) {
    method add (line 682) | public Component add(Component comp) {
    method add (line 689) | public void add(Component comp, Object constraints) {
    method add (line 696) | public void add(Component comp, String region, Object constraints) {
    method addActionListeners (line 703) | public void addActionListeners() {
    method addActionListeners (line 710) | public void addActionListeners(ActionListener listener) {
    method addMouseListeners (line 717) | public void addMouseListeners() {
    method setTitle (line 729) | public void setTitle(String title) {
    method getTitle (line 740) | public String getTitle() {
    method setFont (line 747) | public void setFont(Font font) {
    method setForeground (line 754) | public void setForeground(Color color) {
    method setParameterTable (line 758) | public void setParameterTable(Map<String, String> table) {
    method setStartupObject (line 762) | public void setStartupObject(Object obj) {
    method start (line 766) | public void start() {
    method start (line 777) | public void start(String[] args) {
    method exit (line 802) | public void exit() {
    method addExitHook (line 823) | public void addExitHook(Object obj) {
    method mouseClicked (line 837) | public void mouseClicked(MouseEvent e) { }
    method mousePressed (line 843) | public void mousePressed(MouseEvent e) { }
    method mouseReleased (line 849) | public void mouseReleased(MouseEvent e) { }
    method mouseEntered (line 856) | public void mouseEntered(MouseEvent e) { }
    method mouseExited (line 863) | public void mouseExited(MouseEvent e) { }
    method mouseMoved (line 869) | public void mouseMoved(MouseEvent e) { }
    method mouseDragged (line 884) | public void mouseDragged(MouseEvent e) { }
    method keyTyped (line 890) | public void keyTyped(KeyEvent e) { }
    method keyPressed (line 896) | public void keyPressed(KeyEvent e) { }
    method keyReleased (line 902) | public void keyReleased(KeyEvent e) { }
    method actionPerformed (line 908) | public void actionPerformed(ActionEvent e) { }
    method createConsole (line 918) | protected IOConsole createConsole() {
    method createDialogIO (line 925) | protected IODialog createDialogIO() {
    method getPreferredSize (line 941) | public Dimension getPreferredSize() {
    method getWidth (line 953) | public int getWidth() {
    method getHeight (line 965) | public int getHeight() {
    method getParameter (line 978) | public String getParameter(String name) {
    method setLayout (line 989) | public void setLayout(LayoutManager layout) {
    method getLayout (line 996) | public LayoutManager getLayout() {
    method setBackground (line 1003) | public void setBackground(Color color) {
    method addImpl (line 1010) | protected void addImpl(Component comp, Object constraints, int index) {
    method remove (line 1017) | public void remove(int index) {
    method remove (line 1024) | public void remove(Component comp) {
    method removeAll (line 1031) | public void removeAll() {
    method validate (line 1038) | public void validate() {
    method repaint (line 1045) | public void repaint() {
    method destroy (line 1056) | public void destroy() {
    method main (line 1078) | public static void main(String[] args) {
    method menuAction (line 1128) | public void menuAction(String cmd) {
    method setMacMenuBarFlag (line 1135) | protected void setMacMenuBarFlag(boolean flag) {
    method getMacMenuBarFlag (line 1142) | protected boolean getMacMenuBarFlag() {
    method getBorder (line 1153) | protected Component getBorder(String side) {
    method getArgumentArray (line 1166) | protected String[] getArgumentArray() {
    method isStarted (line 1179) | protected boolean isStarted() {
    method startHook (line 1189) | protected void startHook() {
    method endHook (line 1199) | protected void endHook() {
    method setAppletStub (line 1211) | @SuppressWarnings("deprecation")
    method getAppletStub (line 1223) | @SuppressWarnings("deprecation")
    method setParameterTable (line 1235) | protected void setParameterTable(HashMap<String,String> ht) {
    method getParameterTable (line 1246) | protected HashMap<String,String> getParameterTable() {
    method createParameterTable (line 1267) | protected static HashMap<String,String> createParameterTable(String[] ...

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ConsoleProgram.java
  class ConsoleProgram (line 53) | public abstract class ConsoleProgram extends AbstractConsoleProgram {
    method ConsoleProgram (line 60) | public ConsoleProgram() {
    method run (line 76) | public void run() {
    method init (line 94) | public void init() {
    method createConsole (line 105) | protected IOConsole createConsole() {
    method shouldOverrideInput (line 125) | private boolean shouldOverrideInput() {
    method overrideInput (line 134) | public void overrideInput(String inputFilename) {
    method overrideInput (line 149) | public void overrideInput(InputStream stream) {
    method overrideInput (line 164) | public void overrideInput(Reader reader) {
    method captureOutput (line 174) | public void captureOutput() {
    method captureOutput (line 178) | public void captureOutput(boolean capture) {
    method getCapturedOutput (line 188) | public String getCapturedOutput() {
    method echoComments (line 195) | public void echoComments() {
    method getComments (line 202) | public String getComments() {
    method print (line 216) | public void print(String value) {
    method print (line 224) | public void print(String value, Color color) {
    method printf (line 232) | public void printf(String format, Object... args) {
    method println (line 238) | public void println() {
    method println (line 245) | public void println(String value) {
    method println (line 254) | public void println(String value, Color color) {
    method readInt (line 263) | @Override
    method readDouble (line 290) | @Override
    method readBoolean (line 317) | @Override
    method readLine (line 337) | @Override
    method setEcho (line 357) | public void setEcho() {
    method setEcho (line 361) | public void setEcho(boolean echo) {
    method getInputInt (line 368) | private int getInputInt() {
    method getInputDouble (line 379) | private double getInputDouble() {
    method getInputBoolean (line 390) | private Boolean getInputBoolean(String t, String f) {
    method checkRange (line 401) | private static void checkRange(int value, int min, int max) {
    method checkRange (line 407) | private static void checkRange(double value, double min, double max) {
    class InputFileReader (line 414) | class InputFileReader {
      method InputFileReader (line 420) | public InputFileReader(String inputFilename) {
      method InputFileReader (line 432) | public InputFileReader(InputStream stream) {
      method InputFileReader (line 438) | public InputFileReader(Reader reader) {
      method readInputLine (line 444) | public String readInputLine() {
      method peekInputLine (line 450) | public String peekInputLine() {
      method advanceLine (line 457) | private void advanceLine() {
      method flush (line 480) | private void flush() {
      method isComment (line 499) | private boolean isComment(String str) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/DefaultActionListener.java
  class DefaultActionListener (line 21) | class DefaultActionListener implements ActionListener {
    method DefaultActionListener (line 23) | public DefaultActionListener() {
    method actionPerformed (line 27) | public void actionPerformed(ActionEvent e) {
    method countActionListeners (line 59) | protected static int countActionListeners(Component comp) {
    method findProgram (line 69) | private Program findProgram(Component comp) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/DialogProgram.java
  class DialogProgram (line 36) | public abstract class DialogProgram extends Program {
    method DialogProgram (line 44) | public DialogProgram() {
    method run (line 61) | public void run() {
    method init (line 79) | public void init() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/GObjectProgram.java
  class GObjectProgram (line 18) | class GObjectProgram extends GraphicsProgram {
    method runHook (line 24) | protected void runHook() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/GProgramListener.java
  class GProgramListener (line 21) | class GProgramListener implements MouseListener, MouseMotionListener {
    method GProgramListener (line 35) | public GProgramListener(GraphicsProgram program) {
    method mouseClicked (line 79) | public void mouseClicked(MouseEvent e) {
    method mouseDragged (line 96) | public void mouseDragged(MouseEvent e) {
    method mouseEntered (line 111) | public void mouseEntered(MouseEvent e) {
    method mouseExited (line 119) | public void mouseExited(MouseEvent e) {
    method mouseMoved (line 127) | public void mouseMoved(MouseEvent e) {
    method mousePressed (line 142) | public void mousePressed(MouseEvent e) {
    method mouseReleased (line 157) | public void mouseReleased(MouseEvent e) {
    method needsMouseMotionListeners (line 173) | public boolean needsMouseMotionListeners() {
    method signalClickOccurred (line 181) | private synchronized void signalClickOccurred() {
    method waitForClick (line 192) | public synchronized void waitForClick() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/GraphicsProgram.java
  class GraphicsProgram (line 71) | public abstract class GraphicsProgram extends Program
    method GraphicsProgram (line 84) | protected GraphicsProgram() {
    method add (line 107) | public void add(GObject gobj) {
    method add (line 124) | public final void add(GObject gobj, double x, double y) {
    method add (line 140) | public final void add(GObject gobj, GPoint pt) {
    method add (line 158) | public final void add(Component comp, double x, double y) {
    method add (line 175) | public final void add(Component comp, GPoint pt) {
    method addKeyListeners (line 185) | public void addKeyListeners() {
    method addKeyListeners (line 197) | public void addKeyListeners(KeyListener listener) {
    method addMouseListeners (line 208) | public void addMouseListeners() {
    method addMouseListeners (line 228) | public void addMouseListeners(EventListener listener) {
    method clear (line 249) | public void clear() {
    method clearCanvas (line 260) | public void clearCanvas() {
    method createGCanvas (line 274) | protected GCanvas createGCanvas() {
    method endHook (line 282) | protected void endHook() {
    method getCanvasHeight (line 291) | public double getCanvasHeight() {
    method getCanvasSize (line 303) | public Dimension getCanvasSize() {
    method getCanvasWidth (line 311) | public double getCanvasWidth() {
    method getElementCount (line 327) | public int getElementCount() {
    method getElement (line 341) | @SuppressWarnings("unchecked")
    method getElementAt (line 360) | @SuppressWarnings("unchecked")
    method getElementAt (line 378) | public <T extends GObject> T getElementAt(double... coords) {
    method getElementAt (line 393) | public final <T extends GObject> T getElementAt(GPoint pt) {
    method getGCanvas (line 404) | public GCanvas getGCanvas() {
    method hasElementAt (line 412) | public boolean hasElementAt(double x, double y) {
    method hasElementAt (line 423) | public boolean hasElementAt(double... coords) {
    method hasElementAt (line 431) | public boolean hasElementAt(GPoint point) {
    method init (line 449) | public void init() {
    method isAntiAliasing (line 458) | public boolean isAntiAliasing() {
    method isOpaque (line 466) | public boolean isOpaque() {
    method isStarted (line 478) | protected boolean isStarted() {
    method iterator (line 506) | public Iterator<GObject> iterator() {
    method iterator (line 536) | public Iterator<GObject> iterator(int direction) {
    method remove (line 546) | public void remove(double x, double y) {
    method remove (line 556) | public void remove(GPoint pt) {
    method remove (line 568) | public void remove(GObject gobj) {
    method removeAll (line 581) | public void removeAll() {
    method removeAll (line 591) | public void removeAll(double x, double y) {
    method removeAll (line 601) | public void removeAll(double... coords) {
    method removeAll (line 611) | public void removeAll(GPoint pt) {
    method removeAllComponents (line 622) | public void removeAllComponents() {
    method repaint (line 632) | public void repaint() {
    method run (line 647) | public void run() {
    method setAntiAliasing (line 656) | public void setAntiAliasing(boolean antialias) {
    method setBackground (line 669) | public void setBackground(Color bg) {
    method setCanvasHeight (line 683) | public void setCanvasHeight(double height) {
    method setCanvasSize (line 695) | public void setCanvasSize(double width, double height) {
    method setCanvasWidth (line 714) | public void setCanvasWidth(double width) {
    method setOpaque (line 722) | public void setOpaque(boolean opaque) {
    method setSize (line 732) | @Override
    method setShowPixelInfo (line 748) | public void setShowPixelInfo(boolean show) {
    method setSize (line 758) | @Override
    method setWindowSize (line 774) | public void setWindowSize(double width, double height) {
    method startGraphicsProgram (line 792) | public static void startGraphicsProgram(GObject gobj, String[] args) t...
    method toImage (line 801) | public BufferedImage toImage() {
    method waitForClick (line 811) | public void waitForClick() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/GraphicsProgramInterface.java
  type GraphicsProgramInterface (line 13) | public interface GraphicsProgramInterface extends ProgramInterface, GCan...
    method add (line 14) | public void add(GObject gobj);
    method add (line 15) | public void add(GObject gobj, double x, double y);
    method add (line 16) | public void add(GObject gobj, GPoint pt);
    method addKeyListeners (line 17) | public void addKeyListeners();
    method addKeyListeners (line 18) | public void addKeyListeners(KeyListener listener);
    method addMouseListeners (line 19) | public void addMouseListeners();
    method addMouseListeners (line 20) | public void addMouseListeners(EventListener listener);
    method clearCanvas (line 21) | public void clearCanvas();
    method getCanvasHeight (line 22) | public double getCanvasHeight();
    method getCanvasSize (line 23) | public Dimension getCanvasSize();
    method getCanvasWidth (line 24) | public double getCanvasWidth();
    method getElementAt (line 25) | public <T extends GObject> T getElementAt(double x, double y);
    method getElementAt (line 26) | public <T extends GObject> T getElementAt(GPoint pt);
    method hasElementAt (line 27) | public boolean hasElementAt(double x, double y);
    method hasElementAt (line 28) | public boolean hasElementAt(GPoint point);
    method getGCanvas (line 29) | public GCanvas getGCanvas();
    method remove (line 30) | public void remove(double x, double y);
    method remove (line 31) | public void remove(GPoint pt);
    method removeAll (line 32) | public void removeAll();
    method removeAll (line 33) | public void removeAll(double x, double y);
    method removeAll (line 34) | public void removeAll(GPoint pt);
    method removeAllComponents (line 35) | public void removeAllComponents();
    method setCanvasHeight (line 36) | public void setCanvasHeight(double height);
    method setCanvasSize (line 37) | public void setCanvasSize(double width, double height);
    method setCanvasWidth (line 38) | public void setCanvasWidth(double width);
    method setSize (line 39) | public void setSize(double width, double height);
    method setWindowSize (line 40) | public void setWindowSize(double width, double height);
    method waitForClick (line 41) | public void waitForClick();

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/HeadlessGraphicsProgram.java
  class HeadlessGraphicsProgram (line 22) | public class HeadlessGraphicsProgram implements GraphicsProgramInterface {
    method getSaveFile (line 36) | public static String getSaveFile() {
    method setAntiAliasDefault (line 45) | public static void setAntiAliasDefault(boolean antialias) {
    method setSaveFile (line 49) | public static void setSaveFile(String filename) {
    method main (line 64) | public final void main(String[] args) {
    method exit (line 82) | public final void exit() {
    method init (line 93) | public void init() {
    method run (line 97) | public void run() {
    method save (line 101) | public final void save() {
    method setParameterTable (line 109) | public void setParameterTable(Map<String, String> table) {
    method setStartupObject (line 113) | public void setStartupObject(Object obj) {
    method start (line 117) | public void start() {
    method start (line 121) | public void start(String[] args) {
    method fakeMouseEvent (line 125) | private MouseEvent fakeMouseEvent(int x, int y) {
    method fakeMouseClicked (line 141) | public void fakeMouseClicked(int x, int y) {
    method fakeMousePressed (line 148) | public void fakeMousePressed(int x, int y) {
    method fakeMouseReleased (line 153) | public void fakeMouseReleased(int x, int y) {
    method fakeMouseMoved (line 158) | public void fakeMouseMoved(int x, int y) {
    method fakeMouseDragged (line 163) | public void fakeMouseDragged(int x, int y) {
    method fakeMouseDragSequence (line 168) | public void fakeMouseDragSequence(int... coords) {
    method add (line 181) | public Component add(Component comp) {
    method add (line 186) | public void add(Component comp, Object constraints) {
    method add (line 190) | public void add(Component comp, String region, Object constraints) {
    method add (line 194) | public void add(GObject gobj) {
    method add (line 198) | public void add(GObject gobj, double x, double y) {
    method add (line 202) | public void add(GObject gobj, GPoint pt) {
    method add (line 206) | public void add(Component comp, double x, double y) {
    method add (line 210) | public void add(Component comp, GPoint pt) {
    method addActionListeners (line 214) | public void addActionListeners() {
    method clear (line 218) | public void clear() {
    method getBackground (line 222) | public Color getBackground() {
    method getElementCount (line 226) | public int getElementCount() {
    method getElement (line 230) | public <T extends GObject> T getElement(int index) {
    method getElementAt (line 234) | public <T extends GObject> T getElementAt(double x, double y) {
    method getElementAt (line 238) | public <T extends GObject> T getElementAt(double... coords) {
    method getElementAt (line 242) | public <T extends GObject> T getElementAt(GPoint pt) {
    method getFont (line 246) | public Font getFont() {
    method hasElementAt (line 250) | public boolean hasElementAt(double x, double y) {
    method hasElementAt (line 254) | public boolean hasElementAt(double... coords) {
    method isAntiAliasing (line 258) | public boolean isAntiAliasing() {
    method iterator (line 262) | public Iterator<GObject> iterator() {
    method iterator (line 266) | public Iterator<GObject> iterator(int direction) {
    method mouseClicked (line 270) | public void mouseClicked(MouseEvent e) {
    method mousePressed (line 274) | public void mousePressed(MouseEvent e) {
    method mouseReleased (line 278) | public void mouseReleased(MouseEvent e) {
    method mouseEntered (line 282) | public void mouseEntered(MouseEvent e) {
    method mouseExited (line 286) | public void mouseExited(MouseEvent e) {
    method mouseDragged (line 290) | public void mouseDragged(MouseEvent e) {
    method mouseMoved (line 294) | public void mouseMoved(MouseEvent e) {
    method remove (line 298) | public void remove(double x, double y) {
    method remove (line 302) | public void remove(GPoint pt) {
    method remove (line 306) | public void remove(GObject gobj) {
    method removeAll (line 310) | public void removeAll() {
    method removeAll (line 314) | public void removeAll(double x, double y) {
    method removeAll (line 318) | public void removeAll(double... coords) {
    method removeAll (line 322) | public void removeAll(GPoint pt) {
    method repaint (line 326) | public void repaint() {
    method setAntiAliasing (line 330) | public void setAntiAliasing(boolean antialias) {
    method setBackground (line 334) | public void setBackground(Color bg) {
    method setShowPixelInfo (line 338) | public void setShowPixelInfo(boolean show) {
    method toImage (line 342) | public BufferedImage toImage() {
    method addKeyListeners (line 346) | public void addKeyListeners() {
    method addKeyListeners (line 350) | public void addKeyListeners(KeyListener listener) {
    method addMouseListeners (line 354) | public void addMouseListeners() {
    method addMouseListeners (line 358) | public void addMouseListeners(EventListener listener) {
    method clearCanvas (line 362) | public void clearCanvas() {
    method getHeight (line 366) | public int getHeight() {
    method getSize (line 374) | public Dimension getSize() {
    method getWidth (line 382) | public int getWidth() {
    method getCanvasHeight (line 390) | public double getCanvasHeight() {
    method getCanvasSize (line 394) | public Dimension getCanvasSize() {
    method getCanvasWidth (line 398) | public double getCanvasWidth() {
    method getGCanvas (line 402) | public GCanvas getGCanvas() {
    method hasElementAt (line 411) | public boolean hasElementAt(GPoint point) {
    method isOpaque (line 415) | public boolean isOpaque() {
    method pause (line 419) | public void pause(double milliseconds) {
    method removeAllComponents (line 423) | public void removeAllComponents() {
    method setCanvasHeight (line 427) | public void setCanvasHeight(double height) {
    method setCanvasSize (line 432) | public void setCanvasSize(double width, double height) {
    method setCanvasWidth (line 438) | public void setCanvasWidth(double width) {
    method setFont (line 443) | public void setFont(Font font) {
    method setForeground (line 447) | public void setForeground(Color color) {
    method setOpaque (line 451) | public void setOpaque(boolean opaque) {
    method setSize (line 455) | public void setSize(Dimension size) {
    method setSize (line 461) | public void setSize(double width, double height) {
    method setWindowSize (line 467) | public void setWindowSize(double width, double height) {
    method waitForClick (line 471) | public void waitForClick() {
    method getTitle (line 475) | public String getTitle() {
    method print (line 479) | public void print(Object value) {
    method print (line 483) | public void print(String value) {
    method printf (line 487) | public void printf(String format, Object... args) {
    method println (line 491) | public void println() {
    method println (line 495) | public void println(Object value) {
    method println (line 499) | public void println(String value) {
    method setTitle (line 503) | public void setTitle(String title) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/Program.java
  class Program (line 146) | @SuppressWarnings("deprecation")
    method contentsChanged (line 228) | public void	contentsChanged(ListDataEvent e) {
    method intervalAdded (line 233) | public void	intervalAdded(ListDataEvent e) {
    method intervalRemoved (line 238) | public void	intervalRemoved(ListDataEvent e) {
    method menuCanceled (line 243) | public void menuCanceled(MenuEvent e) {
    method menuDeselected (line 248) | public void menuDeselected(MenuEvent e) {
    method menuSelected (line 253) | public void menuSelected(MenuEvent e) {
    method popupMenuCanceled (line 258) | public void popupMenuCanceled(PopupMenuEvent e) {
    method popupMenuWillBecomeInvisible (line 263) | public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
    method popupMenuWillBecomeVisible (line 268) | public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
    method valueChanged (line 273) | public void valueChanged(ListSelectionEvent e) {
    method Program (line 283) | protected Program() {
    method actionPerformed (line 308) | public void actionPerformed(ActionEvent e) {
    method add (line 325) | public void add(Component comp, String region, Object constraints) {
    method addActionListeners (line 347) | public void addActionListeners() {
    method addActionListeners (line 358) | public void addActionListeners(ActionListener listener) {
    method addActionListeners (line 367) | private void addActionListeners(Component comp, ActionListener listene...
    method addActionListenersToButtonsOnly (line 397) | public void addActionListenersToButtonsOnly() {
    method addAllActionListeners (line 408) | public void addAllActionListeners() {
    method addExitHook (line 419) | public void addExitHook(Object obj) {
    method addImpl (line 427) | protected void addImpl(Component comp, Object constraints, int index) {
    method adjustmentValueChanged (line 456) | public void adjustmentValueChanged(AdjustmentEvent e) {
    method alert (line 464) | public void alert(Object value) {
    method alert (line 472) | public void alert(String message) {
    method alertError (line 480) | public void alertError(String message) {
    method alertError (line 488) | public void alertError(Throwable error) {
    method alertError (line 496) | public void alertError(Throwable th, String message) {
    method animation (line 509) | public void animation() {
    method center (line 516) | public void center() {
    method changedUpdate (line 521) | public void changedUpdate(DocumentEvent e) {
    method checkCompilerFlags (line 529) | protected void checkCompilerFlags() {
    method checkForAppletMode (line 539) | private boolean checkForAppletMode() {
    method checkKill (line 551) | public void checkKill() {
    method circumventFrameSizeBug (line 567) | private void circumventFrameSizeBug(Frame frame, Dimension size) {
    method checkStartupSettings (line 582) | protected void checkStartupSettings() {
    method componentAdded (line 587) | public void componentAdded(ContainerEvent e) {
    method componentHidden (line 592) | public void componentHidden(ComponentEvent e) {
    method componentMoved (line 597) | public void componentMoved(ComponentEvent e) {
    method componentRemoved (line 602) | public void componentRemoved(ContainerEvent e) {
    method componentResized (line 607) | public void componentResized(ComponentEvent e) {
    method componentShown (line 612) | public void componentShown(ComponentEvent e) {
    method computeProgramBounds (line 620) | private Rectangle computeProgramBounds() {
    method confirm (line 634) | public boolean confirm(String question) {
    method createConsole (line 647) | protected IOConsole createConsole() {
    method createDialogIO (line 659) | protected IODialog createDialogIO() {
    method createMenuBar (line 671) | protected ProgramMenuBar createMenuBar() {
    method createParameterTable (line 692) | protected static Map<String,String> createParameterTable(String[] args) {
    method createProgramFrame (line 719) | protected JFrame createProgramFrame() {
    method decodeSizeParameter (line 733) | private int decodeSizeParameter(String name, int value, int max) {
    method destroy (line 768) | public void destroy() {
    method endHook (line 779) | protected void endHook() {
    method error (line 786) | public void error(Exception ex) {
    method error (line 793) | public void error(Exception ex, String text) {
    method error (line 800) | public void error(String text) {
    method exit (line 813) | public void exit() {
    method fileExists (line 847) | protected boolean fileExists(String filename) {
    method fileExists (line 857) | protected boolean fileExists(String directory, String filename) {
    method fileExistsInsideJAR (line 867) | protected boolean fileExistsInsideJAR(String filename) {
    method fileExistsInsideJAR (line 877) | protected boolean fileExistsInsideJAR(String directory, String filenam...
    method fileExistsOnDisk (line 906) | protected boolean fileExistsOnDisk(String filename) {
    method fileExistsOnDisk (line 916) | protected boolean fileExistsOnDisk(String directory, String filename) {
    method fileSize (line 944) | protected int fileSize(String filename) {
    method fileSize (line 970) | protected int fileSize(String directory, String filename) {
    method focusGained (line 993) | public void	focusGained(FocusEvent e) {
    method focusLost (line 1001) | public void	focusLost(FocusEvent e) {
    method getAnimationDelay (line 1008) | public int getAnimationDelay() {
    method getAppletStub (line 1019) | protected AppletStub getAppletStub() {
    method getArgumentArray (line 1032) | protected String[] getArgumentArray() {
    method getBoolean (line 1053) | public final boolean getBoolean() {
    method getBoolean (line 1068) | public boolean getBoolean(String prompt) {
    method getBoolean (line 1085) | public boolean getBoolean(String prompt, String trueLabel, String fals...
    method getBorder (line 1101) | protected Component getBorder(String side) {
    method getBottomY (line 1112) | public int getBottomY() {
    method getCenterLocation (line 1119) | public GDimension getCenterLocation() {
    method getCenterX (line 1126) | public int getCenterX() {
    method getCenterY (line 1133) | public int getCenterY() {
    method getCentralRegionSize (line 1146) | public Dimension getCentralRegionSize() {
    method getConsole (line 1165) | public IOConsole getConsole() {
    method getDialog (line 1176) | public IODialog getDialog() {
    method getDouble (line 1190) | public double getDouble() {
    method getDouble (line 1207) | public double getDouble(double low, double high) {
    method getDouble (line 1222) | public final double getDouble(String prompt) {
    method getDouble (line 1240) | public double getDouble(String prompt, double low, double high) {
    method getHeight (line 1252) | public int getHeight() {
    method getInputModel (line 1269) | public IOModel getInputModel() {
    method getInteger (line 1283) | public int getInteger() {
    method getInteger (line 1299) | public int getInteger(int low, int high) {
    method getInteger (line 1314) | public final int getInteger(String prompt) {
    method getInteger (line 1333) | public int getInteger(String prompt, int low, int high) {
    method getJFrame (line 1342) | public JFrame getJFrame() {
    method getLayout (line 1354) | public LayoutManager getLayout() {
    method getLine (line 1370) | public String getLine() {
    method getLine (line 1382) | public String getLine(String prompt) {
    method getMainThread (line 1394) | public Thread getMainThread() {
    method getMenuBar (line 1407) | public ProgramMenuBar getMenuBar() {
    method getMyCaller (line 1415) | String getMyCaller() {
    method getOutputColor (line 1424) | public Color getOutputColor() {
    method getOutputModel (line 1444) | public IOModel getOutputModel() {
    method getParameter (line 1457) | public String getParameter(String name) {
    method getParameterTable (line 1473) | protected Map<String, String> getParameterTable() {
    method getPreferredSize (line 1485) | public Dimension getPreferredSize() {
    method getReader (line 1496) | public BufferedReader getReader() {
    method getReal (line 1510) | public double getReal() {
    method getReal (line 1527) | public double getReal(double low, double high) {
    method getReal (line 1542) | public final double getReal(String prompt) {
    method getReal (line 1560) | public double getReal(String prompt, double low, double high) {
    method getRegionPanel (line 1574) | public JPanel getRegionPanel(String region) {
    method getRightX (line 1593) | public int getRightX() {
    method getScreenHeight (line 1600) | public int getScreenHeight() {
    method getScreenSize (line 1608) | public GDimension getScreenSize() {
    method getScreenWidth (line 1616) | public int getScreenWidth() {
    method getStartupObject (line 1631) | protected Object getStartupObject() {
    method getTitle (line 1642) | public String getTitle() {
    method getWidth (line 1654) | public int getWidth() {
    method getWindow (line 1667) | public Window getWindow() {
    method getWriter (line 1687) | public PrintWriter getWriter() {
    method getYesOrNo (line 1698) | public boolean getYesOrNo(String prompt) {
    method hasActionListener (line 1715) | private boolean hasActionListener(Component comp) {
    method hasConfiguration (line 1728) | public final boolean hasConfiguration() {
    method init (line 1755) | public void init() {
    method initApplicationFrame (line 1763) | private void initApplicationFrame() {
    method initContentPane (line 1781) | private void initContentPane(Container contentPane) {
    method insertUpdate (line 1806) | public void insertUpdate(DocumentEvent e) {
    method isAnimated (line 1813) | public boolean isAnimated() {
    method isApplet (line 1820) | protected boolean isApplet() {
    method isAppletMode (line 1844) | public boolean isAppletMode() {
    method isButton (line 1851) | private boolean isButton(Component comp) {
    method isExitOnClose (line 1858) | public boolean isExitOnClose() {
    method isInitialized (line 1865) | public boolean isInitialized() {
    method isRunning (line 1869) | public boolean isRunning() {
    method isStarted (line 1880) | protected boolean isStarted() {
    method itemStateChanged (line 1893) | public void	itemStateChanged(ItemEvent e) {
    method keyPressed (line 1901) | public void keyPressed(KeyEvent e) {
    method keyReleased (line 1909) | public void keyReleased(KeyEvent e) {
    method keyTyped (line 1917) | public void keyTyped(KeyEvent e) {
    method killMe (line 1925) | public void killMe() {
    method loadConfiguration (line 1932) | public final void loadConfiguration() {
    method loadConfiguration (line 1958) | protected void loadConfiguration(Properties props) {
    method menuAction (line 1969) | public boolean menuAction(ActionEvent event) {
    method mouseClicked (line 2058) | public void mouseClicked(MouseEvent e) {
    method mouseDragged (line 2075) | public void mouseDragged(MouseEvent e) {
    method mouseEntered (line 2084) | public void mouseEntered(MouseEvent e) {
    method mouseExited (line 2093) | public void mouseExited(MouseEvent e) {
    method mouseMoved (line 2101) | public void mouseMoved(MouseEvent e) {
    method mousePressed (line 2109) | public void mousePressed(MouseEvent e) {
    method mouseReleased (line 2117) | public void mouseReleased(MouseEvent e) {
    method mouseWheelMoved (line 2125) | public void mouseWheelMoved(MouseWheelEvent e) {
    method openFile (line 2135) | protected InputStream openFile(String filename) {
    method openFile (line 2145) | protected InputStream openFile(String directory, String filename) {
    method openFileFromDisk (line 2161) | protected InputStream openFileFromDisk(String filename) {
    method openFileFromDisk (line 2172) | protected InputStream openFileFromDisk(String directory, String filena...
    method openFileFromJAR (line 2198) | protected InputStream openFileFromJAR(String filename) {
    method openFileFromJAR (line 2209) | protected InputStream openFileFromJAR(String directory, String filenam...
    method pack (line 2231) | public void pack() {
    method pause (line 2244) | public void pause(double milliseconds) {
    method pauseTick (line 2268) | public void pauseTick() {
    method print (line 2276) | public final void print(boolean x) {
    method print (line 2285) | public void print(boolean value, Color color) {
    method print (line 2293) | public final void print(char x) {
    method print (line 2302) | public void print(char value, Color color) {
    method print (line 2310) | public final void print(double x) {
    method print (line 2319) | public void print(double value, Color color) {
    method print (line 2327) | public final void print(float x) {
    method print (line 2336) | public void print(float value, Color color) {
    method print (line 2344) | public final void print(int x) {
    method print (line 2353) | public void print(int value, Color color) {
    method print (line 2361) | public final void print(long x) {
    method print (line 2370) | public void print(long value, Color color) {
    method print (line 2378) | public final void print(Object x) {
    method print (line 2387) | public void print(Object value, Color color) {
    method print (line 2400) | public void print(String value) {
    method print (line 2409) | public void print(String value, Color color) {
    method printf (line 2423) | public void printf(String format, Object... args) {
    method println (line 2444) | public void println() {
    method println (line 2452) | public final void println(boolean x) {
    method println (line 2461) | public void println(boolean value, Color color) {
    method println (line 2469) | public final void println(char x) {
    method println (line 2478) | public void println(char value, Color color) {
    method println (line 2486) | public final void println(double x) {
    method println (line 2495) | public void println(double value, Color color) {
    method println (line 2503) | public final void println(float x) {
    method println (line 2512) | public void println(float value, Color color) {
    method println (line 2520) | public final void println(int x) {
    method println (line 2529) | public void println(int value, Color color) {
    method println (line 2537) | public final void println(long x) {
    method println (line 2546) | public void println(long value, Color color) {
    method println (line 2554) | public final void println(Object x) {
    method println (line 2563) | public void println(Object value, Color color) {
    method println (line 2576) | public void println(String value) {
    method println (line 2585) | public void println(String value, Color color) {
    method prompt (line 2597) | public String prompt(String prompt) {
    method readBoolean (line 2614) | public final boolean readBoolean() {
    method readBoolean (line 2630) | public final boolean readBoolean(String prompt) {
    method readBoolean (line 2648) | public boolean readBoolean(String prompt, String trueLabel, String fal...
    method readDouble (line 2663) | public final double readDouble() {
    method readDouble (line 2681) | public final double readDouble(double low, double high) {
    method readDouble (line 2697) | public final double readDouble(String prompt) {
    method readDouble (line 2716) | public double readDouble(String prompt, double low, double high) {
    method readInt (line 2731) | public final int readInt() {
    method readInt (line 2748) | public final int readInt(int low, int high) {
    method readInt (line 2764) | public final int readInt(String prompt) {
    method readInt (line 2784) | public int readInt(String prompt, int low, int high) {
    method readLine (line 2797) | public final String readLine() {
    method readLine (line 2810) | public String readLine(String prompt) {
    method remove (line 2822) | public void remove(int index) {
    method remove (line 2838) | public void remove(Component comp) {
    method removeAll (line 2854) | public void removeAll() {
    method removeFromRegion (line 2865) | public void removeFromRegion(Component comp, String region) {
    method removeMenuBar (line 2888) | public void removeMenuBar() {
    method removeUpdate (line 2896) | public void removeUpdate(DocumentEvent e) {
    method repaint (line 2907) | public void repaint() {
    method run (line 2923) | public void run() {
    method runHook (line 2932) | protected void runHook() {
    method saveConfiguration (line 2939) | public final void saveConfiguration() {
    method saveConfiguration (line 2960) | protected void saveConfiguration(Properties props) {
    method setAnimated (line 2967) | public synchronized void setAnimated(boolean value) {
    method setAnimationDelay (line 2993) | public synchronized void setAnimationDelay(int delayMS) {
    method setAppletStub (line 3013) | protected void setAppletStub(AppletStub stub) {
    method setBackground (line 3026) | public void setBackground(Color color) {
    method setBottomY (line 3042) | public void setBottomY(double y) {
    method setCenterX (line 3050) | public void setCenterX(double x) {
    method setCenterY (line 3058) | public void setCenterY(double y) {
    method setCenterLocation (line 3067) | public void setCenterLocation(double x, double y) {
    method setConsole (line 3078) | public void setConsole(IOConsole console) {
    method setDialog (line 3089) | public void setDialog(IODialog dialog) {
    method setExitOnClose (line 3096) | public void setExitOnClose(boolean exitOnClose) {
    method setFramesPerSecond (line 3109) | public void setFramesPerSecond(int fps) {
    method setHeight (line 3123) | public void setHeight(double height) {
    method setInputModel (line 3134) | public void setInputModel(IOModel io) {
    method setInvisible (line 3142) | public void setInvisible(GObject obj, boolean invisible) {
    method setJFrame (line 3154) | public void setJFrame(JFrame jframe) {
    method setJMenuBar (line 3162) | public void setJMenuBar(JMenuBar bar) {
    method setLayout (line 3183) | public void setLayout(LayoutManager layout) {
    method setLocation (line 3196) | public void setLocation(double x, double y) {
    method setLocation (line 3205) | public void setLocation(GPoint point) {
    method setOutputColor (line 3213) | public void setOutputColor(Color color) {
    method setOutputModel (line 3231) | public void setOutputModel(IOModel io) {
    method setParameter (line 3244) | public void setParameter(String name, String value) {
    method setParameterTable (line 3258) | public void setParameterTable(Map<String, String> ht) {
    method setPauseScaleFactor (line 3266) | public void setPauseScaleFactor(double factor) {
    method setResizable (line 3282) | public void setResizable(boolean resizable) {
    method setRightX (line 3292) | public void setRightX(double x) {
    method setRunning (line 3300) | public void setRunning(boolean running) {
    method setShowPixelGrid (line 3308) | public void setShowPixelGrid(boolean show) {
    method setShowPixelInfo (line 3320) | public void setShowPixelInfo(boolean show) {
    method setSize (line 3331) | public void setSize(double width, double height) {
    method setStartupObject (line 3343) | public void setStartupObject(Object obj) {
    method setTitle (line 3355) | public void setTitle(String title) {
    method setWidth (line 3369) | public void setWidth(double width) {
    method setX (line 3378) | public void setX(double x) {
    method setY (line 3386) | public void setY(double y) {
    method showErrorMessage (line 3397) | public void showErrorMessage(String msg) {
    method start (line 3410) | public final void start() {
    method start (line 3436) | public void start(String[] args) {
    method startAnimation (line 3492) | public void startAnimation() {
    method startHook (line 3502) | protected void startHook() {
    method startRun (line 3510) | protected void startRun() {
    method stateChanged (line 3534) | public void stateChanged(ChangeEvent event) {
    method stopAnimation (line 3542) | public void stopAnimation() {
    method textValueChanged (line 3550) | public void textValueChanged(TextEvent e) {
    method validate (line 3561) | public void validate() {
    method windowActivated (line 3567) | public void windowActivated(WindowEvent event) {
    method windowClosed (line 3572) | public void windowClosed(WindowEvent event) {
    method windowClosing (line 3577) | public void windowClosing(WindowEvent event) {
    method windowDeactivated (line 3582) | public void windowDeactivated(WindowEvent event) {
    method windowDeiconified (line 3587) | public void windowDeiconified(WindowEvent event) {
    method windowGainedFocus (line 3595) | public void	windowGainedFocus(WindowEvent e) {
    method windowIconified (line 3600) | public void windowIconified(WindowEvent event) {
    method windowLostFocus (line 3608) | public void windowLostFocus(WindowEvent e) {
    method windowOpened (line 3613) | public void windowOpened(WindowEvent event) {
    method windowStateChanged (line 3621) | public void windowStateChanged(WindowEvent e) {
    method main (line 3686) | public static void main(String[] args) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramActionListener.java
  class ProgramActionListener (line 17) | class ProgramActionListener implements ActionListener {
    method ProgramActionListener (line 21) | public ProgramActionListener(Program owner) {
    method actionPerformed (line 26) | public void actionPerformed(ActionEvent e) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramAppletStub.java
  class ProgramAppletStub (line 25) | @SuppressWarnings("deprecation")
    method ProgramAppletStub (line 32) | public ProgramAppletStub(Program program) {
    method appletResize (line 36) | public void appletResize(int width, int height) {
    method getApplet (line 50) | public Applet getApplet(String name) {
    method getAppletContext (line 54) | public AppletContext getAppletContext() {
    method getApplets (line 58) | public Enumeration<Applet> getApplets() {
    method getAudioClip (line 62) | public AudioClip getAudioClip(URL url) {
    method getCanonicalPath (line 68) | private String getCanonicalPath(String start) {
    method getCodeBase (line 77) | public URL getCodeBase() {
    method getDocumentBase (line 85) | public URL getDocumentBase() {
    method getImage (line 89) | public Image getImage(URL url) {
    method getNewAudioClip (line 101) | private synchronized AudioClip getNewAudioClip(URL url) {
    method getParameter (line 113) | public String getParameter(String name) {
    method getStream (line 117) | public InputStream getStream(String key) {
    method getStreamKeys (line 121) | public java.util.Iterator<String> getStreamKeys() {
    method isActive (line 125) | public boolean isActive() {
    method setFrame (line 129) | public void setFrame(Frame frame) {
    method setStream (line 133) | public void setStream(String key, InputStream stream) {
    method showDocument (line 137) | public void showDocument(URL url) {
    method showDocument (line 141) | public void showDocument(URL url, String target) {
    method showStatus (line 145) | public void showStatus(String status) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramContentPaneLayout.java
  class ProgramContentPaneLayout (line 20) | class ProgramContentPaneLayout extends BorderLayout {
    method ProgramContentPaneLayout (line 23) | public ProgramContentPaneLayout(Program program) {
    method layoutContainer (line 27) | public void layoutContainer(Container parent) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramFrame.java
  class ProgramFrame (line 16) | class ProgramFrame extends JFrame {
    method ProgramFrame (line 17) | public ProgramFrame(String title) {
    method update (line 21) | public void update(Graphics g) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramInterface.java
  type ProgramInterface (line 18) | public interface ProgramInterface {
    method add (line 34) | public Component add(Component comp);
    method add (line 35) | public void add(Component comp, Object constraints);
    method add (line 36) | public void add(Component comp, String region, Object constraints);
    method addActionListeners (line 37) | public void addActionListeners();
    method exit (line 38) | public void exit();
    method getTitle (line 39) | public String getTitle();
    method init (line 40) | public void init();
    method pause (line 41) | public void pause(double milliseconds);
    method print (line 42) | public void print(Object value);
    method print (line 43) | public void print(String value);
    method printf (line 44) | public void printf(String format, Object... args);
    method println (line 45) | public void println();
    method println (line 46) | public void println(Object value);
    method println (line 47) | public void println(String value);
    method run (line 48) | public void run();
    method setBackground (line 49) | public void setBackground(Color color);
    method setFont (line 50) | public void setFont(Font font);
    method setForeground (line 51) | public void setForeground(Color color);
    method setParameterTable (line 52) | public void setParameterTable(Map<String, String> table);
    method setStartupObject (line 53) | public void setStartupObject(Object obj);
    method setTitle (line 54) | public void setTitle(String title);
    method start (line 55) | public void start();
    method start (line 56) | public void start(String[] args);

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramMenuBar.java
  class ProgramMenuBar (line 120) | public class ProgramMenuBar extends JMenuBar implements Iterable<JMenuIt...
    method ProgramMenuBar (line 228) | public ProgramMenuBar(Program owner) {
    method getProgram (line 296) | public Program getProgram() {
    method createStandardItem (line 310) | public JMenuItem createStandardItem(String action, int mnemonic) {
    method createStandardItem (line 314) | public JMenuItem createStandardItem(String action, int mnemonic, KeySt...
    method tryToSetIcon (line 379) | static void tryToSetIcon(JMenuItem item) {
    method createProgramItem (line 412) | public JMenuItem createProgramItem(String action) {
    method createProgramItem (line 431) | public JMenuItem createProgramItem(String action, int key, KeyStroke k...
    method createProgramItem (line 439) | public JMenuItem createProgramItem(String action, int key) {
    method createFocusedItem (line 455) | public JMenuItem createFocusedItem(String action) {
    method createFocusedItem (line 473) | public JMenuItem createFocusedItem(String action, int key) {
    method createFocusedItem (line 477) | public JMenuItem createFocusedItem(String action, int key, KeyStroke k...
    method createFocusedItem (line 481) | public JMenuItem createFocusedItem(String action, int key, KeyStroke k...
    method getMenuItem (line 494) | @SuppressWarnings("unchecked")
    method isFocusedItem (line 521) | public boolean isFocusedItem(JMenuItem item) {
    method setAccelerator (line 536) | @SuppressWarnings("deprecation")
    method setEnabled (line 564) | public void setEnabled(String action, boolean flag) {
    method install (line 580) | public void install(Component comp) {
    method fireActionListeners (line 603) | public void fireActionListeners(ActionEvent e) {
    method fireAccelerator (line 617) | public boolean fireAccelerator(KeyEvent e) {
    method setFocusedListener (line 707) | public void setFocusedListener(ActionListener listener) {
    method iterator (line 719) | public Iterator<JMenuItem> iterator() {
    method addMenus (line 736) | protected void addMenus() {
    method addFileMenu (line 758) | protected void addFileMenu() {
    method addEditMenu (line 769) | protected void addEditMenu() {
    method addConsoleOptionsMenu (line 779) | protected void addConsoleOptionsMenu() {
    method addGraphicsOptionsMenu (line 791) | protected void addGraphicsOptionsMenu() {
    method addKarelOptionsMenu (line 807) | protected void addKarelOptionsMenu() {
    method addHelpMenu (line 813) | protected void addHelpMenu() {
    method addFileMenuItems (line 834) | protected void addFileMenuItems(JMenu menu) {
    method addEditMenuItems (line 872) | protected void addEditMenuItems(JMenu menu) {
    method addItemToList (line 892) | private void addItemToList(ArrayList<JMenuItem> itemList, JMenuItem it...
    method setEnabled (line 910) | private void setEnabled(JMenu item, String action, boolean flag) {
    method setEnabled (line 925) | private void setEnabled(JMenuItem item, String action, boolean flag) {
    class ProgramMenuBarListener (line 935) | private static class ProgramMenuBarListener implements ActionListener {
      method ProgramMenuBarListener (line 944) | public ProgramMenuBarListener(ProgramMenuBar mbar) {
      method actionPerformed (line 953) | public void actionPerformed(ActionEvent e) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramStartupFlags.java
  type ProgramStartupFlags (line 3) | public interface ProgramStartupFlags {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramStartupListener.java
  class ProgramStartupListener (line 18) | class ProgramStartupListener implements ComponentListener {
    method componentHidden (line 24) | public void componentHidden(ComponentEvent e) {
    method componentMoved (line 28) | public void componentMoved(ComponentEvent e) {
    method componentResized (line 32) | public void componentResized(ComponentEvent e) {
    method componentShown (line 36) | public synchronized void componentShown(ComponentEvent e) {
    method waitForStartup (line 44) | public synchronized void waitForStartup(Program program) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/program/ProgramWindowListener.java
  class ProgramWindowListener (line 18) | class ProgramWindowListener implements WindowListener {
    method ProgramWindowListener (line 22) | public ProgramWindowListener(Program owner) {
    method windowClosing (line 27) | public void windowClosing(WindowEvent e) {
    method windowActivated (line 32) | public void windowActivated(WindowEvent e) {
    method windowClosed (line 36) | public void windowClosed(WindowEvent e) {
    method windowDeactivated (line 40) | public void windowDeactivated(WindowEvent e) {
    method windowDeiconified (line 44) | public void windowDeiconified(WindowEvent e) {
    method windowIconified (line 48) | public void windowIconified(WindowEvent e) {
    method windowOpened (line 52) | public void windowOpened(WindowEvent e) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/ErrorException.java
  class ErrorException (line 3) | public class ErrorException extends RuntimeException {
    method ErrorException (line 4) | public ErrorException(String message) {
    method ErrorException (line 8) | public ErrorException(String message, Throwable cause) {
    method ErrorException (line 12) | public ErrorException(Exception cause) {
    method ErrorException (line 16) | public ErrorException(Throwable cause) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/FileChooserFilter.java
  class FileChooserFilter (line 7) | public class FileChooserFilter extends FileFilter {
    method FileChooserFilter (line 12) | public FileChooserFilter(String path) {
    method FileChooserFilter (line 16) | public FileChooserFilter(String path, String desc) {
    method getDirectory (line 35) | public String getDirectory() {
    method getPattern (line 39) | public String getPattern() {
    method getDescription (line 43) | public String getDescription() {
    method accept (line 47) | public boolean accept(File file) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/MediaTools.java
  class MediaTools (line 73) | @SuppressWarnings("deprecation")
    method MediaTools (line 100) | private MediaTools() {
    method loadImage (line 138) | public static Image loadImage(File file) {
    method loadImage (line 177) | public static Image loadImage(String name) {
    method loadImage (line 196) | public static Image loadImage(String name, String path) {
    method loadImage (line 287) | public static Image loadImage(URL url) {
    method loadImage (line 301) | public static Image loadImage(Image image) {
    method defineImage (line 322) | public static void defineImage(String name, Image image) {
    method flushImage (line 335) | public static void flushImage(String name) {
    method createImage (line 351) | public static Image createImage(int[][] array) {
    method createImage (line 376) | public static Image createImage(int[] pixels, int width, int height) {
    method createImage (line 393) | public static Image createImage(InputStream in) {
    method createImage (line 417) | public static Image createImage(String[] hexData) {
    method getPixelArray (line 431) | public static int[][] getPixelArray(Image image) {
    method saveImage (line 466) | public static void saveImage(Image image, String filename) {
    method saveImage (line 483) | public static void saveImage(Image image, File file) {
    method createPSPreviewImage (line 525) | public static Image createPSPreviewImage(Image image, String[] preview) {
    method loadAudioClip (line 560) | public static AudioClip loadAudioClip(String name) {
    method loadAudioClip (line 580) | public static AudioClip loadAudioClip(String name, String path) {
    method loadAudioClip (line 662) | public static AudioClip loadAudioClip(URL url) {
    method defineAudioClip (line 677) | public static void defineAudioClip(String name, AudioClip clip) {
    method flushAudioClip (line 690) | public static void flushAudioClip(String name) {
    method createAudioClip (line 706) | public static AudioClip createAudioClip(InputStream in) {
    method createAudioClip (line 728) | public static AudioClip createAudioClip(String[] hexData) {
    method openDataFile (line 757) | public static InputStream openDataFile(String name) {
    method openDataFile (line 776) | public static InputStream openDataFile(String name, String path) {
    method openDataFile (line 839) | public static InputStream openDataFile(URL url) {
    method createBufferedImage (line 857) | public static BufferedImage createBufferedImage(Image image, int type) {
    method getHexInputStream (line 878) | public static InputStream getHexInputStream(String[] hexData) {
    method setCachingEnabled (line 893) | public static void setCachingEnabled(boolean flag) {
    method isCachingEnabled (line 907) | public static boolean isCachingEnabled() {
    method getImageObserver (line 920) | public static Component getImageObserver() {
    method beep (line 931) | public static void beep() {
    method loadImage (line 940) | public static Image loadImage(URL url, boolean topLevel) {
    method findImageSaver (line 970) | private static ImageSaver findImageSaver(String suffix) {
    method loadAudioClip (line 1020) | public static AudioClip loadAudioClip(URL url, boolean topLevel) {
    method openDataFile (line 1041) | public static InputStream openDataFile(URL url, boolean topLevel) {
    method isResource (line 1061) | private static boolean isResource(URL url) {
  class HexInputStream (line 1081) | class HexInputStream extends InputStream {
    method HexInputStream (line 1091) | public HexInputStream(String[] hexData) {
    method read (line 1104) | public int read() {
  class SunAudioClip (line 1131) | @SuppressWarnings("deprecation")
    method SunAudioClip (line 1142) | public SunAudioClip(InputStream in) {
    method play (line 1163) | public void play() {
    method loop (line 1174) | public void loop() {
    method stop (line 1186) | public void stop() {
    method initStaticData (line 1202) | private static void initStaticData() {
  class NullAudioClip (line 1251) | @SuppressWarnings("deprecation")
    method play (line 1254) | public void play() {
    method loop (line 1258) | public void loop() {
    method stop (line 1262) | public void stop() {
  class PSPreviewImage (line 1273) | class PSPreviewImage extends Image {
    method PSPreviewImage (line 1286) | public PSPreviewImage(Image image, String[] preview) {
    method getGraphics (line 1291) | public Graphics getGraphics() {
    method getWidth (line 1295) | public int getWidth(ImageObserver observer) {
    method getHeight (line 1299) | public int getHeight(ImageObserver observer) {
    method getProperty (line 1303) | public Object getProperty(String name, ImageObserver observer) {
    method getSource (line 1309) | public ImageProducer getSource() {
    method flush (line 1313) | public void flush() {
  class ImageSaver (line 1331) | class ImageSaver {
    method ImageSaver (line 1339) | public ImageSaver() {
    method ImageSaver (line 1355) | public ImageSaver(String format, int type) {
    method setOutputStream (line 1368) | public void setOutputStream(OutputStream output) {
    method getOutputStream (line 1379) | public OutputStream getOutputStream() {
    method saveImage (line 1394) | public void saveImage(Image image) {
    method updateFileType (line 1419) | public void updateFileType(File file) {
    method dumpByte (line 1431) | public void dumpByte(int x) {
    method dumpShort (line 1447) | public void dumpShort(int x) {
    method dumpLong (line 1464) | public void dumpLong(int x) {
    method getPixelComponent (line 1487) | public int getPixelComponent(int pixel, char color) {
  class PNGImageSaver (line 1515) | class PNGImageSaver extends ImageSaver {
    method PNGImageSaver (line 1516) | public PNGImageSaver() {
  class JPEGImageSaver (line 1525) | class JPEGImageSaver extends ImageSaver {
    method JPEGImageSaver (line 1526) | public JPEGImageSaver() {
  class JPGImageSaver (line 1531) | class JPGImageSaver extends JPEGImageSaver {
  class BMPImageSaver (line 1539) | class BMPImageSaver extends ImageSaver {
    method BMPImageSaver (line 1540) | public BMPImageSaver() {
  class GIFImageSaver (line 1556) | class GIFImageSaver extends ImageSaver {
    method GIFImageSaver (line 1558) | public GIFImageSaver() {
    method saveImage (line 1566) | public void saveImage(Image image) {
    method updateFileType (line 1575) | public void updateFileType(File file) {
  class GIF89ImageSaver (line 1589) | class GIF89ImageSaver extends ImageSaver {
    method saveImage (line 1590) | public void saveImage(Image image) {
    method updateFileType (line 1601) | public void updateFileType(File file) {
  class TIFFImageSaver (line 1617) | class TIFFImageSaver extends ImageSaver {
    method saveImage (line 1622) | public void saveImage(Image image) {
    method dumpHeader (line 1640) | private void dumpHeader() {
    method dumpIFD (line 1664) | private void dumpIFD() {
    method dumpIFDNewSubFileType (line 1681) | private void dumpIFDNewSubFileType() {
    method dumpIFDImageWidth (line 1688) | private void dumpIFDImageWidth() {
    method dumpIFDImageHeight (line 1695) | private void dumpIFDImageHeight() {
    method dumpIFDBitsPerSample (line 1702) | private void dumpIFDBitsPerSample() {
    method dumpIFDCompression (line 1709) | private void dumpIFDCompression() {
    method dumpIFDPhotometricInterpration (line 1717) | private void dumpIFDPhotometricInterpration() {
    method dumpIFDStripPointers (line 1725) | private void dumpIFDStripPointers() {
    method dumpIFDSamplesPerPixel (line 1732) | private void dumpIFDSamplesPerPixel() {
    method dumpIFDRowsPerStrip (line 1740) | private void dumpIFDRowsPerStrip() {
    method dumpIFDStripByteCounts (line 1747) | private void dumpIFDStripByteCounts() {
    method dumpIFDXResolution (line 1754) | private void dumpIFDXResolution() {
    method dumpIFDYResolution (line 1761) | private void dumpIFDYResolution() {
    method dumpIFDResolutionUnit (line 1768) | private void dumpIFDResolutionUnit() {
    method dumpNullIFD (line 1779) | private void dumpNullIFD() {
    method dumpBitsPerSampleData (line 1787) | private void dumpBitsPerSampleData() {
    method dumpResolutionData (line 1799) | private void dumpResolutionData() {
    method dumpStripPointers (line 1809) | private void dumpStripPointers() {
    method dumpStripByteCounts (line 1818) | private void dumpStripByteCounts() {
    method dumpStripData (line 1827) | private void dumpStripData() {
    method calculateOffsets (line 1844) | private void calculateOffsets() {
  class TIFImageSaver (line 1880) | class TIFImageSaver extends TIFFImageSaver {
  class PICTImageSaver (line 1895) | class PICTImageSaver extends ImageSaver {
    method saveImage (line 1900) | public void saveImage(Image image) {
    method setPaddingFlag (line 1937) | public void setPaddingFlag(boolean flag) {
    method dumpPadding (line 1945) | private void dumpPadding() {
    method dumpHeader (line 1954) | private void dumpHeader() {
    method dumpDefHilite (line 1980) | private void dumpDefHilite() {
    method dumpClipRegion (line 1987) | private void dumpClipRegion() {
    method dumpBoundsMarkers (line 2000) | private void dumpBoundsMarkers() {
    method dumpDirectBitsRect (line 2015) | private void dumpDirectBitsRect() {
    method dumpPixMap (line 2034) | private void dumpPixMap() {
    method dumpEndPict (line 2060) | private void dumpEndPict() {
    method dumpPixelData (line 2067) | private void dumpPixelData() {
    method packScanLine (line 2118) | private int packScanLine(byte[] data, int[] scanline) {
    method dumpPSPreview (line 2185) | private void dumpPSPreview() {
    method addPSComment (line 2213) | private void addPSComment(String line) {
  class PICImageSaver (line 2254) | class PICImageSaver extends PICTImageSaver {
  class EPSImageSaver (line 2262) | class EPSImageSaver extends ImageSaver {
    method saveImage (line 2263) | public void saveImage(Image image) {
  class RTFImageSaver (line 2273) | class RTFImageSaver extends PICTImageSaver {
    method saveImage (line 2274) | public void saveImage(Image image) {
    method updateFileType (line 2296) | public void updateFileType(File file) {
  class DirectGif89Frame (line 2344) | class DirectGif89Frame extends Gif89Frame {
    method DirectGif89Frame (line 2357) | public DirectGif89Frame(Image img) throws IOException {
    method DirectGif89Frame (line 2388) | public DirectGif89Frame(int width, int height, int argb_pixels[]) {
    method getPixelSource (line 2396) | Object getPixelSource() {
  class Gif89Encoder (line 2486) | class Gif89Encoder {
    method Gif89Encoder (line 2499) | public Gif89Encoder() {
    method Gif89Encoder (line 2513) | public Gif89Encoder(Image static_image) throws IOException {
    method Gif89Encoder (line 2530) | public Gif89Encoder(Color[] colors) {
    method Gif89Encoder (line 2551) | public Gif89Encoder(Color[] colors, int width, int height, byte ci_pix...
    method getFrameCount (line 2562) | public int getFrameCount() {
    method getFrameAt (line 2574) | public Gif89Frame getFrameAt(int index) {
    method addFrame (line 2592) | public void addFrame(Gif89Frame gf) throws IOException {
    method addFrame (line 2609) | public void addFrame(Image image) throws IOException {
    method addFrame (line 2629) | public void addFrame(int width, int height, byte ci_pixels[])
    method insertFrame (line 2648) | public void insertFrame(int index, Gif89Frame gf) throws IOException {
    method setTransparentIndex (line 2660) | public void setTransparentIndex(int index) {
    method setLogicalDisplay (line 2674) | public void setLogicalDisplay(Dimension dim, int background) {
    method setLoopCount (line 2686) | public void setLoopCount(int count) {
    method setComments (line 2696) | public void setComments(String comments) {
    method setUniformDelay (line 2709) | public void setUniformDelay(int interval) {
    method encode (line 2726) | public void encode(OutputStream out) throws IOException {
    method main (line 2773) | public static void main(String[] args) {
    method accommodateFrame (line 2803) | private void accommodateFrame(Gif89Frame gf) throws IOException {
    method writeLogicalScreenDescriptor (line 2809) | private void writeLogicalScreenDescriptor(OutputStream os)
    method writeNetscapeExtension (line 2839) | private void writeNetscapeExtension(OutputStream os) throws IOException {
    method writeCommentExtension (line 2859) | private void writeCommentExtension(OutputStream os) throws IOException {
    method isOk (line 2878) | private boolean isOk(int frame_index) {
  class GifColorTable (line 2883) | class GifColorTable {
    method GifColorTable (line 2896) | GifColorTable() {
    method GifColorTable (line 2900) | GifColorTable(Color[] colors) {
    method getDepth (line 2906) | int getDepth() {
    method getTransparent (line 2910) | int getTransparent() {
    method setTransparent (line 2915) | void setTransparent(int color_index) {
    method processPixels (line 2919) | void processPixels(Gif89Frame gf) throws IOException {
    method closePixelProcessing (line 2926) | void closePixelProcessing() { /* must be called before encode() */
    method encode (line 2930) | void encode(OutputStream os) throws IOException {
    method filterPixels (line 2950) | private void filterPixels(DirectGif89Frame dgf) throws IOException {
    method trackPixelUsage (line 2999) | private void trackPixelUsage(IndexGif89Frame igf) {
    method computeColorDepth (line 3007) | private int computeColorDepth(int colorcount) {
  class ReverseColorMap (line 3031) | class ReverseColorMap {
    class ColorRecord (line 3033) | private static class ColorRecord {
      method ColorRecord (line 3037) | ColorRecord(int rgb, int ipalette) {
    method getPaletteIndex (line 3058) | int getPaletteIndex(int rgb) {
    method put (line 3074) | void put(int rgb, int ipalette) {
  class Gif89Frame (line 3129) | abstract class Gif89Frame {
    method setPosition (line 3183) | public void setPosition(Point p) {
    method setInterlaced (line 3193) | public void setInterlaced(boolean b) {
    method setDelay (line 3204) | public void setDelay(int interval) {
    method setDisposalMode (line 3218) | public void setDisposalMode(int code) {
    method Gif89Frame (line 3222) | Gif89Frame() {
    method getPixelSource (line 3225) | abstract Object getPixelSource();
    method getWidth (line 3227) | int getWidth() {
    method getHeight (line 3231) | int getHeight() {
    method getPixelSink (line 3235) | byte[] getPixelSink() {
    method encode (line 3239) | void encode(OutputStream os, boolean epluribus, int color_depth,
    method writeGraphicControlExtension (line 3247) | private void writeGraphicControlExtension(OutputStream os,
    method writeImageDescriptor (line 3264) | private void writeImageDescriptor(OutputStream os) throws IOException {
  class GifPixelsEncoder (line 3274) | class GifPixelsEncoder {
    method GifPixelsEncoder (line 3288) | GifPixelsEncoder(int width, int height, byte[] pixels, boolean interla...
    method encode (line 3297) | void encode(OutputStream os) throws IOException {
    method bumpPosition (line 3316) | private void bumpPosition() {
    method nextPixel (line 3359) | private int nextPixel() {
    method MAXCODE (line 3411) | final int MAXCODE(int n_bits) {
    method compress (line 3445) | void compress(int init_bits, OutputStream outs) throws IOException {
    method output (line 3532) | void output(int code, OutputStream outs) throws IOException {
    method cl_block (line 3578) | void cl_block(OutputStream outs) throws IOException {
    method cl_hash (line 3587) | void cl_hash(int hsize) {
    method char_init (line 3598) | void char_init() {
    method char_out (line 3607) | void char_out(byte c, OutputStream outs) throws IOException {
    method flush_char (line 3614) | void flush_char(OutputStream outs) throws IOException {
  class IndexGif89Frame (line 3647) | class IndexGif89Frame extends Gif89Frame {
    method IndexGif89Frame (line 3659) | public IndexGif89Frame(int width, int height, byte ci_pixels[]) {
    method getPixelSource (line 3666) | Object getPixelSource() {
  class Gif89Put (line 3681) | final class Gif89Put {
    method ascii (line 3688) | static void ascii(String s, OutputStream os) throws IOException {
    method leShort (line 3698) | static void leShort(int i16, OutputStream os) throws IOException {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/PatchingClassLoader.java
  class PatchingClassLoader (line 14) | public class PatchingClassLoader extends ClassLoader {
    method PatchingClassLoader (line 33) | public PatchingClassLoader(String targetClassName, Class<?> newSuperCl...
    method PatchingClassLoader (line 37) | public PatchingClassLoader(String targetClassName, String newSuperClas...
    method loadClass (line 49) | public Class<?> loadClass(String name, boolean resolve) throws ClassNo...
    method getResourceAsStream (line 61) | public InputStream getResourceAsStream(String name) {
    method getResource (line 65) | public java.net.URL getResource(String name) {
    method patchClassData (line 69) | private byte[] patchClassData(InputStream in) {
    method findSuperclassOffset (line 123) | private int findSuperclassOffset(InputStream in) {
    method getConstantTypeName (line 158) | private static String getConstantTypeName(int id) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/RandomGenerator.java
  class RandomGenerator (line 73) | public class RandomGenerator extends Random {
    method RandomGenerator (line 96) | public RandomGenerator() {
    method RandomGenerator (line 106) | public RandomGenerator(long seed) {
    method nextChoice (line 115) | public <T> T nextChoice(T... choices) {
    method nextChoice (line 129) | public <T> T nextChoice(List<T> choices) {
    method nextChoice (line 143) | public <T> T nextChoice(Iterable<T> choices) {
    method nextInt (line 154) | public int nextInt() {
    method nextInt (line 175) | public int nextInt(int n) {
    method nextBoolean (line 187) | public boolean nextBoolean() {
    method nextInt (line 222) | public int nextInt(int low, int high) {
    method nextDouble (line 281) | public double nextDouble(double low, double high) {
    method nextBoolean (line 305) | public boolean nextBoolean(double p) {
    method nextColor (line 318) | public Color nextColor() {
    method getInstance (line 329) | public static synchronized RandomGenerator getInstance() {
    method clearFixedIntegers (line 340) | public static synchronized void clearFixedIntegers() {
    method feedFixedIntegers (line 352) | public static synchronized void feedFixedIntegers(int... numbers) {
    method feedFixedIntegers (line 366) | public static synchronized void feedFixedIntegers(Iterable<Integer> nu...
    method setSharedSeed (line 380) | public static void setSharedSeed(long seed) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/SoundClip.java
  class SoundClip (line 44) | @SuppressWarnings("deprecation")
    method SoundClip (line 90) | public SoundClip() {
    method SoundClip (line 102) | public SoundClip(int channels) {
    method SoundClip (line 122) | public SoundClip(String name) {
    method SoundClip (line 144) | public SoundClip(File file) {
    method SoundClip (line 160) | public SoundClip(URL url) {
    method SoundClip (line 176) | public SoundClip(InputStream in) {
    method SoundClip (line 188) | public SoundClip(int[] samples) {
    method SoundClip (line 201) | public SoundClip(int[] left, int[] right) {
    method play (line 212) | public synchronized void play() {
    method loop (line 223) | public void loop() {
    method stop (line 236) | public synchronized void stop() {
    method save (line 256) | public void save(String filename) {
    method save (line 267) | public void save(File file) {
    method getName (line 283) | public String getName() {
    method setName (line 294) | public void setName(String name) {
    method getChannelCount (line 305) | public int getChannelCount() {
    method isStereo (line 316) | public boolean isStereo() {
    method getFrameCount (line 327) | public int getFrameCount() {
    method getFrameRate (line 338) | public double getFrameRate() {
    method getDuration (line 349) | public double getDuration() {
    method getFrameIndex (line 360) | public int getFrameIndex() {
    method setFrameIndex (line 371) | public void setFrameIndex(int frameIndex) {
    method rewind (line 382) | public void rewind() {
    method getVolume (line 394) | public double getVolume() {
    method setVolume (line 406) | public void setVolume(double volume) {
    method getSampleData (line 419) | public int[] getSampleData() {
    method getSampleData (line 432) | public int[] getSampleData(int channel) {
    method addSampleData (line 454) | public void addSampleData(int sample) {
    method addSampleData (line 482) | public void addSampleData(int left, int right) {
    method addSampleData (line 511) | public void addSampleData(int[] samples) {
    method addSampleData (line 539) | public void addSampleData(int[] left, int[] right) {
    method toString (line 569) | public String toString() {
    method sampleToIntensity (line 592) | public static double sampleToIntensity(int sample) {
    method intensityToSample (line 605) | public static int intensityToSample(double intensity) {
    method getData (line 617) | protected byte[] getData() {
    method getFormat (line 625) | protected AudioFormat getFormat() {
    method getAudioInputStream (line 633) | protected AudioInputStream getAudioInputStream() {
    method standardize (line 645) | private void standardize() {
    method getFormatForFile (line 669) | private AudioFileFormat.Type getFormatForFile(String name) {
    method readSound (line 681) | private void readSound(AudioInputStream in) {
    method convertToPCM (line 731) | private AudioInputStream convertToPCM(AudioInputStream in) {
    method getAudioInputStream (line 741) | private AudioInputStream getAudioInputStream(InputStream in) {
    method getAudioInputStream (line 758) | private AudioInputStream getAudioInputStream(File file) {
    method createUnsupportedFormatMessage (line 772) | private String createUnsupportedFormatMessage() {
  class SoundPlayer (line 801) | class SoundPlayer implements Runnable {
    method SoundPlayer (line 807) | public SoundPlayer(SoundClip sound) {
    method play (line 816) | public void play() {
    method loop (line 827) | public void loop() {
    method stop (line 840) | public void stop() {
    method run (line 856) | public void run() {
    method openSourceDataLine (line 894) | private SourceDataLine openSourceDataLine(int bufferSize) {
    method setLineVolume (line 910) | private void setLineVolume(SourceDataLine line, double volume) {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/Timer.java
  class Timer (line 12) | public class Timer {
    method Timer (line 22) | public Timer() {
    method Timer (line 30) | public Timer(boolean autostart) {
    method elapsed (line 44) | public long elapsed() {
    method isStarted (line 51) | public boolean isStarted() {
    method start (line 60) | public void start() {
    method stop (line 69) | public long stop() {
    method currentTimeMS (line 82) | public static long currentTimeMS() {

FILE: Archived/JavaBackEnd/eclipseproject/src/acm/util/TokenScanner.java
  class TokenScanner (line 10) | public class TokenScanner
    method TokenScanner (line 13) | public TokenScanner()
    method TokenScanner (line 26) | public TokenScanner(String s)
    method TokenScanner (line 32) | public TokenScanner(Reader reader)
    method setInput (line 38) | public void setInput(String s)
    method setInput (line 43) | public void setInput(Reader reader)
    method hasMoreTokens (line 51) | public boolean hasMoreTokens()
    method nextToken (line 58) | public String nextToken()
    method saveToken (line 66) | public void saveToken(String s)
    method getPosition (line 71) | public int getPosition()
    method ignoreWhitespace (line 79) | public void ignoreWhitespace()
    method ignoreComments (line 84) | public void ignoreComments()
    method scanNumbers (line 89) | public void scanNumbers()
    method scanStrings (line 94) | public void scanStrings()
    method addWordCharacters (line 99) | public void addWordCharacters(String s)
    method isWordCharacter (line 109) | public boolean isWordCharacter(int i)
    method addOperator (line 117) | public void addOperator(String s)
    method verifyToken (line 122) | public void verifyToken(String s)
    method getTokenType (line 135) | public int getTokenType(String s)
    method getChar (line 193) | public int getChar()
    method ungetChar (line 213) | public void ungetChar(int i)
    method getStringValue (line 237) | public String getStringValue(String s)
    method scanToken (line 351) | private String scanToken()
    method scanChar (line 404) | private int scanChar()
    method scanWord (line 451) | private String scanWord()
    method scanNumber (line 462) | private String scanNumber()
    method scanString (line 547) | private String scanString()
    method isOperator (line 589) | private boolean isOperator(String s)
    method isOperatorPrefix (line 598) | private boolean isOperatorPrefix(String s)

FILE: Archived/JavaBackEnd/eclipseproject/src/javazoom/jlgui/basicplayer/BasicController.java
  type BasicController (line 32) | public interface BasicController
    method open (line 39) | public void open(InputStream in) throws BasicPlayerException;
    method open (line 46) | public void open(File file) throws BasicPlayerException;
    method open (line 53) | public void open(URL url) throws BasicPlayerException;
    method seek (line 61) | public long seek(long bytes) throws BasicPlayerException;
    method play (line 67) | public void play() throws BasicPlayerException;
    method stop (line 73) | public void stop() throws BasicPlayerException;
    method pause (line 79) | public void pause() throws BasicPlayerException;
    method resume (line 85) | public void resume() throws BasicPlayerException;
    method setPan (line 93) | public void setPan(double pan) throws BasicPlayerException;
    method setGain (line 101) | public void setGain(double gain) throws BasicPlayerException;

FILE: Archived/JavaBackEnd/eclipseproject/src/javazoom/jlgui/basicplayer/BasicPlayer.java
  class BasicPlayer (line 55) | @SuppressWarnings({ "rawtypes", "unchecked" })
    method BasicPlayer (line 90) | public BasicPlayer() {
    method reset (line 96) | protected void reset() {
    method addBasicPlayerListener (line 121) | public void addBasicPlayerListener(BasicPlayerListener bpl) {
    method getListeners (line 130) | public Collection getListeners() {
    method removeBasicPlayerListener (line 139) | public void removeBasicPlayerListener(BasicPlayerListener bpl) {
    method setLineBufferSize (line 153) | public void setLineBufferSize(int size) {
    method getLineBufferSize (line 162) | public int getLineBufferSize() {
    method getLineCurrentBufferSize (line 171) | public int getLineCurrentBufferSize() {
    method setSleepTime (line 181) | public void setSleepTime(long time) {
    method getSleepTime (line 190) | public long getSleepTime() {
    method getStatus (line 199) | public int getStatus() {
    method open (line 206) | public void open(File file) throws BasicPlayerException {
    method open (line 216) | public void open(URL url) throws BasicPlayerException {
    method open (line 226) | public void open(InputStream inputStream) throws BasicPlayerException {
    method initAudioInputStream (line 238) | protected void initAudioInputStream() throws BasicPlayerException {
    method initAudioInputStream (line 317) | protected void initAudioInputStream(File file)
    method initAudioInputStream (line 326) | protected void initAudioInputStream(URL url)
    method initAudioInputStream (line 335) | protected void initAudioInputStream(InputStream inputStream)
    method initLine (line 344) | protected void initLine() throws LineUnavailableException {
    method createLine (line 374) | protected void createLine() throws LineUnavailableException {
    method openLine (line 419) | protected void openLine() throws LineUnavailableException {
    method stopPlayback (line 450) | protected void stopPlayback() {
    method pausePlayback (line 470) | protected void pausePlayback() {
    method resumePlayback (line 487) | protected void resumePlayback() {
    method startPlayback (li
Copy disabled (too large) Download .json
Condensed preview — 2285 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (34,500K chars).
[
  {
    "path": ".gitignore",
    "chars": 120,
    "preview": "# Editor droppings\n*~\n*.sw?\n\n# MacOS droppings\n.DS_Store\n\n*.pro.user.*\n*.pro.user\n\n# Build products\nbuild*/\n*.app\n*.exe\n"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/Autograder_QtCreatorProject.pro",
    "chars": 21812,
    "preview": "#####################################################################\n## Stanford CS 106 B/X Qt Creator project file    "
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/lateDays.txt",
    "chars": 110,
    "preview": "student_submission_time: 13/Oct/2014 10:31:15\nassignment_due_time: 13/Oct/2014 23:59:00\ncalendar_days_late: 0\n"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/lib/readme.txt",
    "chars": 176,
    "preview": "This directory contains any libraries that should be\r\nlinked to your project when it is built.\r\nThe most common library "
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/res/inputpanel-mainfunc.xml",
    "chars": 267,
    "preview": "<inputpanel assignment=\"CS 106B Test\">\n\t<category name=\"General\">\n\t\t<button text=\"Yes\" />\n\t\t<button text=\"No\" />\n\t\t<butt"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/res/myinput.txt",
    "chars": 6376,
    "preview": "EMPTY DEFAULT FILE CONTENTS (replace with the student's!)\n01234567890123456789012345678901234567890123456789012345678901"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/res/stylecheck-mainfunc-cpp.xml",
    "chars": 4986,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<stylecheck type=\"text\" filename=\"life.cpp\" omitonpass=\"true\">\n\t<pattern regex=\"I"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/mainfunc.cpp",
    "chars": 7025,
    "preview": "/*\n * Test file for verifying the Stanford C++ autograder lib functionality.\n */\n\n#include <iostream>\n#include <string>\n"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/readme.txt",
    "chars": 166,
    "preview": "This directory contains the source code files (*.cpp, *.h)\r\nthat you will write as you complete the assignment.\r\nWe will"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/_collectionTests.cp_",
    "chars": 38363,
    "preview": "/*\r\n * Test file for verifying the Stanford C++ lib collection functionality.\r\n */\r\n\r\n// all collections:\r\n// BasicGraph"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-basicgraph.cpp",
    "chars": 9821,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"basic"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-common.h",
    "chars": 2226,
    "preview": "/*\n * Common helper functions used by collection tests.\n * @version 2016/10/22\n * - initial version\n */\n\n#ifndef _collec"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-dawglexicon.cpp",
    "chars": 7281,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"dawgl"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-deque.cpp",
    "chars": 2961,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"deque"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-graph.cpp",
    "chars": 6656,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"graph"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-grid.cpp",
    "chars": 4929,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"grid."
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-hashmap.cpp",
    "chars": 6327,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"hashm"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-hashset.cpp",
    "chars": 6002,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"hashc"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-lexicon.cpp",
    "chars": 6909,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"lexic"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashmap.cpp",
    "chars": 5427,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"linke"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedhashset.cpp",
    "chars": 5529,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"linke"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-linkedlist.cpp",
    "chars": 6526,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"linke"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-map.cpp",
    "chars": 5893,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"map.h"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-priorityqueue.cpp",
    "chars": 4677,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"prior"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-queue.cpp",
    "chars": 3017,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"queue"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-set.cpp",
    "chars": 7262,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"set.h"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-sparsegrid.cpp",
    "chars": 4551,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"spars"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-stack.cpp",
    "chars": 1807,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"stack"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/collection-test-vector.cpp",
    "chars": 19361,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib collection functionality.\n */\n\n#include \"testcases.h\"\n#include \"stack"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/exceptionTests.cpp",
    "chars": 3650,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib exception functionality.\n */\n\n#include \"testcases.h\"\n#include \"error."
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/guiTests.cpp",
    "chars": 9225,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib GUI functionality.\n */\n\n#include \"testcases.h\"\n#include \"filelib.h\"\n#"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/imageDiffTests.cpp",
    "chars": 4345,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib image diff lib functionality.\n */\n\n#include \"testcases.h\"\n#include \"a"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/pipeTest.cpp",
    "chars": 3752,
    "preview": "#include \"testcases.h\"\n#include \"consoletext.h\"\n#include \"error.h\"\n#include \"regexpr.h\"\n#include \"simpio.h\"\n#include \"st"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/serverTest.cpp",
    "chars": 556,
    "preview": "#include \"testcases.h\"\n#include \"consoletext.h\"\n#include \"error.h\"\n#include \"gevents.h\"\n#include \"server.h\"\n#include <io"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/stringTests.cpp",
    "chars": 1454,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib string lib functionality.\n */\n\n#include \"testcases.h\"\n#include \"asser"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/systemTests.cpp",
    "chars": 2297,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib system functionality.\n */\n\n#include \"testcases.h\"\n#include \"assertion"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/testcases.h",
    "chars": 1467,
    "preview": "#ifndef _testcases_h\n#define _testcases_h\n\n#include \"assertions.h\"\n\n// default timeout in ms for test cases\n#define TEST"
  },
  {
    "path": "Archived/Autograder_QtCreatorProject/src/test/urlTests.cpp",
    "chars": 607,
    "preview": "/*\n * Test file for verifying the Stanford C++ lib urlstream functionality.\n */\n\n#include \"testcases.h\"\n#include \"urlstr"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.classpath",
    "chars": 671,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" "
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/codeStyleSettings.xml",
    "chars": 281,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectCodeStyleSettingsManager\">\n    <o"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/compiler.xml",
    "chars": 686,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <resourceExt"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/copyright/profiles_settings.xml",
    "chars": 74,
    "preview": "<component name=\"CopyrightManager\">\n  <settings default=\"\" />\n</component>"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/dictionaries/stepp.xml",
    "chars": 84,
    "preview": "<component name=\"ProjectDictionaryState\">\n  <dictionary name=\"stepp\" />\n</component>"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/inspectionProfiles/Project_Default.xml",
    "chars": 841,
    "preview": "<component name=\"InspectionProjectProfileManager\">\n  <profile version=\"1.0\">\n    <option name=\"myName\" value=\"Project De"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/inspectionProfiles/profiles_settings.xml",
    "chars": 235,
    "preview": "<component name=\"InspectionProjectProfileManager\">\n  <settings>\n    <option name=\"PROJECT_PROFILE\" value=\"Project Defaul"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/misc.xml",
    "chars": 2738,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ClientPropertiesManager\">\n    <propertie"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/modules.xml",
    "chars": 292,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n   "
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/vcs.xml",
    "chars": 186,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping dire"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.idea/workspace.xml",
    "chars": 35118,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"t"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.project",
    "chars": 402,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<projectDescription>\r\n\t<name>StanfordCPPLib_JavaBackEnd</name>\r\n\t<comment></comm"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/.settings/org.eclipse.jdt.core.prefs",
    "chars": 6667,
    "preview": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore\norg.ecli"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/StanfordCPPLib_JavaBackEnd.iml",
    "chars": 3368,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">\n  <component name=\"EclipseModuleManager\">"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/G3DRect.html",
    "chars": 20081,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GCanvas.html",
    "chars": 180731,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GCanvasInterface.html",
    "chars": 28688,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GCompound.html",
    "chars": 56664,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GContainer.html",
    "chars": 19513,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GImage.html",
    "chars": 54586,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GLabel.html",
    "chars": 43146,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GLine.html",
    "chars": 35746,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GLineGroup.html",
    "chars": 31241,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GMath.html",
    "chars": 27548,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GObject.html",
    "chars": 83808,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GOval.html",
    "chars": 32672,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GPoint.html",
    "chars": 25570,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GRectangle.html",
    "chars": 47494,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GResizable.html",
    "chars": 11351,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/GScalable.html",
    "chars": 9217,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/package-frame.html",
    "chars": 2426,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/package-summary.html",
    "chars": 9031,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/graphics/package-tree.html",
    "chars": 10623,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/DoubleField.html",
    "chars": 121311,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/Event.html",
    "chars": 13583,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/IntField.html",
    "chars": 121086,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JButtonGroup.html",
    "chars": 107115,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.DialogCancelAction.html",
    "chars": 19977,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.DialogOKAction.html",
    "chars": 19975,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.ListSearchTextFieldDocumentHandler.ListSelector.html",
    "chars": 12312,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.ListSearchTextFieldDocumentHandler.html",
    "chars": 17089,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.ListSelectionHandler.html",
    "chars": 11628,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.TextFieldFocusHandlerForTextSelection.html",
    "chars": 15720,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.TextFieldKeyHandlerForListSelectionUpDown.html",
    "chars": 14557,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JFontChooser.html",
    "chars": 113864,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JListOptionPane.html",
    "chars": 92257,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JPlaceholderTextField.html",
    "chars": 120062,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/JStringList.html",
    "chars": 130533,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/TableLayout.html",
    "chars": 69231,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/package-frame.html",
    "chars": 1537,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/package-summary.html",
    "chars": 6474,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/gui/package-tree.html",
    "chars": 15149,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/ConsoleModel.html",
    "chars": 22685,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/IOConsole.html",
    "chars": 121862,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/SimpleScanner.html",
    "chars": 106531,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/StandardConsoleModel.html",
    "chars": 45840,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/SystemConsoleModel.html",
    "chars": 33707,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/package-frame.html",
    "chars": 1269,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/package-summary.html",
    "chars": 5680,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/io/package-tree.html",
    "chars": 6681,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/AbstractConsoleProgram.html",
    "chars": 130580,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/AsciiArtProgram.html",
    "chars": 122107,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/CommandLineProgram.html",
    "chars": 138127,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/ConsoleProgram.html",
    "chars": 136276,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/DialogProgram.html",
    "chars": 103401,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/GraphicsProgram.html",
    "chars": 178511,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/GraphicsProgramInterface.html",
    "chars": 25063,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/HeadlessGraphicsProgram.html",
    "chars": 92190,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/Program.html",
    "chars": 401014,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/ProgramInterface.html",
    "chars": 24383,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/ProgramMenuBar.html",
    "chars": 181835,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/ProgramStartupFlags.html",
    "chars": 14046,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/package-frame.html",
    "chars": 2196,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/package-summary.html",
    "chars": 12225,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/program/package-tree.html",
    "chars": 18738,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/ErrorException.html",
    "chars": 15367,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/FileChooserFilter.html",
    "chars": 15838,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/MediaTools.html",
    "chars": 70111,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/PatchingClassLoader.html",
    "chars": 23685,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/RandomGenerator.html",
    "chars": 34210,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/SoundClip.html",
    "chars": 50628,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/package-frame.html",
    "chars": 1346,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/package-summary.html",
    "chars": 6361,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/acm/util/package-tree.html",
    "chars": 7199,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/allclasses-frame.html",
    "chars": 18139,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/allclasses-noframe.html",
    "chars": 15499,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/constant-values.html",
    "chars": 70970,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/deprecated-list.html",
    "chars": 3494,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/help-doc.html",
    "chars": 8212,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/index-all.html",
    "chars": 1009283,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/index.html",
    "chars": 2863,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\">\n<!-- NewPage -->\n<"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicController.html",
    "chars": 17159,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicPlayer.html",
    "chars": 73417,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicPlayerEvent.html",
    "chars": 24226,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicPlayerEventLauncher.html",
    "chars": 23466,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicPlayerException.html",
    "chars": 27579,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/BasicPlayerListener.html",
    "chars": 12428,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/package-frame.html",
    "chars": 1706,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/package-summary.html",
    "chars": 7105,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/javazoom/jlgui/basicplayer/package-tree.html",
    "chars": 7451,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/overview-frame.html",
    "chars": 2042,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/overview-summary.html",
    "chars": 5998,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/overview-tree.html",
    "chars": 61972,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/package-list",
    "chars": 232,
    "preview": "acm.graphics\nacm.gui\nacm.io\nacm.program\nacm.util\nstanford.cs106.audio\nstanford.cs106.collections\nstanford.cs106.gui\nstan"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/script.js",
    "chars": 827,
    "preview": "function show(type)\n{\n    count = 0;\n    for (var key in methods) {\n        var row = document.getElementById(key);\n    "
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/serialized-form.html",
    "chars": 84215,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/Accidental.html",
    "chars": 17844,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/Note.html",
    "chars": 37330,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/Pitch.html",
    "chars": 19776,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/SplClip.html",
    "chars": 24383,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/StdAudio.AudioEvent.Type.html",
    "chars": 19345,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/StdAudio.AudioEvent.html",
    "chars": 16611,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/StdAudio.AudioEventListener.html",
    "chars": 7661,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/StdAudio.html",
    "chars": 27258,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/package-frame.html",
    "chars": 1769,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/package-summary.html",
    "chars": 7141,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/audio/package-tree.html",
    "chars": 7290,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/GuidedAutograder.ReflectionPanel.html",
    "chars": 29515,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/GuidedAutograder.StudentProgramRunnerThread.html",
    "chars": 26049,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/GuidedAutograder.html",
    "chars": 87189,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/package-frame.html",
    "chars": 838,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/package-summary.html",
    "chars": 4727,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/autograder/package-tree.html",
    "chars": 6201,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/AbstractMultimap.html",
    "chars": 33579,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/AbstractTable.html",
    "chars": 41797,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/BasicGraph.html",
    "chars": 117383,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Edge.html",
    "chars": 28610,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Graph.html",
    "chars": 76028,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/GraphColor.html",
    "chars": 18261,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Grid.html",
    "chars": 21476,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/HashBasedTable.html",
    "chars": 19838,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/HashMultimap.html",
    "chars": 18231,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Lexicon.html",
    "chars": 24056,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Multimap.html",
    "chars": 17284,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Table.html",
    "chars": 21573,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/TreeBasedTable.html",
    "chars": 22962,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/TreeMultimap.html",
    "chars": 19775,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Vertex.Event.html",
    "chars": 16076,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/Vertex.html",
    "chars": 36732,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/package-frame.html",
    "chars": 2762,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/package-summary.html",
    "chars": 9650,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/collections/package-tree.html",
    "chars": 10271,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/Diff.Difference.Type.html",
    "chars": 17205,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/Diff.Difference.html",
    "chars": 17587,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/Diff.html",
    "chars": 31861,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/DiffCollection.Difference.html",
    "chars": 22265,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/DiffCollection.html",
    "chars": 33102,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/DiffGui.html",
    "chars": 27766,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/DiffImage.html",
    "chars": 101308,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/package-frame.html",
    "chars": 1545,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/package-summary.html",
    "chars": 6575,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/diff/package-tree.html",
    "chars": 8834,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/ClipboardUtils.html",
    "chars": 11503,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/GuiUtils.html",
    "chars": 101714,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/JComboGroupBox.html",
    "chars": 102927,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/ListOptionPane.html",
    "chars": 87364,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/ResizeListener.html",
    "chars": 7699,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/WindowCloseKeyListener.html",
    "chars": 16082,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/package-frame.html",
    "chars": 1488,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/package-summary.html",
    "chars": 6396,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/gui/package-tree.html",
    "chars": 10015,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  },
  {
    "path": "Archived/JavaBackEnd/eclipseproject/doc/stanford/cs106/io/ExtensionFileFilter.html",
    "chars": 14389,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- NewPage -->\n"
  }
]

// ... and 2085 more files (download for full content)

About this extraction

This page contains the full source code of the stepp/stanford-cpp-library GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2285 files (31.0 MB), approximately 8.3M tokens, and a symbol index with 14345 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!