Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 2 / docs / html
diff options
context:
space:
mode:
Commitc5431e4d321dbf0152e6826841c1ef5c1291ba5b (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-06-14 15:38:50 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-06-14 15:38:50 +0300
Filesbe7dbd4b6188924bb3a1a9398169526f236b09b9 /Year 1/Object-oriented Programming/Project 2/docs/html
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.tar
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.tar.gz
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.zip
Parentccedf6f5d89f375580ff6af40296aab953f9cd09 (diff)
Added files from project 2 (mirror)
207 files changed, 15530 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html107
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html99
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html119
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html107
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html106
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html97
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html102
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html95
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg403
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html180
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html380
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html97
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html106
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html95
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html100
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html104
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html133
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html113
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html227
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html129
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html114
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html83
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html235
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCell.pngbin0 -> 846 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html271
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.pngbin0 -> 367 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html85
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html254
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.pngbin0 -> 385 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html252
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.pngbin0 -> 309 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html85
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html248
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.pngbin0 -> 376 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html82
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html167
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html106
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classList.html429
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html82
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html132
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classString.html444
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html85
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html116
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html80
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html97
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/classes.html99
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/closed.pngbin0 -> 132 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html100
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html93
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html101
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html79
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html93
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html85
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html79
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html92
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html92
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/doc.pngbin0 -> 746 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css1841
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg26
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js121
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/files.html101
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.pngbin0 -> 616 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.pngbin0 -> 597 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/functions.html158
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html156
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html76
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/globals.html81
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html81
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/index.html108
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js35
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html94
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/menu.js127
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js65
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/open.pngbin0 -> 123 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js18
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js11
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js11
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js8
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg31
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js8
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js11
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js8
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg74
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html13
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css263
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js794
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/search_l.pngbin0 -> 567 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/search_r.pngbin0 -> 553 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/search/searchdata.js30
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/splitbar.pngbin0 -> 314 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/structPair-members.html82
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html107
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.pngbin0 -> 169 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css1
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html
new file mode 100644
index 0000000..0bde245
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellDouble.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">CellDouble.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCellDouble.html" title="A table cell which contains a double-precision floating point number.">CellDouble</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Cell_8h_source.html">Cell.h</a>&quot;</code><br />
+</div>
+<p><a href="CellDouble_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html">CellDouble</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A table cell which contains a double-precision floating point number. <a href="classCellDouble.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCellDouble.html" title="A table cell which contains a double-precision floating point number.">CellDouble</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html
new file mode 100644
index 0000000..66cefe2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellDouble.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellDouble.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="CellDouble_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CELLDOUBLE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CELLDOUBLE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Cell_8h.html">Cell.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classCellDouble.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classCellDouble.html">CellDouble</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCell.html">Cell</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">double</span> value;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_class" href="classCellDouble.html">CellDouble</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_class" href="classCellDouble.html">CellDouble</a>(<span class="keywordtype">double</span> value);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classCellDouble.html">CellDouble</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">getNumeralValue</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">getValueForPrint</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">parseAndSetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">writeToFile</a>(std::ofstream&amp; file) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>};</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCell_8h_html"><div class="ttname"><a href="Cell_8h.html">Cell.h</a></div><div class="ttdoc">Stores the declaration of class Cell.</div></div>
+<div class="ttc" id="aclassCellDouble_html"><div class="ttname"><a href="classCellDouble.html">CellDouble</a></div><div class="ttdoc">A table cell which contains a double-precision floating point number.</div><div class="ttdef"><b>Definition:</b> CellDouble.h:14</div></div>
+<div class="ttc" id="aclassCellDouble_html_a00e0ee96789eeee92d56b4dd6c1c9d86"><div class="ttname"><a href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">CellDouble::writeToFile</a></div><div class="ttdeci">void writeToFile(std::ofstream &amp;file) override</div><div class="ttdoc">Writes value to a text file.</div><div class="ttdef"><b>Definition:</b> CellDouble.cpp:37</div></div>
+<div class="ttc" id="aclassCellDouble_html_a088a191ea593642c944610f5332e1608"><div class="ttname"><a href="classCellDouble.html#a088a191ea593642c944610f5332e1608">CellDouble::getNumeralValue</a></div><div class="ttdeci">double getNumeralValue() const override</div><div class="ttdoc">Returns the value of the cell as a double-precision floating point number.</div><div class="ttdef"><b>Definition:</b> CellDouble.cpp:25</div></div>
+<div class="ttc" id="aclassCellDouble_html_a3f977aa0c5b68736621b1ded0687574b"><div class="ttname"><a href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">CellDouble::parseAndSetValue</a></div><div class="ttdeci">void parseAndSetValue(const char *str) override</div><div class="ttdoc">Parses given C-style string and stores value.</div><div class="ttdef"><b>Definition:</b> CellDouble.cpp:33</div></div>
+<div class="ttc" id="aclassCellDouble_html_aed48fc35c20b4dac5c595d55d03a460b"><div class="ttname"><a href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">CellDouble::getValueForPrint</a></div><div class="ttdeci">String getValueForPrint() const override</div><div class="ttdoc">Returns the value of the cell as a String.</div><div class="ttdef"><b>Definition:</b> CellDouble.cpp:29</div></div>
+<div class="ttc" id="aclassCell_html"><div class="ttname"><a href="classCell.html">Cell</a></div><div class="ttdoc">Fully abstract class that represents a cell in the table.</div><div class="ttdef"><b>Definition:</b> Cell.h:13</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html
new file mode 100644
index 0000000..1106b0b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellFormula.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">CellFormula.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCellFormula.html" title="A table cell which contains a formula.">CellFormula</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Cell_8h_source.html">Cell.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="CellDouble_8h_source.html">CellDouble.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="List_8hpp_source.html">../Generic/List/List.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Pair_8hpp_source.html">../Generic/Pair/Pair.hpp</a>&quot;</code><br />
+</div>
+<p><a href="CellFormula_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellFormula.html">CellFormula</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A table cell which contains a formula. <a href="classCellFormula.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCellFormula.html" title="A table cell which contains a formula.">CellFormula</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html
new file mode 100644
index 0000000..7c793a1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellFormula.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellFormula.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="CellFormula_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CELLFORMULA</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CELLFORMULA</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Cell_8h.html">Cell.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;<a class="code" href="CellDouble_8h.html">CellDouble.h</a>&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;../Generic/List/List.hpp&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;../Generic/Pair/Pair.hpp&quot;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classCellFormula.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classCellFormula.html">CellFormula</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCell.html">Cell</a> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;List&lt;Cell*&gt;</a>&gt;* tableCells;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_class" href="classList.html">List&lt;CellDouble&gt;</a> localCells;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_class" href="classList.html">List&lt;Pair&lt;Pair&lt;int, int&gt;</a>, <span class="keywordtype">char</span>&gt;&gt; formula;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_class" href="classString.html">String</a> rawFormula;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> <a class="code hl_class" href="classCell.html">Cell</a>* ptrByInd(<a class="code hl_struct" href="structPair.html">Pair&lt;int, int&gt;</a> loc) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">double</span> calculate(<span class="keywordtype">unsigned</span> index = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_class" href="classCellFormula.html">CellFormula</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_class" href="classCellFormula.html">CellFormula</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&lt;<a class="code hl_class" href="classList.html">List&lt;Cell*&gt;</a>&gt;* tableCells);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">getNumeralValue</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">getValueForPrint</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">parseAndSetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">writeToFile</a>(std::ofstream&amp; file) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>};</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCellDouble_8h_html"><div class="ttname"><a href="CellDouble_8h.html">CellDouble.h</a></div><div class="ttdoc">Stores the declaration of class CellDouble.</div></div>
+<div class="ttc" id="aCell_8h_html"><div class="ttname"><a href="Cell_8h.html">Cell.h</a></div><div class="ttdoc">Stores the declaration of class Cell.</div></div>
+<div class="ttc" id="aclassCellFormula_html"><div class="ttname"><a href="classCellFormula.html">CellFormula</a></div><div class="ttdoc">A table cell which contains a formula.</div><div class="ttdef"><b>Definition:</b> CellFormula.h:17</div></div>
+<div class="ttc" id="aclassCellFormula_html_a2883e300abc5153ce84f660f03050fdf"><div class="ttname"><a href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">CellFormula::writeToFile</a></div><div class="ttdeci">void writeToFile(std::ofstream &amp;file) override</div><div class="ttdoc">Writes value to a text file.</div><div class="ttdef"><b>Definition:</b> CellFormula.cpp:188</div></div>
+<div class="ttc" id="aclassCellFormula_html_a2f55209057eb939f3688a1f02f9fcb3d"><div class="ttname"><a href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">CellFormula::getValueForPrint</a></div><div class="ttdeci">String getValueForPrint() const override</div><div class="ttdef"><b>Definition:</b> CellFormula.cpp:84</div></div>
+<div class="ttc" id="aclassCellFormula_html_aea7ea04991b4ef15aa80ff3182bf1e74"><div class="ttname"><a href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">CellFormula::getNumeralValue</a></div><div class="ttdeci">double getNumeralValue() const override</div><div class="ttdef"><b>Definition:</b> CellFormula.cpp:69</div></div>
+<div class="ttc" id="aclassCellFormula_html_afecaac674bfb6bc2bbe1796c74643e31"><div class="ttname"><a href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">CellFormula::parseAndSetValue</a></div><div class="ttdeci">void parseAndSetValue(const char *str) override</div><div class="ttdef"><b>Definition:</b> CellFormula.cpp:128</div></div>
+<div class="ttc" id="aclassCell_html"><div class="ttname"><a href="classCell.html">Cell</a></div><div class="ttdoc">Fully abstract class that represents a cell in the table.</div><div class="ttdef"><b>Definition:</b> Cell.h:13</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+<div class="ttc" id="astructPair_html"><div class="ttname"><a href="structPair.html">Pair</a></div><div class="ttdoc">Stores two values of any types.</div><div class="ttdef"><b>Definition:</b> Pair.hpp:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html
new file mode 100644
index 0000000..e1fc925
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellInt.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">CellInt.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Cell_8h_source.html">Cell.h</a>&quot;</code><br />
+</div>
+<p><a href="CellInt_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellInt.html">CellInt</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A table cell which contains an integer. <a href="classCellInt.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html
new file mode 100644
index 0000000..a9d9712
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellInt.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellInt.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="CellInt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CELLINT</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CELLINT</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Cell_8h.html">Cell.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classCellInt.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classCellInt.html">CellInt</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCell.html">Cell</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">int</span> value;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_class" href="classCellInt.html">CellInt</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_class" href="classCellInt.html">CellInt</a>(<span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classCellInt.html">CellInt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">getNumeralValue</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">getValueForPrint</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">parseAndSetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">writeToFile</a>(std::ofstream&amp; file) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>};</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCell_8h_html"><div class="ttname"><a href="Cell_8h.html">Cell.h</a></div><div class="ttdoc">Stores the declaration of class Cell.</div></div>
+<div class="ttc" id="aclassCellInt_html"><div class="ttname"><a href="classCellInt.html">CellInt</a></div><div class="ttdoc">A table cell which contains an integer.</div><div class="ttdef"><b>Definition:</b> CellInt.h:14</div></div>
+<div class="ttc" id="aclassCellInt_html_a14a5b56f045b244ee4246edbfe851eb2"><div class="ttname"><a href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">CellInt::getValueForPrint</a></div><div class="ttdeci">String getValueForPrint() const override</div><div class="ttdoc">Returns the value of the cell as a String.</div><div class="ttdef"><b>Definition:</b> CellInt.cpp:23</div></div>
+<div class="ttc" id="aclassCellInt_html_a72788dc2ebadd13ae198e4e143403073"><div class="ttname"><a href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">CellInt::parseAndSetValue</a></div><div class="ttdeci">void parseAndSetValue(const char *str) override</div><div class="ttdoc">Parses given C-style string and stores value.</div><div class="ttdef"><b>Definition:</b> CellInt.cpp:27</div></div>
+<div class="ttc" id="aclassCellInt_html_a7a08dad97c474910e07c06f54bb2de94"><div class="ttname"><a href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">CellInt::writeToFile</a></div><div class="ttdeci">void writeToFile(std::ofstream &amp;file) override</div><div class="ttdoc">Writes value to a text file.</div><div class="ttdef"><b>Definition:</b> CellInt.cpp:31</div></div>
+<div class="ttc" id="aclassCellInt_html_a8417811309bda5886bb2f70d2b8357bd"><div class="ttname"><a href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">CellInt::getNumeralValue</a></div><div class="ttdeci">double getNumeralValue() const override</div><div class="ttdoc">Returns the value of the cell as a double-precision floating point number.</div><div class="ttdef"><b>Definition:</b> CellInt.cpp:19</div></div>
+<div class="ttc" id="aclassCell_html"><div class="ttname"><a href="classCell.html">Cell</a></div><div class="ttdoc">Fully abstract class that represents a cell in the table.</div><div class="ttdef"><b>Definition:</b> Cell.h:13</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html
new file mode 100644
index 0000000..c7f8fa5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellString.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">CellString.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCellString.html" title="A table cell which contains a String value.">CellString</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Cell_8h_source.html">Cell.h</a>&quot;</code><br />
+</div>
+<p><a href="CellString_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellString.html">CellString</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A table cell which contains a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> value. <a href="classCellString.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCellString.html" title="A table cell which contains a String value.">CellString</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html
new file mode 100644
index 0000000..0e3e9d2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/CellString.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellString.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="CellString_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CELLSTRING</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CELLSTRING</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Cell_8h.html">Cell.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classCellString.html"> 12</a></span><span class="keyword">class </span><a class="code hl_class" href="classCellString.html">CellString</a> : <span class="keyword">public</span> <a class="code hl_class" href="classCell.html">Cell</a> {</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <a class="code hl_class" href="classString.html">String</a> value;</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <a class="code hl_class" href="classCellString.html">CellString</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_class" href="classCellString.html">CellString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">getNumeralValue</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">getValueForPrint</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">parseAndSetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">writeToFile</a>(std::ofstream&amp; file) <span class="keyword">override</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>};</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCell_8h_html"><div class="ttname"><a href="Cell_8h.html">Cell.h</a></div><div class="ttdoc">Stores the declaration of class Cell.</div></div>
+<div class="ttc" id="aclassCellString_html"><div class="ttname"><a href="classCellString.html">CellString</a></div><div class="ttdoc">A table cell which contains a String value.</div><div class="ttdef"><b>Definition:</b> CellString.h:12</div></div>
+<div class="ttc" id="aclassCellString_html_a2d88b600e72b4eeca9c933a540343a8b"><div class="ttname"><a href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">CellString::getValueForPrint</a></div><div class="ttdeci">String getValueForPrint() const override</div><div class="ttdoc">Returns the value of the cell as a String.</div><div class="ttdef"><b>Definition:</b> CellString.cpp:12</div></div>
+<div class="ttc" id="aclassCellString_html_a8152beac5329e170bf2c225ac189fba4"><div class="ttname"><a href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">CellString::parseAndSetValue</a></div><div class="ttdeci">void parseAndSetValue(const char *str) override</div><div class="ttdoc">Parses given C-style string and stores value.</div><div class="ttdef"><b>Definition:</b> CellString.cpp:16</div></div>
+<div class="ttc" id="aclassCellString_html_ac9f11804de3e600c4a86b253fac9edcf"><div class="ttname"><a href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">CellString::writeToFile</a></div><div class="ttdeci">void writeToFile(std::ofstream &amp;file) override</div><div class="ttdoc">Writes value to a text file.</div><div class="ttdef"><b>Definition:</b> CellString.cpp:20</div></div>
+<div class="ttc" id="aclassCellString_html_ad1f27d1929c2cc8a7a657f72c6640803"><div class="ttname"><a href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">CellString::getNumeralValue</a></div><div class="ttdeci">double getNumeralValue() const override</div><div class="ttdoc">Returns the value of the cell as a double-precision floating point number.</div><div class="ttdef"><b>Definition:</b> CellString.cpp:8</div></div>
+<div class="ttc" id="aclassCell_html"><div class="ttname"><a href="classCell.html">Cell</a></div><div class="ttdoc">Fully abstract class that represents a cell in the table.</div><div class="ttdef"><b>Definition:</b> Cell.h:13</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html
new file mode 100644
index 0000000..6037deb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/Cell.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Cell.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;fstream&gt;</code><br />
+<code>#include &quot;<a class="el" href="String_8h_source.html">../Generic/String/String.h</a>&quot;</code><br />
+</div>
+<p><a href="Cell_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html">Cell</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fully abstract class that represents a cell in the table. <a href="classCell.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html
new file mode 100644
index 0000000..a2ce69a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/Cell.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Cell.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Cell_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CELL</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CELL</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;fstream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Generic/String/String.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="classCell.html"> 13</a></span><span class="keyword">class </span><a class="code hl_class" href="classCell.html">Cell</a> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968"> 16</a></span> <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75"> 18</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95"> 20</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str) = 0;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b"> 22</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a>(std::ofstream&amp; file) = 0;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classCell.html">~Cell</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>};</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassCell_html"><div class="ttname"><a href="classCell.html">Cell</a></div><div class="ttdoc">Fully abstract class that represents a cell in the table.</div><div class="ttdef"><b>Definition:</b> Cell.h:13</div></div>
+<div class="ttc" id="aclassCell_html_a10bf7a5e3486908f5e6b8b24c5a2e968"><div class="ttname"><a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell::getNumeralValue</a></div><div class="ttdeci">virtual double getNumeralValue() const =0</div><div class="ttdoc">Returns the value of the cell as a double-precision floating point number.</div></div>
+<div class="ttc" id="aclassCell_html_a126ab727ef443f5fd8ef62832614f56b"><div class="ttname"><a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell::writeToFile</a></div><div class="ttdeci">virtual void writeToFile(std::ofstream &amp;file)=0</div><div class="ttdoc">Writes value to a text file.</div></div>
+<div class="ttc" id="aclassCell_html_a732fcaeea7050f4afb3bcd6377432b95"><div class="ttname"><a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell::parseAndSetValue</a></div><div class="ttdeci">virtual void parseAndSetValue(const char *str)=0</div><div class="ttdoc">Parses given C-style string and stores value.</div></div>
+<div class="ttc" id="aclassCell_html_aebc1f8f5965802b7a44ef3da7aa2ce75"><div class="ttname"><a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell::getValueForPrint</a></div><div class="ttdeci">virtual String getValueForPrint() const =0</div><div class="ttdoc">Returns the value of the cell as a String.</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html
new file mode 100644
index 0000000..000f8e7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Command.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Command.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>.
+<a href="#details">More...</a></p>
+
+<p><a href="Command_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html">Command</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a> <a href="classCommand.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html
new file mode 100644
index 0000000..00c165a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Command.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Command.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Command_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_COMMAND</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_COMMAND</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classCommand.html"> 12</a></span><span class="keyword">class </span><a class="code hl_class" href="classCommand.html">Command</a> {</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">char</span> name[256];</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> void (*exec)(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_function" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>();</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_function" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">void</span> (*exec)(<span class="keyword">const</span> <span class="keywordtype">char</span>* params));</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">run</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* params) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* get_name() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>};</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassCommand_html"><div class="ttname"><a href="classCommand.html">Command</a></div><div class="ttdoc">Stores a 256 character name and a function pointer to be executed when calling run()</div><div class="ttdef"><b>Definition:</b> Command.h:12</div></div>
+<div class="ttc" id="aclassCommand_html_a18df2d81039392daeb0b78c346a70537"><div class="ttname"><a href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command::Command</a></div><div class="ttdeci">Command()</div><div class="ttdoc">Leaves name empty and exec function pointer to nullptr.</div><div class="ttdef"><b>Definition:</b> Command.cpp:4</div></div>
+<div class="ttc" id="aclassCommand_html_a2134b97948833d1ef31c6fb5ed200bed"><div class="ttname"><a href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">Command::run</a></div><div class="ttdeci">void run(const char *params) const</div><div class="ttdoc">Executes the stored function pointer.</div><div class="ttdef"><b>Definition:</b> Command.cpp:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg
new file mode 100644
index 0000000..89459ee
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg
@@ -0,0 +1,403 @@
+<svg version="1.1" baseProfile="full" width="1180.0" height="794.0" viewbox="0 0 1180 794" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+ <title >FMI-OOP-P2_Table Overview</title>
+ <desc >#title: FMI-OOP-P2_Table Overview
+ #background: #fdf6e3
+ #bendSize: 0
+ #fillArrows: true
+ #lineWidth: 2
+ #leading: 1.3
+
+ #.groupui: title=italic fill=#b2ee97 direction=right
+ #.groupes: title=italic fill=#97c8ee direction=right
+ #.groupm: title=italic fill=#ee9797 direction=down
+ #.groupv: title=italic fill=#eee997 direction=right
+ #.groupgc: title=italic fill=#c0baac direction=right
+
+ [&lt;groupui&gt; User Interface|
+ [ConsoleUI.cpp|
+ run()
+ &gt; open
+ &gt; close
+ &gt; save
+ &gt; saveas
+ &gt; help
+ &gt; exit
+ --
+ &gt; print
+ &gt; edit
+ ]
+ ]
+
+ [&lt;groupm&gt; Models|
+ [Table|
+ List&lt;List&lt;Cell&gt;&gt; cells
+ ]
+ [Table]--[Cell]
+
+ [&lt;abstract&gt;Cell|
+ String getValueForPrint() = 0
+ setValue(char*) = 0
+ openFromFile(char*) = 0
+ saveToFile(char*) = 0
+ ]
+
+ [CellString|
+ ]
+ [Cell]&lt;:--[CellString]
+
+ [CellInt|
+ ]
+ [Cell]&lt;:--[CellInt]
+
+ [CellDouble|
+ ]
+ [Cell]&lt;:--[CellDouble]
+
+ [CellFormula|
+ List&lt;Cell*&gt; referencedCells
+ ]
+ [Cell]&lt;:--[CellFormula]
+ ]
+ [User Interface]&lt;--[Models]
+
+ [&lt;groupgc&gt; Generic Classes|
+ [List&lt;T&gt;|
+ add(elem)
+ insertAt(elem, index)
+ removeAt(index)
+ findIndex(elem);
+ contain(elem);
+ operator\[\](index)
+ ]
+
+ [String|
+ char* str
+ unsigned length
+ unsigned count
+ ]
+ [List&lt;T&gt;]-/-[String]
+
+ [Command|
+ String name
+ void (*exec)()
+ ]
+
+ [Menu|
+ List&lt;Command&gt; commands
+ navigate()
+ ]
+ [Menu]--&gt;[Command]
+ ]
+ [&lt;hidden&gt;H1]-/-[Generic Classes]</desc>
+ <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="bold" font-style="normal">
+ <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E">
+ <g stroke="transparent" fill="#fdf6e3">
+ <rect x="0.0" y="0.0" height="794.0" width="1180.0" stroke="none"></rect>
+ </g>
+ <g transform="translate(8, 8)" fill="#33322E">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal">
+ <g stroke-dasharray="4 4">
+ <path d="M321.5 298.7 L321.5 312 L321.5 332 L321.5 332.0 " fill="none"></path>
+ </g>
+ <path d="M326.8 305.3 L321.5 305.3 L316.2 305.3 L321.5 292.0 Z"></path>
+ <g data-name="User Interface">
+ <g fill="#b2ee97" stroke="#33322E" data-name="User Interface">
+ <rect x="230.0" y="0.0" height="292.0" width="184.0" data-name="User Interface"></rect>
+ <path d="M230.0 32.0 L414.0 32.0" fill="none" data-name="User Interface"></path>
+ </g>
+ <g transform="translate(230, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="User Interface">
+ <text x="84.0" y="13.8" stroke="none" text-anchor="middle" data-name="User Interface">User Interface</text>
+
+ </g>
+ </g>
+ <g transform="translate(230, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="User Interface">
+ <g transform="translate(20, 20)" data-name="User Interface">
+ <g data-name="ConsoleUI.cpp">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="ConsoleUI.cpp">
+ <rect x="0.0" y="0.0" height="204.0" width="128.0" data-name="ConsoleUI.cpp"></rect>
+ <path d="M0.0 32.0 L128.0 32.0" fill="none" data-name="ConsoleUI.cpp"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ConsoleUI.cpp">
+ <text x="56.0" y="13.8" stroke="none" text-anchor="middle" data-name="ConsoleUI.cpp">ConsoleUI.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="ConsoleUI.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="ConsoleUI.cpp">run()</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="ConsoleUI.cpp">&gt; open</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="ConsoleUI.cpp">&gt; close</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="ConsoleUI.cpp">&gt; save</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="ConsoleUI.cpp">&gt; saveas</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="ConsoleUI.cpp">&gt; help</text>
+ <text x="0.0" y="107.4" stroke="none" data-name="ConsoleUI.cpp">&gt; exit</text>
+ <text x="0.0" y="123.0" stroke="none" data-name="ConsoleUI.cpp">--</text>
+ <text x="0.0" y="138.6" stroke="none" data-name="ConsoleUI.cpp">&gt; print</text>
+ <text x="0.0" y="154.2" stroke="none" data-name="ConsoleUI.cpp">&gt; edit</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Models">
+ <g fill="#ee9797" stroke="#33322E" data-name="Models">
+ <rect x="0.0" y="332.0" height="406.0" width="643.0" data-name="Models"></rect>
+ <path d="M0.0 364.0 L643.0 364.0" fill="none" data-name="Models"></path>
+ </g>
+ <g transform="translate(0, 332)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Models">
+ <text x="313.5" y="13.8" stroke="none" text-anchor="middle" data-name="Models">Models</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 364)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Models">
+ <g transform="translate(20, 20)" fill="#eee8d5" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M225.8 64.0 L225.75 84 L225.75 104 L225.8 104.0 " fill="none" data-name="Models"></path>
+ </g>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M103.9 209.8 L46 234 L46 266 L46.0 266.0 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M106.0 214.7 L103.9 209.8 L101.9 204.9 L116.3 204.7 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M172.4 224.3 L164.5 234 L164.5 266 L164.5 266.0 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M176.5 227.7 L172.4 224.3 L168.3 221.0 L180.8 214.0 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M279.1 224.3 L287 234 L287 266 L287.0 266.0 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M283.2 221.0 L279.1 224.3 L275.0 227.7 L270.7 214.0 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M348.0 194.8 L482 234 L482 254 L482.0 254.0 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M349.5 189.7 L348.0 194.8 L346.5 199.9 L335.3 191.0 Z" data-name="Models"></path>
+ <g data-name="Table">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Table">
+ <rect x="142.0" y="0.0" height="64.0" width="167.0" data-name="Table"></rect>
+ <path d="M142.0 32.0 L309.0 32.0" fill="none" data-name="Table"></path>
+ </g>
+ <g transform="translate(142, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Table">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Table">
+ <text x="75.5" y="13.8" stroke="none" text-anchor="middle" data-name="Table">Table</text>
+
+ </g>
+ </g>
+ <g transform="translate(142, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Table">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Table">
+ <text x="0.0" y="13.8" stroke="none" data-name="Table">List&lt;List&lt;Cell&gt;&gt; cells</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Cell">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Cell">
+ <rect x="116.0" y="104.0" height="110.0" width="219.0" data-name="Cell"></rect>
+ <path d="M116.0 136.0 L335.0 136.0" fill="none" data-name="Cell"></path>
+ </g>
+ <g transform="translate(116, 104)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Cell">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Cell">
+ <text x="101.5" y="13.8" stroke="none" text-anchor="middle" data-name="Cell">Cell</text>
+
+ </g>
+ </g>
+ <g transform="translate(116, 136)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Cell">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Cell">
+ <text x="0.0" y="13.8" stroke="none" data-name="Cell">String getValueForPrint() = 0</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Cell">setValue(char*) = 0</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Cell">openFromFile(char*) = 0</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="Cell">saveToFile(char*) = 0</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="CellString">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="CellString">
+ <rect x="0.0" y="266.0" height="40.0" width="92.0" data-name="CellString"></rect>
+ <path d="M0.0 298.0 L92.0 298.0" fill="none" data-name="CellString"></path>
+ </g>
+ <g transform="translate(0, 266)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="CellString">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="CellString">
+ <text x="38.0" y="13.8" stroke="none" text-anchor="middle" data-name="CellString">CellString</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 298)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="CellString">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="CellString">
+
+ </g>
+ </g>
+ </g>
+ <g data-name="CellInt">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="CellInt">
+ <rect x="132.0" y="266.0" height="40.0" width="65.0" data-name="CellInt"></rect>
+ <path d="M132.0 298.0 L197.0 298.0" fill="none" data-name="CellInt"></path>
+ </g>
+ <g transform="translate(132, 266)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="CellInt">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="CellInt">
+ <text x="24.5" y="13.8" stroke="none" text-anchor="middle" data-name="CellInt">CellInt</text>
+
+ </g>
+ </g>
+ <g transform="translate(132, 298)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="CellInt">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="CellInt">
+
+ </g>
+ </g>
+ </g>
+ <g data-name="CellDouble">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="CellDouble">
+ <rect x="237.0" y="266.0" height="40.0" width="100.0" data-name="CellDouble"></rect>
+ <path d="M237.0 298.0 L337.0 298.0" fill="none" data-name="CellDouble"></path>
+ </g>
+ <g transform="translate(237, 266)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="CellDouble">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="CellDouble">
+ <text x="42.0" y="13.8" stroke="none" text-anchor="middle" data-name="CellDouble">CellDouble</text>
+
+ </g>
+ </g>
+ <g transform="translate(237, 298)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="CellDouble">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="CellDouble">
+
+ </g>
+ </g>
+ </g>
+ <g data-name="CellFormula">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="CellFormula">
+ <rect x="377.0" y="254.0" height="64.0" width="210.0" data-name="CellFormula"></rect>
+ <path d="M377.0 286.0 L587.0 286.0" fill="none" data-name="CellFormula"></path>
+ </g>
+ <g transform="translate(377, 254)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="CellFormula">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="CellFormula">
+ <text x="97.0" y="13.8" stroke="none" text-anchor="middle" data-name="CellFormula">CellFormula</text>
+
+ </g>
+ </g>
+ <g transform="translate(377, 286)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="CellFormula">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="CellFormula">
+ <text x="0.0" y="13.8" stroke="none" data-name="CellFormula">List&lt;Cell*&gt; referencedCells</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Generic Classes">
+ <g fill="#c0baac" stroke="#33322E" data-name="Generic Classes">
+ <rect x="683.0" y="361.0" height="349.0" width="441.0" data-name="Generic Classes"></rect>
+ <path d="M683.0 393.0 L1124.0 393.0" fill="none" data-name="Generic Classes"></path>
+ </g>
+ <g transform="translate(683, 361)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Generic Classes">
+ <text x="212.5" y="13.8" stroke="none" text-anchor="middle" data-name="Generic Classes">Generic Classes</text>
+
+ </g>
+ </g>
+ <g transform="translate(683, 393)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Generic Classes">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <g stroke-dasharray="4 4" data-name="Generic Classes">
+ <path d="M216.0 221.5 L236 221.5 L258.3333333333333 221.5 L258.3 221.5 " fill="none" data-name="Generic Classes"></path>
+ </g>
+ <path d="M251.7 226.8 L251.7 221.5 L251.7 216.2 L265.0 221.5 Z" data-name="Generic Classes"></path>
+ <g data-name="List&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="List&lt;T&gt;">
+ <rect x="27.0" y="0.0" height="142.0" width="163.0" data-name="List&lt;T&gt;"></rect>
+ <path d="M27.0 32.0 L190.0 32.0" fill="none" data-name="List&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(27, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="List&lt;T&gt;">
+ <text x="73.5" y="13.8" stroke="none" text-anchor="middle" data-name="List&lt;T&gt;">List&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(27, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="List&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="List&lt;T&gt;">add(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="List&lt;T&gt;">insertAt(elem, index)</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="List&lt;T&gt;">removeAt(index)</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="List&lt;T&gt;">findIndex(elem)</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="List&lt;T&gt;">contain(elem)</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="List&lt;T&gt;">operator[](index)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="String">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="String">
+ <rect x="256.0" y="24.0" height="95.0" width="129.0" data-name="String"></rect>
+ <path d="M256.0 56.0 L385.0 56.0" fill="none" data-name="String"></path>
+ </g>
+ <g transform="translate(256, 24)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="String">
+ <text x="56.5" y="13.8" stroke="none" text-anchor="middle" data-name="String">String</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 56)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="String">
+ <text x="0.0" y="13.8" stroke="none" data-name="String">char* str</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="String">unsigned length</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="String">unsigned count</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Command">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Command">
+ <rect x="265.0" y="182.0" height="79.0" width="111.0" data-name="Command"></rect>
+ <path d="M265.0 214.0 L376.0 214.0" fill="none" data-name="Command"></path>
+ </g>
+ <g transform="translate(265, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Command">
+ <text x="47.5" y="13.8" stroke="none" text-anchor="middle" data-name="Command">Command</text>
+
+ </g>
+ </g>
+ <g transform="translate(265, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Command">
+ <text x="0.0" y="13.8" stroke="none" data-name="Command">String name</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Command">void (*exec)()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Menu">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Menu">
+ <rect x="0.0" y="182.0" height="79.0" width="216.0" data-name="Menu"></rect>
+ <path d="M0.0 214.0 L216.0 214.0" fill="none" data-name="Menu"></path>
+ </g>
+ <g transform="translate(0, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Menu">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="Menu">Menu</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Menu">
+ <text x="0.0" y="13.8" stroke="none" data-name="Menu">List&lt;Command&gt; commands</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Menu">navigate()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="H1">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html
new file mode 100644
index 0000000..ef7295e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/List/List.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">List.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="List_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html">List&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Templated class that stores an array of elements in dynamic memory. <a href="classList.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7469c3479753bfbada761697c539aa07"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a7469c3479753bfbada761697c539aa07"><td class="memTemplItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;obj)</td></tr>
+<tr class="memdesc:a7469c3479753bfbada761697c539aa07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> from stream with &gt;&gt; operator. <a href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">More...</a><br /></td></tr>
+<tr class="separator:a7469c3479753bfbada761697c539aa07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;obj)</td></tr>
+<tr class="memdesc:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> to stream with &lt;&lt; operator. <a href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">More...</a><br /></td></tr>
+<tr class="separator:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ac8590f4d4ba6c820c34afe14df54f2c2" name="ac8590f4d4ba6c820c34afe14df54f2c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8590f4d4ba6c820c34afe14df54f2c2">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td>
+ <td class="paramname"><em>obj</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the count and then all objects.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having the operator &lt;&lt; defined, which takes an std::ostream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a7469c3479753bfbada761697c539aa07" name="a7469c3479753bfbada761697c539aa07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7469c3479753bfbada761697c539aa07">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td>
+ <td class="paramname"><em>obj</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse the elements. The first item in the stream should be the count.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having the operator &gt;&gt; defined, which takes an std::istream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html
new file mode 100644
index 0000000..7134dcb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html
@@ -0,0 +1,380 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/List/List.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="List_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_LIST</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_LIST</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classList.html"> 22</a></span><span class="keyword">class </span><a class="code hl_class" href="classList.html">List</a> {</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> T* elements;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">unsigned</span> length;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> count;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">void</span> resize();</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">void</span> free();</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61"> 34</a></span> <a class="code hl_function" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classList.html#a40212635a3d75dfc14e9473271467b04"> 36</a></span> <a class="code hl_function" href="classList.html#a40212635a3d75dfc14e9473271467b04">List</a>(<span class="keywordtype">unsigned</span> length);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb"> 38</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(<span class="keyword">const</span> T&amp; element);</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8"> 40</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a>(<span class="keyword">const</span> T&amp; element, <span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a"> 42</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classList.html#a3804f03273ef5e339b504e439c5b6534"> 44</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a>(<span class="keyword">const</span> T&amp; element) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1"> 45</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a>(<span class="keyword">const</span> T&amp; element) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classList.html#a321bb581943398344aad07198d1f02ac"> 47</a></span> T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">operator[]</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classList.html#a5fa582de3aec5094a871852b658cf853"> 49</a></span> <span class="keyword">const</span> T&amp; <a class="code hl_function" href="classList.html#a5fa582de3aec5094a871852b658cf853">operator[]</a>(<span class="keywordtype">unsigned</span> index) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classList.html#a1e380d73cf889304a7468762ade0410c"> 51</a></span> <span class="keyword">const</span> T* <a class="code hl_function" href="classList.html#a1e380d73cf889304a7468762ade0410c">raw_data</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classList.html#ae296516a252e11963dbf963727ce429a"> 53</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae296516a252e11963dbf963727ce429a">clear</a>();</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classList.html#aa4332ce5a589da28528f035ded6d41e5"> 56</a></span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_function" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> other);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e"> 59</a></span> std::istream&amp; <a class="code hl_function" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956"> 61</a></span> std::ostream&amp; <a class="code hl_function" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classList.html#aa32109b77dccd8241b125ebabdda876c"> 64</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b"> 66</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_class" href="classList.html">List</a>();</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_class" href="classList.html">List</a>&amp; operator=(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_class" href="classList.html">List</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_class" href="classList.html">~List</a>();</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_class" href="classList.html">List</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_class" href="classList.html">List</a>&amp; operator=(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>};</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>std::istream&amp; <a class="code hl_function" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj);</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>std::ostream&amp; <a class="code hl_function" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj);</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">/* Private */</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::resize</a>() {</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> length = (length == 0) ? 8 : length &lt;&lt; 1;</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> T* temp = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> temp[i] = elements[i];</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> elements = temp;</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::free</a>() {</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>}</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::copyFrom</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> elements = <span class="keyword">new</span> T[other.length];</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; other.count; i++)</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> elements[i] = other.elements[i];</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> length = other.length;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> count = other.count;</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>}</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">/* Public */</span></div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61"> 113</a></span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount) {</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> length = 8;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> count = elementsCount;</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> this-&gt;elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> this-&gt;elements[i] = elements[i];</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>}</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classList.html#a40212635a3d75dfc14e9473271467b04"> 122</a></span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<span class="keywordtype">unsigned</span> length) {</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> this-&gt;length = count = length;</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> this-&gt;elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> this-&gt;elements[i] = elements[i];</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>}</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb"> 133</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt;T&gt;::add</a>(<span class="keyword">const</span> T&amp; element) {</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (length == count) resize();</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> elements[count++] = element;</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>}</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8"> 146</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt;T&gt;::insertAt</a>(<span class="keyword">const</span> T&amp; element, <span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">if</span> (index &gt;= count) {</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> add(element);</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> }</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span> (length == count) resize();</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = count; i &gt; index; i--)</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> elements[i] = elements[i - 1];</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> elements[index] = element;</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> count++;</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>}</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a"> 166</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt;T&gt;::removeAt</a>(<span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">if</span> (index &gt;= count) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index; i &lt; count; i++)</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> elements[i] = elements[i + 1];</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> count--;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span>}</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classList.html#a3804f03273ef5e339b504e439c5b6534"> 181</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt;T&gt;::findIndex</a>(<span class="keyword">const</span> T&amp; element)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">unsigned</span> ind = 0;</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">while</span> (ind &lt; count &amp;&amp; elements[ind].compare(element) != 0)</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> ind++;</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">return</span> ind;</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span>}</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1"> 194</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt;T&gt;::contain</a>(<span class="keyword">const</span> T&amp; element)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">return</span> findIndex(element) &lt; count;</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>}</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="classList.html#a321bb581943398344aad07198d1f02ac"> 199</a></span>T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt;T&gt;::operator[]</a>(<span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> elements[index];</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="classList.html#a5fa582de3aec5094a871852b658cf853"> 204</a></span><span class="keyword">const</span> T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt;T&gt;::operator[]</a>(<span class="keywordtype">unsigned</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">return</span> elements[index];</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>}</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="classList.html#a1e380d73cf889304a7468762ade0410c"> 209</a></span><span class="keyword">const</span> T* <a class="code hl_function" href="classList.html#a1e380d73cf889304a7468762ade0410c">List&lt;T&gt;::raw_data</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">return</span> elements;</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span>}</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="classList.html#ae296516a252e11963dbf963727ce429a"> 214</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae296516a252e11963dbf963727ce429a">List&lt;T&gt;::clear</a>() {</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> free();</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> length = 8;</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> count = 0;</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> this-&gt;elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span>}</div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="classList.html#aa4332ce5a589da28528f035ded6d41e5"> 222</a></span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_function" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt;T&gt;::operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> other) {</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; other.length; i++)</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> add(other[i]);</div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span>}</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e"> 238</a></span>std::istream&amp; <a class="code hl_function" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt;T&gt;::read</a>(std::istream&amp; istr) {</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> istr.read((<span class="keywordtype">char</span>*)&amp;length, <span class="keyword">sizeof</span>(length));</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> istr.read((<span class="keywordtype">char</span>*)&amp;count, <span class="keyword">sizeof</span>(count));</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> elements[i].<a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(istr);</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> istr;</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>}</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"><a class="line" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956"> 260</a></span>std::ostream&amp; <a class="code hl_function" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt;T&gt;::write</a>(std::ostream&amp; ostr)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> ostr.write((<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;length, <span class="keyword">sizeof</span>(length));</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> ostr.write((<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;count, <span class="keyword">sizeof</span>(count));</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> elements[i].write(ostr);</div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> ostr;</div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span>}</div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classList.html#aa32109b77dccd8241b125ebabdda876c"> 274</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt;T&gt;::get_length</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> length;</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span>}</div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b"> 282</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt;T&gt;::get_count</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> count;</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span>}</div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="comment">// Rule of 4</span></div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>() : <a class="code hl_class" href="classList.html">List</a>(nullptr, 0) {}</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_class" href="classList.html">List&lt;T&gt;::operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> free();</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> copyFrom(other);</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> }</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span>}</div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> copyFrom(other);</div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span>}</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::~List</a>() {</div>
+<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> free();</div>
+<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span>}</div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="comment">// Move semantics</span></div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other) {</div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> length = other.length;</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> count = other.count;</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> elements = other.elements;</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> other.elements = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span>}</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_class" href="classList.html">List&lt;T&gt;::operator=</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other) {</div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> free();</div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> length = other.length;</div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> count = other.count;</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> elements = other.elements;</div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> other.elements = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> }</div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span>}</div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="comment">/* Outside of class */</span></div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"><a class="line" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07"> 342</a></span>std::istream&amp; <a class="code hl_function" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj) {</div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> newObj;</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordtype">unsigned</span> count;</div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> istr &gt;&gt; count;</div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> T temp;</div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> istr &gt;&gt; temp;</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> obj.<a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(temp);</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> }</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keywordflow">return</span> istr;</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span>}</div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2"> 363</a></span>std::ostream&amp; <a class="code hl_function" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj) {</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> ostr &lt;&lt; obj.<a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; obj.<a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>(); i++)</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> ostr &lt;&lt; obj[i];</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> ostr;</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span>}</div>
+<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aList_8hpp_html_a7469c3479753bfbada761697c539aa07"><div class="ttname"><a href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, List&lt; T &gt; &amp;obj)</div><div class="ttdoc">Reads List from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> List.hpp:342</div></div>
+<div class="ttc" id="aList_8hpp_html_ac8590f4d4ba6c820c34afe14df54f2c2"><div class="ttname"><a href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const List&lt; T &gt; &amp;obj)</div><div class="ttdoc">Writes List to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> List.hpp:363</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a3c9098dc2b305107367c56ded5dec787"><div class="ttname"><a href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a></div><div class="ttdeci">void read(T *storage)</div><div class="ttdoc">Reads user input and stores it.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:26</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+<div class="ttc" id="aclassList_html_a163a070c7d5dc77ca3c1726b8f2d4bc1"><div class="ttname"><a href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List::contain</a></div><div class="ttdeci">bool contain(const T &amp;element) const</div><div class="ttdef"><b>Definition:</b> List.hpp:194</div></div>
+<div class="ttc" id="aclassList_html_a1e380d73cf889304a7468762ade0410c"><div class="ttname"><a href="classList.html#a1e380d73cf889304a7468762ade0410c">List::raw_data</a></div><div class="ttdeci">const T * raw_data() const</div><div class="ttdoc">Returns raw array of data.</div><div class="ttdef"><b>Definition:</b> List.hpp:209</div></div>
+<div class="ttc" id="aclassList_html_a321bb581943398344aad07198d1f02ac"><div class="ttname"><a href="classList.html#a321bb581943398344aad07198d1f02ac">List::operator[]</a></div><div class="ttdeci">T &amp; operator[](unsigned index)</div><div class="ttdoc">Returns reference to element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:199</div></div>
+<div class="ttc" id="aclassList_html_a3804f03273ef5e339b504e439c5b6534"><div class="ttname"><a href="classList.html#a3804f03273ef5e339b504e439c5b6534">List::findIndex</a></div><div class="ttdeci">unsigned findIndex(const T &amp;element) const</div><div class="ttdoc">Finds the index of element.</div><div class="ttdef"><b>Definition:</b> List.hpp:181</div></div>
+<div class="ttc" id="aclassList_html_a3c1e3a3fc085f5b7ae68514c4758687b"><div class="ttname"><a href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List::get_count</a></div><div class="ttdeci">unsigned get_count() const</div><div class="ttdoc">Returns the count.</div><div class="ttdef"><b>Definition:</b> List.hpp:282</div></div>
+<div class="ttc" id="aclassList_html_a40212635a3d75dfc14e9473271467b04"><div class="ttname"><a href="classList.html#a40212635a3d75dfc14e9473271467b04">List::List</a></div><div class="ttdeci">List(unsigned length)</div><div class="ttdoc">Allocates memory for the given length.</div><div class="ttdef"><b>Definition:</b> List.hpp:122</div></div>
+<div class="ttc" id="aclassList_html_a5e3581ee07649f462aa8bb3221a5466e"><div class="ttname"><a href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List::read</a></div><div class="ttdeci">std::istream &amp; read(std::istream &amp;istr)</div><div class="ttdoc">Reads from stream.</div><div class="ttdef"><b>Definition:</b> List.hpp:238</div></div>
+<div class="ttc" id="aclassList_html_a5fa582de3aec5094a871852b658cf853"><div class="ttname"><a href="classList.html#a5fa582de3aec5094a871852b658cf853">List::operator[]</a></div><div class="ttdeci">const T &amp; operator[](unsigned index) const</div><div class="ttdoc">Returns constant reference to element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:204</div></div>
+<div class="ttc" id="aclassList_html_a8d2babffd2fb4a5e0a40dbd306e19956"><div class="ttname"><a href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List::write</a></div><div class="ttdeci">std::ostream &amp; write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes to stream.</div><div class="ttdef"><b>Definition:</b> List.hpp:260</div></div>
+<div class="ttc" id="aclassList_html_a93cd36efc12aa5ef5fc28866edce7e61"><div class="ttname"><a href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List::List</a></div><div class="ttdeci">List(const T *elements, unsigned elementsCount)</div><div class="ttdoc">Copies all elements in given array.</div><div class="ttdef"><b>Definition:</b> List.hpp:113</div></div>
+<div class="ttc" id="aclassList_html_aa32109b77dccd8241b125ebabdda876c"><div class="ttname"><a href="classList.html#aa32109b77dccd8241b125ebabdda876c">List::get_length</a></div><div class="ttdeci">unsigned get_length() const</div><div class="ttdoc">Returns the length.</div><div class="ttdef"><b>Definition:</b> List.hpp:274</div></div>
+<div class="ttc" id="aclassList_html_aa4332ce5a589da28528f035ded6d41e5"><div class="ttname"><a href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List::operator+=</a></div><div class="ttdeci">List&lt; T &gt; &amp; operator+=(const List&lt; T &gt; other)</div><div class="ttdoc">Appends elements from other list.</div><div class="ttdef"><b>Definition:</b> List.hpp:222</div></div>
+<div class="ttc" id="aclassList_html_abfec4f2e7990d06c143852ecfdf907bb"><div class="ttname"><a href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List::add</a></div><div class="ttdeci">void add(const T &amp;element)</div><div class="ttdoc">Adds an element.</div><div class="ttdef"><b>Definition:</b> List.hpp:133</div></div>
+<div class="ttc" id="aclassList_html_ad9c0a5b5bca6286f458d6fab280de65a"><div class="ttname"><a href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List::removeAt</a></div><div class="ttdeci">bool removeAt(unsigned index)</div><div class="ttdoc">Removes element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:166</div></div>
+<div class="ttc" id="aclassList_html_ae296516a252e11963dbf963727ce429a"><div class="ttname"><a href="classList.html#ae296516a252e11963dbf963727ce429a">List::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Removes all data.</div><div class="ttdef"><b>Definition:</b> List.hpp:214</div></div>
+<div class="ttc" id="aclassList_html_ae4586debf72af33bccb3c2fbfce420e8"><div class="ttname"><a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List::insertAt</a></div><div class="ttdeci">void insertAt(const T &amp;element, unsigned index)</div><div class="ttdoc">Inserts element at given index.</div><div class="ttdef"><b>Definition:</b> List.hpp:146</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html
new file mode 100644
index 0000000..e9318b3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Menu.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Menu.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Command_8h_source.html">Command.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="List_8hpp_source.html">../List/List.hpp</a>&quot;</code><br />
+</div>
+<p><a href="Menu_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html">Menu</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles navigation between multiple commands. <a href="classMenu.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html
new file mode 100644
index 0000000..94ec010
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Menu.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Menu.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Menu_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_MENU</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_MENU</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Command_8h.html">Command.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../List/List.hpp&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classMenu.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classMenu.html">Menu</a> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_class" href="classList.html">List&lt;Command&gt;</a> menuOptions;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_function" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>();</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0"> 24</a></span> <a class="code hl_function" href="classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0">Menu</a>(<span class="keyword">const</span> <a class="code hl_class" href="classCommand.html">Command</a>* commands, <span class="keywordtype">unsigned</span> commandCount);</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">addCommand</a>(<span class="keyword">const</span> <a class="code hl_class" href="classCommand.html">Command</a>&amp; command);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>};</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCommand_8h_html"><div class="ttname"><a href="Command_8h.html">Command.h</a></div><div class="ttdoc">Stores the declaration of class Command.</div></div>
+<div class="ttc" id="aclassCommand_html"><div class="ttname"><a href="classCommand.html">Command</a></div><div class="ttdoc">Stores a 256 character name and a function pointer to be executed when calling run()</div><div class="ttdef"><b>Definition:</b> Command.h:12</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List&lt; Command &gt;</a></div></div>
+<div class="ttc" id="aclassMenu_html"><div class="ttname"><a href="classMenu.html">Menu</a></div><div class="ttdoc">Handles navigation between multiple commands.</div><div class="ttdef"><b>Definition:</b> Menu.h:17</div></div>
+<div class="ttc" id="aclassMenu_html_a0400751da7f8583029b7a12d3003c36d"><div class="ttname"><a href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu::navigate</a></div><div class="ttdeci">void navigate() const</div><div class="ttdoc">Lists commands and after user input executes an appropriate command run() function.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:30</div></div>
+<div class="ttc" id="aclassMenu_html_a1f022cc8b705369073f8fd7b90b30c8d"><div class="ttname"><a href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu::addCommand</a></div><div class="ttdeci">void addCommand(const Command &amp;command)</div><div class="ttdoc">Adds a command to the internal Command list.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:14</div></div>
+<div class="ttc" id="aclassMenu_html_a429338a549cf1cb86c4b6a55488ea8e0"><div class="ttname"><a href="classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0">Menu::Menu</a></div><div class="ttdeci">Menu(const Command *commands, unsigned commandCount)</div><div class="ttdoc">Copies commands.</div></div>
+<div class="ttc" id="aclassMenu_html_ad466dd83355124a6ed958430450bfe94"><div class="ttname"><a href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu::Menu</a></div><div class="ttdeci">Menu()</div><div class="ttdoc">Sets name as &quot;Menu&quot;, leaves all flags to false and creates an empty Command list.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:5</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html
new file mode 100644
index 0000000..72ae09a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/Pair/Pair.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_2264f2756aad4c6edc6800fd12175f32.html">Pair</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Pair.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of struct <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a>.
+<a href="#details">More...</a></p>
+
+<p><a href="Pair_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPair.html">Pair&lt; T, U &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores two values of any types. <a href="structPair.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of struct <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html
new file mode 100644
index 0000000..459d978
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/Pair/Pair.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_2264f2756aad4c6edc6800fd12175f32.html">Pair</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Pair.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Pair_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef PAIR</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define PAIR</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="structPair.html"> 13</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structPair.html">Pair</a> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> T left;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> U right;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_struct" href="structPair.html">Pair</a>();</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_struct" href="structPair.html">Pair</a>(<span class="keyword">const</span> T&amp; left, <span class="keyword">const</span> U&amp; right);</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span>};</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><a class="code hl_struct" href="structPair.html">Pair&lt;T, U&gt;::Pair</a>() : left(), right() {}</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><a class="code hl_struct" href="structPair.html">Pair&lt;T, U&gt;::Pair</a>(<span class="keyword">const</span> T&amp; left, <span class="keyword">const</span> U&amp; right) : left(left), right(right) {}</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="astructPair_html"><div class="ttname"><a href="structPair.html">Pair</a></div><div class="ttdoc">Stores two values of any types.</div><div class="ttdef"><b>Definition:</b> Pair.hpp:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html
new file mode 100644
index 0000000..9fd2b8c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/String/String.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle"><div class="title">String.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration of class <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="String_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html">String</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A dynamically-allocated C-style string with extra features. <a href="classString.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a61df8c6544a4c2dabae7825eeb67b0bd"><td class="memItemLeft" align="right" valign="top"><a id="a61df8c6544a4c2dabae7825eeb67b0bd" name="a61df8c6544a4c2dabae7825eeb67b0bd"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>DOUBLE_PRECISION</b>&#160;&#160;&#160;100</td></tr>
+<tr class="separator:a61df8c6544a4c2dabae7825eeb67b0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration of class <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html
new file mode 100644
index 0000000..3173b5c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/String/String.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="String_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_STRING</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_STRING</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#define DOUBLE_PRECISION 100</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classString.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classString.html">String</a> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">char</span>* str;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">unsigned</span> length;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">void</span> free();</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keywordtype">unsigned</span> length);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">get_cstr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">get_length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">char</span>&amp; <a class="code hl_function" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">operator[]</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keywordtype">int</span> number);</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keywordtype">unsigned</span> number);</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keywordtype">double</span> number);</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_class" href="classString.html">String</a>();</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="classString.html">String</a>&amp; operator=(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_class" href="classString.html">~String</a>();</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_class" href="classString.html">String</a>(<a class="code hl_class" href="classString.html">String</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_class" href="classString.html">String</a>&amp; operator=(<a class="code hl_class" href="classString.html">String</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">friend</span> std::istream&amp; <a class="code hl_friend" href="classString.html#a145347940875a9da605f74c2138be157">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classString.html">String</a>&amp; str);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">friend</span> std::ostream&amp; <a class="code hl_friend" href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; str);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>};</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+<div class="ttc" id="aclassString_html_a145347940875a9da605f74c2138be157"><div class="ttname"><a href="classString.html#a145347940875a9da605f74c2138be157">String::operator&gt;&gt;</a></div><div class="ttdeci">friend std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, String &amp;str)</div><div class="ttdoc">Reads String from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> String.cpp:177</div></div>
+<div class="ttc" id="aclassString_html_a3d7f953737f3d4dca72d1cc4836f7dcc"><div class="ttname"><a href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String::get_cstr</a></div><div class="ttdeci">const char * get_cstr() const</div><div class="ttdoc">Returns internal C-style string.</div><div class="ttdef"><b>Definition:</b> String.cpp:35</div></div>
+<div class="ttc" id="aclassString_html_a3f420d69fbe3de91711dc69148d23cc7"><div class="ttname"><a href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String::compare</a></div><div class="ttdeci">int compare(const String &amp;other) const</div><div class="ttdoc">Compares two strings.</div><div class="ttdef"><b>Definition:</b> String.cpp:167</div></div>
+<div class="ttc" id="aclassString_html_a5d3b77a51619a8580a373d2cd1092a54"><div class="ttname"><a href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String::operator[]</a></div><div class="ttdeci">char &amp; operator[](unsigned index)</div><div class="ttdoc">Returns a character reference (from the underlying C-style string) at the given index.</div><div class="ttdef"><b>Definition:</b> String.cpp:43</div></div>
+<div class="ttc" id="aclassString_html_a64de9ab1af5df9397f8fbd8c79d5f4b6"><div class="ttname"><a href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String::operator+=</a></div><div class="ttdeci">String &amp; operator+=(const char *str)</div><div class="ttdoc">Appends a C-style string.</div><div class="ttdef"><b>Definition:</b> String.cpp:49</div></div>
+<div class="ttc" id="aclassString_html_a7793a7e9a7601d4c724dcc85566259bf"><div class="ttname"><a href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String::get_length</a></div><div class="ttdeci">unsigned get_length() const</div><div class="ttdoc">Returns number of characters in string.</div><div class="ttdef"><b>Definition:</b> String.cpp:39</div></div>
+<div class="ttc" id="aclassString_html_a7b0ea809587c21bc1d2b87bfee53e628"><div class="ttname"><a href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes String to stream.</div><div class="ttdef"><b>Definition:</b> String.cpp:159</div></div>
+<div class="ttc" id="aclassString_html_aaf68eeb5ffc0983ecc68d49085e33102"><div class="ttname"><a href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">String::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const String &amp;str)</div><div class="ttdoc">Writes String to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> String.cpp:189</div></div>
+<div class="ttc" id="aclassString_html_ad76bb9eca15651c67332808cdaad6344"><div class="ttname"><a href="classString.html#ad76bb9eca15651c67332808cdaad6344">String::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads String from stream.</div><div class="ttdef"><b>Definition:</b> String.cpp:146</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html
new file mode 100644
index 0000000..e64f3fa
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/Table.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Table.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Cell_8h_source.html">Cell.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="List_8hpp_source.html">../Generic/List/List.hpp</a>&quot;</code><br />
+<code>#include &lt;fstream&gt;</code><br />
+</div>
+<p><a href="Table_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTable.html">Table</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 2D collection of <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> instances. <a href="classTable.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html
new file mode 100644
index 0000000..ff3311a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models/Table.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Table.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Table_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef MODELS_TABLE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define MODELS_TABLE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Cell_8h.html">Cell.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Generic/List/List.hpp&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;fstream&gt;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classTable.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classTable.html">Table</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_class" href="classList.html">List&lt;List&lt;Cell*&gt;</a>&gt; cells;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">unsigned</span> longestRow;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">void</span> readFromFile(std::ifstream&amp; inFile);</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classTable.html">Table</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filePath);</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_class" href="classTable.html">~Table</a>();</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b">get_rows</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d">get_cols</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classTable.html#a83388586d16c5b42029298b72ed698a5">putCell</a>(<span class="keywordtype">unsigned</span> row, <span class="keywordtype">unsigned</span> col, <span class="keyword">const</span> <span class="keywordtype">char</span>* rawValue);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_class" href="classList.html">List&lt;String&gt;</a> <a class="code hl_function" href="classTable.html#a654a6b6617a91dc96dde9038220967d8">getAllCells</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa">saveToFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filePath) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>};</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCell_8h_html"><div class="ttname"><a href="Cell_8h.html">Cell.h</a></div><div class="ttdoc">Stores the declaration of class Cell.</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+<div class="ttc" id="aclassTable_html"><div class="ttname"><a href="classTable.html">Table</a></div><div class="ttdoc">A 2D collection of Cell instances.</div><div class="ttdef"><b>Definition:</b> Table.h:14</div></div>
+<div class="ttc" id="aclassTable_html_a654a6b6617a91dc96dde9038220967d8"><div class="ttname"><a href="classTable.html#a654a6b6617a91dc96dde9038220967d8">Table::getAllCells</a></div><div class="ttdeci">List&lt; String &gt; getAllCells() const</div><div class="ttdoc">Returns a List of String with String representation of every cell in order.</div><div class="ttdef"><b>Definition:</b> Table.cpp:191</div></div>
+<div class="ttc" id="aclassTable_html_a83388586d16c5b42029298b72ed698a5"><div class="ttname"><a href="classTable.html#a83388586d16c5b42029298b72ed698a5">Table::putCell</a></div><div class="ttdeci">void putCell(unsigned row, unsigned col, const char *rawValue)</div><div class="ttdoc">Parses rawValue and replaces the value at row and col with it.</div><div class="ttdef"><b>Definition:</b> Table.cpp:148</div></div>
+<div class="ttc" id="aclassTable_html_a8a29a5f941369c8b61c56b4d6507a9fa"><div class="ttname"><a href="classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa">Table::saveToFile</a></div><div class="ttdeci">void saveToFile(const char *filePath) const</div><div class="ttdoc">Saves all cells to a text file.</div><div class="ttdef"><b>Definition:</b> Table.cpp:204</div></div>
+<div class="ttc" id="aclassTable_html_a8d2cec43247d091c9b2eb82fadc1a40b"><div class="ttname"><a href="classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b">Table::get_rows</a></div><div class="ttdeci">unsigned get_rows() const</div><div class="ttdoc">Returns count of rows.</div><div class="ttdef"><b>Definition:</b> Table.cpp:137</div></div>
+<div class="ttc" id="aclassTable_html_af6dce3e4e7be8c073cef6b1a6876d41d"><div class="ttname"><a href="classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d">Table::get_cols</a></div><div class="ttdeci">unsigned get_cols() const</div><div class="ttdoc">Returns largest count of columns in all rows.</div><div class="ttdef"><b>Definition:</b> Table.cpp:141</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html
new file mode 100644
index 0000000..b48ff34
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Toolbox.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Toolbox.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores a wide range of functions for simpler/more automated printing.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
+<code>#include &quot;<a class="el" href="List_8hpp_source.html">../List/List.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="String_8h_source.html">../String/String.h</a>&quot;</code><br />
+</div>
+<p><a href="Toolbox_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a09f908aa6474fe2b1f82b1aaade947f6"><td class="memItemLeft" align="right" valign="top"><a id="a09f908aa6474fe2b1f82b1aaade947f6" name="a09f908aa6474fe2b1f82b1aaade947f6"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>MAX_LINE_WIDTH</b>&#160;&#160;&#160;1024</td></tr>
+<tr class="separator:a09f908aa6474fe2b1f82b1aaade947f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a65477b86cd99f1670bf1234960255baf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">inputLineBox</a> (char *output, unsigned maxWidth, bool ignore=true)</td></tr>
+<tr class="memdesc:a65477b86cd99f1670bf1234960255baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints label, gets a whole line of input and stores it to output. <a href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">More...</a><br /></td></tr>
+<tr class="separator:a65477b86cd99f1670bf1234960255baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a138328aaa20f2a8a514e4d7e6fc9c325"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">printTable</a> (const <a class="el" href="classList.html">List</a>&lt; <a class="el" href="classString.html">String</a> &gt; &amp;items, unsigned columns)</td></tr>
+<tr class="memdesc:a138328aaa20f2a8a514e4d7e6fc9c325"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a string list as a table. <a href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">More...</a><br /></td></tr>
+<tr class="separator:a138328aaa20f2a8a514e4d7e6fc9c325"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c9098dc2b305107367c56ded5dec787"><td class="memTemplParams" colspan="2"><a id="a3c9098dc2b305107367c56ded5dec787" name="a3c9098dc2b305107367c56ded5dec787"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a3c9098dc2b305107367c56ded5dec787"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>read</b> (T *storage)</td></tr>
+<tr class="memdesc:a3c9098dc2b305107367c56ded5dec787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads user input and stores it. <br /></td></tr>
+<tr class="separator:a3c9098dc2b305107367c56ded5dec787"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06ca09434be2a02543a2371d477acfa0"><td class="memTemplParams" colspan="2"><a id="a06ca09434be2a02543a2371d477acfa0" name="a06ca09434be2a02543a2371d477acfa0"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a06ca09434be2a02543a2371d477acfa0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>read</b> (T &amp;storage)</td></tr>
+<tr class="memdesc:a06ca09434be2a02543a2371d477acfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads user input and stores it. <br /></td></tr>
+<tr class="separator:a06ca09434be2a02543a2371d477acfa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ca1093462d3266fceb8522e144c1e73"><td class="memTemplParams" colspan="2"><a id="a5ca1093462d3266fceb8522e144c1e73" name="a5ca1093462d3266fceb8522e144c1e73"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a5ca1093462d3266fceb8522e144c1e73"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>print</b> (const T *item)</td></tr>
+<tr class="memdesc:a5ca1093462d3266fceb8522e144c1e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item. <br /></td></tr>
+<tr class="separator:a5ca1093462d3266fceb8522e144c1e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memTemplParams" colspan="2"><a id="a9c0a0d7d3210ca5f12f02ac4cb88476e" name="a9c0a0d7d3210ca5f12f02ac4cb88476e"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>print</b> (const T &amp;item)</td></tr>
+<tr class="memdesc:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item. <br /></td></tr>
+<tr class="separator:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memTemplParams" colspan="2"><a id="a148d9d6b8b15bbfc2b1f4cdb16c2ee81" name="a148d9d6b8b15bbfc2b1f4cdb16c2ee81"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>printLine</b> (const T *item)</td></tr>
+<tr class="memdesc:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item and an endline character. <br /></td></tr>
+<tr class="separator:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memTemplParams" colspan="2"><a id="a799f4cb5b4da3d40261e25d9e41995aa" name="a799f4cb5b4da3d40261e25d9e41995aa"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>printLine</b> (const T &amp;item)</td></tr>
+<tr class="memdesc:a799f4cb5b4da3d40261e25d9e41995aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item and an endline character. <br /></td></tr>
+<tr class="separator:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores a wide range of functions for simpler/more automated printing. </p>
+<p >Adds a lot of functions for printing.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>iostream is included by necessity (templated functions), you should only use the provided functions, if you can. </dd></dl>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a65477b86cd99f1670bf1234960255baf" name="a65477b86cd99f1670bf1234960255baf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65477b86cd99f1670bf1234960255baf">&#9670;&nbsp;</a></span>inputLineBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void inputLineBox </td>
+ <td>(</td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>output</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>maxWidth</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignore</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints label, gets a whole line of input and stores it to output. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">label</td><td>C-style string, there are no size check so it could wrap </td></tr>
+ <tr><td class="paramname">output</td><td>Pointer to a char array </td></tr>
+ <tr><td class="paramname">maxWidth</td><td>Maximum count of characters to read from user input. output MUST be able to hold that many characters! </td></tr>
+ <tr><td class="paramname">ignore</td><td>Whether or not to ignore the first new-line delimiter. true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints "(+)" before the label. </p>
+
+</div>
+</div>
+<a id="a138328aaa20f2a8a514e4d7e6fc9c325" name="a138328aaa20f2a8a514e4d7e6fc9c325"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a138328aaa20f2a8a514e4d7e6fc9c325">&#9670;&nbsp;</a></span>printTable()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void printTable </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classList.html">List</a>&lt; <a class="el" href="classString.html">String</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>items</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>columns</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a string list as a table. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">startNumber</td><td>The number by which column and row enumeration begins </td></tr>
+ <tr><td class="paramname">columns</td><td>How many columns the table should have </td></tr>
+ <tr><td class="paramname">items</td><td>C-style string, each cell is a single character from the string</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints a string as a grid/table of characters from top to bottom, left to right. The first character is on the top left, the last one is on the bottom right.</p>
+<p ><a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a> is printed until a terminating zero is encountered. The rows are "calculated" from the columns count and the items length. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html
new file mode 100644
index 0000000..78ffde7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface/Toolbox.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Toolbox.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Toolbox_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_TOOLBOX</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_TOOLBOX</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;../List/List.hpp&quot;</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;../String/String.h&quot;</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define MAX_LINE_WIDTH 1024</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">inputLineBox</a>(<span class="keywordtype">char</span>* output, <span class="keywordtype">unsigned</span> maxWidth, <span class="keywordtype">bool</span> ignore = <span class="keyword">true</span>);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">printTable</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;String&gt;</a>&amp; items, <span class="keywordtype">unsigned</span> columns);</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787"> 26</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(T* storage) {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::cin &gt;&gt; storage;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>}</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0"> 32</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(T&amp; storage) {</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> std::cin &gt;&gt; storage;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73"> 38</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a>(<span class="keyword">const</span> T* item) {</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::cout &lt;&lt; item;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>}</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e"> 44</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a>(<span class="keyword">const</span> T&amp; item) {</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::cout &lt;&lt; item;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>}</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81"> 50</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a>(<span class="keyword">const</span> T* item) {</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::cout &lt;&lt; item &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>}</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa"> 56</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a>(<span class="keyword">const</span> T&amp; item) {</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> std::cout &lt;&lt; item &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>}</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aToolbox_8hpp_html_a138328aaa20f2a8a514e4d7e6fc9c325"><div class="ttname"><a href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">printTable</a></div><div class="ttdeci">void printTable(const List&lt; String &gt; &amp;items, unsigned columns)</div><div class="ttdoc">Prints a string list as a table.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:66</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><div class="ttname"><a href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a></div><div class="ttdeci">void printLine(const T *item)</div><div class="ttdoc">Prints given item and an endline character.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:50</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a3c9098dc2b305107367c56ded5dec787"><div class="ttname"><a href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a></div><div class="ttdeci">void read(T *storage)</div><div class="ttdoc">Reads user input and stores it.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:26</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a5ca1093462d3266fceb8522e144c1e73"><div class="ttname"><a href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a></div><div class="ttdeci">void print(const T *item)</div><div class="ttdoc">Prints given item.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:38</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a65477b86cd99f1670bf1234960255baf"><div class="ttname"><a href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">inputLineBox</a></div><div class="ttdeci">void inputLineBox(char *output, unsigned maxWidth, bool ignore=true)</div><div class="ttdoc">Prints label, gets a whole line of input and stores it to output.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:19</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html
new file mode 100644
index 0000000..a98c27c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/UserInterface/UserInterface.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">UserInterface.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Menu_8h_source.html">../Generic/ConsoleInterface/Menu.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="String_8h_source.html">../Generic/String/String.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Table_8h_source.html">../Models/Table.h</a>&quot;</code><br />
+</div>
+<p><a href="UserInterface_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserInterface.html">UserInterface</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class that contains and via which the user controls the application's user interface. <a href="classUserInterface.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html
new file mode 100644
index 0000000..8db4ab3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/UserInterface/UserInterface.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">UserInterface.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="UserInterface_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_USERINTERFACE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_USERINTERFACE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;../Generic/ConsoleInterface/Menu.h&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Generic/String/String.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;../Models/Table.h&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classUserInterface.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classUserInterface.html">UserInterface</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_class" href="classMenu.html">Menu</a> menu;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">static</span> <a class="code hl_class" href="classTable.html">Table</a>* table;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">static</span> <a class="code hl_class" href="classString.html">String</a> fileName;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> saved;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_open(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_close(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_save(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_saveas(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_help(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_exit(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_print(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> <span class="keywordtype">void</span> com_edit(<span class="keyword">const</span> <span class="keywordtype">char</span>* params);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_class" href="classUserInterface.html">UserInterface</a>();</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classUserInterface.html#a6d8d6d6b6900823be51259efba78b400">run</a>();</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>};</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassMenu_html"><div class="ttname"><a href="classMenu.html">Menu</a></div><div class="ttdoc">Handles navigation between multiple commands.</div><div class="ttdef"><b>Definition:</b> Menu.h:17</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdoc">A dynamically-allocated C-style string with extra features.</div><div class="ttdef"><b>Definition:</b> String.h:17</div></div>
+<div class="ttc" id="aclassTable_html"><div class="ttname"><a href="classTable.html">Table</a></div><div class="ttdoc">A 2D collection of Cell instances.</div><div class="ttdef"><b>Definition:</b> Table.h:14</div></div>
+<div class="ttc" id="aclassUserInterface_html"><div class="ttname"><a href="classUserInterface.html">UserInterface</a></div><div class="ttdoc">The class that contains and via which the user controls the application's user interface.</div><div class="ttdef"><b>Definition:</b> UserInterface.h:14</div></div>
+<div class="ttc" id="aclassUserInterface_html_a6d8d6d6b6900823be51259efba78b400"><div class="ttname"><a href="classUserInterface.html#a6d8d6d6b6900823be51259efba78b400">UserInterface::run</a></div><div class="ttdeci">void run()</div><div class="ttdoc">Starts the user interface.</div><div class="ttdef"><b>Definition:</b> UserInterface.cpp:146</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html b/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html
new file mode 100644
index 0000000..07c8745
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCell.html" target="_self">Cell</a></td><td class="desc">Fully abstract class that represents a cell in the table </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellDouble.html" target="_self">CellDouble</a></td><td class="desc">A table cell which contains a double-precision floating point number </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellFormula.html" target="_self">CellFormula</a></td><td class="desc">A table cell which contains a formula </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellInt.html" target="_self">CellInt</a></td><td class="desc">A table cell which contains an integer </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellString.html" target="_self">CellString</a></td><td class="desc">A table cell which contains a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> value </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCommand.html" target="_self">Command</a></td><td class="desc">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a> </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List</a></td><td class="desc">Templated class that stores an array of elements in dynamic memory </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMenu.html" target="_self">Menu</a></td><td class="desc">Handles navigation between multiple commands </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPair.html" target="_self">Pair</a></td><td class="desc">Stores two values of any types </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc">A dynamically-allocated C-style string with extra features </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTable.html" target="_self">Table</a></td><td class="desc">A 2D collection of <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> instances </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUserInterface.html" target="_self">UserInterface</a></td><td class="desc">The class that contains and via which the user controls the application's user interface </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png b/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png b/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html
new file mode 100644
index 0000000..95dba5a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Cell Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCell.html">Cell</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a>() const =0</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a>() const =0</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a>(const char *str)=0</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a>(std::ofstream &amp;file)=0</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Cell</b>()=default (defined in <a class="el" href="classCell.html">Cell</a>)</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html
new file mode 100644
index 0000000..ec1af0b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Cell Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCell-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Cell Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Fully abstract class that represents a cell in the table.
+ <a href="classCell.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Cell_8h_source.html">Cell.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for Cell:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classCell.png" usemap="#Cell_map" alt=""/>
+ <map id="Cell_map" name="Cell_map">
+<area href="classCellDouble.html" title="A table cell which contains a double-precision floating point number." alt="CellDouble" shape="rect" coords="0,56,80,80"/>
+<area href="classCellFormula.html" title="A table cell which contains a formula." alt="CellFormula" shape="rect" coords="90,56,170,80"/>
+<area href="classCellInt.html" title="A table cell which contains an integer." alt="CellInt" shape="rect" coords="180,56,260,80"/>
+<area href="classCellString.html" title="A table cell which contains a String value." alt="CellString" shape="rect" coords="270,56,350,80"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a> () const =0</td></tr>
+<tr class="memdesc:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">More...</a><br /></td></tr>
+<tr class="separator:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a> () const =0</td></tr>
+<tr class="memdesc:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">More...</a><br /></td></tr>
+<tr class="separator:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a732fcaeea7050f4afb3bcd6377432b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a> (const char *str)=0</td></tr>
+<tr class="memdesc:a732fcaeea7050f4afb3bcd6377432b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">More...</a><br /></td></tr>
+<tr class="separator:a732fcaeea7050f4afb3bcd6377432b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126ab727ef443f5fd8ef62832614f56b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a> (std::ofstream &amp;file)=0</td></tr>
+<tr class="memdesc:a126ab727ef443f5fd8ef62832614f56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">More...</a><br /></td></tr>
+<tr class="separator:a126ab727ef443f5fd8ef62832614f56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Fully abstract class that represents a cell in the table. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a10bf7a5e3486908f5e6b8b24c5a2e968" name="a10bf7a5e3486908f5e6b8b24c5a2e968"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a10bf7a5e3486908f5e6b8b24c5a2e968">&#9670;&nbsp;</a></span>getNumeralValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual double Cell::getNumeralValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a double-precision floating point number. </p>
+
+<p>Implemented in <a class="el" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">CellDouble</a>, <a class="el" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">CellFormula</a>, <a class="el" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">CellInt</a>, and <a class="el" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">CellString</a>.</p>
+
+</div>
+</div>
+<a id="aebc1f8f5965802b7a44ef3da7aa2ce75" name="aebc1f8f5965802b7a44ef3da7aa2ce75"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aebc1f8f5965802b7a44ef3da7aa2ce75">&#9670;&nbsp;</a></span>getValueForPrint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classString.html">String</a> Cell::getValueForPrint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. </p>
+
+<p>Implemented in <a class="el" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">CellDouble</a>, <a class="el" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">CellFormula</a>, <a class="el" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">CellInt</a>, and <a class="el" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">CellString</a>.</p>
+
+</div>
+</div>
+<a id="a732fcaeea7050f4afb3bcd6377432b95" name="a732fcaeea7050f4afb3bcd6377432b95"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a732fcaeea7050f4afb3bcd6377432b95">&#9670;&nbsp;</a></span>parseAndSetValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void Cell::parseAndSetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parses given C-style string and stores value. </p>
+
+<p>Implemented in <a class="el" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">CellDouble</a>, <a class="el" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">CellFormula</a>, <a class="el" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">CellInt</a>, and <a class="el" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">CellString</a>.</p>
+
+</div>
+</div>
+<a id="a126ab727ef443f5fd8ef62832614f56b" name="a126ab727ef443f5fd8ef62832614f56b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a126ab727ef443f5fd8ef62832614f56b">&#9670;&nbsp;</a></span>writeToFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void Cell::writeToFile </td>
+ <td>(</td>
+ <td class="paramtype">std::ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes value to a text file. </p>
+
+<p>Implemented in <a class="el" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">CellDouble</a>, <a class="el" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">CellFormula</a>, <a class="el" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">CellInt</a>, and <a class="el" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">CellString</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/Models/<a class="el" href="Cell_8h_source.html">Cell.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png
new file mode 100644
index 0000000..6f9875e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html
new file mode 100644
index 0000000..a1cfce3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellDouble Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCellDouble.html">CellDouble</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CellDouble</b>()=default (defined in <a class="el" href="classCellDouble.html">CellDouble</a>)</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CellDouble</b>(double value) (defined in <a class="el" href="classCellDouble.html">CellDouble</a>)</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af">CellDouble</a>(const char *str)</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">getNumeralValue</a>() const override</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">getValueForPrint</a>() const override</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">parseAndSetValue</a>(const char *str) override</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">writeToFile</a>(std::ofstream &amp;file) override</td><td class="entry"><a class="el" href="classCellDouble.html">CellDouble</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~Cell</b>()=default (defined in <a class="el" href="classCell.html">Cell</a>)</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html
new file mode 100644
index 0000000..357fd68
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: CellDouble Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCellDouble-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">CellDouble Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A table cell which contains a double-precision floating point number.
+ <a href="classCellDouble.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CellDouble_8h_source.html">CellDouble.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for CellDouble:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classCellDouble.png" usemap="#CellDouble_map" alt=""/>
+ <map id="CellDouble_map" name="CellDouble_map">
+<area href="classCell.html" title="Fully abstract class that represents a cell in the table." alt="Cell" shape="rect" coords="0,0,74,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aebec6a7fbb1262d3bcbada87e2a18ab7"><td class="memItemLeft" align="right" valign="top"><a id="aebec6a7fbb1262d3bcbada87e2a18ab7" name="aebec6a7fbb1262d3bcbada87e2a18ab7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CellDouble</b> (double value)</td></tr>
+<tr class="separator:aebec6a7fbb1262d3bcbada87e2a18ab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cf8a180a3dd6996cad5054ac3dc13af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af">CellDouble</a> (const char *str)</td></tr>
+<tr class="separator:a9cf8a180a3dd6996cad5054ac3dc13af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a088a191ea593642c944610f5332e1608"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">getNumeralValue</a> () const override</td></tr>
+<tr class="memdesc:a088a191ea593642c944610f5332e1608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCellDouble.html#a088a191ea593642c944610f5332e1608">More...</a><br /></td></tr>
+<tr class="separator:a088a191ea593642c944610f5332e1608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed48fc35c20b4dac5c595d55d03a460b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">getValueForPrint</a> () const override</td></tr>
+<tr class="memdesc:aed48fc35c20b4dac5c595d55d03a460b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">More...</a><br /></td></tr>
+<tr class="separator:aed48fc35c20b4dac5c595d55d03a460b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f977aa0c5b68736621b1ded0687574b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">parseAndSetValue</a> (const char *str) override</td></tr>
+<tr class="memdesc:a3f977aa0c5b68736621b1ded0687574b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">More...</a><br /></td></tr>
+<tr class="separator:a3f977aa0c5b68736621b1ded0687574b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00e0ee96789eeee92d56b4dd6c1c9d86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">writeToFile</a> (std::ofstream &amp;file) override</td></tr>
+<tr class="memdesc:a00e0ee96789eeee92d56b4dd6c1c9d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">More...</a><br /></td></tr>
+<tr class="separator:a00e0ee96789eeee92d56b4dd6c1c9d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a> () const =0</td></tr>
+<tr class="memdesc:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">More...</a><br /></td></tr>
+<tr class="separator:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a> () const =0</td></tr>
+<tr class="memdesc:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">More...</a><br /></td></tr>
+<tr class="separator:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a732fcaeea7050f4afb3bcd6377432b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a> (const char *str)=0</td></tr>
+<tr class="memdesc:a732fcaeea7050f4afb3bcd6377432b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">More...</a><br /></td></tr>
+<tr class="separator:a732fcaeea7050f4afb3bcd6377432b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126ab727ef443f5fd8ef62832614f56b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a> (std::ofstream &amp;file)=0</td></tr>
+<tr class="memdesc:a126ab727ef443f5fd8ef62832614f56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">More...</a><br /></td></tr>
+<tr class="separator:a126ab727ef443f5fd8ef62832614f56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A table cell which contains a double-precision floating point number. </p>
+<p >Implements the <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> class by implementing a value of type double. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a9cf8a180a3dd6996cad5054ac3dc13af" name="a9cf8a180a3dd6996cad5054ac3dc13af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cf8a180a3dd6996cad5054ac3dc13af">&#9670;&nbsp;</a></span>CellDouble()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">CellDouble::CellDouble </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p >Accepts a C-style string in the form "&lt;+/-&gt;&lt;digits&gt;.&lt;digits&gt;" </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a088a191ea593642c944610f5332e1608" name="a088a191ea593642c944610f5332e1608"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a088a191ea593642c944610f5332e1608">&#9670;&nbsp;</a></span>getNumeralValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">double CellDouble::getNumeralValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a double-precision floating point number. </p>
+
+<p>Implements <a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>.</p>
+
+</div>
+</div>
+<a id="aed48fc35c20b4dac5c595d55d03a460b" name="aed48fc35c20b4dac5c595d55d03a460b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed48fc35c20b4dac5c595d55d03a460b">&#9670;&nbsp;</a></span>getValueForPrint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> CellDouble::getValueForPrint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. </p>
+
+<p>Implements <a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a3f977aa0c5b68736621b1ded0687574b" name="a3f977aa0c5b68736621b1ded0687574b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f977aa0c5b68736621b1ded0687574b">&#9670;&nbsp;</a></span>parseAndSetValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellDouble::parseAndSetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parses given C-style string and stores value. </p>
+
+<p>Implements <a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a00e0ee96789eeee92d56b4dd6c1c9d86" name="a00e0ee96789eeee92d56b4dd6c1c9d86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00e0ee96789eeee92d56b4dd6c1c9d86">&#9670;&nbsp;</a></span>writeToFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellDouble::writeToFile </td>
+ <td>(</td>
+ <td class="paramtype">std::ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes value to a text file. </p>
+
+<p>Implements <a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="CellDouble_8h_source.html">CellDouble.h</a></li>
+<li>src/Models/CellDouble.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png
new file mode 100644
index 0000000..4d65ba1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html
new file mode 100644
index 0000000..052644d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellFormula Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCellFormula.html">CellFormula</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CellFormula</b>()=default (defined in <a class="el" href="classCellFormula.html">CellFormula</a>)</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CellFormula</b>(const char *str, const List&lt; List&lt; Cell * &gt; &gt; *tableCells) (defined in <a class="el" href="classCellFormula.html">CellFormula</a>)</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">getNumeralValue</a>() const override</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">getValueForPrint</a>() const override</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">parseAndSetValue</a>(const char *str) override</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">writeToFile</a>(std::ofstream &amp;file) override</td><td class="entry"><a class="el" href="classCellFormula.html">CellFormula</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Cell</b>()=default (defined in <a class="el" href="classCell.html">Cell</a>)</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html
new file mode 100644
index 0000000..2fed2ce
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html
@@ -0,0 +1,254 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: CellFormula Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCellFormula-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">CellFormula Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A table cell which contains a formula.
+ <a href="classCellFormula.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CellFormula_8h_source.html">CellFormula.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for CellFormula:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classCellFormula.png" usemap="#CellFormula_map" alt=""/>
+ <map id="CellFormula_map" name="CellFormula_map">
+<area href="classCell.html" title="Fully abstract class that represents a cell in the table." alt="Cell" shape="rect" coords="0,0,80,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4fb02122d6eec83fb4fa80fea56d5094"><td class="memItemLeft" align="right" valign="top"><a id="a4fb02122d6eec83fb4fa80fea56d5094" name="a4fb02122d6eec83fb4fa80fea56d5094"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CellFormula</b> (const char *str, const <a class="el" href="classList.html">List</a>&lt; <a class="el" href="classList.html">List</a>&lt; <a class="el" href="classCell.html">Cell</a> * &gt; &gt; *tableCells)</td></tr>
+<tr class="separator:a4fb02122d6eec83fb4fa80fea56d5094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea7ea04991b4ef15aa80ff3182bf1e74"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">getNumeralValue</a> () const override</td></tr>
+<tr class="separator:aea7ea04991b4ef15aa80ff3182bf1e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f55209057eb939f3688a1f02f9fcb3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">getValueForPrint</a> () const override</td></tr>
+<tr class="separator:a2f55209057eb939f3688a1f02f9fcb3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afecaac674bfb6bc2bbe1796c74643e31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">parseAndSetValue</a> (const char *str) override</td></tr>
+<tr class="separator:afecaac674bfb6bc2bbe1796c74643e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2883e300abc5153ce84f660f03050fdf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">writeToFile</a> (std::ofstream &amp;file) override</td></tr>
+<tr class="memdesc:a2883e300abc5153ce84f660f03050fdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">More...</a><br /></td></tr>
+<tr class="separator:a2883e300abc5153ce84f660f03050fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a> () const =0</td></tr>
+<tr class="memdesc:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">More...</a><br /></td></tr>
+<tr class="separator:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a> () const =0</td></tr>
+<tr class="memdesc:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">More...</a><br /></td></tr>
+<tr class="separator:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a732fcaeea7050f4afb3bcd6377432b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a> (const char *str)=0</td></tr>
+<tr class="memdesc:a732fcaeea7050f4afb3bcd6377432b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">More...</a><br /></td></tr>
+<tr class="separator:a732fcaeea7050f4afb3bcd6377432b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126ab727ef443f5fd8ef62832614f56b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a> (std::ofstream &amp;file)=0</td></tr>
+<tr class="memdesc:a126ab727ef443f5fd8ef62832614f56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">More...</a><br /></td></tr>
+<tr class="separator:a126ab727ef443f5fd8ef62832614f56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A table cell which contains a formula. </p>
+<p >Implements the <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> class by storing a formula as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> and in a dynamic <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="aea7ea04991b4ef15aa80ff3182bf1e74" name="aea7ea04991b4ef15aa80ff3182bf1e74"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aea7ea04991b4ef15aa80ff3182bf1e74">&#9670;&nbsp;</a></span>getNumeralValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">double CellFormula::getNumeralValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p >Value is recalculated every time this function is called (in case a referenced cell is changed).</p>
+<dl class="section return"><dt>Returns</dt><dd>0 </dd></dl>
+
+<p>Implements <a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a2f55209057eb939f3688a1f02f9fcb3d" name="a2f55209057eb939f3688a1f02f9fcb3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2f55209057eb939f3688a1f02f9fcb3d">&#9670;&nbsp;</a></span>getValueForPrint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> CellFormula::getValueForPrint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p >Value is recalculated every time this function is called (in case a referenced cell is changed).</p>
+<dl class="section return"><dt>Returns</dt><dd>"Error" </dd></dl>
+
+<p>Implements <a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>.</p>
+
+</div>
+</div>
+<a id="afecaac674bfb6bc2bbe1796c74643e31" name="afecaac674bfb6bc2bbe1796c74643e31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afecaac674bfb6bc2bbe1796c74643e31">&#9670;&nbsp;</a></span>parseAndSetValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellFormula::parseAndSetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p >Each math operation is represented with a <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a> that holds indecies of cell reference and a character for the operation.</p>
+<p >Negatve value for the operation character means it's with priority and the result get's calculated immediately (rather than recursively, taking into account other values).</p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">std::logic_error("Error</td><td>Invalid column character!") Thrown when there is something between Rx and C in cell references
+\exception std::logic_error("Error: Invalid value!") Thrown when met value isn't a cell reference or number
+\exception throw std::logic_error("Error: Could not find operand!") Thrown when there isn't an operator character between two values </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implements <a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a2883e300abc5153ce84f660f03050fdf" name="a2883e300abc5153ce84f660f03050fdf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2883e300abc5153ce84f660f03050fdf">&#9670;&nbsp;</a></span>writeToFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellFormula::writeToFile </td>
+ <td>(</td>
+ <td class="paramtype">std::ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes value to a text file. </p>
+
+<p>Implements <a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="CellFormula_8h_source.html">CellFormula.h</a></li>
+<li>src/Models/CellFormula.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png
new file mode 100644
index 0000000..f3e1e36
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html
new file mode 100644
index 0000000..72ab4c6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellInt Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCellInt.html">CellInt</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CellInt</b>()=default (defined in <a class="el" href="classCellInt.html">CellInt</a>)</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CellInt</b>(int value) (defined in <a class="el" href="classCellInt.html">CellInt</a>)</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CellInt</b>(const char *str) (defined in <a class="el" href="classCellInt.html">CellInt</a>)</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">getNumeralValue</a>() const override</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">getValueForPrint</a>() const override</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">parseAndSetValue</a>(const char *str) override</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">writeToFile</a>(std::ofstream &amp;file) override</td><td class="entry"><a class="el" href="classCellInt.html">CellInt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~Cell</b>()=default (defined in <a class="el" href="classCell.html">Cell</a>)</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html
new file mode 100644
index 0000000..8f32438
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: CellInt Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCellInt-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">CellInt Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A table cell which contains an integer.
+ <a href="classCellInt.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CellInt_8h_source.html">CellInt.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for CellInt:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classCellInt.png" usemap="#CellInt_map" alt=""/>
+ <map id="CellInt_map" name="CellInt_map">
+<area href="classCell.html" title="Fully abstract class that represents a cell in the table." alt="Cell" shape="rect" coords="0,0,47,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5c8aaf6d2fb7eb4752849e7afc8ab84b"><td class="memItemLeft" align="right" valign="top"><a id="a5c8aaf6d2fb7eb4752849e7afc8ab84b" name="a5c8aaf6d2fb7eb4752849e7afc8ab84b"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CellInt</b> (int value)</td></tr>
+<tr class="separator:a5c8aaf6d2fb7eb4752849e7afc8ab84b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28a5e1809c8f9d4f9f2f691cd30e7734"><td class="memItemLeft" align="right" valign="top"><a id="a28a5e1809c8f9d4f9f2f691cd30e7734" name="a28a5e1809c8f9d4f9f2f691cd30e7734"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CellInt</b> (const char *str)</td></tr>
+<tr class="separator:a28a5e1809c8f9d4f9f2f691cd30e7734"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8417811309bda5886bb2f70d2b8357bd"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">getNumeralValue</a> () const override</td></tr>
+<tr class="memdesc:a8417811309bda5886bb2f70d2b8357bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">More...</a><br /></td></tr>
+<tr class="separator:a8417811309bda5886bb2f70d2b8357bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14a5b56f045b244ee4246edbfe851eb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">getValueForPrint</a> () const override</td></tr>
+<tr class="memdesc:a14a5b56f045b244ee4246edbfe851eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">More...</a><br /></td></tr>
+<tr class="separator:a14a5b56f045b244ee4246edbfe851eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72788dc2ebadd13ae198e4e143403073"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">parseAndSetValue</a> (const char *str) override</td></tr>
+<tr class="memdesc:a72788dc2ebadd13ae198e4e143403073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">More...</a><br /></td></tr>
+<tr class="separator:a72788dc2ebadd13ae198e4e143403073"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a08dad97c474910e07c06f54bb2de94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">writeToFile</a> (std::ofstream &amp;file) override</td></tr>
+<tr class="memdesc:a7a08dad97c474910e07c06f54bb2de94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">More...</a><br /></td></tr>
+<tr class="separator:a7a08dad97c474910e07c06f54bb2de94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a> () const =0</td></tr>
+<tr class="memdesc:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">More...</a><br /></td></tr>
+<tr class="separator:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a> () const =0</td></tr>
+<tr class="memdesc:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">More...</a><br /></td></tr>
+<tr class="separator:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a732fcaeea7050f4afb3bcd6377432b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a> (const char *str)=0</td></tr>
+<tr class="memdesc:a732fcaeea7050f4afb3bcd6377432b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">More...</a><br /></td></tr>
+<tr class="separator:a732fcaeea7050f4afb3bcd6377432b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126ab727ef443f5fd8ef62832614f56b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a> (std::ofstream &amp;file)=0</td></tr>
+<tr class="memdesc:a126ab727ef443f5fd8ef62832614f56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">More...</a><br /></td></tr>
+<tr class="separator:a126ab727ef443f5fd8ef62832614f56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A table cell which contains an integer. </p>
+<p >Impelements the <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> class by implementing a value of type int </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a8417811309bda5886bb2f70d2b8357bd" name="a8417811309bda5886bb2f70d2b8357bd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8417811309bda5886bb2f70d2b8357bd">&#9670;&nbsp;</a></span>getNumeralValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">double CellInt::getNumeralValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a double-precision floating point number. </p>
+
+<p>Implements <a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a14a5b56f045b244ee4246edbfe851eb2" name="a14a5b56f045b244ee4246edbfe851eb2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14a5b56f045b244ee4246edbfe851eb2">&#9670;&nbsp;</a></span>getValueForPrint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> CellInt::getValueForPrint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. </p>
+
+<p>Implements <a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a72788dc2ebadd13ae198e4e143403073" name="a72788dc2ebadd13ae198e4e143403073"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a72788dc2ebadd13ae198e4e143403073">&#9670;&nbsp;</a></span>parseAndSetValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellInt::parseAndSetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parses given C-style string and stores value. </p>
+
+<p>Implements <a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a7a08dad97c474910e07c06f54bb2de94" name="a7a08dad97c474910e07c06f54bb2de94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7a08dad97c474910e07c06f54bb2de94">&#9670;&nbsp;</a></span>writeToFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellInt::writeToFile </td>
+ <td>(</td>
+ <td class="paramtype">std::ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes value to a text file. </p>
+
+<p>Implements <a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="CellInt_8h_source.html">CellInt.h</a></li>
+<li>src/Models/CellInt.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png
new file mode 100644
index 0000000..ce047b0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html
new file mode 100644
index 0000000..6bb7e44
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">CellString Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCellString.html">CellString</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CellString</b>()=default (defined in <a class="el" href="classCellString.html">CellString</a>)</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CellString</b>(const char *str) (defined in <a class="el" href="classCellString.html">CellString</a>)</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">getNumeralValue</a>() const override</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">getValueForPrint</a>() const override</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">parseAndSetValue</a>(const char *str) override</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">writeToFile</a>(std::ofstream &amp;file) override</td><td class="entry"><a class="el" href="classCellString.html">CellString</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Cell</b>()=default (defined in <a class="el" href="classCell.html">Cell</a>)</td><td class="entry"><a class="el" href="classCell.html">Cell</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html
new file mode 100644
index 0000000..2e645d6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: CellString Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCellString-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">CellString Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A table cell which contains a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> value.
+ <a href="classCellString.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CellString_8h_source.html">CellString.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for CellString:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classCellString.png" usemap="#CellString_map" alt=""/>
+ <map id="CellString_map" name="CellString_map">
+<area href="classCell.html" title="Fully abstract class that represents a cell in the table." alt="Cell" shape="rect" coords="0,0,67,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5b88cbbbc037cec6b8b50fa6dde6a683"><td class="memItemLeft" align="right" valign="top"><a id="a5b88cbbbc037cec6b8b50fa6dde6a683" name="a5b88cbbbc037cec6b8b50fa6dde6a683"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CellString</b> (const char *str)</td></tr>
+<tr class="separator:a5b88cbbbc037cec6b8b50fa6dde6a683"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1f27d1929c2cc8a7a657f72c6640803"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">getNumeralValue</a> () const override</td></tr>
+<tr class="memdesc:ad1f27d1929c2cc8a7a657f72c6640803"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">More...</a><br /></td></tr>
+<tr class="separator:ad1f27d1929c2cc8a7a657f72c6640803"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d88b600e72b4eeca9c933a540343a8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">getValueForPrint</a> () const override</td></tr>
+<tr class="memdesc:a2d88b600e72b4eeca9c933a540343a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">More...</a><br /></td></tr>
+<tr class="separator:a2d88b600e72b4eeca9c933a540343a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8152beac5329e170bf2c225ac189fba4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">parseAndSetValue</a> (const char *str) override</td></tr>
+<tr class="memdesc:a8152beac5329e170bf2c225ac189fba4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">More...</a><br /></td></tr>
+<tr class="separator:a8152beac5329e170bf2c225ac189fba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9f11804de3e600c4a86b253fac9edcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">writeToFile</a> (std::ofstream &amp;file) override</td></tr>
+<tr class="memdesc:ac9f11804de3e600c4a86b253fac9edcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">More...</a><br /></td></tr>
+<tr class="separator:ac9f11804de3e600c4a86b253fac9edcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">getNumeralValue</a> () const =0</td></tr>
+<tr class="memdesc:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a double-precision floating point number. <a href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">More...</a><br /></td></tr>
+<tr class="separator:a10bf7a5e3486908f5e6b8b24c5a2e968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">getValueForPrint</a> () const =0</td></tr>
+<tr class="memdesc:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <a href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">More...</a><br /></td></tr>
+<tr class="separator:aebc1f8f5965802b7a44ef3da7aa2ce75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a732fcaeea7050f4afb3bcd6377432b95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">parseAndSetValue</a> (const char *str)=0</td></tr>
+<tr class="memdesc:a732fcaeea7050f4afb3bcd6377432b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses given C-style string and stores value. <a href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">More...</a><br /></td></tr>
+<tr class="separator:a732fcaeea7050f4afb3bcd6377432b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a126ab727ef443f5fd8ef62832614f56b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">writeToFile</a> (std::ofstream &amp;file)=0</td></tr>
+<tr class="memdesc:a126ab727ef443f5fd8ef62832614f56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes value to a text file. <a href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">More...</a><br /></td></tr>
+<tr class="separator:a126ab727ef443f5fd8ef62832614f56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A table cell which contains a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> value. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="ad1f27d1929c2cc8a7a657f72c6640803" name="ad1f27d1929c2cc8a7a657f72c6640803"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad1f27d1929c2cc8a7a657f72c6640803">&#9670;&nbsp;</a></span>getNumeralValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">double CellString::getNumeralValue </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a double-precision floating point number. </p>
+
+<p>Implements <a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a2d88b600e72b4eeca9c933a540343a8b" name="a2d88b600e72b4eeca9c933a540343a8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d88b600e72b4eeca9c933a540343a8b">&#9670;&nbsp;</a></span>getValueForPrint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> CellString::getValueForPrint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the value of the cell as a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. </p>
+
+<p>Implements <a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>.</p>
+
+</div>
+</div>
+<a id="a8152beac5329e170bf2c225ac189fba4" name="a8152beac5329e170bf2c225ac189fba4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8152beac5329e170bf2c225ac189fba4">&#9670;&nbsp;</a></span>parseAndSetValue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellString::parseAndSetValue </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Parses given C-style string and stores value. </p>
+
+<p>Implements <a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>.</p>
+
+</div>
+</div>
+<a id="ac9f11804de3e600c4a86b253fac9edcf" name="ac9f11804de3e600c4a86b253fac9edcf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac9f11804de3e600c4a86b253fac9edcf">&#9670;&nbsp;</a></span>writeToFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CellString::writeToFile </td>
+ <td>(</td>
+ <td class="paramtype">std::ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes value to a text file. </p>
+
+<p>Implements <a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="CellString_8h_source.html">CellString.h</a></li>
+<li>src/Models/CellString.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png
new file mode 100644
index 0000000..39e8607
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html
new file mode 100644
index 0000000..9ae00a8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Command Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCommand.html">Command</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>()</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCommand.html#a96dda87aba05825c0e8a0323bd25c826">Command</a>(const char *name, void(*exec)(const char *params))</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() const (defined in <a class="el" href="classCommand.html">Command</a>)</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">run</a>(const char *params) const</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html
new file mode 100644
index 0000000..285455d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Command Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCommand-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Command Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a>
+ <a href="classCommand.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Command_8h_source.html">Command.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a18df2d81039392daeb0b78c346a70537"><td class="memItemLeft" align="right" valign="top"><a id="a18df2d81039392daeb0b78c346a70537" name="a18df2d81039392daeb0b78c346a70537"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Command</b> ()</td></tr>
+<tr class="memdesc:a18df2d81039392daeb0b78c346a70537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leaves name empty and exec function pointer to nullptr. <br /></td></tr>
+<tr class="separator:a18df2d81039392daeb0b78c346a70537"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96dda87aba05825c0e8a0323bd25c826"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html#a96dda87aba05825c0e8a0323bd25c826">Command</a> (const char *name, void(*exec)(const char *params))</td></tr>
+<tr class="memdesc:a96dda87aba05825c0e8a0323bd25c826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies contents of nameInMenu and stores exec. <a href="classCommand.html#a96dda87aba05825c0e8a0323bd25c826">More...</a><br /></td></tr>
+<tr class="separator:a96dda87aba05825c0e8a0323bd25c826"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2134b97948833d1ef31c6fb5ed200bed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">run</a> (const char *params) const</td></tr>
+<tr class="memdesc:a2134b97948833d1ef31c6fb5ed200bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes the stored function pointer. <a href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">More...</a><br /></td></tr>
+<tr class="separator:a2134b97948833d1ef31c6fb5ed200bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addaa3c970a31f3babd990ca453538f9b"><td class="memItemLeft" align="right" valign="top"><a id="addaa3c970a31f3babd990ca453538f9b" name="addaa3c970a31f3babd990ca453538f9b"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> () const</td></tr>
+<tr class="separator:addaa3c970a31f3babd990ca453538f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a> </p>
+<p ><a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> uses this class for a more generic implementation of it's navigate function. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a96dda87aba05825c0e8a0323bd25c826" name="a96dda87aba05825c0e8a0323bd25c826"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96dda87aba05825c0e8a0323bd25c826">&#9670;&nbsp;</a></span>Command()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Command::Command </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void(*)(const char *params)&#160;</td>
+ <td class="paramname"><em>exec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies contents of nameInMenu and stores exec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>C-style string, class stores at most 255 characters (last character is always terminating zero) </td></tr>
+ <tr><td class="paramname">exec</td><td>Function pointer that will be executed when <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a> is called. Can be nullptr. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a2134b97948833d1ef31c6fb5ed200bed" name="a2134b97948833d1ef31c6fb5ed200bed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2134b97948833d1ef31c6fb5ed200bed">&#9670;&nbsp;</a></span>run()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Command::run </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Executes the stored function pointer. </p>
+<p >Executes the stored function pointer, when it's not nullptr. Otherwise does nothing. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/ConsoleInterface/<a class="el" href="Command_8h_source.html">Command.h</a></li>
+<li>src/Generic/ConsoleInterface/Command.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html
new file mode 100644
index 0000000..3b6a1a0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List&lt; T &gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classList.html">List&lt; T &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(const T &amp;element)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#ae296516a252e11963dbf963727ce429a">clear</a>()</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>copyFrom</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>count</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>elements</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>free</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a>(const T &amp;element, unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>length</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List</a>(const T *elements, unsigned elementsCount)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a40212635a3d75dfc14e9473271467b04">List</a>(unsigned length)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>List</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>List</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">operator+=</a>(const List&lt; T &gt; other)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">operator[]</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a5fa582de3aec5094a871852b658cf853">operator[]</a>(unsigned index) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a1e380d73cf889304a7468762ade0410c">raw_data</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>resize</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html
new file mode 100644
index 0000000..45d5622
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html
@@ -0,0 +1,429 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: List&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classList-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">List&lt; T &gt; Class Template Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Templated class that stores an array of elements in dynamic memory.
+ <a href="classList.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="List_8hpp_source.html">List.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a93cd36efc12aa5ef5fc28866edce7e61"><td class="memItemLeft" align="right" valign="top"><a id="a93cd36efc12aa5ef5fc28866edce7e61" name="a93cd36efc12aa5ef5fc28866edce7e61"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const T *elements, unsigned elementsCount)</td></tr>
+<tr class="memdesc:a93cd36efc12aa5ef5fc28866edce7e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies all elements in given array. <br /></td></tr>
+<tr class="separator:a93cd36efc12aa5ef5fc28866edce7e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40212635a3d75dfc14e9473271467b04"><td class="memItemLeft" align="right" valign="top"><a id="a40212635a3d75dfc14e9473271467b04" name="a40212635a3d75dfc14e9473271467b04"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (unsigned length)</td></tr>
+<tr class="memdesc:a40212635a3d75dfc14e9473271467b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates memory for the given length. <br /></td></tr>
+<tr class="separator:a40212635a3d75dfc14e9473271467b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfec4f2e7990d06c143852ecfdf907bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a> (const T &amp;element)</td></tr>
+<tr class="memdesc:abfec4f2e7990d06c143852ecfdf907bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an element. <a href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">More...</a><br /></td></tr>
+<tr class="separator:abfec4f2e7990d06c143852ecfdf907bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4586debf72af33bccb3c2fbfce420e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a> (const T &amp;element, unsigned index)</td></tr>
+<tr class="memdesc:ae4586debf72af33bccb3c2fbfce420e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts element at given index. <a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">More...</a><br /></td></tr>
+<tr class="separator:ae4586debf72af33bccb3c2fbfce420e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c0a5b5bca6286f458d6fab280de65a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a> (unsigned index)</td></tr>
+<tr class="memdesc:ad9c0a5b5bca6286f458d6fab280de65a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes element at index. <a href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">More...</a><br /></td></tr>
+<tr class="separator:ad9c0a5b5bca6286f458d6fab280de65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3804f03273ef5e339b504e439c5b6534"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a> (const T &amp;element) const</td></tr>
+<tr class="memdesc:a3804f03273ef5e339b504e439c5b6534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the index of element. <a href="classList.html#a3804f03273ef5e339b504e439c5b6534">More...</a><br /></td></tr>
+<tr class="separator:a3804f03273ef5e339b504e439c5b6534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a163a070c7d5dc77ca3c1726b8f2d4bc1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a> (const T &amp;element) const</td></tr>
+<tr class="separator:a163a070c7d5dc77ca3c1726b8f2d4bc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a321bb581943398344aad07198d1f02ac"><td class="memItemLeft" align="right" valign="top"><a id="a321bb581943398344aad07198d1f02ac" name="a321bb581943398344aad07198d1f02ac"></a>
+T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index)</td></tr>
+<tr class="memdesc:a321bb581943398344aad07198d1f02ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to element at index. <br /></td></tr>
+<tr class="separator:a321bb581943398344aad07198d1f02ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fa582de3aec5094a871852b658cf853"><td class="memItemLeft" align="right" valign="top"><a id="a5fa582de3aec5094a871852b658cf853" name="a5fa582de3aec5094a871852b658cf853"></a>
+const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index) const</td></tr>
+<tr class="memdesc:a5fa582de3aec5094a871852b658cf853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to element at index. <br /></td></tr>
+<tr class="separator:a5fa582de3aec5094a871852b658cf853"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e380d73cf889304a7468762ade0410c"><td class="memItemLeft" align="right" valign="top"><a id="a1e380d73cf889304a7468762ade0410c" name="a1e380d73cf889304a7468762ade0410c"></a>
+const T *&#160;</td><td class="memItemRight" valign="bottom"><b>raw_data</b> () const</td></tr>
+<tr class="memdesc:a1e380d73cf889304a7468762ade0410c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns raw array of data. <br /></td></tr>
+<tr class="separator:a1e380d73cf889304a7468762ade0410c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae296516a252e11963dbf963727ce429a"><td class="memItemLeft" align="right" valign="top"><a id="ae296516a252e11963dbf963727ce429a" name="ae296516a252e11963dbf963727ce429a"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> ()</td></tr>
+<tr class="memdesc:ae296516a252e11963dbf963727ce429a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all data. <br /></td></tr>
+<tr class="separator:ae296516a252e11963dbf963727ce429a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4332ce5a589da28528f035ded6d41e5"><td class="memItemLeft" align="right" valign="top"><a id="aa4332ce5a589da28528f035ded6d41e5" name="aa4332ce5a589da28528f035ded6d41e5"></a>
+<a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="classList.html">List</a>&lt; T &gt; other)</td></tr>
+<tr class="memdesc:aa4332ce5a589da28528f035ded6d41e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends elements from other list. <br /></td></tr>
+<tr class="separator:aa4332ce5a589da28528f035ded6d41e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e3581ee07649f462aa8bb3221a5466e"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:a5e3581ee07649f462aa8bb3221a5466e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads from stream. <a href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">More...</a><br /></td></tr>
+<tr class="separator:a5e3581ee07649f462aa8bb3221a5466e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to stream. <a href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">More...</a><br /></td></tr>
+<tr class="separator:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa32109b77dccd8241b125ebabdda876c"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a> () const</td></tr>
+<tr class="memdesc:aa32109b77dccd8241b125ebabdda876c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length. <a href="classList.html#aa32109b77dccd8241b125ebabdda876c">More...</a><br /></td></tr>
+<tr class="separator:aa32109b77dccd8241b125ebabdda876c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a> () const</td></tr>
+<tr class="memdesc:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count. <a href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">More...</a><br /></td></tr>
+<tr class="separator:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a248952759645a68a4a1ea5aa31bc089f"><td class="memItemLeft" align="right" valign="top"><a id="a248952759645a68a4a1ea5aa31bc089f" name="a248952759645a68a4a1ea5aa31bc089f"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a248952759645a68a4a1ea5aa31bc089f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43ce719b9dcc8aa532bad580c44e99f6"><td class="memItemLeft" align="right" valign="top"><a id="a43ce719b9dcc8aa532bad580c44e99f6" name="a43ce719b9dcc8aa532bad580c44e99f6"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a43ce719b9dcc8aa532bad580c44e99f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25feb644d97345e4f36bf54c7aab4ade"><td class="memItemLeft" align="right" valign="top"><a id="a25feb644d97345e4f36bf54c7aab4ade" name="a25feb644d97345e4f36bf54c7aab4ade"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a25feb644d97345e4f36bf54c7aab4ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3be35847f78c9fdb37c957eff55c1608"><td class="memItemLeft" align="right" valign="top"><a id="a3be35847f78c9fdb37c957eff55c1608" name="a3be35847f78c9fdb37c957eff55c1608"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a3be35847f78c9fdb37c957eff55c1608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a302d78384a6516a4d4dede84d4f0968e"><td class="memItemLeft" align="right" valign="top"><a id="a302d78384a6516a4d4dede84d4f0968e" name="a302d78384a6516a4d4dede84d4f0968e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>resize</b> ()</td></tr>
+<tr class="separator:a302d78384a6516a4d4dede84d4f0968e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29cb6681b3f5514f747d04661b08cfd6"><td class="memItemLeft" align="right" valign="top"><a id="a29cb6681b3f5514f747d04661b08cfd6" name="a29cb6681b3f5514f747d04661b08cfd6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
+<tr class="separator:a29cb6681b3f5514f747d04661b08cfd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef2dcec4a271f7ba2f71ef164535e273"><td class="memItemLeft" align="right" valign="top"><a id="aef2dcec4a271f7ba2f71ef164535e273" name="aef2dcec4a271f7ba2f71ef164535e273"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>copyFrom</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:aef2dcec4a271f7ba2f71ef164535e273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ab28a0d67da45b5d3bb755c72105a516c"><td class="memItemLeft" align="right" valign="top"><a id="ab28a0d67da45b5d3bb755c72105a516c" name="ab28a0d67da45b5d3bb755c72105a516c"></a>
+T *&#160;</td><td class="memItemRight" valign="bottom"><b>elements</b></td></tr>
+<tr class="separator:ab28a0d67da45b5d3bb755c72105a516c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af44323f3a486341510ad97b6bceda1be"><td class="memItemLeft" align="right" valign="top"><a id="af44323f3a486341510ad97b6bceda1be" name="af44323f3a486341510ad97b6bceda1be"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>length</b></td></tr>
+<tr class="separator:af44323f3a486341510ad97b6bceda1be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66db5f1795dd0530911f32552ddd9815"><td class="memItemLeft" align="right" valign="top"><a id="a66db5f1795dd0530911f32552ddd9815" name="a66db5f1795dd0530911f32552ddd9815"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>count</b></td></tr>
+<tr class="separator:a66db5f1795dd0530911f32552ddd9815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><div class="compoundTemplParams">template&lt;typename T&gt;<br />
+class List&lt; T &gt;</div><p >Templated class that stores an array of elements in dynamic memory. </p>
+<dl class="section warning"><dt>Warning</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a>, <a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain()</a>, <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a>, <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a>, operator&lt;&lt;() and operator&gt;&gt;() require the type to have defined a couple of functions. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a> </dd>
+<dd>
+<a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2" title="Writes List to stream with &lt;&lt; operator.">operator&lt;&lt;()</a> </dd>
+<dd>
+<a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07" title="Reads List from stream with &gt;&gt; operator.">operator&gt;&gt;()</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="abfec4f2e7990d06c143852ecfdf907bb" name="abfec4f2e7990d06c143852ecfdf907bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abfec4f2e7990d06c143852ecfdf907bb">&#9670;&nbsp;</a></span>add()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classList.html">List</a>&lt; T &gt;::add </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Adds an element. </p>
+<p >Resizes internal array if there is no space for additional elements. </p>
+
+</div>
+</div>
+<a id="a163a070c7d5dc77ca3c1726b8f2d4bc1" name="a163a070c7d5dc77ca3c1726b8f2d4bc1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a163a070c7d5dc77ca3c1726b8f2d4bc1">&#9670;&nbsp;</a></span>contain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classList.html">List</a>&lt; T &gt;::contain </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Whether the element is contained in the current <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a></dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>Function depends on <a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a>, which means the same "compare" function must be defined in the type </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a> </dd></dl>
+
+</div>
+</div>
+<a id="a3804f03273ef5e339b504e439c5b6534" name="a3804f03273ef5e339b504e439c5b6534"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3804f03273ef5e339b504e439c5b6534">&#9670;&nbsp;</a></span>findIndex()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::findIndex </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Finds the index of element. </p>
+<dl class="section return"><dt>Returns</dt><dd>Index of element. If element isn't found, returns the count of element.</dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "compare" defined, which takes two elements and returns a number &lt;0 if elem1 &lt; elem2, &gt;0 if elem1 &gt; elem2, 0 if elem1 == elem2 </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Searching is done linearly </dd></dl>
+
+</div>
+</div>
+<a id="a3c1e3a3fc085f5b7ae68514c4758687b" name="a3c1e3a3fc085f5b7ae68514c4758687b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3c1e3a3fc085f5b7ae68514c4758687b">&#9670;&nbsp;</a></span>get_count()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::get_count</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the count. </p>
+<p >Count is the amount of elements that are stored. </p>
+
+</div>
+</div>
+<a id="aa32109b77dccd8241b125ebabdda876c" name="aa32109b77dccd8241b125ebabdda876c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa32109b77dccd8241b125ebabdda876c">&#9670;&nbsp;</a></span>get_length()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::get_length</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the length. </p>
+<p >Length is the size of the underlying array (allocated memory). </p>
+
+</div>
+</div>
+<a id="ae4586debf72af33bccb3c2fbfce420e8" name="ae4586debf72af33bccb3c2fbfce420e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae4586debf72af33bccb3c2fbfce420e8">&#9670;&nbsp;</a></span>insertAt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classList.html">List</a>&lt; T &gt;::insertAt </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Inserts element at given index. </p>
+<p >If index is after the last element, the element is just added. Otherwise all elements after the index are shifted right and element is put in place.</p>
+<p >Resizes internal array if there is no space for additional elements. </p>
+
+</div>
+</div>
+<a id="a5e3581ee07649f462aa8bb3221a5466e" name="a5e3581ee07649f462aa8bb3221a5466e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5e3581ee07649f462aa8bb3221a5466e">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; <a class="el" href="classList.html">List</a>&lt; T &gt;::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a> function). Any stored values are deleted and replaced with those from the stream.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "read" defined, which takes an std::istream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="ad9c0a5b5bca6286f458d6fab280de65a" name="ad9c0a5b5bca6286f458d6fab280de65a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad9c0a5b5bca6286f458d6fab280de65a">&#9670;&nbsp;</a></span>removeAt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classList.html">List</a>&lt; T &gt;::removeAt </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes element at index. </p>
+<dl class="section return"><dt>Returns</dt><dd>Wether element could be removed</dd></dl>
+<p>If index is after that of the last element, nothing is done and false is returned. Otherwise elements after index are shifted right and count is reduced. </p>
+
+</div>
+</div>
+<a id="a8d2babffd2fb4a5e0a40dbd306e19956" name="a8d2babffd2fb4a5e0a40dbd306e19956"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d2babffd2fb4a5e0a40dbd306e19956">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; <a class="el" href="classList.html">List</a>&lt; T &gt;::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a> function).</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "write" defined, which takes an std::ostream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/Generic/List/<a class="el" href="List_8hpp_source.html">List.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html
new file mode 100644
index 0000000..02bf2dc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Menu Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classMenu.html">Menu</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">addCommand</a>(const Command &amp;command)</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>()</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0">Menu</a>(const Command *commands, unsigned commandCount)</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a>() const</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html
new file mode 100644
index 0000000..3aff43b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Menu Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classMenu-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Menu Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Handles navigation between multiple commands.
+ <a href="classMenu.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Menu_8h_source.html">Menu.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad466dd83355124a6ed958430450bfe94"><td class="memItemLeft" align="right" valign="top"><a id="ad466dd83355124a6ed958430450bfe94" name="ad466dd83355124a6ed958430450bfe94"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Menu</b> ()</td></tr>
+<tr class="memdesc:ad466dd83355124a6ed958430450bfe94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name as "Menu", leaves all flags to false and creates an empty <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. <br /></td></tr>
+<tr class="separator:ad466dd83355124a6ed958430450bfe94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a429338a549cf1cb86c4b6a55488ea8e0"><td class="memItemLeft" align="right" valign="top"><a id="a429338a549cf1cb86c4b6a55488ea8e0" name="a429338a549cf1cb86c4b6a55488ea8e0"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Menu</b> (const <a class="el" href="classCommand.html">Command</a> *commands, unsigned commandCount)</td></tr>
+<tr class="memdesc:a429338a549cf1cb86c4b6a55488ea8e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies commands. <br /></td></tr>
+<tr class="separator:a429338a549cf1cb86c4b6a55488ea8e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f022cc8b705369073f8fd7b90b30c8d"><td class="memItemLeft" align="right" valign="top"><a id="a1f022cc8b705369073f8fd7b90b30c8d" name="a1f022cc8b705369073f8fd7b90b30c8d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>addCommand</b> (const <a class="el" href="classCommand.html">Command</a> &amp;command)</td></tr>
+<tr class="memdesc:a1f022cc8b705369073f8fd7b90b30c8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a command to the internal <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. <br /></td></tr>
+<tr class="separator:a1f022cc8b705369073f8fd7b90b30c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0400751da7f8583029b7a12d3003c36d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a> () const</td></tr>
+<tr class="memdesc:a0400751da7f8583029b7a12d3003c36d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lists commands and after user input executes an appropriate command run() function. <a href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">More...</a><br /></td></tr>
+<tr class="separator:a0400751da7f8583029b7a12d3003c36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Handles navigation between multiple commands. </p>
+<p >Shows the title, then below it an Error/Warning/Success message if set, lists all command options as an enumerated list, takes command index and calls the chosen command's run() function. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0400751da7f8583029b7a12d3003c36d" name="a0400751da7f8583029b7a12d3003c36d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0400751da7f8583029b7a12d3003c36d">&#9670;&nbsp;</a></span>navigate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Menu::navigate </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lists commands and after user input executes an appropriate command run() function. </p>
+<p >Prints the title, then an Error/Warning/Sucess message (if set), prints all command names as an ordered list (starting from 1), waits for user input to select one of those commands (by list number) and finally executes the appropriate command's run() function.</p>
+<p >After the run() function exists, everything is reprinted. The 0 list index is always "Go Back"/"Exit" and it always stops the reprinting loop.</p>
+<p >If there are no commands, prints "Menu is empty!". If user input doesn't correspond to any command, registers an error message and reprints. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/ConsoleInterface/<a class="el" href="Menu_8h_source.html">Menu.h</a></li>
+<li>src/Generic/ConsoleInterface/Menu.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html
new file mode 100644
index 0000000..396b4cb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classString.html">String</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a>(const String &amp;other) const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">get_cstr</a>() const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">get_length</a>() const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(const char *str)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a0a96f034ca01cc9fbb27e17330c66ca1">operator+=</a>(int number)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#aed8480111703abc1f281148c778b0445">operator+=</a>(unsigned number)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a2e4c8591498da08d8ffe206fc45f62a5">operator+=</a>(double number)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">operator&lt;&lt;</a></td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const String &amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(String &amp;&amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a145347940875a9da605f74c2138be157">operator&gt;&gt;</a></td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">operator[]</a>(unsigned index)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a>(unsigned length)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">String</a>(const char *str)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>String</b>() (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>String</b>(const String &amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>String</b>(String &amp;&amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~String</b>() (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html
new file mode 100644
index 0000000..13b7008
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html
@@ -0,0 +1,444 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: String Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classString-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">String Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A dynamically-allocated C-style string with extra features.
+ <a href="classString.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="String_8h_source.html">String.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad3d65397e27bb3c4db1295208cfb1559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a> (unsigned length)</td></tr>
+<tr class="memdesc:ad3d65397e27bb3c4db1295208cfb1559"><td class="mdescLeft">&#160;</td><td class="mdescRight">The underlying array is allocated with length (+ 1) size. <a href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">More...</a><br /></td></tr>
+<tr class="separator:ad3d65397e27bb3c4db1295208cfb1559"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">String</a> (const char *str)</td></tr>
+<tr class="memdesc:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies str. <a href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">More...</a><br /></td></tr>
+<tr class="separator:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="memItemLeft" align="right" valign="top"><a id="a3d7f953737f3d4dca72d1cc4836f7dcc" name="a3d7f953737f3d4dca72d1cc4836f7dcc"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_cstr</b> () const</td></tr>
+<tr class="memdesc:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns internal C-style string. <br /></td></tr>
+<tr class="separator:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7793a7e9a7601d4c724dcc85566259bf"><td class="memItemLeft" align="right" valign="top"><a id="a7793a7e9a7601d4c724dcc85566259bf" name="a7793a7e9a7601d4c724dcc85566259bf"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_length</b> () const</td></tr>
+<tr class="memdesc:a7793a7e9a7601d4c724dcc85566259bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of characters in string. <br /></td></tr>
+<tr class="separator:a7793a7e9a7601d4c724dcc85566259bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d3b77a51619a8580a373d2cd1092a54"><td class="memItemLeft" align="right" valign="top"><a id="a5d3b77a51619a8580a373d2cd1092a54" name="a5d3b77a51619a8580a373d2cd1092a54"></a>
+char &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index)</td></tr>
+<tr class="memdesc:a5d3b77a51619a8580a373d2cd1092a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a character reference (from the underlying C-style string) at the given index. <br /></td></tr>
+<tr class="separator:a5d3b77a51619a8580a373d2cd1092a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a> (const char *str)</td></tr>
+<tr class="memdesc:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a C-style string. <a href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">More...</a><br /></td></tr>
+<tr class="separator:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a96f034ca01cc9fbb27e17330c66ca1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a0a96f034ca01cc9fbb27e17330c66ca1">operator+=</a> (int number)</td></tr>
+<tr class="memdesc:a0a96f034ca01cc9fbb27e17330c66ca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a number. <a href="classString.html#a0a96f034ca01cc9fbb27e17330c66ca1">More...</a><br /></td></tr>
+<tr class="separator:a0a96f034ca01cc9fbb27e17330c66ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed8480111703abc1f281148c778b0445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#aed8480111703abc1f281148c778b0445">operator+=</a> (unsigned number)</td></tr>
+<tr class="memdesc:aed8480111703abc1f281148c778b0445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a number. <a href="classString.html#aed8480111703abc1f281148c778b0445">More...</a><br /></td></tr>
+<tr class="separator:aed8480111703abc1f281148c778b0445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e4c8591498da08d8ffe206fc45f62a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a2e4c8591498da08d8ffe206fc45f62a5">operator+=</a> (double number)</td></tr>
+<tr class="memdesc:a2e4c8591498da08d8ffe206fc45f62a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a number. <a href="classString.html#a2e4c8591498da08d8ffe206fc45f62a5">More...</a><br /></td></tr>
+<tr class="separator:a2e4c8591498da08d8ffe206fc45f62a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc158dffcdf56e601bd640cbacdfcd3c"><td class="memItemLeft" align="right" valign="top"><a id="afc158dffcdf56e601bd640cbacdfcd3c" name="afc158dffcdf56e601bd640cbacdfcd3c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>String</b> (const <a class="el" href="classString.html">String</a> &amp;other)</td></tr>
+<tr class="separator:afc158dffcdf56e601bd640cbacdfcd3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a734f34a0b7a42bcad30c368d6e8c5469"><td class="memItemLeft" align="right" valign="top"><a id="a734f34a0b7a42bcad30c368d6e8c5469" name="a734f34a0b7a42bcad30c368d6e8c5469"></a>
+<a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classString.html">String</a> &amp;other)</td></tr>
+<tr class="separator:a734f34a0b7a42bcad30c368d6e8c5469"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a553fcc11563b3d0f5c020309e8b68843"><td class="memItemLeft" align="right" valign="top"><a id="a553fcc11563b3d0f5c020309e8b68843" name="a553fcc11563b3d0f5c020309e8b68843"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>String</b> (<a class="el" href="classString.html">String</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a553fcc11563b3d0f5c020309e8b68843"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c0ede83ee25c89959a0c4369166d98a"><td class="memItemLeft" align="right" valign="top"><a id="a3c0ede83ee25c89959a0c4369166d98a" name="a3c0ede83ee25c89959a0c4369166d98a"></a>
+<a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classString.html">String</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a3c0ede83ee25c89959a0c4369166d98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad76bb9eca15651c67332808cdaad6344"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:ad76bb9eca15651c67332808cdaad6344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> from stream. <a href="classString.html#ad76bb9eca15651c67332808cdaad6344">More...</a><br /></td></tr>
+<tr class="separator:ad76bb9eca15651c67332808cdaad6344"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b0ea809587c21bc1d2b87bfee53e628"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a7b0ea809587c21bc1d2b87bfee53e628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> to stream. <a href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">More...</a><br /></td></tr>
+<tr class="separator:a7b0ea809587c21bc1d2b87bfee53e628"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f420d69fbe3de91711dc69148d23cc7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a> (const <a class="el" href="classString.html">String</a> &amp;other) const</td></tr>
+<tr class="memdesc:a3f420d69fbe3de91711dc69148d23cc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two strings. <a href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">More...</a><br /></td></tr>
+<tr class="separator:a3f420d69fbe3de91711dc69148d23cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a145347940875a9da605f74c2138be157"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a145347940875a9da605f74c2138be157">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classString.html">String</a> &amp;str)</td></tr>
+<tr class="memdesc:a145347940875a9da605f74c2138be157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> from stream with &gt;&gt; operator. <a href="classString.html#a145347940875a9da605f74c2138be157">More...</a><br /></td></tr>
+<tr class="separator:a145347940875a9da605f74c2138be157"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf68eeb5ffc0983ecc68d49085e33102"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classString.html">String</a> &amp;str)</td></tr>
+<tr class="memdesc:aaf68eeb5ffc0983ecc68d49085e33102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> to stream with &lt;&lt; operator. <a href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">More...</a><br /></td></tr>
+<tr class="separator:aaf68eeb5ffc0983ecc68d49085e33102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A dynamically-allocated C-style string with extra features. </p>
+<dl class="section remark"><dt>Remarks</dt><dd>There is no buffer allocation, meaning each <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> takes only the amount of memory it needs and every append operation juggles around memory. </dd></dl>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ad3d65397e27bb3c4db1295208cfb1559" name="ad3d65397e27bb3c4db1295208cfb1559"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3d65397e27bb3c4db1295208cfb1559">&#9670;&nbsp;</a></span>String() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">String::String </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>length</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The underlying array is allocated with length (+ 1) size. </p>
+<p >Allocated with length + 1 size, so there is a terminating zero at the end. </p>
+
+</div>
+</div>
+<a id="a3fba40cf6cb11735ffddc355a5ff68f4" name="a3fba40cf6cb11735ffddc355a5ff68f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3fba40cf6cb11735ffddc355a5ff68f4">&#9670;&nbsp;</a></span>String() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">String::String </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies str. </p>
+<p >\params str C-style string </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a3f420d69fbe3de91711dc69148d23cc7" name="a3f420d69fbe3de91711dc69148d23cc7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f420d69fbe3de91711dc69148d23cc7">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int String::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two strings. </p>
+<p >\params other C-style string </p><dl class="section return"><dt>Returns</dt><dd>strcmp between underlying C-style string and "other" </dd></dl>
+
+</div>
+</div>
+<a id="a64de9ab1af5df9397f8fbd8c79d5f4b6" name="a64de9ab1af5df9397f8fbd8c79d5f4b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a64de9ab1af5df9397f8fbd8c79d5f4b6">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a C-style string. </p>
+<p >\params str C-style string </p>
+
+</div>
+</div>
+<a id="a2e4c8591498da08d8ffe206fc45f62a5" name="a2e4c8591498da08d8ffe206fc45f62a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2e4c8591498da08d8ffe206fc45f62a5">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[2/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>number</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a number. </p>
+<p >Converts the number to a C-style string and then uses += to append it. </p>
+
+</div>
+</div>
+<a id="a0a96f034ca01cc9fbb27e17330c66ca1" name="a0a96f034ca01cc9fbb27e17330c66ca1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a96f034ca01cc9fbb27e17330c66ca1">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>number</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a number. </p>
+<p >Converts the number to a C-style string and then uses += to append it. </p>
+
+</div>
+</div>
+<a id="aed8480111703abc1f281148c778b0445" name="aed8480111703abc1f281148c778b0445"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed8480111703abc1f281148c778b0445">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[4/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>number</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a number. </p>
+<p >Converts the number to a C-style string and then uses += to append it. </p>
+
+</div>
+</div>
+<a id="ad76bb9eca15651c67332808cdaad6344" name="ad76bb9eca15651c67332808cdaad6344"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad76bb9eca15651c67332808cdaad6344">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void String::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344" title="Reads String from stream.">read()</a> function). First reads the string length, then the underlying C-style string (including terminating zero).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a7b0ea809587c21bc1d2b87bfee53e628" name="a7b0ea809587c21bc1d2b87bfee53e628"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b0ea809587c21bc1d2b87bfee53e628">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void String::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628" title="Writes String to stream.">write()</a> function). First writes the string length, then the underlying C-style string (including terminating zero).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="aaf68eeb5ffc0983ecc68d49085e33102" name="aaf68eeb5ffc0983ecc68d49085e33102"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaf68eeb5ffc0983ecc68d49085e33102">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>str</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the underlying C-style string</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a145347940875a9da605f74c2138be157" name="a145347940875a9da605f74c2138be157"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a145347940875a9da605f74c2138be157">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>str</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's getline function to read the data.</p>
+<dl class="section warning"><dt>Warning</dt><dd>It takes at most 1024 characters from the stream! </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/String/<a class="el" href="String_8h_source.html">String.h</a></li>
+<li>src/Generic/String/String.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html
new file mode 100644
index 0000000..5a3d12b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Table Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classTable.html">Table</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d">get_cols</a>() const</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b">get_rows</a>() const</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTable.html#a654a6b6617a91dc96dde9038220967d8">getAllCells</a>() const</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classTable.html#a83388586d16c5b42029298b72ed698a5">putCell</a>(unsigned row, unsigned col, const char *rawValue)</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa">saveToFile</a>(const char *filePath) const</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>Table</b>(const char *filePath) (defined in <a class="el" href="classTable.html">Table</a>)</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Table</b>() (defined in <a class="el" href="classTable.html">Table</a>)</td><td class="entry"><a class="el" href="classTable.html">Table</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html
new file mode 100644
index 0000000..006e473
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Table Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classTable-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Table Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>A 2D collection of <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> instances.
+ <a href="classTable.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Table_8h_source.html">Table.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a809ac66faf915c7592e16f1e19db3dc7"><td class="memItemLeft" align="right" valign="top"><a id="a809ac66faf915c7592e16f1e19db3dc7" name="a809ac66faf915c7592e16f1e19db3dc7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Table</b> (const char *filePath)</td></tr>
+<tr class="separator:a809ac66faf915c7592e16f1e19db3dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d2cec43247d091c9b2eb82fadc1a40b"><td class="memItemLeft" align="right" valign="top"><a id="a8d2cec43247d091c9b2eb82fadc1a40b" name="a8d2cec43247d091c9b2eb82fadc1a40b"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_rows</b> () const</td></tr>
+<tr class="memdesc:a8d2cec43247d091c9b2eb82fadc1a40b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns count of rows. <br /></td></tr>
+<tr class="separator:a8d2cec43247d091c9b2eb82fadc1a40b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6dce3e4e7be8c073cef6b1a6876d41d"><td class="memItemLeft" align="right" valign="top"><a id="af6dce3e4e7be8c073cef6b1a6876d41d" name="af6dce3e4e7be8c073cef6b1a6876d41d"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_cols</b> () const</td></tr>
+<tr class="memdesc:af6dce3e4e7be8c073cef6b1a6876d41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns largest count of columns in all rows. <br /></td></tr>
+<tr class="separator:af6dce3e4e7be8c073cef6b1a6876d41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83388586d16c5b42029298b72ed698a5"><td class="memItemLeft" align="right" valign="top"><a id="a83388586d16c5b42029298b72ed698a5" name="a83388586d16c5b42029298b72ed698a5"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>putCell</b> (unsigned row, unsigned col, const char *rawValue)</td></tr>
+<tr class="memdesc:a83388586d16c5b42029298b72ed698a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses rawValue and replaces the value at row and col with it. <br /></td></tr>
+<tr class="separator:a83388586d16c5b42029298b72ed698a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a654a6b6617a91dc96dde9038220967d8"><td class="memItemLeft" align="right" valign="top"><a id="a654a6b6617a91dc96dde9038220967d8" name="a654a6b6617a91dc96dde9038220967d8"></a>
+<a class="el" href="classList.html">List</a>&lt; <a class="el" href="classString.html">String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>getAllCells</b> () const</td></tr>
+<tr class="memdesc:a654a6b6617a91dc96dde9038220967d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> of <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> with <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> representation of every cell in order. <br /></td></tr>
+<tr class="separator:a654a6b6617a91dc96dde9038220967d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a29a5f941369c8b61c56b4d6507a9fa"><td class="memItemLeft" align="right" valign="top"><a id="a8a29a5f941369c8b61c56b4d6507a9fa" name="a8a29a5f941369c8b61c56b4d6507a9fa"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>saveToFile</b> (const char *filePath) const</td></tr>
+<tr class="memdesc:a8a29a5f941369c8b61c56b4d6507a9fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves all cells to a text file. <br /></td></tr>
+<tr class="separator:a8a29a5f941369c8b61c56b4d6507a9fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >A 2D collection of <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> instances. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="Table_8h_source.html">Table.h</a></li>
+<li>src/Models/Table.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html
new file mode 100644
index 0000000..868b3be
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">UserInterface Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classUserInterface.html">UserInterface</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classUserInterface.html#a6d8d6d6b6900823be51259efba78b400">run</a>()</td><td class="entry"><a class="el" href="classUserInterface.html">UserInterface</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>UserInterface</b>() (defined in <a class="el" href="classUserInterface.html">UserInterface</a>)</td><td class="entry"><a class="el" href="classUserInterface.html">UserInterface</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html
new file mode 100644
index 0000000..c76c979
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: UserInterface Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classUserInterface-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">UserInterface Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>The class that contains and via which the user controls the application's user interface.
+ <a href="classUserInterface.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="UserInterface_8h_source.html">UserInterface.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6d8d6d6b6900823be51259efba78b400"><td class="memItemLeft" align="right" valign="top"><a id="a6d8d6d6b6900823be51259efba78b400" name="a6d8d6d6b6900823be51259efba78b400"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>run</b> ()</td></tr>
+<tr class="memdesc:a6d8d6d6b6900823be51259efba78b400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the user interface. <br /></td></tr>
+<tr class="separator:a6d8d6d6b6900823be51259efba78b400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >The class that contains and via which the user controls the application's user interface. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/UserInterface/<a class="el" href="UserInterface_8h_source.html">UserInterface.h</a></li>
+<li>src/UserInterface/UserInterface.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html
new file mode 100644
index 0000000..4732a7c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class Index</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
+<dd><a class="el" href="classCell.html">Cell</a></dd><dd><a class="el" href="classCellDouble.html">CellDouble</a></dd><dd><a class="el" href="classCellFormula.html">CellFormula</a></dd><dd><a class="el" href="classCellInt.html">CellInt</a></dd><dd><a class="el" href="classCellString.html">CellString</a></dd><dd><a class="el" href="classCommand.html">Command</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
+<dd><a class="el" href="classList.html">List</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
+<dd><a class="el" href="classMenu.html">Menu</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
+<dd><a class="el" href="structPair.html">Pair</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
+<dd><a class="el" href="classString.html">String</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
+<dd><a class="el" href="classTable.html">Table</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
+<dd><a class="el" href="classUserInterface.html">UserInterface</a></dd></dl>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png b/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html
new file mode 100644
index 0000000..86c7889
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/String Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="String_8h.html">String.h</a> <a href="String_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:String_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration of class <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html
new file mode 100644
index 0000000..c50ce1f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Models Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_13a0a9da12973dc2d2eb801d618278f1.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Models Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Cell_8h.html">Cell.h</a> <a href="Cell_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Cell_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>CellDouble.h</b> <a href="CellDouble_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellFormula_8h.html">CellFormula.h</a> <a href="CellFormula_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellFormula_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCellFormula.html" title="A table cell which contains a formula.">CellFormula</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellInt_8h.html">CellInt.h</a> <a href="CellInt_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellInt_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellString_8h.html">CellString.h</a> <a href="CellString_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellString_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCellString.html" title="A table cell which contains a String value.">CellString</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Table_8h.html">Table.h</a> <a href="Table_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Table_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html
new file mode 100644
index 0000000..fcb82ad
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/Pair Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_2264f2756aad4c6edc6800fd12175f32.html">Pair</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Pair Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Pair_8hpp.html">Pair.hpp</a> <a href="Pair_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:Pair_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of struct <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html
new file mode 100644
index 0000000..259b312
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_25ba087ece98efc8c7278d78326e4919.html">Generic</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Generic Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_b531042f772ac0962b48690ffe7677e8.html">ConsoleInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_962376993fec580a14c8c11054a78b19.html">List</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_fe8e9063aee6652b92d0c0438ff517cb.html">Pair</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_6eeb28691dabd569dc3ccf7b84ee9030.html">String</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html
new file mode 100644
index 0000000..7125ad8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">src Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_13a0a9da12973dc2d2eb801d618278f1.html">Models</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_57b484aa3be9bd9643d91417ed0c9e7c.html">UserInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html">main.cpp</a></td></tr>
+<tr class="memdesc:main_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a defualt instance of <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> and runs it. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html
new file mode 100644
index 0000000..0bbb4df
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Models Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Models Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Cell_8h.html">Cell.h</a> <a href="Cell_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Cell_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellDouble_8h.html">CellDouble.h</a> <a href="CellDouble_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellDouble_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCellDouble.html" title="A table cell which contains a double-precision floating point number.">CellDouble</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellFormula_8h.html">CellFormula.h</a> <a href="CellFormula_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellFormula_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCellFormula.html" title="A table cell which contains a formula.">CellFormula</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellInt_8h.html">CellInt.h</a> <a href="CellInt_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellInt_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CellString_8h.html">CellString.h</a> <a href="CellString_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:CellString_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCellString.html" title="A table cell which contains a String value.">CellString</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Table_8h.html">Table.h</a> <a href="Table_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Table_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html
new file mode 100644
index 0000000..e95080c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: docs Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_49e56c817e5e54854c35e136979f97ca.html">docs</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">docs Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html
new file mode 100644
index 0000000..1523893
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/UserInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_57b484aa3be9bd9643d91417ed0c9e7c.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">UserInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="UserInterface_8h.html">UserInterface.h</a> <a href="UserInterface_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:UserInterface_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
new file mode 100644
index 0000000..a3c0948
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">src Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html">main.cpp</a></td></tr>
+<tr class="memdesc:main_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a defualt instance of <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> and runs it. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html
new file mode 100644
index 0000000..5af48f7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/String Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_25ba087ece98efc8c7278d78326e4919.html">Generic</a></li><li class="navelem"><a class="el" href="dir_6eeb28691dabd569dc3ccf7b84ee9030.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="String_8h.html">String.h</a> <a href="String_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:String_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration of class <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html
new file mode 100644
index 0000000..68dadf4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/UserInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">UserInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="UserInterface_8h.html">UserInterface.h</a> <a href="UserInterface_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:UserInterface_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html
new file mode 100644
index 0000000..a4ffd8f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">FMI-OOP-P2_Tables Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html
new file mode 100644
index 0000000..4f4e88c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/List Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_25ba087ece98efc8c7278d78326e4919.html">Generic</a></li><li class="navelem"><a class="el" href="dir_962376993fec580a14c8c11054a78b19.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="List_8hpp.html">List.hpp</a> <a href="List_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:List_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html
new file mode 100644
index 0000000..0394a6d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/docs Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_ae031dbf30e0b8b474d3c2bf23c88312.html">docs</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">docs Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html
new file mode 100644
index 0000000..ef69735
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Generic Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_2264f2756aad4c6edc6800fd12175f32.html">Pair</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html
new file mode 100644
index 0000000..1f61c2e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/ConsoleInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_25ba087ece98efc8c7278d78326e4919.html">Generic</a></li><li class="navelem"><a class="el" href="dir_b531042f772ac0962b48690ffe7677e8.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">ConsoleInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Command_8h.html">Command.h</a> <a href="Command_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Command_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Menu_8h.html">Menu.h</a> <a href="Menu_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Menu_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html">Toolbox.hpp</a> <a href="Toolbox_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:Toolbox_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a wide range of functions for simpler/more automated printing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html
new file mode 100644
index 0000000..d8705bc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/List Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="List_8hpp.html">List.hpp</a> <a href="List_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:List_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html
new file mode 100644
index 0000000..9db1575
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/Generic/ConsoleInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">ConsoleInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Command_8h.html">Command.h</a> <a href="Command_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Command_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Menu_8h.html">Menu.h</a> <a href="Menu_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Menu_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html">Toolbox.hpp</a> <a href="Toolbox_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:Toolbox_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a wide range of functions for simpler/more automated printing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html
new file mode 100644
index 0000000..269a362
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/Pair Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_826eb72f5c1b884914782ed7017f0eb6.html">FMI-OOP-P2_Tables</a></li><li class="navelem"><a class="el" href="dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html">src</a></li><li class="navelem"><a class="el" href="dir_25ba087ece98efc8c7278d78326e4919.html">Generic</a></li><li class="navelem"><a class="el" href="dir_fe8e9063aee6652b92d0c0438ff517cb.html">Pair</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Pair Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Pair_8hpp.html">Pair.hpp</a> <a href="Pair_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:Pair_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of struct <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png b/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css
new file mode 100644
index 0000000..9036737
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css
@@ -0,0 +1,1841 @@
+/* The standard CSS for doxygen 1.9.3 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+ul.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+ column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+th p.starttd, th p.intertd, th p.endtd {
+ font-size: 100%;
+ font-weight: 700;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.navtab {
+ border-right: 1px solid #A3B4D7;
+ padding-right: 15px;
+ text-align: right;
+ line-height: 110%;
+}
+
+div.navtab table {
+ border-spacing: 0;
+}
+
+td.navtab {
+ padding-right: 6px;
+ padding-left: 6px;
+}
+td.navtabHL {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ padding-right: 6px;
+ padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+ font-weight: bold;
+}
+
+div.qindex{
+ text-align: center;
+ width: 100%;
+ line-height: 140%;
+ font-size: 130%;
+ color: #A0A0A0;
+}
+
+dt.alphachar{
+ font-size: 180%;
+ font-weight: bold;
+}
+
+.alphachar a{
+ color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+ text-decoration: none;
+}
+
+.classindex dl {
+ padding: 25px;
+ column-count:1
+}
+
+.classindex dd {
+ display:inline-block;
+ margin-left: 50px;
+ width: 90%;
+ line-height: 1.15em;
+}
+
+.classindex dl.odd {
+ background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+ .classindex dl {
+ column-count:2
+ }
+}
+
+@media(min-width: 1320px) {
+ .classindex dl {
+ column-count:3
+ }
+}
+
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+.contents a.qindexHL:visited {
+ color: #FFFFFF;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+ul {
+ overflow: visible;
+}
+
+#side-nav ul {
+ overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+ overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+ text-align: left;
+ direction: ltr;
+ overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+ overflow-y: hidden;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line:after {
+ content:"\000A";
+ white-space: pre;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ margin-right: 9px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+.lineno {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+div.ah, span.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #FFFFFF;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl, img.inline {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+.compoundTemplParams {
+ color: #4665A2;
+ font-size: 80%;
+ line-height: 120%;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+ border-left: 0;
+ border-right: 2px solid #9CAFD4;
+ margin: 0 4px 0 24px;
+ padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+ padding: 8px;
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ margin-bottom: -1px;
+ background-image: url('nav_f.png');
+ background-repeat: repeat-x;
+ background-color: #E2E8F2;
+ line-height: 1.25;
+ font-weight: 300;
+ float:left;
+}
+
+.permalink
+{
+ font-size: 65%;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: 400;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-color: #DFE5F1;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+ font-family: "courier new",courier,monospace;
+ font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype, .tparams .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir, .tparams .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #9CAFD4;
+ border-bottom: 1px solid #9CAFD4;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+.arrow {
+ color: #9CAFD4;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #728DC1;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable caption {
+ caption-side: top;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ font-weight: 400;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+table.classindex
+{
+ margin: 10px;
+ white-space: nowrap;
+ margin-left: 3%;
+ margin-right: 3%;
+ width: 94%;
+ border: 0;
+ border-spacing: 0;
+ padding: 0;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+ text-align: right;
+ direction: rtl;
+}
+
+dl {
+ padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+ margin-right: 0px;
+ padding-right: 0px;
+}
+
+dl.note {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #505050;
+}
+
+dl.todo {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectrow
+{
+ height: 56px;
+}
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectalign
+{
+ vertical-align: middle;
+ padding-left: 0.5em;
+}
+
+#projectname
+{
+ font: 200% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 90% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.plantumlgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+ text-align:right;
+ width:52px;
+}
+
+dl.citelist dd {
+ margin:2px 0 2px 72px;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 8px 10px 10px;
+ width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+ float: left !important;
+ text-align: right;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+ background-position-x: right !important;
+ padding-left: 0 !important;
+ padding-right: 10px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+span.emoji {
+ /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+ * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+ */
+}
+
+span.obfuscator {
+ display: none;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+ margin-left: 0 !important;
+ margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+ margin-left: 0 !important;
+ margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+ margin-left: 0 !important;
+ margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+ margin-left: 0 !important;
+ margin-right: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ /*white-space: nowrap;*/
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+ text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+ text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+ text-align: center
+}
+
+.DocNodeRTL {
+ text-align: right;
+ direction: rtl;
+}
+
+.DocNodeLTR {
+ text-align: left;
+ direction: ltr;
+}
+
+table.DocNodeRTL {
+ width: auto;
+ margin-right: 0;
+ margin-left: auto;
+}
+
+table.DocNodeLTR {
+ width: auto;
+ margin-right: auto;
+ margin-left: 0;
+}
+
+code.JavaDocCode
+ direction:ltr;
+}
+
+tt, code, kbd, samp
+{
+ display: inline-block;
+ direction:ltr;
+}
+/* @end */
+
+u {
+ text-decoration: underline;
+}
+
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg
new file mode 100644
index 0000000..d42dad5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="a">
+ <stop stop-color="#5373B4" offset="0"/>
+ <stop stop-color="#7C95C6" offset="1"/>
+ </linearGradient>
+ <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#C0CCE3" offset="0"/>
+ <stop stop-color="#EEF1F7" offset="1"/>
+ </linearGradient>
+ <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+ <feGaussianBlur stdDeviation="0.45293203"/>
+ </filter>
+ </defs>
+ <g>
+ <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+ <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+ <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
+ <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+ <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js b/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js
new file mode 100644
index 0000000..3174bd7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js
@@ -0,0 +1,121 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function() {
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+ a.html('&#9660;');
+ $(this).show();
+ } else if (l==level+1) {
+ i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+ a.html('&#9658;');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ // the clicked row
+ var currentRow = $('#row_'+id);
+
+ // all rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+ // only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() { return this.id.match(re); });
+
+ // first row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ // replace down arrow by right arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ currentRowSpans.filter(".arrow").html('&#9658;');
+ rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+ } else { // we are SHOWING
+ // replace right arrow by down arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+ currentRowSpans.filter(".arrow").html('&#9660;');
+ // replace down arrows by right arrows for child rows
+ var childRowsSpans = childRows.find("span");
+ childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ childRowsSpans.filter(".arrow").html('&#9658;');
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/files.html b/Year 1/Object-oriented Programming/Project 2/docs/html/files.html
new file mode 100644
index 0000000..5480586
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/files.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">File List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html" target="_self">Generic</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html" target="_self">ConsoleInterface</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Command_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Command_8h.html" target="_self">Command.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> </td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Menu_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Menu_8h.html" target="_self">Menu.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> </td></tr>
+<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Toolbox_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="Toolbox_8hpp.html" target="_self">Toolbox.hpp</a></td><td class="desc">Stores a wide range of functions for simpler/more automated printing </td></tr>
+<tr id="row_0_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html" target="_self">List</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="List_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="List_8hpp.html" target="_self">List.hpp</a></td><td class="desc">Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> </td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_2_" class="arrow" onclick="toggleFolder('0_0_2_')">&#9660;</span><span id="img_0_0_2_" class="iconfopen" onclick="toggleFolder('0_0_2_')">&#160;</span><a class="el" href="dir_2264f2756aad4c6edc6800fd12175f32.html" target="_self">Pair</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Pair_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="Pair_8hpp.html" target="_self">Pair.hpp</a></td><td class="desc">Stores the declaration of struct <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a> </td></tr>
+<tr id="row_0_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_3_" class="arrow" onclick="toggleFolder('0_0_3_')">&#9660;</span><span id="img_0_0_3_" class="iconfopen" onclick="toggleFolder('0_0_3_')">&#160;</span><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html" target="_self">String</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="String_8h_source.html"><span class="icondoc"></span></a><a class="el" href="String_8h.html" target="_self">String.h</a></td><td class="desc">Stores declaration of class <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html" target="_self">Models</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Cell_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Cell_8h.html" target="_self">Cell.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> </td></tr>
+<tr id="row_0_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="CellDouble_8h_source.html"><span class="icondoc"></span></a><a class="el" href="CellDouble_8h.html" target="_self">CellDouble.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCellDouble.html" title="A table cell which contains a double-precision floating point number.">CellDouble</a> </td></tr>
+<tr id="row_0_1_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="CellFormula_8h_source.html"><span class="icondoc"></span></a><a class="el" href="CellFormula_8h.html" target="_self">CellFormula.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCellFormula.html" title="A table cell which contains a formula.">CellFormula</a> </td></tr>
+<tr id="row_0_1_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="CellInt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="CellInt_8h.html" target="_self">CellInt.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> </td></tr>
+<tr id="row_0_1_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="CellString_8h_source.html"><span class="icondoc"></span></a><a class="el" href="CellString_8h.html" target="_self">CellString.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCellString.html" title="A table cell which contains a String value.">CellString</a> </td></tr>
+<tr id="row_0_1_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Table_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Table_8h.html" target="_self">Table.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classTable.html" title="A 2D collection of Cell instances.">Table</a> </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="toggleFolder('0_2_')">&#9660;</span><span id="img_0_2_" class="iconfopen" onclick="toggleFolder('0_2_')">&#160;</span><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html" target="_self">UserInterface</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="UserInterface_8h_source.html"><span class="icondoc"></span></a><a class="el" href="UserInterface_8h.html" target="_self">UserInterface.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> </td></tr>
+<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc">Creates a defualt instance of <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> and runs it </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png b/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png b/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html
new file mode 100644
index 0000000..69dd684
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>add()&#160;:&#160;<a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt; T &gt;</a></li>
+<li>addCommand()&#160;:&#160;<a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>CellDouble()&#160;:&#160;<a class="el" href="classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af">CellDouble</a></li>
+<li>clear()&#160;:&#160;<a class="el" href="classList.html#ae296516a252e11963dbf963727ce429a">List&lt; T &gt;</a></li>
+<li>Command()&#160;:&#160;<a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a></li>
+<li>compare()&#160;:&#160;<a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String</a></li>
+<li>contain()&#160;:&#160;<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>findIndex()&#160;:&#160;<a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>get_cols()&#160;:&#160;<a class="el" href="classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d">Table</a></li>
+<li>get_count()&#160;:&#160;<a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt; T &gt;</a></li>
+<li>get_cstr()&#160;:&#160;<a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String</a></li>
+<li>get_length()&#160;:&#160;<a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String</a></li>
+<li>get_rows()&#160;:&#160;<a class="el" href="classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b">Table</a></li>
+<li>getAllCells()&#160;:&#160;<a class="el" href="classTable.html#a654a6b6617a91dc96dde9038220967d8">Table</a></li>
+<li>getNumeralValue()&#160;:&#160;<a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>, <a class="el" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">CellDouble</a>, <a class="el" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">CellFormula</a>, <a class="el" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">CellInt</a>, <a class="el" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">CellString</a></li>
+<li>getValueForPrint()&#160;:&#160;<a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>, <a class="el" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">CellDouble</a>, <a class="el" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">CellFormula</a>, <a class="el" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">CellInt</a>, <a class="el" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">CellString</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>insertAt()&#160;:&#160;<a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>List()&#160;:&#160;<a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>Menu()&#160;:&#160;<a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>navigate()&#160;:&#160;<a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator+=()&#160;:&#160;<a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt; T &gt;</a>, <a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String</a></li>
+<li>operator&lt;&lt;&#160;:&#160;<a class="el" href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">String</a></li>
+<li>operator&gt;&gt;&#160;:&#160;<a class="el" href="classString.html#a145347940875a9da605f74c2138be157">String</a></li>
+<li>operator[]()&#160;:&#160;<a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt; T &gt;</a>, <a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>parseAndSetValue()&#160;:&#160;<a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>, <a class="el" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">CellDouble</a>, <a class="el" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">CellFormula</a>, <a class="el" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">CellInt</a>, <a class="el" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">CellString</a></li>
+<li>putCell()&#160;:&#160;<a class="el" href="classTable.html#a83388586d16c5b42029298b72ed698a5">Table</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>raw_data()&#160;:&#160;<a class="el" href="classList.html#a1e380d73cf889304a7468762ade0410c">List&lt; T &gt;</a></li>
+<li>read()&#160;:&#160;<a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt; T &gt;</a>, <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">String</a></li>
+<li>removeAt()&#160;:&#160;<a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt; T &gt;</a></li>
+<li>run()&#160;:&#160;<a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">Command</a>, <a class="el" href="classUserInterface.html#a6d8d6d6b6900823be51259efba78b400">UserInterface</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>saveToFile()&#160;:&#160;<a class="el" href="classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa">Table</a></li>
+<li>String()&#160;:&#160;<a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>write()&#160;:&#160;<a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String</a></li>
+<li>writeToFile()&#160;:&#160;<a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>, <a class="el" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">CellDouble</a>, <a class="el" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">CellFormula</a>, <a class="el" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">CellInt</a>, <a class="el" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">CellString</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html
new file mode 100644
index 0000000..cab449b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>add()&#160;:&#160;<a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt; T &gt;</a></li>
+<li>addCommand()&#160;:&#160;<a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>CellDouble()&#160;:&#160;<a class="el" href="classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af">CellDouble</a></li>
+<li>clear()&#160;:&#160;<a class="el" href="classList.html#ae296516a252e11963dbf963727ce429a">List&lt; T &gt;</a></li>
+<li>Command()&#160;:&#160;<a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a></li>
+<li>compare()&#160;:&#160;<a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String</a></li>
+<li>contain()&#160;:&#160;<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>findIndex()&#160;:&#160;<a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>get_cols()&#160;:&#160;<a class="el" href="classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d">Table</a></li>
+<li>get_count()&#160;:&#160;<a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt; T &gt;</a></li>
+<li>get_cstr()&#160;:&#160;<a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String</a></li>
+<li>get_length()&#160;:&#160;<a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String</a></li>
+<li>get_rows()&#160;:&#160;<a class="el" href="classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b">Table</a></li>
+<li>getAllCells()&#160;:&#160;<a class="el" href="classTable.html#a654a6b6617a91dc96dde9038220967d8">Table</a></li>
+<li>getNumeralValue()&#160;:&#160;<a class="el" href="classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968">Cell</a>, <a class="el" href="classCellDouble.html#a088a191ea593642c944610f5332e1608">CellDouble</a>, <a class="el" href="classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74">CellFormula</a>, <a class="el" href="classCellInt.html#a8417811309bda5886bb2f70d2b8357bd">CellInt</a>, <a class="el" href="classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803">CellString</a></li>
+<li>getValueForPrint()&#160;:&#160;<a class="el" href="classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75">Cell</a>, <a class="el" href="classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b">CellDouble</a>, <a class="el" href="classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d">CellFormula</a>, <a class="el" href="classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2">CellInt</a>, <a class="el" href="classCellString.html#a2d88b600e72b4eeca9c933a540343a8b">CellString</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>insertAt()&#160;:&#160;<a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>List()&#160;:&#160;<a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>Menu()&#160;:&#160;<a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>navigate()&#160;:&#160;<a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator+=()&#160;:&#160;<a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt; T &gt;</a>, <a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String</a></li>
+<li>operator[]()&#160;:&#160;<a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt; T &gt;</a>, <a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>parseAndSetValue()&#160;:&#160;<a class="el" href="classCell.html#a732fcaeea7050f4afb3bcd6377432b95">Cell</a>, <a class="el" href="classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b">CellDouble</a>, <a class="el" href="classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31">CellFormula</a>, <a class="el" href="classCellInt.html#a72788dc2ebadd13ae198e4e143403073">CellInt</a>, <a class="el" href="classCellString.html#a8152beac5329e170bf2c225ac189fba4">CellString</a></li>
+<li>putCell()&#160;:&#160;<a class="el" href="classTable.html#a83388586d16c5b42029298b72ed698a5">Table</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>raw_data()&#160;:&#160;<a class="el" href="classList.html#a1e380d73cf889304a7468762ade0410c">List&lt; T &gt;</a></li>
+<li>read()&#160;:&#160;<a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt; T &gt;</a>, <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">String</a></li>
+<li>removeAt()&#160;:&#160;<a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt; T &gt;</a></li>
+<li>run()&#160;:&#160;<a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed">Command</a>, <a class="el" href="classUserInterface.html#a6d8d6d6b6900823be51259efba78b400">UserInterface</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>saveToFile()&#160;:&#160;<a class="el" href="classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa">Table</a></li>
+<li>String()&#160;:&#160;<a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>write()&#160;:&#160;<a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String</a></li>
+<li>writeToFile()&#160;:&#160;<a class="el" href="classCell.html#a126ab727ef443f5fd8ef62832614f56b">Cell</a>, <a class="el" href="classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86">CellDouble</a>, <a class="el" href="classCellFormula.html#a2883e300abc5153ce84f660f03050fdf">CellFormula</a>, <a class="el" href="classCellInt.html#a7a08dad97c474910e07c06f54bb2de94">CellInt</a>, <a class="el" href="classCellString.html#ac9f11804de3e600c4a86b253fac9edcf">CellString</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html
new file mode 100644
index 0000000..6d92625
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class Members - Related Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>operator&lt;&lt;&#160;:&#160;<a class="el" href="classString.html#aaf68eeb5ffc0983ecc68d49085e33102">String</a></li>
+<li>operator&gt;&gt;&#160;:&#160;<a class="el" href="classString.html#a145347940875a9da605f74c2138be157">String</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html b/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html
new file mode 100644
index 0000000..5eda3af
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
+<li>inputLineBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">Toolbox.hpp</a></li>
+<li>operator&lt;&lt;()&#160;:&#160;<a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">List.hpp</a></li>
+<li>operator&gt;&gt;()&#160;:&#160;<a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">List.hpp</a></li>
+<li>print()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">Toolbox.hpp</a></li>
+<li>printLine()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">Toolbox.hpp</a></li>
+<li>printTable()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">Toolbox.hpp</a></li>
+<li>read()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">Toolbox.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html b/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html
new file mode 100644
index 0000000..930e13e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>inputLineBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf">Toolbox.hpp</a></li>
+<li>operator&lt;&lt;()&#160;:&#160;<a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">List.hpp</a></li>
+<li>operator&gt;&gt;()&#160;:&#160;<a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">List.hpp</a></li>
+<li>print()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">Toolbox.hpp</a></li>
+<li>printLine()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">Toolbox.hpp</a></li>
+<li>printTable()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325">Toolbox.hpp</a></li>
+<li>read()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">Toolbox.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html b/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html
new file mode 100644
index 0000000..c0d7359
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class Hierarchy</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCell.html" target="_self">Cell</a></td><td class="desc">Fully abstract class that represents a cell in the table </td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellDouble.html" target="_self">CellDouble</a></td><td class="desc">A table cell which contains a double-precision floating point number </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellFormula.html" target="_self">CellFormula</a></td><td class="desc">A table cell which contains a formula </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellInt.html" target="_self">CellInt</a></td><td class="desc">A table cell which contains an integer </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCellString.html" target="_self">CellString</a></td><td class="desc">A table cell which contains a <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> value </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCommand.html" target="_self">Command</a></td><td class="desc">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a2134b97948833d1ef31c6fb5ed200bed" title="Executes the stored function pointer.">run()</a> </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; T &gt;</a></td><td class="desc">Templated class that stores an array of elements in dynamic memory </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; CellDouble &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Command &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; List&lt; Cell * &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Pair&lt; Pair&lt; int, int &gt;, char &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMenu.html" target="_self">Menu</a></td><td class="desc">Handles navigation between multiple commands </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPair.html" target="_self">Pair&lt; T, U &gt;</a></td><td class="desc">Stores two values of any types </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPair.html" target="_self">Pair&lt; Pair&lt; int, int &gt;, char &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc">A dynamically-allocated C-style string with extra features </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTable.html" target="_self">Table</a></td><td class="desc">A 2D collection of <a class="el" href="classCell.html" title="Fully abstract class that represents a cell in the table.">Cell</a> instances </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUserInterface.html" target="_self">UserInterface</a></td><td class="desc">The class that contains and via which the user controls the application's user interface </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/index.html b/Year 1/Object-oriented Programming/Project 2/docs/html/index.html
new file mode 100644
index 0000000..cfa013b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/index.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: FMI Tables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div><div class="header">
+ <div class="headertitle"><div class="title">FMI Tables </div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p ><a class="anchor" id="mainpage"></a> </p><dl class="section author"><dt>Author</dt><dd>Kamen Mladenov; FMI Computer Science, Year 1, Group 6; Project 2, Topic 7 </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>14 June 2022 </dd></dl>
+<dl class="section copyright"><dt>Copyright</dt><dd>GNU General Public License v3.0</dd></dl>
+<dl>
+<dt>Source Code </dt>
+<dd><a href="https://github.com/Syndamia/FMI-OOP-P2_Tables">https://github.com/Syndamia/FMI-OOP-P2_Tables</a> </dd>
+</dl>
+<h1><a class="anchor" id="autotoc_md0"></a>
+About</h1>
+<p >"FMI Tables" is a simple implementation of parsing and editing a CSV-style table file, that stores strings, formulas and numbers.</p>
+<h1><a class="anchor" id="autotoc_md1"></a>
+Structure overview</h1>
+<p >The project is roughly divided into 3 main components: User Interface, Models and Generic <a class="el" href="index.html#fig1">fig1</a>.</p><ul>
+<li>The User Interface is the messenger between a user and the underlying application. All input and output is handled here.</li>
+<li>Models are the general classes that are used in the user interface and that do the value parsing.</li>
+<li>Generic is a place for all code that is can be used independently from the project. Stuff like <a class="el" href="structPair.html" title="Stores two values of any types.">Pair</a>, <a class="el" href="classString.html" title="A dynamically-allocated C-style string with extra features.">String</a> or <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</li>
+</ul>
+<h1><a class="anchor" id="autotoc_md2"></a>
+Building the project</h1>
+<p >Instructions are all for <code>gcc</code>. All commands should be executed while in the <code>src</code> folder.</p>
+<h2><a class="anchor" id="autotoc_md3"></a>
+Linux/BSD/MacOS</h2>
+<div class="fragment"><div class="line">g++ **/**.cpp -o TicketSystem.out &amp;&amp; ./TicketSystem.out</div>
+</div><!-- fragment --><h2><a class="anchor" id="autotoc_md4"></a>
+Windows (PowerShell)</h2>
+<div class="fragment"><div class="line">g++ (Get-ChildItem -Recurse *.cpp) -o TicketSystem.exe &amp;&amp; ./TicketSystem.exe</div>
+</div><!-- fragment --><h1><a class="anchor" id="autotoc_md5"></a>
+Figures</h1>
+<p ><a class="anchor" id="fig1"></a><b>Figure 1:</b> Overview of the "FMI Ticket System" design</p>
+<div class="image">
+<object type="image/svg+xml" data="FMI-OOP-P2_Table Overview.svg" style="pointer-events: none;"></object>
+</div>
+ </div></div><!-- PageDoc -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js b/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js
new file mode 100644
index 0000000..c9ed3d9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js
@@ -0,0 +1,35 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+/*!
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ * jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
+ * http://www.smartmenus.org/
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html
new file mode 100644
index 0000000..f057020
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: src/main.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">main.cpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Creates a defualt instance of <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> and runs it.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="UserInterface_8h_source.html">UserInterface/UserInterface.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top"><a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
+<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Creates a defualt instance of <a class="el" href="classUserInterface.html" title="The class that contains and via which the user controls the application&#39;s user interface.">UserInterface</a> and runs it. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js b/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js
new file mode 100644
index 0000000..54e81cf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js
@@ -0,0 +1,127 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+ function makeTree(data,relPath) {
+ var result='';
+ if ('children' in data) {
+ result+='<ul>';
+ for (var i in data.children) {
+ result+='<li><a href="'+relPath+data.children[i].url+'">'+
+ data.children[i].text+'</a>'+
+ makeTree(data.children[i],relPath)+'</li>';
+ }
+ result+='</ul>';
+ }
+ return result;
+ }
+ var searchBox;
+ if (searchEnabled) {
+ if (serverSide) {
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<div class="left">'+
+ '<form id="FSearchBox" action="'+relPath+searchPage+
+ '" method="get"><img id="MSearchSelect" src="'+
+ relPath+'search/mag.svg" alt=""/>'+
+ '<input type="text" id="MSearchField" name="query" value="'+search+
+ '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+ ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+ '</form>'+
+ '</div>'+
+ '<div class="right"></div>'+
+ '</div>';
+ } else {
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<span class="left">'+
+ '<img id="MSearchSelect" src="'+relPath+
+ 'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+ ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+ '<input type="text" id="MSearchField" value="'+search+
+ '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+ 'onblur="searchBox.OnSearchFieldFocus(false)" '+
+ 'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+ '</span>'+
+ '<span class="right"><a id="MSearchClose" '+
+ 'href="javascript:searchBox.CloseResultsWindow()">'+
+ '<img id="MSearchCloseImg" border="0" src="'+relPath+
+ 'search/close.svg" alt=""/></a>'
+ '</span>'
+ '</div>';
+ }
+ }
+
+ $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+ '<label class="main-menu-btn" for="main-menu-state">'+
+ '<span class="main-menu-btn-icon"></span> '+
+ 'Toggle main menu visibility</label>'+
+ '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+ '</div>');
+ $('#main-nav').append(makeTree(menudata,relPath));
+ $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ if (searchBox) {
+ $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+ }
+ var $mainMenuState = $('#main-menu-state');
+ var prevWidth = 0;
+ if ($mainMenuState.length) {
+ function initResizableIfExists() {
+ if (typeof initResizable==='function') initResizable();
+ }
+ // animate mobile menu
+ $mainMenuState.change(function(e) {
+ var $menu = $('#main-menu');
+ var options = { duration: 250, step: initResizableIfExists };
+ if (this.checked) {
+ options['complete'] = function() { $menu.css('display', 'block') };
+ $menu.hide().slideDown(options);
+ } else {
+ options['complete'] = function() { $menu.css('display', 'none') };
+ $menu.show().slideUp(options);
+ }
+ });
+ // set default menu visibility
+ function resetState() {
+ var $menu = $('#main-menu');
+ var $mainMenuState = $('#main-menu-state');
+ var newWidth = $(window).outerWidth();
+ if (newWidth!=prevWidth) {
+ if ($(window).outerWidth()<768) {
+ $mainMenuState.prop('checked',false); $menu.hide();
+ $('#searchBoxPos1').html(searchBox);
+ $('#searchBoxPos2').hide();
+ } else {
+ $menu.show();
+ $('#searchBoxPos1').empty();
+ $('#searchBoxPos2').html(searchBox);
+ $('#searchBoxPos2').show();
+ }
+ prevWidth = newWidth;
+ }
+ }
+ $(window).ready(function() { resetState(); initResizableIfExists(); });
+ $(window).resize(resetState);
+ }
+ $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js b/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js
new file mode 100644
index 0000000..caadf4d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js
@@ -0,0 +1,65 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Classes",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"c",url:"functions.html#index_c"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"i",url:"functions.html#index_i"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"n",url:"functions.html#index_n"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"a",url:"functions_func.html#index_a"},
+{text:"c",url:"functions_func.html#index_c"},
+{text:"f",url:"functions_func.html#index_f"},
+{text:"g",url:"functions_func.html#index_g"},
+{text:"i",url:"functions_func.html#index_i"},
+{text:"l",url:"functions_func.html#index_l"},
+{text:"m",url:"functions_func.html#index_m"},
+{text:"n",url:"functions_func.html#index_n"},
+{text:"o",url:"functions_func.html#index_o"},
+{text:"p",url:"functions_func.html#index_p"},
+{text:"r",url:"functions_func.html#index_r"},
+{text:"s",url:"functions_func.html#index_s"},
+{text:"w",url:"functions_func.html#index_w"}]},
+{text:"Related Functions",url:"functions_rela.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"File Members",url:"globals.html",children:[
+{text:"All",url:"globals.html"},
+{text:"Functions",url:"globals_func.html"}]}]}]}
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/open.png b/Year 1/Object-oriented Programming/Project 2/docs/html/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/open.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html
new file mode 100644
index 0000000..c36c9af
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js
new file mode 100644
index 0000000..93f7baa
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List']]],
+ ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html
new file mode 100644
index 0000000..91cfe8a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js
new file mode 100644
index 0000000..81a10be
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js
@@ -0,0 +1,18 @@
+var searchData=
+[
+ ['cell_0',['Cell',['../classCell.html',1,'']]],
+ ['cell_2eh_1',['Cell.h',['../Cell_8h.html',1,'']]],
+ ['celldouble_2',['CellDouble',['../classCellDouble.html',1,'CellDouble'],['../classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af',1,'CellDouble::CellDouble()']]],
+ ['celldouble_2eh_3',['CellDouble.h',['../CellDouble_8h.html',1,'']]],
+ ['cellformula_4',['CellFormula',['../classCellFormula.html',1,'']]],
+ ['cellformula_2eh_5',['CellFormula.h',['../CellFormula_8h.html',1,'']]],
+ ['cellint_6',['CellInt',['../classCellInt.html',1,'']]],
+ ['cellint_2eh_7',['CellInt.h',['../CellInt_8h.html',1,'']]],
+ ['cellstring_8',['CellString',['../classCellString.html',1,'']]],
+ ['cellstring_2eh_9',['CellString.h',['../CellString_8h.html',1,'']]],
+ ['clear_10',['clear',['../classList.html#ae296516a252e11963dbf963727ce429a',1,'List']]],
+ ['command_11',['Command',['../classCommand.html',1,'Command'],['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a96dda87aba05825c0e8a0323bd25c826',1,'Command::Command(const char *name, void(*exec)(const char *params))']]],
+ ['command_2eh_12',['Command.h',['../Command_8h.html',1,'']]],
+ ['compare_13',['compare',['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String']]],
+ ['contain_14',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html
new file mode 100644
index 0000000..259dde4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js
new file mode 100644
index 0000000..459ba67
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]],
+ ['fmi_20tables_1',['FMI Tables',['../index.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html
new file mode 100644
index 0000000..1e60c94
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js
new file mode 100644
index 0000000..bedc7ba
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['get_5fcols_0',['get_cols',['../classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d',1,'Table']]],
+ ['get_5fcount_1',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]],
+ ['get_5fcstr_2',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]],
+ ['get_5flength_3',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]],
+ ['get_5frows_4',['get_rows',['../classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b',1,'Table']]],
+ ['getallcells_5',['getAllCells',['../classTable.html#a654a6b6617a91dc96dde9038220967d8',1,'Table']]],
+ ['getnumeralvalue_6',['getNumeralValue',['../classCellDouble.html#a088a191ea593642c944610f5332e1608',1,'CellDouble::getNumeralValue()'],['../classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803',1,'CellString::getNumeralValue()'],['../classCellInt.html#a8417811309bda5886bb2f70d2b8357bd',1,'CellInt::getNumeralValue()'],['../classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74',1,'CellFormula::getNumeralValue()'],['../classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968',1,'Cell::getNumeralValue() const =0']]],
+ ['getvalueforprint_7',['getValueForPrint',['../classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75',1,'Cell::getValueForPrint()'],['../classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b',1,'CellDouble::getValueForPrint()'],['../classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d',1,'CellFormula::getValueForPrint()'],['../classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2',1,'CellInt::getValueForPrint()'],['../classCellString.html#a2d88b600e72b4eeca9c933a540343a8b',1,'CellString::getValueForPrint()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html
new file mode 100644
index 0000000..08f1aed
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js
new file mode 100644
index 0000000..5d91d7c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['inputlinebox_0',['inputLineBox',['../Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf',1,'Toolbox.cpp']]],
+ ['insertat_1',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html
new file mode 100644
index 0000000..0d85fcc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js
new file mode 100644
index 0000000..51564ec
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html',1,'List&lt; T &gt;'],['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List::List(const T *elements, unsigned elementsCount)'],['../classList.html#a40212635a3d75dfc14e9473271467b04',1,'List::List(unsigned length)']]],
+ ['list_2ehpp_1',['List.hpp',['../List_8hpp.html',1,'']]],
+ ['list_3c_20celldouble_20_3e_2',['List&lt; CellDouble &gt;',['../classList.html',1,'']]],
+ ['list_3c_20command_20_3e_3',['List&lt; Command &gt;',['../classList.html',1,'']]],
+ ['list_3c_20list_3c_20cell_20_2a_20_3e_20_3e_4',['List&lt; List&lt; Cell * &gt; &gt;',['../classList.html',1,'']]],
+ ['list_3c_20pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_20_3e_5',['List&lt; Pair&lt; Pair&lt; int, int &gt;, char &gt; &gt;',['../classList.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html
new file mode 100644
index 0000000..7e088b8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js
new file mode 100644
index 0000000..3883270
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]],
+ ['menu_1',['Menu',['../classMenu.html',1,'Menu'],['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0',1,'Menu::Menu(const Command *commands, unsigned commandCount)']]],
+ ['menu_2eh_2',['Menu.h',['../Menu_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html
new file mode 100644
index 0000000..d2b1825
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js
new file mode 100644
index 0000000..c3df1e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html
new file mode 100644
index 0000000..f4e3a2a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js
new file mode 100644
index 0000000..7402e5e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#a0a96f034ca01cc9fbb27e17330c66ca1',1,'String::operator+=(int number)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)'],['../classString.html#a2e4c8591498da08d8ffe206fc45f62a5',1,'String::operator+=(double number)']]],
+ ['operator_3c_3c_1',['operator&lt;&lt;',['../classString.html#aaf68eeb5ffc0983ecc68d49085e33102',1,'String::operator&lt;&lt;()'],['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'operator&lt;&lt;():&#160;List.hpp']]],
+ ['operator_3e_3e_2',['operator&gt;&gt;',['../classString.html#a145347940875a9da605f74c2138be157',1,'String::operator&gt;&gt;()'],['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'operator&gt;&gt;():&#160;List.hpp']]],
+ ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[](unsigned index)'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[](unsigned index) const'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html
new file mode 100644
index 0000000..89177a8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js
new file mode 100644
index 0000000..116f7b9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['pair_0',['Pair',['../structPair.html',1,'']]],
+ ['pair_2ehpp_1',['Pair.hpp',['../Pair_8hpp.html',1,'']]],
+ ['pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_2',['Pair&lt; Pair&lt; int, int &gt;, char &gt;',['../structPair.html',1,'']]],
+ ['parseandsetvalue_3',['parseAndSetValue',['../classCell.html#a732fcaeea7050f4afb3bcd6377432b95',1,'Cell::parseAndSetValue()'],['../classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b',1,'CellDouble::parseAndSetValue()'],['../classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31',1,'CellFormula::parseAndSetValue()'],['../classCellInt.html#a72788dc2ebadd13ae198e4e143403073',1,'CellInt::parseAndSetValue()'],['../classCellString.html#a8152beac5329e170bf2c225ac189fba4',1,'CellString::parseAndSetValue()']]],
+ ['print_4',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printline_5',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printtable_6',['printTable',['../Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325',1,'Toolbox.cpp']]],
+ ['putcell_7',['putCell',['../classTable.html#a83388586d16c5b42029298b72ed698a5',1,'Table']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html
new file mode 100644
index 0000000..1f90b7a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js
new file mode 100644
index 0000000..c7cbb5c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['raw_5fdata_0',['raw_data',['../classList.html#a1e380d73cf889304a7468762ade0410c',1,'List']]],
+ ['read_1',['read',['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read(T *storage):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read(T &amp;storage):&#160;Toolbox.hpp']]],
+ ['removeat_2',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]],
+ ['run_3',['run',['../classCommand.html#a2134b97948833d1ef31c6fb5ed200bed',1,'Command::run()'],['../classUserInterface.html#a6d8d6d6b6900823be51259efba78b400',1,'UserInterface::run()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html
new file mode 100644
index 0000000..b7ad6e6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js
new file mode 100644
index 0000000..3ffbc47
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['savetofile_0',['saveToFile',['../classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa',1,'Table']]],
+ ['string_1',['String',['../classString.html',1,'String'],['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]],
+ ['string_2eh_2',['String.h',['../String_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html
new file mode 100644
index 0000000..829c917
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js
new file mode 100644
index 0000000..83c729b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['table_0',['Table',['../classTable.html',1,'']]],
+ ['table_2eh_1',['Table.h',['../Table_8h.html',1,'']]],
+ ['toolbox_2ehpp_2',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html
new file mode 100644
index 0000000..d32b28e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js
new file mode 100644
index 0000000..874f281
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['userinterface_0',['UserInterface',['../classUserInterface.html',1,'']]],
+ ['userinterface_2eh_1',['UserInterface.h',['../UserInterface_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html
new file mode 100644
index 0000000..ce450a2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js
new file mode 100644
index 0000000..784e51a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['write_0',['write',['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()']]],
+ ['writetofile_1',['writeToFile',['../classCell.html#a126ab727ef443f5fd8ef62832614f56b',1,'Cell::writeToFile()'],['../classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86',1,'CellDouble::writeToFile()'],['../classCellFormula.html#a2883e300abc5153ce84f660f03050fdf',1,'CellFormula::writeToFile()'],['../classCellInt.html#a7a08dad97c474910e07c06f54bb2de94',1,'CellInt::writeToFile()'],['../classCellString.html#ac9f11804de3e600c4a86b253fac9edcf',1,'CellString::writeToFile()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html
new file mode 100644
index 0000000..8361bcd
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js
new file mode 100644
index 0000000..9c4b534
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['cell_0',['Cell',['../classCell.html',1,'']]],
+ ['celldouble_1',['CellDouble',['../classCellDouble.html',1,'']]],
+ ['cellformula_2',['CellFormula',['../classCellFormula.html',1,'']]],
+ ['cellint_3',['CellInt',['../classCellInt.html',1,'']]],
+ ['cellstring_4',['CellString',['../classCellString.html',1,'']]],
+ ['command_5',['Command',['../classCommand.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html
new file mode 100644
index 0000000..3c668de
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js
new file mode 100644
index 0000000..1e088ed
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html',1,'']]],
+ ['list_3c_20celldouble_20_3e_1',['List&lt; CellDouble &gt;',['../classList.html',1,'']]],
+ ['list_3c_20command_20_3e_2',['List&lt; Command &gt;',['../classList.html',1,'']]],
+ ['list_3c_20list_3c_20cell_20_2a_20_3e_20_3e_3',['List&lt; List&lt; Cell * &gt; &gt;',['../classList.html',1,'']]],
+ ['list_3c_20pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_20_3e_4',['List&lt; Pair&lt; Pair&lt; int, int &gt;, char &gt; &gt;',['../classList.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html
new file mode 100644
index 0000000..868c172
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js
new file mode 100644
index 0000000..3ebc81d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['menu_0',['Menu',['../classMenu.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html
new file mode 100644
index 0000000..995d5d2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js
new file mode 100644
index 0000000..d1e0c47
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['pair_0',['Pair',['../structPair.html',1,'']]],
+ ['pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_1',['Pair&lt; Pair&lt; int, int &gt;, char &gt;',['../structPair.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html
new file mode 100644
index 0000000..b61a53a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js
new file mode 100644
index 0000000..24c218f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['string_0',['String',['../classString.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html
new file mode 100644
index 0000000..004dd4b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js
new file mode 100644
index 0000000..13a6800
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['table_0',['Table',['../classTable.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html
new file mode 100644
index 0000000..21bf019
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js
new file mode 100644
index 0000000..629d9da
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['userinterface_0',['UserInterface',['../classUserInterface.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg
new file mode 100644
index 0000000..a933eea
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ viewBox="0 0 11 11"
+ height="11"
+ width="11"
+ id="svg2"
+ version="1.1">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <path
+ id="path12"
+ d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
+ style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html
new file mode 100644
index 0000000..da83704
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js
new file mode 100644
index 0000000..b1e0294
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['cell_2eh_0',['Cell.h',['../Cell_8h.html',1,'']]],
+ ['celldouble_2eh_1',['CellDouble.h',['../CellDouble_8h.html',1,'']]],
+ ['cellformula_2eh_2',['CellFormula.h',['../CellFormula_8h.html',1,'']]],
+ ['cellint_2eh_3',['CellInt.h',['../CellInt_8h.html',1,'']]],
+ ['cellstring_2eh_4',['CellString.h',['../CellString_8h.html',1,'']]],
+ ['command_2eh_5',['Command.h',['../Command_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html
new file mode 100644
index 0000000..f7e1582
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js
new file mode 100644
index 0000000..1d78260
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['list_2ehpp_0',['List.hpp',['../List_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html
new file mode 100644
index 0000000..99aca62
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js
new file mode 100644
index 0000000..d6e8254
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]],
+ ['menu_2eh_1',['Menu.h',['../Menu_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html
new file mode 100644
index 0000000..25e128c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js
new file mode 100644
index 0000000..f127227
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['pair_2ehpp_0',['Pair.hpp',['../Pair_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html
new file mode 100644
index 0000000..3c8ba6e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js
new file mode 100644
index 0000000..4cc8013
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['string_2eh_0',['String.h',['../String_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html
new file mode 100644
index 0000000..7ff9613
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js
new file mode 100644
index 0000000..582bae8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['table_2eh_0',['Table.h',['../Table_8h.html',1,'']]],
+ ['toolbox_2ehpp_1',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html
new file mode 100644
index 0000000..cdd711b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js
new file mode 100644
index 0000000..a82a6e8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['userinterface_2eh_0',['UserInterface.h',['../UserInterface_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html
new file mode 100644
index 0000000..2d2d950
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js
new file mode 100644
index 0000000..93f7baa
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List']]],
+ ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html
new file mode 100644
index 0000000..3b96b90
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js
new file mode 100644
index 0000000..56a6324
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['celldouble_0',['CellDouble',['../classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af',1,'CellDouble']]],
+ ['clear_1',['clear',['../classList.html#ae296516a252e11963dbf963727ce429a',1,'List']]],
+ ['command_2',['Command',['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a96dda87aba05825c0e8a0323bd25c826',1,'Command::Command(const char *name, void(*exec)(const char *params))']]],
+ ['compare_3',['compare',['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String']]],
+ ['contain_4',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html
new file mode 100644
index 0000000..1f16d2a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js
new file mode 100644
index 0000000..88f9575
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html
new file mode 100644
index 0000000..0b37ee2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js
new file mode 100644
index 0000000..bedc7ba
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['get_5fcols_0',['get_cols',['../classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d',1,'Table']]],
+ ['get_5fcount_1',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]],
+ ['get_5fcstr_2',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]],
+ ['get_5flength_3',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]],
+ ['get_5frows_4',['get_rows',['../classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b',1,'Table']]],
+ ['getallcells_5',['getAllCells',['../classTable.html#a654a6b6617a91dc96dde9038220967d8',1,'Table']]],
+ ['getnumeralvalue_6',['getNumeralValue',['../classCellDouble.html#a088a191ea593642c944610f5332e1608',1,'CellDouble::getNumeralValue()'],['../classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803',1,'CellString::getNumeralValue()'],['../classCellInt.html#a8417811309bda5886bb2f70d2b8357bd',1,'CellInt::getNumeralValue()'],['../classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74',1,'CellFormula::getNumeralValue()'],['../classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968',1,'Cell::getNumeralValue() const =0']]],
+ ['getvalueforprint_7',['getValueForPrint',['../classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75',1,'Cell::getValueForPrint()'],['../classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b',1,'CellDouble::getValueForPrint()'],['../classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d',1,'CellFormula::getValueForPrint()'],['../classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2',1,'CellInt::getValueForPrint()'],['../classCellString.html#a2d88b600e72b4eeca9c933a540343a8b',1,'CellString::getValueForPrint()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html
new file mode 100644
index 0000000..0eaf2b4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js
new file mode 100644
index 0000000..5d91d7c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['inputlinebox_0',['inputLineBox',['../Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf',1,'Toolbox.cpp']]],
+ ['insertat_1',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html
new file mode 100644
index 0000000..eaa2769
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js
new file mode 100644
index 0000000..3c67434
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List::List(const T *elements, unsigned elementsCount)'],['../classList.html#a40212635a3d75dfc14e9473271467b04',1,'List::List(unsigned length)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html
new file mode 100644
index 0000000..25d1cc8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js
new file mode 100644
index 0000000..952ac8d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['menu_0',['Menu',['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0',1,'Menu::Menu(const Command *commands, unsigned commandCount)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html
new file mode 100644
index 0000000..b6392ea
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js
new file mode 100644
index 0000000..c3df1e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html
new file mode 100644
index 0000000..ecf6a89
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js
new file mode 100644
index 0000000..a55cb66
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#a0a96f034ca01cc9fbb27e17330c66ca1',1,'String::operator+=(int number)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)'],['../classString.html#a2e4c8591498da08d8ffe206fc45f62a5',1,'String::operator+=(double number)']]],
+ ['operator_3c_3c_1',['operator&lt;&lt;',['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'List.hpp']]],
+ ['operator_3e_3e_2',['operator&gt;&gt;',['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'List.hpp']]],
+ ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[](unsigned index)'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[](unsigned index) const'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html
new file mode 100644
index 0000000..cd70e2b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js
new file mode 100644
index 0000000..797e657
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['parseandsetvalue_0',['parseAndSetValue',['../classCell.html#a732fcaeea7050f4afb3bcd6377432b95',1,'Cell::parseAndSetValue()'],['../classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b',1,'CellDouble::parseAndSetValue()'],['../classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31',1,'CellFormula::parseAndSetValue()'],['../classCellInt.html#a72788dc2ebadd13ae198e4e143403073',1,'CellInt::parseAndSetValue()'],['../classCellString.html#a8152beac5329e170bf2c225ac189fba4',1,'CellString::parseAndSetValue()']]],
+ ['print_1',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printline_2',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printtable_3',['printTable',['../Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325',1,'Toolbox.cpp']]],
+ ['putcell_4',['putCell',['../classTable.html#a83388586d16c5b42029298b72ed698a5',1,'Table']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html
new file mode 100644
index 0000000..d2a3de9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js
new file mode 100644
index 0000000..c7cbb5c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['raw_5fdata_0',['raw_data',['../classList.html#a1e380d73cf889304a7468762ade0410c',1,'List']]],
+ ['read_1',['read',['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read(T *storage):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read(T &amp;storage):&#160;Toolbox.hpp']]],
+ ['removeat_2',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]],
+ ['run_3',['run',['../classCommand.html#a2134b97948833d1ef31c6fb5ed200bed',1,'Command::run()'],['../classUserInterface.html#a6d8d6d6b6900823be51259efba78b400',1,'UserInterface::run()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html
new file mode 100644
index 0000000..e6f34bb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js
new file mode 100644
index 0000000..6f9b2c7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['savetofile_0',['saveToFile',['../classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa',1,'Table']]],
+ ['string_1',['String',['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html
new file mode 100644
index 0000000..87b4ce2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js
new file mode 100644
index 0000000..784e51a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['write_0',['write',['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()']]],
+ ['writetofile_1',['writeToFile',['../classCell.html#a126ab727ef443f5fd8ef62832614f56b',1,'Cell::writeToFile()'],['../classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86',1,'CellDouble::writeToFile()'],['../classCellFormula.html#a2883e300abc5153ce84f660f03050fdf',1,'CellFormula::writeToFile()'],['../classCellInt.html#a7a08dad97c474910e07c06f54bb2de94',1,'CellInt::writeToFile()'],['../classCellString.html#ac9f11804de3e600c4a86b253fac9edcf',1,'CellString::writeToFile()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg
new file mode 100644
index 0000000..03626f6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="svg2"
+ width="20"
+ height="19"
+ viewBox="0 0 20 19"
+ sodipodi:docname="mag_sel.svg"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="2096"
+ id="namedview4"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="32"
+ inkscape:cx="5.9792688"
+ inkscape:cy="1.1436277"
+ inkscape:window-x="1920"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <circle
+ style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path4611"
+ cx="5.5"
+ cy="8.5"
+ r="3.5" />
+ <path
+ style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11,7 13.5,10 16,7 Z"
+ id="path4609"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.1085854,11.109059 2.7823556,2.782356"
+ id="path4630"
+ inkscape:connector-curvature="0" />
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html
new file mode 100644
index 0000000..2b9360b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html
new file mode 100644
index 0000000..e53c280
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js
new file mode 100644
index 0000000..8fc88dd
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['fmi_20tables_0',['FMI Tables',['../index.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html
new file mode 100644
index 0000000..28d304b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="related_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js
new file mode 100644
index 0000000..6e9c97a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['operator_3c_3c_0',['operator&lt;&lt;',['../classString.html#aaf68eeb5ffc0983ecc68d49085e33102',1,'String']]],
+ ['operator_3e_3e_1',['operator&gt;&gt;',['../classString.html#a145347940875a9da605f74c2138be157',1,'String']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css
new file mode 100644
index 0000000..648a792
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css
@@ -0,0 +1,263 @@
+/*---------------- Search Box */
+
+#MSearchBox {
+ white-space : nowrap;
+ background: white;
+ border-radius: 0.65em;
+ box-shadow: inset 0.5px 0.5px 3px 0px #555;
+ z-index: 102;
+}
+
+#MSearchBox .left {
+ display: inline-block;
+ vertical-align: middle;
+ height: 1.4em;
+}
+
+#MSearchSelect {
+ display: inline-block;
+ vertical-align: middle;
+ height: 19px;
+ padding: 0 0 0 0.3em;
+ margin: 0;
+}
+
+#MSearchField {
+ display: inline-block;
+ vertical-align: middle;
+ width: 7.5em;
+ height: 19px;
+ margin: 0 0.15em;
+ padding: 0;
+ line-height: 1em;
+ border:none;
+ color: #909090;
+ outline: none;
+ font-family: Arial, Verdana, sans-serif;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+ background: none;
+}
+
+@media(hover: none) {
+ /* to avoid zooming on iOS */
+ #MSearchField {
+ font-size: 16px;
+ }
+}
+
+#MSearchBox .right {
+ display: inline-block;
+ vertical-align: middle;
+ width: 1.4em;
+ height: 1.4em;
+}
+
+#MSearchClose {
+ display: none;
+ font-size: inherit;
+ background : none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ outline: none;
+
+}
+
+#MSearchCloseImg {
+ height: 1.4em;
+ padding: 0.3em;
+ margin: 0;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+#main-menu > li:last-child {
+ /* This <li> object is the parent of the search bar */
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 36px;
+ margin-right: 1em;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 10001;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ /*width: 60ex;*/
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+ z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+ font-family: Arial, Verdana, sans-serif;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+ font-family: Arial, Verdana, sans-serif;
+}
+
+.SRResult {
+ display: none;
+}
+
+div.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js
new file mode 100644
index 0000000..ac8055d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js
@@ -0,0 +1,794 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, label, extension)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+ if (!extension || extension == "") { extension = ".html"; }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.searchLabel = label;
+ this.extension = extension;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else
+ {
+ window.frames.MSearchResults.postMessage("take_focus", "*");
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches' + this.extension;
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline-block';
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ var maxWidth = document.body.clientWidth;
+ var width = 400;
+ if (left<10) left=10;
+ if (width+left+8>maxWidth) width=maxWidth-left-8;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
+function init_search()
+{
+ var results = document.getElementById("MSearchSelectWindow");
+ for (var key in indexSectionLabels)
+ {
+ var link = document.createElement('a');
+ link.setAttribute('class','SelectItem');
+ link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+ link.href='javascript:void(0)';
+ link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+ results.appendChild(link);
+ }
+ searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_l.png b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_l.png
new file mode 100644
index 0000000..fd5f7da
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_l.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_m.png b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_m.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_r.png b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_r.png
new file mode 100644
index 0000000..1af5d21
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search_r.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/searchdata.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/searchdata.js
new file mode 100644
index 0000000..a657a8e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/searchdata.js
@@ -0,0 +1,30 @@
+var indexSectionsWithContent =
+{
+ 0: "acfgilmnoprstuw",
+ 1: "clmpstu",
+ 2: "clmpstu",
+ 3: "acfgilmnoprsw",
+ 4: "o",
+ 5: "f"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "files",
+ 3: "functions",
+ 4: "related",
+ 5: "pages"
+};
+
+var indexSectionLabels =
+{
+ 0: "All",
+ 1: "Classes",
+ 2: "Files",
+ 3: "Functions",
+ 4: "Friends",
+ 5: "Pages"
+};
+
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/splitbar.png b/Year 1/Object-oriented Programming/Project 2/docs/html/splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/splitbar.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/structPair-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair-members.html
new file mode 100644
index 0000000..181a80d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Pair&lt; T, U &gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structPair.html">Pair&lt; T, U &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>left</b> (defined in <a class="el" href="structPair.html">Pair&lt; T, U &gt;</a>)</td><td class="entry"><a class="el" href="structPair.html">Pair&lt; T, U &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>Pair</b>() (defined in <a class="el" href="structPair.html">Pair&lt; T, U &gt;</a>)</td><td class="entry"><a class="el" href="structPair.html">Pair&lt; T, U &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Pair</b>(const T &amp;left, const U &amp;right) (defined in <a class="el" href="structPair.html">Pair&lt; T, U &gt;</a>)</td><td class="entry"><a class="el" href="structPair.html">Pair&lt; T, U &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>right</b> (defined in <a class="el" href="structPair.html">Pair&lt; T, U &gt;</a>)</td><td class="entry"><a class="el" href="structPair.html">Pair&lt; T, U &gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html
new file mode 100644
index 0000000..c6ec8a3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Table: Pair&lt; T, U &gt; Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Table
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structPair-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Pair&lt; T, U &gt; Struct Template Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores two values of any types.
+ <a href="structPair.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Pair_8hpp_source.html">Pair.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a0efd790912194b23e8ab1666d72c1d02"><td class="memItemLeft" align="right" valign="top"><a id="a0efd790912194b23e8ab1666d72c1d02" name="a0efd790912194b23e8ab1666d72c1d02"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Pair</b> (const T &amp;left, const U &amp;right)</td></tr>
+<tr class="separator:a0efd790912194b23e8ab1666d72c1d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ae5a0c9a98dff3f275988d994925baa7b"><td class="memItemLeft" align="right" valign="top"><a id="ae5a0c9a98dff3f275988d994925baa7b" name="ae5a0c9a98dff3f275988d994925baa7b"></a>
+T&#160;</td><td class="memItemRight" valign="bottom"><b>left</b></td></tr>
+<tr class="separator:ae5a0c9a98dff3f275988d994925baa7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a6c133899df28091f85637482caf474"><td class="memItemLeft" align="right" valign="top"><a id="a9a6c133899df28091f85637482caf474" name="a9a6c133899df28091f85637482caf474"></a>
+U&#160;</td><td class="memItemRight" valign="bottom"><b>right</b></td></tr>
+<tr class="separator:a9a6c133899df28091f85637482caf474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><div class="compoundTemplParams">template&lt;typename T, typename U&gt;<br />
+struct Pair&lt; T, U &gt;</div><p >Stores two values of any types. </p>
+<p >Values are public, so no explicit getters or setters are made. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/Generic/Pair/<a class="el" href="Pair_8hpp_source.html">Pair.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css b/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css
new file mode 100644
index 0000000..00d1c60
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file