You are given two arrays of strings that represent two inclusive events that happened **on the same day**, `event1` and `event2`, where:

*   `event1 = [startTime1, endTime1]` and
*   `event2 = [startTime2, endTime2]`.

Event times are valid 24 hours format in the form of `HH:MM`.

A **conflict** happens when two events have some non-empty intersection (i.e., some moment is common to both events).

Return `true` _if there is a conflict between two events. Otherwise, return_ `false`.

**Example 1:**

**Input:** event1 = \[ "01:15 ", "02:00 "\], event2 = \[ "02:00 ", "03:00 "\]
**Output:** true
**Explanation:** The two events intersect at time 2:00.

**Example 2:**

**Input:** event1 = \[ "01:00 ", "02:00 "\], event2 = \[ "01:20 ", "03:00 "\]
**Output:** true
**Explanation:** The two events intersect starting from 01:20 to 02:00.

**Example 3:**

**Input:** event1 = \[ "10:00 ", "11:00 "\], event2 = \[ "14:00 ", "15:00 "\]
**Output:** false
**Explanation:** The two events do not intersect.

**Constraints:**

*   `evnet1.length == event2.length == 2.`
*   `event1[i].length == event2[i].length == 5`
*   `startTime1 <= endTime1`
*   `startTime2 <= endTime2`
*   All the event times follow the `HH:MM` format.


def has_event_conflict(start1: str, end1: str, start2: str, end2: str) -> bool:
    start_hour1, start_min1 = map(int, start1.split(":"))
    start_hour2, start_min2 = map(int, start2.split(":"))
    end_hour1, end_min1 = map(int, end1.split(":"))
    end_hour2, end_min2 = map(int, end2.split(":"))

    total_min1_start = start_hour1 * 60 + start_min1
    total_min1_end = end_hour1 * 60 + end_min1
    total_min2_start = start_hour2 * 60 + start_min2
    total_min2_end = end_hour2 * 60 + end_min2

    return not (total_min1_end <= total_min2_start or total_min1_start >= total_min2_end)
