Week 8 · 2023
Saint Francis at Duquesne
Sat 10/21/2023 01:00 PMArthur J. Rooney Athletic FieldConference
53°Overcast11 mph W · 71% humidityRecorded at kickoff by College Football Data
Saint Francis
35
4–6
Duquesne
38
7–5
Attendance
—
not reported
DUQ10 plays, 62 yd · Touchdown | ||||
| 15:00 | 1st & 10 | own 38 | JaMario Clements run for 8 yds to the DUQ 46 | +8 |
| 15:00 | 2nd & 2 | own 46 | pass incomplete to Darryl Powell Jr. | 0 |
| 15:00 | 3rd & 2 | own 46 | Darius Perrantes pass complete to Darryl Powell Jr. for 10 yds to the SFPA 44 for a 1ST down | +10 |
| 15:00 | 1st & 10 | opp 44 | JaMario Clements run for 9 yds to the SFPA 35 | +9 |
| 15:00 | 2nd & 1 | opp 35 | JaMario Clements run for 3 yds to the SFPA 32 for a 1ST down | +3 |
| 15:00 | 1st & 10 | opp 32 | pass incomplete to Darryl Powell Jr. | 0 |
| 15:00 | 2nd & 10 | opp 32 | Darius Perrantes pass complete to Tedy Afful for 9 yds to the SFPA 23 | +9 |
| 15:00 | 3rd & 1 | opp 23 | Taj Butts run for 6 yds to the SFPA 17 for a 1ST down | +6 |
| 14:52 | 1st & 10 | own 35 | Macrae Plummer kickoff for 64 yds , Keshawn Brown return for 37 yds to the DUQ 38 | +37 |
| 11:01 | 1st & 10 | opp 17 | Darius Perrantes pass complete to Keshawn Brown for 17 yds for a TD (Brian Bruzdewicz KICK) | +17 |
SFPA5 plays, 11 yd · Turnover | ||||
| 11:01 | 1st & 10 | own 35 | Matt Clark kickoff for 60 yds | 0 |
| 11:01 | 1st & 10 | own 35 | Deondre Scott run for 3 yds to the SFPA 38 | +3 |
| 11:01 | 2nd & 7 | own 38 | Deondre Scott run for 1 yd to the SFPA 39 | +1 |
| 11:01 | 3rd & 6 | own 39 | Cole Doyle pass complete to Aaron Tutino for 7 yds to the SFPA 46 for a 1ST down Duquesne Penalty, off-side (Khatavian Franks) to the SFPA 46 for a 1ST down | +7 |
| 9:07 | 1st & 10 | own 46 | Cole Doyle pass intercepted | 0 |
DUQ6 plays, -17 yd · Punt | ||||
| 9:07 | 1st & 10 | opp 34 | Duquesne Penalty, false start (Chris Oliver) to the SFPA 39 | −5 |
| 9:07 | 1st & 15 | opp 39 | Taj Butts run for a loss of 2 yards to the SFPA 41 | −2 |
| 9:07 | 2nd & 17 | opp 41 | pass incomplete to Tedy Afful | 0 |
| 9:07 | 3rd & 17 | opp 41 | Duquesne Penalty, false start (Michael Dorundo) to the SFPA 46 | −5 |
| 9:07 | 3rd & 22 | opp 46 | Darius Perrantes sacked for a loss of 5 yards to the DUQ 49 | −5 |
| 7:32 | 4th & 27 | own 49 | Michael Berarducci punt for 39 yds | 0 |
SFPA4 plays, 8 yd · Punt | ||||
| 7:32 | 1st & 10 | own 12 | Deondre Scott run for 1 yd to the SFPA 13 | +1 |
| 6:53 | 2nd & 9 | own 13 | Cole Doyle run for 3 yds to the SFPA 16 | +3 |
| 6:53 | 3rd & 6 | own 16 | Cole Doyle pass complete to Jayden Ivory for 4 yds to the SFPA 20 | +4 |
| 5:17 | 4th & 2 | own 20 | Aidan Cirulli punt for 45 yds , Nick Leopold returns for 2 yds to the DUQ 37 | +2 |
DUQ4 plays, 4 yd · Punt | ||||
| 5:17 | 1st & 10 | own 37 | Edward Robinson run for 4 yds to the DUQ 41 | +4 |
| 5:17 | 2nd & 6 | own 41 | — | 0 |
| 5:17 | 3rd & 6 | own 41 | pass incomplete to Tedy Afful | 0 |
| 3:44 | 4th & 6 | own 41 | Michael Berarducci punt for 49 yds | 0 |
SFPA4 plays, 5 yd · Punt | ||||
| 3:44 | 1st & 10 | own 10 | Jordan Jackson run for 4 yds to the SFPA 14 | +4 |
| 3:44 | 2nd & 6 | own 14 | Jordan Jackson run for 1 yd to the SFPA 15 | +1 |
| 3:44 | 3rd & 5 | own 15 | Cole Doyle pass incomplete to Dawson Snyder, broken up by Dayvia Gbor | 0 |
| 2:06 | 4th & 5 | own 15 | Aidan Cirulli punt for 42 yds , Ayden Garnes returns for no gain to the DUQ 41 | 0 |
DUQ11 plays, 50 yd · Field goal | ||||
| 2:06 | 1st & 10 | own 41 | JaMario Clements run for 11 yds to the SFPA 48 for a 1ST down | +11 |
| 2:06 | 1st & 10 | opp 48 | JaMario Clements run for 4 yds to the SFPA 44 | +4 |
| 2:06 | 2nd & 6 | opp 44 | JaMario Clements run for 2 yds to the SFPA 42 | +2 |
| 2:06 | 3rd & 4 | opp 42 | Darius Perrantes pass complete to Darryl Powell Jr. for 22 yds to the SFPA 20 for a 1ST down | +22 |
| 0:00 | opp 42 | End of 1st Quarter | 0 | |
| 15:00 | 1st & 10 | opp 20 | JaMario Clements run for 12 yds to the SFPA 8 for a 1ST down | +12 |
| 15:00 | 1st & goal | opp 8 | Duquesne Penalty, false start (Tommy Brandt) to the SFPA 13 | −5 |
| 15:00 | 1st & goal | opp 13 | Darius Perrantes pass incomplete to Darryl Powell Jr., broken up by Blye Hill | 0 |
| 15:00 | 2nd & goal | opp 13 | Taj Butts run for 4 yds to the SFPA 9 | +4 |
| 15:00 | 3rd & goal | opp 9 | pass incomplete to Darryl Powell Jr. | 0 |
| 12:50 | 4th & goal | opp 9 | Brian Bruzdewicz 27 yd FG GOOD | +27 |
SFPA11 plays, 74 yd · Touchdown | ||||
| 12:45 | 1st & 10 | own 35 | Matt Clark kickoff for 62 yds , DaMario Crawford return for 23 yds to the SFPA 26 | +23 |
| 12:45 | 1st & 10 | own 26 | pass incomplete to Dawson Snyder | 0 |
| 12:45 | 2nd & 10 | own 26 | Jordan Jackson run for 4 yds to the SFPA 30 | +4 |
| 12:45 | 3rd & 6 | own 30 | Cole Doyle pass complete to Dawson Snyder for 7 yds to the SFPA 37 for a 1ST down | +7 |
| 12:45 | 1st & 10 | own 37 | Jordan Jackson run for 4 yds to the SFPA 41 | +4 |
| 12:45 | 2nd & 6 | own 41 | Jordan Jackson run for 6 yds to the SFPA 47 for a 1ST down | +6 |
| 12:45 | 1st & 10 | own 47 | Jordan Jackson run for 9 yds to the DUQ 44 | +9 |
| 12:45 | 2nd & 1 | opp 44 | Cole Doyle pass complete to Jake Bruno for 43 yds to the DUQ 1 for a 1ST down | +43 |
| 12:45 | 1st & goal | opp 1 | — | 0 |
| 7:56 | 2nd & goal | opp 1 | Duquesne Penalty, off-side (Alex Reese III) to the DUQ 1 | 0 |
| 7:56 | 2nd & goal | opp 1 | Mason Imbt 1 Yd Run (Macrae Plummer Kick) | +1 |
DUQ14 plays, 75 yd · Touchdown | ||||
| 7:56 | 1st & 10 | own 35 | Macrae Plummer kickoff for 65 yds for a touchback | 0 |
| 7:56 | 1st & 10 | own 25 | Taj Butts run for 7 yds to the DUQ 32 | +7 |
| 7:56 | 2nd & 3 | own 32 | Taj Butts run for 3 yds to the DUQ 35 for a 1ST down | +3 |
| 7:56 | 1st & 10 | own 35 | Taj Butts run for 9 yds to the DUQ 44 | +9 |
| 7:56 | 2nd & 1 | own 44 | Edward Robinson run for 2 yds to the DUQ 46 for a 1ST down | +2 |
| 7:56 | 1st & 10 | own 46 | Edward Robinson run for 6 yds to the SFPA 48 | +6 |
| 7:56 | 2nd & 4 | opp 48 | Darius Perrantes pass complete to Keshawn Brown for 7 yds to the SFPA 41 for a 1ST down | +7 |
| 7:56 | 1st & 10 | opp 41 | Darius Perrantes pass complete to Joey Isabella for 3 yds to the SFPA 38 | +3 |
| 7:56 | 2nd & 7 | opp 38 | Darius Perrantes pass complete to Joey Isabella for 3 yds to the SFPA 35 | +3 |
| 7:56 | 3rd & 4 | opp 35 | Darius Perrantes pass incomplete to Darryl Powell Jr., broken up by Blye Hill | 0 |
| 7:56 | 4th & 4 | opp 35 | Darius Perrantes pass complete to Darryl Powell Jr. for 6 yds Darius Perrantes fumbled, recovered by DUQ for a 1ST down | +6 |
| 7:56 | 3rd & 4 | opp 35 | Darius Perrantes pass incomplete to Darryl Powell Jr., broken up by Blye Hill | 0 |
| 7:56 | 4th & 4 | opp 35 | Darius Perrantes pass complete to Darryl Powell Jr. for 6 yds Darius Perrantes fumbled, recovered by DUQ for a 1ST down | +6 |
| 2:29 | 1st & 10 | opp 29 | D. Perrantes pass to D. Powell Jr. for 29 yds for a TD (B. Bruzdewicz KICK) | +29 |
SFPA5 plays, -1 yd · Punt | ||||
| 2:22 | 1st & 10 | own 35 | Matt Clark kickoff for 60 yds , DaMario Crawford return for 27 yds to the SFPA 32 | +27 |
| 2:22 | 1st & 10 | own 32 | Cole Doyle run for a loss of 1 yard to the SFPA 31 | −1 |
| 2:22 | 2nd & 11 | own 31 | Cole Doyle pass incomplete, broken up by Clemente Ojinnaka | 0 |
| 2:22 | 3rd & 11 | own 31 | pass incomplete to Dawson Snyder | 0 |
| 1:24 | 4th & 11 | own 31 | Aidan Cirulli punt for 42 yds | 0 |
DUQ2 plays, 73 yd · Touchdown | ||||
| 1:24 | 1st & 10 | own 27 | Edward Robinson run for 4 yds to the DUQ 31 | +4 |
| 0:49 | 2nd & 6 | own 31 | D. Perrantes pass to J. Isabella for 69 yds for a TD (B. Bruzdewicz KICK) (B. Bruzdewicz KICK) | +69 |
SFPA6 plays, 75 yd · Defensive TD | ||||
| 0:49 | 1st & 10 | own 35 | Matt Clark kickoff for 65 yds for a touchback | 0 |
| 0:49 | 1st & 10 | own 25 | Cole Doyle run for 8 yds to the SFPA 33 | +8 |
| 0:49 | 2nd & 2 | own 33 | Cole Doyle run for a loss of 3 yards to the SFPA 30 | −3 |
| 0:15 | 3rd & 5 | own 30 | pass incomplete to Dawson Snyder St. Francis (PA) Penalty, inelgible downfield on pass (Yards) to the SFPA 30 | 0 |
| 0:02 | 4th & 5 | own 30 | Tim Lowery 15 Yd Fumble Return (Brian Bruzdewicz Kick) | +15 |
| 0:00 | own 30 | End of 2nd Quarter | 0 | |
DUQ7 plays, 16 yd · Turnover | ||||
| 15:00 | 1st & 10 | opp 34 | JaMario Clements run for 4 yds to the SFPA 30 | +4 |
| 15:00 | 2nd & 6 | opp 30 | JaMario Clements run for 3 yds to the SFPA 27 | +3 |
| 15:00 | 3rd & 3 | opp 27 | JaMario Clements run for 6 yds to the SFPA 21 for a 1ST down | +6 |
| 15:00 | 1st & 10 | opp 21 | Darius Perrantes pass incomplete to Darryl Powell Jr., broken up by Blye Hill | 0 |
| 15:00 | 2nd & 10 | opp 21 | JaMario Clements run for 3 yds to the SFPA 18 | +3 |
| 14:57 | 1st & 10 | own 35 | Matt Clark kickoff for 34 yds , Scott Raymond return for 3 yds to the SFPA 34 Scott Raymond fumbled, recovered by DUQ Tim Lowery , return for no gain to the SFPA 34 | +3 |
| 11:55 | 3rd & 7 | opp 18 | Darius Perrantes pass intercepted | 0 |
SFPA6 plays, 37 yd · On downs | ||||
| 11:55 | 1st & 10 | own 29 | Jordan Jackson run for 14 yds to the SFPA 43 for a 1ST down | +14 |
| 11:55 | 1st & 10 | own 43 | Cole Doyle run for 16 yds to the DUQ 41 for a 1ST down Duquesne Penalty, off-side (Alex Reese III) to the DUQ 41 for a 1ST down | +16 |
| 11:55 | 1st & 10 | opp 41 | Cole Doyle run for 4 yds to the DUQ 37 | +4 |
| 11:55 | 2nd & 6 | opp 37 | Jordan Jackson run for a loss of 2 yards to the DUQ 39 | −2 |
| 11:55 | 3rd & 8 | opp 39 | Deondre Scott run for 5 yds to the DUQ 34 | +5 |
| 9:15 | 4th & 3 | opp 34 | pass incomplete to Jayden Ivory | 0 |
DUQ6 plays, 7 yd · Punt | ||||
| 9:15 | 1st & 10 | own 34 | Duquesne Penalty, Offensive holding (Michael Dorundo) to the DUQ 24 | −10 |
| 9:15 | 1st & 20 | own 24 | Taj Butts run for 8 yds to the DUQ 32 | +8 |
| 9:15 | 2nd & 12 | own 32 | Taj Butts run for 1 yd to the DUQ 33 | +1 |
| 9:15 | 3rd & 11 | own 33 | Duquesne Penalty, false start (Shawn Jones) to the DUQ 28 | −5 |
| 9:15 | 3rd & 16 | own 28 | Taj Butts run for 13 yds to the DUQ 41 | +13 |
| 6:43 | 4th & 3 | own 41 | Michael Berarducci punt for 25 yds | 0 |
SFPA15 plays, 66 yd · Touchdown | ||||
| 6:43 | 1st & 10 | own 34 | Deondre Scott run for 7 yds to the SFPA 41 | +7 |
| 6:43 | 2nd & 3 | own 41 | Cole Doyle run for 7 yds to the SFPA 48 for a 1ST down | +7 |
| 6:43 | 1st & 10 | own 48 | Cole Doyle pass complete to Jayden Ivory for 2 yds to the 50 yard line | +2 |
| 6:43 | 2nd & 8 | midfield | Cole Doyle pass complete to Jayden Ivory to the 50 yard line Duquesne Penalty, off-side (Jason Patterson) to the DUQ 45 | +5 |
| 6:43 | 2nd & 3 | opp 45 | Deondre Scott run for 7 yds to the DUQ 38 for a 1ST down | +7 |
| 6:43 | 1st & 10 | opp 38 | Cole Doyle pass complete to Jake Bruno for 11 yds to the DUQ 27 for a 1ST down | +11 |
| 6:43 | 1st & 10 | opp 27 | Cole Doyle run for 15 yds to the DUQ 12 for a 1ST down | +15 |
| 6:43 | 1st & 10 | opp 12 | Cole Doyle sacked for a loss of 4 yards to the DUQ 16 | −4 |
| 6:43 | 2nd & 14 | opp 16 | Cole Doyle pass incomplete to Jake Bruno, broken up by Antonio Epps | 0 |
| 6:43 | 3rd & 14 | opp 16 | Cole Doyle pass incomplete to Deondre Scott, broken up by Steve Cmielewski for a 1ST down Duquesne Penalty, Defensive pass interference (Steve Cmielewski) to the DUQ 11 for a 1ST down | +5 |
| 6:43 | 1st & 10 | opp 11 | Jordan Jackson run for 3 yds to the DUQ 8 | +3 |
| 6:43 | 2nd & 7 | opp 8 | Cole Doyle pass incomplete to Jake Bruno, broken up by Ayden Garnes | 0 |
| 6:43 | 3rd & 7 | opp 8 | Cole Doyle run for 7 yds to the DUQ 1 for a 1ST down | +7 |
| 0:00 | 1st & goal | opp 1 | Jordan Jackson 1 Yd Run (Macrae Plummer Kick) | +1 |
| 0:00 | opp 1 | End of 3rd Quarter | 0 | |
DUQ7 plays, 54 yd · Touchdown | ||||
| 14:52 | 1st & 10 | own 35 | Macrae Plummer kickoff for 61 yds , Keshawn Brown return for 42 yds to the DUQ 46 | +42 |
| 14:52 | 1st & 10 | own 46 | Darius Perrantes pass complete to Darryl Powell Jr. for 2 yds to the DUQ 48 | +2 |
| 14:52 | 2nd & 8 | own 48 | Darius Perrantes pass incomplete to Joey Isabella, broken up by Desmond Harrod | 0 |
| 14:52 | 3rd & 8 | own 48 | Darius Perrantes pass complete to Joey Isabella for 41 yds to the SFPA 11 for a 1ST down | +41 |
| 14:52 | 1st & 10 | opp 11 | Darius Perrantes pass complete to Keshawn Brown for 9 yds to the SFPA 2 | +9 |
| 14:52 | 2nd & 1 | opp 2 | Taj Butts run for a loss of 2 yards to the SFPA 4 | −2 |
| 11:48 | 3rd & 3 | opp 4 | T. Butts run for 4 yds for a TD (B. Bruzdewicz KICK) | +4 |
SFPA8 plays, 74 yd · Touchdown | ||||
| 11:42 | 1st & 10 | own 35 | Matt Clark kickoff for 62 yds , DaMario Crawford return for 23 yds to the SFPA 26 | +23 |
| 11:42 | 1st & 10 | own 26 | Cole Doyle pass complete to Dawson Snyder for 6 yds to the SFPA 32 | +6 |
| 11:42 | 2nd & 4 | own 32 | Cole Doyle pass complete to Jordan Jackson for 10 yds to the SFPA 42 for a 1ST down | +10 |
| 11:42 | 1st & 10 | own 42 | Cole Doyle pass complete to Dawson Snyder for 24 yds to the DUQ 34 for a 1ST down | +24 |
| 11:42 | 1st & 10 | opp 34 | Cole Doyle pass complete to Aaron Tutino for 14 yds to the DUQ 20 for a 1ST down | +14 |
| 11:42 | 1st & 10 | opp 20 | Cole Doyle pass incomplete to Aaron Tutino, broken up by Sam Brown | 0 |
| 11:42 | 2nd & 10 | opp 20 | Cole Doyle pass complete to Dawson Snyder for 19 yds to the DUQ 1 for a 1ST down | +19 |
| 8:32 | 1st & goal | opp 1 | M. Imbt run for 1 yd for a TD (M. Plummer KICK) | +1 |
DUQ8 plays, 71 yd · Touchdown | ||||
| 8:29 | 1st & 10 | own 35 | Macrae Plummer kickoff for 36 yds , Jordan Heisey return for no gain to the DUQ 29 | 0 |
| 8:29 | 1st & 10 | own 29 | JaMario Clements run for 11 yds to the DUQ 40 for a 1ST down | +11 |
| 8:29 | 1st & 10 | own 40 | JaMario Clements run for 6 yds to the DUQ 46 | +6 |
| 8:29 | 2nd & 4 | own 46 | JaMario Clements run for 6 yds to the SFPA 48 for a 1ST down | +6 |
| 8:29 | 1st & 10 | opp 48 | Edward Robinson run for 2 yds to the SFPA 46 | +2 |
| 8:29 | 2nd & 8 | opp 46 | Edward Robinson run for 2 yds to the SFPA 44 | +2 |
| 8:29 | 3rd & 6 | opp 44 | pass incomplete to Darryl Powell Jr. | 0 |
| 4:24 | 4th & 6 | opp 44 | Trey McLeer 40 Yd Return of Blocked Punt (Macrae Plummer Kick) | +40 |
DUQ8 plays, 29 yd · Missed FG | ||||
| 4:22 | 1st & 10 | own 35 | Macrae Plummer kickoff for 14 yds | 0 |
| 4:22 | 1st & 10 | opp 49 | Taj Butts run for 6 yds to the SFPA 43 | +6 |
| 4:22 | 2nd & 4 | opp 43 | Taj Butts run for 3 yds to the SFPA 40 | +3 |
| 4:22 | 3rd & 1 | opp 40 | St. Francis (PA) Penalty, unsportsmanlike conduct (Pierre Royster) to the SFPA 25 for a 1ST down | +15 |
| 4:22 | 1st & 10 | opp 25 | Taj Butts run for 3 yds to the SFPA 22 | +3 |
| 2:51 | 2nd & 7 | opp 22 | Taj Butts run for 1 yd to the SFPA 21 | +1 |
| 2:45 | 3rd & 6 | opp 21 | Taj Butts run for 1 yd to the SFPA 20 | +1 |
| 2:33 | 4th & 5 | opp 20 | Brian Bruzdewicz 38 yd FG MISSED | +38 |
SFPA7 plays, 80 yd · Touchdown | ||||
| 2:33 | 1st & 10 | own 20 | Cole Doyle pass incomplete, broken up by Alex Reese III | 0 |
| 2:33 | 2nd & 10 | own 20 | pass incomplete to Jordan Jackson | 0 |
| 2:33 | 3rd & 10 | own 20 | Cole Doyle pass complete to Dawson Snyder for 16 yds to the SFPA 36 for a 1ST down | +16 |
| 2:33 | 1st & 10 | own 36 | Cole Doyle pass complete to Aaron Tutino for 17 yds to the DUQ 47 for a 1ST down | +17 |
| 2:33 | 1st & 10 | opp 47 | Cole Doyle pass complete to Dawson Snyder for 21 yds to the DUQ 26 for a 1ST down | +21 |
| 1:29 | 1st & 10 | opp 26 | Cole Doyle run for 23 yds to the DUQ 3 for a 1ST down | +23 |
| 0:57 | 1st & goal | opp 3 | C. Doyle pass to J. Ivory for 3 yds for a TD (M. Plummer KICK) | +3 |
SFPA6 plays, 18 yd · Missed FG | ||||
| 0:54 | 1st & 10 | own 35 | Macrae Plummer kickoff for 20 yds | 0 |
| 0:54 | 1st & 10 | opp 45 | Cole Doyle run for 11 yds to the DUQ 34 Duquesne Penalty, personal foul (CJ Barnes) to the DUQ 19 | +26 |
| 0:54 | 1st & 10 | opp 19 | Nick Whitfield Jr. run for a loss of 3 yards to the DUQ 22 | −3 |
| 0:19 | 3rd & 13 | opp 22 | St. Francis (PA) Penalty, delay of game (Mason Frye) to the DUQ 27 | −5 |
| 0:19 | 3rd & 18 | opp 27 | pass incomplete to Dawson Snyder | 0 |
| 0:10 | 4th & 18 | opp 27 | Macrae Plummer 45 yd FG MISSED | +45 |
DUQ1 play, -13 yd · End of period | ||||
| 0:10 | 1st & 10 | own 27 | Duquesne Penalty, unsportsmanlike conduct (Ayden Garnes) to the DUQ 14 | −13 |
Field position is from the offense’s point of view, the same as the drive chart. Play descriptions are CFBD’s own.
Previous 10 meetings vs. Team
Duquesne 6–4 vs Saint Francis
- 2022 · wk 11Duquesne 14 @ Saint Francis 51
- 2021 · wk 9Saint Francis 17 @ Duquesne 10
- 2019 · wk 10Saint Francis 21 @ Duquesne 30
- 2018 · wk 8Duquesne 27 @ Saint Francis 20
- 2017 · wk 8Saint Francis 7 @ Duquesne 24
- 2016 · wk 8Duquesne 10 @ Saint Francis 14
- 2015 · wk 12Saint Francis 20 @ Duquesne 30
- 2014 · wk 10Duquesne 16 @ Saint Francis 26
- 2013 · wk 10Saint Francis 10 @ Duquesne 21
- 2012 · wk 5Saint Francis 21 @ Duquesne 24
Research
Keep this open while you look at others