Reordering items in scripts; fusing off the router's MAC address filter.
[pingpong.git] / Code / Projects / PacketLevelSignatureExtractor / execute_layer2_smarthome_all_detection_results_analysis.sh
1 #!/bin/bash
2
3 # Base directory where the smarthome evaluation traces and timestamp files are stored,
4 # (i.e., /some/arbitrary/local/path/experimental_result/smarthome)
5 TIMESTAMPS_BASE_DIR=$1
6 readonly TIMESTAMPS_BASE_DIR
7
8 # Base directory for the detection results files for the smarthome experiment
9 RESULTS_BASE_DIR=$2
10 readonly RESULTS_BASE_DIR
11
12 # ==================================================== AMAZON PLUG =====================================================
13 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/amazon-plug/timestamps/amazon-plug-smarthome-apr-23-2019.timestamps"
14
15 # DEVICE SIDE
16 RESULTS_FILE="$RESULTS_BASE_DIR/amazon-plug/amazon-plug.wlan1.detection.pcap___device-side.detectionresults"
17 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
18 EXACT_MATCH="true"
19 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
20 ./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
21 # ======================================================================================================================
22
23 # ==================================================== ARLO CAMERA =====================================================
24 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/arlo-camera/timestamps/arlo-camera-smarthome-nov-15-2018.timestamps"
25 RESULTS_FILE="$RESULTS_BASE_DIR/arlo-camera/arlo-camera.wlan1.detection.pcap___phone-side.detectionresults"
26 # Put the analysis results in the same folder as the detection results.
27 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
28 EXACT_MATCH="true"
29
30
31 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
32 ./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
33 # ======================================================================================================================
34
35 # ================================================= BLOSSOM SPRINKLER ==================================================
36 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/blossom-sprinkler/timestamps/blossom-sprinkler-smarthome-jan-14-2019.timestamps"
37
38 # DEVICE SIDE
39 RESULTS_FILE="$RESULTS_BASE_DIR/blossom-sprinkler/blossom-sprinkler.wlan1.detection.pcap___device-side.detectionresults"
40 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
41 EXACT_MATCH="false"
42 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
43 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
44
45 # PHONE SIDE
46 RESULTS_FILE="$RESULTS_BASE_DIR/blossom-sprinkler/blossom-sprinkler.wlan1.detection.pcap___phone-side.detectionresults"
47 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
48 EXACT_MATCH="false"
49 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
50 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
51 # ======================================================================================================================
52
53 # ============================================== BLOSSOM SPRINKLER MODE ================================================
54 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/blossom-sprinkler-mode/timestamps/blossom-sprinkler-mode-smarthome-apr-22-2019.timestamps"
55
56 # PHONE SIDE
57 RESULTS_FILE="$RESULTS_BASE_DIR/blossom-sprinkler-mode/blossom-sprinkler-mode.wlan1.detection.pcap___phone-side.detectionresults"
58 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
59 EXACT_MATCH="true"
60 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
61 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
62 # ======================================================================================================================
63
64 # ==================================================== D-LINK PLUG =====================================================
65 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/dlink-plug/timestamps/dlink-plug-smarthome-nov-8-2018.timestamps"
66
67 # DEVICE SIDE
68 RESULTS_FILE="$RESULTS_BASE_DIR/dlink-plug/dlink-plug.wlan1.detection.pcap___device-side.detectionresults"
69 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
70 EXACT_MATCH="true"
71 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
72 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
73
74 # PHONE SIDE
75 RESULTS_FILE="$RESULTS_BASE_DIR/dlink-plug/dlink-plug.wlan1.detection.pcap___phone-side.detectionresults"
76 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
77 EXACT_MATCH="true"
78 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
79 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
80 # ======================================================================================================================
81
82 # ==================================================== D-LINK SIREN ====================================================
83 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/dlink-siren/timestamps/dlink-siren-smarthome-nov-10-2018.timestamps"
84
85 #PHONE SIDE
86 RESULTS_FILE="$RESULTS_BASE_DIR/dlink-siren/dlink-siren.wlan1.detection.pcap___phone-side.detectionresults"
87 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
88 EXACT_MATCH="true"
89 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
90 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
91 # ======================================================================================================================
92
93 # ================================================= ECOBEE THERMOSTAT ==================================================
94 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/ecobee-thermostat/timestamps/ecobee-thermostat-smarthome-apr-24-2019.timestamps"
95
96 # DEVICE SIDE
97 RESULTS_FILE="$RESULTS_BASE_DIR/ecobee-thermostat/ecobee-thermostat.wlan1.detection.pcap___phone-side.detectionresults"
98 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
99 EXACT_MATCH="true"
100 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
101 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
102 # ======================================================================================================================
103
104 # =============================================== ECOBEE THERMOSTAT FAN ================================================
105 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/ecobee-thermostat-fan/timestamps/ecobee-thermostat-fan-smarthome-apr-24-2019.timestamps"
106
107 # DEVICE SIDE
108 RESULTS_FILE="$RESULTS_BASE_DIR/ecobee-thermostat-fan/ecobee-thermostat-fan.wlan1.detection.pcap___phone-side.detectionresults"
109 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
110 EXACT_MATCH="true"
111 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
112 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
113 # ======================================================================================================================
114
115 # ================================================= KWIKSET DOORLOCK ===================================================
116 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/kwikset-doorlock/timestamps/kwikset-doorlock-smarthome-nov-10-2018.timestamps"
117
118 # Has no device side signature.
119
120 # PHONE SIDE
121 RESULTS_FILE="$RESULTS_BASE_DIR/kwikset-doorlock/kwikset-doorlock.wlan1.detection.pcap___phone-side.detectionresults"
122 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
123 EXACT_MATCH="true"
124 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
125 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
126 # ======================================================================================================================
127
128 # ================================================= NEST THERMOSTAT ====================================================
129 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/nest-thermostat/timestamps/nest-thermostat-smarthome-nov-16-2018.timestamps"
130
131 # Has no device side signature.
132
133 # PHONE SIDE
134 RESULTS_FILE="$RESULTS_BASE_DIR/nest-thermostat/nest-thermostat.wlan1.detection.pcap___phone-side.detectionresults"
135 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
136 EXACT_MATCH="true"
137 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
138 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
139 # ======================================================================================================================
140
141 # ================================================= RACHIO SPRINKLER ===================================================
142 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/rachio-sprinkler/timestamps/rachio-sprinkler-smarthome-apr-25-2019.timestamps"
143
144 # DEVICE SIDE
145 RESULTS_FILE="$RESULTS_BASE_DIR/rachio-sprinkler/rachio-sprinkler.wlan1.detection.pcap___device-side.detectionresults"
146 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
147 EXACT_MATCH="true"
148 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
149 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
150 # ======================================================================================================================
151
152 # =============================================== RACHIO SPRINKLER STANDBY =============================================
153 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/rachio-sprinkler-standby/timestamps/rachio-sprinkler-standby-smarthome-apr-25-2019.timestamps"
154
155 # This one is going to generate 100 FPs because every event is counted twice (same signatures for ON and OFF).
156 # DEVICE SIDE
157 RESULTS_FILE="$RESULTS_BASE_DIR/rachio-sprinkler-standby/rachio-sprinkler-standby.wlan1.detection.pcap___device-side.detectionresults"
158 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
159 EXACT_MATCH="true"
160 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
161 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
162 # ======================================================================================================================
163
164 # ===================================================== RING ALARM =====================================================
165 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/ring-alarm/timestamps/ring-alarm-smarthome-apr-26-2019.timestamps"
166
167 # DEVICE SIDE
168 RESULTS_FILE="$RESULTS_BASE_DIR/ring-alarm/ring-alarm.wlan1.detection.pcap___device-side.detectionresults"
169 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
170 EXACT_MATCH="true"
171 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
172 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
173 # ======================================================================================================================
174
175 # ================================================= ROOMBA VACUUM ROBOT ================================================
176 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/roomba-vacuum-robot/timestamps/roomba-vacuum-robot-smarthome-apr-27-2019.timestamps"
177
178 # PHONE SIDE
179 RESULTS_FILE="$RESULTS_BASE_DIR/roomba-vacuum-robot/roomba-vacuum-robot.wlan1.detection.pcap___phone-side.detectionresults"
180 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
181 EXACT_MATCH="true"
182 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
183 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
184 # ======================================================================================================================
185
186 # =================================================== SENGLED BULB =====================================================
187 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/sengled-bulb/timestamps/sengled-bulb-smarthome-apr-23-2019.timestamps"
188
189 # PHONE SIDE
190 RESULTS_FILE="$RESULTS_BASE_DIR/sengled-bulb/sengled-bulb.wlan1.detection.pcap___phone-side.detectionresults"
191 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
192 EXACT_MATCH="true"
193 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
194 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
195 # ======================================================================================================================
196
197 # =============================================== SENGLED BULB INTENSITY ===============================================
198 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/sengled-bulb-intensity/timestamps/sengled-bulb-intensity-smarthome-apr-24-2019.timestamps"
199
200 # PHONE SIDE
201 RESULTS_FILE="$RESULTS_BASE_DIR/sengled-bulb-intensity/sengled-bulb-intensity.wlan1.detection.pcap___phone-side.detectionresults"
202 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
203 EXACT_MATCH="true"
204 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
205 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
206 # ======================================================================================================================
207
208 # ====================================================== ST PLUG =======================================================
209 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/st-plug/timestamps/st-plug-smarthome-nov-13-2018.timestamps"
210
211 # Has no device side signature.
212
213 # PHONE SIDE
214 RESULTS_FILE="$RESULTS_BASE_DIR/st-plug/st-plug.wlan1.detection.pcap___phone-side.detectionresults"
215 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
216 EXACT_MATCH="true"
217 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
218 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
219 # ======================================================================================================================
220
221 # ==================================================== TP-LINK BULB ====================================================
222 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/tplink-bulb/timestamps/tplink-bulb-smarthome-nov-19-2018.timestamps"
223
224 # Has no device side signature.
225
226 # PHONE SIDE
227 RESULTS_FILE="$RESULTS_BASE_DIR/tplink-bulb/tplink-bulb.wlan1.detection.pcap___phone-side.detectionresults"
228 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
229 EXACT_MATCH="true"
230 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
231 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
232 # ======================================================================================================================
233
234 # ================================================ TP-LINK BULB COLOR ==================================================
235 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/tplink-bulb-color/timestamps/tplink-bulb-color-smarthome-apr-22-2019.timestamps"
236
237 # PHONE SIDE
238 # This one is going to generate >100 FPs because every event is counted twice (same signatures for ON and OFF).
239 RESULTS_FILE="$RESULTS_BASE_DIR/tplink-bulb-color/tplink-bulb-color.wlan1.detection.pcap___phone-side.detectionresults"
240 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
241 EXACT_MATCH="true"
242 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
243 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
244 # ======================================================================================================================
245
246 # ============================================== TP-LINK BULB INTENSITY ================================================
247 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/tplink-bulb-intensity/timestamps/tplink-bulb-intensity-smarthome-apr-29-2019.timestamps"
248
249 # PHONE SIDE
250 # This one is going to generate >100 FPs because every event is counted twice (same signatures for ON and OFF).
251 RESULTS_FILE="$RESULTS_BASE_DIR/tplink-bulb-intensity/tplink-bulb-intensity.wlan1.detection.pcap___phone-side.detectionresults"
252 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
253 EXACT_MATCH="true"
254 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
255 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
256 # ======================================================================================================================
257
258 # ==================================================== TP-LINK PLUG ====================================================
259 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/tplink-plug/timestamps/tplink-plug-smarthome-nov-9-2018.timestamps"
260
261 # DEVICE SIDE
262 RESULTS_FILE="$RESULTS_BASE_DIR/tplink-plug/tplink-plug.wlan1.detection.pcap___device-side.detectionresults"
263 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
264 EXACT_MATCH="true"
265 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
266 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
267
268 # DEVICE SIDE OUTBOUND
269 RESULTS_FILE="$RESULTS_BASE_DIR/tplink-plug/tplink-plug.wlan1.detection.pcap___device-side-outbound.detectionresults"
270 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
271 EXACT_MATCH="true"
272 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
273 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
274 # ======================================================================================================================
275
276 # ================================================== WEMO INSIGHT PLUG =================================================
277 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/wemo-insight-plug/timestamps/wemo-insight-plug-smarthome-nov-22-2018.timestamps"
278
279 # Has no device side signature.
280
281 # PHONE SIDE
282 RESULTS_FILE="$RESULTS_BASE_DIR/wemo-insight-plug/wemo-insight-plug.wlan1.detection.pcap___phone-side.detectionresults"
283 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
284 EXACT_MATCH="true"
285 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
286 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
287 # ======================================================================================================================
288
289 # ===================================================== WEMO PLUG ======================================================
290 TIMESTAMPS_FILE="$TIMESTAMPS_BASE_DIR/wemo-plug/timestamps/wemo-plug-smarthome-nov-21-2018.timestamps"
291
292 # Has no device side signature.
293
294 # PHONE SIDE
295 RESULTS_FILE="$RESULTS_BASE_DIR/wemo-plug/wemo-plug.wlan1.detection.pcap___phone-side.detectionresults"
296 ANALYSIS_RESULTS_FILE="$RESULTS_FILE.analysis"
297 EXACT_MATCH="true"
298 PROGRAM_ARGS="'$TIMESTAMPS_FILE' '$RESULTS_FILE' '$ANALYSIS_RESULTS_FILE' '$EXACT_MATCH'"
299 #./gradlew run -DmainClass=edu.uci.iotproject.evaluation.DetectionResultsAnalyzer --args="$PROGRAM_ARGS"
300 # ======================================================================================================================