diff --git a/Projects/p3-skeleton/cs448p3/.gitignore b/Projects/p3-skeleton/cs448p3/.gitignore
deleted file mode 100644
index 00b41c6..0000000
--- a/Projects/p3-skeleton/cs448p3/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/
-.DS_Store
diff --git a/Projects/p3-skeleton/cs448p3/Makefile b/Projects/p3-skeleton/cs448p3/Makefile
deleted file mode 100644
index 099fa66..0000000
--- a/Projects/p3-skeleton/cs448p3/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-JDKPATH = /usr
-LIBPATH = lib/bufmgr.jar:lib/diskmgr.jar:lib/heap.jar:lib/index.jar:lib/junit.jar:lib/org.hamcrest.core_1.3.0.v201303031735.jar
-SRCPATH = src/main/java/*/
-TESTPATH = src/test/java/*/
-
-CLASSPATH = .:..:$(LIBPATH)
-BINPATH = $(JDKPATH)/bin
-JAVAC = $(JDKPATH)/bin/javac
-JAVA = $(JDKPATH)/bin/java
-
-PROGS = xx
-
-all: $(PROGS)
-
-compile:${SRCPATH}*.java
- $(JAVAC) -cp $(CLASSPATH) -d bin ${SRCPATH}*.java ${TESTPATH}*.java
-
-xx : compile
- $(JAVA) -cp $(CLASSPATH):bin tests.ROTest
-
diff --git a/Projects/p3-skeleton/cs448p3/p3-handout.pdf b/Projects/p3-skeleton/cs448p3/p3-handout.pdf
deleted file mode 100644
index 98ce7de..0000000
Binary files a/Projects/p3-skeleton/cs448p3/p3-handout.pdf and /dev/null differ
diff --git a/Projects/p3-skeleton/cs448p3/pom.xml b/Projects/p3-skeleton/cs448p3/pom.xml
deleted file mode 100644
index a55f734..0000000
--- a/Projects/p3-skeleton/cs448p3/pom.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
- 4.0.0
-
- edu.cs.purdue
- cs448p3
- 1.0-SNAPSHOT
-
- cs448p3
- https://www.cs.purdue.edu/homes/bb/cs448f19/
-
-
- 10
- UTF-8
- ${java.version}
- ${java.version}
-
-
-
-
- com.googlecode.json-simple
- json-simple
- 1.1.1
-
-
- com.opencsv
- opencsv
- 4.0
-
-
- junit
- junit
- 4.11
- test
-
-
- minibase
- bufmgr
- 1.0
- system
- ${basedir}/lib/bufmgr.jar
-
-
- minibase
- diskmgr
- 1.0
- system
- ${basedir}/lib/diskmgr.jar
- jar
-
-
- minibase
- heap
- 1.0
- system
- ${basedir}/lib/heap.jar
-
-
- minibase
- index
- 1.0
- system
- ${basedir}/lib/index.jar
-
-
-
-
-
-
-
-
-
- maven-clean-plugin
- 3.1.0
-
-
-
- maven-resources-plugin
- 3.0.2
-
-
- maven-compiler-plugin
- 3.8.0
-
- ${java.version}
-
-
-
- maven-surefire-plugin
- 2.22.1
-
-
- maven-jar-plugin
- 3.0.2
-
-
- maven-install-plugin
- 2.5.2
-
-
- maven-deploy-plugin
- 2.8.2
-
-
-
- maven-site-plugin
- 3.7.1
-
-
- maven-project-info-reports-plugin
- 3.0.0
-
-
- maven-assembly-plugin
-
-
-
- test.TestDriver
-
-
-
- jar-with-dependencies
-
-
-
-
-
-
-
diff --git a/Projects/p3-skeleton/cs448p3/solution.txt b/Projects/p3-skeleton/cs448p3/solution.txt
deleted file mode 100644
index 5e89823..0000000
--- a/Projects/p3-skeleton/cs448p3/solution.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-proj_idx=3:18.|9:19.|2:20.|8:20.|4:22.|6:23.|7:24.|1:25.|5:26.
-proj_key=2:20.|8:20.
-proj_sel=2:20.|8:20.
-proj_proj=1:25.|2:20.|3:18.|4:22.|5:26.|6:23.|7:24.|8:20.|9:19.
-proj_sj=1:25.|1:25.|2:20.|2:20.|3:18.|3:18.|3:18.|4:22.|5:26.|6:23.|8:20.|9:19.
-proj_hj=1:25.|1:25.|2:20.|2:20.|3:18.|3:18.|3:18.|4:22.|5:26.|6:23.|8:20.|9:19.
-keyscan=2:Walid:Aref:20.013|8:Arif:Ghafoor:20.05
-selection=1:Ahmed:Elmagarmid:25.05|4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08
-idxscan=3:Christopher:Clifton:18.04|9:Jeff:Vitter:19.010|2:Walid:Aref:20.013|8:Arif:Ghafoor:20.05|4:Sunil:Prabhakar:22.07|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08|1:Ahmed:Elmagarmid:25.05|5:Elisa:Bertino:26.05
-filescan=1:Ahmed:Elmagarmid:25.05|2:Walid:Aref:20.013|3:Christopher:Clifton:18.04|4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08|8:Arif:Ghafoor:20.05|9:Jeff:Vitter:19.010
-sel_idx=2:Walid:Aref:20.013
-sel_key=2:Walid:Aref:20.013
-sel_sel=2:Walid:Aref:20.013
-sel_proj=2:Walid
-sel_sj=2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006
-sel_jh=2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006
-selection_preds=1:Ahmed:Elmagarmid:25.05|3:Christopher:Clifton:18.04|5:Elisa:Bertino:26.05|7:David:Eberts:24.08
-hj_sel_sj=6:Susanne:Hambrusch:23.03:6:6:2/25/2006:2/26/2006:1:Purdue1
-hj_proj_hj=1:25.01:2:2/12/2006:2/14/2006:2:Purdue2|1:25.01:3:2/15/2006:2/16/2006:3:Purdue3|2:20.02:6:2/17/2006:2/20/2006:6:Purdue6|2:20.02:7:2/18/2006:2/23/2006:7:Purdue7|3:18.03:2:2/24/2006:2/26/2006:2:Purdue2|3:18.03:4:2/18/2006:2/19/2006:4:Purdue4|3:18.03:5:2/10/2006:2/13/2006:5:Purdue5|4:22.04:1:2/19/2006:2/19/2006:1:Purdue1|5:26.05:7:2/14/2006:2/18/2006:7:Purdue7|6:23.06:6:2/25/2006:2/26/2006:6:Purdue6|8:20.08:5:2/20/2006:2/22/2006:5:Purdue5|9:19.09:1:2/15/2006:2/15/2006:1:Purdue1
-hj_iscan_kscan=4:Sunil:Prabhakar:22.07:4:1:2/19/2006:2/19/2006|9:Jeff:Vitter:19.010:9:1:2/15/2006:2/15/2006
-hashjoin=1:Ahmed:Elmagarmid:25.05:1:2:2/12/2006:2/14/2006|1:Ahmed:Elmagarmid:25.05:1:3:2/15/2006:2/16/2006|2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006|3:Christopher:Clifton:18.04:3:5:2/10/2006:2/13/2006|3:Christopher:Clifton:18.04:3:4:2/18/2006:2/19/2006|3:Christopher:Clifton:18.04:3:2:2/24/2006:2/26/2006|4:Sunil:Prabhakar:22.07:4:1:2/19/2006:2/19/2006|5:Elisa:Bertino:26.05:5:7:2/14/2006:2/18/2006|6:Susanne:Hambrusch:23.03:6:6:2/25/2006:2/26/2006|8:Arif:Ghafoor:20.05:8:5:2/20/2006:2/22/2006|9:Jeff:Vitter:19.010:9:1:2/15/2006:2/15/2006
-projection=Ahmed:5|Walid:13|Christopher:4|Sunil:7|Elisa:5|Susanne:3|David:8|Arif:5|Jeff:10
-hashEqual=128:"Adnan":"Bob":19.010:128:"Adnan":"Bob":19.010|256:"Adnan":"Bob":19.010:256:"Adnan":"Bob":19.010|384:"Adnan":"Bob":19.010:384:"Adnan":"Bob":19.010|512:"Adnan":"Bob":19.010:512:"Adnan":"Bob":19.010|640:"Adnan":"Bob":19.010:640:"Adnan":"Bob":19.010|768:"Adnan":"Bob":19.010:768:"Adnan":"Bob":19.010|896:"Adnan":"Bob":19.010:896:"Adnan":"Bob":19.010|1:"Ahmed":"Elmagarmid":25.05:1:"Ahmed":"Elmagarmid":25.05|129:"Adnan":"Edgardo":19.010:129:"Adnan":"Edgardo":19.010|257:"Adnan":"Edgardo":19.010:257:"Adnan":"Edgardo":19.010|385:"Adnan":"Edgardo":19.010:385:"Adnan":"Edgardo":19.010|513:"Adnan":"Edgardo":19.010:513:"Adnan":"Edgardo":19.010|641:"Adnan":"Edgardo":19.010:641:"Adnan":"Edgardo":19.010|769:"Adnan":"Edgardo":19.010:769:"Adnan":"Edgardo":19.010|897:"Adnan":"Edgardo":19.010:897:"Adnan":"Edgardo":19.010|2:"Walid":"Aref":20.013:2:"Walid":"Aref":20.013|130:"Adnan":"Bob":19.010:130:"Adnan":"Bob":19.010|258:"Adnan":"Bob":19.010:258:"Adnan":"Bob":19.010|386:"Adnan":"Bob":19.010:386:"Adnan":"Bob":19.010|514:"Adnan":"Bob":19.010:514:"Adnan":"Bob":19.010|642:"Adnan":"Bob":19.010:642:"Adnan":"Bob":19.010|770:"Adnan":"Bob":19.010:770:"Adnan":"Bob":19.010|898:"Adnan":"Bob":19.010:898:"Adnan":"Bob":19.010|3:"Christopher":"Clifton":18.04:3:"Christopher":"Clifton":18.04|131:"Adnan":"Edgardo":19.010:131:"Adnan":"Edgardo":19.010|259:"Adnan":"Edgardo":19.010:259:"Adnan":"Edgardo":19.010|387:"Adnan":"Edgardo":19.010:387:"Adnan":"Edgardo":19.010|515:"Adnan":"Edgardo":19.010:515:"Adnan":"Edgardo":19.010|643:"Adnan":"Edgardo":19.010:643:"Adnan":"Edgardo":19.010|771:"Adnan":"Edgardo":19.010:771:"Adnan":"Edgardo":19.010|899:"Adnan":"Edgardo":19.010:899:"Adnan":"Edgardo":19.010|4:"Sunil":"Prabhakar":22.07:4:"Sunil":"Prabhakar":22.07|132:"Adnan":"Bob":19.010:132:"Adnan":"Bob":19.010|260:"Adnan":"Bob":19.010:260:"Adnan":"Bob":19.010|388:"Adnan":"Bob":19.010:388:"Adnan":"Bob":19.010|516:"Adnan":"Bob":19.010:516:"Adnan":"Bob":19.010|644:"Adnan":"Bob":19.010:644:"Adnan":"Bob":19.010|772:"Adnan":"Bob":19.010:772:"Adnan":"Bob":19.010|900:"Adnan":"Bob":19.010:900:"Adnan":"Bob":19.010|5:"Elisa":"Bertino":26.05:5:"Elisa":"Bertino":26.05|133:"Adnan":"Edgardo":19.010:133:"Adnan":"Edgardo":19.010|261:"Adnan":"Edgardo":19.010:261:"Adnan":"Edgardo":19.010|389:"Adnan":"Edgardo":19.010:389:"Adnan":"Edgardo":19.010|517:"Adnan":"Edgardo":19.010:517:"Adnan":"Edgardo":19.010|645:"Adnan":"Edgardo":19.010:645:"Adnan":"Edgardo":19.010|773:"Adnan":"Edgardo":19.010:773:"Adnan":"Edgardo":19.010|901:"Adnan":"Edgardo":19.010:901:"Adnan":"Edgardo":19.010|6:"Susanne":"Hambrusch":23.03:6:"Susanne":"Hambrusch":23.03|134:"Adnan":"Bob":19.010:134:"Adnan":"Bob":19.010|262:"Adnan":"Bob":19.010:262:"Adnan":"Bob":19.010|390:"Adnan":"Bob":19.010:390:"Adnan":"Bob":19.010|518:"Adnan":"Bob":19.010:518:"Adnan":"Bob":19.010|646:"Adnan":"Bob":19.010:646:"Adnan":"Bob":19.010|774:"Adnan":"Bob":19.010:774:"Adnan":"Bob":19.010|902:"Adnan":"Bob":19.010:902:"Adnan":"Bob":19.010|7:"David":"Eberts":24.08:7:"David":"Eberts":24.08|135:"Adnan":"Edgardo":19.010:135:"Adnan":"Edgardo":19.010|263:"Adnan":"Edgardo":19.010:263:"Adnan":"Edgardo":19.010|391:"Adnan":"Edgardo":19.010:391:"Adnan":"Edgardo":19.010|519:"Adnan":"Edgardo":19.010:519:"Adnan":"Edgardo":19.010|647:"Adnan":"Edgardo":19.010:647:"Adnan":"Edgardo":19.010|775:"Adnan":"Edgardo":19.010:775:"Adnan":"Edgardo":19.010|903:"Adnan":"Edgardo":19.010:903:"Adnan":"Edgardo":19.010|8:"Arif":"Ghafoor":20.05:8:"Arif":"Ghafoor":20.05|136:"Adnan":"Bob":19.010:136:"Adnan":"Bob":19.010|264:"Adnan":"Bob":19.010:264:"Adnan":"Bob":19.010|392:"Adnan":"Bob":19.010:392:"Adnan":"Bob":19.010|520:"Adnan":"Bob":19.010:520:"Adnan":"Bob":19.010|648:"Adnan":"Bob":19.010:648:"Adnan":"Bob":19.010|776:"Adnan":"Bob":19.010:776:"Adnan":"Bob":19.010|904:"Adnan":"Bob":19.010:904:"Adnan":"Bob":19.010|9:"Jeff":"Vitter":19.010:9:"Jeff":"Vitter":19.010|137:"Adnan":"Edgardo":19.010:137:"Adnan":"Edgardo":19.010|265:"Adnan":"Edgardo":19.010:265:"Adnan":"Edgardo":19.010|393:"Adnan":"Edgardo":19.010:393:"Adnan":"Edgardo":19.010|521:"Adnan":"Edgardo":19.010:521:"Adnan":"Edgardo":19.010|649:"Adnan":"Edgardo":19.010:649:"Adnan":"Edgardo":19.010|777:"Adnan":"Edgardo":19.010:777:"Adnan":"Edgardo":19.010|905:"Adnan":"Edgardo":19.010:905:"Adnan":"Edgardo":19.010|10:"Adnan":"Bob":19.010:10:"Adnan":"Bob":19.010|138:"Adnan":"Bob":19.010:138:"Adnan":"Bob":19.010|266:"Adnan":"Bob":19.010:266:"Adnan":"Bob":19.010|394:"Adnan":"Bob":19.010:394:"Adnan":"Bob":19.010|522:"Adnan":"Bob":19.010:522:"Adnan":"Bob":19.010|650:"Adnan":"Bob":19.010:650:"Adnan":"Bob":19.010|778:"Adnan":"Bob":19.010:778:"Adnan":"Bob":19.010|906:"Adnan":"Bob":19.010:906:"Adnan":"Bob":19.010|11:"Adnan":"Edgardo":19.010:11:"Adnan":"Edgardo":19.010|139:"Adnan":"Edgardo":19.010:139:"Adnan":"Edgardo":19.010|267:"Adnan":"Edgardo":19.010:267:"Adnan":"Edgardo":19.010|395:"Adnan":"Edgardo":19.010:395:"Adnan":"Edgardo":19.010|523:"Adnan":"Edgardo":19.010:523:"Adnan":"Edgardo":19.010|651:"Adnan":"Edgardo":19.010:651:"Adnan":"Edgardo":19.010|779:"Adnan":"Edgardo":19.010:779:"Adnan":"Edgardo":19.010|907:"Adnan":"Edgardo":19.010:907:"Adnan":"Edgardo":19.010|12:"Adnan":"Bob":19.010:12:"Adnan":"Bob":19.010|140:"Adnan":"Bob":19.010:140:"Adnan":"Bob":19.010|268:"Adnan":"Bob":19.010:268:"Adnan":"Bob":19.010|396:"Adnan":"Bob":19.010:396:"Adnan":"Bob":19.010|524:"Adnan":"Bob":19.010:524:"Adnan":"Bob":19.010|652:"Adnan":"Bob":19.010:652:"Adnan":"Bob":19.010|780:"Adnan":"Bob":19.010:780:"Adnan":"Bob":19.010|908:"Adnan":"Bob":19.010:908:"Adnan":"Bob":19.010|13:"Adnan":"Edgardo":19.010:13:"Adnan":"Edgardo":19.010|141:"Adnan":"Edgardo":19.010:141:"Adnan":"Edgardo":19.010|269:"Adnan":"Edgardo":19.010:269:"Adnan":"Edgardo":19.010|397:"Adnan":"Edgardo":19.010:397:"Adnan":"Edgardo":19.010|525:"Adnan":"Edgardo":19.010:525:"Adnan":"Edgardo":19.010|653:"Adnan":"Edgardo":19.010:653:"Adnan":"Edgardo":19.010|781:"Adnan":"Edgardo":19.010:781:"Adnan":"Edgardo":19.010|909:"Adnan":"Edgardo":19.010:909:"Adnan":"Edgardo":19.010|14:"Adnan":"Bob":19.010:14:"Adnan":"Bob":19.010|142:"Adnan":"Bob":19.010:142:"Adnan":"Bob":19.010|270:"Adnan":"Bob":19.010:270:"Adnan":"Bob":19.010|398:"Adnan":"Bob":19.010:398:"Adnan":"Bob":19.010|526:"Adnan":"Bob":19.010:526:"Adnan":"Bob":19.010|654:"Adnan":"Bob":19.010:654:"Adnan":"Bob":19.010|782:"Adnan":"Bob":19.010:782:"Adnan":"Bob":19.010|910:"Adnan":"Bob":19.010:910:"Adnan":"Bob":19.010|15:"Adnan":"Edgardo":19.010:15:"Adnan":"Edgardo":19.010|143:"Adnan":"Edgardo":19.010:143:"Adnan":"Edgardo":19.010|271:"Adnan":"Edgardo":19.010:271:"Adnan":"Edgardo":19.010|399:"Adnan":"Edgardo":19.010:399:"Adnan":"Edgardo":19.010|527:"Adnan":"Edgardo":19.010:527:"Adnan":"Edgardo":19.010|655:"Adnan":"Edgardo":19.010:655:"Adnan":"Edgardo":19.010|783:"Adnan":"Edgardo":19.010:783:"Adnan":"Edgardo":19.010|911:"Adnan":"Edgardo":19.010:911:"Adnan":"Edgardo":19.010|16:"Adnan":"Bob":19.010:16:"Adnan":"Bob":19.010|144:"Adnan":"Bob":19.010:144:"Adnan":"Bob":19.010|272:"Adnan":"Bob":19.010:272:"Adnan":"Bob":19.010|400:"Adnan":"Bob":19.010:400:"Adnan":"Bob":19.010|528:"Adnan":"Bob":19.010:528:"Adnan":"Bob":19.010|656:"Adnan":"Bob":19.010:656:"Adnan":"Bob":19.010|784:"Adnan":"Bob":19.010:784:"Adnan":"Bob":19.010|912:"Adnan":"Bob":19.010:912:"Adnan":"Bob":19.010|17:"Adnan":"Edgardo":19.010:17:"Adnan":"Edgardo":19.010|145:"Adnan":"Edgardo":19.010:145:"Adnan":"Edgardo":19.010|273:"Adnan":"Edgardo":19.010:273:"Adnan":"Edgardo":19.010|401:"Adnan":"Edgardo":19.010:401:"Adnan":"Edgardo":19.010|529:"Adnan":"Edgardo":19.010:529:"Adnan":"Edgardo":19.010|657:"Adnan":"Edgardo":19.010:657:"Adnan":"Edgardo":19.010|785:"Adnan":"Edgardo":19.010:785:"Adnan":"Edgardo":19.010|913:"Adnan":"Edgardo":19.010:913:"Adnan":"Edgardo":19.010|18:"Adnan":"Bob":19.010:18:"Adnan":"Bob":19.010|146:"Adnan":"Bob":19.010:146:"Adnan":"Bob":19.010|274:"Adnan":"Bob":19.010:274:"Adnan":"Bob":19.010|402:"Adnan":"Bob":19.010:402:"Adnan":"Bob":19.010|530:"Adnan":"Bob":19.010:530:"Adnan":"Bob":19.010|658:"Adnan":"Bob":19.010:658:"Adnan":"Bob":19.010|786:"Adnan":"Bob":19.010:786:"Adnan":"Bob":19.010|914:"Adnan":"Bob":19.010:914:"Adnan":"Bob":19.010|19:"Adnan":"Edgardo":19.010:19:"Adnan":"Edgardo":19.010|147:"Adnan":"Edgardo":19.010:147:"Adnan":"Edgardo":19.010|275:"Adnan":"Edgardo":19.010:275:"Adnan":"Edgardo":19.010|403:"Adnan":"Edgardo":19.010:403:"Adnan":"Edgardo":19.010|531:"Adnan":"Edgardo":19.010:531:"Adnan":"Edgardo":19.010|659:"Adnan":"Edgardo":19.010:659:"Adnan":"Edgardo":19.010|787:"Adnan":"Edgardo":19.010:787:"Adnan":"Edgardo":19.010|915:"Adnan":"Edgardo":19.010:915:"Adnan":"Edgardo":19.010|20:"Adnan":"Bob":19.010:20:"Adnan":"Bob":19.010|148:"Adnan":"Bob":19.010:148:"Adnan":"Bob":19.010|276:"Adnan":"Bob":19.010:276:"Adnan":"Bob":19.010|404:"Adnan":"Bob":19.010:404:"Adnan":"Bob":19.010|532:"Adnan":"Bob":19.010:532:"Adnan":"Bob":19.010|660:"Adnan":"Bob":19.010:660:"Adnan":"Bob":19.010|788:"Adnan":"Bob":19.010:788:"Adnan":"Bob":19.010|916:"Adnan":"Bob":19.010:916:"Adnan":"Bob":19.010|21:"Adnan":"Edgardo":19.010:21:"Adnan":"Edgardo":19.010|149:"Adnan":"Edgardo":19.010:149:"Adnan":"Edgardo":19.010|277:"Adnan":"Edgardo":19.010:277:"Adnan":"Edgardo":19.010|405:"Adnan":"Edgardo":19.010:405:"Adnan":"Edgardo":19.010|533:"Adnan":"Edgardo":19.010:533:"Adnan":"Edgardo":19.010|661:"Adnan":"Edgardo":19.010:661:"Adnan":"Edgardo":19.010|789:"Adnan":"Edgardo":19.010:789:"Adnan":"Edgardo":19.010|917:"Adnan":"Edgardo":19.010:917:"Adnan":"Edgardo":19.010|22:"Adnan":"Bob":19.010:22:"Adnan":"Bob":19.010|150:"Adnan":"Bob":19.010:150:"Adnan":"Bob":19.010|278:"Adnan":"Bob":19.010:278:"Adnan":"Bob":19.010|406:"Adnan":"Bob":19.010:406:"Adnan":"Bob":19.010|534:"Adnan":"Bob":19.010:534:"Adnan":"Bob":19.010|662:"Adnan":"Bob":19.010:662:"Adnan":"Bob":19.010|790:"Adnan":"Bob":19.010:790:"Adnan":"Bob":19.010|918:"Adnan":"Bob":19.010:918:"Adnan":"Bob":19.010|23:"Adnan":"Edgardo":19.010:23:"Adnan":"Edgardo":19.010|151:"Adnan":"Edgardo":19.010:151:"Adnan":"Edgardo":19.010|279:"Adnan":"Edgardo":19.010:279:"Adnan":"Edgardo":19.010|407:"Adnan":"Edgardo":19.010:407:"Adnan":"Edgardo":19.010|535:"Adnan":"Edgardo":19.010:535:"Adnan":"Edgardo":19.010|663:"Adnan":"Edgardo":19.010:663:"Adnan":"Edgardo":19.010|791:"Adnan":"Edgardo":19.010:791:"Adnan":"Edgardo":19.010|919:"Adnan":"Edgardo":19.010:919:"Adnan":"Edgardo":19.010|24:"Adnan":"Bob":19.010:24:"Adnan":"Bob":19.010|152:"Adnan":"Bob":19.010:152:"Adnan":"Bob":19.010|280:"Adnan":"Bob":19.010:280:"Adnan":"Bob":19.010|408:"Adnan":"Bob":19.010:408:"Adnan":"Bob":19.010|536:"Adnan":"Bob":19.010:536:"Adnan":"Bob":19.010|664:"Adnan":"Bob":19.010:664:"Adnan":"Bob":19.010|792:"Adnan":"Bob":19.010:792:"Adnan":"Bob":19.010|920:"Adnan":"Bob":19.010:920:"Adnan":"Bob":19.010|25:"Adnan":"Edgardo":19.010:25:"Adnan":"Edgardo":19.010|153:"Adnan":"Edgardo":19.010:153:"Adnan":"Edgardo":19.010|281:"Adnan":"Edgardo":19.010:281:"Adnan":"Edgardo":19.010|409:"Adnan":"Edgardo":19.010:409:"Adnan":"Edgardo":19.010|537:"Adnan":"Edgardo":19.010:537:"Adnan":"Edgardo":19.010|665:"Adnan":"Edgardo":19.010:665:"Adnan":"Edgardo":19.010|793:"Adnan":"Edgardo":19.010:793:"Adnan":"Edgardo":19.010|921:"Adnan":"Edgardo":19.010:921:"Adnan":"Edgardo":19.010|26:"Adnan":"Bob":19.010:26:"Adnan":"Bob":19.010|154:"Adnan":"Bob":19.010:154:"Adnan":"Bob":19.010|282:"Adnan":"Bob":19.010:282:"Adnan":"Bob":19.010|410:"Adnan":"Bob":19.010:410:"Adnan":"Bob":19.010|538:"Adnan":"Bob":19.010:538:"Adnan":"Bob":19.010|666:"Adnan":"Bob":19.010:666:"Adnan":"Bob":19.010|794:"Adnan":"Bob":19.010:794:"Adnan":"Bob":19.010|922:"Adnan":"Bob":19.010:922:"Adnan":"Bob":19.010|27:"Adnan":"Edgardo":19.010:27:"Adnan":"Edgardo":19.010|155:"Adnan":"Edgardo":19.010:155:"Adnan":"Edgardo":19.010|283:"Adnan":"Edgardo":19.010:283:"Adnan":"Edgardo":19.010|411:"Adnan":"Edgardo":19.010:411:"Adnan":"Edgardo":19.010|539:"Adnan":"Edgardo":19.010:539:"Adnan":"Edgardo":19.010|667:"Adnan":"Edgardo":19.010:667:"Adnan":"Edgardo":19.010|795:"Adnan":"Edgardo":19.010:795:"Adnan":"Edgardo":19.010|923:"Adnan":"Edgardo":19.010:923:"Adnan":"Edgardo":19.010|28:"Adnan":"Bob":19.010:28:"Adnan":"Bob":19.010|156:"Adnan":"Bob":19.010:156:"Adnan":"Bob":19.010|284:"Adnan":"Bob":19.010:284:"Adnan":"Bob":19.010|412:"Adnan":"Bob":19.010:412:"Adnan":"Bob":19.010|540:"Adnan":"Bob":19.010:540:"Adnan":"Bob":19.010|668:"Adnan":"Bob":19.010:668:"Adnan":"Bob":19.010|796:"Adnan":"Bob":19.010:796:"Adnan":"Bob":19.010|924:"Adnan":"Bob":19.010:924:"Adnan":"Bob":19.010|29:"Adnan":"Edgardo":19.010:29:"Adnan":"Edgardo":19.010|157:"Adnan":"Edgardo":19.010:157:"Adnan":"Edgardo":19.010|285:"Adnan":"Edgardo":19.010:285:"Adnan":"Edgardo":19.010|413:"Adnan":"Edgardo":19.010:413:"Adnan":"Edgardo":19.010|541:"Adnan":"Edgardo":19.010:541:"Adnan":"Edgardo":19.010|669:"Adnan":"Edgardo":19.010:669:"Adnan":"Edgardo":19.010|797:"Adnan":"Edgardo":19.010:797:"Adnan":"Edgardo":19.010|925:"Adnan":"Edgardo":19.010:925:"Adnan":"Edgardo":19.010|30:"Adnan":"Bob":19.010:30:"Adnan":"Bob":19.010|158:"Adnan":"Bob":19.010:158:"Adnan":"Bob":19.010|286:"Adnan":"Bob":19.010:286:"Adnan":"Bob":19.010|414:"Adnan":"Bob":19.010:414:"Adnan":"Bob":19.010|542:"Adnan":"Bob":19.010:542:"Adnan":"Bob":19.010|670:"Adnan":"Bob":19.010:670:"Adnan":"Bob":19.010|798:"Adnan":"Bob":19.010:798:"Adnan":"Bob":19.010|926:"Adnan":"Bob":19.010:926:"Adnan":"Bob":19.010|31:"Adnan":"Edgardo":19.010:31:"Adnan":"Edgardo":19.010|159:"Adnan":"Edgardo":19.010:159:"Adnan":"Edgardo":19.010|287:"Adnan":"Edgardo":19.010:287:"Adnan":"Edgardo":19.010|415:"Adnan":"Edgardo":19.010:415:"Adnan":"Edgardo":19.010|543:"Adnan":"Edgardo":19.010:543:"Adnan":"Edgardo":19.010|671:"Adnan":"Edgardo":19.010:671:"Adnan":"Edgardo":19.010|799:"Adnan":"Edgardo":19.010:799:"Adnan":"Edgardo":19.010|927:"Adnan":"Edgardo":19.010:927:"Adnan":"Edgardo":19.010|32:"Adnan":"Bob":19.010:32:"Adnan":"Bob":19.010|160:"Adnan":"Bob":19.010:160:"Adnan":"Bob":19.010|288:"Adnan":"Bob":19.010:288:"Adnan":"Bob":19.010|416:"Adnan":"Bob":19.010:416:"Adnan":"Bob":19.010|544:"Adnan":"Bob":19.010:544:"Adnan":"Bob":19.010|672:"Adnan":"Bob":19.010:672:"Adnan":"Bob":19.010|800:"Adnan":"Bob":19.010:800:"Adnan":"Bob":19.010|928:"Adnan":"Bob":19.010:928:"Adnan":"Bob":19.010|33:"Adnan":"Edgardo":19.010:33:"Adnan":"Edgardo":19.010|161:"Adnan":"Edgardo":19.010:161:"Adnan":"Edgardo":19.010|289:"Adnan":"Edgardo":19.010:289:"Adnan":"Edgardo":19.010|417:"Adnan":"Edgardo":19.010:417:"Adnan":"Edgardo":19.010|545:"Adnan":"Edgardo":19.010:545:"Adnan":"Edgardo":19.010|673:"Adnan":"Edgardo":19.010:673:"Adnan":"Edgardo":19.010|801:"Adnan":"Edgardo":19.010:801:"Adnan":"Edgardo":19.010|929:"Adnan":"Edgardo":19.010:929:"Adnan":"Edgardo":19.010|34:"Adnan":"Bob":19.010:34:"Adnan":"Bob":19.010|162:"Adnan":"Bob":19.010:162:"Adnan":"Bob":19.010|290:"Adnan":"Bob":19.010:290:"Adnan":"Bob":19.010|418:"Adnan":"Bob":19.010:418:"Adnan":"Bob":19.010|546:"Adnan":"Bob":19.010:546:"Adnan":"Bob":19.010|674:"Adnan":"Bob":19.010:674:"Adnan":"Bob":19.010|802:"Adnan":"Bob":19.010:802:"Adnan":"Bob":19.010|930:"Adnan":"Bob":19.010:930:"Adnan":"Bob":19.010|35:"Adnan":"Edgardo":19.010:35:"Adnan":"Edgardo":19.010|163:"Adnan":"Edgardo":19.010:163:"Adnan":"Edgardo":19.010|291:"Adnan":"Edgardo":19.010:291:"Adnan":"Edgardo":19.010|419:"Adnan":"Edgardo":19.010:419:"Adnan":"Edgardo":19.010|547:"Adnan":"Edgardo":19.010:547:"Adnan":"Edgardo":19.010|675:"Adnan":"Edgardo":19.010:675:"Adnan":"Edgardo":19.010|803:"Adnan":"Edgardo":19.010:803:"Adnan":"Edgardo":19.010|931:"Adnan":"Edgardo":19.010:931:"Adnan":"Edgardo":19.010|36:"Adnan":"Bob":19.010:36:"Adnan":"Bob":19.010|164:"Adnan":"Bob":19.010:164:"Adnan":"Bob":19.010|292:"Adnan":"Bob":19.010:292:"Adnan":"Bob":19.010|420:"Adnan":"Bob":19.010:420:"Adnan":"Bob":19.010|548:"Adnan":"Bob":19.010:548:"Adnan":"Bob":19.010|676:"Adnan":"Bob":19.010:676:"Adnan":"Bob":19.010|804:"Adnan":"Bob":19.010:804:"Adnan":"Bob":19.010|932:"Adnan":"Bob":19.010:932:"Adnan":"Bob":19.010|37:"Adnan":"Edgardo":19.010:37:"Adnan":"Edgardo":19.010|165:"Adnan":"Edgardo":19.010:165:"Adnan":"Edgardo":19.010|293:"Adnan":"Edgardo":19.010:293:"Adnan":"Edgardo":19.010|421:"Adnan":"Edgardo":19.010:421:"Adnan":"Edgardo":19.010|549:"Adnan":"Edgardo":19.010:549:"Adnan":"Edgardo":19.010|677:"Adnan":"Edgardo":19.010:677:"Adnan":"Edgardo":19.010|805:"Adnan":"Edgardo":19.010:805:"Adnan":"Edgardo":19.010|933:"Adnan":"Edgardo":19.010:933:"Adnan":"Edgardo":19.010|38:"Adnan":"Bob":19.010:38:"Adnan":"Bob":19.010|166:"Adnan":"Bob":19.010:166:"Adnan":"Bob":19.010|294:"Adnan":"Bob":19.010:294:"Adnan":"Bob":19.010|422:"Adnan":"Bob":19.010:422:"Adnan":"Bob":19.010|550:"Adnan":"Bob":19.010:550:"Adnan":"Bob":19.010|678:"Adnan":"Bob":19.010:678:"Adnan":"Bob":19.010|806:"Adnan":"Bob":19.010:806:"Adnan":"Bob":19.010|934:"Adnan":"Bob":19.010:934:"Adnan":"Bob":19.010|39:"Adnan":"Edgardo":19.010:39:"Adnan":"Edgardo":19.010|167:"Adnan":"Edgardo":19.010:167:"Adnan":"Edgardo":19.010|295:"Adnan":"Edgardo":19.010:295:"Adnan":"Edgardo":19.010|423:"Adnan":"Edgardo":19.010:423:"Adnan":"Edgardo":19.010|551:"Adnan":"Edgardo":19.010:551:"Adnan":"Edgardo":19.010|679:"Adnan":"Edgardo":19.010:679:"Adnan":"Edgardo":19.010|807:"Adnan":"Edgardo":19.010:807:"Adnan":"Edgardo":19.010|935:"Adnan":"Edgardo":19.010:935:"Adnan":"Edgardo":19.010|40:"Adnan":"Bob":19.010:40:"Adnan":"Bob":19.010|168:"Adnan":"Bob":19.010:168:"Adnan":"Bob":19.010|296:"Adnan":"Bob":19.010:296:"Adnan":"Bob":19.010|424:"Adnan":"Bob":19.010:424:"Adnan":"Bob":19.010|552:"Adnan":"Bob":19.010:552:"Adnan":"Bob":19.010|680:"Adnan":"Bob":19.010:680:"Adnan":"Bob":19.010|808:"Adnan":"Bob":19.010:808:"Adnan":"Bob":19.010|936:"Adnan":"Bob":19.010:936:"Adnan":"Bob":19.010|41:"Adnan":"Edgardo":19.010:41:"Adnan":"Edgardo":19.010|169:"Adnan":"Edgardo":19.010:169:"Adnan":"Edgardo":19.010|297:"Adnan":"Edgardo":19.010:297:"Adnan":"Edgardo":19.010|425:"Adnan":"Edgardo":19.010:425:"Adnan":"Edgardo":19.010|553:"Adnan":"Edgardo":19.010:553:"Adnan":"Edgardo":19.010|681:"Adnan":"Edgardo":19.010:681:"Adnan":"Edgardo":19.010|809:"Adnan":"Edgardo":19.010:809:"Adnan":"Edgardo":19.010|937:"Adnan":"Edgardo":19.010:937:"Adnan":"Edgardo":19.010|42:"Adnan":"Bob":19.010:42:"Adnan":"Bob":19.010|170:"Adnan":"Bob":19.010:170:"Adnan":"Bob":19.010|298:"Adnan":"Bob":19.010:298:"Adnan":"Bob":19.010|426:"Adnan":"Bob":19.010:426:"Adnan":"Bob":19.010|554:"Adnan":"Bob":19.010:554:"Adnan":"Bob":19.010|682:"Adnan":"Bob":19.010:682:"Adnan":"Bob":19.010|810:"Adnan":"Bob":19.010:810:"Adnan":"Bob":19.010|938:"Adnan":"Bob":19.010:938:"Adnan":"Bob":19.010|43:"Adnan":"Edgardo":19.010:43:"Adnan":"Edgardo":19.010|171:"Adnan":"Edgardo":19.010:171:"Adnan":"Edgardo":19.010|299:"Adnan":"Edgardo":19.010:299:"Adnan":"Edgardo":19.010|427:"Adnan":"Edgardo":19.010:427:"Adnan":"Edgardo":19.010|555:"Adnan":"Edgardo":19.010:555:"Adnan":"Edgardo":19.010|683:"Adnan":"Edgardo":19.010:683:"Adnan":"Edgardo":19.010|811:"Adnan":"Edgardo":19.010:811:"Adnan":"Edgardo":19.010|939:"Adnan":"Edgardo":19.010:939:"Adnan":"Edgardo":19.010|44:"Adnan":"Bob":19.010:44:"Adnan":"Bob":19.010|172:"Adnan":"Bob":19.010:172:"Adnan":"Bob":19.010|300:"Adnan":"Bob":19.010:300:"Adnan":"Bob":19.010|428:"Adnan":"Bob":19.010:428:"Adnan":"Bob":19.010|556:"Adnan":"Bob":19.010:556:"Adnan":"Bob":19.010|684:"Adnan":"Bob":19.010:684:"Adnan":"Bob":19.010|812:"Adnan":"Bob":19.010:812:"Adnan":"Bob":19.010|940:"Adnan":"Bob":19.010:940:"Adnan":"Bob":19.010|45:"Adnan":"Edgardo":19.010:45:"Adnan":"Edgardo":19.010|173:"Adnan":"Edgardo":19.010:173:"Adnan":"Edgardo":19.010|301:"Adnan":"Edgardo":19.010:301:"Adnan":"Edgardo":19.010|429:"Adnan":"Edgardo":19.010:429:"Adnan":"Edgardo":19.010|557:"Adnan":"Edgardo":19.010:557:"Adnan":"Edgardo":19.010|685:"Adnan":"Edgardo":19.010:685:"Adnan":"Edgardo":19.010|813:"Adnan":"Edgardo":19.010:813:"Adnan":"Edgardo":19.010|941:"Adnan":"Edgardo":19.010:941:"Adnan":"Edgardo":19.010|46:"Adnan":"Bob":19.010:46:"Adnan":"Bob":19.010|174:"Adnan":"Bob":19.010:174:"Adnan":"Bob":19.010|302:"Adnan":"Bob":19.010:302:"Adnan":"Bob":19.010|430:"Adnan":"Bob":19.010:430:"Adnan":"Bob":19.010|558:"Adnan":"Bob":19.010:558:"Adnan":"Bob":19.010|686:"Adnan":"Bob":19.010:686:"Adnan":"Bob":19.010|814:"Adnan":"Bob":19.010:814:"Adnan":"Bob":19.010|942:"Adnan":"Bob":19.010:942:"Adnan":"Bob":19.010|47:"Adnan":"Edgardo":19.010:47:"Adnan":"Edgardo":19.010|175:"Adnan":"Edgardo":19.010:175:"Adnan":"Edgardo":19.010|303:"Adnan":"Edgardo":19.010:303:"Adnan":"Edgardo":19.010|431:"Adnan":"Edgardo":19.010:431:"Adnan":"Edgardo":19.010|559:"Adnan":"Edgardo":19.010:559:"Adnan":"Edgardo":19.010|687:"Adnan":"Edgardo":19.010:687:"Adnan":"Edgardo":19.010|815:"Adnan":"Edgardo":19.010:815:"Adnan":"Edgardo":19.010|943:"Adnan":"Edgardo":19.010:943:"Adnan":"Edgardo":19.010|48:"Adnan":"Bob":19.010:48:"Adnan":"Bob":19.010|176:"Adnan":"Bob":19.010:176:"Adnan":"Bob":19.010|304:"Adnan":"Bob":19.010:304:"Adnan":"Bob":19.010|432:"Adnan":"Bob":19.010:432:"Adnan":"Bob":19.010|560:"Adnan":"Bob":19.010:560:"Adnan":"Bob":19.010|688:"Adnan":"Bob":19.010:688:"Adnan":"Bob":19.010|816:"Adnan":"Bob":19.010:816:"Adnan":"Bob":19.010|944:"Adnan":"Bob":19.010:944:"Adnan":"Bob":19.010|49:"Adnan":"Edgardo":19.010:49:"Adnan":"Edgardo":19.010|177:"Adnan":"Edgardo":19.010:177:"Adnan":"Edgardo":19.010|305:"Adnan":"Edgardo":19.010:305:"Adnan":"Edgardo":19.010|433:"Adnan":"Edgardo":19.010:433:"Adnan":"Edgardo":19.010|561:"Adnan":"Edgardo":19.010:561:"Adnan":"Edgardo":19.010|689:"Adnan":"Edgardo":19.010:689:"Adnan":"Edgardo":19.010|817:"Adnan":"Edgardo":19.010:817:"Adnan":"Edgardo":19.010|945:"Adnan":"Edgardo":19.010:945:"Adnan":"Edgardo":19.010|50:"Adnan":"Bob":19.010:50:"Adnan":"Bob":19.010|178:"Adnan":"Bob":19.010:178:"Adnan":"Bob":19.010|306:"Adnan":"Bob":19.010:306:"Adnan":"Bob":19.010|434:"Adnan":"Bob":19.010:434:"Adnan":"Bob":19.010|562:"Adnan":"Bob":19.010:562:"Adnan":"Bob":19.010|690:"Adnan":"Bob":19.010:690:"Adnan":"Bob":19.010|818:"Adnan":"Bob":19.010:818:"Adnan":"Bob":19.010|946:"Adnan":"Bob":19.010:946:"Adnan":"Bob":19.010|51:"Adnan":"Edgardo":19.010:51:"Adnan":"Edgardo":19.010|179:"Adnan":"Edgardo":19.010:179:"Adnan":"Edgardo":19.010|307:"Adnan":"Edgardo":19.010:307:"Adnan":"Edgardo":19.010|435:"Adnan":"Edgardo":19.010:435:"Adnan":"Edgardo":19.010|563:"Adnan":"Edgardo":19.010:563:"Adnan":"Edgardo":19.010|691:"Adnan":"Edgardo":19.010:691:"Adnan":"Edgardo":19.010|819:"Adnan":"Edgardo":19.010:819:"Adnan":"Edgardo":19.010|947:"Adnan":"Edgardo":19.010:947:"Adnan":"Edgardo":19.010|52:"Adnan":"Bob":19.010:52:"Adnan":"Bob":19.010|180:"Adnan":"Bob":19.010:180:"Adnan":"Bob":19.010|308:"Adnan":"Bob":19.010:308:"Adnan":"Bob":19.010|436:"Adnan":"Bob":19.010:436:"Adnan":"Bob":19.010|564:"Adnan":"Bob":19.010:564:"Adnan":"Bob":19.010|692:"Adnan":"Bob":19.010:692:"Adnan":"Bob":19.010|820:"Adnan":"Bob":19.010:820:"Adnan":"Bob":19.010|948:"Adnan":"Bob":19.010:948:"Adnan":"Bob":19.010|53:"Adnan":"Edgardo":19.010:53:"Adnan":"Edgardo":19.010|181:"Adnan":"Edgardo":19.010:181:"Adnan":"Edgardo":19.010|309:"Adnan":"Edgardo":19.010:309:"Adnan":"Edgardo":19.010|437:"Adnan":"Edgardo":19.010:437:"Adnan":"Edgardo":19.010|565:"Adnan":"Edgardo":19.010:565:"Adnan":"Edgardo":19.010|693:"Adnan":"Edgardo":19.010:693:"Adnan":"Edgardo":19.010|821:"Adnan":"Edgardo":19.010:821:"Adnan":"Edgardo":19.010|949:"Adnan":"Edgardo":19.010:949:"Adnan":"Edgardo":19.010|54:"Adnan":"Bob":19.010:54:"Adnan":"Bob":19.010|182:"Adnan":"Bob":19.010:182:"Adnan":"Bob":19.010|310:"Adnan":"Bob":19.010:310:"Adnan":"Bob":19.010|438:"Adnan":"Bob":19.010:438:"Adnan":"Bob":19.010|566:"Adnan":"Bob":19.010:566:"Adnan":"Bob":19.010|694:"Adnan":"Bob":19.010:694:"Adnan":"Bob":19.010|822:"Adnan":"Bob":19.010:822:"Adnan":"Bob":19.010|950:"Adnan":"Bob":19.010:950:"Adnan":"Bob":19.010|55:"Adnan":"Edgardo":19.010:55:"Adnan":"Edgardo":19.010|183:"Adnan":"Edgardo":19.010:183:"Adnan":"Edgardo":19.010|311:"Adnan":"Edgardo":19.010:311:"Adnan":"Edgardo":19.010|439:"Adnan":"Edgardo":19.010:439:"Adnan":"Edgardo":19.010|567:"Adnan":"Edgardo":19.010:567:"Adnan":"Edgardo":19.010|695:"Adnan":"Edgardo":19.010:695:"Adnan":"Edgardo":19.010|823:"Adnan":"Edgardo":19.010:823:"Adnan":"Edgardo":19.010|951:"Adnan":"Edgardo":19.010:951:"Adnan":"Edgardo":19.010|56:"Adnan":"Bob":19.010:56:"Adnan":"Bob":19.010|184:"Adnan":"Bob":19.010:184:"Adnan":"Bob":19.010|312:"Adnan":"Bob":19.010:312:"Adnan":"Bob":19.010|440:"Adnan":"Bob":19.010:440:"Adnan":"Bob":19.010|568:"Adnan":"Bob":19.010:568:"Adnan":"Bob":19.010|696:"Adnan":"Bob":19.010:696:"Adnan":"Bob":19.010|824:"Adnan":"Bob":19.010:824:"Adnan":"Bob":19.010|952:"Adnan":"Bob":19.010:952:"Adnan":"Bob":19.010|57:"Adnan":"Edgardo":19.010:57:"Adnan":"Edgardo":19.010|185:"Adnan":"Edgardo":19.010:185:"Adnan":"Edgardo":19.010|313:"Adnan":"Edgardo":19.010:313:"Adnan":"Edgardo":19.010|441:"Adnan":"Edgardo":19.010:441:"Adnan":"Edgardo":19.010|569:"Adnan":"Edgardo":19.010:569:"Adnan":"Edgardo":19.010|697:"Adnan":"Edgardo":19.010:697:"Adnan":"Edgardo":19.010|825:"Adnan":"Edgardo":19.010:825:"Adnan":"Edgardo":19.010|953:"Adnan":"Edgardo":19.010:953:"Adnan":"Edgardo":19.010|58:"Adnan":"Bob":19.010:58:"Adnan":"Bob":19.010|186:"Adnan":"Bob":19.010:186:"Adnan":"Bob":19.010|314:"Adnan":"Bob":19.010:314:"Adnan":"Bob":19.010|442:"Adnan":"Bob":19.010:442:"Adnan":"Bob":19.010|570:"Adnan":"Bob":19.010:570:"Adnan":"Bob":19.010|698:"Adnan":"Bob":19.010:698:"Adnan":"Bob":19.010|826:"Adnan":"Bob":19.010:826:"Adnan":"Bob":19.010|954:"Adnan":"Bob":19.010:954:"Adnan":"Bob":19.010|59:"Adnan":"Edgardo":19.010:59:"Adnan":"Edgardo":19.010|187:"Adnan":"Edgardo":19.010:187:"Adnan":"Edgardo":19.010|315:"Adnan":"Edgardo":19.010:315:"Adnan":"Edgardo":19.010|443:"Adnan":"Edgardo":19.010:443:"Adnan":"Edgardo":19.010|571:"Adnan":"Edgardo":19.010:571:"Adnan":"Edgardo":19.010|699:"Adnan":"Edgardo":19.010:699:"Adnan":"Edgardo":19.010|827:"Adnan":"Edgardo":19.010:827:"Adnan":"Edgardo":19.010|955:"Adnan":"Edgardo":19.010:955:"Adnan":"Edgardo":19.010|60:"Adnan":"Bob":19.010:60:"Adnan":"Bob":19.010|188:"Adnan":"Bob":19.010:188:"Adnan":"Bob":19.010|316:"Adnan":"Bob":19.010:316:"Adnan":"Bob":19.010|444:"Adnan":"Bob":19.010:444:"Adnan":"Bob":19.010|572:"Adnan":"Bob":19.010:572:"Adnan":"Bob":19.010|700:"Adnan":"Bob":19.010:700:"Adnan":"Bob":19.010|828:"Adnan":"Bob":19.010:828:"Adnan":"Bob":19.010|956:"Adnan":"Bob":19.010:956:"Adnan":"Bob":19.010|61:"Adnan":"Edgardo":19.010:61:"Adnan":"Edgardo":19.010|189:"Adnan":"Edgardo":19.010:189:"Adnan":"Edgardo":19.010|317:"Adnan":"Edgardo":19.010:317:"Adnan":"Edgardo":19.010|445:"Adnan":"Edgardo":19.010:445:"Adnan":"Edgardo":19.010|573:"Adnan":"Edgardo":19.010:573:"Adnan":"Edgardo":19.010|701:"Adnan":"Edgardo":19.010:701:"Adnan":"Edgardo":19.010|829:"Adnan":"Edgardo":19.010:829:"Adnan":"Edgardo":19.010|957:"Adnan":"Edgardo":19.010:957:"Adnan":"Edgardo":19.010|62:"Adnan":"Bob":19.010:62:"Adnan":"Bob":19.010|190:"Adnan":"Bob":19.010:190:"Adnan":"Bob":19.010|318:"Adnan":"Bob":19.010:318:"Adnan":"Bob":19.010|446:"Adnan":"Bob":19.010:446:"Adnan":"Bob":19.010|574:"Adnan":"Bob":19.010:574:"Adnan":"Bob":19.010|702:"Adnan":"Bob":19.010:702:"Adnan":"Bob":19.010|830:"Adnan":"Bob":19.010:830:"Adnan":"Bob":19.010|958:"Adnan":"Bob":19.010:958:"Adnan":"Bob":19.010|63:"Adnan":"Edgardo":19.010:63:"Adnan":"Edgardo":19.010|191:"Adnan":"Edgardo":19.010:191:"Adnan":"Edgardo":19.010|319:"Adnan":"Edgardo":19.010:319:"Adnan":"Edgardo":19.010|447:"Adnan":"Edgardo":19.010:447:"Adnan":"Edgardo":19.010|575:"Adnan":"Edgardo":19.010:575:"Adnan":"Edgardo":19.010|703:"Adnan":"Edgardo":19.010:703:"Adnan":"Edgardo":19.010|831:"Adnan":"Edgardo":19.010:831:"Adnan":"Edgardo":19.010|959:"Adnan":"Edgardo":19.010:959:"Adnan":"Edgardo":19.010|64:"Adnan":"Bob":19.010:64:"Adnan":"Bob":19.010|192:"Adnan":"Bob":19.010:192:"Adnan":"Bob":19.010|320:"Adnan":"Bob":19.010:320:"Adnan":"Bob":19.010|448:"Adnan":"Bob":19.010:448:"Adnan":"Bob":19.010|576:"Adnan":"Bob":19.010:576:"Adnan":"Bob":19.010|704:"Adnan":"Bob":19.010:704:"Adnan":"Bob":19.010|832:"Adnan":"Bob":19.010:832:"Adnan":"Bob":19.010|960:"Adnan":"Bob":19.010:960:"Adnan":"Bob":19.010|65:"Adnan":"Edgardo":19.010:65:"Adnan":"Edgardo":19.010|193:"Adnan":"Edgardo":19.010:193:"Adnan":"Edgardo":19.010|321:"Adnan":"Edgardo":19.010:321:"Adnan":"Edgardo":19.010|449:"Adnan":"Edgardo":19.010:449:"Adnan":"Edgardo":19.010|577:"Adnan":"Edgardo":19.010:577:"Adnan":"Edgardo":19.010|705:"Adnan":"Edgardo":19.010:705:"Adnan":"Edgardo":19.010|833:"Adnan":"Edgardo":19.010:833:"Adnan":"Edgardo":19.010|961:"Adnan":"Edgardo":19.010:961:"Adnan":"Edgardo":19.010|66:"Adnan":"Bob":19.010:66:"Adnan":"Bob":19.010|194:"Adnan":"Bob":19.010:194:"Adnan":"Bob":19.010|322:"Adnan":"Bob":19.010:322:"Adnan":"Bob":19.010|450:"Adnan":"Bob":19.010:450:"Adnan":"Bob":19.010|578:"Adnan":"Bob":19.010:578:"Adnan":"Bob":19.010|706:"Adnan":"Bob":19.010:706:"Adnan":"Bob":19.010|834:"Adnan":"Bob":19.010:834:"Adnan":"Bob":19.010|962:"Adnan":"Bob":19.010:962:"Adnan":"Bob":19.010|67:"Adnan":"Edgardo":19.010:67:"Adnan":"Edgardo":19.010|195:"Adnan":"Edgardo":19.010:195:"Adnan":"Edgardo":19.010|323:"Adnan":"Edgardo":19.010:323:"Adnan":"Edgardo":19.010|451:"Adnan":"Edgardo":19.010:451:"Adnan":"Edgardo":19.010|579:"Adnan":"Edgardo":19.010:579:"Adnan":"Edgardo":19.010|707:"Adnan":"Edgardo":19.010:707:"Adnan":"Edgardo":19.010|835:"Adnan":"Edgardo":19.010:835:"Adnan":"Edgardo":19.010|963:"Adnan":"Edgardo":19.010:963:"Adnan":"Edgardo":19.010|68:"Adnan":"Bob":19.010:68:"Adnan":"Bob":19.010|196:"Adnan":"Bob":19.010:196:"Adnan":"Bob":19.010|324:"Adnan":"Bob":19.010:324:"Adnan":"Bob":19.010|452:"Adnan":"Bob":19.010:452:"Adnan":"Bob":19.010|580:"Adnan":"Bob":19.010:580:"Adnan":"Bob":19.010|708:"Adnan":"Bob":19.010:708:"Adnan":"Bob":19.010|836:"Adnan":"Bob":19.010:836:"Adnan":"Bob":19.010|964:"Adnan":"Bob":19.010:964:"Adnan":"Bob":19.010|69:"Adnan":"Edgardo":19.010:69:"Adnan":"Edgardo":19.010|197:"Adnan":"Edgardo":19.010:197:"Adnan":"Edgardo":19.010|325:"Adnan":"Edgardo":19.010:325:"Adnan":"Edgardo":19.010|453:"Adnan":"Edgardo":19.010:453:"Adnan":"Edgardo":19.010|581:"Adnan":"Edgardo":19.010:581:"Adnan":"Edgardo":19.010|709:"Adnan":"Edgardo":19.010:709:"Adnan":"Edgardo":19.010|837:"Adnan":"Edgardo":19.010:837:"Adnan":"Edgardo":19.010|965:"Adnan":"Edgardo":19.010:965:"Adnan":"Edgardo":19.010|70:"Adnan":"Bob":19.010:70:"Adnan":"Bob":19.010|198:"Adnan":"Bob":19.010:198:"Adnan":"Bob":19.010|326:"Adnan":"Bob":19.010:326:"Adnan":"Bob":19.010|454:"Adnan":"Bob":19.010:454:"Adnan":"Bob":19.010|582:"Adnan":"Bob":19.010:582:"Adnan":"Bob":19.010|710:"Adnan":"Bob":19.010:710:"Adnan":"Bob":19.010|838:"Adnan":"Bob":19.010:838:"Adnan":"Bob":19.010|966:"Adnan":"Bob":19.010:966:"Adnan":"Bob":19.010|71:"Adnan":"Edgardo":19.010:71:"Adnan":"Edgardo":19.010|199:"Adnan":"Edgardo":19.010:199:"Adnan":"Edgardo":19.010|327:"Adnan":"Edgardo":19.010:327:"Adnan":"Edgardo":19.010|455:"Adnan":"Edgardo":19.010:455:"Adnan":"Edgardo":19.010|583:"Adnan":"Edgardo":19.010:583:"Adnan":"Edgardo":19.010|711:"Adnan":"Edgardo":19.010:711:"Adnan":"Edgardo":19.010|839:"Adnan":"Edgardo":19.010:839:"Adnan":"Edgardo":19.010|967:"Adnan":"Edgardo":19.010:967:"Adnan":"Edgardo":19.010|72:"Adnan":"Bob":19.010:72:"Adnan":"Bob":19.010|200:"Adnan":"Bob":19.010:200:"Adnan":"Bob":19.010|328:"Adnan":"Bob":19.010:328:"Adnan":"Bob":19.010|456:"Adnan":"Bob":19.010:456:"Adnan":"Bob":19.010|584:"Adnan":"Bob":19.010:584:"Adnan":"Bob":19.010|712:"Adnan":"Bob":19.010:712:"Adnan":"Bob":19.010|840:"Adnan":"Bob":19.010:840:"Adnan":"Bob":19.010|968:"Adnan":"Bob":19.010:968:"Adnan":"Bob":19.010|73:"Adnan":"Edgardo":19.010:73:"Adnan":"Edgardo":19.010|201:"Adnan":"Edgardo":19.010:201:"Adnan":"Edgardo":19.010|329:"Adnan":"Edgardo":19.010:329:"Adnan":"Edgardo":19.010|457:"Adnan":"Edgardo":19.010:457:"Adnan":"Edgardo":19.010|585:"Adnan":"Edgardo":19.010:585:"Adnan":"Edgardo":19.010|713:"Adnan":"Edgardo":19.010:713:"Adnan":"Edgardo":19.010|841:"Adnan":"Edgardo":19.010:841:"Adnan":"Edgardo":19.010|969:"Adnan":"Edgardo":19.010:969:"Adnan":"Edgardo":19.010|74:"Adnan":"Bob":19.010:74:"Adnan":"Bob":19.010|202:"Adnan":"Bob":19.010:202:"Adnan":"Bob":19.010|330:"Adnan":"Bob":19.010:330:"Adnan":"Bob":19.010|458:"Adnan":"Bob":19.010:458:"Adnan":"Bob":19.010|586:"Adnan":"Bob":19.010:586:"Adnan":"Bob":19.010|714:"Adnan":"Bob":19.010:714:"Adnan":"Bob":19.010|842:"Adnan":"Bob":19.010:842:"Adnan":"Bob":19.010|970:"Adnan":"Bob":19.010:970:"Adnan":"Bob":19.010|75:"Adnan":"Edgardo":19.010:75:"Adnan":"Edgardo":19.010|203:"Adnan":"Edgardo":19.010:203:"Adnan":"Edgardo":19.010|331:"Adnan":"Edgardo":19.010:331:"Adnan":"Edgardo":19.010|459:"Adnan":"Edgardo":19.010:459:"Adnan":"Edgardo":19.010|587:"Adnan":"Edgardo":19.010:587:"Adnan":"Edgardo":19.010|715:"Adnan":"Edgardo":19.010:715:"Adnan":"Edgardo":19.010|843:"Adnan":"Edgardo":19.010:843:"Adnan":"Edgardo":19.010|971:"Adnan":"Edgardo":19.010:971:"Adnan":"Edgardo":19.010|76:"Adnan":"Bob":19.010:76:"Adnan":"Bob":19.010|204:"Adnan":"Bob":19.010:204:"Adnan":"Bob":19.010|332:"Adnan":"Bob":19.010:332:"Adnan":"Bob":19.010|460:"Adnan":"Bob":19.010:460:"Adnan":"Bob":19.010|588:"Adnan":"Bob":19.010:588:"Adnan":"Bob":19.010|716:"Adnan":"Bob":19.010:716:"Adnan":"Bob":19.010|844:"Adnan":"Bob":19.010:844:"Adnan":"Bob":19.010|972:"Adnan":"Bob":19.010:972:"Adnan":"Bob":19.010|77:"Adnan":"Edgardo":19.010:77:"Adnan":"Edgardo":19.010|205:"Adnan":"Edgardo":19.010:205:"Adnan":"Edgardo":19.010|333:"Adnan":"Edgardo":19.010:333:"Adnan":"Edgardo":19.010|461:"Adnan":"Edgardo":19.010:461:"Adnan":"Edgardo":19.010|589:"Adnan":"Edgardo":19.010:589:"Adnan":"Edgardo":19.010|717:"Adnan":"Edgardo":19.010:717:"Adnan":"Edgardo":19.010|845:"Adnan":"Edgardo":19.010:845:"Adnan":"Edgardo":19.010|973:"Adnan":"Edgardo":19.010:973:"Adnan":"Edgardo":19.010|78:"Adnan":"Bob":19.010:78:"Adnan":"Bob":19.010|206:"Adnan":"Bob":19.010:206:"Adnan":"Bob":19.010|334:"Adnan":"Bob":19.010:334:"Adnan":"Bob":19.010|462:"Adnan":"Bob":19.010:462:"Adnan":"Bob":19.010|590:"Adnan":"Bob":19.010:590:"Adnan":"Bob":19.010|718:"Adnan":"Bob":19.010:718:"Adnan":"Bob":19.010|846:"Adnan":"Bob":19.010:846:"Adnan":"Bob":19.010|974:"Adnan":"Bob":19.010:974:"Adnan":"Bob":19.010|79:"Adnan":"Edgardo":19.010:79:"Adnan":"Edgardo":19.010|207:"Adnan":"Edgardo":19.010:207:"Adnan":"Edgardo":19.010|335:"Adnan":"Edgardo":19.010:335:"Adnan":"Edgardo":19.010|463:"Adnan":"Edgardo":19.010:463:"Adnan":"Edgardo":19.010|591:"Adnan":"Edgardo":19.010:591:"Adnan":"Edgardo":19.010|719:"Adnan":"Edgardo":19.010:719:"Adnan":"Edgardo":19.010|847:"Adnan":"Edgardo":19.010:847:"Adnan":"Edgardo":19.010|975:"Adnan":"Edgardo":19.010:975:"Adnan":"Edgardo":19.010|80:"Adnan":"Bob":19.010:80:"Adnan":"Bob":19.010|208:"Adnan":"Bob":19.010:208:"Adnan":"Bob":19.010|336:"Adnan":"Bob":19.010:336:"Adnan":"Bob":19.010|464:"Adnan":"Bob":19.010:464:"Adnan":"Bob":19.010|592:"Adnan":"Bob":19.010:592:"Adnan":"Bob":19.010|720:"Adnan":"Bob":19.010:720:"Adnan":"Bob":19.010|848:"Adnan":"Bob":19.010:848:"Adnan":"Bob":19.010|976:"Adnan":"Bob":19.010:976:"Adnan":"Bob":19.010|81:"Adnan":"Edgardo":19.010:81:"Adnan":"Edgardo":19.010|209:"Adnan":"Edgardo":19.010:209:"Adnan":"Edgardo":19.010|337:"Adnan":"Edgardo":19.010:337:"Adnan":"Edgardo":19.010|465:"Adnan":"Edgardo":19.010:465:"Adnan":"Edgardo":19.010|593:"Adnan":"Edgardo":19.010:593:"Adnan":"Edgardo":19.010|721:"Adnan":"Edgardo":19.010:721:"Adnan":"Edgardo":19.010|849:"Adnan":"Edgardo":19.010:849:"Adnan":"Edgardo":19.010|977:"Adnan":"Edgardo":19.010:977:"Adnan":"Edgardo":19.010|82:"Adnan":"Bob":19.010:82:"Adnan":"Bob":19.010|210:"Adnan":"Bob":19.010:210:"Adnan":"Bob":19.010|338:"Adnan":"Bob":19.010:338:"Adnan":"Bob":19.010|466:"Adnan":"Bob":19.010:466:"Adnan":"Bob":19.010|594:"Adnan":"Bob":19.010:594:"Adnan":"Bob":19.010|722:"Adnan":"Bob":19.010:722:"Adnan":"Bob":19.010|850:"Adnan":"Bob":19.010:850:"Adnan":"Bob":19.010|978:"Adnan":"Bob":19.010:978:"Adnan":"Bob":19.010|83:"Adnan":"Edgardo":19.010:83:"Adnan":"Edgardo":19.010|211:"Adnan":"Edgardo":19.010:211:"Adnan":"Edgardo":19.010|339:"Adnan":"Edgardo":19.010:339:"Adnan":"Edgardo":19.010|467:"Adnan":"Edgardo":19.010:467:"Adnan":"Edgardo":19.010|595:"Adnan":"Edgardo":19.010:595:"Adnan":"Edgardo":19.010|723:"Adnan":"Edgardo":19.010:723:"Adnan":"Edgardo":19.010|851:"Adnan":"Edgardo":19.010:851:"Adnan":"Edgardo":19.010|979:"Adnan":"Edgardo":19.010:979:"Adnan":"Edgardo":19.010|84:"Adnan":"Bob":19.010:84:"Adnan":"Bob":19.010|212:"Adnan":"Bob":19.010:212:"Adnan":"Bob":19.010|340:"Adnan":"Bob":19.010:340:"Adnan":"Bob":19.010|468:"Adnan":"Bob":19.010:468:"Adnan":"Bob":19.010|596:"Adnan":"Bob":19.010:596:"Adnan":"Bob":19.010|724:"Adnan":"Bob":19.010:724:"Adnan":"Bob":19.010|852:"Adnan":"Bob":19.010:852:"Adnan":"Bob":19.010|980:"Adnan":"Bob":19.010:980:"Adnan":"Bob":19.010|85:"Adnan":"Edgardo":19.010:85:"Adnan":"Edgardo":19.010|213:"Adnan":"Edgardo":19.010:213:"Adnan":"Edgardo":19.010|341:"Adnan":"Edgardo":19.010:341:"Adnan":"Edgardo":19.010|469:"Adnan":"Edgardo":19.010:469:"Adnan":"Edgardo":19.010|597:"Adnan":"Edgardo":19.010:597:"Adnan":"Edgardo":19.010|725:"Adnan":"Edgardo":19.010:725:"Adnan":"Edgardo":19.010|853:"Adnan":"Edgardo":19.010:853:"Adnan":"Edgardo":19.010|981:"Adnan":"Edgardo":19.010:981:"Adnan":"Edgardo":19.010|86:"Adnan":"Bob":19.010:86:"Adnan":"Bob":19.010|214:"Adnan":"Bob":19.010:214:"Adnan":"Bob":19.010|342:"Adnan":"Bob":19.010:342:"Adnan":"Bob":19.010|470:"Adnan":"Bob":19.010:470:"Adnan":"Bob":19.010|598:"Adnan":"Bob":19.010:598:"Adnan":"Bob":19.010|726:"Adnan":"Bob":19.010:726:"Adnan":"Bob":19.010|854:"Adnan":"Bob":19.010:854:"Adnan":"Bob":19.010|982:"Adnan":"Bob":19.010:982:"Adnan":"Bob":19.010|87:"Adnan":"Edgardo":19.010:87:"Adnan":"Edgardo":19.010|215:"Adnan":"Edgardo":19.010:215:"Adnan":"Edgardo":19.010|343:"Adnan":"Edgardo":19.010:343:"Adnan":"Edgardo":19.010|471:"Adnan":"Edgardo":19.010:471:"Adnan":"Edgardo":19.010|599:"Adnan":"Edgardo":19.010:599:"Adnan":"Edgardo":19.010|727:"Adnan":"Edgardo":19.010:727:"Adnan":"Edgardo":19.010|855:"Adnan":"Edgardo":19.010:855:"Adnan":"Edgardo":19.010|983:"Adnan":"Edgardo":19.010:983:"Adnan":"Edgardo":19.010|88:"Adnan":"Bob":19.010:88:"Adnan":"Bob":19.010|216:"Adnan":"Bob":19.010:216:"Adnan":"Bob":19.010|344:"Adnan":"Bob":19.010:344:"Adnan":"Bob":19.010|472:"Adnan":"Bob":19.010:472:"Adnan":"Bob":19.010|600:"Adnan":"Bob":19.010:600:"Adnan":"Bob":19.010|728:"Adnan":"Bob":19.010:728:"Adnan":"Bob":19.010|856:"Adnan":"Bob":19.010:856:"Adnan":"Bob":19.010|984:"Adnan":"Bob":19.010:984:"Adnan":"Bob":19.010|89:"Adnan":"Edgardo":19.010:89:"Adnan":"Edgardo":19.010|217:"Adnan":"Edgardo":19.010:217:"Adnan":"Edgardo":19.010|345:"Adnan":"Edgardo":19.010:345:"Adnan":"Edgardo":19.010|473:"Adnan":"Edgardo":19.010:473:"Adnan":"Edgardo":19.010|601:"Adnan":"Edgardo":19.010:601:"Adnan":"Edgardo":19.010|729:"Adnan":"Edgardo":19.010:729:"Adnan":"Edgardo":19.010|857:"Adnan":"Edgardo":19.010:857:"Adnan":"Edgardo":19.010|985:"Adnan":"Edgardo":19.010:985:"Adnan":"Edgardo":19.010|90:"Adnan":"Bob":19.010:90:"Adnan":"Bob":19.010|218:"Adnan":"Bob":19.010:218:"Adnan":"Bob":19.010|346:"Adnan":"Bob":19.010:346:"Adnan":"Bob":19.010|474:"Adnan":"Bob":19.010:474:"Adnan":"Bob":19.010|602:"Adnan":"Bob":19.010:602:"Adnan":"Bob":19.010|730:"Adnan":"Bob":19.010:730:"Adnan":"Bob":19.010|858:"Adnan":"Bob":19.010:858:"Adnan":"Bob":19.010|986:"Adnan":"Bob":19.010:986:"Adnan":"Bob":19.010|91:"Adnan":"Edgardo":19.010:91:"Adnan":"Edgardo":19.010|219:"Adnan":"Edgardo":19.010:219:"Adnan":"Edgardo":19.010|347:"Adnan":"Edgardo":19.010:347:"Adnan":"Edgardo":19.010|475:"Adnan":"Edgardo":19.010:475:"Adnan":"Edgardo":19.010|603:"Adnan":"Edgardo":19.010:603:"Adnan":"Edgardo":19.010|731:"Adnan":"Edgardo":19.010:731:"Adnan":"Edgardo":19.010|859:"Adnan":"Edgardo":19.010:859:"Adnan":"Edgardo":19.010|987:"Adnan":"Edgardo":19.010:987:"Adnan":"Edgardo":19.010|92:"Adnan":"Bob":19.010:92:"Adnan":"Bob":19.010|220:"Adnan":"Bob":19.010:220:"Adnan":"Bob":19.010|348:"Adnan":"Bob":19.010:348:"Adnan":"Bob":19.010|476:"Adnan":"Bob":19.010:476:"Adnan":"Bob":19.010|604:"Adnan":"Bob":19.010:604:"Adnan":"Bob":19.010|732:"Adnan":"Bob":19.010:732:"Adnan":"Bob":19.010|860:"Adnan":"Bob":19.010:860:"Adnan":"Bob":19.010|988:"Adnan":"Bob":19.010:988:"Adnan":"Bob":19.010|93:"Adnan":"Edgardo":19.010:93:"Adnan":"Edgardo":19.010|221:"Adnan":"Edgardo":19.010:221:"Adnan":"Edgardo":19.010|349:"Adnan":"Edgardo":19.010:349:"Adnan":"Edgardo":19.010|477:"Adnan":"Edgardo":19.010:477:"Adnan":"Edgardo":19.010|605:"Adnan":"Edgardo":19.010:605:"Adnan":"Edgardo":19.010|733:"Adnan":"Edgardo":19.010:733:"Adnan":"Edgardo":19.010|861:"Adnan":"Edgardo":19.010:861:"Adnan":"Edgardo":19.010|989:"Adnan":"Edgardo":19.010:989:"Adnan":"Edgardo":19.010|94:"Adnan":"Bob":19.010:94:"Adnan":"Bob":19.010|222:"Adnan":"Bob":19.010:222:"Adnan":"Bob":19.010|350:"Adnan":"Bob":19.010:350:"Adnan":"Bob":19.010|478:"Adnan":"Bob":19.010:478:"Adnan":"Bob":19.010|606:"Adnan":"Bob":19.010:606:"Adnan":"Bob":19.010|734:"Adnan":"Bob":19.010:734:"Adnan":"Bob":19.010|862:"Adnan":"Bob":19.010:862:"Adnan":"Bob":19.010|990:"Adnan":"Bob":19.010:990:"Adnan":"Bob":19.010|95:"Adnan":"Edgardo":19.010:95:"Adnan":"Edgardo":19.010|223:"Adnan":"Edgardo":19.010:223:"Adnan":"Edgardo":19.010|351:"Adnan":"Edgardo":19.010:351:"Adnan":"Edgardo":19.010|479:"Adnan":"Edgardo":19.010:479:"Adnan":"Edgardo":19.010|607:"Adnan":"Edgardo":19.010:607:"Adnan":"Edgardo":19.010|735:"Adnan":"Edgardo":19.010:735:"Adnan":"Edgardo":19.010|863:"Adnan":"Edgardo":19.010:863:"Adnan":"Edgardo":19.010|991:"Adnan":"Edgardo":19.010:991:"Adnan":"Edgardo":19.010|96:"Adnan":"Bob":19.010:96:"Adnan":"Bob":19.010|224:"Adnan":"Bob":19.010:224:"Adnan":"Bob":19.010|352:"Adnan":"Bob":19.010:352:"Adnan":"Bob":19.010|480:"Adnan":"Bob":19.010:480:"Adnan":"Bob":19.010|608:"Adnan":"Bob":19.010:608:"Adnan":"Bob":19.010|736:"Adnan":"Bob":19.010:736:"Adnan":"Bob":19.010|864:"Adnan":"Bob":19.010:864:"Adnan":"Bob":19.010|992:"Adnan":"Bob":19.010:992:"Adnan":"Bob":19.010|97:"Adnan":"Edgardo":19.010:97:"Adnan":"Edgardo":19.010|225:"Adnan":"Edgardo":19.010:225:"Adnan":"Edgardo":19.010|353:"Adnan":"Edgardo":19.010:353:"Adnan":"Edgardo":19.010|481:"Adnan":"Edgardo":19.010:481:"Adnan":"Edgardo":19.010|609:"Adnan":"Edgardo":19.010:609:"Adnan":"Edgardo":19.010|737:"Adnan":"Edgardo":19.010:737:"Adnan":"Edgardo":19.010|865:"Adnan":"Edgardo":19.010:865:"Adnan":"Edgardo":19.010|993:"Adnan":"Edgardo":19.010:993:"Adnan":"Edgardo":19.010|98:"Adnan":"Bob":19.010:98:"Adnan":"Bob":19.010|226:"Adnan":"Bob":19.010:226:"Adnan":"Bob":19.010|354:"Adnan":"Bob":19.010:354:"Adnan":"Bob":19.010|482:"Adnan":"Bob":19.010:482:"Adnan":"Bob":19.010|610:"Adnan":"Bob":19.010:610:"Adnan":"Bob":19.010|738:"Adnan":"Bob":19.010:738:"Adnan":"Bob":19.010|866:"Adnan":"Bob":19.010:866:"Adnan":"Bob":19.010|994:"Adnan":"Bob":19.010:994:"Adnan":"Bob":19.010|99:"Adnan":"Edgardo":19.010:99:"Adnan":"Edgardo":19.010|227:"Adnan":"Edgardo":19.010:227:"Adnan":"Edgardo":19.010|355:"Adnan":"Edgardo":19.010:355:"Adnan":"Edgardo":19.010|483:"Adnan":"Edgardo":19.010:483:"Adnan":"Edgardo":19.010|611:"Adnan":"Edgardo":19.010:611:"Adnan":"Edgardo":19.010|739:"Adnan":"Edgardo":19.010:739:"Adnan":"Edgardo":19.010|867:"Adnan":"Edgardo":19.010:867:"Adnan":"Edgardo":19.010|995:"Adnan":"Edgardo":19.010:995:"Adnan":"Edgardo":19.010|100:"Adnan":"Bob":19.010:100:"Adnan":"Bob":19.010|228:"Adnan":"Bob":19.010:228:"Adnan":"Bob":19.010|356:"Adnan":"Bob":19.010:356:"Adnan":"Bob":19.010|484:"Adnan":"Bob":19.010:484:"Adnan":"Bob":19.010|612:"Adnan":"Bob":19.010:612:"Adnan":"Bob":19.010|740:"Adnan":"Bob":19.010:740:"Adnan":"Bob":19.010|868:"Adnan":"Bob":19.010:868:"Adnan":"Bob":19.010|996:"Adnan":"Bob":19.010:996:"Adnan":"Bob":19.010|101:"Adnan":"Edgardo":19.010:101:"Adnan":"Edgardo":19.010|229:"Adnan":"Edgardo":19.010:229:"Adnan":"Edgardo":19.010|357:"Adnan":"Edgardo":19.010:357:"Adnan":"Edgardo":19.010|485:"Adnan":"Edgardo":19.010:485:"Adnan":"Edgardo":19.010|613:"Adnan":"Edgardo":19.010:613:"Adnan":"Edgardo":19.010|741:"Adnan":"Edgardo":19.010:741:"Adnan":"Edgardo":19.010|869:"Adnan":"Edgardo":19.010:869:"Adnan":"Edgardo":19.010|997:"Adnan":"Edgardo":19.010:997:"Adnan":"Edgardo":19.010|102:"Adnan":"Bob":19.010:102:"Adnan":"Bob":19.010|230:"Adnan":"Bob":19.010:230:"Adnan":"Bob":19.010|358:"Adnan":"Bob":19.010:358:"Adnan":"Bob":19.010|486:"Adnan":"Bob":19.010:486:"Adnan":"Bob":19.010|614:"Adnan":"Bob":19.010:614:"Adnan":"Bob":19.010|742:"Adnan":"Bob":19.010:742:"Adnan":"Bob":19.010|870:"Adnan":"Bob":19.010:870:"Adnan":"Bob":19.010|998:"Adnan":"Bob":19.010:998:"Adnan":"Bob":19.010|103:"Adnan":"Edgardo":19.010:103:"Adnan":"Edgardo":19.010|231:"Adnan":"Edgardo":19.010:231:"Adnan":"Edgardo":19.010|359:"Adnan":"Edgardo":19.010:359:"Adnan":"Edgardo":19.010|487:"Adnan":"Edgardo":19.010:487:"Adnan":"Edgardo":19.010|615:"Adnan":"Edgardo":19.010:615:"Adnan":"Edgardo":19.010|743:"Adnan":"Edgardo":19.010:743:"Adnan":"Edgardo":19.010|871:"Adnan":"Edgardo":19.010:871:"Adnan":"Edgardo":19.010|999:"Adnan":"Edgardo":19.010:999:"Adnan":"Edgardo":19.010|104:"Adnan":"Bob":19.010:104:"Adnan":"Bob":19.010|232:"Adnan":"Bob":19.010:232:"Adnan":"Bob":19.010|360:"Adnan":"Bob":19.010:360:"Adnan":"Bob":19.010|488:"Adnan":"Bob":19.010:488:"Adnan":"Bob":19.010|616:"Adnan":"Bob":19.010:616:"Adnan":"Bob":19.010|744:"Adnan":"Bob":19.010:744:"Adnan":"Bob":19.010|872:"Adnan":"Bob":19.010:872:"Adnan":"Bob":19.010|1000:"Adnan":"Bob":19.010:1000:"Adnan":"Bob":19.010|105:"Adnan":"Edgardo":19.010:105:"Adnan":"Edgardo":19.010|233:"Adnan":"Edgardo":19.010:233:"Adnan":"Edgardo":19.010|361:"Adnan":"Edgardo":19.010:361:"Adnan":"Edgardo":19.010|489:"Adnan":"Edgardo":19.010:489:"Adnan":"Edgardo":19.010|617:"Adnan":"Edgardo":19.010:617:"Adnan":"Edgardo":19.010|745:"Adnan":"Edgardo":19.010:745:"Adnan":"Edgardo":19.010|873:"Adnan":"Edgardo":19.010:873:"Adnan":"Edgardo":19.010|1001:"Adnan":"Edgardo":19.010:1001:"Adnan":"Edgardo":19.010|106:"Adnan":"Bob":19.010:106:"Adnan":"Bob":19.010|234:"Adnan":"Bob":19.010:234:"Adnan":"Bob":19.010|362:"Adnan":"Bob":19.010:362:"Adnan":"Bob":19.010|490:"Adnan":"Bob":19.010:490:"Adnan":"Bob":19.010|618:"Adnan":"Bob":19.010:618:"Adnan":"Bob":19.010|746:"Adnan":"Bob":19.010:746:"Adnan":"Bob":19.010|874:"Adnan":"Bob":19.010:874:"Adnan":"Bob":19.010|1002:"Adnan":"Bob":19.010:1002:"Adnan":"Bob":19.010|107:"Adnan":"Edgardo":19.010:107:"Adnan":"Edgardo":19.010|235:"Adnan":"Edgardo":19.010:235:"Adnan":"Edgardo":19.010|363:"Adnan":"Edgardo":19.010:363:"Adnan":"Edgardo":19.010|491:"Adnan":"Edgardo":19.010:491:"Adnan":"Edgardo":19.010|619:"Adnan":"Edgardo":19.010:619:"Adnan":"Edgardo":19.010|747:"Adnan":"Edgardo":19.010:747:"Adnan":"Edgardo":19.010|875:"Adnan":"Edgardo":19.010:875:"Adnan":"Edgardo":19.010|1003:"Adnan":"Edgardo":19.010:1003:"Adnan":"Edgardo":19.010|108:"Adnan":"Bob":19.010:108:"Adnan":"Bob":19.010|236:"Adnan":"Bob":19.010:236:"Adnan":"Bob":19.010|364:"Adnan":"Bob":19.010:364:"Adnan":"Bob":19.010|492:"Adnan":"Bob":19.010:492:"Adnan":"Bob":19.010|620:"Adnan":"Bob":19.010:620:"Adnan":"Bob":19.010|748:"Adnan":"Bob":19.010:748:"Adnan":"Bob":19.010|876:"Adnan":"Bob":19.010:876:"Adnan":"Bob":19.010|1004:"Adnan":"Bob":19.010:1004:"Adnan":"Bob":19.010|109:"Adnan":"Edgardo":19.010:109:"Adnan":"Edgardo":19.010|237:"Adnan":"Edgardo":19.010:237:"Adnan":"Edgardo":19.010|365:"Adnan":"Edgardo":19.010:365:"Adnan":"Edgardo":19.010|493:"Adnan":"Edgardo":19.010:493:"Adnan":"Edgardo":19.010|621:"Adnan":"Edgardo":19.010:621:"Adnan":"Edgardo":19.010|749:"Adnan":"Edgardo":19.010:749:"Adnan":"Edgardo":19.010|877:"Adnan":"Edgardo":19.010:877:"Adnan":"Edgardo":19.010|1005:"Adnan":"Edgardo":19.010:1005:"Adnan":"Edgardo":19.010|110:"Adnan":"Bob":19.010:110:"Adnan":"Bob":19.010|238:"Adnan":"Bob":19.010:238:"Adnan":"Bob":19.010|366:"Adnan":"Bob":19.010:366:"Adnan":"Bob":19.010|494:"Adnan":"Bob":19.010:494:"Adnan":"Bob":19.010|622:"Adnan":"Bob":19.010:622:"Adnan":"Bob":19.010|750:"Adnan":"Bob":19.010:750:"Adnan":"Bob":19.010|878:"Adnan":"Bob":19.010:878:"Adnan":"Bob":19.010|1006:"Adnan":"Bob":19.010:1006:"Adnan":"Bob":19.010|111:"Adnan":"Edgardo":19.010:111:"Adnan":"Edgardo":19.010|239:"Adnan":"Edgardo":19.010:239:"Adnan":"Edgardo":19.010|367:"Adnan":"Edgardo":19.010:367:"Adnan":"Edgardo":19.010|495:"Adnan":"Edgardo":19.010:495:"Adnan":"Edgardo":19.010|623:"Adnan":"Edgardo":19.010:623:"Adnan":"Edgardo":19.010|751:"Adnan":"Edgardo":19.010:751:"Adnan":"Edgardo":19.010|879:"Adnan":"Edgardo":19.010:879:"Adnan":"Edgardo":19.010|1007:"Adnan":"Edgardo":19.010:1007:"Adnan":"Edgardo":19.010|112:"Adnan":"Bob":19.010:112:"Adnan":"Bob":19.010|240:"Adnan":"Bob":19.010:240:"Adnan":"Bob":19.010|368:"Adnan":"Bob":19.010:368:"Adnan":"Bob":19.010|496:"Adnan":"Bob":19.010:496:"Adnan":"Bob":19.010|624:"Adnan":"Bob":19.010:624:"Adnan":"Bob":19.010|752:"Adnan":"Bob":19.010:752:"Adnan":"Bob":19.010|880:"Adnan":"Bob":19.010:880:"Adnan":"Bob":19.010|1008:"Adnan":"Bob":19.010:1008:"Adnan":"Bob":19.010|113:"Adnan":"Edgardo":19.010:113:"Adnan":"Edgardo":19.010|241:"Adnan":"Edgardo":19.010:241:"Adnan":"Edgardo":19.010|369:"Adnan":"Edgardo":19.010:369:"Adnan":"Edgardo":19.010|497:"Adnan":"Edgardo":19.010:497:"Adnan":"Edgardo":19.010|625:"Adnan":"Edgardo":19.010:625:"Adnan":"Edgardo":19.010|753:"Adnan":"Edgardo":19.010:753:"Adnan":"Edgardo":19.010|881:"Adnan":"Edgardo":19.010:881:"Adnan":"Edgardo":19.010|1009:"Adnan":"Edgardo":19.010:1009:"Adnan":"Edgardo":19.010|114:"Adnan":"Bob":19.010:114:"Adnan":"Bob":19.010|242:"Adnan":"Bob":19.010:242:"Adnan":"Bob":19.010|370:"Adnan":"Bob":19.010:370:"Adnan":"Bob":19.010|498:"Adnan":"Bob":19.010:498:"Adnan":"Bob":19.010|626:"Adnan":"Bob":19.010:626:"Adnan":"Bob":19.010|754:"Adnan":"Bob":19.010:754:"Adnan":"Bob":19.010|882:"Adnan":"Bob":19.010:882:"Adnan":"Bob":19.010|1010:"Adnan":"Bob":19.010:1010:"Adnan":"Bob":19.010|115:"Adnan":"Edgardo":19.010:115:"Adnan":"Edgardo":19.010|243:"Adnan":"Edgardo":19.010:243:"Adnan":"Edgardo":19.010|371:"Adnan":"Edgardo":19.010:371:"Adnan":"Edgardo":19.010|499:"Adnan":"Edgardo":19.010:499:"Adnan":"Edgardo":19.010|627:"Adnan":"Edgardo":19.010:627:"Adnan":"Edgardo":19.010|755:"Adnan":"Edgardo":19.010:755:"Adnan":"Edgardo":19.010|883:"Adnan":"Edgardo":19.010:883:"Adnan":"Edgardo":19.010|116:"Adnan":"Bob":19.010:116:"Adnan":"Bob":19.010|244:"Adnan":"Bob":19.010:244:"Adnan":"Bob":19.010|372:"Adnan":"Bob":19.010:372:"Adnan":"Bob":19.010|500:"Adnan":"Bob":19.010:500:"Adnan":"Bob":19.010|628:"Adnan":"Bob":19.010:628:"Adnan":"Bob":19.010|756:"Adnan":"Bob":19.010:756:"Adnan":"Bob":19.010|884:"Adnan":"Bob":19.010:884:"Adnan":"Bob":19.010|117:"Adnan":"Edgardo":19.010:117:"Adnan":"Edgardo":19.010|245:"Adnan":"Edgardo":19.010:245:"Adnan":"Edgardo":19.010|373:"Adnan":"Edgardo":19.010:373:"Adnan":"Edgardo":19.010|501:"Adnan":"Edgardo":19.010:501:"Adnan":"Edgardo":19.010|629:"Adnan":"Edgardo":19.010:629:"Adnan":"Edgardo":19.010|757:"Adnan":"Edgardo":19.010:757:"Adnan":"Edgardo":19.010|885:"Adnan":"Edgardo":19.010:885:"Adnan":"Edgardo":19.010|118:"Adnan":"Bob":19.010:118:"Adnan":"Bob":19.010|246:"Adnan":"Bob":19.010:246:"Adnan":"Bob":19.010|374:"Adnan":"Bob":19.010:374:"Adnan":"Bob":19.010|502:"Adnan":"Bob":19.010:502:"Adnan":"Bob":19.010|630:"Adnan":"Bob":19.010:630:"Adnan":"Bob":19.010|758:"Adnan":"Bob":19.010:758:"Adnan":"Bob":19.010|886:"Adnan":"Bob":19.010:886:"Adnan":"Bob":19.010|119:"Adnan":"Edgardo":19.010:119:"Adnan":"Edgardo":19.010|247:"Adnan":"Edgardo":19.010:247:"Adnan":"Edgardo":19.010|375:"Adnan":"Edgardo":19.010:375:"Adnan":"Edgardo":19.010|503:"Adnan":"Edgardo":19.010:503:"Adnan":"Edgardo":19.010|631:"Adnan":"Edgardo":19.010:631:"Adnan":"Edgardo":19.010|759:"Adnan":"Edgardo":19.010:759:"Adnan":"Edgardo":19.010|887:"Adnan":"Edgardo":19.010:887:"Adnan":"Edgardo":19.010|120:"Adnan":"Bob":19.010:120:"Adnan":"Bob":19.010|248:"Adnan":"Bob":19.010:248:"Adnan":"Bob":19.010|376:"Adnan":"Bob":19.010:376:"Adnan":"Bob":19.010|504:"Adnan":"Bob":19.010:504:"Adnan":"Bob":19.010|632:"Adnan":"Bob":19.010:632:"Adnan":"Bob":19.010|760:"Adnan":"Bob":19.010:760:"Adnan":"Bob":19.010|888:"Adnan":"Bob":19.010:888:"Adnan":"Bob":19.010|121:"Adnan":"Edgardo":19.010:121:"Adnan":"Edgardo":19.010|249:"Adnan":"Edgardo":19.010:249:"Adnan":"Edgardo":19.010|377:"Adnan":"Edgardo":19.010:377:"Adnan":"Edgardo":19.010|505:"Adnan":"Edgardo":19.010:505:"Adnan":"Edgardo":19.010|633:"Adnan":"Edgardo":19.010:633:"Adnan":"Edgardo":19.010|761:"Adnan":"Edgardo":19.010:761:"Adnan":"Edgardo":19.010|889:"Adnan":"Edgardo":19.010:889:"Adnan":"Edgardo":19.010|122:"Adnan":"Bob":19.010:122:"Adnan":"Bob":19.010|250:"Adnan":"Bob":19.010:250:"Adnan":"Bob":19.010|378:"Adnan":"Bob":19.010:378:"Adnan":"Bob":19.010|506:"Adnan":"Bob":19.010:506:"Adnan":"Bob":19.010|634:"Adnan":"Bob":19.010:634:"Adnan":"Bob":19.010|762:"Adnan":"Bob":19.010:762:"Adnan":"Bob":19.010|890:"Adnan":"Bob":19.010:890:"Adnan":"Bob":19.010|123:"Adnan":"Edgardo":19.010:123:"Adnan":"Edgardo":19.010|251:"Adnan":"Edgardo":19.010:251:"Adnan":"Edgardo":19.010|379:"Adnan":"Edgardo":19.010:379:"Adnan":"Edgardo":19.010|507:"Adnan":"Edgardo":19.010:507:"Adnan":"Edgardo":19.010|635:"Adnan":"Edgardo":19.010:635:"Adnan":"Edgardo":19.010|763:"Adnan":"Edgardo":19.010:763:"Adnan":"Edgardo":19.010|891:"Adnan":"Edgardo":19.010:891:"Adnan":"Edgardo":19.010|124:"Adnan":"Bob":19.010:124:"Adnan":"Bob":19.010|252:"Adnan":"Bob":19.010:252:"Adnan":"Bob":19.010|380:"Adnan":"Bob":19.010:380:"Adnan":"Bob":19.010|508:"Adnan":"Bob":19.010:508:"Adnan":"Bob":19.010|636:"Adnan":"Bob":19.010:636:"Adnan":"Bob":19.010|764:"Adnan":"Bob":19.010:764:"Adnan":"Bob":19.010|892:"Adnan":"Bob":19.010:892:"Adnan":"Bob":19.010|125:"Adnan":"Edgardo":19.010:125:"Adnan":"Edgardo":19.010|253:"Adnan":"Edgardo":19.010:253:"Adnan":"Edgardo":19.010|381:"Adnan":"Edgardo":19.010:381:"Adnan":"Edgardo":19.010|509:"Adnan":"Edgardo":19.010:509:"Adnan":"Edgardo":19.010|637:"Adnan":"Edgardo":19.010:637:"Adnan":"Edgardo":19.010|765:"Adnan":"Edgardo":19.010:765:"Adnan":"Edgardo":19.010|893:"Adnan":"Edgardo":19.010:893:"Adnan":"Edgardo":19.010|126:"Adnan":"Bob":19.010:126:"Adnan":"Bob":19.010|254:"Adnan":"Bob":19.010:254:"Adnan":"Bob":19.010|382:"Adnan":"Bob":19.010:382:"Adnan":"Bob":19.010|510:"Adnan":"Bob":19.010:510:"Adnan":"Bob":19.010|638:"Adnan":"Bob":19.010:638:"Adnan":"Bob":19.010|766:"Adnan":"Bob":19.010:766:"Adnan":"Bob":19.010|894:"Adnan":"Bob":19.010:894:"Adnan":"Bob":19.010|127:"Adnan":"Edgardo":19.010:127:"Adnan":"Edgardo":19.010|255:"Adnan":"Edgardo":19.010:255:"Adnan":"Edgardo":19.010|383:"Adnan":"Edgardo":19.010:383:"Adnan":"Edgardo":19.010|511:"Adnan":"Edgardo":19.010:511:"Adnan":"Edgardo":19.010|639:"Adnan":"Edgardo":19.010:639:"Adnan":"Edgardo":19.010|767:"Adnan":"Edgardo":19.010:767:"Adnan":"Edgardo":19.010|895:"Adnan":"Edgardo":19.010:895:"Adnan":"Edgardo":19.010
-hashSame=1:Ahmed:Elmagarmid:25.05:1:Ahmed:Elmagarmid:25.05|2:Walid:Aref:20.013:2:Walid:Aref:20.013|3:Christopher:Clifton:18.04:3:Christopher:Clifton:18.04|4:Sunil:Prabhakar:22.07:4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05:5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03:6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08:7:David:Eberts:24.08|8:Arif:Ghafoor:20.05:8:Arif:Ghafoor:20.05|9:Jeff:Vitter:19.010:9:Jeff:Vitter:19.010
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java
deleted file mode 100644
index 2b2fc0a..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package global;
-
-/**
- * Enumeration class for predicate operators.
- */
-public class AttrOperator {
-
- public static final int EQ = 11;
- public static final int NEQ = 12;
- public static final int GT = 13;
- public static final int GTE = 14;
- public static final int LT = 15;
- public static final int LTE = 16;
-
- // --------------------------------------------------------------------------
-
- /**
- * Private constructor (static class).
- */
- private AttrOperator() {}
-
- /**
- * Returns the constant value for the string representation (i.e. inverse of
- * the toString() method).
- */
- public static int toValue(String str) {
-
- // it may have been better to use the parse tree node, but this
- // makes it easier to release class projects independently
- if (str.equals("=")) {
- return EQ;
- } else if (str.equals("<>")) {
- return NEQ;
- } else if (str.equals(">")) {
- return GT;
- } else if (str.equals(">=")) {
- return GTE;
- } else if (str.equals("<")) {
- return LT;
- } else if (str.equals("<=")) {
- return LTE;
- } else {
- throw new IllegalArgumentException("unknown operator");
- }
-
- } // public static int toValue(String str)
-
- /**
- * Returns a string representation of an AttrOperator.
- */
- public static String toString(int value) {
-
- switch (value) {
-
- case EQ:
- return "=";
-
- case NEQ:
- return "<>";
-
- case GT:
- return ">";
-
- case GTE:
- return ">=";
-
- case LT:
- return "<";
-
- case LTE:
- return "<=";
-
- } // switch
-
- return ("Unexpected AttrOperator " + value);
-
- } // public static String toString(int value)
-
-} // public class AttrOperator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java
deleted file mode 100644
index 6334db3..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package global;
-
-/**
- * Enumeration class for attribute data types.
- */
-public class AttrType {
-
- public static final int INTEGER = 11;
- public static final int FLOAT = 12;
- public static final int STRING = 13;
-
- public static final int COLNAME = 21;
- public static final int FIELDNO = 22;
-
- // --------------------------------------------------------------------------
-
- /**
- * Private constructor (static class).
- */
- private AttrType() {}
-
- /**
- * Gets the AttrType of the given value; i.e. not applicable for column names
- * or field numbers.
- *
- * @throws IllegalArgumentException if obj is not an AttrType
- */
- public static int getType(Object obj) {
-
- if (obj instanceof Integer) {
- return INTEGER;
- }
-
- if (obj instanceof Float) {
- return FLOAT;
- }
-
- if (obj instanceof String) {
- return STRING;
- }
-
- // otherwise, unknown type
- throw new IllegalArgumentException("Unknown AttrType "
- + obj.getClass().getName());
-
- } // public static int getType(Object obj)
-
- /**
- * Returns a string representation of an AttrType.
- */
- public static String toString(int value) {
-
- switch (value) {
-
- case INTEGER:
- return "INTEGER";
-
- case FLOAT:
- return "FLOAT";
-
- case STRING:
- return "STRING";
-
- case COLNAME:
- return "COLNAME";
-
- case FIELDNO:
- return "FIELDNO";
-
- } // switch
-
- return ("Unexpected AttrType " + value);
-
- } // public static String toString(int value)
-
-
- /**
- * Returns the AttrType that match the given type (@link String)
- * @param type
- * @return
- */
- public static int fromString(String type) {
-
- switch (type) {
- case "INTEGER":
- return INTEGER;
-
- case "FLOAT":
- return FLOAT;
-
- case "STRING":
- default:
- return STRING;
- }
-
- } // public static int fromString (String type)
-
-} // public class AttrType
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java
deleted file mode 100644
index 7661e6c..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package global;
-
-/**
- * Provides conversion routines for getting and setting data in byte arrays.
- */
-public class Convert {
-
- /**
- * Reads from the given byte array at the specified position, and converts it
- * into a unicode character.
- */
- public static char getCharValue(int pos, byte[] data) {
-
- // ignoring that UTF-8 could be up to six bytes
- return (char) data[pos];
-
- } // public static char getCharValue(int pos, byte[] data)
-
- /**
- * Writes a unicode character into the given byte array at the specified
- * position.
- */
- public static void setCharValue(char value, int pos, byte[] data) {
-
- // ignoring that UTF-8 could be up to six bytes
- data[pos] = (byte) value;
-
- } // public static void setCharValue(char value, int pos, byte[] data)
-
- /**
- * Reads from the given byte array at the specified position, and converts it
- * into a short.
- */
- public static short getShortValue(int pos, byte[] data) {
-
- return (short) (((data[pos] & 0xff) << 8) | (data[pos + 1] & 0xff));
-
- } // public static short getShortValue(int pos, byte[] data)
-
- /**
- * Writes a short into the given byte array at the specified position.
- */
- public static void setShortValue(short value, int pos, byte[] data) {
-
- data[pos] = (byte) ((value >> 8) & 0xff);
- data[pos + 1] = (byte) (value & 0xff);
-
- } // public static void setShortValue(short value, int pos, byte[] data)
-
- /**
- * Reads from the given byte array at the specified position, and converts it
- * into an integer.
- */
- public static int getIntValue(int pos, byte[] data) {
-
- return ((data[pos] & 0xff) << 24) | ((data[pos + 1] & 0xff) << 16)
- | ((data[pos + 2] & 0xff) << 8) | (data[pos + 3] & 0xff);
-
- } // public static int getIntValue(int pos, byte[] data)
-
- /**
- * Writes an integer into the given byte array at the specified position.
- */
- public static void setIntValue(int value, int pos, byte[] data) {
-
- data[pos] = (byte) ((value >> 24) & 0xff);
- data[pos + 1] = (byte) ((value >> 16) & 0xff);
- data[pos + 2] = (byte) ((value >> 8) & 0xff);
- data[pos + 3] = (byte) (value & 0xff);
-
- } // public static void setIntValue(int value, int pos, byte[] data)
-
- /**
- * Reads from the given byte array at the specified position, and converts it
- * to a float.
- */
- public static float getFloatValue(int pos, byte[] data) {
-
- // let java do the IEEE 754 conversion
- return Float.intBitsToFloat(getIntValue(pos, data));
-
- } // public static float getFloatValue(int pos, byte[] data)
-
- /**
- * Writes a float into the given byte array at the specified position.
- */
- public static void setFloatValue(float value, int pos, byte[] data) {
-
- // let java do the IEEE 754 conversion
- setIntValue(Float.floatToIntBits(value), pos, data);
-
- } // public static void setFloatValue(float value, int pos, byte[] data)
-
- /**
- * Reads from the given byte array at the specified position, and converts it
- * to a string of given length.
- */
- public static String getStringValue(int pos, byte[] data, int length) {
-
- // validate the maximum length
- int buflen = data.length - pos;
- if (buflen < length) {
- length = buflen;
- }
-
- // is there any way in Java to avoid these mem copies?
- return new String(data, pos, length).trim();
-
- } // public static String getStringValue(int pos, byte[] data, int length)
-
- /**
- * Writes a string into the given byte array at the specified position.
- */
- public static void setStringValue(String value, int pos, byte[] data) {
-
- // is there any way in Java to avoid these mem copies?
- byte[] ba = value.getBytes();
- System.arraycopy(ba, 0, data, pos, ba.length);
-
- } // public static void setStringValue(String value, int pos, byte[] data)
-
-} // public class Convert
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java
deleted file mode 100644
index 0b2a48d..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package global;
-
-/**
- * Global constants; implement this interface to access them conveniently.
- */
-public interface GlobalConst {
-
- //
- // Disk Manager Constants
- //
-
- /** Size of a page, in bytes. */
- public static final int PAGE_SIZE = 1024;
-
- /** Page number of an invalid page (i.e. null pointer). */
- public static final int INVALID_PAGEID = -1;
-
- /** Page number of the first page in a database file. */
- public static final int FIRST_PAGEID = 0;
-
- /** Maximum size of a name (i.e. of files or attributes). */
- public static final int NAME_MAXLEN = 50;
-
- //
- // Buffer Manager Constants
- //
-
- /** Replace the buffer frame with an existing memory page. */
- public static final boolean PIN_MEMCPY = true;
-
- /** Replace an existing memory page with the current disk page. */
- public static final boolean PIN_DISKIO = false;
-
- /** Forces the page to be written to disk when unpinned. */
- public static final boolean UNPIN_DIRTY = true;
-
- /** Optimization to avoid writing to disk when unpinned. */
- public static final boolean UNPIN_CLEAN = false;
-
- //
- // Heap File Constants
- //
-
- /** Length of an "empty" slot in a heap file page. */
- public static final int EMPTY_SLOT = -1;
-
- //
- // System Catalog Constants
- //
-
- /** Maximum length of a column (in bytes). */
- public static final int MAX_COLSIZE = 1001;
-
- /** Maximum length of a tuple (in bytes). */
- public static final int MAX_TUPSIZE = 1004;
-
-} // public interface GlobalConst
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java
deleted file mode 100644
index 92111a1..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package global;
-
-import bufmgr.BufMgr;
-import diskmgr.DiskMgr;
-
-/**
- * Definitions for the running Minibase system, including references to static
- * layers and database-level attributes.
- */
-public class Minibase {
-
- /** Name of the data file. */
- public static String DatabaseName;
-
- /** The Minibase Disk Space Manager. */
- public static DiskMgr DiskManager;
-
- /** The Minibase Buffer Manager. */
- public static BufMgr BufferManager;
-
-
- // --------------------------------------------------------------------------
-
- /**
- * Constructs and starts an instance of Minibase, given the configuration.
- *
- * @param dbname Name of the data file
- * @param num_pgs Number of pages to allocate
- * @param bufpoolsize Buffer pool size (in pages)
- * @param replacement_policy Buffer pool replacement policy
- * @param exists If the database already exists on disk
- */
- public Minibase(String dbname, int num_pgs, int bufpoolsize,
- String replacement_policy, boolean exists) {
-
- // simply initialize the database
- init(dbname, num_pgs, bufpoolsize, replacement_policy, exists);
-
- } // constructor
-
- /**
- * Initializes the current instance of Minibase with the given configuration.
- *
- * @param dbname Name of the data file
- * @param num_pgs Number of pages to allocate
- * @param bufpoolsize Buffer pool size (in pages)
- * @param replacement_policy Buffer pool replacement policy
- * @param exists If the database already exists on disk
- */
- public void init(String dbname, int num_pgs, int bufpoolsize,
- String replacement_policy, boolean exists) {
-
- // save the file name
- DatabaseName = dbname;
-
- // load the static layers
- try {
- DiskManager = new DiskMgr();
- BufferManager = new BufMgr(bufpoolsize);
- } catch (Exception exc) {
- haltSystem(exc);
- }
-
- // create or open the database
- try {
- if (exists) {
- DiskManager.openDB(dbname);
-
- } else {
- DiskManager.createDB(dbname, num_pgs);
-
- BufferManager.flushAllPages();
- }
- } catch (Exception exc) {
- haltSystem(exc);
- }
-
- } // init
-
- /**
- * Displays an unrecoverable error and halts the system.
- */
- public static void haltSystem(Exception exc) {
- System.err.println("\n*** Unrecoverable system error ***");
- exc.printStackTrace();
- Runtime.getRuntime().exit(1);
- }
-
-} // public class Minibase
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java
deleted file mode 100644
index 3c8b365..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package global;
-
-/**
- * Lowest-level view of a disk page.
- */
-public class Page implements GlobalConst {
-
- /** The actual byte array for the page. */
- protected byte[] data;
-
- // --------------------------------------------------------------------------
-
- /**
- * Default constructor; creates a blank page.
- */
- public Page() {
- data = new byte[PAGE_SIZE];
- }
-
- /**
- * Constructor that wraps the given byte array.
- */
- public Page(byte[] data) {
- setData(data);
- }
-
- /**
- * Get accessor for the data byte array.
- */
- public byte[] getData() {
- return data;
- }
-
- /**
- * Set accessor for the data byte array.
- *
- * @throws IllegalArgumentException if the data array size is invalid
- */
- public void setData(byte[] data) {
- if (data.length != PAGE_SIZE) {
- Minibase.haltSystem(new IllegalArgumentException(
- "Invalid page buffer size"));
- }
- this.data = data;
- }
-
- /**
- * Sets this page's data array to share the given page's data array.
- */
- public void setPage(Page page) {
- this.data = page.data;
- }
-
- /**
- * Copies the contents of the given page's buffer into this page's buffer.
- */
- public void copyPage(Page page) {
- System.arraycopy(page.data, 0, this.data, 0, PAGE_SIZE);
- }
-
- // --------------------------------------------------------------------------
-
- /**
- * Gets a char at the given page offset.
- */
- public char getCharValue(int offset) {
- return Convert.getCharValue(offset, data);
- }
-
- /**
- * Sets a char at the given page offset.
- */
- public void setCharValue(char value, int offset) {
- Convert.setCharValue(value, offset, data);
- }
-
- /**
- * Gets a short at the given page offset.
- */
- public short getShortValue(int offset) {
- return Convert.getShortValue(offset, data);
- }
-
- /**
- * Sets a short at the given page offset.
- */
- public void setShortValue(short value, int offset) {
- Convert.setShortValue(value, offset, data);
- }
-
- /**
- * Gets an int at the given page offset.
- */
- public int getIntValue(int offset) {
- return Convert.getIntValue(offset, data);
- }
-
- /**
- * Sets an int at the given page offset.
- */
- public void setIntValue(int value, int offset) {
- Convert.setIntValue(value, offset, data);
- }
-
- /**
- * Gets a float at the given page offset.
- */
- public float getFloatValue(int offset) {
- return Convert.getFloatValue(offset, data);
- }
-
- /**
- * Sets a float at the given page offset.
- */
- public void setFloatValue(float value, int offset) {
- Convert.setFloatValue(value, offset, data);
- }
-
- /**
- * Gets a string at the given page offset, given the maximum length.
- */
- public String getStringValue(int offset, int length) {
- return Convert.getStringValue(offset, data, length);
- }
-
- /**
- * Sets a string at the given page offset.
- */
- public void setStringValue(String value, int offset) {
- Convert.setStringValue(value, offset, data);
- }
-
-} // public class Page implements GlobalConst
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java
deleted file mode 100644
index d653551..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package global;
-
-/**
- * Although a PageId is simply an integer, wrapping it provides convenient
- * methods and allows returning it via method parameters.
- */
-public class PageId implements GlobalConst {
-
- /** The actual page id value. */
- public int pid;
-
- // --------------------------------------------------------------------------
-
- /**
- * Default constructor.
- */
- public PageId() {
- pid = INVALID_PAGEID;
- }
-
- /**
- * Constructs a PageId from the given value.
- */
- public PageId(int pid) {
- this.pid = pid;
- }
-
- /**
- * Makes a copy of the given PageId.
- */
- public void copyPageId(PageId pageNo) {
- this.pid = pageNo.pid;
- }
-
- /**
- * Returns a hash code value for the PageId.
- */
- public int hashCode() {
- return pid;
- }
-
- /**
- * True if obj is a PageId with the same pid; false otherwise.
- */
- public boolean equals(Object obj) {
- if (obj instanceof PageId) {
- PageId pageno = (PageId) obj;
- return (this.pid == pageno.pid);
- }
- return false;
- }
-
- /**
- * Returns a string representation of the PageId.
- */
- public String toString() {
- return Integer.toString(pid);
- }
-
-} // public class PageId implements GlobalConst
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java
deleted file mode 100644
index 4dc96fa..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package global;
-
-/**
- * A record is uniquely identified by its page number and slot number.
- */
-public class RID {
-
- /** The record's page number. */
- public PageId pageno;
-
- /** The record's slot number. */
- public int slotno;
-
- // --------------------------------------------------------------------------
-
- /**
- * Default constructor.
- */
- public RID() {
- pageno = new PageId();
- slotno = 0;
- }
-
- /**
- * Copy constructor.
- */
- public RID(RID rid) {
- copyRID(rid);
- }
-
- /**
- * Constructs an RID from the given values.
- */
- public RID(PageId pageno, int slotno) {
- this.pageno = new PageId();
- this.pageno.pid = pageno.pid;
- this.slotno = slotno;
- }
-
- /**
- * Constructs an RID stored in the given data buffer.
- */
- public RID(byte[] data, short offset) {
- pageno = new PageId(Convert.getIntValue(offset, data));
- slotno = Convert.getIntValue(offset + 4, data);
- }
-
- /**
- * Writes the RID into the given data buffer.
- */
- public void writeData(byte[] data, short offset) {
- Convert.setIntValue(pageno.pid, offset, data);
- Convert.setIntValue(slotno, offset + 4, data);
- }
-
- /**
- * Gets the total length of the RID (in bytes).
- */
- public short getLength() {
- return 8;
- }
-
- /**
- * Makes a copy of the given RID.
- */
- public void copyRID(RID rid) {
- this.pageno = new PageId();
- this.pageno.pid = rid.pageno.pid;
- slotno = rid.slotno;
- }
-
- /**
- * Returns a hash code value for the RID.
- */
- public int hashCode() {
- // won't work if DB supports more than 65535 pages
- return ((pageno.pid & 0xFFFF) << 16) | (slotno & 0xFFFF);
- }
-
- /**
- * True if obj is an RID with the same values; false otherwise.
- */
- public boolean equals(Object obj) {
- if (obj instanceof RID) {
- RID rid = (RID) obj;
- return ((pageno.pid == rid.pageno.pid) && (slotno == rid.slotno));
- }
- return false;
- }
-
- /**
- * Returns a string representation of the PageId.
- */
- public String toString() {
- return pageno.toString() + ":" + Integer.toString(slotno);
- }
-
-} // public class RID
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java
deleted file mode 100644
index c81f0df..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java
+++ /dev/null
@@ -1,291 +0,0 @@
-package global;
-
-/**
- * Provides a general and type-safe way to store and compare index search keys.
- */
-public class SearchKey implements Comparable {
-
- /** Internal type number for Integer keys. */
- protected static final byte INTEGER_KEY = 1;
-
- /** Internal type number for Float keys. */
- protected static final byte FLOAT_KEY = 2;
-
- /** Internal type number for String keys. */
- protected static final byte STRING_KEY = 3;
-
- // --------------------------------------------------------------------------
-
- /** The type of the key value. */
- protected byte type;
-
- /** The size of the key value (in bytes). */
- protected short size;
-
- /** The actual key value. */
- protected Object value;
-
- // --------------------------------------------------------------------------
-
- /**
- * Constructs a new integer search key.
- */
- public SearchKey(Integer value) {
- this.type = INTEGER_KEY;
- this.size = Integer.SIZE / Byte.SIZE;
- this.value = value;
- }
-
- /**
- * Constructs a new float search key.
- */
- public SearchKey(Float value) {
- this.type = FLOAT_KEY;
- this.size = Float.SIZE / Byte.SIZE;
- this.value = value;
- }
-
- /**
- * Constructs a new string search key.
- */
- public SearchKey(String value) {
- this.type = STRING_KEY;
- this.size = (short) value.length();
- this.value = value;
- }
-
- /**
- * Constructs a search key from a generic value.
- *
- * @throws IllegalArgumentException if value's type is invalid
- */
- public SearchKey(Object value) {
-
- // Integer key?
- if (value instanceof Integer) {
- this.type = INTEGER_KEY;
- this.size = Integer.SIZE / Byte.SIZE;
- this.value = value;
- }
-
- // Float key?
- else if (value instanceof Float) {
- this.type = FLOAT_KEY;
- this.size = Float.SIZE / Byte.SIZE;
- this.value = value;
- }
-
- // String key?
- else if (value instanceof String) {
- this.type = STRING_KEY;
- this.size = (short) ((String) value).length();
- this.value = value;
- }
-
- // otherwise, none of the above
- else {
- throw new IllegalArgumentException("invalid key value type");
- }
-
- } // public SearchKey(Object value)
-
- /**
- * Copy constructor for a search key.
- */
- public SearchKey(SearchKey key) {
-
- // copy the type and size
- this.type = key.type;
- this.size = key.size;
-
- // copy the value
- switch (key.type) {
- case INTEGER_KEY:
- this.value = new Integer((Integer) key.value);
- break;
- case FLOAT_KEY:
- this.value = new Float((Float) key.value);
- break;
- case STRING_KEY:
- this.value = new String((String) key.value);
- break;
- }
-
- } // public SearchKey(SearchKey key)
-
- // --------------------------------------------------------------------------
-
- /**
- * Constructs a SearchKey stored in the given data buffer.
- */
- public SearchKey(byte[] data, short offset) {
-
- // extract the type and size
- type = data[offset];
- size = Convert.getShortValue(offset + 1, data);
-
- // extract the key value
- switch (type) {
- case INTEGER_KEY:
- value = new Integer(Convert.getIntValue(offset + 3, data));
- break;
- case FLOAT_KEY:
- value = new Float(Convert.getFloatValue(offset + 3, data));
- break;
- case STRING_KEY:
- value = Convert.getStringValue(offset + 3, data, size);
- break;
- }
-
- } // public SearchKey(byte[] data, short offset)
-
- /**
- * Writes the SearchKey into the given data buffer.
- */
- public void writeData(byte[] data, short offset) {
-
- // write the type and size
- data[offset] = type;
- Convert.setShortValue(size, offset + 1, data);
-
- // write the key value
- switch (type) {
- case INTEGER_KEY:
- Convert.setIntValue((Integer) value, offset + 3, data);
- break;
- case FLOAT_KEY:
- Convert.setFloatValue((Float) value, offset + 3, data);
- break;
- case STRING_KEY:
- Convert.setStringValue((String) value, offset + 3, data);
- break;
- }
-
- } // public void writeData(byte[] data, short offset)
-
- /**
- * Gets the total length of the search key (in bytes).
- */
- public short getLength() {
- return (short) (3 + size);
- }
-
- // --------------------------------------------------------------------------
-
- /**
- * Gets the hash value for the search key, given the depth (i.e. number of
- * bits to consider).
- */
- public int getHash(int depth) {
-
- // apply the appropriate calculation
- int mask = (1 << depth) - 1;
- switch (type) {
-
- default:
- case INTEGER_KEY:
- int ikey = ((Integer) value).intValue();
- return ikey & mask;
-
- case FLOAT_KEY:
- int fkey = Float.floatToIntBits((Float) value);
- return fkey & mask;
-
- case STRING_KEY:
-
- // reverse the first four bytes of the string
- byte[] s = ((String) value).getBytes();
- int skey = 0;
- int len = s.length > 4 ? 4 : s.length;
- for (int i = 0; i < len; i++) {
- skey |= (s[i] << (i * Byte.SIZE));
- }
- return skey & mask;
-
- } // switch
-
- } // public int getHash(int depth)
-
- /**
- * Returns true if the search key matches the given hash value, false
- * otherwise.
- */
- public boolean isHash(int hash) {
-
- // calculate the bit depth (i.e. the left-most '1' bit)
- int depth = (int) (Math.log(hash) / Math.log(2) + 1);
-
- // compare the hash codes
- return (getHash(depth) == hash);
-
- } // public boolean isHash(int hash)
-
- // --------------------------------------------------------------------------
-
- /**
- * Returns a generic hash code for the key value.
- */
- public int hashCode() {
- return value.hashCode();
- }
-
- /**
- * True if obj is a SearchKey with the same values; false otherwise.
- */
- public boolean equals(Object obj) {
- if (obj instanceof SearchKey) {
- SearchKey key = (SearchKey) obj;
- return (value.equals(key.value));
- }
- return false;
- }
-
- /**
- * Generically compares two search keys.
- *
- * @return a negative integer, zero, or a positive integer as this object is
- * less than, equal to, or greater than the specified object
- * @throws IllegalArgumentException if the search keys are not comparable
- */
- public int compareTo(SearchKey key) {
-
- // Integer comparison
- if (value instanceof Integer) {
- if (key.value instanceof Integer) {
-
- Integer ikey1 = (Integer) this.value;
- Integer ikey2 = (Integer) key.value;
- return ikey1.compareTo(ikey2);
-
- } else {
- throw new IllegalArgumentException("search keys are not comparable");
- }
- }
-
- // Float comparison
- if (value instanceof Float) {
- if (key.value instanceof Float) {
-
- Float fkey1 = (Float) this.value;
- Float fkey2 = (Float) key.value;
- return fkey1.compareTo(fkey2);
-
- } else {
- throw new IllegalArgumentException("search keys are not comparable");
- }
- }
-
- // default: String comparison
- if (key.value instanceof String) {
-
- String skey1 = (String) this.value;
- String skey2 = (String) key.value;
- return skey1.compareTo(skey2);
-
- } else {
- throw new IllegalArgumentException("search keys are not comparable");
- }
-
- } // public int compareTo(SearchKey key)
-
-} // public class SearchKey implements Comparable
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java
deleted file mode 100644
index 192f869..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package global;
-
-/**
- * One term in an ORDER BY clause; i.e. relations can be sorted on multiple
- * (distinct) attributes, as well as in ascending or descending order.
- */
-public class SortKey {
-
- /** Column name or field number. */
- public Object field;
-
- /** True if descending order, false if ascending order. */
- public boolean isDesc;
-
- /**
- * Constructs a SortKey from the given values.
- */
- public SortKey(Object field, boolean isDesc) {
- this.field = field;
- this.isDesc = isDesc;
- }
-
-} // public class SortKey
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java
deleted file mode 100644
index 73ddbcb..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package relop;
-
-import global.RID;
-import heap.HeapFile;
-import heap.HeapScan;
-
-/**
- * Wrapper for heap file scan, the most basic access method. This "iterator"
- * version takes schema into consideration and generates real tuples.
- */
-public class FileScan extends Iterator {
-
- private HeapFile file = null; // needed for restart(), getFile();
- private HeapScan scan = null;
- private RID rid = null;
- private boolean isOpen;
-
- /**
- * Constructs a file scan, given the schema and heap file.
- */
- public FileScan(Schema aSchema, HeapFile aFile) {
- this.schema = aSchema;
- this.file = aFile;
- this.scan = file.openScan();
- this.rid = new RID();
- isOpen = true;
- }
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
- for(int i = 0; i < depth; i++){
- System.out.printf(" ");
- }
- System.out.printf("FileScan\n");
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
- scan.close();
- scan = file.openScan();
- //rid = new RID();
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
- return isOpen;
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
- scan.close();
- isOpen = false;
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public boolean hasNext() {
- return scan.hasNext();
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
- return new Tuple(schema, scan.getNext(rid));
- }
-
- /**
- * Gets the RID of the last tuple returned.
- */
- public RID getLastRID() {
- return rid;
- }
-
- // getter; added so HashJoin doesn't have to copy the file;
- public HeapFile getFile(){
- return file;
- }
-
-} // public class FileScan extends Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java
deleted file mode 100644
index 682516f..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package relop;
-
-import heap.HeapFile;
-import index.HashIndex;
-import global.SearchKey;
-import global.RID;
-import global.AttrOperator;
-import global.AttrType;
-
-public class HashJoin extends Iterator {
-
- public HashJoin(Iterator aIter1, Iterator aIter2, int aJoinCol1, int aJoinCol2){
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public void explain(int depth) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public void restart() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public boolean isOpen() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public void close() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public boolean hasNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- @Override
- public Tuple getNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-} // end class HashJoin;
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java
deleted file mode 100644
index 87cd765..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package relop;
-
-import global.SearchKey;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Hashtable;
-
-/**
- * A extension to Java's hash table that allows duplicate keys.
- * http://mindprod.com/jgloss/hashtable.html
- */
-@SuppressWarnings("unchecked")
-class HashTableDup extends Hashtable {
-
- /**
- * Maps the specified key to the specified value in this hashtable.
- */
- public void add(SearchKey key, Tuple value) {
-
- // to conserve RAM, duplicate values are either stored as single objects,
- // pairs in an array, or multiples in an ArrayList
- Object existing = get(key);
- if (existing == null) {
-
- // store the single value
- put(key, value);
-
- } else if (existing instanceof Tuple) {
-
- // was a single object; make into a pair
- put(key, new Tuple[] { (Tuple) existing, value });
-
- } else if (existing instanceof Tuple[]) {
-
- // was a pair; make into an ArrayList of 3
- ArrayList a = new ArrayList();
- a.addAll(Arrays.asList((Tuple[]) existing));
- a.add(value);
- put(key, a);
-
- } else {
-
- // just add to tail end of existing ArrayList
- ((ArrayList) existing).add(value);
-
- } // else
-
- } // public void add(SearchKey key, Tuple value)
-
- /**
- * Returns the values to which the specified key is mapped in this hashtable.
- */
- public Tuple[] getAll(SearchKey key) {
-
- // look up the key
- Object match = get(key);
- if (match == null) {
-
- // not found
- return null;
-
- } else if (match instanceof Tuple) {
-
- // return the single match
- return new Tuple[] { (Tuple) match };
-
- } else if (match instanceof Tuple[]) {
-
- // return the matches
- return (Tuple[]) match;
-
- } else {
-
- // convert ArrayList to Tuple[]
- ArrayList a = (ArrayList) match;
- return a.toArray(new Tuple[a.size()]);
-
- } // elsee
-
- } // public Tuple[] getAll(SearchKey key)
-
-} // class HashTableDup extends Hashtable
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java
deleted file mode 100644
index 9672576..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package relop;
-
-import global.SearchKey;
-import heap.HeapFile;
-import index.HashIndex;
-
-/**
- * Wrapper for bucket scan, an index access method.
- */
-public class IndexScan extends Iterator {
-
-
- /**
- * Constructs an index scan, given the hash index and schema.
- */
- public IndexScan(Schema schema, HashIndex index, HeapFile file) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gives a one-line explaination of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public boolean hasNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gets the key of the last tuple returned.
- */
- public SearchKey getLastKey() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns the hash value for the bucket containing the next tuple, or maximum
- * number of buckets if none.
- */
- public int getNextHash() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
-} // public class IndexScan extends Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java
deleted file mode 100644
index e586fc0..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package relop;
-
-/**
- * Minibase Iterators
- * Query execution is driven by a tree of relational operators, all of which are
- * implemented as iterators. Results are requested by successive "get next
- * tuple" calls on the root of the tree, which in turn makes similar calls to
- * child iterators throughout the tree. Intermediate nodes (i.e. join iterators)
- * drive the leaf-level nodes (i.e. file or index scan iterators).
- */
-public abstract class Iterator {
-
- /** Schema for resulting tuples; must be set in all subclass constructors. */
- protected Schema schema;
-
- // --------------------------------------------------------------------------
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public abstract void explain(int depth);
-
- /**
- * Outputs the indentation for the given depth.
- */
- protected void indent(int depth) {
- for (int i = 0; i < depth * 2; i++) {
- System.out.print(' ');
- }
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public abstract void restart();
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public abstract boolean isOpen();
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public abstract void close();
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public abstract boolean hasNext();
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public abstract Tuple getNext();
-
- /**
- * Prints the schema, gets and prints all tuples, and closes the iterator.
- *
- * @return number of tuples processed
- */
- public int execute() {
- result = ""; //Modification to store result of queries for test case comparison
- int cnt = 0;
- getSchema().print();
- Tuple next;
- while (hasNext()) {
- next = getNext();
- next.print();
- //Modification to store result of queries for test case comparison
- result += next.toString() + "|";
- cnt++;
- }
- if(result.length() > 0)
- result = result.substring(0, result.length() - 1);
- close();
- return cnt;
- }
-
- /**
- * Called by the garbage collector when there are no more references to the
- * object; closes the iterator if it's still open.
- */
- protected void finalize() throws Throwable {
- if (isOpen()) {
- close();
- }
- }
-
-public void setSchema(Schema schema) {
- this.schema = schema;
-}
-
-public Schema getSchema() {
- return schema;
-}
-
-// *** DO NOT CHANGE ANY EXISTING METHODS OR VARIABLES BELOW THIS LINE ***
-//Store values for test cases only
-//String format: row0|row1|row2|...rowN|
-private String result;
-public String getResult() { return result; }
-
-} // public abstract class Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java
deleted file mode 100644
index 5ae6996..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package relop;
-
-import global.SearchKey;
-import heap.HeapFile;
-import index.HashIndex;
-import index.HashScan;
-
-/**
- * Wrapper for hash scan, an index access method.
- */
-public class KeyScan extends Iterator {
-
- /**
- * Constructs an index scan, given the hash index and schema.
- */
- public KeyScan(Schema aSchema, HashIndex aIndex, SearchKey aKey, HeapFile aFile) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
- throw new UnsupportedOperationException("Not implemented");
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
- throw new UnsupportedOperationException("Not implemented");
-
- //Your code here
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public boolean hasNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
-} // public class KeyScan extends Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java
deleted file mode 100644
index 2f48a52..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package relop;
-
-import global.AttrOperator;
-import global.AttrType;
-
-/**
- * Internal representation of simple SQL expressions. Operators are referenced
- * by constants in global.AttrOperator, and operands can be constants or field
- * numbers (i.e. if referring to an attribute).
- */
-public class Predicate {
-
- /** The operator. */
- protected int oper;
-
- /** Type of left operand. */
- protected int ltype;
-
- /** Left operand. */
- protected Object left;
-
- /** Type of right operand. */
- protected int rtype;
-
- /** Right operand. */
- protected Object right;
-
- // --------------------------------------------------------------------------
-
- /**
- * Constructs a predicate, given the expression.
- *
- * @param oper AttrOperator constant
- * @param ltype AttrType of the field
- * @param left operand value, field number, or column name
- * @param rtype AttrType of the field
- * @param right operand value, field number, or column name
- */
- public Predicate(int oper, int ltype, Object left, int rtype, Object right) {
- this.oper = oper;
- this.ltype = ltype;
- this.rtype = rtype;
- this.left = left;
- this.right = right;
- }
-
- /**
- * Validates AttrType.COLNAME operands against the given schema.
- *
- * @return true if the predicate is valid, false otherwise
- */
- public boolean validate(Schema schema) {
-
- // if column name, make sure it exists
- int type1 = ltype;
- if (type1 == AttrType.COLNAME) {
- int fldno = schema.fieldNumber((String) left);
- if (fldno < 0) {
- return false;
- }
- type1 = schema.fieldType(fldno);
- }
- int type2 = rtype;
- if (type2 == AttrType.COLNAME) {
- int fldno = schema.fieldNumber((String) right);
- if (fldno < 0) {
- return false;
- }
- type2 = schema.fieldType(fldno);
- }
-
- // test left and right type compatibility
- return (type1 == type2);
-
- } // public boolean validate(Schema schema)
-
- /**
- * Evaluates the predicate on the given tuple and returns true if it passes.
- *
- * @throws IllegalStateException if member data lead to an invalid operation
- */
- public boolean evaluate(Tuple tuple) {
-
- // if necessary, resolve column names to field numbers
- if (ltype == AttrType.COLNAME) {
- left = tuple.schema.fieldNumber((String) left);
- ltype = AttrType.FIELDNO;
- }
- if (rtype == AttrType.COLNAME) {
- right = tuple.schema.fieldNumber((String) right);
- rtype = AttrType.FIELDNO;
- }
-
- // get the values to compare
- int type = ltype;
- Object lval = left;
- if (ltype == AttrType.FIELDNO) {
- type = tuple.schema.fieldType((Integer) lval);
- lval = tuple.getField((Integer) lval);
- }
- Object rval = right;
- if (rtype == AttrType.FIELDNO) {
- rval = tuple.getField((Integer) rval);
- }
-
- // compare the values
- int comp = 0;
- switch (type) {
-
- case AttrType.INTEGER:
- comp = ((Integer) lval).compareTo((Integer) rval);
- break;
-
- case AttrType.FLOAT:
- comp = ((Float) lval).compareTo((Float) rval);
- break;
-
- case AttrType.STRING:
- comp = ((String) lval).compareTo((String) rval);
- break;
-
- default:
- throw new IllegalStateException("unknown types to compare");
-
- } // switch (type)
-
- // evaluate the operator
- switch (oper) {
-
- case AttrOperator.EQ:
- return (comp == 0);
-
- case AttrOperator.NEQ:
- return (comp != 0);
-
- case AttrOperator.GT:
- return (comp > 0);
-
- case AttrOperator.GTE:
- return (comp >= 0);
-
- case AttrOperator.LT:
- return (comp < 0);
-
- case AttrOperator.LTE:
- return (comp <= 0);
-
- default:
- throw new IllegalStateException("unknown operator to evaluate");
-
- } // switch (oper)
-
- } // public boolean evaluate(Tuple tuple)
-
- /**
- * Returns a string representation of the Predicate.
- */
- public String toString() {
-
- return opString(ltype, left) + ' ' + AttrOperator.toString(oper) + ' '
- + opString(rtype, right);
-
- } // public String toString()
-
- /**
- * Returns a string representation of an operand.
- */
- protected String opString(int type, Object operand) {
-
- // get the string version
- String str = operand.toString();
-
- // wrap strings in single quotes
- if (type == AttrType.STRING) {
- return "'" + str + "'";
- }
-
- // wrap column numbers in braces
- if (type == AttrType.FIELDNO) {
- return "{" + str + "}";
- }
-
- // otherwise, just return the string
- return str;
-
- } // protected String opString(int type, Object obj)
-
-} // public class Predicate
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java
deleted file mode 100644
index 48c32b7..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package relop;
-
-
-/**
- * The projection operator extracts columns from a relation; unlike in
- * relational algebra, this operator does NOT eliminate duplicate tuples.
- */
-public class Projection extends Iterator {
-
- private Iterator iter = null;
- private Integer[] fields = null;
- private boolean isOpen;
- /**
- * Constructs a projection, given the underlying iterator and field numbers.
- */
- public Projection(Iterator aIter, Integer... aFields) {
- this.iter = aIter;
- this.fields = aFields;
- this.isOpen = true;
-
- this.schema = new Schema(fields.length);
- Schema iterSchema = iter.getSchema();
- for(int i = 0; i < fields.length; i++){
- this.schema.initField(i, iterSchema, fields[i]);
- }
- }
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public boolean hasNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
-} // public class Projection extends Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java
deleted file mode 100644
index dc9240e..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java
+++ /dev/null
@@ -1,195 +0,0 @@
-package relop;
-
-import global.AttrType;
-
-/**
- * Each tuple has a schema that defines the logical view of the raw bytes; it
- * describes the types, lengths, offsets, and names of a tuple's fields.
- */
-public class Schema {
-
- /** Minimum column width for output. */
- public static final int MIN_WIDTH = 10;
-
- // --------------------------------------------------------------------------
-
- /** Attribute types of the fields. */
- protected int[] types;
-
- /** Variable lengths of the fields. */
- protected int[] lengths;
-
- /** Relative offsets of the fields. */
- protected int[] offsets;
-
- /** Column names of the fields. */
- protected String[] names;
-
- // --------------------------------------------------------------------------
-
- /**
- * Constructs a schema for the given number of fields.
- */
- public Schema(int fldcnt) {
- types = new int[fldcnt];
- lengths = new int[fldcnt];
- offsets = new int[fldcnt];
- names = new String[fldcnt];
- }
-
- /**
- * Sets the type, length, and name for the given field; this automatically
- * calculates its offset, provided that fields are set in ascending order.
- */
- public void initField(int fldno, int type, int length, String name) {
-
- // save the type, length, and name
- types[fldno] = type;
- lengths[fldno] = length;
- names[fldno] = name;
-
- // calculate the relative offset
- if (fldno > 0) {
- offsets[fldno] = offsets[fldno - 1] + lengths[fldno - 1];
- } else {
- offsets[fldno] = 0;
- }
-
- } // public void initField(int fldno, int type, int length, String name)
-
- /**
- * Copies a field from another schema.
- *
- * @param fldno number of this field to set
- * @param schema contains the info to copy
- * @param srcno number of the field to copy
- */
- public void initField(int fldno, Schema schema, int srcno) {
- initField(fldno, schema.types[srcno], schema.lengths[srcno],
- schema.names[srcno]);
- }
-
- /**
- * Builds and returns a new schema resulting from joining two schemas.
- *
- * @param s1 the left schema
- * @param s2 the right schema
- */
- public static Schema join(Schema s1, Schema s2) {
-
- // construct the new schema
- int s1cnt = s1.getCount();
- int s2cnt = s2.getCount();
- Schema schema = new Schema(s1cnt + s2cnt);
-
- // copy all fields from s1 and s2
- int fldno = 0;
- for (int i = 0; i < s1cnt; i++) {
- schema.initField(fldno++, s1, i);
- }
- for (int i = 0; i < s2cnt; i++) {
- schema.initField(fldno++, s2, i);
- }
-
- // return the resulting schema
- return schema;
-
- } // public static Schema join(Schema s1, Schema s2)
-
- // --------------------------------------------------------------------------
-
- /**
- * Gets the number of fields in the schema.
- */
- public int getCount() {
- // all arrays are same length
- return types.length;
- }
-
- /**
- * Gets the size of a tuple (in bytes).
- */
- public int getLength() {
- int len = 0;
- for (int i = 0; i < lengths.length; i++) {
- len += lengths[i];
- }
- return len;
- }
-
- /**
- * Gets the type of the given field.
- */
- public int fieldType(int fldno) {
- return types[fldno];
- }
-
- /**
- * Gets the length of the given field.
- */
- public int fieldLength(int fldno) {
- return lengths[fldno];
- }
-
- /**
- * Gets the offset of the given field.
- */
- public int fieldOffset(int fldno) {
- return offsets[fldno];
- }
-
- /**
- * Gets the name of the given field.
- */
- public String fieldName(int fldno) {
- return names[fldno];
- }
-
- /**
- * Gets the number of the field with the given name, or -1 if not found.
- */
- public int fieldNumber(String name) {
- for (int i = 0; i < names.length; i++) {
- if (names[i].equalsIgnoreCase(name)) {
- return i;
- }
- }
- return -1;
- }
-
- /**
- * Prints the schema (i.e. the first lines of typical query output).
- */
- public void print() {
-
- // print and space the column names
- int len = 0;
- for (int i = 0; i < types.length; i++) {
-
- // print the column name
- System.out.print(names[i]);
-
- // figure out the padding
- int collen = Math.max(names[i].length(), MIN_WIDTH);
- if (types[i] == AttrType.STRING) {
- collen = Math.max(lengths[i], collen);
- }
- len += collen;
-
- // pad the output to the field length
- for (int j = 0; j < collen - names[i].length(); j++) {
- System.out.print(' ');
- }
-
- } // for
-
- // print the line separator
- System.out.println();
- for (int i = 0; i < len; i++) {
- System.out.print('-');
- }
- System.out.println();
-
- } // public void print()
-
-} // public class Schema
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java
deleted file mode 100644
index 900b8a6..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package relop;
-
-/**
- * The selection operator specifies which tuples to retain under a condition; in
- * Minibase, this condition is simply a set of independent predicates logically
- * connected by OR operators.
- */
-public class Selection extends Iterator {
-
- private Iterator iter = null;
- private Predicate[] preds = null;
- //boolean hasNext;
- Tuple next = null;
- private boolean consumed;
- private boolean isOpen;
- /**
- * Constructs a selection, given the underlying iterator and predicates.
- */
- public Selection(Iterator aIter, Predicate... aPreds) {
- this.schema = aIter.getSchema();
- this.iter = aIter;
- this.preds = aPreds;
- this.consumed = true;
- this.isOpen = true;
- }
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- */
- public boolean hasNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
- throw new UnsupportedOperationException("Not implemented");
- //Your code here
- }
-
-} // public class Selection extends Iterator
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java
deleted file mode 100644
index 3490176..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package relop;
-
-/**
- * The simplest of all join algorithms: nested loops (see textbook, 3rd edition,
- * section 14.4.1, page 454).
- */
-public class SimpleJoin extends Iterator {
-
- private Iterator outer;
- private Iterator inner;
- private Predicate[] preds;
-
- private boolean startJoin = true;
- Tuple leftTuple;
-
- // boolean variable to indicate whether the pre-fetched tuple is consumed or not
- private boolean nextTupleIsConsumed;
-
- // pre-fetched tuple
- private Tuple nextTuple;
-
- /**
- * Constructs a join, given the left and right iterators and join predicates
- * (relative to the combined schema).
- */
- public SimpleJoin(Iterator left, Iterator right, Predicate... preds) {
-
- this.outer = left;
- this.inner = right;
- this.preds = preds;
- this.schema = Schema.join(left.schema, right.schema);
-
- nextTupleIsConsumed = true;
- }
-
- /**
- * Gives a one-line explanation of the iterator, repeats the call on any
- * child iterators, and increases the indent depth along the way.
- */
- public void explain(int depth) {
-
- throw new UnsupportedOperationException("Not implemented");
- }
-
- /**
- * Restarts the iterator, i.e. as if it were just constructed.
- */
- public void restart() {
-
- outer.restart();
- inner.restart();
- nextTupleIsConsumed = true;
- }
-
- /**
- * Returns true if the iterator is open; false otherwise.
- */
- public boolean isOpen() {
-
- return outer.isOpen() && inner.isOpen();
- }
-
- /**
- * Closes the iterator, releasing any resources (i.e. pinned pages).
- */
- public void close() {
-
- outer.close();
- inner.close();
- }
-
- /**
- * Returns true if there are more tuples, false otherwise.
- *
- */
- public boolean hasNext() {
-
- if (!nextTupleIsConsumed)
- return true;
-
- if (!outer.hasNext())
- //if(!inner.hasNext() && !outer.hasNext()) // Piazza post 116
- return false;
-
- Tuple rightTuple;
-
- if (startJoin) {
- leftTuple = outer.getNext();
- startJoin = false;
- }
-
- while (true) {
-
- while (inner.hasNext()) {
-
- rightTuple = inner.getNext();
-
- // try to match
- nextTuple = Tuple.join(leftTuple, rightTuple, this.schema);
- for (int i = 0; i < preds.length; i++)
- if (preds[i].evaluate(nextTuple)) {
- nextTupleIsConsumed = false;
- return true;
- }
- }
-
- if (outer.hasNext()) {
- leftTuple = outer.getNext();
- inner.restart();
- }
- else
- return false;
- }
- }
-
- /**
- * Gets the next tuple in the iteration.
- *
- * @throws IllegalStateException if no more tuples
- */
- public Tuple getNext() {
-
- nextTupleIsConsumed = true;
- return nextTuple;
- }
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java
deleted file mode 100644
index 73992b4..0000000
--- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java
+++ /dev/null
@@ -1,315 +0,0 @@
-package relop;
-
-import global.AttrType;
-import global.Convert;
-import global.RID;
-import heap.HeapFile;
-
-/**
- * Each tuple in a relation is a collection of bytes that must fit within a
- * single page. The Tuple class provides a logical view of fields, allowing get
- * and set operations while automatically handling offsets and type conversions.
- */
-public class Tuple {
-
- /** Page buffer containing this tuple. */
- protected byte[] data;
-
- /** Schema information for the fields. */
- protected Schema schema;
-
- // --------------------------------------------------------------------------
-
- /**
- * Creates a new empty tuple, given its schema.
- *
- * @param schema logical information for the fields
- */
- public Tuple(Schema schema) {
- this.schema = schema;
- data = new byte[schema.getLength()];
- }
-
- /**
- * Creates a new tuple, given its schema and values.
- *
- * @param schema logical information for the fields
- * @param values individual data values of the fields
- */
- public Tuple(Schema schema, Object... values) {
- this.schema = schema;
- data = new byte[schema.getLength()];
- setAllFields(values);
- }
-
- /**
- * Creates a new tuple, given existing values to wrap.
- *
- * @param schema logical information for the fields
- * @param data record buffer containing the tuple
- */
- public Tuple(Schema schema, byte[] data) {
- this.schema = schema;
- this.data = data;
- }
-
- /**
- * Builds and returns a new tuple resulting from joining two tuples.
- *
- * @param t1 the left tuple
- * @param t2 the right tuple
- * @param schema of the result
- */
- public static Tuple join(Tuple t1, Tuple t2, Schema schema) {
-
- // construct the new tuple
- int t1cnt = t1.schema.getCount();
- int t2cnt = t2.schema.getCount();
- Tuple tuple = new Tuple(schema);
-
- // copy all fields from t1 and t2
- int fldno = 0;
- for (int i = 0; i < t1cnt; i++) {
- tuple.setField(fldno++, t1.getField(i));
- }
- for (int i = 0; i < t2cnt; i++) {
- tuple.setField(fldno++, t2.getField(i));
- }
-
- // return the resulting tuple
- return tuple;
-
- } // public static Tuple join(Tuple t1, Tuple t2, Schema schema)
-
- /**
- * Gets the underlying data buffer.
- */
- public byte[] getData() {
- return data;
- }
-
- /**
- * Inserts the tuple into the given heap file.
- */
- public RID insertIntoFile(HeapFile file) {
- return file.insertRecord(data);
- }
-
- /**
- * Gets a field's value generically.
- */
- public Object getField(int fldno) {
-
- // refer to the schema for the appropriate conversion
- switch (schema.fieldType(fldno)) {
-
- case AttrType.INTEGER:
- return getIntFld(fldno);
-
- case AttrType.FLOAT:
- return getFloatFld(fldno);
-
- case AttrType.STRING:
- return getStringFld(fldno);
-
- default:
- throw new IllegalStateException("invalid attribute type");
- }
-
- } // public Object getField(int fldno)
-
- /**
- * Gets a field's value generically, by column name.
- */
- public Object getField(String fldName) {
- return getField(schema.fieldNumber(fldName));
- }
-
- /**
- * Sets a field's value generically.
- */
- public void setField(int fldno, Object val) {
-
- // refer to the schema for the appropriate conversion
- switch (schema.fieldType(fldno)) {
-
- case AttrType.INTEGER:
- setIntFld(fldno, (Integer) val);
- break;
-
- case AttrType.FLOAT:
- setFloatFld(fldno, (Float) val);
- break;
-
- case AttrType.STRING:
- setStringFld(fldno, (String) val);
- break;
-
- default:
- throw new IllegalStateException("invalid attribute type");
- }
-
- } // public void setField(int fldno, Object val)
-
- /**
- * Sets a field's value generically, by column name.
- */
- public void setField(String fldName, Object val) {
- setField(schema.fieldNumber(fldName), val);
- }
-
- /**
- * Returns generic values for all fields.
- */
- public Object[] getAllFields() {
-
- Object[] values = new Object[schema.getCount()];
- for (int i = 0; i < values.length; i++) {
- values[i] = getField(i);
- }
- return values;
-
- } // public Object[] getAllFields()
-
- /**
- * Sets all fields, given generic values.
- */
- public void setAllFields(Object... values) {
-
- for (int i = 0; i < values.length; i++) {
- setField(i, values[i]);
- }
-
- } // public void setAllFields(Object... values)
-
- /**
- * Gets an integer field.
- */
- public int getIntFld(int fldno) {
- return Convert.getIntValue(schema.fieldOffset(fldno), data);
- }
-
- /**
- * Sets an integer field.
- */
- public void setIntFld(int fldno, int val) {
- Convert.setIntValue(val, schema.fieldOffset(fldno), data);
- }
-
- /**
- * Gets a float field.
- */
- public float getFloatFld(int fldno) {
- return Convert.getFloatValue(schema.fieldOffset(fldno), data);
- }
-
- /**
- * Sets a float field.
- */
- public void setFloatFld(int fldno, float val) {
- Convert.setFloatValue(val, schema.fieldOffset(fldno), data);
- }
-
- /**
- * Gets a string field.
- */
- public String getStringFld(int fldno) {
- return Convert.getStringValue(schema.fieldOffset(fldno), data, schema
- .fieldLength(fldno));
- }
-
- /**
- * Sets a string field (automatically truncates, if necessary).
- */
- public void setStringFld(int fldno, String val) {
-
- // truncate the string if too long
- int len = schema.fieldLength(fldno);
- if (val.length() > len) {
- val = val.substring(0, len - 1);
- }
-
- // set the string and zero out the rest
- int off = schema.fieldOffset(fldno);
- Convert.setStringValue(val, off, data);
- for (int i = val.length(); i < len; i++) {
- data[off + i] = 0;
- }
-
- } // public void setStringFld(int fldno, String val)
-
- /**
- * Prints the tuple in a human-readable format.
- */
- public void print() {
-
- // print everything as a string, with padding
- String str = null;
- int cnt = schema.getCount();
- for (int i = 0; i < cnt; i++) {
- switch (schema.fieldType(i)) {
-
- case AttrType.INTEGER:
- str = Integer.toString(getIntFld(i));
- System.out.print(str);
- padOutput(0, str.length());
- break;
-
- case AttrType.FLOAT:
- str = Float.toString(getFloatFld(i));
- System.out.print(str);
- padOutput(0, str.length());
- break;
-
- case AttrType.STRING:
- str = getStringFld(i);
- System.out.print(str);
- padOutput(schema.fieldLength(i), str.length());
- break;
-
- }
- }
- System.out.println();
-
- } // public void print()
-
- /**
- * Pads the current output to make columns line up.
- *
- * @param fieldLen minimum length of the current field
- * @param outputLen length of the current output so far
- */
- protected void padOutput(int fieldLen, int outputLen) {
-
- fieldLen = Math.max(Schema.MIN_WIDTH, fieldLen);
- for (int j = 0; j < fieldLen - outputLen; j++) {
- System.out.print(' ');
- }
-
- } // protected void padOutput(int fieldLen, int outputLen)
-
-
- // *** DO NOT CHANGE ANY EXISTING METHODS OR VARIABLES BELOW THIS LINE ***
- //String format: field0|field1|field2|...fieldN|
- public String toString()
- {
- String res = "";
- for(int i = 0; i < schema.getCount(); i++)
- {
- switch(schema.fieldType(i))
- {
- case AttrType.FLOAT:
- res += Float.toString(getFloatFld(i)) + "";
- break;
- case AttrType.INTEGER:
- res += Integer.toString(getIntFld(i)) + ":";
- break;
- case AttrType.STRING:
- res += getStringFld(i) + ":";
- break;
- }
- }
- if(res.length() > 0) res = res.substring(0, res.length()-1);
- return res;
- }
-} // public class Tuple
diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java
deleted file mode 100644
index 1727e1e..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package tests;
-
-import global.AttrType;
-import org.json.simple.JSONObject;
-
-public class Field {
-
- private int no;
- private int type;
- private int length;
- private String name;
-
- Field(JSONObject obj) {
- no = ((Long) obj.get("no")).intValue();
- type = AttrType.fromString((String) obj.get("type"));
- length = ((Long) obj.get("length")).intValue();
- name = (String) obj.get("name");
- }
-
- public Object getValue(String val) {
- switch (type) {
- case AttrType.INTEGER: {
- return Integer.parseInt(val.trim());
- }
-
- case AttrType.FLOAT: {
- return Float.parseFloat(val);
- }
-
- default: {
- return val;
- }
- }
- }
-
- public int getNo() {
- return no;
- }
-
- public int getType() {
- return type;
- }
-
- public int getLength() {
- return length;
- }
-
- public String getName() {
- return name;
- }
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java
deleted file mode 100644
index 635b960..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java
+++ /dev/null
@@ -1,262 +0,0 @@
-package tests;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-
-
-import global.AttrOperator;
-import global.AttrType;
-import heap.HeapFile;
-import relop.FileScan;
-import relop.HashJoin;
-import relop.Predicate;
-import relop.Projection;
-import relop.Schema;
-import relop.Selection;
-import relop.SimpleJoin;
-import relop.Tuple;
-
-// YOUR CODE FOR PART3 SHOULD GO HERE.
-
-public class QEPTest extends TestDriver
-{
- /** The display name of the test suite. */
- private static final String TEST_NAME = "QEP Tests";
-
-
- /** Employee table schema. */
- private static Schema s_emp;
-
- /** Department table schema. */
- private static Schema s_dept;
-
- private static String empFilePath;
- private static String deptFilePath;
-
- private static HeapFile empHeapFile;
- private static HeapFile deptHeapFile;
-
- // --------------------------------------------------------------------------
-
- /**
- * Test application entry point; runs all tests.
- * @throws IOException
- */
- public static void main(String argv[]) throws IOException
- {
- empFilePath = argv[0] + "/Employee.txt";
- deptFilePath = argv[0] + "/Department.txt";
- // create a clean Minibase instance
- QEPTest qepTest = new QEPTest();
- qepTest.create_minibase();
-
- initSchema();
- loadData();
-
-
- qepTest.q1();
- qepTest.q2();
- qepTest.q3();
- qepTest.q4();
- qepTest.q5();
- qepTest.q6();
- qepTest.q7();
- qepTest.q8();
-
- /*
- qepTest.q5();
- qepTest.q5_hash();
- */
- }
-
- public void q1()
- {
- System.out.println("\n 1) Display for each employee his Name and Salary:\n");
- FileScan scan = new FileScan(s_emp, empHeapFile);
- Projection pro = new Projection(scan, s_emp.fieldNumber(Constants.EmpNameColName) , s_emp.fieldNumber(Constants.EmpSalaryColName));
- pro.execute();
- }
-
- public void q2()
- {
- System.out.println("\n 2) Display the Name for the departments with MinSalary = 1000:\n");
- FileScan scan = new FileScan(s_dept, deptHeapFile);
- Predicate pred = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.DeptMinSalaryColName, AttrType.FLOAT, 1000F);
- Selection sel = new Selection(scan, pred);
- Projection pro = new Projection(sel, s_dept.fieldNumber(Constants.DeptNameColName));
- pro.execute();
- }
-
- public void q3()
- {
- System.out.println("\n 3) Display the Name for the departments with MinSalary = MaxSalary:\n");
- FileScan scan = new FileScan(s_dept, deptHeapFile);
- Predicate pred = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.DeptMinSalaryColName, AttrType.COLNAME, Constants.DeptMaxSalaryColName);
- Selection sel = new Selection(scan, pred);
- Projection pro = new Projection(sel, s_dept.fieldNumber(Constants.DeptNameColName));
- pro.execute();
- }
-
- public void q4()
- {
- System.out.println("\n 4) Display the Name for employees whose Age > 30 and Salary < 1000:\n");
- FileScan scan = new FileScan(s_emp, empHeapFile);
- Predicate predAge = new Predicate(AttrOperator.GT, AttrType.COLNAME, Constants.EmpAgeColName, AttrType.FLOAT, 30F);
- Predicate predSalary = new Predicate(AttrOperator.LT, AttrType.COLNAME, Constants.EmpSalaryColName, AttrType.FLOAT, 1000F);
- Selection selAge = new Selection(scan, predAge);
- Selection selSalary = new Selection(selAge, predSalary);
- Projection projName = new Projection(selSalary, s_emp.fieldNumber(Constants.EmpNameColName));
- projName.execute();
- }
-
- public void q5()
- {
- System.out.println("\n 5) For each employee, display his Salary and the Name of his department:\n");
- FileScan empScan = new FileScan(s_emp, empHeapFile);
- FileScan deptScan = new FileScan(s_dept, deptHeapFile);
- Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8);
- SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred);
- Projection proj = new Projection(join, 7, 1);
- proj.execute();
- }
-
- public void q6()
- {
- System.out.println("\n 6) Display the Name and Salary for employees who work in the department that has DeptId = 3:\n");
- FileScan scan = new FileScan(s_emp, empHeapFile);
- Predicate predDept = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.EmpDeptIDColName, AttrType.INTEGER, 3);
- Selection sel = new Selection(scan, predDept);
- Projection proj = new Projection(sel, s_emp.fieldNumber(Constants.EmpNameColName), s_emp.fieldNumber(Constants.EmpSalaryColName));
- proj.execute();
- }
-
- public void q7()
- {
- System.out.println("\n 7) Display the Salary for each employee who works in a department that has MaxSalary > 100000:\n");
- FileScan empScan = new FileScan(s_emp, empHeapFile);
- FileScan deptScan = new FileScan(s_dept, deptHeapFile);
- Predicate predMaxSalary = new Predicate(AttrOperator.GT, AttrType.COLNAME, Constants.DeptMaxSalaryColName, AttrType.FLOAT, 100000F);
- Selection selDept = new Selection(deptScan, predMaxSalary);
- Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8);
- SimpleJoin join = new SimpleJoin(selDept, empScan, joinPred);
- Projection proj = new Projection(join, 7);
- proj.execute();
- }
-
- public void q8()
- {
- System.out.println("\n 8) Display the Name for each employee whose Salary is less than the MinSalary of his department:\n");
- FileScan empScan = new FileScan(s_emp, empHeapFile);
- FileScan deptScan = new FileScan(s_dept, deptHeapFile);
- Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8);
- SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred);
- Predicate pred = new Predicate(AttrOperator.LT, AttrType.FIELDNO, 7, AttrType.FIELDNO, 2);
- Selection sel = new Selection(join, pred);
- Projection proj = new Projection(sel, 5);
- proj.execute();
- }
-
-
-
- public void q5_hash()
- {
- System.out.println("\n 5) For each employee, display his Salary and the Name of his department:\n");
- FileScan empScan = new FileScan(s_emp, empHeapFile);
- FileScan deptScan = new FileScan(s_dept, deptHeapFile);
- Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8);
- //SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred);
- HashJoin join = new HashJoin(deptScan, empScan, 0, 4);
- Projection proj = new Projection(join, 7, 1);
- proj.execute();
- }
-
- protected static void initSchema()
- {
- //initialize schema for the "Employee" table
- s_emp = new Schema(5);
- s_emp.initField(0, AttrType.INTEGER, 4, Constants.EmpIdColName);
- s_emp.initField(1, AttrType.STRING, 40, Constants.EmpNameColName);
- s_emp.initField(2, AttrType.FLOAT, 4, Constants.EmpAgeColName);
- s_emp.initField(3, AttrType.FLOAT, 4, Constants.EmpSalaryColName);
- s_emp.initField(4, AttrType.INTEGER, 4, Constants.EmpDeptIDColName);
-
- //initialize schema for the "Department" table
- s_dept = new Schema(4);
- s_dept.initField(0, AttrType.INTEGER, 4, Constants.DeptIdColName);
- s_dept.initField(1, AttrType.STRING, 40, Constants.DeptNameColName);
- s_dept.initField(2, AttrType.FLOAT, 4, Constants.DeptMinSalaryColName);
- s_dept.initField(3, AttrType.FLOAT, 4, Constants.DeptMaxSalaryColName);
-
- }
-
- protected static void loadData() throws IOException
- {
- empHeapFile = new HeapFile(null);
- loadEmpTable(empHeapFile);
-
- deptHeapFile = new HeapFile(null);
- loadDeptTable(deptHeapFile);
- }
-
-
- protected static void loadEmpTable(HeapFile file) throws IOException
- {
- Tuple tuple = new Tuple(s_emp);
- BufferedReader reader = new BufferedReader(new FileReader(empFilePath));
- reader.readLine(); //ignore the header
- String line = "";
- String[] temp = null;
- int empId; String empName; float age; float salary; int deptId;
- while((line = reader.readLine()) != null)
- {
- temp = line.split(",");
- empId = Integer.parseInt(temp[0].trim());
- empName = temp[1].trim();
- age = Float.parseFloat(temp[2].trim());
- salary = Float.parseFloat(temp[3].trim());
- deptId = Integer.parseInt(temp[4].trim());
- tuple.setAllFields(empId, empName, age, salary, deptId);
- tuple.insertIntoFile(file);
- }
- reader.close();
- }
-
- protected static void loadDeptTable(HeapFile file) throws IOException
- {
- Tuple tuple = new Tuple(s_dept);
- BufferedReader reader = new BufferedReader(new FileReader(deptFilePath));
- reader.readLine(); //ignore the header
- String line = "";
- String[] temp = null;
- int deptId; String deptName; float minSalary; float maxSalary;
- while((line = reader.readLine()) != null)
- {
- temp = line.split(",");
- deptId = Integer.parseInt(temp[0].trim());
- deptName = temp[1].trim();
- minSalary = Float.parseFloat(temp[2].trim());
- maxSalary = Float.parseFloat(temp[3].trim());
- tuple.setAllFields(deptId, deptName, minSalary, maxSalary);
- tuple.insertIntoFile(file);
- }
- reader.close();
- }
-
- static class Constants
- {
-
- public final static String EmpIdColName = "EmpId";
- public final static String EmpNameColName = "Name";
- public final static String EmpAgeColName = "Age";
- public final static String EmpSalaryColName = "Salary";
- public final static String EmpDeptIDColName = "DeptID";
-
- public final static String DeptIdColName = "DeptId";
- public final static String DeptNameColName = "Name";
- public final static String DeptMinSalaryColName = "MinSalary";
- public final static String DeptMaxSalaryColName = "MaxSalary";
-
-
- }
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java
deleted file mode 100644
index a66a746..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java
+++ /dev/null
@@ -1,367 +0,0 @@
-package tests;
-
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.ParseException;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-
-import org.junit.runner.JUnitCore;
-import org.junit.runner.Result;
-import org.junit.runner.notification.Failure;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import global.AttrOperator;
-import global.AttrType;
-import global.RID;
-import global.SearchKey;
-import heap.HeapFile;
-import index.HashIndex;
-import relop.FileScan;
-import relop.HashJoin;
-import relop.IndexScan;
-import relop.KeyScan;
-import relop.Predicate;
-import relop.Projection;
-import relop.Schema;
-import relop.Selection;
-import relop.SimpleJoin;
-import relop.Tuple;
-import relop.Iterator;
-
-import java.io.*;
-import java.util.*;
-
-import com.opencsv.CSVReader;
-import org.json.simple.parser.JSONParser;
-
-/**
- * Test suite for the relop layer.
- */
-public class ROTest extends TestDriver {
-
- private static ROTest rot;
-
- /** The display name of the test suite. */
- private static final String TEST_NAME = "relational operator tests";
-
- /** Size of tables in test3. */
- private static final int SUPER_SIZE = 2000;
-
- private Scanner in;
-
- /** Drivers schema/table/index */
- private static Schema s_drivers;
- private static HeapFile f_drivers;
- private static HashIndex idx_drivers;
-
- private static Schema s_driversBig;
- private static HeapFile f_driversBig;
- private static HashIndex idx_driversBig;
- /** Rides schema/table/index */
-
- private static Schema s_rides;
- private static HeapFile f_rides;
- private static HashIndex idx_rides;
-
- private static Schema s_ridesBig;
- private static HeapFile f_ridesBig;
- private static HashIndex idx_ridesBig;
-
- /** Groups schema/table/index */
- private static Schema s_groups;
- private static HeapFile f_groups;
- private static HashIndex idx_groups;
-
- private static Schema s_groupsBig;
- private static HeapFile f_groupsBig;
- private static HashIndex idx_groupsBig;
-
- /** Expected result strings for test cases */
- private static HashMap results;
-
- /** */
- private static void loadTable(Schema schema, HeapFile f_table, HashIndex idx_table, String table)
- throws FileNotFoundException, IOException, ParseException {
-
- // initialize schema for table
- InputStream in = ClassLoader.getSystemResourceAsStream(table.concat(".json"));
- JSONObject jsonObj = (JSONObject) new JSONParser().parse(new InputStreamReader(in));
- JSONArray jsonFields = (JSONArray) jsonObj.get("schema");
- Field[] fields = new Field[jsonFields.size()];
-
- int key = ((Long) jsonObj.get("key")).intValue();
- int xx = 0;
- for (Object obj : jsonFields) {
- Field field = new Field((JSONObject) obj);
- fields[xx] = field; xx++;
- schema.initField(field.getNo(), field.getType(), field.getLength(), field.getName());
- }
-
- // populate relation
- in = ClassLoader.getSystemResourceAsStream(table.concat(".csv"));
- try (CSVReader csvReader = new CSVReader(new InputStreamReader(in))) {
- String[] values = null;
- Tuple tuple = new Tuple(schema);
- while((values = csvReader.readNext()) != null) {
-
- for (int i=0; i();
-
- try
- {
- Scanner in = new Scanner(new File("solution.txt"));
- String line;
- String[] res;
- while(in.hasNextLine())
- {
- line = in.nextLine();
- res = line.split("=");
- results.put(res[0],res[1]);
-
- }
- } catch (IOException e)
- {
- e.printStackTrace();
- System.exit(1);
- }
-
- // "Drivers" table
- s_drivers = new Schema(5);
- f_drivers = new HeapFile("drivers");
- idx_drivers = new HashIndex("drivers_idx");
- loadTable(s_drivers, f_drivers, idx_drivers, "drivers");
-
-
- s_driversBig = new Schema(5);
- f_driversBig = new HeapFile("driversBig");
- idx_driversBig = new HashIndex("drivers_idxBig");
- loadTable(s_driversBig, f_driversBig, idx_driversBig, "driversBig");
- // "Rides" table
- s_rides = new Schema(4);
- f_rides = new HeapFile("rides");
- idx_rides = new HashIndex("rides_idx");
- loadTable(s_rides, f_rides, idx_rides, "rides");
-
- s_ridesBig = new Schema(4);
- f_ridesBig = new HeapFile("ridesBig");
- idx_ridesBig = new HashIndex("rides_idxBig");
- loadTable(s_ridesBig, f_ridesBig, idx_ridesBig, "ridesBig");
-
- // "Groups" table
- s_groupsBig = new Schema(2);
- f_groupsBig = new HeapFile("groupsBig");
- idx_groupsBig = new HashIndex("groups_idxBig");
- loadTable(s_groupsBig, f_groupsBig, idx_groupsBig, "groupsBig");
-
- s_groups = new Schema(2);
- f_groups = new HeapFile("groups");
- idx_groups = new HashIndex("groups_idx");
- loadTable(s_groups, f_groups, idx_groups, "groups");
-
- System.out.println();
-
- }
-
- @AfterClass
- public static void tearDownDB()
- {
- idx_drivers.deleteFile();
- idx_rides.deleteFile();
- idx_groups.deleteFile();
- f_rides.deleteFile();
- f_drivers.deleteFile();
- f_groups.deleteFile();
- rot.delete_minibase();
- }
-
- @Test
- public void testFileScan() {
- //Scan drivers table
- Iterator fscan = new FileScan(s_drivers, f_drivers);
- execute_and_compare("Filescan", "filescan", fscan);
- }
-
- @Test
- public void testIndexScan() {
- //Scan drivers index
- Iterator idxscan = new IndexScan(s_drivers, idx_drivers, f_drivers);
- execute_and_compare("IndexScan", "idxscan", idxscan);
- }
-
- @Test
- public void testKeyScan() {
- //Scan drivers index for key 20f
- Iterator keyscan = new KeyScan(s_drivers, idx_drivers, new SearchKey(20f), f_drivers);
- execute_and_compare("KeyScan", "keyscan", keyscan);
- }
-
- @Test
- public void testSelection() {
- //Selection drivers with age > 20
- Iterator selection = new Selection(new FileScan(s_drivers, f_drivers),
- new Predicate(AttrOperator.GT, AttrType.COLNAME, "age", AttrType.FLOAT, 20F));
- execute_and_compare("Selection", "selection", selection);
- }
-
- @Test
- public void testSelectionMultiplePredicates() {
- Iterator selection_preds = new Selection(new FileScan(s_drivers, f_drivers),
- new Predicate(AttrOperator.GT, AttrType.COLNAME, "age", AttrType.FLOAT, 23F),
- new Predicate(AttrOperator.LT, AttrType.COLNAME, "age", AttrType.FLOAT, 19F));
- execute_and_compare("Selection Multipled Predicates", "selection_preds", selection_preds);
- }
-
- @Test
- public void testProjection() {
- //Projection on Drivers: {FirstName, NumSeats}
- Iterator projection = new Projection(new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("FirstName"), s_drivers.fieldNumber("NumSeats"));
- execute_and_compare("Projection", "projection", projection);
- }
-
- @Test
- public void testHashJoin() {
- //HashJoin on Drivers X Rides on DriverID
- Iterator hashjoin = new HashJoin(new FileScan(s_drivers, f_drivers),
- new FileScan(s_rides, f_rides), 0, 0);
- execute_and_compare("Hash Join", "hashjoin", hashjoin);
- }
-
- @Test
- public void testSelectionPipelining() {
- //Test all possible Iterator inputs to Selection
- Iterator sel_idx = new Selection(new IndexScan(s_drivers, idx_drivers, f_drivers),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining IndexScan", "sel_idx", sel_idx);
- Iterator sel_key = new Selection(new KeyScan(s_drivers, idx_drivers, new SearchKey(20F), f_drivers),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining Keyscan", "sel_key", sel_key);
- Iterator sel_sel = new Selection(new Selection(new FileScan(s_drivers, f_drivers),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "Age", AttrType.FLOAT, 20F)),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining Selection", "sel_sel", sel_sel);
- Iterator sel_proj = new Selection(new Projection(
- new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("FirstName")),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining Projection", "sel_proj", sel_proj);
- /* Iterator sel_sj = new Selection(new SimpleJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),
- new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 5)),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining Simple Join", "sel_sj", sel_sj);
- */
- Iterator sel_hj = new Selection(new HashJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),0,0),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid"));
- execute_and_compare("Selection - Pipelining Hash Join", "sel_jh", sel_hj);
- }
-
- @Test
- public void testProjectionPipelining() {
- //Test all possible Iterator inputs to HashJoin
- Iterator proj_idx = new Projection(new IndexScan(s_drivers, idx_drivers, f_drivers),
- s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age"));
- execute_and_compare("Projection - Pipelining IndexScan", "proj_idx", proj_idx);
- Iterator proj_key = new Projection(new KeyScan(s_drivers, idx_drivers, new SearchKey(20F), f_drivers),
- s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age"));
- execute_and_compare("Projection - Pipelining KeyScan", "proj_key", proj_key);
- Iterator proj_sel = new Projection(new Selection(new FileScan(s_drivers, f_drivers),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "Age", AttrType.FLOAT, 20F)),
- s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age"));
- execute_and_compare("Projection - Pipelining Selection", "proj_sel", proj_sel);
- Iterator proj_proj = new Projection(new Projection(new FileScan(s_drivers, f_drivers),
- s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("FirstName"), s_drivers.fieldNumber("Age")),
- 0, 2);
- execute_and_compare("Projection - Pipelining Projection", "proj_proj", proj_proj);
- /*
- Iterator proj_sj = new Projection(new SimpleJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),
- new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 5)),
- 0, 3);
- execute_and_compare("Projection - Pipelining Simple Join", "proj_sj", proj_sj);
- */
- Iterator proj_hj = new Projection(new HashJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),0,0),
- 0, 3);
- execute_and_compare("Projection - Pipelining Hash Join", "proj_hj", proj_hj);
- }
-
- @Test
- public void testHashjoinPipelining() {
- //Test all possible Iterator inputs to HashJoin
- /*
- Iterator hj_sel_sj = new HashJoin(new Selection(new FileScan(s_drivers, f_drivers),
- new Predicate(AttrOperator.GTE, AttrType.COLNAME, "DriverId", AttrType.INTEGER, 1)),
- new SimpleJoin(new FileScan(s_rides, f_rides), new FileScan(s_groups, f_groups),
- new Predicate(AttrOperator.EQ, AttrType.COLNAME, "GroupId", AttrType.COLNAME, "DriverId")),0,0);
- execute_and_compare("Hash Join - Pipelining Selection/Simple Join", "hj_sel_sj", hj_sel_sj);
- */
- Iterator hj_proj_hj = new HashJoin(new Projection(new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age")),
- new HashJoin(new FileScan(s_rides, f_rides), new FileScan(s_groups, f_groups), 1, 0), 0, 0);
- execute_and_compare("Hash Join - Pipelining Projection/Hash Join", "hj_proj_hj", hj_proj_hj);
- Iterator hj_iscan_kscan = new HashJoin(new IndexScan(s_drivers, idx_drivers, f_drivers),
- new KeyScan(s_rides, idx_rides, new SearchKey(1), f_rides), 0, 0);
- execute_and_compare("Hash Join - Pipelining IndexScan/KeyScan", "hj_iscan_kscan", hj_iscan_kscan);
- }
-
- //This is an EXTRA test to do Drivers X Drivers using HashJoin and we will calibrate this by changing the value of HashTableDup in the HashTableDup class
- @Test
- public void testHashJoinOnBigTables() {
- //HashJoin on Drivers X Rides on DriverID
- //Anytime the HashTableDup count goes over the threshold, a runtimeexception is thrown
- Iterator hashSame = new HashJoin(new FileScan(s_drivers, f_drivers),
- new FileScan(s_drivers, f_drivers), 0, 0);
- execute_and_compare("Hash Join", "hashSame", hashSame);
- }
-
- //This is second EXTRA test to do DriversBig X DriversBig using HashJoin and we will calibrate this by changing the value of HashTableDup in the HashTableDup class
- //Anytime the HashTableDup count goes over the threshold, a runtimeexception is thrown
- //In addition, any call to Simplejoin throws a RunTimeException
- @Test
- public void testHashJoinOnEqualTables() {
- //HashJoin on Drivers X Rides on DriverID
- Iterator hashEqual = new HashJoin(new FileScan(s_driversBig, f_driversBig),
- new FileScan(s_driversBig, f_driversBig), 0, 0);
- execute_and_compare("Hash Join", "hashEqual", hashEqual);
- }
-
-} // class ROTest extends TestDriver
diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java
deleted file mode 100644
index 215f7d8..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package tests;
-
-import global.GlobalConst;
-import global.Minibase;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * Minibase Test Driver
- * This base class contains common code to each layer's test suite.
- */
-class TestDriver implements GlobalConst {
-
- /** Success value, for readability. */
- protected static final boolean PASS = true;
-
- /** Failure value, for readability. */
- protected static final boolean FAIL = false;
-
- // --------------------------------------------------------------------------
-
- /** Default database file name. */
- protected String DB_PATH = System.getProperty("user.name") + ".minibase";
-
- /** Default database size (in pages). */
- protected int DB_SIZE = 10000;
-
- /** Default buffer pool size (in pages) */
- protected int BUF_SIZE = 100;
-
- /** Default buffer pool replacement policy */
- protected String BUF_POLICY = "Clock";
-
- // --------------------------------------------------------------------------
-
- /** Random generator; use the same seed to make tests deterministic. */
- protected Random random;
-
- /**
- * Counter values saved with a particular description.
- */
- protected class CountData {
-
- public String desc;
-
- public int reads;
-
- public int writes;
-
- public int allocs;
-
- public int pinned;
-
- } // protected class CountData
-
- /**
- * Incremental history of the performance counters; odd elements are snapshots
- * before the tests, and even elements are after.
- */
- protected ArrayList counts;
-
- // --------------------------------------------------------------------------
-
- /**
- * Deletes the database files from the disk.
- */
- protected void delete_minibase() {
- new File(DB_PATH).delete();
- }
-
- /**
- * Creates a new database on the disk.
- */
- protected void create_minibase() {
- System.out.println("Creating database...\nReplacer: " + BUF_POLICY);
- new Minibase(DB_PATH, DB_SIZE, BUF_SIZE, BUF_POLICY, false);
- }
-
- /**
- * Loads an existing database from the disk.
- */
- protected void load_minibase() {
- System.out.println("Loading database...\nReplacer: " + BUF_POLICY);
- new Minibase(DB_PATH, DB_SIZE, BUF_SIZE, BUF_POLICY, true);
- }
-
- // --------------------------------------------------------------------------
-
- /**
- * Resets the random generator to the default seed.
- */
- protected void initRandom() {
- random = new Random(74);
- }
-
- /**
- * Resets the performance counter history.
- */
- protected void initCounts() {
- counts = new ArrayList();
- }
-
- /**
- * Saves the current performance counters, given the description.
- */
- protected void saveCounts(String desc) {
-
- // create the new count data
- CountData data = new CountData();
- counts.add(data);
- data.desc = desc;
-
- // save the counts (in correct order)
- Minibase.BufferManager.flushAllPages();
- data.reads = Minibase.DiskManager.getReadCount();
- data.writes = Minibase.DiskManager.getWriteCount();
- data.allocs = Minibase.DiskManager.getAllocCount();
- data.pinned = BUF_SIZE - Minibase.BufferManager.getNumUnpinned();
-
- } // protected void saveCounts(String desc)
-
- /**
- * Prints the performance counters (i.e. for the current test).
- */
- protected void printCounters() {
-
- CountData data = counts.get(counts.size() - 1);
- System.out.println();
- Minibase.BufferManager.flushAllPages();
- System.out.println(" *** Number of reads: "
- + (Minibase.DiskManager.getReadCount() - data.reads));
- System.out.println(" *** Number of writes: "
- + (Minibase.DiskManager.getWriteCount() - data.writes));
- System.out.println(" *** Net total pages: "
- + (Minibase.DiskManager.getAllocCount() - data.allocs));
- int numbufs = Minibase.BufferManager.getNumBuffers();
- System.out
- .println(" *** Remaining Pinned: "
- + (numbufs - Minibase.BufferManager.getNumUnpinned()) + " / "
- + numbufs);
-
- } // protected void printCounters()
-
- /**
- * Prints the complete history of the performance counters.
- *
- * @param sepcnt how many lines to print before each separator
- */
- protected void printSummary(int sepcnt) {
-
- System.out.println();
- String seperator = "--------------------------------------";
- System.out.println(seperator);
- System.out.println("\tReads\tWrites\tAllocs\tPinned");
- int size = counts.size();
- for (int i = 1; i < size; i += 2) {
-
- if (i % (sepcnt * 2) == 1) {
- System.out.println(seperator);
- }
-
- CountData before = counts.get(i - 1);
- CountData after = counts.get(i);
- System.out.print(after.desc);
-
- System.out.print("\t" + (after.reads - before.reads));
- System.out.print("\t" + (after.writes - before.writes));
- System.out.print("\t" + (after.allocs - before.allocs));
- System.out.print("\t" + (after.pinned - before.pinned));
- System.out.println();
-
- } // for
- System.out.println(seperator);
-
- } // protected void printSummary(int sepcnt)
-
-} // class TestDriver implements GlobalConst
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv
deleted file mode 100644
index bef7605..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-1, "Ahmed", "Elmagarmid", 25, 5
-2, "Walid", "Aref", 20, 13
-3, "Christopher", "Clifton", 18, 4
-4, "Sunil", "Prabhakar", 22, 7
-5, "Elisa", "Bertino", 26, 5
-6, "Susanne", "Hambrusch", 23, 3
-7, "David", "Eberts", 24, 8
-8, "Arif", "Ghafoor", 20, 5
-9, "Jeff", "Vitter", 19, 10
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json b/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json
deleted file mode 100644
index 7c7c7c5..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "DriverId"
- },
- {
- "no": 1,
- "type": "STRING",
- "length": 20,
- "name": "FirstName"
- },
- {
- "no": 2,
- "type": "STRING",
- "length": 20,
- "name": "LastName"
- },
- {
- "no": 3,
- "type": "FLOAT",
- "length": 4,
- "name": "Age"
- },
- {
- "no": 4,
- "type": "INTEGER",
- "length": 4,
- "name": "NumSeats"
- }
- ],
- "key": 3
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv
deleted file mode 100644
index fae9cec..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv
+++ /dev/null
@@ -1,1010 +0,0 @@
-1," ""Ahmed"""," ""Elmagarmid""",25,5
-2," ""Walid"""," ""Aref""",20,13
-3," ""Christopher"""," ""Clifton""",18,4
-4," ""Sunil"""," ""Prabhakar""",22,7
-5," ""Elisa"""," ""Bertino""",26,5
-6," ""Susanne"""," ""Hambrusch""",23,3
-7," ""David"""," ""Eberts""",24,8
-8," ""Arif"""," ""Ghafoor""",20,5
-9," ""Jeff"""," ""Vitter""",19,10
-10,"""Adnan""","""Bob""",19,10
-11,"""Adnan""","""Edgardo""",19,10
-12,"""Adnan""","""Bob""",19,10
-13,"""Adnan""","""Edgardo""",19,10
-14,"""Adnan""","""Bob""",19,10
-15,"""Adnan""","""Edgardo""",19,10
-16,"""Adnan""","""Bob""",19,10
-17,"""Adnan""","""Edgardo""",19,10
-18,"""Adnan""","""Bob""",19,10
-19,"""Adnan""","""Edgardo""",19,10
-20,"""Adnan""","""Bob""",19,10
-21,"""Adnan""","""Edgardo""",19,10
-22,"""Adnan""","""Bob""",19,10
-23,"""Adnan""","""Edgardo""",19,10
-24,"""Adnan""","""Bob""",19,10
-25,"""Adnan""","""Edgardo""",19,10
-26,"""Adnan""","""Bob""",19,10
-27,"""Adnan""","""Edgardo""",19,10
-28,"""Adnan""","""Bob""",19,10
-29,"""Adnan""","""Edgardo""",19,10
-30,"""Adnan""","""Bob""",19,10
-31,"""Adnan""","""Edgardo""",19,10
-32,"""Adnan""","""Bob""",19,10
-33,"""Adnan""","""Edgardo""",19,10
-34,"""Adnan""","""Bob""",19,10
-35,"""Adnan""","""Edgardo""",19,10
-36,"""Adnan""","""Bob""",19,10
-37,"""Adnan""","""Edgardo""",19,10
-38,"""Adnan""","""Bob""",19,10
-39,"""Adnan""","""Edgardo""",19,10
-40,"""Adnan""","""Bob""",19,10
-41,"""Adnan""","""Edgardo""",19,10
-42,"""Adnan""","""Bob""",19,10
-43,"""Adnan""","""Edgardo""",19,10
-44,"""Adnan""","""Bob""",19,10
-45,"""Adnan""","""Edgardo""",19,10
-46,"""Adnan""","""Bob""",19,10
-47,"""Adnan""","""Edgardo""",19,10
-48,"""Adnan""","""Bob""",19,10
-49,"""Adnan""","""Edgardo""",19,10
-50,"""Adnan""","""Bob""",19,10
-51,"""Adnan""","""Edgardo""",19,10
-52,"""Adnan""","""Bob""",19,10
-53,"""Adnan""","""Edgardo""",19,10
-54,"""Adnan""","""Bob""",19,10
-55,"""Adnan""","""Edgardo""",19,10
-56,"""Adnan""","""Bob""",19,10
-57,"""Adnan""","""Edgardo""",19,10
-58,"""Adnan""","""Bob""",19,10
-59,"""Adnan""","""Edgardo""",19,10
-60,"""Adnan""","""Bob""",19,10
-61,"""Adnan""","""Edgardo""",19,10
-62,"""Adnan""","""Bob""",19,10
-63,"""Adnan""","""Edgardo""",19,10
-64,"""Adnan""","""Bob""",19,10
-65,"""Adnan""","""Edgardo""",19,10
-66,"""Adnan""","""Bob""",19,10
-67,"""Adnan""","""Edgardo""",19,10
-68,"""Adnan""","""Bob""",19,10
-69,"""Adnan""","""Edgardo""",19,10
-70,"""Adnan""","""Bob""",19,10
-71,"""Adnan""","""Edgardo""",19,10
-72,"""Adnan""","""Bob""",19,10
-73,"""Adnan""","""Edgardo""",19,10
-74,"""Adnan""","""Bob""",19,10
-75,"""Adnan""","""Edgardo""",19,10
-76,"""Adnan""","""Bob""",19,10
-77,"""Adnan""","""Edgardo""",19,10
-78,"""Adnan""","""Bob""",19,10
-79,"""Adnan""","""Edgardo""",19,10
-80,"""Adnan""","""Bob""",19,10
-81,"""Adnan""","""Edgardo""",19,10
-82,"""Adnan""","""Bob""",19,10
-83,"""Adnan""","""Edgardo""",19,10
-84,"""Adnan""","""Bob""",19,10
-85,"""Adnan""","""Edgardo""",19,10
-86,"""Adnan""","""Bob""",19,10
-87,"""Adnan""","""Edgardo""",19,10
-88,"""Adnan""","""Bob""",19,10
-89,"""Adnan""","""Edgardo""",19,10
-90,"""Adnan""","""Bob""",19,10
-91,"""Adnan""","""Edgardo""",19,10
-92,"""Adnan""","""Bob""",19,10
-93,"""Adnan""","""Edgardo""",19,10
-94,"""Adnan""","""Bob""",19,10
-95,"""Adnan""","""Edgardo""",19,10
-96,"""Adnan""","""Bob""",19,10
-97,"""Adnan""","""Edgardo""",19,10
-98,"""Adnan""","""Bob""",19,10
-99,"""Adnan""","""Edgardo""",19,10
-100,"""Adnan""","""Bob""",19,10
-101,"""Adnan""","""Edgardo""",19,10
-102,"""Adnan""","""Bob""",19,10
-103,"""Adnan""","""Edgardo""",19,10
-104,"""Adnan""","""Bob""",19,10
-105,"""Adnan""","""Edgardo""",19,10
-106,"""Adnan""","""Bob""",19,10
-107,"""Adnan""","""Edgardo""",19,10
-108,"""Adnan""","""Bob""",19,10
-109,"""Adnan""","""Edgardo""",19,10
-110,"""Adnan""","""Bob""",19,10
-111,"""Adnan""","""Edgardo""",19,10
-112,"""Adnan""","""Bob""",19,10
-113,"""Adnan""","""Edgardo""",19,10
-114,"""Adnan""","""Bob""",19,10
-115,"""Adnan""","""Edgardo""",19,10
-116,"""Adnan""","""Bob""",19,10
-117,"""Adnan""","""Edgardo""",19,10
-118,"""Adnan""","""Bob""",19,10
-119,"""Adnan""","""Edgardo""",19,10
-120,"""Adnan""","""Bob""",19,10
-121,"""Adnan""","""Edgardo""",19,10
-122,"""Adnan""","""Bob""",19,10
-123,"""Adnan""","""Edgardo""",19,10
-124,"""Adnan""","""Bob""",19,10
-125,"""Adnan""","""Edgardo""",19,10
-126,"""Adnan""","""Bob""",19,10
-127,"""Adnan""","""Edgardo""",19,10
-128,"""Adnan""","""Bob""",19,10
-129,"""Adnan""","""Edgardo""",19,10
-130,"""Adnan""","""Bob""",19,10
-131,"""Adnan""","""Edgardo""",19,10
-132,"""Adnan""","""Bob""",19,10
-133,"""Adnan""","""Edgardo""",19,10
-134,"""Adnan""","""Bob""",19,10
-135,"""Adnan""","""Edgardo""",19,10
-136,"""Adnan""","""Bob""",19,10
-137,"""Adnan""","""Edgardo""",19,10
-138,"""Adnan""","""Bob""",19,10
-139,"""Adnan""","""Edgardo""",19,10
-140,"""Adnan""","""Bob""",19,10
-141,"""Adnan""","""Edgardo""",19,10
-142,"""Adnan""","""Bob""",19,10
-143,"""Adnan""","""Edgardo""",19,10
-144,"""Adnan""","""Bob""",19,10
-145,"""Adnan""","""Edgardo""",19,10
-146,"""Adnan""","""Bob""",19,10
-147,"""Adnan""","""Edgardo""",19,10
-148,"""Adnan""","""Bob""",19,10
-149,"""Adnan""","""Edgardo""",19,10
-150,"""Adnan""","""Bob""",19,10
-151,"""Adnan""","""Edgardo""",19,10
-152,"""Adnan""","""Bob""",19,10
-153,"""Adnan""","""Edgardo""",19,10
-154,"""Adnan""","""Bob""",19,10
-155,"""Adnan""","""Edgardo""",19,10
-156,"""Adnan""","""Bob""",19,10
-157,"""Adnan""","""Edgardo""",19,10
-158,"""Adnan""","""Bob""",19,10
-159,"""Adnan""","""Edgardo""",19,10
-160,"""Adnan""","""Bob""",19,10
-161,"""Adnan""","""Edgardo""",19,10
-162,"""Adnan""","""Bob""",19,10
-163,"""Adnan""","""Edgardo""",19,10
-164,"""Adnan""","""Bob""",19,10
-165,"""Adnan""","""Edgardo""",19,10
-166,"""Adnan""","""Bob""",19,10
-167,"""Adnan""","""Edgardo""",19,10
-168,"""Adnan""","""Bob""",19,10
-169,"""Adnan""","""Edgardo""",19,10
-170,"""Adnan""","""Bob""",19,10
-171,"""Adnan""","""Edgardo""",19,10
-172,"""Adnan""","""Bob""",19,10
-173,"""Adnan""","""Edgardo""",19,10
-174,"""Adnan""","""Bob""",19,10
-175,"""Adnan""","""Edgardo""",19,10
-176,"""Adnan""","""Bob""",19,10
-177,"""Adnan""","""Edgardo""",19,10
-178,"""Adnan""","""Bob""",19,10
-179,"""Adnan""","""Edgardo""",19,10
-180,"""Adnan""","""Bob""",19,10
-181,"""Adnan""","""Edgardo""",19,10
-182,"""Adnan""","""Bob""",19,10
-183,"""Adnan""","""Edgardo""",19,10
-184,"""Adnan""","""Bob""",19,10
-185,"""Adnan""","""Edgardo""",19,10
-186,"""Adnan""","""Bob""",19,10
-187,"""Adnan""","""Edgardo""",19,10
-188,"""Adnan""","""Bob""",19,10
-189,"""Adnan""","""Edgardo""",19,10
-190,"""Adnan""","""Bob""",19,10
-191,"""Adnan""","""Edgardo""",19,10
-192,"""Adnan""","""Bob""",19,10
-193,"""Adnan""","""Edgardo""",19,10
-194,"""Adnan""","""Bob""",19,10
-195,"""Adnan""","""Edgardo""",19,10
-196,"""Adnan""","""Bob""",19,10
-197,"""Adnan""","""Edgardo""",19,10
-198,"""Adnan""","""Bob""",19,10
-199,"""Adnan""","""Edgardo""",19,10
-200,"""Adnan""","""Bob""",19,10
-201,"""Adnan""","""Edgardo""",19,10
-202,"""Adnan""","""Bob""",19,10
-203,"""Adnan""","""Edgardo""",19,10
-204,"""Adnan""","""Bob""",19,10
-205,"""Adnan""","""Edgardo""",19,10
-206,"""Adnan""","""Bob""",19,10
-207,"""Adnan""","""Edgardo""",19,10
-208,"""Adnan""","""Bob""",19,10
-209,"""Adnan""","""Edgardo""",19,10
-210,"""Adnan""","""Bob""",19,10
-211,"""Adnan""","""Edgardo""",19,10
-212,"""Adnan""","""Bob""",19,10
-213,"""Adnan""","""Edgardo""",19,10
-214,"""Adnan""","""Bob""",19,10
-215,"""Adnan""","""Edgardo""",19,10
-216,"""Adnan""","""Bob""",19,10
-217,"""Adnan""","""Edgardo""",19,10
-218,"""Adnan""","""Bob""",19,10
-219,"""Adnan""","""Edgardo""",19,10
-220,"""Adnan""","""Bob""",19,10
-221,"""Adnan""","""Edgardo""",19,10
-222,"""Adnan""","""Bob""",19,10
-223,"""Adnan""","""Edgardo""",19,10
-224,"""Adnan""","""Bob""",19,10
-225,"""Adnan""","""Edgardo""",19,10
-226,"""Adnan""","""Bob""",19,10
-227,"""Adnan""","""Edgardo""",19,10
-228,"""Adnan""","""Bob""",19,10
-229,"""Adnan""","""Edgardo""",19,10
-230,"""Adnan""","""Bob""",19,10
-231,"""Adnan""","""Edgardo""",19,10
-232,"""Adnan""","""Bob""",19,10
-233,"""Adnan""","""Edgardo""",19,10
-234,"""Adnan""","""Bob""",19,10
-235,"""Adnan""","""Edgardo""",19,10
-236,"""Adnan""","""Bob""",19,10
-237,"""Adnan""","""Edgardo""",19,10
-238,"""Adnan""","""Bob""",19,10
-239,"""Adnan""","""Edgardo""",19,10
-240,"""Adnan""","""Bob""",19,10
-241,"""Adnan""","""Edgardo""",19,10
-242,"""Adnan""","""Bob""",19,10
-243,"""Adnan""","""Edgardo""",19,10
-244,"""Adnan""","""Bob""",19,10
-245,"""Adnan""","""Edgardo""",19,10
-246,"""Adnan""","""Bob""",19,10
-247,"""Adnan""","""Edgardo""",19,10
-248,"""Adnan""","""Bob""",19,10
-249,"""Adnan""","""Edgardo""",19,10
-250,"""Adnan""","""Bob""",19,10
-251,"""Adnan""","""Edgardo""",19,10
-252,"""Adnan""","""Bob""",19,10
-253,"""Adnan""","""Edgardo""",19,10
-254,"""Adnan""","""Bob""",19,10
-255,"""Adnan""","""Edgardo""",19,10
-256,"""Adnan""","""Bob""",19,10
-257,"""Adnan""","""Edgardo""",19,10
-258,"""Adnan""","""Bob""",19,10
-259,"""Adnan""","""Edgardo""",19,10
-260,"""Adnan""","""Bob""",19,10
-261,"""Adnan""","""Edgardo""",19,10
-262,"""Adnan""","""Bob""",19,10
-263,"""Adnan""","""Edgardo""",19,10
-264,"""Adnan""","""Bob""",19,10
-265,"""Adnan""","""Edgardo""",19,10
-266,"""Adnan""","""Bob""",19,10
-267,"""Adnan""","""Edgardo""",19,10
-268,"""Adnan""","""Bob""",19,10
-269,"""Adnan""","""Edgardo""",19,10
-270,"""Adnan""","""Bob""",19,10
-271,"""Adnan""","""Edgardo""",19,10
-272,"""Adnan""","""Bob""",19,10
-273,"""Adnan""","""Edgardo""",19,10
-274,"""Adnan""","""Bob""",19,10
-275,"""Adnan""","""Edgardo""",19,10
-276,"""Adnan""","""Bob""",19,10
-277,"""Adnan""","""Edgardo""",19,10
-278,"""Adnan""","""Bob""",19,10
-279,"""Adnan""","""Edgardo""",19,10
-280,"""Adnan""","""Bob""",19,10
-281,"""Adnan""","""Edgardo""",19,10
-282,"""Adnan""","""Bob""",19,10
-283,"""Adnan""","""Edgardo""",19,10
-284,"""Adnan""","""Bob""",19,10
-285,"""Adnan""","""Edgardo""",19,10
-286,"""Adnan""","""Bob""",19,10
-287,"""Adnan""","""Edgardo""",19,10
-288,"""Adnan""","""Bob""",19,10
-289,"""Adnan""","""Edgardo""",19,10
-290,"""Adnan""","""Bob""",19,10
-291,"""Adnan""","""Edgardo""",19,10
-292,"""Adnan""","""Bob""",19,10
-293,"""Adnan""","""Edgardo""",19,10
-294,"""Adnan""","""Bob""",19,10
-295,"""Adnan""","""Edgardo""",19,10
-296,"""Adnan""","""Bob""",19,10
-297,"""Adnan""","""Edgardo""",19,10
-298,"""Adnan""","""Bob""",19,10
-299,"""Adnan""","""Edgardo""",19,10
-300,"""Adnan""","""Bob""",19,10
-301,"""Adnan""","""Edgardo""",19,10
-302,"""Adnan""","""Bob""",19,10
-303,"""Adnan""","""Edgardo""",19,10
-304,"""Adnan""","""Bob""",19,10
-305,"""Adnan""","""Edgardo""",19,10
-306,"""Adnan""","""Bob""",19,10
-307,"""Adnan""","""Edgardo""",19,10
-308,"""Adnan""","""Bob""",19,10
-309,"""Adnan""","""Edgardo""",19,10
-310,"""Adnan""","""Bob""",19,10
-311,"""Adnan""","""Edgardo""",19,10
-312,"""Adnan""","""Bob""",19,10
-313,"""Adnan""","""Edgardo""",19,10
-314,"""Adnan""","""Bob""",19,10
-315,"""Adnan""","""Edgardo""",19,10
-316,"""Adnan""","""Bob""",19,10
-317,"""Adnan""","""Edgardo""",19,10
-318,"""Adnan""","""Bob""",19,10
-319,"""Adnan""","""Edgardo""",19,10
-320,"""Adnan""","""Bob""",19,10
-321,"""Adnan""","""Edgardo""",19,10
-322,"""Adnan""","""Bob""",19,10
-323,"""Adnan""","""Edgardo""",19,10
-324,"""Adnan""","""Bob""",19,10
-325,"""Adnan""","""Edgardo""",19,10
-326,"""Adnan""","""Bob""",19,10
-327,"""Adnan""","""Edgardo""",19,10
-328,"""Adnan""","""Bob""",19,10
-329,"""Adnan""","""Edgardo""",19,10
-330,"""Adnan""","""Bob""",19,10
-331,"""Adnan""","""Edgardo""",19,10
-332,"""Adnan""","""Bob""",19,10
-333,"""Adnan""","""Edgardo""",19,10
-334,"""Adnan""","""Bob""",19,10
-335,"""Adnan""","""Edgardo""",19,10
-336,"""Adnan""","""Bob""",19,10
-337,"""Adnan""","""Edgardo""",19,10
-338,"""Adnan""","""Bob""",19,10
-339,"""Adnan""","""Edgardo""",19,10
-340,"""Adnan""","""Bob""",19,10
-341,"""Adnan""","""Edgardo""",19,10
-342,"""Adnan""","""Bob""",19,10
-343,"""Adnan""","""Edgardo""",19,10
-344,"""Adnan""","""Bob""",19,10
-345,"""Adnan""","""Edgardo""",19,10
-346,"""Adnan""","""Bob""",19,10
-347,"""Adnan""","""Edgardo""",19,10
-348,"""Adnan""","""Bob""",19,10
-349,"""Adnan""","""Edgardo""",19,10
-350,"""Adnan""","""Bob""",19,10
-351,"""Adnan""","""Edgardo""",19,10
-352,"""Adnan""","""Bob""",19,10
-353,"""Adnan""","""Edgardo""",19,10
-354,"""Adnan""","""Bob""",19,10
-355,"""Adnan""","""Edgardo""",19,10
-356,"""Adnan""","""Bob""",19,10
-357,"""Adnan""","""Edgardo""",19,10
-358,"""Adnan""","""Bob""",19,10
-359,"""Adnan""","""Edgardo""",19,10
-360,"""Adnan""","""Bob""",19,10
-361,"""Adnan""","""Edgardo""",19,10
-362,"""Adnan""","""Bob""",19,10
-363,"""Adnan""","""Edgardo""",19,10
-364,"""Adnan""","""Bob""",19,10
-365,"""Adnan""","""Edgardo""",19,10
-366,"""Adnan""","""Bob""",19,10
-367,"""Adnan""","""Edgardo""",19,10
-368,"""Adnan""","""Bob""",19,10
-369,"""Adnan""","""Edgardo""",19,10
-370,"""Adnan""","""Bob""",19,10
-371,"""Adnan""","""Edgardo""",19,10
-372,"""Adnan""","""Bob""",19,10
-373,"""Adnan""","""Edgardo""",19,10
-374,"""Adnan""","""Bob""",19,10
-375,"""Adnan""","""Edgardo""",19,10
-376,"""Adnan""","""Bob""",19,10
-377,"""Adnan""","""Edgardo""",19,10
-378,"""Adnan""","""Bob""",19,10
-379,"""Adnan""","""Edgardo""",19,10
-380,"""Adnan""","""Bob""",19,10
-381,"""Adnan""","""Edgardo""",19,10
-382,"""Adnan""","""Bob""",19,10
-383,"""Adnan""","""Edgardo""",19,10
-384,"""Adnan""","""Bob""",19,10
-385,"""Adnan""","""Edgardo""",19,10
-386,"""Adnan""","""Bob""",19,10
-387,"""Adnan""","""Edgardo""",19,10
-388,"""Adnan""","""Bob""",19,10
-389,"""Adnan""","""Edgardo""",19,10
-390,"""Adnan""","""Bob""",19,10
-391,"""Adnan""","""Edgardo""",19,10
-392,"""Adnan""","""Bob""",19,10
-393,"""Adnan""","""Edgardo""",19,10
-394,"""Adnan""","""Bob""",19,10
-395,"""Adnan""","""Edgardo""",19,10
-396,"""Adnan""","""Bob""",19,10
-397,"""Adnan""","""Edgardo""",19,10
-398,"""Adnan""","""Bob""",19,10
-399,"""Adnan""","""Edgardo""",19,10
-400,"""Adnan""","""Bob""",19,10
-401,"""Adnan""","""Edgardo""",19,10
-402,"""Adnan""","""Bob""",19,10
-403,"""Adnan""","""Edgardo""",19,10
-404,"""Adnan""","""Bob""",19,10
-405,"""Adnan""","""Edgardo""",19,10
-406,"""Adnan""","""Bob""",19,10
-407,"""Adnan""","""Edgardo""",19,10
-408,"""Adnan""","""Bob""",19,10
-409,"""Adnan""","""Edgardo""",19,10
-410,"""Adnan""","""Bob""",19,10
-411,"""Adnan""","""Edgardo""",19,10
-412,"""Adnan""","""Bob""",19,10
-413,"""Adnan""","""Edgardo""",19,10
-414,"""Adnan""","""Bob""",19,10
-415,"""Adnan""","""Edgardo""",19,10
-416,"""Adnan""","""Bob""",19,10
-417,"""Adnan""","""Edgardo""",19,10
-418,"""Adnan""","""Bob""",19,10
-419,"""Adnan""","""Edgardo""",19,10
-420,"""Adnan""","""Bob""",19,10
-421,"""Adnan""","""Edgardo""",19,10
-422,"""Adnan""","""Bob""",19,10
-423,"""Adnan""","""Edgardo""",19,10
-424,"""Adnan""","""Bob""",19,10
-425,"""Adnan""","""Edgardo""",19,10
-426,"""Adnan""","""Bob""",19,10
-427,"""Adnan""","""Edgardo""",19,10
-428,"""Adnan""","""Bob""",19,10
-429,"""Adnan""","""Edgardo""",19,10
-430,"""Adnan""","""Bob""",19,10
-431,"""Adnan""","""Edgardo""",19,10
-432,"""Adnan""","""Bob""",19,10
-433,"""Adnan""","""Edgardo""",19,10
-434,"""Adnan""","""Bob""",19,10
-435,"""Adnan""","""Edgardo""",19,10
-436,"""Adnan""","""Bob""",19,10
-437,"""Adnan""","""Edgardo""",19,10
-438,"""Adnan""","""Bob""",19,10
-439,"""Adnan""","""Edgardo""",19,10
-440,"""Adnan""","""Bob""",19,10
-441,"""Adnan""","""Edgardo""",19,10
-442,"""Adnan""","""Bob""",19,10
-443,"""Adnan""","""Edgardo""",19,10
-444,"""Adnan""","""Bob""",19,10
-445,"""Adnan""","""Edgardo""",19,10
-446,"""Adnan""","""Bob""",19,10
-447,"""Adnan""","""Edgardo""",19,10
-448,"""Adnan""","""Bob""",19,10
-449,"""Adnan""","""Edgardo""",19,10
-450,"""Adnan""","""Bob""",19,10
-451,"""Adnan""","""Edgardo""",19,10
-452,"""Adnan""","""Bob""",19,10
-453,"""Adnan""","""Edgardo""",19,10
-454,"""Adnan""","""Bob""",19,10
-455,"""Adnan""","""Edgardo""",19,10
-456,"""Adnan""","""Bob""",19,10
-457,"""Adnan""","""Edgardo""",19,10
-458,"""Adnan""","""Bob""",19,10
-459,"""Adnan""","""Edgardo""",19,10
-460,"""Adnan""","""Bob""",19,10
-461,"""Adnan""","""Edgardo""",19,10
-462,"""Adnan""","""Bob""",19,10
-463,"""Adnan""","""Edgardo""",19,10
-464,"""Adnan""","""Bob""",19,10
-465,"""Adnan""","""Edgardo""",19,10
-466,"""Adnan""","""Bob""",19,10
-467,"""Adnan""","""Edgardo""",19,10
-468,"""Adnan""","""Bob""",19,10
-469,"""Adnan""","""Edgardo""",19,10
-470,"""Adnan""","""Bob""",19,10
-471,"""Adnan""","""Edgardo""",19,10
-472,"""Adnan""","""Bob""",19,10
-473,"""Adnan""","""Edgardo""",19,10
-474,"""Adnan""","""Bob""",19,10
-475,"""Adnan""","""Edgardo""",19,10
-476,"""Adnan""","""Bob""",19,10
-477,"""Adnan""","""Edgardo""",19,10
-478,"""Adnan""","""Bob""",19,10
-479,"""Adnan""","""Edgardo""",19,10
-480,"""Adnan""","""Bob""",19,10
-481,"""Adnan""","""Edgardo""",19,10
-482,"""Adnan""","""Bob""",19,10
-483,"""Adnan""","""Edgardo""",19,10
-484,"""Adnan""","""Bob""",19,10
-485,"""Adnan""","""Edgardo""",19,10
-486,"""Adnan""","""Bob""",19,10
-487,"""Adnan""","""Edgardo""",19,10
-488,"""Adnan""","""Bob""",19,10
-489,"""Adnan""","""Edgardo""",19,10
-490,"""Adnan""","""Bob""",19,10
-491,"""Adnan""","""Edgardo""",19,10
-492,"""Adnan""","""Bob""",19,10
-493,"""Adnan""","""Edgardo""",19,10
-494,"""Adnan""","""Bob""",19,10
-495,"""Adnan""","""Edgardo""",19,10
-496,"""Adnan""","""Bob""",19,10
-497,"""Adnan""","""Edgardo""",19,10
-498,"""Adnan""","""Bob""",19,10
-499,"""Adnan""","""Edgardo""",19,10
-500,"""Adnan""","""Bob""",19,10
-501,"""Adnan""","""Edgardo""",19,10
-502,"""Adnan""","""Bob""",19,10
-503,"""Adnan""","""Edgardo""",19,10
-504,"""Adnan""","""Bob""",19,10
-505,"""Adnan""","""Edgardo""",19,10
-506,"""Adnan""","""Bob""",19,10
-507,"""Adnan""","""Edgardo""",19,10
-508,"""Adnan""","""Bob""",19,10
-509,"""Adnan""","""Edgardo""",19,10
-510,"""Adnan""","""Bob""",19,10
-511,"""Adnan""","""Edgardo""",19,10
-512,"""Adnan""","""Bob""",19,10
-513,"""Adnan""","""Edgardo""",19,10
-514,"""Adnan""","""Bob""",19,10
-515,"""Adnan""","""Edgardo""",19,10
-516,"""Adnan""","""Bob""",19,10
-517,"""Adnan""","""Edgardo""",19,10
-518,"""Adnan""","""Bob""",19,10
-519,"""Adnan""","""Edgardo""",19,10
-520,"""Adnan""","""Bob""",19,10
-521,"""Adnan""","""Edgardo""",19,10
-522,"""Adnan""","""Bob""",19,10
-523,"""Adnan""","""Edgardo""",19,10
-524,"""Adnan""","""Bob""",19,10
-525,"""Adnan""","""Edgardo""",19,10
-526,"""Adnan""","""Bob""",19,10
-527,"""Adnan""","""Edgardo""",19,10
-528,"""Adnan""","""Bob""",19,10
-529,"""Adnan""","""Edgardo""",19,10
-530,"""Adnan""","""Bob""",19,10
-531,"""Adnan""","""Edgardo""",19,10
-532,"""Adnan""","""Bob""",19,10
-533,"""Adnan""","""Edgardo""",19,10
-534,"""Adnan""","""Bob""",19,10
-535,"""Adnan""","""Edgardo""",19,10
-536,"""Adnan""","""Bob""",19,10
-537,"""Adnan""","""Edgardo""",19,10
-538,"""Adnan""","""Bob""",19,10
-539,"""Adnan""","""Edgardo""",19,10
-540,"""Adnan""","""Bob""",19,10
-541,"""Adnan""","""Edgardo""",19,10
-542,"""Adnan""","""Bob""",19,10
-543,"""Adnan""","""Edgardo""",19,10
-544,"""Adnan""","""Bob""",19,10
-545,"""Adnan""","""Edgardo""",19,10
-546,"""Adnan""","""Bob""",19,10
-547,"""Adnan""","""Edgardo""",19,10
-548,"""Adnan""","""Bob""",19,10
-549,"""Adnan""","""Edgardo""",19,10
-550,"""Adnan""","""Bob""",19,10
-551,"""Adnan""","""Edgardo""",19,10
-552,"""Adnan""","""Bob""",19,10
-553,"""Adnan""","""Edgardo""",19,10
-554,"""Adnan""","""Bob""",19,10
-555,"""Adnan""","""Edgardo""",19,10
-556,"""Adnan""","""Bob""",19,10
-557,"""Adnan""","""Edgardo""",19,10
-558,"""Adnan""","""Bob""",19,10
-559,"""Adnan""","""Edgardo""",19,10
-560,"""Adnan""","""Bob""",19,10
-561,"""Adnan""","""Edgardo""",19,10
-562,"""Adnan""","""Bob""",19,10
-563,"""Adnan""","""Edgardo""",19,10
-564,"""Adnan""","""Bob""",19,10
-565,"""Adnan""","""Edgardo""",19,10
-566,"""Adnan""","""Bob""",19,10
-567,"""Adnan""","""Edgardo""",19,10
-568,"""Adnan""","""Bob""",19,10
-569,"""Adnan""","""Edgardo""",19,10
-570,"""Adnan""","""Bob""",19,10
-571,"""Adnan""","""Edgardo""",19,10
-572,"""Adnan""","""Bob""",19,10
-573,"""Adnan""","""Edgardo""",19,10
-574,"""Adnan""","""Bob""",19,10
-575,"""Adnan""","""Edgardo""",19,10
-576,"""Adnan""","""Bob""",19,10
-577,"""Adnan""","""Edgardo""",19,10
-578,"""Adnan""","""Bob""",19,10
-579,"""Adnan""","""Edgardo""",19,10
-580,"""Adnan""","""Bob""",19,10
-581,"""Adnan""","""Edgardo""",19,10
-582,"""Adnan""","""Bob""",19,10
-583,"""Adnan""","""Edgardo""",19,10
-584,"""Adnan""","""Bob""",19,10
-585,"""Adnan""","""Edgardo""",19,10
-586,"""Adnan""","""Bob""",19,10
-587,"""Adnan""","""Edgardo""",19,10
-588,"""Adnan""","""Bob""",19,10
-589,"""Adnan""","""Edgardo""",19,10
-590,"""Adnan""","""Bob""",19,10
-591,"""Adnan""","""Edgardo""",19,10
-592,"""Adnan""","""Bob""",19,10
-593,"""Adnan""","""Edgardo""",19,10
-594,"""Adnan""","""Bob""",19,10
-595,"""Adnan""","""Edgardo""",19,10
-596,"""Adnan""","""Bob""",19,10
-597,"""Adnan""","""Edgardo""",19,10
-598,"""Adnan""","""Bob""",19,10
-599,"""Adnan""","""Edgardo""",19,10
-600,"""Adnan""","""Bob""",19,10
-601,"""Adnan""","""Edgardo""",19,10
-602,"""Adnan""","""Bob""",19,10
-603,"""Adnan""","""Edgardo""",19,10
-604,"""Adnan""","""Bob""",19,10
-605,"""Adnan""","""Edgardo""",19,10
-606,"""Adnan""","""Bob""",19,10
-607,"""Adnan""","""Edgardo""",19,10
-608,"""Adnan""","""Bob""",19,10
-609,"""Adnan""","""Edgardo""",19,10
-610,"""Adnan""","""Bob""",19,10
-611,"""Adnan""","""Edgardo""",19,10
-612,"""Adnan""","""Bob""",19,10
-613,"""Adnan""","""Edgardo""",19,10
-614,"""Adnan""","""Bob""",19,10
-615,"""Adnan""","""Edgardo""",19,10
-616,"""Adnan""","""Bob""",19,10
-617,"""Adnan""","""Edgardo""",19,10
-618,"""Adnan""","""Bob""",19,10
-619,"""Adnan""","""Edgardo""",19,10
-620,"""Adnan""","""Bob""",19,10
-621,"""Adnan""","""Edgardo""",19,10
-622,"""Adnan""","""Bob""",19,10
-623,"""Adnan""","""Edgardo""",19,10
-624,"""Adnan""","""Bob""",19,10
-625,"""Adnan""","""Edgardo""",19,10
-626,"""Adnan""","""Bob""",19,10
-627,"""Adnan""","""Edgardo""",19,10
-628,"""Adnan""","""Bob""",19,10
-629,"""Adnan""","""Edgardo""",19,10
-630,"""Adnan""","""Bob""",19,10
-631,"""Adnan""","""Edgardo""",19,10
-632,"""Adnan""","""Bob""",19,10
-633,"""Adnan""","""Edgardo""",19,10
-634,"""Adnan""","""Bob""",19,10
-635,"""Adnan""","""Edgardo""",19,10
-636,"""Adnan""","""Bob""",19,10
-637,"""Adnan""","""Edgardo""",19,10
-638,"""Adnan""","""Bob""",19,10
-639,"""Adnan""","""Edgardo""",19,10
-640,"""Adnan""","""Bob""",19,10
-641,"""Adnan""","""Edgardo""",19,10
-642,"""Adnan""","""Bob""",19,10
-643,"""Adnan""","""Edgardo""",19,10
-644,"""Adnan""","""Bob""",19,10
-645,"""Adnan""","""Edgardo""",19,10
-646,"""Adnan""","""Bob""",19,10
-647,"""Adnan""","""Edgardo""",19,10
-648,"""Adnan""","""Bob""",19,10
-649,"""Adnan""","""Edgardo""",19,10
-650,"""Adnan""","""Bob""",19,10
-651,"""Adnan""","""Edgardo""",19,10
-652,"""Adnan""","""Bob""",19,10
-653,"""Adnan""","""Edgardo""",19,10
-654,"""Adnan""","""Bob""",19,10
-655,"""Adnan""","""Edgardo""",19,10
-656,"""Adnan""","""Bob""",19,10
-657,"""Adnan""","""Edgardo""",19,10
-658,"""Adnan""","""Bob""",19,10
-659,"""Adnan""","""Edgardo""",19,10
-660,"""Adnan""","""Bob""",19,10
-661,"""Adnan""","""Edgardo""",19,10
-662,"""Adnan""","""Bob""",19,10
-663,"""Adnan""","""Edgardo""",19,10
-664,"""Adnan""","""Bob""",19,10
-665,"""Adnan""","""Edgardo""",19,10
-666,"""Adnan""","""Bob""",19,10
-667,"""Adnan""","""Edgardo""",19,10
-668,"""Adnan""","""Bob""",19,10
-669,"""Adnan""","""Edgardo""",19,10
-670,"""Adnan""","""Bob""",19,10
-671,"""Adnan""","""Edgardo""",19,10
-672,"""Adnan""","""Bob""",19,10
-673,"""Adnan""","""Edgardo""",19,10
-674,"""Adnan""","""Bob""",19,10
-675,"""Adnan""","""Edgardo""",19,10
-676,"""Adnan""","""Bob""",19,10
-677,"""Adnan""","""Edgardo""",19,10
-678,"""Adnan""","""Bob""",19,10
-679,"""Adnan""","""Edgardo""",19,10
-680,"""Adnan""","""Bob""",19,10
-681,"""Adnan""","""Edgardo""",19,10
-682,"""Adnan""","""Bob""",19,10
-683,"""Adnan""","""Edgardo""",19,10
-684,"""Adnan""","""Bob""",19,10
-685,"""Adnan""","""Edgardo""",19,10
-686,"""Adnan""","""Bob""",19,10
-687,"""Adnan""","""Edgardo""",19,10
-688,"""Adnan""","""Bob""",19,10
-689,"""Adnan""","""Edgardo""",19,10
-690,"""Adnan""","""Bob""",19,10
-691,"""Adnan""","""Edgardo""",19,10
-692,"""Adnan""","""Bob""",19,10
-693,"""Adnan""","""Edgardo""",19,10
-694,"""Adnan""","""Bob""",19,10
-695,"""Adnan""","""Edgardo""",19,10
-696,"""Adnan""","""Bob""",19,10
-697,"""Adnan""","""Edgardo""",19,10
-698,"""Adnan""","""Bob""",19,10
-699,"""Adnan""","""Edgardo""",19,10
-700,"""Adnan""","""Bob""",19,10
-701,"""Adnan""","""Edgardo""",19,10
-702,"""Adnan""","""Bob""",19,10
-703,"""Adnan""","""Edgardo""",19,10
-704,"""Adnan""","""Bob""",19,10
-705,"""Adnan""","""Edgardo""",19,10
-706,"""Adnan""","""Bob""",19,10
-707,"""Adnan""","""Edgardo""",19,10
-708,"""Adnan""","""Bob""",19,10
-709,"""Adnan""","""Edgardo""",19,10
-710,"""Adnan""","""Bob""",19,10
-711,"""Adnan""","""Edgardo""",19,10
-712,"""Adnan""","""Bob""",19,10
-713,"""Adnan""","""Edgardo""",19,10
-714,"""Adnan""","""Bob""",19,10
-715,"""Adnan""","""Edgardo""",19,10
-716,"""Adnan""","""Bob""",19,10
-717,"""Adnan""","""Edgardo""",19,10
-718,"""Adnan""","""Bob""",19,10
-719,"""Adnan""","""Edgardo""",19,10
-720,"""Adnan""","""Bob""",19,10
-721,"""Adnan""","""Edgardo""",19,10
-722,"""Adnan""","""Bob""",19,10
-723,"""Adnan""","""Edgardo""",19,10
-724,"""Adnan""","""Bob""",19,10
-725,"""Adnan""","""Edgardo""",19,10
-726,"""Adnan""","""Bob""",19,10
-727,"""Adnan""","""Edgardo""",19,10
-728,"""Adnan""","""Bob""",19,10
-729,"""Adnan""","""Edgardo""",19,10
-730,"""Adnan""","""Bob""",19,10
-731,"""Adnan""","""Edgardo""",19,10
-732,"""Adnan""","""Bob""",19,10
-733,"""Adnan""","""Edgardo""",19,10
-734,"""Adnan""","""Bob""",19,10
-735,"""Adnan""","""Edgardo""",19,10
-736,"""Adnan""","""Bob""",19,10
-737,"""Adnan""","""Edgardo""",19,10
-738,"""Adnan""","""Bob""",19,10
-739,"""Adnan""","""Edgardo""",19,10
-740,"""Adnan""","""Bob""",19,10
-741,"""Adnan""","""Edgardo""",19,10
-742,"""Adnan""","""Bob""",19,10
-743,"""Adnan""","""Edgardo""",19,10
-744,"""Adnan""","""Bob""",19,10
-745,"""Adnan""","""Edgardo""",19,10
-746,"""Adnan""","""Bob""",19,10
-747,"""Adnan""","""Edgardo""",19,10
-748,"""Adnan""","""Bob""",19,10
-749,"""Adnan""","""Edgardo""",19,10
-750,"""Adnan""","""Bob""",19,10
-751,"""Adnan""","""Edgardo""",19,10
-752,"""Adnan""","""Bob""",19,10
-753,"""Adnan""","""Edgardo""",19,10
-754,"""Adnan""","""Bob""",19,10
-755,"""Adnan""","""Edgardo""",19,10
-756,"""Adnan""","""Bob""",19,10
-757,"""Adnan""","""Edgardo""",19,10
-758,"""Adnan""","""Bob""",19,10
-759,"""Adnan""","""Edgardo""",19,10
-760,"""Adnan""","""Bob""",19,10
-761,"""Adnan""","""Edgardo""",19,10
-762,"""Adnan""","""Bob""",19,10
-763,"""Adnan""","""Edgardo""",19,10
-764,"""Adnan""","""Bob""",19,10
-765,"""Adnan""","""Edgardo""",19,10
-766,"""Adnan""","""Bob""",19,10
-767,"""Adnan""","""Edgardo""",19,10
-768,"""Adnan""","""Bob""",19,10
-769,"""Adnan""","""Edgardo""",19,10
-770,"""Adnan""","""Bob""",19,10
-771,"""Adnan""","""Edgardo""",19,10
-772,"""Adnan""","""Bob""",19,10
-773,"""Adnan""","""Edgardo""",19,10
-774,"""Adnan""","""Bob""",19,10
-775,"""Adnan""","""Edgardo""",19,10
-776,"""Adnan""","""Bob""",19,10
-777,"""Adnan""","""Edgardo""",19,10
-778,"""Adnan""","""Bob""",19,10
-779,"""Adnan""","""Edgardo""",19,10
-780,"""Adnan""","""Bob""",19,10
-781,"""Adnan""","""Edgardo""",19,10
-782,"""Adnan""","""Bob""",19,10
-783,"""Adnan""","""Edgardo""",19,10
-784,"""Adnan""","""Bob""",19,10
-785,"""Adnan""","""Edgardo""",19,10
-786,"""Adnan""","""Bob""",19,10
-787,"""Adnan""","""Edgardo""",19,10
-788,"""Adnan""","""Bob""",19,10
-789,"""Adnan""","""Edgardo""",19,10
-790,"""Adnan""","""Bob""",19,10
-791,"""Adnan""","""Edgardo""",19,10
-792,"""Adnan""","""Bob""",19,10
-793,"""Adnan""","""Edgardo""",19,10
-794,"""Adnan""","""Bob""",19,10
-795,"""Adnan""","""Edgardo""",19,10
-796,"""Adnan""","""Bob""",19,10
-797,"""Adnan""","""Edgardo""",19,10
-798,"""Adnan""","""Bob""",19,10
-799,"""Adnan""","""Edgardo""",19,10
-800,"""Adnan""","""Bob""",19,10
-801,"""Adnan""","""Edgardo""",19,10
-802,"""Adnan""","""Bob""",19,10
-803,"""Adnan""","""Edgardo""",19,10
-804,"""Adnan""","""Bob""",19,10
-805,"""Adnan""","""Edgardo""",19,10
-806,"""Adnan""","""Bob""",19,10
-807,"""Adnan""","""Edgardo""",19,10
-808,"""Adnan""","""Bob""",19,10
-809,"""Adnan""","""Edgardo""",19,10
-810,"""Adnan""","""Bob""",19,10
-811,"""Adnan""","""Edgardo""",19,10
-812,"""Adnan""","""Bob""",19,10
-813,"""Adnan""","""Edgardo""",19,10
-814,"""Adnan""","""Bob""",19,10
-815,"""Adnan""","""Edgardo""",19,10
-816,"""Adnan""","""Bob""",19,10
-817,"""Adnan""","""Edgardo""",19,10
-818,"""Adnan""","""Bob""",19,10
-819,"""Adnan""","""Edgardo""",19,10
-820,"""Adnan""","""Bob""",19,10
-821,"""Adnan""","""Edgardo""",19,10
-822,"""Adnan""","""Bob""",19,10
-823,"""Adnan""","""Edgardo""",19,10
-824,"""Adnan""","""Bob""",19,10
-825,"""Adnan""","""Edgardo""",19,10
-826,"""Adnan""","""Bob""",19,10
-827,"""Adnan""","""Edgardo""",19,10
-828,"""Adnan""","""Bob""",19,10
-829,"""Adnan""","""Edgardo""",19,10
-830,"""Adnan""","""Bob""",19,10
-831,"""Adnan""","""Edgardo""",19,10
-832,"""Adnan""","""Bob""",19,10
-833,"""Adnan""","""Edgardo""",19,10
-834,"""Adnan""","""Bob""",19,10
-835,"""Adnan""","""Edgardo""",19,10
-836,"""Adnan""","""Bob""",19,10
-837,"""Adnan""","""Edgardo""",19,10
-838,"""Adnan""","""Bob""",19,10
-839,"""Adnan""","""Edgardo""",19,10
-840,"""Adnan""","""Bob""",19,10
-841,"""Adnan""","""Edgardo""",19,10
-842,"""Adnan""","""Bob""",19,10
-843,"""Adnan""","""Edgardo""",19,10
-844,"""Adnan""","""Bob""",19,10
-845,"""Adnan""","""Edgardo""",19,10
-846,"""Adnan""","""Bob""",19,10
-847,"""Adnan""","""Edgardo""",19,10
-848,"""Adnan""","""Bob""",19,10
-849,"""Adnan""","""Edgardo""",19,10
-850,"""Adnan""","""Bob""",19,10
-851,"""Adnan""","""Edgardo""",19,10
-852,"""Adnan""","""Bob""",19,10
-853,"""Adnan""","""Edgardo""",19,10
-854,"""Adnan""","""Bob""",19,10
-855,"""Adnan""","""Edgardo""",19,10
-856,"""Adnan""","""Bob""",19,10
-857,"""Adnan""","""Edgardo""",19,10
-858,"""Adnan""","""Bob""",19,10
-859,"""Adnan""","""Edgardo""",19,10
-860,"""Adnan""","""Bob""",19,10
-861,"""Adnan""","""Edgardo""",19,10
-862,"""Adnan""","""Bob""",19,10
-863,"""Adnan""","""Edgardo""",19,10
-864,"""Adnan""","""Bob""",19,10
-865,"""Adnan""","""Edgardo""",19,10
-866,"""Adnan""","""Bob""",19,10
-867,"""Adnan""","""Edgardo""",19,10
-868,"""Adnan""","""Bob""",19,10
-869,"""Adnan""","""Edgardo""",19,10
-870,"""Adnan""","""Bob""",19,10
-871,"""Adnan""","""Edgardo""",19,10
-872,"""Adnan""","""Bob""",19,10
-873,"""Adnan""","""Edgardo""",19,10
-874,"""Adnan""","""Bob""",19,10
-875,"""Adnan""","""Edgardo""",19,10
-876,"""Adnan""","""Bob""",19,10
-877,"""Adnan""","""Edgardo""",19,10
-878,"""Adnan""","""Bob""",19,10
-879,"""Adnan""","""Edgardo""",19,10
-880,"""Adnan""","""Bob""",19,10
-881,"""Adnan""","""Edgardo""",19,10
-882,"""Adnan""","""Bob""",19,10
-883,"""Adnan""","""Edgardo""",19,10
-884,"""Adnan""","""Bob""",19,10
-885,"""Adnan""","""Edgardo""",19,10
-886,"""Adnan""","""Bob""",19,10
-887,"""Adnan""","""Edgardo""",19,10
-888,"""Adnan""","""Bob""",19,10
-889,"""Adnan""","""Edgardo""",19,10
-890,"""Adnan""","""Bob""",19,10
-891,"""Adnan""","""Edgardo""",19,10
-892,"""Adnan""","""Bob""",19,10
-893,"""Adnan""","""Edgardo""",19,10
-894,"""Adnan""","""Bob""",19,10
-895,"""Adnan""","""Edgardo""",19,10
-896,"""Adnan""","""Bob""",19,10
-897,"""Adnan""","""Edgardo""",19,10
-898,"""Adnan""","""Bob""",19,10
-899,"""Adnan""","""Edgardo""",19,10
-900,"""Adnan""","""Bob""",19,10
-901,"""Adnan""","""Edgardo""",19,10
-902,"""Adnan""","""Bob""",19,10
-903,"""Adnan""","""Edgardo""",19,10
-904,"""Adnan""","""Bob""",19,10
-905,"""Adnan""","""Edgardo""",19,10
-906,"""Adnan""","""Bob""",19,10
-907,"""Adnan""","""Edgardo""",19,10
-908,"""Adnan""","""Bob""",19,10
-909,"""Adnan""","""Edgardo""",19,10
-910,"""Adnan""","""Bob""",19,10
-911,"""Adnan""","""Edgardo""",19,10
-912,"""Adnan""","""Bob""",19,10
-913,"""Adnan""","""Edgardo""",19,10
-914,"""Adnan""","""Bob""",19,10
-915,"""Adnan""","""Edgardo""",19,10
-916,"""Adnan""","""Bob""",19,10
-917,"""Adnan""","""Edgardo""",19,10
-918,"""Adnan""","""Bob""",19,10
-919,"""Adnan""","""Edgardo""",19,10
-920,"""Adnan""","""Bob""",19,10
-921,"""Adnan""","""Edgardo""",19,10
-922,"""Adnan""","""Bob""",19,10
-923,"""Adnan""","""Edgardo""",19,10
-924,"""Adnan""","""Bob""",19,10
-925,"""Adnan""","""Edgardo""",19,10
-926,"""Adnan""","""Bob""",19,10
-927,"""Adnan""","""Edgardo""",19,10
-928,"""Adnan""","""Bob""",19,10
-929,"""Adnan""","""Edgardo""",19,10
-930,"""Adnan""","""Bob""",19,10
-931,"""Adnan""","""Edgardo""",19,10
-932,"""Adnan""","""Bob""",19,10
-933,"""Adnan""","""Edgardo""",19,10
-934,"""Adnan""","""Bob""",19,10
-935,"""Adnan""","""Edgardo""",19,10
-936,"""Adnan""","""Bob""",19,10
-937,"""Adnan""","""Edgardo""",19,10
-938,"""Adnan""","""Bob""",19,10
-939,"""Adnan""","""Edgardo""",19,10
-940,"""Adnan""","""Bob""",19,10
-941,"""Adnan""","""Edgardo""",19,10
-942,"""Adnan""","""Bob""",19,10
-943,"""Adnan""","""Edgardo""",19,10
-944,"""Adnan""","""Bob""",19,10
-945,"""Adnan""","""Edgardo""",19,10
-946,"""Adnan""","""Bob""",19,10
-947,"""Adnan""","""Edgardo""",19,10
-948,"""Adnan""","""Bob""",19,10
-949,"""Adnan""","""Edgardo""",19,10
-950,"""Adnan""","""Bob""",19,10
-951,"""Adnan""","""Edgardo""",19,10
-952,"""Adnan""","""Bob""",19,10
-953,"""Adnan""","""Edgardo""",19,10
-954,"""Adnan""","""Bob""",19,10
-955,"""Adnan""","""Edgardo""",19,10
-956,"""Adnan""","""Bob""",19,10
-957,"""Adnan""","""Edgardo""",19,10
-958,"""Adnan""","""Bob""",19,10
-959,"""Adnan""","""Edgardo""",19,10
-960,"""Adnan""","""Bob""",19,10
-961,"""Adnan""","""Edgardo""",19,10
-962,"""Adnan""","""Bob""",19,10
-963,"""Adnan""","""Edgardo""",19,10
-964,"""Adnan""","""Bob""",19,10
-965,"""Adnan""","""Edgardo""",19,10
-966,"""Adnan""","""Bob""",19,10
-967,"""Adnan""","""Edgardo""",19,10
-968,"""Adnan""","""Bob""",19,10
-969,"""Adnan""","""Edgardo""",19,10
-970,"""Adnan""","""Bob""",19,10
-971,"""Adnan""","""Edgardo""",19,10
-972,"""Adnan""","""Bob""",19,10
-973,"""Adnan""","""Edgardo""",19,10
-974,"""Adnan""","""Bob""",19,10
-975,"""Adnan""","""Edgardo""",19,10
-976,"""Adnan""","""Bob""",19,10
-977,"""Adnan""","""Edgardo""",19,10
-978,"""Adnan""","""Bob""",19,10
-979,"""Adnan""","""Edgardo""",19,10
-980,"""Adnan""","""Bob""",19,10
-981,"""Adnan""","""Edgardo""",19,10
-982,"""Adnan""","""Bob""",19,10
-983,"""Adnan""","""Edgardo""",19,10
-984,"""Adnan""","""Bob""",19,10
-985,"""Adnan""","""Edgardo""",19,10
-986,"""Adnan""","""Bob""",19,10
-987,"""Adnan""","""Edgardo""",19,10
-988,"""Adnan""","""Bob""",19,10
-989,"""Adnan""","""Edgardo""",19,10
-990,"""Adnan""","""Bob""",19,10
-991,"""Adnan""","""Edgardo""",19,10
-992,"""Adnan""","""Bob""",19,10
-993,"""Adnan""","""Edgardo""",19,10
-994,"""Adnan""","""Bob""",19,10
-995,"""Adnan""","""Edgardo""",19,10
-996,"""Adnan""","""Bob""",19,10
-997,"""Adnan""","""Edgardo""",19,10
-998,"""Adnan""","""Bob""",19,10
-999,"""Adnan""","""Edgardo""",19,10
-1000,"""Adnan""","""Bob""",19,10
-1001,"""Adnan""","""Edgardo""",19,10
-1002,"""Adnan""","""Bob""",19,10
-1003,"""Adnan""","""Edgardo""",19,10
-1004,"""Adnan""","""Bob""",19,10
-1005,"""Adnan""","""Edgardo""",19,10
-1006,"""Adnan""","""Bob""",19,10
-1007,"""Adnan""","""Edgardo""",19,10
-1008,"""Adnan""","""Bob""",19,10
-1009,"""Adnan""","""Edgardo""",19,10
-1010,"""Adnan""","""Bob""",19,10
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json
deleted file mode 100644
index 7c7c7c5..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "DriverId"
- },
- {
- "no": 1,
- "type": "STRING",
- "length": 20,
- "name": "FirstName"
- },
- {
- "no": 2,
- "type": "STRING",
- "length": 20,
- "name": "LastName"
- },
- {
- "no": 3,
- "type": "FLOAT",
- "length": 4,
- "name": "Age"
- },
- {
- "no": 4,
- "type": "INTEGER",
- "length": 4,
- "name": "NumSeats"
- }
- ],
- "key": 3
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv
deleted file mode 100644
index ce95fe1..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-1, "Purdue1"
-2, "Purdue2"
-3, "Purdue3"
-4, "Purdue4"
-5, "Purdue5"
-6, "Purdue6"
-7, "Purdue7"
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json b/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json
deleted file mode 100644
index f0858c0..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "GroupId"
- },
- {
- "no": 1,
- "type": "STRING",
- "length": 10,
- "name": "GroupName"
- }
- ],
- "key": 0
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv
deleted file mode 100644
index bc08997..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-1," ""Purdue1"""
-2," ""Purdue2"""
-3," ""Purdue3"""
-4," ""Purdue4"""
-5," ""Purdue5"""
-6," ""Purdue6"""
-7," ""Purdue7"""
-8," ""Purdue8"""
-9," ""Purdue9"""
-10," ""Purdue10"""
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json
deleted file mode 100644
index f0858c0..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "GroupId"
- },
- {
- "no": 1,
- "type": "STRING",
- "length": 10,
- "name": "GroupName"
- }
- ],
- "key": 0
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv
deleted file mode 100644
index b6acb3c..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-3, 5, "2/10/2006", "2/13/2006"
-1, 2, "2/12/2006", "2/14/2006"
-9, 1, "2/15/2006", "2/15/2006"
-5, 7, "2/14/2006", "2/18/2006"
-1, 3, "2/15/2006", "2/16/2006"
-2, 6, "2/17/2006", "2/20/2006"
-3, 4, "2/18/2006", "2/19/2006"
-4, 1, "2/19/2006", "2/19/2006"
-2, 7, "2/18/2006", "2/23/2006"
-8, 5, "2/20/2006", "2/22/2006"
-3, 2, "2/24/2006", "2/26/2006"
-6, 6, "2/25/2006", "2/26/2006"
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json b/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json
deleted file mode 100644
index 041754b..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "DriverId"
- },
- {
- "no": 1,
- "type": "INTEGER",
- "length": 4,
- "name": "GroupId"
- },
- {
- "no": 2,
- "type": "STRING",
- "length": 10,
- "name": "FromDate"
- },
- {
- "no": 3,
- "type": "STRING",
- "length": 10,
- "name": "ToDate"
- }
- ],
- "key": 1
-}
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv
deleted file mode 100644
index 338c7fd..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv
+++ /dev/null
@@ -1,1000 +0,0 @@
-1,1," ""2/10/2006"""," ""2/13/2006"""
-2,2," ""2/12/2006"""," ""2/14/2006"""
-3,3," ""2/15/2006"""," ""2/15/2006"""
-4,4," ""2/14/2006"""," ""2/18/2006"""
-5,5," ""2/15/2006"""," ""2/16/2006"""
-6,6," ""2/17/2006"""," ""2/20/2006"""
-7,7," ""2/18/2006"""," ""2/19/2006"""
-8,8," ""2/19/2006"""," ""2/19/2006"""
-9,9," ""2/18/2006"""," ""2/23/2006"""
-10,10," ""2/20/2006"""," ""2/22/2006"""
-11,1," ""2/24/2006"""," ""2/26/2006"""
-12,2," ""2/25/2006"""," ""2/26/2006"""
-13,3," ""2/10/2006"""," ""2/13/2006"""
-14,4," ""2/12/2006"""," ""2/14/2006"""
-15,5," ""2/15/2006"""," ""2/15/2006"""
-16,6," ""2/14/2006"""," ""2/18/2006"""
-17,7," ""2/15/2006"""," ""2/16/2006"""
-18,8," ""2/17/2006"""," ""2/20/2006"""
-19,9," ""2/18/2006"""," ""2/19/2006"""
-20,10," ""2/19/2006"""," ""2/19/2006"""
-21,1," ""2/18/2006"""," ""2/23/2006"""
-22,2," ""2/20/2006"""," ""2/22/2006"""
-23,3," ""2/24/2006"""," ""2/26/2006"""
-24,4," ""2/25/2006"""," ""2/26/2006"""
-25,5," ""2/10/2006"""," ""2/13/2006"""
-26,6," ""2/12/2006"""," ""2/14/2006"""
-27,7," ""2/15/2006"""," ""2/15/2006"""
-28,8," ""2/14/2006"""," ""2/18/2006"""
-29,9," ""2/15/2006"""," ""2/16/2006"""
-30,10," ""2/17/2006"""," ""2/20/2006"""
-31,1," ""2/18/2006"""," ""2/19/2006"""
-32,2," ""2/19/2006"""," ""2/19/2006"""
-33,3," ""2/18/2006"""," ""2/23/2006"""
-34,4," ""2/20/2006"""," ""2/22/2006"""
-35,5," ""2/24/2006"""," ""2/26/2006"""
-36,6," ""2/25/2006"""," ""2/26/2006"""
-37,7," ""2/10/2006"""," ""2/13/2006"""
-38,8," ""2/12/2006"""," ""2/14/2006"""
-39,9," ""2/15/2006"""," ""2/15/2006"""
-40,10," ""2/14/2006"""," ""2/18/2006"""
-41,1," ""2/15/2006"""," ""2/16/2006"""
-42,2," ""2/17/2006"""," ""2/20/2006"""
-43,3," ""2/18/2006"""," ""2/19/2006"""
-44,4," ""2/19/2006"""," ""2/19/2006"""
-45,5," ""2/18/2006"""," ""2/23/2006"""
-46,6," ""2/20/2006"""," ""2/22/2006"""
-47,7," ""2/24/2006"""," ""2/26/2006"""
-48,8," ""2/25/2006"""," ""2/26/2006"""
-49,9," ""2/10/2006"""," ""2/13/2006"""
-50,10," ""2/12/2006"""," ""2/14/2006"""
-51,1," ""2/15/2006"""," ""2/15/2006"""
-52,2," ""2/14/2006"""," ""2/18/2006"""
-53,3," ""2/15/2006"""," ""2/16/2006"""
-54,4," ""2/17/2006"""," ""2/20/2006"""
-55,5," ""2/18/2006"""," ""2/19/2006"""
-56,6," ""2/19/2006"""," ""2/19/2006"""
-57,7," ""2/18/2006"""," ""2/23/2006"""
-58,8," ""2/20/2006"""," ""2/22/2006"""
-59,9," ""2/24/2006"""," ""2/26/2006"""
-60,10," ""2/25/2006"""," ""2/26/2006"""
-61,1," ""2/10/2006"""," ""2/13/2006"""
-62,2," ""2/12/2006"""," ""2/14/2006"""
-63,3," ""2/15/2006"""," ""2/15/2006"""
-64,4," ""2/14/2006"""," ""2/18/2006"""
-65,5," ""2/15/2006"""," ""2/16/2006"""
-66,6," ""2/17/2006"""," ""2/20/2006"""
-67,7," ""2/18/2006"""," ""2/19/2006"""
-68,8," ""2/19/2006"""," ""2/19/2006"""
-69,9," ""2/18/2006"""," ""2/23/2006"""
-70,10," ""2/20/2006"""," ""2/22/2006"""
-71,1," ""2/24/2006"""," ""2/26/2006"""
-72,2," ""2/25/2006"""," ""2/26/2006"""
-73,3," ""2/10/2006"""," ""2/13/2006"""
-74,4," ""2/12/2006"""," ""2/14/2006"""
-75,5," ""2/15/2006"""," ""2/15/2006"""
-76,6," ""2/14/2006"""," ""2/18/2006"""
-77,7," ""2/15/2006"""," ""2/16/2006"""
-78,8," ""2/17/2006"""," ""2/20/2006"""
-79,9," ""2/18/2006"""," ""2/19/2006"""
-80,10," ""2/19/2006"""," ""2/19/2006"""
-81,1," ""2/18/2006"""," ""2/23/2006"""
-82,2," ""2/20/2006"""," ""2/22/2006"""
-83,3," ""2/24/2006"""," ""2/26/2006"""
-84,4," ""2/25/2006"""," ""2/26/2006"""
-85,5," ""2/10/2006"""," ""2/13/2006"""
-86,6," ""2/12/2006"""," ""2/14/2006"""
-87,7," ""2/15/2006"""," ""2/15/2006"""
-88,8," ""2/14/2006"""," ""2/18/2006"""
-89,9," ""2/15/2006"""," ""2/16/2006"""
-90,10," ""2/17/2006"""," ""2/20/2006"""
-91,1," ""2/18/2006"""," ""2/19/2006"""
-92,2," ""2/19/2006"""," ""2/19/2006"""
-93,3," ""2/18/2006"""," ""2/23/2006"""
-94,4," ""2/20/2006"""," ""2/22/2006"""
-95,5," ""2/24/2006"""," ""2/26/2006"""
-96,6," ""2/25/2006"""," ""2/26/2006"""
-97,7," ""2/10/2006"""," ""2/13/2006"""
-98,8," ""2/12/2006"""," ""2/14/2006"""
-99,9," ""2/15/2006"""," ""2/15/2006"""
-100,10," ""2/14/2006"""," ""2/18/2006"""
-101,1," ""2/15/2006"""," ""2/16/2006"""
-102,2," ""2/17/2006"""," ""2/20/2006"""
-103,3," ""2/18/2006"""," ""2/19/2006"""
-104,4," ""2/19/2006"""," ""2/19/2006"""
-105,5," ""2/18/2006"""," ""2/23/2006"""
-106,6," ""2/20/2006"""," ""2/22/2006"""
-107,7," ""2/24/2006"""," ""2/26/2006"""
-108,8," ""2/25/2006"""," ""2/26/2006"""
-109,9," ""2/10/2006"""," ""2/13/2006"""
-110,10," ""2/12/2006"""," ""2/14/2006"""
-111,1," ""2/15/2006"""," ""2/15/2006"""
-112,2," ""2/14/2006"""," ""2/18/2006"""
-113,3," ""2/15/2006"""," ""2/16/2006"""
-114,4," ""2/17/2006"""," ""2/20/2006"""
-115,5," ""2/18/2006"""," ""2/19/2006"""
-116,6," ""2/19/2006"""," ""2/19/2006"""
-117,7," ""2/18/2006"""," ""2/23/2006"""
-118,8," ""2/20/2006"""," ""2/22/2006"""
-119,9," ""2/24/2006"""," ""2/26/2006"""
-120,10," ""2/25/2006"""," ""2/26/2006"""
-121,1," ""2/10/2006"""," ""2/13/2006"""
-122,2," ""2/12/2006"""," ""2/14/2006"""
-123,3," ""2/15/2006"""," ""2/15/2006"""
-124,4," ""2/14/2006"""," ""2/18/2006"""
-125,5," ""2/15/2006"""," ""2/16/2006"""
-126,6," ""2/17/2006"""," ""2/20/2006"""
-127,7," ""2/18/2006"""," ""2/19/2006"""
-128,8," ""2/19/2006"""," ""2/19/2006"""
-129,9," ""2/18/2006"""," ""2/23/2006"""
-130,10," ""2/20/2006"""," ""2/22/2006"""
-131,1," ""2/24/2006"""," ""2/26/2006"""
-132,2," ""2/25/2006"""," ""2/26/2006"""
-133,3," ""2/10/2006"""," ""2/13/2006"""
-134,4," ""2/12/2006"""," ""2/14/2006"""
-135,5," ""2/15/2006"""," ""2/15/2006"""
-136,6," ""2/14/2006"""," ""2/18/2006"""
-137,7," ""2/15/2006"""," ""2/16/2006"""
-138,8," ""2/17/2006"""," ""2/20/2006"""
-139,9," ""2/18/2006"""," ""2/19/2006"""
-140,10," ""2/19/2006"""," ""2/19/2006"""
-141,1," ""2/18/2006"""," ""2/23/2006"""
-142,2," ""2/20/2006"""," ""2/22/2006"""
-143,3," ""2/24/2006"""," ""2/26/2006"""
-144,4," ""2/25/2006"""," ""2/26/2006"""
-145,5," ""2/10/2006"""," ""2/13/2006"""
-146,6," ""2/12/2006"""," ""2/14/2006"""
-147,7," ""2/15/2006"""," ""2/15/2006"""
-148,8," ""2/14/2006"""," ""2/18/2006"""
-149,9," ""2/15/2006"""," ""2/16/2006"""
-150,10," ""2/17/2006"""," ""2/20/2006"""
-151,1," ""2/18/2006"""," ""2/19/2006"""
-152,2," ""2/19/2006"""," ""2/19/2006"""
-153,3," ""2/18/2006"""," ""2/23/2006"""
-154,4," ""2/20/2006"""," ""2/22/2006"""
-155,5," ""2/24/2006"""," ""2/26/2006"""
-156,6," ""2/25/2006"""," ""2/26/2006"""
-157,7," ""2/10/2006"""," ""2/13/2006"""
-158,8," ""2/12/2006"""," ""2/14/2006"""
-159,9," ""2/15/2006"""," ""2/15/2006"""
-160,10," ""2/14/2006"""," ""2/18/2006"""
-161,1," ""2/15/2006"""," ""2/16/2006"""
-162,2," ""2/17/2006"""," ""2/20/2006"""
-163,3," ""2/18/2006"""," ""2/19/2006"""
-164,4," ""2/19/2006"""," ""2/19/2006"""
-165,5," ""2/18/2006"""," ""2/23/2006"""
-166,6," ""2/20/2006"""," ""2/22/2006"""
-167,7," ""2/24/2006"""," ""2/26/2006"""
-168,8," ""2/25/2006"""," ""2/26/2006"""
-169,9," ""2/10/2006"""," ""2/13/2006"""
-170,10," ""2/12/2006"""," ""2/14/2006"""
-171,1," ""2/15/2006"""," ""2/15/2006"""
-172,2," ""2/14/2006"""," ""2/18/2006"""
-173,3," ""2/15/2006"""," ""2/16/2006"""
-174,4," ""2/17/2006"""," ""2/20/2006"""
-175,5," ""2/18/2006"""," ""2/19/2006"""
-176,6," ""2/19/2006"""," ""2/19/2006"""
-177,7," ""2/18/2006"""," ""2/23/2006"""
-178,8," ""2/20/2006"""," ""2/22/2006"""
-179,9," ""2/24/2006"""," ""2/26/2006"""
-180,10," ""2/25/2006"""," ""2/26/2006"""
-181,1," ""2/10/2006"""," ""2/13/2006"""
-182,2," ""2/12/2006"""," ""2/14/2006"""
-183,3," ""2/15/2006"""," ""2/15/2006"""
-184,4," ""2/14/2006"""," ""2/18/2006"""
-185,5," ""2/15/2006"""," ""2/16/2006"""
-186,6," ""2/17/2006"""," ""2/20/2006"""
-187,7," ""2/18/2006"""," ""2/19/2006"""
-188,8," ""2/19/2006"""," ""2/19/2006"""
-189,9," ""2/18/2006"""," ""2/23/2006"""
-190,10," ""2/20/2006"""," ""2/22/2006"""
-191,1," ""2/24/2006"""," ""2/26/2006"""
-192,2," ""2/25/2006"""," ""2/26/2006"""
-193,3," ""2/10/2006"""," ""2/13/2006"""
-194,4," ""2/12/2006"""," ""2/14/2006"""
-195,5," ""2/15/2006"""," ""2/15/2006"""
-196,6," ""2/14/2006"""," ""2/18/2006"""
-197,7," ""2/15/2006"""," ""2/16/2006"""
-198,8," ""2/17/2006"""," ""2/20/2006"""
-199,9," ""2/18/2006"""," ""2/19/2006"""
-200,10," ""2/19/2006"""," ""2/19/2006"""
-201,1," ""2/18/2006"""," ""2/23/2006"""
-202,2," ""2/20/2006"""," ""2/22/2006"""
-203,3," ""2/24/2006"""," ""2/26/2006"""
-204,4," ""2/25/2006"""," ""2/26/2006"""
-205,5," ""2/10/2006"""," ""2/13/2006"""
-206,6," ""2/12/2006"""," ""2/14/2006"""
-207,7," ""2/15/2006"""," ""2/15/2006"""
-208,8," ""2/14/2006"""," ""2/18/2006"""
-209,9," ""2/15/2006"""," ""2/16/2006"""
-210,10," ""2/17/2006"""," ""2/20/2006"""
-211,1," ""2/18/2006"""," ""2/19/2006"""
-212,2," ""2/19/2006"""," ""2/19/2006"""
-213,3," ""2/18/2006"""," ""2/23/2006"""
-214,4," ""2/20/2006"""," ""2/22/2006"""
-215,5," ""2/24/2006"""," ""2/26/2006"""
-216,6," ""2/25/2006"""," ""2/26/2006"""
-217,7," ""2/10/2006"""," ""2/13/2006"""
-218,8," ""2/12/2006"""," ""2/14/2006"""
-219,9," ""2/15/2006"""," ""2/15/2006"""
-220,10," ""2/14/2006"""," ""2/18/2006"""
-221,1," ""2/15/2006"""," ""2/16/2006"""
-222,2," ""2/17/2006"""," ""2/20/2006"""
-223,3," ""2/18/2006"""," ""2/19/2006"""
-224,4," ""2/19/2006"""," ""2/19/2006"""
-225,5," ""2/18/2006"""," ""2/23/2006"""
-226,6," ""2/20/2006"""," ""2/22/2006"""
-227,7," ""2/24/2006"""," ""2/26/2006"""
-228,8," ""2/25/2006"""," ""2/26/2006"""
-229,9," ""2/10/2006"""," ""2/13/2006"""
-230,10," ""2/12/2006"""," ""2/14/2006"""
-231,1," ""2/15/2006"""," ""2/15/2006"""
-232,2," ""2/14/2006"""," ""2/18/2006"""
-233,3," ""2/15/2006"""," ""2/16/2006"""
-234,4," ""2/17/2006"""," ""2/20/2006"""
-235,5," ""2/18/2006"""," ""2/19/2006"""
-236,6," ""2/19/2006"""," ""2/19/2006"""
-237,7," ""2/18/2006"""," ""2/23/2006"""
-238,8," ""2/20/2006"""," ""2/22/2006"""
-239,9," ""2/24/2006"""," ""2/26/2006"""
-240,10," ""2/25/2006"""," ""2/26/2006"""
-241,1," ""2/10/2006"""," ""2/13/2006"""
-242,2," ""2/12/2006"""," ""2/14/2006"""
-243,3," ""2/15/2006"""," ""2/15/2006"""
-244,4," ""2/14/2006"""," ""2/18/2006"""
-245,5," ""2/15/2006"""," ""2/16/2006"""
-246,6," ""2/17/2006"""," ""2/20/2006"""
-247,7," ""2/18/2006"""," ""2/19/2006"""
-248,8," ""2/19/2006"""," ""2/19/2006"""
-249,9," ""2/18/2006"""," ""2/23/2006"""
-250,10," ""2/20/2006"""," ""2/22/2006"""
-251,1," ""2/24/2006"""," ""2/26/2006"""
-252,2," ""2/25/2006"""," ""2/26/2006"""
-253,3," ""2/10/2006"""," ""2/13/2006"""
-254,4," ""2/12/2006"""," ""2/14/2006"""
-255,5," ""2/15/2006"""," ""2/15/2006"""
-256,6," ""2/14/2006"""," ""2/18/2006"""
-257,7," ""2/15/2006"""," ""2/16/2006"""
-258,8," ""2/17/2006"""," ""2/20/2006"""
-259,9," ""2/18/2006"""," ""2/19/2006"""
-260,10," ""2/19/2006"""," ""2/19/2006"""
-261,1," ""2/18/2006"""," ""2/23/2006"""
-262,2," ""2/20/2006"""," ""2/22/2006"""
-263,3," ""2/24/2006"""," ""2/26/2006"""
-264,4," ""2/25/2006"""," ""2/26/2006"""
-265,5," ""2/10/2006"""," ""2/13/2006"""
-266,6," ""2/12/2006"""," ""2/14/2006"""
-267,7," ""2/15/2006"""," ""2/15/2006"""
-268,8," ""2/14/2006"""," ""2/18/2006"""
-269,9," ""2/15/2006"""," ""2/16/2006"""
-270,10," ""2/17/2006"""," ""2/20/2006"""
-271,1," ""2/18/2006"""," ""2/19/2006"""
-272,2," ""2/19/2006"""," ""2/19/2006"""
-273,3," ""2/18/2006"""," ""2/23/2006"""
-274,4," ""2/20/2006"""," ""2/22/2006"""
-275,5," ""2/24/2006"""," ""2/26/2006"""
-276,6," ""2/25/2006"""," ""2/26/2006"""
-277,7," ""2/10/2006"""," ""2/13/2006"""
-278,8," ""2/12/2006"""," ""2/14/2006"""
-279,9," ""2/15/2006"""," ""2/15/2006"""
-280,10," ""2/14/2006"""," ""2/18/2006"""
-281,1," ""2/15/2006"""," ""2/16/2006"""
-282,2," ""2/17/2006"""," ""2/20/2006"""
-283,3," ""2/18/2006"""," ""2/19/2006"""
-284,4," ""2/19/2006"""," ""2/19/2006"""
-285,5," ""2/18/2006"""," ""2/23/2006"""
-286,6," ""2/20/2006"""," ""2/22/2006"""
-287,7," ""2/24/2006"""," ""2/26/2006"""
-288,8," ""2/25/2006"""," ""2/26/2006"""
-289,9," ""2/10/2006"""," ""2/13/2006"""
-290,10," ""2/12/2006"""," ""2/14/2006"""
-291,1," ""2/15/2006"""," ""2/15/2006"""
-292,2," ""2/14/2006"""," ""2/18/2006"""
-293,3," ""2/15/2006"""," ""2/16/2006"""
-294,4," ""2/17/2006"""," ""2/20/2006"""
-295,5," ""2/18/2006"""," ""2/19/2006"""
-296,6," ""2/19/2006"""," ""2/19/2006"""
-297,7," ""2/18/2006"""," ""2/23/2006"""
-298,8," ""2/20/2006"""," ""2/22/2006"""
-299,9," ""2/24/2006"""," ""2/26/2006"""
-300,10," ""2/25/2006"""," ""2/26/2006"""
-301,1," ""2/10/2006"""," ""2/13/2006"""
-302,2," ""2/12/2006"""," ""2/14/2006"""
-303,3," ""2/15/2006"""," ""2/15/2006"""
-304,4," ""2/14/2006"""," ""2/18/2006"""
-305,5," ""2/15/2006"""," ""2/16/2006"""
-306,6," ""2/17/2006"""," ""2/20/2006"""
-307,7," ""2/18/2006"""," ""2/19/2006"""
-308,8," ""2/19/2006"""," ""2/19/2006"""
-309,9," ""2/18/2006"""," ""2/23/2006"""
-310,10," ""2/20/2006"""," ""2/22/2006"""
-311,1," ""2/24/2006"""," ""2/26/2006"""
-312,2," ""2/25/2006"""," ""2/26/2006"""
-313,3," ""2/10/2006"""," ""2/13/2006"""
-314,4," ""2/12/2006"""," ""2/14/2006"""
-315,5," ""2/15/2006"""," ""2/15/2006"""
-316,6," ""2/14/2006"""," ""2/18/2006"""
-317,7," ""2/15/2006"""," ""2/16/2006"""
-318,8," ""2/17/2006"""," ""2/20/2006"""
-319,9," ""2/18/2006"""," ""2/19/2006"""
-320,10," ""2/19/2006"""," ""2/19/2006"""
-321,1," ""2/18/2006"""," ""2/23/2006"""
-322,2," ""2/20/2006"""," ""2/22/2006"""
-323,3," ""2/24/2006"""," ""2/26/2006"""
-324,4," ""2/25/2006"""," ""2/26/2006"""
-325,5," ""2/10/2006"""," ""2/13/2006"""
-326,6," ""2/12/2006"""," ""2/14/2006"""
-327,7," ""2/15/2006"""," ""2/15/2006"""
-328,8," ""2/14/2006"""," ""2/18/2006"""
-329,9," ""2/15/2006"""," ""2/16/2006"""
-330,10," ""2/17/2006"""," ""2/20/2006"""
-331,1," ""2/18/2006"""," ""2/19/2006"""
-332,2," ""2/19/2006"""," ""2/19/2006"""
-333,3," ""2/18/2006"""," ""2/23/2006"""
-334,4," ""2/20/2006"""," ""2/22/2006"""
-335,5," ""2/24/2006"""," ""2/26/2006"""
-336,6," ""2/25/2006"""," ""2/26/2006"""
-337,7," ""2/10/2006"""," ""2/13/2006"""
-338,8," ""2/12/2006"""," ""2/14/2006"""
-339,9," ""2/15/2006"""," ""2/15/2006"""
-340,10," ""2/14/2006"""," ""2/18/2006"""
-341,1," ""2/15/2006"""," ""2/16/2006"""
-342,2," ""2/17/2006"""," ""2/20/2006"""
-343,3," ""2/18/2006"""," ""2/19/2006"""
-344,4," ""2/19/2006"""," ""2/19/2006"""
-345,5," ""2/18/2006"""," ""2/23/2006"""
-346,6," ""2/20/2006"""," ""2/22/2006"""
-347,7," ""2/24/2006"""," ""2/26/2006"""
-348,8," ""2/25/2006"""," ""2/26/2006"""
-349,9," ""2/10/2006"""," ""2/13/2006"""
-350,10," ""2/12/2006"""," ""2/14/2006"""
-351,1," ""2/15/2006"""," ""2/15/2006"""
-352,2," ""2/14/2006"""," ""2/18/2006"""
-353,3," ""2/15/2006"""," ""2/16/2006"""
-354,4," ""2/17/2006"""," ""2/20/2006"""
-355,5," ""2/18/2006"""," ""2/19/2006"""
-356,6," ""2/19/2006"""," ""2/19/2006"""
-357,7," ""2/18/2006"""," ""2/23/2006"""
-358,8," ""2/20/2006"""," ""2/22/2006"""
-359,9," ""2/24/2006"""," ""2/26/2006"""
-360,10," ""2/25/2006"""," ""2/26/2006"""
-361,1," ""2/10/2006"""," ""2/13/2006"""
-362,2," ""2/12/2006"""," ""2/14/2006"""
-363,3," ""2/15/2006"""," ""2/15/2006"""
-364,4," ""2/14/2006"""," ""2/18/2006"""
-365,5," ""2/15/2006"""," ""2/16/2006"""
-366,6," ""2/17/2006"""," ""2/20/2006"""
-367,7," ""2/18/2006"""," ""2/19/2006"""
-368,8," ""2/19/2006"""," ""2/19/2006"""
-369,9," ""2/18/2006"""," ""2/23/2006"""
-370,10," ""2/20/2006"""," ""2/22/2006"""
-371,1," ""2/24/2006"""," ""2/26/2006"""
-372,2," ""2/25/2006"""," ""2/26/2006"""
-373,3," ""2/10/2006"""," ""2/13/2006"""
-374,4," ""2/12/2006"""," ""2/14/2006"""
-375,5," ""2/15/2006"""," ""2/15/2006"""
-376,6," ""2/14/2006"""," ""2/18/2006"""
-377,7," ""2/15/2006"""," ""2/16/2006"""
-378,8," ""2/17/2006"""," ""2/20/2006"""
-379,9," ""2/18/2006"""," ""2/19/2006"""
-380,10," ""2/19/2006"""," ""2/19/2006"""
-381,1," ""2/18/2006"""," ""2/23/2006"""
-382,2," ""2/20/2006"""," ""2/22/2006"""
-383,3," ""2/24/2006"""," ""2/26/2006"""
-384,4," ""2/25/2006"""," ""2/26/2006"""
-385,5," ""2/10/2006"""," ""2/13/2006"""
-386,6," ""2/12/2006"""," ""2/14/2006"""
-387,7," ""2/15/2006"""," ""2/15/2006"""
-388,8," ""2/14/2006"""," ""2/18/2006"""
-389,9," ""2/15/2006"""," ""2/16/2006"""
-390,10," ""2/17/2006"""," ""2/20/2006"""
-391,1," ""2/18/2006"""," ""2/19/2006"""
-392,2," ""2/19/2006"""," ""2/19/2006"""
-393,3," ""2/18/2006"""," ""2/23/2006"""
-394,4," ""2/20/2006"""," ""2/22/2006"""
-395,5," ""2/24/2006"""," ""2/26/2006"""
-396,6," ""2/25/2006"""," ""2/26/2006"""
-397,7," ""2/10/2006"""," ""2/13/2006"""
-398,8," ""2/12/2006"""," ""2/14/2006"""
-399,9," ""2/15/2006"""," ""2/15/2006"""
-400,10," ""2/14/2006"""," ""2/18/2006"""
-401,1," ""2/15/2006"""," ""2/16/2006"""
-402,2," ""2/17/2006"""," ""2/20/2006"""
-403,3," ""2/18/2006"""," ""2/19/2006"""
-404,4," ""2/19/2006"""," ""2/19/2006"""
-405,5," ""2/18/2006"""," ""2/23/2006"""
-406,6," ""2/20/2006"""," ""2/22/2006"""
-407,7," ""2/24/2006"""," ""2/26/2006"""
-408,8," ""2/25/2006"""," ""2/26/2006"""
-409,9," ""2/10/2006"""," ""2/13/2006"""
-410,10," ""2/12/2006"""," ""2/14/2006"""
-411,1," ""2/15/2006"""," ""2/15/2006"""
-412,2," ""2/14/2006"""," ""2/18/2006"""
-413,3," ""2/15/2006"""," ""2/16/2006"""
-414,4," ""2/17/2006"""," ""2/20/2006"""
-415,5," ""2/18/2006"""," ""2/19/2006"""
-416,6," ""2/19/2006"""," ""2/19/2006"""
-417,7," ""2/18/2006"""," ""2/23/2006"""
-418,8," ""2/20/2006"""," ""2/22/2006"""
-419,9," ""2/24/2006"""," ""2/26/2006"""
-420,10," ""2/25/2006"""," ""2/26/2006"""
-421,1," ""2/10/2006"""," ""2/13/2006"""
-422,2," ""2/12/2006"""," ""2/14/2006"""
-423,3," ""2/15/2006"""," ""2/15/2006"""
-424,4," ""2/14/2006"""," ""2/18/2006"""
-425,5," ""2/15/2006"""," ""2/16/2006"""
-426,6," ""2/17/2006"""," ""2/20/2006"""
-427,7," ""2/18/2006"""," ""2/19/2006"""
-428,8," ""2/19/2006"""," ""2/19/2006"""
-429,9," ""2/18/2006"""," ""2/23/2006"""
-430,10," ""2/20/2006"""," ""2/22/2006"""
-431,1," ""2/24/2006"""," ""2/26/2006"""
-432,2," ""2/25/2006"""," ""2/26/2006"""
-433,3," ""2/10/2006"""," ""2/13/2006"""
-434,4," ""2/12/2006"""," ""2/14/2006"""
-435,5," ""2/15/2006"""," ""2/15/2006"""
-436,6," ""2/14/2006"""," ""2/18/2006"""
-437,7," ""2/15/2006"""," ""2/16/2006"""
-438,8," ""2/17/2006"""," ""2/20/2006"""
-439,9," ""2/18/2006"""," ""2/19/2006"""
-440,10," ""2/19/2006"""," ""2/19/2006"""
-441,1," ""2/18/2006"""," ""2/23/2006"""
-442,2," ""2/20/2006"""," ""2/22/2006"""
-443,3," ""2/24/2006"""," ""2/26/2006"""
-444,4," ""2/25/2006"""," ""2/26/2006"""
-445,5," ""2/10/2006"""," ""2/13/2006"""
-446,6," ""2/12/2006"""," ""2/14/2006"""
-447,7," ""2/15/2006"""," ""2/15/2006"""
-448,8," ""2/14/2006"""," ""2/18/2006"""
-449,9," ""2/15/2006"""," ""2/16/2006"""
-450,10," ""2/17/2006"""," ""2/20/2006"""
-451,1," ""2/18/2006"""," ""2/19/2006"""
-452,2," ""2/19/2006"""," ""2/19/2006"""
-453,3," ""2/18/2006"""," ""2/23/2006"""
-454,4," ""2/20/2006"""," ""2/22/2006"""
-455,5," ""2/24/2006"""," ""2/26/2006"""
-456,6," ""2/25/2006"""," ""2/26/2006"""
-457,7," ""2/10/2006"""," ""2/13/2006"""
-458,8," ""2/12/2006"""," ""2/14/2006"""
-459,9," ""2/15/2006"""," ""2/15/2006"""
-460,10," ""2/14/2006"""," ""2/18/2006"""
-461,1," ""2/15/2006"""," ""2/16/2006"""
-462,2," ""2/17/2006"""," ""2/20/2006"""
-463,3," ""2/18/2006"""," ""2/19/2006"""
-464,4," ""2/19/2006"""," ""2/19/2006"""
-465,5," ""2/18/2006"""," ""2/23/2006"""
-466,6," ""2/20/2006"""," ""2/22/2006"""
-467,7," ""2/24/2006"""," ""2/26/2006"""
-468,8," ""2/25/2006"""," ""2/26/2006"""
-469,9," ""2/10/2006"""," ""2/13/2006"""
-470,10," ""2/12/2006"""," ""2/14/2006"""
-471,1," ""2/15/2006"""," ""2/15/2006"""
-472,2," ""2/14/2006"""," ""2/18/2006"""
-473,3," ""2/15/2006"""," ""2/16/2006"""
-474,4," ""2/17/2006"""," ""2/20/2006"""
-475,5," ""2/18/2006"""," ""2/19/2006"""
-476,6," ""2/19/2006"""," ""2/19/2006"""
-477,7," ""2/18/2006"""," ""2/23/2006"""
-478,8," ""2/20/2006"""," ""2/22/2006"""
-479,9," ""2/24/2006"""," ""2/26/2006"""
-480,10," ""2/25/2006"""," ""2/26/2006"""
-481,1," ""2/10/2006"""," ""2/13/2006"""
-482,2," ""2/12/2006"""," ""2/14/2006"""
-483,3," ""2/15/2006"""," ""2/15/2006"""
-484,4," ""2/14/2006"""," ""2/18/2006"""
-485,5," ""2/15/2006"""," ""2/16/2006"""
-486,6," ""2/17/2006"""," ""2/20/2006"""
-487,7," ""2/18/2006"""," ""2/19/2006"""
-488,8," ""2/19/2006"""," ""2/19/2006"""
-489,9," ""2/18/2006"""," ""2/23/2006"""
-490,10," ""2/20/2006"""," ""2/22/2006"""
-491,1," ""2/24/2006"""," ""2/26/2006"""
-492,2," ""2/25/2006"""," ""2/26/2006"""
-493,3," ""2/10/2006"""," ""2/13/2006"""
-494,4," ""2/12/2006"""," ""2/14/2006"""
-495,5," ""2/15/2006"""," ""2/15/2006"""
-496,6," ""2/14/2006"""," ""2/18/2006"""
-497,7," ""2/15/2006"""," ""2/16/2006"""
-498,8," ""2/17/2006"""," ""2/20/2006"""
-499,9," ""2/18/2006"""," ""2/19/2006"""
-500,10," ""2/19/2006"""," ""2/19/2006"""
-501,1," ""2/18/2006"""," ""2/23/2006"""
-502,2," ""2/20/2006"""," ""2/22/2006"""
-503,3," ""2/24/2006"""," ""2/26/2006"""
-504,4," ""2/25/2006"""," ""2/26/2006"""
-505,5," ""2/10/2006"""," ""2/13/2006"""
-506,6," ""2/12/2006"""," ""2/14/2006"""
-507,7," ""2/15/2006"""," ""2/15/2006"""
-508,8," ""2/14/2006"""," ""2/18/2006"""
-509,9," ""2/15/2006"""," ""2/16/2006"""
-510,10," ""2/17/2006"""," ""2/20/2006"""
-511,1," ""2/18/2006"""," ""2/19/2006"""
-512,2," ""2/19/2006"""," ""2/19/2006"""
-513,3," ""2/18/2006"""," ""2/23/2006"""
-514,4," ""2/20/2006"""," ""2/22/2006"""
-515,5," ""2/24/2006"""," ""2/26/2006"""
-516,6," ""2/25/2006"""," ""2/26/2006"""
-517,7," ""2/10/2006"""," ""2/13/2006"""
-518,8," ""2/12/2006"""," ""2/14/2006"""
-519,9," ""2/15/2006"""," ""2/15/2006"""
-520,10," ""2/14/2006"""," ""2/18/2006"""
-521,1," ""2/15/2006"""," ""2/16/2006"""
-522,2," ""2/17/2006"""," ""2/20/2006"""
-523,3," ""2/18/2006"""," ""2/19/2006"""
-524,4," ""2/19/2006"""," ""2/19/2006"""
-525,5," ""2/18/2006"""," ""2/23/2006"""
-526,6," ""2/20/2006"""," ""2/22/2006"""
-527,7," ""2/24/2006"""," ""2/26/2006"""
-528,8," ""2/25/2006"""," ""2/26/2006"""
-529,9," ""2/10/2006"""," ""2/13/2006"""
-530,10," ""2/12/2006"""," ""2/14/2006"""
-531,1," ""2/15/2006"""," ""2/15/2006"""
-532,2," ""2/14/2006"""," ""2/18/2006"""
-533,3," ""2/15/2006"""," ""2/16/2006"""
-534,4," ""2/17/2006"""," ""2/20/2006"""
-535,5," ""2/18/2006"""," ""2/19/2006"""
-536,6," ""2/19/2006"""," ""2/19/2006"""
-537,7," ""2/18/2006"""," ""2/23/2006"""
-538,8," ""2/20/2006"""," ""2/22/2006"""
-539,9," ""2/24/2006"""," ""2/26/2006"""
-540,10," ""2/25/2006"""," ""2/26/2006"""
-541,1," ""2/10/2006"""," ""2/13/2006"""
-542,2," ""2/12/2006"""," ""2/14/2006"""
-543,3," ""2/15/2006"""," ""2/15/2006"""
-544,4," ""2/14/2006"""," ""2/18/2006"""
-545,5," ""2/15/2006"""," ""2/16/2006"""
-546,6," ""2/17/2006"""," ""2/20/2006"""
-547,7," ""2/18/2006"""," ""2/19/2006"""
-548,8," ""2/19/2006"""," ""2/19/2006"""
-549,9," ""2/18/2006"""," ""2/23/2006"""
-550,10," ""2/20/2006"""," ""2/22/2006"""
-551,1," ""2/24/2006"""," ""2/26/2006"""
-552,2," ""2/25/2006"""," ""2/26/2006"""
-553,3," ""2/10/2006"""," ""2/13/2006"""
-554,4," ""2/12/2006"""," ""2/14/2006"""
-555,5," ""2/15/2006"""," ""2/15/2006"""
-556,6," ""2/14/2006"""," ""2/18/2006"""
-557,7," ""2/15/2006"""," ""2/16/2006"""
-558,8," ""2/17/2006"""," ""2/20/2006"""
-559,9," ""2/18/2006"""," ""2/19/2006"""
-560,10," ""2/19/2006"""," ""2/19/2006"""
-561,1," ""2/18/2006"""," ""2/23/2006"""
-562,2," ""2/20/2006"""," ""2/22/2006"""
-563,3," ""2/24/2006"""," ""2/26/2006"""
-564,4," ""2/25/2006"""," ""2/26/2006"""
-565,5," ""2/10/2006"""," ""2/13/2006"""
-566,6," ""2/12/2006"""," ""2/14/2006"""
-567,7," ""2/15/2006"""," ""2/15/2006"""
-568,8," ""2/14/2006"""," ""2/18/2006"""
-569,9," ""2/15/2006"""," ""2/16/2006"""
-570,10," ""2/17/2006"""," ""2/20/2006"""
-571,1," ""2/18/2006"""," ""2/19/2006"""
-572,2," ""2/19/2006"""," ""2/19/2006"""
-573,3," ""2/18/2006"""," ""2/23/2006"""
-574,4," ""2/20/2006"""," ""2/22/2006"""
-575,5," ""2/24/2006"""," ""2/26/2006"""
-576,6," ""2/25/2006"""," ""2/26/2006"""
-577,7," ""2/10/2006"""," ""2/13/2006"""
-578,8," ""2/12/2006"""," ""2/14/2006"""
-579,9," ""2/15/2006"""," ""2/15/2006"""
-580,10," ""2/14/2006"""," ""2/18/2006"""
-581,1," ""2/15/2006"""," ""2/16/2006"""
-582,2," ""2/17/2006"""," ""2/20/2006"""
-583,3," ""2/18/2006"""," ""2/19/2006"""
-584,4," ""2/19/2006"""," ""2/19/2006"""
-585,5," ""2/18/2006"""," ""2/23/2006"""
-586,6," ""2/20/2006"""," ""2/22/2006"""
-587,7," ""2/24/2006"""," ""2/26/2006"""
-588,8," ""2/25/2006"""," ""2/26/2006"""
-589,9," ""2/10/2006"""," ""2/13/2006"""
-590,10," ""2/12/2006"""," ""2/14/2006"""
-591,1," ""2/15/2006"""," ""2/15/2006"""
-592,2," ""2/14/2006"""," ""2/18/2006"""
-593,3," ""2/15/2006"""," ""2/16/2006"""
-594,4," ""2/17/2006"""," ""2/20/2006"""
-595,5," ""2/18/2006"""," ""2/19/2006"""
-596,6," ""2/19/2006"""," ""2/19/2006"""
-597,7," ""2/18/2006"""," ""2/23/2006"""
-598,8," ""2/20/2006"""," ""2/22/2006"""
-599,9," ""2/24/2006"""," ""2/26/2006"""
-600,10," ""2/25/2006"""," ""2/26/2006"""
-601,1," ""2/10/2006"""," ""2/13/2006"""
-602,2," ""2/12/2006"""," ""2/14/2006"""
-603,3," ""2/15/2006"""," ""2/15/2006"""
-604,4," ""2/14/2006"""," ""2/18/2006"""
-605,5," ""2/15/2006"""," ""2/16/2006"""
-606,6," ""2/17/2006"""," ""2/20/2006"""
-607,7," ""2/18/2006"""," ""2/19/2006"""
-608,8," ""2/19/2006"""," ""2/19/2006"""
-609,9," ""2/18/2006"""," ""2/23/2006"""
-610,10," ""2/20/2006"""," ""2/22/2006"""
-611,1," ""2/24/2006"""," ""2/26/2006"""
-612,2," ""2/25/2006"""," ""2/26/2006"""
-613,3," ""2/10/2006"""," ""2/13/2006"""
-614,4," ""2/12/2006"""," ""2/14/2006"""
-615,5," ""2/15/2006"""," ""2/15/2006"""
-616,6," ""2/14/2006"""," ""2/18/2006"""
-617,7," ""2/15/2006"""," ""2/16/2006"""
-618,8," ""2/17/2006"""," ""2/20/2006"""
-619,9," ""2/18/2006"""," ""2/19/2006"""
-620,10," ""2/19/2006"""," ""2/19/2006"""
-621,1," ""2/18/2006"""," ""2/23/2006"""
-622,2," ""2/20/2006"""," ""2/22/2006"""
-623,3," ""2/24/2006"""," ""2/26/2006"""
-624,4," ""2/25/2006"""," ""2/26/2006"""
-625,5," ""2/10/2006"""," ""2/13/2006"""
-626,6," ""2/12/2006"""," ""2/14/2006"""
-627,7," ""2/15/2006"""," ""2/15/2006"""
-628,8," ""2/14/2006"""," ""2/18/2006"""
-629,9," ""2/15/2006"""," ""2/16/2006"""
-630,10," ""2/17/2006"""," ""2/20/2006"""
-631,1," ""2/18/2006"""," ""2/19/2006"""
-632,2," ""2/19/2006"""," ""2/19/2006"""
-633,3," ""2/18/2006"""," ""2/23/2006"""
-634,4," ""2/20/2006"""," ""2/22/2006"""
-635,5," ""2/24/2006"""," ""2/26/2006"""
-636,6," ""2/25/2006"""," ""2/26/2006"""
-637,7," ""2/10/2006"""," ""2/13/2006"""
-638,8," ""2/12/2006"""," ""2/14/2006"""
-639,9," ""2/15/2006"""," ""2/15/2006"""
-640,10," ""2/14/2006"""," ""2/18/2006"""
-641,1," ""2/15/2006"""," ""2/16/2006"""
-642,2," ""2/17/2006"""," ""2/20/2006"""
-643,3," ""2/18/2006"""," ""2/19/2006"""
-644,4," ""2/19/2006"""," ""2/19/2006"""
-645,5," ""2/18/2006"""," ""2/23/2006"""
-646,6," ""2/20/2006"""," ""2/22/2006"""
-647,7," ""2/24/2006"""," ""2/26/2006"""
-648,8," ""2/25/2006"""," ""2/26/2006"""
-649,9," ""2/10/2006"""," ""2/13/2006"""
-650,10," ""2/12/2006"""," ""2/14/2006"""
-651,1," ""2/15/2006"""," ""2/15/2006"""
-652,2," ""2/14/2006"""," ""2/18/2006"""
-653,3," ""2/15/2006"""," ""2/16/2006"""
-654,4," ""2/17/2006"""," ""2/20/2006"""
-655,5," ""2/18/2006"""," ""2/19/2006"""
-656,6," ""2/19/2006"""," ""2/19/2006"""
-657,7," ""2/18/2006"""," ""2/23/2006"""
-658,8," ""2/20/2006"""," ""2/22/2006"""
-659,9," ""2/24/2006"""," ""2/26/2006"""
-660,10," ""2/25/2006"""," ""2/26/2006"""
-661,1," ""2/10/2006"""," ""2/13/2006"""
-662,2," ""2/12/2006"""," ""2/14/2006"""
-663,3," ""2/15/2006"""," ""2/15/2006"""
-664,4," ""2/14/2006"""," ""2/18/2006"""
-665,5," ""2/15/2006"""," ""2/16/2006"""
-666,6," ""2/17/2006"""," ""2/20/2006"""
-667,7," ""2/18/2006"""," ""2/19/2006"""
-668,8," ""2/19/2006"""," ""2/19/2006"""
-669,9," ""2/18/2006"""," ""2/23/2006"""
-670,10," ""2/20/2006"""," ""2/22/2006"""
-671,1," ""2/24/2006"""," ""2/26/2006"""
-672,2," ""2/25/2006"""," ""2/26/2006"""
-673,3," ""2/10/2006"""," ""2/13/2006"""
-674,4," ""2/12/2006"""," ""2/14/2006"""
-675,5," ""2/15/2006"""," ""2/15/2006"""
-676,6," ""2/14/2006"""," ""2/18/2006"""
-677,7," ""2/15/2006"""," ""2/16/2006"""
-678,8," ""2/17/2006"""," ""2/20/2006"""
-679,9," ""2/18/2006"""," ""2/19/2006"""
-680,10," ""2/19/2006"""," ""2/19/2006"""
-681,1," ""2/18/2006"""," ""2/23/2006"""
-682,2," ""2/20/2006"""," ""2/22/2006"""
-683,3," ""2/24/2006"""," ""2/26/2006"""
-684,4," ""2/25/2006"""," ""2/26/2006"""
-685,5," ""2/10/2006"""," ""2/13/2006"""
-686,6," ""2/12/2006"""," ""2/14/2006"""
-687,7," ""2/15/2006"""," ""2/15/2006"""
-688,8," ""2/14/2006"""," ""2/18/2006"""
-689,9," ""2/15/2006"""," ""2/16/2006"""
-690,10," ""2/17/2006"""," ""2/20/2006"""
-691,1," ""2/18/2006"""," ""2/19/2006"""
-692,2," ""2/19/2006"""," ""2/19/2006"""
-693,3," ""2/18/2006"""," ""2/23/2006"""
-694,4," ""2/20/2006"""," ""2/22/2006"""
-695,5," ""2/24/2006"""," ""2/26/2006"""
-696,6," ""2/25/2006"""," ""2/26/2006"""
-697,7," ""2/10/2006"""," ""2/13/2006"""
-698,8," ""2/12/2006"""," ""2/14/2006"""
-699,9," ""2/15/2006"""," ""2/15/2006"""
-700,10," ""2/14/2006"""," ""2/18/2006"""
-701,1," ""2/15/2006"""," ""2/16/2006"""
-702,2," ""2/17/2006"""," ""2/20/2006"""
-703,3," ""2/18/2006"""," ""2/19/2006"""
-704,4," ""2/19/2006"""," ""2/19/2006"""
-705,5," ""2/18/2006"""," ""2/23/2006"""
-706,6," ""2/20/2006"""," ""2/22/2006"""
-707,7," ""2/24/2006"""," ""2/26/2006"""
-708,8," ""2/25/2006"""," ""2/26/2006"""
-709,9," ""2/10/2006"""," ""2/13/2006"""
-710,10," ""2/12/2006"""," ""2/14/2006"""
-711,1," ""2/15/2006"""," ""2/15/2006"""
-712,2," ""2/14/2006"""," ""2/18/2006"""
-713,3," ""2/15/2006"""," ""2/16/2006"""
-714,4," ""2/17/2006"""," ""2/20/2006"""
-715,5," ""2/18/2006"""," ""2/19/2006"""
-716,6," ""2/19/2006"""," ""2/19/2006"""
-717,7," ""2/18/2006"""," ""2/23/2006"""
-718,8," ""2/20/2006"""," ""2/22/2006"""
-719,9," ""2/24/2006"""," ""2/26/2006"""
-720,10," ""2/25/2006"""," ""2/26/2006"""
-721,1," ""2/10/2006"""," ""2/13/2006"""
-722,2," ""2/12/2006"""," ""2/14/2006"""
-723,3," ""2/15/2006"""," ""2/15/2006"""
-724,4," ""2/14/2006"""," ""2/18/2006"""
-725,5," ""2/15/2006"""," ""2/16/2006"""
-726,6," ""2/17/2006"""," ""2/20/2006"""
-727,7," ""2/18/2006"""," ""2/19/2006"""
-728,8," ""2/19/2006"""," ""2/19/2006"""
-729,9," ""2/18/2006"""," ""2/23/2006"""
-730,10," ""2/20/2006"""," ""2/22/2006"""
-731,1," ""2/24/2006"""," ""2/26/2006"""
-732,2," ""2/25/2006"""," ""2/26/2006"""
-733,3," ""2/10/2006"""," ""2/13/2006"""
-734,4," ""2/12/2006"""," ""2/14/2006"""
-735,5," ""2/15/2006"""," ""2/15/2006"""
-736,6," ""2/14/2006"""," ""2/18/2006"""
-737,7," ""2/15/2006"""," ""2/16/2006"""
-738,8," ""2/17/2006"""," ""2/20/2006"""
-739,9," ""2/18/2006"""," ""2/19/2006"""
-740,10," ""2/19/2006"""," ""2/19/2006"""
-741,1," ""2/18/2006"""," ""2/23/2006"""
-742,2," ""2/20/2006"""," ""2/22/2006"""
-743,3," ""2/24/2006"""," ""2/26/2006"""
-744,4," ""2/25/2006"""," ""2/26/2006"""
-745,5," ""2/10/2006"""," ""2/13/2006"""
-746,6," ""2/12/2006"""," ""2/14/2006"""
-747,7," ""2/15/2006"""," ""2/15/2006"""
-748,8," ""2/14/2006"""," ""2/18/2006"""
-749,9," ""2/15/2006"""," ""2/16/2006"""
-750,10," ""2/17/2006"""," ""2/20/2006"""
-751,1," ""2/18/2006"""," ""2/19/2006"""
-752,2," ""2/19/2006"""," ""2/19/2006"""
-753,3," ""2/18/2006"""," ""2/23/2006"""
-754,4," ""2/20/2006"""," ""2/22/2006"""
-755,5," ""2/24/2006"""," ""2/26/2006"""
-756,6," ""2/25/2006"""," ""2/26/2006"""
-757,7," ""2/10/2006"""," ""2/13/2006"""
-758,8," ""2/12/2006"""," ""2/14/2006"""
-759,9," ""2/15/2006"""," ""2/15/2006"""
-760,10," ""2/14/2006"""," ""2/18/2006"""
-761,1," ""2/15/2006"""," ""2/16/2006"""
-762,2," ""2/17/2006"""," ""2/20/2006"""
-763,3," ""2/18/2006"""," ""2/19/2006"""
-764,4," ""2/19/2006"""," ""2/19/2006"""
-765,5," ""2/18/2006"""," ""2/23/2006"""
-766,6," ""2/20/2006"""," ""2/22/2006"""
-767,7," ""2/24/2006"""," ""2/26/2006"""
-768,8," ""2/25/2006"""," ""2/26/2006"""
-769,9," ""2/10/2006"""," ""2/13/2006"""
-770,10," ""2/12/2006"""," ""2/14/2006"""
-771,1," ""2/15/2006"""," ""2/15/2006"""
-772,2," ""2/14/2006"""," ""2/18/2006"""
-773,3," ""2/15/2006"""," ""2/16/2006"""
-774,4," ""2/17/2006"""," ""2/20/2006"""
-775,5," ""2/18/2006"""," ""2/19/2006"""
-776,6," ""2/19/2006"""," ""2/19/2006"""
-777,7," ""2/18/2006"""," ""2/23/2006"""
-778,8," ""2/20/2006"""," ""2/22/2006"""
-779,9," ""2/24/2006"""," ""2/26/2006"""
-780,10," ""2/25/2006"""," ""2/26/2006"""
-781,1," ""2/10/2006"""," ""2/13/2006"""
-782,2," ""2/12/2006"""," ""2/14/2006"""
-783,3," ""2/15/2006"""," ""2/15/2006"""
-784,4," ""2/14/2006"""," ""2/18/2006"""
-785,5," ""2/15/2006"""," ""2/16/2006"""
-786,6," ""2/17/2006"""," ""2/20/2006"""
-787,7," ""2/18/2006"""," ""2/19/2006"""
-788,8," ""2/19/2006"""," ""2/19/2006"""
-789,9," ""2/18/2006"""," ""2/23/2006"""
-790,10," ""2/20/2006"""," ""2/22/2006"""
-791,1," ""2/24/2006"""," ""2/26/2006"""
-792,2," ""2/25/2006"""," ""2/26/2006"""
-793,3," ""2/10/2006"""," ""2/13/2006"""
-794,4," ""2/12/2006"""," ""2/14/2006"""
-795,5," ""2/15/2006"""," ""2/15/2006"""
-796,6," ""2/14/2006"""," ""2/18/2006"""
-797,7," ""2/15/2006"""," ""2/16/2006"""
-798,8," ""2/17/2006"""," ""2/20/2006"""
-799,9," ""2/18/2006"""," ""2/19/2006"""
-800,10," ""2/19/2006"""," ""2/19/2006"""
-801,1," ""2/18/2006"""," ""2/23/2006"""
-802,2," ""2/20/2006"""," ""2/22/2006"""
-803,3," ""2/24/2006"""," ""2/26/2006"""
-804,4," ""2/25/2006"""," ""2/26/2006"""
-805,5," ""2/10/2006"""," ""2/13/2006"""
-806,6," ""2/12/2006"""," ""2/14/2006"""
-807,7," ""2/15/2006"""," ""2/15/2006"""
-808,8," ""2/14/2006"""," ""2/18/2006"""
-809,9," ""2/15/2006"""," ""2/16/2006"""
-810,10," ""2/17/2006"""," ""2/20/2006"""
-811,1," ""2/18/2006"""," ""2/19/2006"""
-812,2," ""2/19/2006"""," ""2/19/2006"""
-813,3," ""2/18/2006"""," ""2/23/2006"""
-814,4," ""2/20/2006"""," ""2/22/2006"""
-815,5," ""2/24/2006"""," ""2/26/2006"""
-816,6," ""2/25/2006"""," ""2/26/2006"""
-817,7," ""2/10/2006"""," ""2/13/2006"""
-818,8," ""2/12/2006"""," ""2/14/2006"""
-819,9," ""2/15/2006"""," ""2/15/2006"""
-820,10," ""2/14/2006"""," ""2/18/2006"""
-821,1," ""2/15/2006"""," ""2/16/2006"""
-822,2," ""2/17/2006"""," ""2/20/2006"""
-823,3," ""2/18/2006"""," ""2/19/2006"""
-824,4," ""2/19/2006"""," ""2/19/2006"""
-825,5," ""2/18/2006"""," ""2/23/2006"""
-826,6," ""2/20/2006"""," ""2/22/2006"""
-827,7," ""2/24/2006"""," ""2/26/2006"""
-828,8," ""2/25/2006"""," ""2/26/2006"""
-829,9," ""2/10/2006"""," ""2/13/2006"""
-830,10," ""2/12/2006"""," ""2/14/2006"""
-831,1," ""2/15/2006"""," ""2/15/2006"""
-832,2," ""2/14/2006"""," ""2/18/2006"""
-833,3," ""2/15/2006"""," ""2/16/2006"""
-834,4," ""2/17/2006"""," ""2/20/2006"""
-835,5," ""2/18/2006"""," ""2/19/2006"""
-836,6," ""2/19/2006"""," ""2/19/2006"""
-837,7," ""2/18/2006"""," ""2/23/2006"""
-838,8," ""2/20/2006"""," ""2/22/2006"""
-839,9," ""2/24/2006"""," ""2/26/2006"""
-840,10," ""2/25/2006"""," ""2/26/2006"""
-841,1," ""2/10/2006"""," ""2/13/2006"""
-842,2," ""2/12/2006"""," ""2/14/2006"""
-843,3," ""2/15/2006"""," ""2/15/2006"""
-844,4," ""2/14/2006"""," ""2/18/2006"""
-845,5," ""2/15/2006"""," ""2/16/2006"""
-846,6," ""2/17/2006"""," ""2/20/2006"""
-847,7," ""2/18/2006"""," ""2/19/2006"""
-848,8," ""2/19/2006"""," ""2/19/2006"""
-849,9," ""2/18/2006"""," ""2/23/2006"""
-850,10," ""2/20/2006"""," ""2/22/2006"""
-851,1," ""2/24/2006"""," ""2/26/2006"""
-852,2," ""2/25/2006"""," ""2/26/2006"""
-853,3," ""2/10/2006"""," ""2/13/2006"""
-854,4," ""2/12/2006"""," ""2/14/2006"""
-855,5," ""2/15/2006"""," ""2/15/2006"""
-856,6," ""2/14/2006"""," ""2/18/2006"""
-857,7," ""2/15/2006"""," ""2/16/2006"""
-858,8," ""2/17/2006"""," ""2/20/2006"""
-859,9," ""2/18/2006"""," ""2/19/2006"""
-860,10," ""2/19/2006"""," ""2/19/2006"""
-861,1," ""2/18/2006"""," ""2/23/2006"""
-862,2," ""2/20/2006"""," ""2/22/2006"""
-863,3," ""2/24/2006"""," ""2/26/2006"""
-864,4," ""2/25/2006"""," ""2/26/2006"""
-865,5," ""2/10/2006"""," ""2/13/2006"""
-866,6," ""2/12/2006"""," ""2/14/2006"""
-867,7," ""2/15/2006"""," ""2/15/2006"""
-868,8," ""2/14/2006"""," ""2/18/2006"""
-869,9," ""2/15/2006"""," ""2/16/2006"""
-870,10," ""2/17/2006"""," ""2/20/2006"""
-871,1," ""2/18/2006"""," ""2/19/2006"""
-872,2," ""2/19/2006"""," ""2/19/2006"""
-873,3," ""2/18/2006"""," ""2/23/2006"""
-874,4," ""2/20/2006"""," ""2/22/2006"""
-875,5," ""2/24/2006"""," ""2/26/2006"""
-876,6," ""2/25/2006"""," ""2/26/2006"""
-877,7," ""2/10/2006"""," ""2/13/2006"""
-878,8," ""2/12/2006"""," ""2/14/2006"""
-879,9," ""2/15/2006"""," ""2/15/2006"""
-880,10," ""2/14/2006"""," ""2/18/2006"""
-881,1," ""2/15/2006"""," ""2/16/2006"""
-882,2," ""2/17/2006"""," ""2/20/2006"""
-883,3," ""2/18/2006"""," ""2/19/2006"""
-884,4," ""2/19/2006"""," ""2/19/2006"""
-885,5," ""2/18/2006"""," ""2/23/2006"""
-886,6," ""2/20/2006"""," ""2/22/2006"""
-887,7," ""2/24/2006"""," ""2/26/2006"""
-888,8," ""2/25/2006"""," ""2/26/2006"""
-889,9," ""2/10/2006"""," ""2/13/2006"""
-890,10," ""2/12/2006"""," ""2/14/2006"""
-891,1," ""2/15/2006"""," ""2/15/2006"""
-892,2," ""2/14/2006"""," ""2/18/2006"""
-893,3," ""2/15/2006"""," ""2/16/2006"""
-894,4," ""2/17/2006"""," ""2/20/2006"""
-895,5," ""2/18/2006"""," ""2/19/2006"""
-896,6," ""2/19/2006"""," ""2/19/2006"""
-897,7," ""2/18/2006"""," ""2/23/2006"""
-898,8," ""2/20/2006"""," ""2/22/2006"""
-899,9," ""2/24/2006"""," ""2/26/2006"""
-900,10," ""2/25/2006"""," ""2/26/2006"""
-901,1," ""2/10/2006"""," ""2/13/2006"""
-902,2," ""2/12/2006"""," ""2/14/2006"""
-903,3," ""2/15/2006"""," ""2/15/2006"""
-904,4," ""2/14/2006"""," ""2/18/2006"""
-905,5," ""2/15/2006"""," ""2/16/2006"""
-906,6," ""2/17/2006"""," ""2/20/2006"""
-907,7," ""2/18/2006"""," ""2/19/2006"""
-908,8," ""2/19/2006"""," ""2/19/2006"""
-909,9," ""2/18/2006"""," ""2/23/2006"""
-910,10," ""2/20/2006"""," ""2/22/2006"""
-911,1," ""2/24/2006"""," ""2/26/2006"""
-912,2," ""2/25/2006"""," ""2/26/2006"""
-913,3," ""2/10/2006"""," ""2/13/2006"""
-914,4," ""2/12/2006"""," ""2/14/2006"""
-915,5," ""2/15/2006"""," ""2/15/2006"""
-916,6," ""2/14/2006"""," ""2/18/2006"""
-917,7," ""2/15/2006"""," ""2/16/2006"""
-918,8," ""2/17/2006"""," ""2/20/2006"""
-919,9," ""2/18/2006"""," ""2/19/2006"""
-920,10," ""2/19/2006"""," ""2/19/2006"""
-921,1," ""2/18/2006"""," ""2/23/2006"""
-922,2," ""2/20/2006"""," ""2/22/2006"""
-923,3," ""2/24/2006"""," ""2/26/2006"""
-924,4," ""2/25/2006"""," ""2/26/2006"""
-925,5," ""2/10/2006"""," ""2/13/2006"""
-926,6," ""2/12/2006"""," ""2/14/2006"""
-927,7," ""2/15/2006"""," ""2/15/2006"""
-928,8," ""2/14/2006"""," ""2/18/2006"""
-929,9," ""2/15/2006"""," ""2/16/2006"""
-930,10," ""2/17/2006"""," ""2/20/2006"""
-931,1," ""2/18/2006"""," ""2/19/2006"""
-932,2," ""2/19/2006"""," ""2/19/2006"""
-933,3," ""2/18/2006"""," ""2/23/2006"""
-934,4," ""2/20/2006"""," ""2/22/2006"""
-935,5," ""2/24/2006"""," ""2/26/2006"""
-936,6," ""2/25/2006"""," ""2/26/2006"""
-937,7," ""2/10/2006"""," ""2/13/2006"""
-938,8," ""2/12/2006"""," ""2/14/2006"""
-939,9," ""2/15/2006"""," ""2/15/2006"""
-940,10," ""2/14/2006"""," ""2/18/2006"""
-941,1," ""2/15/2006"""," ""2/16/2006"""
-942,2," ""2/17/2006"""," ""2/20/2006"""
-943,3," ""2/18/2006"""," ""2/19/2006"""
-944,4," ""2/19/2006"""," ""2/19/2006"""
-945,5," ""2/18/2006"""," ""2/23/2006"""
-946,6," ""2/20/2006"""," ""2/22/2006"""
-947,7," ""2/24/2006"""," ""2/26/2006"""
-948,8," ""2/25/2006"""," ""2/26/2006"""
-949,9," ""2/10/2006"""," ""2/13/2006"""
-950,10," ""2/12/2006"""," ""2/14/2006"""
-951,1," ""2/15/2006"""," ""2/15/2006"""
-952,2," ""2/14/2006"""," ""2/18/2006"""
-953,3," ""2/15/2006"""," ""2/16/2006"""
-954,4," ""2/17/2006"""," ""2/20/2006"""
-955,5," ""2/18/2006"""," ""2/19/2006"""
-956,6," ""2/19/2006"""," ""2/19/2006"""
-957,7," ""2/18/2006"""," ""2/23/2006"""
-958,8," ""2/20/2006"""," ""2/22/2006"""
-959,9," ""2/24/2006"""," ""2/26/2006"""
-960,10," ""2/25/2006"""," ""2/26/2006"""
-961,1," ""2/10/2006"""," ""2/13/2006"""
-962,2," ""2/12/2006"""," ""2/14/2006"""
-963,3," ""2/15/2006"""," ""2/15/2006"""
-964,4," ""2/14/2006"""," ""2/18/2006"""
-965,5," ""2/15/2006"""," ""2/16/2006"""
-966,6," ""2/17/2006"""," ""2/20/2006"""
-967,7," ""2/18/2006"""," ""2/19/2006"""
-968,8," ""2/19/2006"""," ""2/19/2006"""
-969,9," ""2/18/2006"""," ""2/23/2006"""
-970,10," ""2/20/2006"""," ""2/22/2006"""
-971,1," ""2/24/2006"""," ""2/26/2006"""
-972,2," ""2/25/2006"""," ""2/26/2006"""
-973,3," ""2/10/2006"""," ""2/13/2006"""
-974,4," ""2/12/2006"""," ""2/14/2006"""
-975,5," ""2/15/2006"""," ""2/15/2006"""
-976,6," ""2/14/2006"""," ""2/18/2006"""
-977,7," ""2/15/2006"""," ""2/16/2006"""
-978,8," ""2/17/2006"""," ""2/20/2006"""
-979,9," ""2/18/2006"""," ""2/19/2006"""
-980,10," ""2/19/2006"""," ""2/19/2006"""
-981,1," ""2/18/2006"""," ""2/23/2006"""
-982,2," ""2/20/2006"""," ""2/22/2006"""
-983,3," ""2/24/2006"""," ""2/26/2006"""
-984,4," ""2/25/2006"""," ""2/26/2006"""
-985,5," ""2/10/2006"""," ""2/13/2006"""
-986,6," ""2/12/2006"""," ""2/14/2006"""
-987,7," ""2/15/2006"""," ""2/15/2006"""
-988,8," ""2/14/2006"""," ""2/18/2006"""
-989,9," ""2/15/2006"""," ""2/16/2006"""
-990,10," ""2/17/2006"""," ""2/20/2006"""
-991,1," ""2/18/2006"""," ""2/19/2006"""
-992,2," ""2/19/2006"""," ""2/19/2006"""
-993,3," ""2/18/2006"""," ""2/23/2006"""
-994,4," ""2/20/2006"""," ""2/22/2006"""
-995,5," ""2/24/2006"""," ""2/26/2006"""
-996,6," ""2/25/2006"""," ""2/26/2006"""
-997,7," ""2/10/2006"""," ""2/13/2006"""
-998,8," ""2/12/2006"""," ""2/14/2006"""
-999,9," ""2/15/2006"""," ""2/15/2006"""
-1000,10," ""2/14/2006"""," ""2/18/2006"""
\ No newline at end of file
diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json
deleted file mode 100644
index 041754b..0000000
--- a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "schema": [
- {
- "no": 0,
- "type": "INTEGER",
- "length": 4,
- "name": "DriverId"
- },
- {
- "no": 1,
- "type": "INTEGER",
- "length": 4,
- "name": "GroupId"
- },
- {
- "no": 2,
- "type": "STRING",
- "length": 10,
- "name": "FromDate"
- },
- {
- "no": 3,
- "type": "STRING",
- "length": 10,
- "name": "ToDate"
- }
- ],
- "key": 1
-}