<?xml version="1.0" encoding="utf-8"?>
<ArrayOfObjTrainPositions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://api.irishrail.ie/realtime/">
  <objTrainPositions>
    <TrainStatus>N</TrainStatus>
    <TrainLatitude>53.3397</TrainLatitude>
    <TrainLongitude>-6.23773</TrainLongitude>
    <TrainCode>D426</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>D426\nGrand Canal Dock to Hazelhatch\nExpected Departure 23:30</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>N</TrainStatus>
    <TrainLatitude>53.3397</TrainLatitude>
    <TrainLongitude>-6.23773</TrainLongitude>
    <TrainCode>D841</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>D841\nGrand Canal Dock to Dundalk\nExpected Departure 23:40</PublicMessage>
    <Direction>To Dundalk</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>N</TrainStatus>
    <TrainLatitude>53.3531</TrainLatitude>
    <TrainLongitude>-6.24591</TrainLongitude>
    <TrainCode>B122</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>B122\nDublin Connolly to Drogheda\nExpected Departure 23:40</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>N</TrainStatus>
    <TrainLatitude>53.4509</TrainLatitude>
    <TrainLongitude>-6.15649</TrainLongitude>
    <TrainCode>E703</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E703\nMalahide to Dublin Connolly\nExpected Departure 23:40</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>0</TrainLatitude>
    <TrainLongitude>0</TrainLongitude>
    <TrainCode>A720</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A720\n16:30 - Dublin Heuston to Galway (268 mins late)\nDeparted GL368 next stop Galway</PublicMessage>
    <Direction>To Galway</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>0</TrainLatitude>
    <TrainLongitude>0</TrainLongitude>
    <TrainCode>D940</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>D940\n23:18 - Grand Canal Dock to Maynooth (3 mins late)\nDeparted North Strand Junction next stop Drumcondra</PublicMessage>
    <Direction>To Maynooth</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>52.1396</TrainLatitude>
    <TrainLongitude>-8.65521</TrainLongitude>
    <TrainCode>A230</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A230\n21:00 - Dublin Heuston to Cork (24 mins late)\nArrived Mallow next stop Cork</PublicMessage>
    <Direction>To Cork</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>52.6404</TrainLatitude>
    <TrainLongitude>-8.52719</TrainLongitude>
    <TrainCode>A450</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A450\n22:40 - Limerick Junction to Limerick (23 mins late)\nDeparted Killonan next stop Limerick</PublicMessage>
    <Direction>To Limerick</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.1855</TrainLatitude>
    <TrainLongitude>-6.80807</TrainLongitude>
    <TrainCode>A731</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A731\n20:50 - Galway to Dublin Heuston (20 mins late)\nDeparted Newbridge next stop Dublin Heuston</PublicMessage>
    <Direction>To Dublin Heuston</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.2043</TrainLatitude>
    <TrainLongitude>-6.10046</TrainLongitude>
    <TrainCode>E701</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E701\n23:20 - Greystones to Dublin Connolly (1 mins late)\nArrived Bray next stop Woodbrook</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.22</TrainLatitude>
    <TrainLongitude>-6.1101</TrainLongitude>
    <TrainCode>E262</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E262\n22:19 - Howth to Bray (3 mins late)\nDeparted Woodbrook next stop Bray</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.2364</TrainLatitude>
    <TrainLongitude>-6.11691</TrainLongitude>
    <TrainCode>A623</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A623\n21:35 - Wexford to Dublin Connolly (3 mins late)\nDeparted Shankill next stop Dun Laoghaire</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.2756</TrainLatitude>
    <TrainLongitude>-6.10333</TrainLongitude>
    <TrainCode>E133</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E133\n22:33 - Malahide to Greystones (0 mins late)\nArrived Dalkey next stop Killiney</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3015</TrainLatitude>
    <TrainLongitude>-8.74855</TrainLongitude>
    <TrainCode>A728</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A728\n19:35 - Dublin Heuston to Galway (79 mins late)\nDeparted Athenry next stop Oranmore</PublicMessage>
    <Direction>To Galway</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3027</TrainLatitude>
    <TrainLongitude>-6.17833</TrainLongitude>
    <TrainCode>E951</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E951\n22:52 - Greystones to Howth (1 mins late)\nArrived Blackrock next stop Booterstown</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3334</TrainLatitude>
    <TrainLongitude>-6.40628</TrainLongitude>
    <TrainCode>P229</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>P229\n22:30 - Portlaoise to Dublin Heuston (4 mins late)\nArrived Clondalkin next stop Park West and Cherry Orchard</PublicMessage>
    <Direction>To Dublin Heuston</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3353</TrainLatitude>
    <TrainLongitude>-6.45233</TrainLongitude>
    <TrainCode>D226</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>D226\n23:10 - Dublin Heuston to Kildare (1 mins late)\nDeparted Adamstown next stop Hazelhatch</PublicMessage>
    <Direction>To Kildare</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3363</TrainLatitude>
    <TrainLongitude>-8.24081</TrainLongitude>
    <TrainCode>A743</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A743\n22:25 - Galway to Athlone (20 mins late)\nDeparted Ballinasloe next stop Athlone</PublicMessage>
    <Direction>To Athlone</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3432</TrainLatitude>
    <TrainLongitude>-8.47231</TrainLongitude>
    <TrainCode>A726</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A726\n18:30 - Dublin Heuston to Galway (175 mins late)\nDeparted Woodlawn next stop Athenry</PublicMessage>
    <Direction>To Galway</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3432</TrainLatitude>
    <TrainLongitude>-8.47231</TrainLongitude>
    <TrainCode>A730</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A730\n20:30 - Dublin Heuston to Galway (50 mins late)\nDeparted Woodlawn next stop Athenry</PublicMessage>
    <Direction>To Galway</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.347</TrainLatitude>
    <TrainLongitude>-6.25425</TrainLongitude>
    <TrainCode>E848</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E848\n22:42 - Bray to Malahide (4 mins late)\nDeparted Tara Street next stop Dublin Connolly</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3531</TrainLatitude>
    <TrainLongitude>-6.24591</TrainLongitude>
    <TrainCode>E263</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E263\n22:56 - Howth to Bray (10 mins late)\nDeparted Dublin Connolly next stop Tara Street</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3629</TrainLatitude>
    <TrainLongitude>-6.22753</TrainLongitude>
    <TrainCode>A131</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>A131\n21:00 - Belfast to Dublin Connolly (22 mins late)\nDeparted Clontarf Road next stop Dublin Connolly</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3786</TrainLatitude>
    <TrainLongitude>-6.19131</TrainLongitude>
    <TrainCode>E134</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E134\n23:05 - Malahide to Greystones (9 mins late)\nArrived Harmonstown next stop Killester</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3786</TrainLatitude>
    <TrainLongitude>-6.19131</TrainLongitude>
    <TrainCode>E950</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E950\n22:20 - Greystones to Howth (1 mins late)\nArrived Harmonstown next stop Raheny</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.3831</TrainLatitude>
    <TrainLongitude>-6.4242</TrainLongitude>
    <TrainCode>P768</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>P768\n23:13 - Maynooth to Dublin Connolly (0 mins late)\nDeparted Clonsilla next stop Coolmine</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>R</TrainStatus>
    <TrainLatitude>53.387</TrainLatitude>
    <TrainLongitude>-6.16163</TrainLongitude>
    <TrainCode>E702</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E702\n23:21 - Howth to Dublin Connolly (0 mins late)\nDeparted Kilbarrack next stop Raheny</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>T</TrainStatus>
    <TrainLatitude>53.3397</TrainLatitude>
    <TrainLongitude>-6.23773</TrainLongitude>
    <TrainCode>P423</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>P423\n22:42 - Hazelhatch to Grand Canal Dock(7 mins late)\nTERMINATED Grand Canal Dock at 23:32</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>T</TrainStatus>
    <TrainLatitude>53.3531</TrainLatitude>
    <TrainLongitude>-6.24591</TrainLongitude>
    <TrainCode>P714</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>P714\n22:05 - Drogheda to Dublin Connolly(14 mins late)\nTERMINATED Dublin Connolly at 23:26</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>T</TrainStatus>
    <TrainLatitude>53.3831</TrainLatitude>
    <TrainLongitude>-6.4242</TrainLongitude>
    <TrainCode>P335</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>P335\n23:15 - M3 Parkway to Clonsilla(-1 mins late)\nTERMINATED Clonsilla at 23:25</PublicMessage>
    <Direction>Southbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>T</TrainStatus>
    <TrainLatitude>53.4509</TrainLatitude>
    <TrainLongitude>-6.15649</TrainLongitude>
    <TrainCode>E847</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>E847\n22:12 - Bray to Malahide(2 mins late)\nTERMINATED Malahide at 23:29</PublicMessage>
    <Direction>Northbound</Direction>
  </objTrainPositions>
  <objTrainPositions>
    <TrainStatus>T</TrainStatus>
    <TrainLatitude>54.0007</TrainLatitude>
    <TrainLongitude>-6.41291</TrainLongitude>
    <TrainCode>D837</TrainCode>
    <TrainDate>29 May 2026</TrainDate>
    <PublicMessage>D837\n21:40 - Grand Canal Dock to Dundalk(9 mins late)\nTERMINATED Dundalk at 23:30</PublicMessage>
    <Direction>To Dundalk</Direction>
  </objTrainPositions>
</ArrayOfObjTrainPositions>