Another day in America, another school shooting. This week, it is Madison, Wisconsin's turn to mourn and wonder why.
A student and a teacher were killed and six others wounded on Monday when a 15-year-old student, a girl, opened fire inside Abundant Life Christian School.
Natalie Rupnow, the shooter, lies dead, killed by an apparently self-inflicted gunshot wound. Her motives are, as of yet, unknown.
Inevitably, this tragedy evokes memories of the very worst shootings, including the notorious 2022 massacre that claimed the lives of 19 elementary school students and two teachers, overwhelming the small border town of Uvalde, Texas.
It was nearly 11:30am on Tuesday, May 24 when 18-year-old Salvador Ramos crashed his pickup truck into a ditch, climbed out and headed on foot for Robb Elementary School.
The minutes that followed shook America, not just because of the savagery unleashed. But because of the bewildering inaction of officers, agents and police commanders who spent more than an hour waiting while, just a few feet away, Ramos was murdering with impunity.
Nineteen children and two teachers would eventually lie dead. Many more were injured.
Glued to the police scanner, journalists at the local newspaper monitored the unfolding disaster from the beginning.
To them, it was the most personal of stories; by the end of it, a staff reporter's daughter, Lexi Rubio, was among the victims.
Now the owner of the Uvalde Leader-News, Craig Garnett, has published his own devastating account of the 2022 catastrophe in Uvalde's Darkest Hour.
Bloodstained Khloie Torres, who was trapped in room 112 of Robb Elementary School while Salvador Ramos killed her teachers and classmates. She made four 911 calls asking for help.
Police wait outside the classrooms while, on the other side of the door, the killer is terrorizing two classes full of fourth grade students.
Calling on personal testimony from those caught up in a nightmare every American parent must fear, 'Uvalde's Darkest Hour' walks us through 77 terrifying minutes – a living hell in which young children and teachers cowered amid the darkness, dead bodies and gunfire praying that someone in authority would come to help.
No one did.
11:33am
Salvador Ramos, an 18-year-old former pupil, steps through the unlocked west door of the school. He has already sprayed the playground with his AR-15, scattering students and teachers. Now, he approaches two connected fourth-grade classes, rooms 111 and 112.
This is school awards day at Robb and the mood is celebratory. The children in 111 are watching The Addams Family on Netflix.
There is no warning. It's only when class teacher Arnulfo Reyes hears gunfire from 112 next door – and sees lumps of sheetrock flying from the walls – that he realizes the danger.
According to the author, Reyes tells the children to 'go to their places, close their eyes and play like they were asleep'.
That's when Ramos appears, first blasts the teacher then turns the assault rifle on the children in 111 who, in Reyes' words, are now crouched 'like sitting ducks' beneath a computer table stretched along one side of the room.
Uvalde County Justice of The Peace, Lalo Diaz, later says Ramos had swept the gun backwards and forwards as if using a water hose. Reyes miraculously survives.
The exact sequence of what happened inside the school is still unclear. What is undisputed is that within the first two and a half minutes, Ramos fires more than 100 rounds of .223caliber ammunition at two groups of nine- and 10-year-olds.
Teacher Irma Garcia in room 112 is shot 11 times and falls forwards with seven children gathered behind her, holding out her arms as if to protect them.
Police officers convinced themselves they were dealing with a gunman who was barricaded into a room by himself. They were catastrophically wrong.
Teacher Irma Garcia (pictured) in room 112 is shot 11 times and falls forwards with seven children gathered behind her, holding out her arms as if to protect them.
11.35am
The alarm had been raised as soon as Ramos approached the school and officers from the Uvalde Police Department (UPD) are quickly on the scene. But gunfire is already echoing as they follow the shooter's path through dust and debris inside.
Walls are riddled with holes. Brass shell casings lie underfoot.
In room 109, teacher Elsa Avila lies struggling. A bullet from rooms 111 or 112 has passed through the wall and struck her in the right side of the chest, lodging in her colon.
She falls to the ground in front of her students and her phone spins across the floor. But Avila crawls after it and texts a family group saying, 'I'm shot and bleeding'.
She also texts Mercedes Salas, a friend and fellow teacher in room 106, directly across the hall from room 112.
Salas and her students are already crouched in darkness, the air thick with dust as bullets rip through the walls, inches above their heads.
The gunfire doesn't stop, she later tells the author. It continues on and off for 45 minutes as they pray for the police to come and pull them from the windows.
In room 109, teacher Elsa Avila (pictured) lies struggling. A bullet from rooms 111 or 112 has passed through the wall and struck her in the right side of the chest, lodging in her colon.
The alarm had been raised as soon as Ramos approached the school and officers from the Uvalde Police Department (UPD) are quickly on the scene. But gunfire is already echoing as they follow the shooter's path through dust and debris inside.
11:37am
Officers from the UPD and the school district police converge on rooms 111 and 112. One officer peers into a darkened vestibule between the two classrooms and draws fire. They don't shoot back, fearing they might hit students.
11:38am
Eduardo Canales, who heads the UPD SWAT team, can see the truth and demands immediate action: 'Dude, we gotta get in there!' he says. 'He's gonna keep shooting! We gotta get in there.'
Yet it would still be more than an hour before anyone did that.
In 111, teacher Arnulfo Reyes is lying on a shredded arm. There's now a gaping hole in his back, as well.
After terrorizing Room 112, Ramos returns to torment the wounded teacher. Kneeling in front of him, Ramos flicks blood from the floor on to Reyes's face to see if he's really dead.
He tries dripping cold water on the body. Reyes' phone is chirping with texts and calls from desperate friends and relatives. Ramos responds by dropping it on his back no fewer than four times. Reyes is in too much pain to even flinch.
It seems to be around this time, writes Garnett, some five minutes into the bloody debacle, that fear and incompetence overwhelm the official response.
The lesson of the 1999 Columbine massacre in Colorado – that the shooter must be stopped at the earliest opportunity – flies out of the window.
The realization that Ramos has a weapon capable of firing body armor-piercing bullets at the rate of 100 rounds a minute seems to paralyze officers and commanders, Garnett writes, and a bewildering series of delays now follows.
Uvalde police chief Pete Arredondo investigates room 110 and finds it empty.
Mercifully, the children had been herded to safety by their teacher, but Arredondo concludes that 111 and 112 might be empty, too, because this is awards day at Robb Elementary and, perhaps, the children are out enjoying themselves.
His conclusion flies in the face of logic. The police have already evacuated second- and third-grade classrooms that were full of children. A simple phone call to the principal – locked down in the cafeteria – would have told them that the fourth-grade classrooms were also nearly full.
Uvalde police chief Pete Arredondo (pictured, far left) investigates room 110 and finds it empty.
Somehow, those in command embrace the fiction that they are dealing not with an active gunman murdering children, writes Garnett, but a 'barricaded suspect'.
They believe the gunman is hiding in an empty classroom or a classroom already filled with dead bodies. They can, in other words, proceed with caution.
'Fear,' says Garnett, has 'sucked the wind from active shooter protocol.'
11:43am
Officer Daniel Coronado from the UPD is recorded saying, 'Oh no, oh no' under his breath. He has just heard over the radio that teacher Eva Mirales – an officer's wife – is inside 112 with a full class of children. And the gunman.
Coronado does not yet realize that his ten-year-old cousin Xavier Lopez is among them, fighting for his life with gunshot wounds.
11:48am
Mirales has somehow tied a plastic bag around her wounded arm and she calls or texts husband Ruben Ruiz, an officer with the school district police. He is stationed just yards from her room. Bodycam footage shows Ruiz holding up his phone 'as if in supplication', writes Garnett.
'My wife says she has been shot,' says Ruiz before he is led away.
Officer Daniel Coronado from the UPD is recorded saying, 'Oh no, oh no' under his breath. He has just heard over the radio that teacher Eva Mirales (pictured) – an officer's wife – is inside 112 with a full class of children. And the gunman.
12:03pm
One of the first 911 calls is made. 'There's a school…' says a muffled voice, but the call breaks up before concluding with, 'at Robb elementary.'
When the dispatcher asks for a name and room number, there is no reply.
12:10pm
Khloie Torres, a student in room 112, calls 911 and gets through, saying, 'There's a lot of bodies.'
She is not the first to try. Her best friend, Amerie Jo Garza was dialing when Ramos shot her along with teacher Irma Garcia.
Torres tries to switch her friend's phone off, afraid it would attract attention, but as she does so, Ramos tries to shoot her, too. At great personal risk, wounded by shrapnel, she tries the phone belonging to wounded teacher, Eva Mireles.
She would later recall: '[Mrs Garcia] ran over to us, sat down and started covering my friend. She started saying "no" because he said, "you will die" and he shot my friend with the phone and he shot my teachers Ms Garcia and Ms Mireles.'
Khloie describes Mireles 'screaming and crying and calling for her daughter.'
12:12pm
The 911 message is relayed to police commanders including Lt Mariano Pargas, Acting Chief of the UPD, who is on the scene at the school.
12:16pm
Pargas calls the 911 dispatcher for more information. It is confirmed that Khloie is in 112, that many students are dead but that she believes eight or nine are still alive.
12:18pm
Footage shows Pargas leaving the scene. There is no footage of him returning until the shooting is over, writes Garnett. News of the 911 call is shared with Paul Guerror, acting commander of the Border Patrol's elite Tactical Unit (BORTAC). It would be another 40 minutes before they act.
Distressed crowds of parents and relatives gathered outside the school and, later, the Uvalde Civic Center, where the surviving students from Robb Elementary were taken.
12:19pm
In 112, 10-year-old Noah Orona lies bleeding. The bullet has shredded his back and exited near the shoulder blade
His parents later recount how Noah heard a boy saying 'hide with us' beneath the computer table with a curtain hanging down to the floor.
Noah, big for his age, was afraid that if he made it to the table his legs would stick out. He can hardly move, in any case.
He lies still, listening to a girl nearby who is struggling to breathe.
12:21pm
Surveillance videos in the hallway record four more shots being fired. Yet, officers still take no direct action.
They are waiting for ballistic shields, for more firepower and even for keys to unlock a door that in all probability was not locked, writes Garnett.
The search for a master key takes more than 40 minutes.
Arredondo tries more than 30 keys to room 109, where Ms Avila is crouching behind the door. If he'd said who he was, she likely would have opened it.
Officers begin evacuating students on the west side of the school.
Some windows are thrown open by teachers, others have the glass smashed by police. Terrified students run in the direction of the fearful, angry crowd of parents gathering outside.
12:30pm
A team from BORTAC finally moves into position – but then waits for another 20 agonizing minutes.
12:36pm
Khloie Torres makes another call, saying 'there's been a school shooting'.
The dispatcher responds: 'I was talking to you earlier. Are you still in 112?'
'Can you tell the police to come to my room?' Khloie whispers.
The dispatcher says, 'I've already told them to go to the room.'
Khloie had called 911 a total of four times, pleading with the police to save them.
12:50pm
Finally, four members of BORTAC enter room 111. Ramos opens fire but is overwhelmed by a hail of bullets. The killer is hit with 25 rounds.
He is found face down but with his body twisted so that he appears to be face up, says one witness, as if 'completely broken in the middle'.
Classroom teacher Arnulfo Reyes is also face down in his own blood, eyes tight shut.
When the barrage stops, a Border Patrol agent advises him to get up and leave the room. But Reyes cannot move. The last thing he remembers is being dragged into the hallway by the leg.
Eva Mireles, 44, Irma Garcia, 48 and Xavier Lopez, ten, were among the 21 students and teachers murdered at Uvalde. Two weeks later, Irma's husband, 50-year-old Joe Garcia, died of a heart attack. They were buried together.
Uvalde's Darkest Hour by Craig Garnett is published by Texas A&M University Press, price $30