Trial 2 Transcript Ian Whiffin
Trial 2 / Day 5 / April 28, 2025
3 pages · 3 witnesses · 2,059 lines
Cellebrite expert Ian Whiffin places O'Keefe's phone at the flagpole all night while an ARCCA admissibility hearing exposes deleted texts, encrypted communications, and sequestration violations by the defense's accident reconstruction experts.
Procedural Procedural - Motions
1 36:23

COURT CLERK: Hear ye, all persons having any business before the honorable Beverly J. Cannone, justice of the Norfolk Superior Court of the County of Norfolk. Draw near, give your attention, you shall be heard. God save the Commonwealth of Massachusetts. This court is now open. You may be seated.

2 36:26

JUDGE CANNONE: All right. Good morning, counsel. Good morning, Miss Read. Good morning, jurors. Good morning. I do have to ask you those same three questions. Were you all— actually, I guess, were you all able to follow the instructions and refrain from discussing this case with anyone since we were last here on Friday? Everyone said yes and nodded affirmatively. Were you also able to follow the instructions and refrain from doing any independent research or investigation into this case? Everyone said yes and nodded affirmatively. Did anyone happen to see, hear, or read anything about this case since we left on Friday? And were you all careful? Everyone said no or shook their heads. Were you all careful with your social media this weekend? Yes. Thank you very much. All right, Mr. Brennan.

3 37:05

MR. BRENNAN: Good morning, your honor.

4 37:20

JUDGE CANNONE: Good morning.

5 37:28

MR. BRENNAN: Call Ian Whiffin.

6 37:39

JUDGE CANNONE: Okay. Approach matters. All right. Just come on out.

7 38:14

COURT CLERK: Calls Ian Whiffin. Please face our clerk and raise your right hand. Do you swear that the evidence you give to the court and jury in this case will be the truth, the whole truth, and nothing but the truth?

8 40:49

MR. WHIFFIN: I do.

9 40:57

MR. BRENNAN: Good morning, sir.

10 40:58

MR. WHIFFIN: Good morning.

11 40:59

MR. BRENNAN: May I, your honor?

12 41:00

JUDGE CANNONE: Yes, please.

13 41:01

MR. BRENNAN: Good morning, sir.

14 41:03

MR. WHIFFIN: Good morning.

15 41:03

MR. BRENNAN: Would you kindly introduce yourself to the jury?

16 41:07

MR. WHIFFIN: Yes. My name is Ian Whiffin. I'm a digital forensics examiner and decoding product manager for Cellebrite.

17 41:14

MR. BRENNAN: You just mentioned Cellebrite. Is that where you work?

18 41:18

MR. WHIFFIN: It is. Yes.

19 41:20

MR. BRENNAN: And you're a forensic examiner.

20 41:22

MR. WHIFFIN: I am.

21 41:23

MR. BRENNAN: Can you tell us a little bit about Cellebrite where you work?

22 41:28

MR. WHIFFIN: Yes. Cellebrite provides digital forensic solutions to customers globally for access and decoding of digital artifacts from devices.

23 41:36

MR. BRENNAN: Where would you find a digital system? Is that restricted to a phone or is it all systems?

24 41:44

MR. WHIFFIN: Typically Cellebrite focuses on phones or iPads, but we do have some additional devices that we can also interrogate— computers, vehicles, things like that.

25 41:50

MR. BRENNAN: So simply, what is Cellebrite?

26 41:51

MR. WHIFFIN: Cellebrite is a digital intelligence company.

27 41:53

MR. BRENNAN: Do they use a certain type of software? Do they brand a certain type of software?

28 41:57

MR. WHIFFIN: Yeah, we create our own software to access devices and to decode the data that we pull from devices.

29 42:02

MR. BRENNAN: So essentially, does that software help you look into the data in a phone and analyze it?

30 42:06

MR. WHIFFIN: It does. Yes.

31 42:07

MR. BRENNAN: What is the role of a digital forensic analyst?

32 42:09

MR. WHIFFIN: Typically the analyst would take the data that's been extracted from a device such as a cell phone, process that in software such as a physical analyzer that Cellebrite creates, and use that information to filter, to search, and to create a report for the investigator that would allow them to see what happened on the device at the time being investigated.

33 42:26

MR. BRENNAN: How long have you been involved in analyzing data, sir?

34 42:29

MR. WHIFFIN: I started my career in digital forensics in 2013.

35 42:32

MR. BRENNAN: Can you take us back to the beginning of your career and tell us a little bit about how you became involved in learning about analyzing data?

36 42:42

MR. WHIFFIN: Certainly. I spent 5 years as a frontline police officer in the UK during the 2000s. In 2009, immigrated to Canada and continued policing— frontline officer in Calgary— before joining the digital forensics team in 2013. Pursued several qualifications related to digital forensics and just continued in that role until 2019, 2020 when I left the police agency and began working for Cellebrite.

37 43:06

MR. BRENNAN: While you were working at the police agency and began your career analyzing data, were there special classes that you took?

38 43:15

MR. WHIFFIN: There were. In order to be a forensics examiner in Canada, you have to take a 3-week foundational course in Ottawa, basically covering the basics of digital forensics, and then from there other courses are available that would focus on things like cell phones— would focus on how to get data from different types of devices— and then there's industry qualifications that can be sought as well where you can focus on particular types of device or particular types of data.

39 43:50

MR. BRENNAN: Does software in this field continually change?

40 43:53

MR. WHIFFIN: It does. Every time an update is released to an application or to an operating system, there's the opportunity for the foundation of that software to change. And from a forensics point of view, you have to re-understand what has changed, make sure you understand what is now happening on that device, and provide that information to the users.

41 44:24

MR. BRENNAN: As you've progressed through the field, do you continue to take classes?

42 44:30

MR. WHIFFIN: I've not taken a class now since I actually joined Cellebrite and did the basic foundational courses that Cellebrite offer. But prior to that, I was doing courses across the industry.

43 44:47

MR. BRENNAN: Do you teach courses?

44 44:49

MR. WHIFFIN: I do teach webinars. I don't teach any actual courses. Although some of my research and some of my tools are taught to examiners in many of the industry standard qualifications which users seek.

45 45:07

MR. BRENNAN: Do you ever write papers about the subject that are published?

46 45:13

MR. WHIFFIN: I do. I have a blog where I publish my research. Sometimes some of those become papers which get peer-reviewed and distributed in more academic channels.

47 45:23

MR. BRENNAN: So when one of your papers is peer reviewed, can you tell us what that means?

48 45:29

MR. WHIFFIN: Yeah, essentially other forensics examiners would read over the paper that I've written, do their own testing, compare their testing and research to what I've conducted, and make sure that what I've said is consistent with their findings. And presuming that what they find is the same as what I found, then they would agree that it's a valid document and it gets shared.

49 45:54

MR. BRENNAN: Take us now to Cellebrite. When you began working at Cellebrite, what did you do?

50 45:59

MR. WHIFFIN: When I started there, I was considered the senior digital intelligence analyst. My role was to help the developers of the software understand the role of a digital forensics examiner— what an examiner needs from the tool, what an examiner wants to do with the tool and how they want to use it. And then since then I've progressed to the decoding product manager where I can manage the backlog of software applications that we support, decide how we should support those applications, and how that information should look to the users.

51 46:32

MR. BRENNAN: Do you do research?

52 46:34

MR. WHIFFIN: I do still do research. Yes. It's not my primary function within Cellebrite. But it's something that I've continued to do throughout my career.

53 46:42

MR. BRENNAN: Have you ever done any programming?

54 46:44

MR. WHIFFIN: Yes. Again, I'm not an official programmer with Cellebrite, but I do program as well. And I have several tools which I've written myself for the last few years since around 2015— tools that I wrote to do the things that the vendor tools didn't do and to offer examiners things that the vendor tools didn't offer. And I continue to maintain those tools as a learning opportunity for myself and also because other examiners can make use of these same features.

55 47:12

MR. BRENNAN: Mr. Whiffin, have you ever testified in courts regarding forensic examination of data?

56 47:14

MR. WHIFFIN: I have. Yes.

57 47:15

MR. BRENNAN: And can you share a little bit about that?

58 47:17

MR. WHIFFIN: I've been qualified as an expert in Canada, Australia, the UK, in total around 20 times.

59 47:20

MR. BRENNAN: I want you to take us now to the Cellebrite software. We talked a little bit about it. I don't want to go into too much detail, but can you help us explain how software works like Cellebrite software?

60 47:28

MR. WHIFFIN: Yes. So fundamentally when we've got data from a device, it's a series of files, a series of databases, property lists or all manner of different structured data. The software that we create knows where these files exist, knows how to read these files and what the data inside them means and provides a clear view for the user to view that data. As an example, if you were to look at the SMS database on a device, all you would see is a long list of messages that don't really have an easy way to interpret or to read them. Our software takes that information, converts it into a conversational view so that as a user you can read the data, you can see who sent what message, what time it was sent.

61 47:56

MR. WHIFFIN: We can do decoding and decryption of various different types of security to give the user as much information as possible.

62 48:39

MR. BRENNAN: Is there other software available in addition to Cellebrite?

63 48:41

MR. WHIFFIN: There is. There's multiple vendor supply tools and multiple tools available that are maintained by users in the community like myself.

64 48:47

MR. BRENNAN: Does a forensic examiner — should they rely simply on the software program or is there more to do other than the program itself?

65 48:54

MR. WHIFFIN: The software program is great at finding the data and displaying the data. But I always maintain it's the role of the examiner to actually understand what that data means and provide context and validation for what that data means. Making sure that the end user of the report, whether that's the investigator, a judge or a jury, can understand what that data actually means rather than just taking it at face value from the software.

66 49:17

MR. BRENNAN: Does the software create a report that you can look at that manages or arranges some of the data that you can see?

67 49:25

MR. WHIFFIN: It does. It just creates a list of all of the results that the examiner wants to include in the report.

68 49:32

MR. BRENNAN: So, the software can produce a report, but the examiner goes beyond the report and looks into the data itself.

69 49:39

MR. WHIFFIN: The examiner can and should go beyond what the program provides.

70 49:43

MR. BRENNAN: Let's turn now to your involvement in this case. Can you share with us when you first became aware of the data in this case and how that came about?

71 49:54

MR. WHIFFIN: Yes, it was actually one of the public relations managers at Cellebrite who reached out to me, or to my team, because he'd heard about this case and about the confusion regarding a timestamp and requested if we could look into it and find out what the confusion was and how we could respond to it. At that point I contacted the investigators to get more details.

72 50:21

MR. BRENNAN: Did you learn that a consumer had called about a question relative to a report produced by the software?

73 50:29

MR. WHIFFIN: Yes, there was both the troopers who had requested information about this particular artifact and also a private forensics examiner, Richard Green.

74 50:38

MR. BRENNAN: And when Richard Green reached out to your company, what specifically was the question or issue?

75 50:45

MR. WHIFFIN: He reached out to the tech support team asking basically there's a timestamp that doesn't make sense. I need to understand what this timestamp means.

76 50:58

MR. BRENNAN: What is a timestamp?

77 51:00

MR. WHIFFIN: Essentially it is the time which is attributed to an artifact. So it should intentionally be when something happened on that device; we would show a timestamp associated to it.

78 51:15

MR. BRENNAN: Can you tell us what an artifact is?

79 51:19

MR. WHIFFIN: An artifact would be any piece of data that we pull from that device. So it could be a text message, it could be a location point, it could be a photograph.

80 51:26

MR. BRENNAN: So, if I had photographs on my phone, would each photograph be considered an artifact?

81 51:29

MR. WHIFFIN: It would. Yes.

82 51:30

MR. BRENNAN: Would the date and time I took the photograph be considered an artifact?

83 51:33

MR. WHIFFIN: I'd consider that a property of the artifact.

84 51:34

MR. BRENNAN: And if I had a phone call or a text message, those would be considered artifacts.

85 51:38
86 51:38

MR. BRENNAN: When I look at my phone and I see a call log or a name, does that tell me all the information about that call?

87 51:44

MR. WHIFFIN: When you look on the phone itself, no. There's usually a lot more information in the background of the phone that's available to the forensics examiner which the user wouldn't necessarily see on the device.

88 51:52

MR. BRENNAN: And so when you're looking at an artifact, a phone call, a text message, whatever it may be, and you see it on a report, if you want to know more detail where it came from, when it was developed, when it started, is that what a forensic examiner would do to look into the data to try to identify that other information?

89 52:10

MR. WHIFFIN: Yes, you can see what other information is available. You can see if there's any information that's been deleted that can be recovered, and you can validate the information that's there and make sure that the timestamps are being interpreted correctly and that they mean what you think they mean.

90 52:26

MR. BRENNAN: You told us you got a call from a consumer or a forensic examiner, Richard Green, about a timestamp. What type of timestamp for what type of artifact was this timestamp?

91 52:38

MR. WHIFFIN: It was related to an internet query.

92 52:41

MR. BRENNAN: And so there was an internet query on a phone that had a timestamp and this gentleman, Mr. Green had a question about it.

93 52:51

MR. WHIFFIN: He did. He wanted to know how accurate the timestamp was in relation to when the internet query was made.

94 52:59

MR. BRENNAN: Did you look into the question, the query that was made?

95 53:04

MR. WHIFFIN: In response to Richard Green at that time, I didn't. I wasn't aware that Richard Green had made this request until several months later. But it was an almost identical question that had been asked by the troopers here. And that's the question I was able to look into and to answer.

96 53:15

MR. BRENNAN: And can you share with us what was the issue? What was the question that you were actually looking into?

97 53:20

MR. WHIFFIN: The question was related to a timestamp of 2:27:40 a.m. and an internet query that appeared to have occurred at that time. There was no other information on the device that suggested that that internet query had occurred at that time. So we wanted to know how relevant is that timestamp to when the query happened. So I was able to take test devices, recreate test data, to find out exactly what this timestamp meant, and discovered that it was actually the timestamp that the tab within the browser was brought into focus and had no relevance to when the actual web query had been made.

98 53:44

MR. BRENNAN: And so after you looked into the issue and came to a determination or opinion, did you reach back out to Mr. Green?

99 53:53

MR. WHIFFIN: Eventually yes, I did. After I provided information to the troopers, I wrote a blog that covered this information, because there was another examiner in Europe who had a very similar question and I realized that this is a relatively common point of confusion. And then eventually I reached out to Richard Green offering to speak to him about this issue and clear up any confusion, but never received a response.

100 54:23

MR. BRENNAN: So to summarize — there was an inquiry about a phone that made a Google or internet search and the question is what time was that search made?

101 54:49

MR. WHIFFIN: Correct.

102 54:50

MR. BRENNAN: And relative to that inquiry, there was a timestamp on some of the data that said 2:27 a.m.

103 55:08

MR. WHIFFIN: Correct.

104 55:09

JUDGE CANNONE: Sustained.

105 55:09

MR. BRENNAN: So, at some point, did you have an opportunity to forensically examine a telephone that was attributed to a person by the name of Jennifer McCabe?

106 55:18

MR. WHIFFIN: I did have the opportunity to look at the data that was extracted from that device. I never saw the device itself.

107 55:25

MR. BRENNAN: Putting that aside for a second. Secondly, were you asked to look at any other phone to examine data in this case aside from the phone attributed to Jennifer McCabe?

108 55:35

MR. WHIFFIN: Yes. I was also sent the extraction of data from John O'Keefe's phone.

109 55:39

MR. BRENNAN: Did you look through the data and analyze some of the data in John O'Keefe's phone?

110 55:45

MR. WHIFFIN: I did. Yes.

111 55:46

MR. BRENNAN: So, I want to walk through both your analysis of Jennifer McCabe's phone, but also of John O'Keefe's phone. So, if we can first start with Miss McCabe's phone.

112 55:56
113 55:56

MR. BRENNAN: Did you actually receive her phone?

114 55:59

MR. WHIFFIN: I didn't. It was just a download of the extraction.

115 56:03

MR. BRENNAN: So, how does that work?

116 56:06

MR. WHIFFIN: The examiners here had done the extraction of the device, resulted in a large zip file which is a container containing all of the files extracted from the phone. They uploaded it to Cellebrite's secure portal where I was able to download it and verify what the data was in the extraction.

117 56:30

MR. BRENNAN: Okay. When you received the download of the extraction for Jennifer McCabe's phone, was it a similar process for John O'Keefe's phone?

118 56:41

MR. WHIFFIN: With John O'Keefe's phone, I actually received the data on a USB thumb drive through the mail.

119 56:48

MR. BRENNAN: And before we begin, can you summarize briefly the issue, what you were looking for, and what the scope was as far as Jennifer McCabe's phone?

120 57:00

MR. WHIFFIN: For Jennifer McCabe's phone, it was related to the internet search that occurred, or that allegedly occurred, at 2:27:40.

121 57:09

MR. BRENNAN: Okay. And as part of your effort and analysis, did you put together a PowerPoint that would help educate us on how a timestamp works and what happened in this case regarding a search?

122 57:25

MR. WHIFFIN: I did. Yes.

123 57:26

MR. BRENNAN: And have you seen that PowerPoint recently?

124 57:28

MR. WHIFFIN: I did. Yes.

125 57:30

MR. BRENNAN: May I approach, your honor?

126 57:32

JUDGE CANNONE: Yes. Thank you.

127 57:33

MR. BRENNAN: I'm handing you a binder. Do you recognize what's in that binder?

128 57:37

MR. WHIFFIN: Uh, yes. This is the PowerPoint presentation I created related to Jen's phone.

129 57:42

MR. BRENNAN: And with that presentation, do you have it downloaded on your computer?

130 57:47

MR. WHIFFIN: I do. Yes.

131 57:48

MR. BRENNAN: I'd like to introduce this as the next exhibit, please.

132 57:48

MR. ALESSI: No objection, your honor.

133 57:54

JUDGE CANNONE: Great. Thank you.

134 57:55

MR. ALESSI: No objection, your honor.

135 57:55

MR. BRENNAN: Mr. Woll, with the court's permission, I'd ask Mr. Whiffin to be able to use his computer to walk us through the PowerPoint and explain it to the jury.

136 58:09

JUDGE CANNONE: Yes. Thank you, Mr. Whiffin.

137 58:10

MR. BRENNAN: Okay. May we begin, your honor?

138 58:13

JUDGE CANNONE: Yes. Mr. Whiffin, if you would walk us through and explain the PowerPoint and explain this issue to the jury — what the question was and how you resolved it, of course.

139 58:25

MR. WHIFFIN: Okay. Um, the query revolved around a database called browser state.db. Browser state stores information about Safari internet browser and about the tabs that the user has either had open or has open. Fundamentally, in this presentation I wanted to include information from iOS 14 and earlier. iOS 14 is not the version of iOS that was on Jen McCabe's phone. But iOS 14 has an easier way to understand how this database works. And then I can move on to iOS 15, which was the version installed on Jen McCabe's phone, and hopefully by that point it'll be clearer how this information is being populated on the device.

140 59:08

MR. BRENNAN: Could you tell us what iOS means?

141 59:11

MR. WHIFFIN: IOS is Apple's proprietary operating system available on iPhones.

142 59:15

MR. BRENNAN: Thank you.

143 59:16

MR. WHIFFIN: Fundamentally, the browser state.db tabs table is shown — hopefully I can show this on here — in the top here. The real database has many more fields, but these are the fields which are important for the demonstration — to just see the row ID, the timestamp that's recorded, the URL or the web address, and the title of the page. And the example at the side there, you can see there's the browser is open but there is no tab actually in focus at this time.

144 59:57

MR. BRENNAN: Can I take us just a little bit back so we can put this in context?

145 1:00:04
146 1:00:05

MR. BRENNAN: When you are doing internet searches on your phone and you hit Safari or Google or whatever search engine you're going to use, does it create a tab?

147 1:00:18

MR. WHIFFIN: It doesn't create a tab just by opening the application. But there may be tabs already open in the background when you start the application, and then you can tell it to create further tabs.

148 1:00:36

MR. BRENNAN: So if I have a phone, can I have a number of different tabs on my phone at the same time if I've searched for different things throughout the day?

149 1:00:43

MR. WHIFFIN: Correct. You can have hundreds of tabs open.

150 1:00:45

MR. BRENNAN: Do tabs stay open forever or can you close them?

151 1:00:48

MR. WHIFFIN: They stay open until you close them.

152 1:00:49

MR. BRENNAN: So, if you look at your phone and you have a number of different tabs, and say, for example, I start with one tab, I'm looking for the local football score — can I reuse that same tab for some other search, or do I have to use a new tab to start a new search?

153 1:01:11

MR. ALESSI: Objection, your honor.

154 1:01:03

MR. WHIFFIN: You could use that tab for as long as you wanted, or create a new tab to do additional searches while maintaining the original tab in its current state.

155 1:01:11

MR. BRENNAN: And so what you're trying to demonstrate to the jury is identifying a time on one of these tabs where a particular search was made.

156 1:01:23

JUDGE CANNONE: Sustained as to form.

157 1:01:24

MR. BRENNAN: Could you explain this demonstration as it relates to tabs on these internet searches? What are we actually trying to learn?

158 1:01:33

MR. WHIFFIN: So, as I showed, there's a field in this table called timestamp — it's actually called last viewed timestamp. And I wanted to prove — or to demonstrate — what that timestamp means, how that timestamp gets populated, and how it's relevant or irrelevant to a case.

159 1:02:00

MR. ALESSI: Objection, your honor.

160 1:01:53

MR. BRENNAN: So, if I have one of many tabs open on my phone, each tab will have its own timestamp.

161 1:02:00

MR. WHIFFIN: Correct.

162 1:02:00

MR. BRENNAN: And the URL — that's whatever I look up, what I search on the search engine.

163 1:02:08

JUDGE CANNONE: Allowed.

164 1:02:09

MR. BRENNAN: Is that — is that what's looked at?

165 1:02:12

MR. WHIFFIN: That's correct. The URL is the address of the page that's being viewed.

166 1:02:17

MR. BRENNAN: So if I have a tab open and I use it continuously, three, four, five, ten times, will the timestamp change?

167 1:02:26

MR. WHIFFIN: No, it will not.

168 1:02:27

MR. BRENNAN: Okay. And — is that what you're explaining to us now?

169 1:02:32

MR. WHIFFIN: Correct. That's part of the demonstration and presentation. I'm sorry to interrupt. Okay. Um, so in this instance, at 10:00 a.m., which is shown in the top of the device there, we can see I visit firstpage.com as an example website. At that time, a row is created in the database that shows row ID 1 with the timestamp 10 a.m., when the page was opened. The URL and the title are relevant to the page that was visited — so firstpage.com. A minute later — excuse me — I now use the same tab to visit secondpage.com. What actually happens in the database at this point in time is the first record is updated with new information. So we continue to see row ID 1. We continue to see the timestamp that the tab was opened at 10:00 a.m.

170 1:03:28

MR. WHIFFIN: And we now see the URL and the title that are related to secondpage.com. So I've shown it here — the first one is red to show that's no longer a live record; it's been replaced by the new record underneath it in black. A minute later again, I can visit thirdpage.com. And at that point, the record is updated a further time. So we still see that it's row ID 1 — because no new rows are being created; we're just simply updating the existing rows. So we still have row ID 1. We still have 10 a.m. as the timestamp, and we have the URL and the title that show thirdpage.com instead.

171 1:03:58

MR. BRENNAN: Mr. Whiffin. So in the URL column there are three different searches.

172 1:04:02

MR. WHIFFIN: Yes, this is three different pages that have been visited within the same tab, and in the data it has three timestamps but they're all the same.

173 1:04:09

MR. BRENNAN: Correct. Okay. Thank you.

174 1:04:10

MR. WHIFFIN: This database is not monitoring web navigation events. It's purely monitoring the tab events. So when the tab's brought into focus or when the tab's created is the only timestamp that's relevant here.

175 1:04:19

MR. BRENNAN: Thank you.

176 1:04:20

MR. WHIFFIN: From a non-forensic point of view, if I was looking at this database in a regular database viewing tool, all I would see is the black record at the bottom. I wouldn't see the other two records because they've been essentially overwritten by the third record. If I was to use a forensic tool, though, then I would see all of these records because the forensic tool is designed to find the older versions of these records that have been replaced. So again, from a forensic point of view, I would see all of these records. I would see all the different URLs and I would see the same timestamp and the same row ID for all of them. This fundamentally changed in iOS 15.

177 1:04:54

MR. WHIFFIN: And I've tested this on multiple versions of iOS 15, 16, 17, and 18, including iOS 15.2.1, which is the same version of iOS installed on Jen McCabe's phone. In this case, the data is not written to the database immediately. So I've tried to show here that we have some in-memory variables — essentially a short-term memory that the device knows exist but aren't written to the database yet. So they're not written long-term. So in this case, if at 10 a.m. I go to firstpage.com, we see that the in-memory variable for timestamp, URL, and title are updated to show a 10 a.m. timestamp and the firstpage.com information. But you can see at the bottom I still have the browser state tabs table, and nothing has been written to that database at this time.

178 1:06:19

MR. BRENNAN: So can I ask you a question about this browser state.db — what does that mean? What does that tell us?

179 1:06:27

MR. WHIFFIN: The browser state.db is just the name of the database that Apple are using to monitor the tab activity on the device.

180 1:06:37

MR. BRENNAN: Will a cell phone have a number of different databases it will send information to, or is it all one database?

181 1:06:46

MR. WHIFFIN: There are hundreds or thousands of databases, depending what applications are installed on the device. Each database typically targets a different application or a different feature.

182 1:06:57

MR. BRENNAN: Can information — like information from a URL or a Google search or a Safari search — can it leave data on different databases, or does it always go to one database?

183 1:07:06

MR. WHIFFIN: It can leave on different databases, for sure.

184 1:07:08

MR. BRENNAN: Thank you.

185 1:07:09

MR. WHIFFIN: So again, to continue this example — if I now go to secondpage.com a minute later, we can see that now the in-memory variable is updated. So the timestamp still remains 10 a.m., the same as it did previously on iOS 14, but the URL and the title are updated to reflect the current web page that's being viewed. Again, nothing has been written to the browser state database. I can go to thirdpage.com. Again, we see the in-memory variables for the URL and the title are updated, but the timestamp still remains the time that this tab was brought into focus or created — not the time that the navigational event occurred.

186 1:07:42

MR. WHIFFIN: Still nothing's being written to the browser state database, and it's not until you actually close the tab that the information gets removed from the in-memory variables and written into the database. And at that point, the information written to the database is whatever was in the in-memory variable. So right now, all we have is a single record in the database that shows the 10 a.m. timestamp. That's when the tab was opened. And we have the thirdpage.com URL and title information, which is the most recent web page visited in that tab. It wouldn't matter whether I was looking at this data using a regular database tool or a forensic database tool. The only record that I will see is this particular record.

187 1:08:21

MR. WHIFFIN: There may be multiple versions of this record, but still would only show me this timestamp and this URL information, because this is the only information that was ever committed to the database. Okay, moving on from that, there were multiple databases or multiple data sources on Jen McCabe's phone that could be used to see what actually happened on the device at this time of day that was of interest. So the analysis I did looked at the browser state database that we've just described. The history database, which is tracking the navigational events. So every time you visit a website and the website fully loads, it gets written to the history database to say this URL was visited at this time.

188 1:09:07

MR. WHIFFIN: And that's the information that as a user you can see when you look at the internet history on your device — it will list all of the web pages that have been visited. com.apple.MobileSafari.plist is a property list file — essentially a list of keys and values that would describe various settings on the device, typically, but it also stores information such as the last searches that were conducted using the Safari search feature. And then finally here we've got knowledgeC.db, which is a massive database at the heart of iOS that stores lots of types of information. It can tell you what web page was actually on the screen at any given time. It can tell you when the backlight came on, when the backlight went off, when the device was locked or unlocked, the battery level.

189 1:10:28

MR. WHIFFIN: Lots of different types of information. But useful here for the web pages that were being viewed. So using the combination of all those sources, I could see that at 2:27:09 a.m. Safari was opened from the application library on the device. At 2:27 a.m., when Safari opened, there were already numerous tabs open in the background. The browser would show in the foreground whatever browser tab was open when Safari was previously minimized. In this case, we can see looking at knowledgeC.db that the web page that was being viewed was related to Hockomock Sports Friday's schedule scoreboard. At around 2:27, that tab would have been closed. Now we don't actually have a time the tab was closed, but based on other activity this timestamp can be inferred.

190 1:11:22

MR. WHIFFIN: Essentially when this tab was closed, a record is created in the browser state database that shows the timestamp 1:59:44 a.m. — that would have been when the tab took focus — and then the Hockomock Sports Friday schedule scoreboard URL. At 2:27:31, a browser switch occurred, and the last visited timestamp that's held in memory would have taken the time that this occurred. So at 2:27:31, this URL was PayPal. There was no navigational event listed in history. So this wasn't a page that was visited from a bookmark or from typing in a URL. It was whatever was currently shown in that tab when the tab was brought into focus. And we know that this exact URL was last visited at 7:40 a.m. on the 28th of January. This is evidenced in browser state and in knowledgeC.

191 1:12:13

MR. WHIFFIN: Around a second later, that tab gets closed and that record gets written to the database with a time of 2:27:31, because that's the time the tab was brought back into focus. It gets written with the URL and the title information related to PayPal. At 2:27:33, another tab is brought into focus from the background — this one related to Eastern Bank. Again, the last visited timestamp would be updated because this tab has now been brought into focus, causing the timestamp to change. We know that this particular website was visited at 8:02 on the 27th of January, and there are no new navigational events at this time. So we know it's just brought into focus and visible on screen according to knowledgeC and browser state databases. That tab gets closed and gets written to the database.

192 1:13:00

MR. WHIFFIN: This again is going to show — and I've just noticed there's a typo on here — the timestamp at the top is showing incorrectly. But essentially it's closed at around this time. And the Eastern Bank URL is written to the browser state database with the 2:27:33 timestamp. At 2:27:35, we see that there's a YouTube video shown on screen related to "It's Raining Men." This shows in knowledgeC. There's no new navigational event for it, but there's also no timestamp in the browser state database at this point. This is because this page, or rather this tab, is brought back into focus a second time. And when it gets brought into focus the second time, the timestamp that's attributed to it overrides the timestamp that would have been written at this point.

193 1:14:28

MR. WHIFFIN: Sounds convoluted, but essentially if you imagine that the in-memory timestamp here would have said 2:27:35 — but then there's another tab that's brought into focus related to Hockomock Sports at 2:27:36.

194 1:14:40

MR. BRENNAN: Mr. Whiffin, can I ask you a couple questions?

195 1:14:43
196 1:14:43

MR. BRENNAN: This timestamp 2:27:36 — does that indicate the time when this tab was actually opened?

197 1:14:49

MR. WHIFFIN: Yes. The time that the tab was brought into focus or opened.

198 1:14:54

MR. BRENNAN: What does it mean, "brought into focus"?

199 1:14:56

MR. WHIFFIN: If you imagine you could have five or six or however many tabs in the background — you select one of those tabs to view, it makes it full screen. That would be considered "in focus," and that would cause the timestamp to be updated.

200 1:15:14

MR. BRENNAN: So if someone had an open tab that had a timestamp, and then they put it in the background to look at a different tab, but then went back to an earlier tab and opened it, would it create a new timestamp?

201 1:15:23

MR. WHIFFIN: It would. It would update the timestamp.

202 1:15:25

MR. BRENNAN: If somebody had an open tab and they didn't put it in the background, but they used other functions or shut off the phone, and when they came back that tab was still open — would that create a new timestamp?

203 1:15:34

MR. WHIFFIN: As long as Safari doesn't close, then the timestamp will remain the same. So if I just minimize Safari, put it into the background, and start to do other things on my phone, the timestamp won't get updated. If I completely close Safari or turn the phone off, when Safari reloads, then that tab does get a new timestamp when it opens up again.

204 1:15:49

MR. BRENNAN: Thank you.

205 1:15:49

MR. WHIFFIN: Okay. Um, yes, so at 2:27:36 we've got Hockomock Sports — "gallery: Canton girls basketball, important win at Mansfield" — is the page that is visible on screen. Again, we know that there's no navigational event at this time, so the page has not been loaded as a result of a bookmark or typing the URL in. It's just showing what was on screen previously. And we know that this page was previously viewed at 22:55 on the 27th of January. This tab gets closed and gets written to the database as well, and we see it's written with the timestamp 2:27:36 when the tab was brought into focus. And then we go back to the YouTube video tab. So at this point the timestamp that had been written there gets overwritten again with 2:27:38, and it shows the YouTube video is the active page on the screen.

206 1:16:32

MR. WHIFFIN: Around 2:27:39, that tab gets closed and the record is written to the database showing a timestamp of 2:27:38 when the tab took focus, and the YouTube video URL. Then we move to 2:27:40, which was the time of interest, and we see that a browser switch occurs, causing the last visited timestamp to take on the time of 2:27:40. This is the tab that was ultimately used to search "how long to die in cold," which is the query that started all of the confusion. At this point in time there are no navigational events recorded anywhere. All we see is that the web page that was brought into view is OzoneBasketball.com/teams. This web page was last visited at 14 minutes after midnight on the 26th of January. We know that this is on screen because it tells us that in knowledgeC.

207 1:18:08

MR. WHIFFIN: And we know that the time is 2:27:40 based on knowledgeC timestamps and based on the browser state database timestamp. At 2:27:42, there is a web navigation event. Whether this is loaded from a bookmark or whether it's typed in, I can't say, but a web navigation event occurs using the same tab that's just been loaded. And now the user is loading the web page HockomockSports.com/standings. This is logged in the history database that shows what web page is visited when, and it also shows in the knowledgeC database to show what web page is on screen at this time.

208 1:18:54

MR. BRENNAN: Mr. Whiffin, in the slide before 2:27:40, you mentioned that was the tab in question.

209 1:18:59
210 1:18:59

MR. BRENNAN: Do the following pages that you show us in the PowerPoint follow that one specific tab?

211 1:19:04
212 1:19:05

MR. BRENNAN: Thank you.

213 1:19:05

MR. WHIFFIN: So at 2:27:47 there's another web navigation event as the web page HockomockSports.com/schedules is loaded. Again this is evidenced in the history database to show that a navigation event occurred and completed, and in knowledgeC to show that this is the web page viewable on screen. At 2:27:53, there's a further web navigation event, where we're now viewing or loading the page HockomockSports.com/schedules/hockey. Again, this is evidenced in the history database and the knowledgeC database to show what page loaded and what page was visible on screen. At 2:27:58, there's a further navigational event for girls hockey, Franklin, 2021-2022. Again, this is logged as a navigational event in the history database and shown on screen according to the knowledgeC database.

214 1:19:46

JUDGE CANNONE: So I understand these are all subsequent searches on the same open tab.

215 1:19:56

MR. WHIFFIN: Correct, your honor.

216 1:19:59

JUDGE CANNONE: Sustained as to form.

217 1:20:02

MR. BRENNAN: Are these all subsequent searches on the same single open tab?

218 1:20:12

MR. WHIFFIN: There is no tab switch event listed. We see the tab switch event occur at 2:27:40, and then we see lots of navigational events occur.

219 1:20:33

MR. BRENNAN: Thank you. At 2:28:06, Safari is minimized, so it's removed from focus, so that something else could be viewed, or the phone is locked. Is removing from focus different than closing?

220 1:20:42

MR. WHIFFIN: Correct. If you remove it from focus, it's essentially going into the background, but it's still open — it's in its current state, just in the background — versus if you close it completely and have to reload it later on. So in this particular state, the timestamp doesn't get changed. The timestamp remains 2:27:40 as it was earlier. Safari is then not used again until 6:23:37, when it's opened from the background using the icon in the app library. At this point, when it loads up, the same page that was open when Safari was minimized is shown. So we still see HockomockSports.com/schedules/girls-hockey/Franklin/2021-2022. There's no navigational event at this point. So we know that it wasn't completely reloaded.

221 1:21:20

MR. WHIFFIN: It's just showing what was on screen previously, and it's evidenced in the knowledgeC database. At 6:23:49, there's a cache file created. The cache files relate to how long to digest food. Now, these particular cache files show up as suggestions in Safari. So, as you're typing in a query or a word or a URL, for example, Safari tries to take that information and make suggestions based on what it thinks you might be searching for. So if, for example, you were to type in "how long to die" with the word spelled just "di," Safari can mistake that for "how long to digest food" and it could present this information. And up until about 12 months ago, this is the information that was provided by Safari if you were to do this search.

222 1:22:18

MR. WHIFFIN: If you were to type in "how long to di," you would get the result that's shown at the top of this screen, with an image of somebody eating a plate of food. And this is the image that was cached onto Jen McCabe's phone at 6:23:49.

223 1:22:55

MR. BRENNAN: What does cache mean?

224 1:22:55

MR. WHIFFIN: Essentially downloaded now for use later. It will download it, it will save it in case it's required again. If it is, it doesn't need to download it — it's already there. If it's not required again, eventually it will be deleted.

225 1:23:04

MR. BRENNAN: So, is it stored information from prior events that's available in case the device thinks you're looking for it?

226 1:23:08

MR. WHIFFIN: Yes. So, at this point in time, at 6:23:49 when it downloaded it, that's the first time that it's downloaded this image, and it stores it. If an hour later, for example, I did the same search a second time, it wouldn't need to redownload the image, because it's already in cache. So the creation time of this image shows that this is the first time this cache file was downloaded. A few seconds later, at 6:23:51, the blue button at the bottom of the keyboard is used to submit a search for the term [unintelligible — first search query]. This creates a specific URL in Safari, which is shown on screen here. So, google.com/search?[unintelligible — garbled URL encoding] — "client=Safari" is the important part of this string that tells us that it's a query made using Safari.

227 1:23:38

MR. WHIFFIN: This is different to if I visited Google, for example, and just typed in the search text box in Google — it wouldn't necessarily have this same structure of the URL. So we know that this is the query created by submitting a search using the search bar here and pressing the blue button at the bottom. We know that that search was conducted at 6:23:51 according to the information in MobileSafari.plist, and knowledgeC also shows that this page was visible. Importantly, there is no history record made that shows that a navigation actually occurred to this page — to this website. Several reasons why that might happen. One could be if the device was in private browsing mode.

228 1:25:18

MR. WHIFFIN: However, it can't have been in private browsing mode, because if it was, we wouldn't have the search recorded in the MobileSafari.plist either. So we know it wasn't in private browsing. It could have been deleted at some point after the fact. That would leave a gap in the numbering. Every time a record is written, it would be consistent numbers — 1, 2, 3, 4, 5, 6 — and to delete a number would leave a gap there. So you would see 1, 2, 4, 5, and that number will pretty much never be reused. So if you don't see a gap, then you can be confident that nothing was deleted, and there are no gaps on this device. The third reason, and the one that I believe is the reason why it wasn't recorded in the database, is that the page never completely loaded.

229 1:25:55

MR. WHIFFIN: If I go to a web page and cancel the navigation prior to it completing the load, it will never get written to the history database. At 6:24:18, there's a second search submitted using the same method — so, still using the Safari search bar — this time searching for "how long to die in cold." This is evidenced in the MobileSafari.plist. Again, there is no record made in the history database. That to me suggests that the page never successfully loaded. At 6:24:24, Safari is minimized again. It gets reopened at 10:33 a.m., again loaded from the app library and brought into focus. And at that point, the previous page is shown to the user. That previous page is related to the search "how long to die in cold."

230 1:26:46

MR. WHIFFIN: This is evidenced in knowledgeC to show that this is the page that's visible on screen, but there is still no history event that shows that the page completely loaded. And around that time — so around 10:33 — that tab would have been closed, resulting in the record being written to the browser state database with the timestamp 2:27:40, when that tab was originally brought into focus several hours earlier. But it shows the most recent URL information, which is the Google search for "how long to die in the cold." It doesn't have any of the other URL information that was visited during that time period.

231 1:27:30

MR. WHIFFIN: It doesn't have the previous Google search for [unintelligible — first search query], because all it records is the most recent URL that's visited alongside the original time that the tab took focus. Importantly, there is no title information. The title information is included within the page itself. So if you do a Google search, the title of the page that showed up would show "Google search" and then it would show the query that you typed in to search for. The fact that this doesn't have a title also suggests that the page never loaded. So again, it ties back to the fact that it's not written in the history database — we have no title — both indicative that the page never successfully loaded.

232 1:28:14

MR. BRENNAN: Mr. Whiffin, when a tab is ultimately closed, does the URL always have the last search, or could it show an earlier search?

233 1:28:20

MR. WHIFFIN: It will always be whatever URL is visible in the tab at the time.

234 1:28:25

MR. BRENNAN: Thank you. To overview again the data sources used here — com.apple.MobileSafari.plist is known to be a reliable location to get search timestamps from. We know that it's good to show the time that a search was conducted and what search was conducted. It doesn't record if the device is in private browsing mode. The only time it shows [unintelligible — first search query] is at 6:23:51, and the only time it shows "how long to die in cold" is at 6:24:18. There are no other mentions of either of these searches anywhere else in this file. The history database — again, is known to be a good source of data for visited web pages and timestamps for the pages that completely loaded.

235 1:29:02

MR. BRENNAN: Again, in this case, neither of these searches — neither of these URLs — was in the history database, but there are no missing records, which indicates that nothing was deleted. And again, the only reason I can come up with for why that is the case is that the page didn't load. There must be an entry within this database to allow the user to delete it. Obviously, if the page doesn't load, it doesn't get written to the history — so as a user, you can't see that item in your internet history list, and you can't delete it. And then knowledgeC, which shows the page that's on the screen when the browser is in use — again, we know that this is a good timestamp. And we see the only times that web pages related to these web searches were open is at 6:23 and at 10:33.

236 1:30:32

MR. BRENNAN: There were multiple deleted records in the browser state database — it wasn't just the record for "how long to die in the cold." When you say there are multiple deleted records, can you go into a database and see what URL searches have been deleted from the actual item?

237 1:30:44

MR. WHIFFIN: Yes. So from a forensic examiner's point of view, and using forensic software, I can look at the database and see the records that have been deleted and recovered. There does become a time when you're unable to recover any more records and they're now just purely deleted and unable to get back. But at this point I was able to recover a good number of records. And these were the five that I thought it was important to focus on. For here you can see that three of them occur at 2:27. So at 2:27:36, 2:27:38, 2:27:40, and these are the web pages that we've just seen in the presentation. So Hockomock Sports, the YouTube video, how long to die in the cold, and then two additional pages for cantonma.org and Ozone Basketball.

238 1:31:18

MR. WHIFFIN: The way that we're able to recover these records forensically is because of how databases work. What I've tried to display here is that when you first create a record, in this case creating record 4025, a new page is created in the database. A page is simply a block of binary data that's organized in a way that can be understood by the database as a page of data, much like it would be a ledger with a list of records. So it creates frame 181 with page 2752 and a record 4025. What is a little bit different from if you were doing this manually is when you want to add a new record, or when you want to delete a record, or when you want to update a record, it has to create an entirely new page or an entirely new version of that page. So in this case, we see that frame 194 is also page 2752.

239 1:32:59

MR. WHIFFIN: It duplicates the record 4025 and adds the record 4026. From the database's point of view, at this time, frame 181 is now dead. Like, it won't be used for anything. And a regular database tool would only refer to the most recent version of that page. So, frame 194. Forensically, I can look back at all of these different versions of the page, and I can start to see differences. Not so important in this case when all that's happening is that you're adding information, but when you start to delete or edit records, being able to go backwards and see these previous pages, you can see the records that have been changed or deleted. So, as we're moving along all of these pages, each of these refer to a time when a new record was added. Every time a new record is added, a new frame is created.

240 1:33:42

MR. WHIFFIN: It duplicates the page from before and it adds the new record. I highlighted record 4028 in green across these three frames because this is the "how long to die in cold" record that is of interest. Moving forward again, we continue to see records being added, but particularly here at frame 430, record 4029 is deleted. 4029. If I go back a few slides, we can see 4029 is the cantonma.org families index web page. As far as I know, no relevance to anything related to this case. It just so happens this is the first record deleted from the browser state database. We don't have information that tells us at what time the record was deleted. But we're able to infer what time that record was deleted based on other records in this frame.

241 1:34:37

MR. WHIFFIN: So for example, we know that at the time that record 4029 was deleted, record 4031 already existed. Record 4031 has a timestamp of 6:29 on the 31st of January. Therefore, we can summarize that record 4029 had to be deleted at some point after 6:29 on the 31st of January. We see again record 4030 is deleted on frame 468. Again, we can look at what record was the most recently created on that frame at the point that that record was deleted. And that gives us information that suggests record 4030 had to have been deleted at some point after 8:35 on the 31st of January. We can continue to go along and continue to see records being added, edited, and deleted. But the record of interest, 4028, still exists even on frame 650. And in fact, it doesn't get deleted until frame 732.

242 1:35:37

MR. WHIFFIN: By the time the record related to "how long to die in the cold" is deleted, record 4037 already exists. Record 4037 was created after 22:07 on the 31st of January. Therefore, we know that the "how long to die in the cold" record was deleted at some point after 10 p.m. on the 31st of January. Taking all of those deleted records, those five deleted records, and the earliest time that they could have possibly been deleted, we see a spread throughout the 31st of January — a few quite early on at 6:29, 8:35, a couple at 9:20, 9:40, and then finally the one that we're interested in at 22:07. For the user to cause these to be deleted, if you wanted to do it selectively and select and delete one at a time, the record has to be available in the history database.

243 1:36:36

MR. WHIFFIN: As I said earlier, it wasn't ever in the history database because there'd be a gap. So this record could not have been deleted by the user selectively. That leaves options of deleting everything from the history. But if everything was deleted, we would have none of this information. And we do. And it also leaves the option of deleting everything from what's considered today and everything that's considered today and yesterday. And again, if either of those options were the case, we'd have much less information than what we have and we wouldn't see this staggering of timestamps that we see here where the information was deleted. Ultimately, I wasn't able to say what caused these deletions at these particular times. But I'm confident that it wasn't as a result of user interaction.

244 1:38:03

MR. WHIFFIN: That's something that was brought on on purpose.

245 1:38:07

MR. BRENNAN: Mr. Whiffin, I have a couple of questions about your analysis and your opinions.

246 1:38:14
247 1:38:14

MR. BRENNAN: You showed us a tab that was opened at 2:27:40 and it had something to do with Hockomock Sports.

248 1:38:24
249 1:38:25

MR. BRENNAN: To your opinion, to a reasonable degree of scientific certainty, was that the same tab — that 2:27:40 tab open for Hockomock Sports — was that the same tab that later was used for searches or attempted searches at 6:23:51 and at 6:24 relative to "how long to die in cold"?

250 1:38:51

MR. WHIFFIN: I believe it was. Yes.

251 1:38:54

MR. BRENNAN: Is your opinion based on your analysis of reports generated by software like Cellebrite?

252 1:39:00

JUDGE CANNONE: Sustained as to form.

253 1:39:02

MR. BRENNAN: Was your opinion limited to analysis of reports generated by companies like Cellebrite or Magnet AXIOM?

254 1:39:10

MR. WHIFFIN: It wasn't. No. I went into the data, looked at the various different databases, different files that were in use, tested it across many different devices to make sure that my understanding and analysis of it was correct.

255 1:39:28

MR. BRENNAN: In addition to your opinion that the two searches at 6:23 and 6:24 occurred at that time as opposed to 2:27:40, did you also, when analyzing the data, come to an opinion whether or not either of those searches actually connected and produced results?

256 1:39:50

MR. WHIFFIN: If either of those searches had connected, the information would have been written into the history database. The fact that it wasn't in the history database strongly suggests it never completely loaded. And the fact that there is no title information on the browser state tab as well also suggests it never loaded.

257 1:40:14

MR. BRENNAN: And finally, those attempted searches at 6:23, 6:24 — you mentioned that information at some point was deleted from the phone. The only records that were deleted were the browser state database records.

258 1:40:29

MR. WHIFFIN: Yeah, they were deleted from the device.

259 1:40:33

MR. BRENNAN: Do you have an opinion to a reasonable degree of scientific certainty whether or not that information was removed as a natural application of the phone, or was it because somebody took the phone and actually deleted it by hand?

260 1:41:10

MR. ALESSI: Objection, Your Honor.

261 1:40:45

MR. WHIFFIN: So again, I don't believe it's possible, given the situation and the information that's available, that it would have been possible for the user to delete it. I believe it was more than likely a system event that caused that, but I've not been able to replicate that system event.

262 1:41:00

MR. BRENNAN: I want to take you back to your first opinion. You opined that the "how long to die in the cold" search occurred at 6:23 and 6:24, not at 2:27:40?

263 1:41:10
264 1:41:10

MR. BRENNAN: And so in looking at the data, coming to that opinion, what caused the confusion with the software where it could be misunderstood — the time those searches were actually made?

265 1:41:21

JUDGE CANNONE: I'm going to allow it.

266 1:41:23

MR. WHIFFIN: The way that forensic software typically works, certainly the way that Physical Analyzer works, is we design models for the data. So we know that an SMS application, for example, will always have a message body. It will always have a sender, a receiver, a time — that kind of thing. We always know that a web visit will have a URL, a title, and a visited timestamp. In this particular case, in the database, the timestamp is called "last visited timestamp," which is indicative — you would think — of the time that the web page was visited. So when that information was being modeled within the software, the timestamp that was within the database was used and it was called "last visited timestamp."

267 1:42:03

MR. WHIFFIN: Since the investigation that I did into this case, I requested that the forensic research team at Cellebrite revisit this data and confirm if there's confusion around it. Were my findings correct? Ultimately, there are times that that information can be correct. If, for example, you create a brand new tab, visit a website, and then close the tab immediately, then that timestamp would be indicative of the time that the URL was visited. But if you were to create a tab, use it for 3 hours and then close it, the timestamp would not be indicative. Also, if you were to bring an old tab into focus that you'd used several days earlier and then close that tab, again, you're going to get bad timestamp information.

268 1:42:46

MR. WHIFFIN: So ultimately, from Cellebrite's point of view, we remove the timestamp from that data to avoid confusion in the future.

269 1:43:09
270 1:43:31

MR. BRENNAN: Would it be fair or accurate to say there were over 4,000 deleted files from the phone, or there were 4,000 deletions from the phone?

271 1:43:43

MR. WHIFFIN: There were many —

272 1:43:45

JUDGE CANNONE: Sustained.

273 1:43:46

MR. BRENNAN: Okay. As to form — um, would it be accurate to say that the only deletion from that phone was that 6:23/6:24 search?

274 1:43:57

MR. WHIFFIN: No. There were thousands of records deleted ultimately for various reasons that I can follow. That would be an inaccurate assertion. To say that that's the only record that was deleted is inaccurate.

275 1:44:14

MR. BRENNAN: Yes. Okay, thank you. I'm now going to turn to a second phone that you looked at. You told us that you looked at two phones. The second one was a phone that was, or is, attributed to John O'Keefe.

276 1:44:34

MR. WHIFFIN: Correct.

277 1:44:34

MR. BRENNAN: When you looked at the phone for John O'Keefe, were you looking at things different than we looked at on the phone attributed to Jen McCabe?

278 1:44:45

MR. WHIFFIN: I wasn't as interested in internet data. I was more interested in location and health and anything else that could be useful.

279 1:44:55

MR. BRENNAN: Before we show any presentation, I want to get a little understanding of what you looked for and what you found. Were you looking for what's called location data?

280 1:45:07

MR. WHIFFIN: I was. Yes.

281 1:45:09

MR. BRENNAN: Was there a period of time that was important that you were looking for relative to location data?

282 1:45:16

MR. WHIFFIN: Typically after midnight and before 6:00 a.m.

283 1:45:20

MR. BRENNAN: Is that on January 29th, 2022?

284 1:45:22

MR. WHIFFIN: It is. Yes.

285 1:45:24

MR. BRENNAN: How does a phone like an iPhone store location data?

286 1:45:29

MR. WHIFFIN: Multiple ways that it can be stored. Primarily there's a database called cache.sqlite — SQLite — and every time an application requests location data from the device, a feature called location services on iOS tries to calculate the device's location using a combination of technologies — GPS, Wi-Fi, cell tower, and Bluetooth — calculates the device's location and stores that into the database as a latitude, longitude, altitude, timestamp, accuracy radius information like that.

287 1:46:05

MR. BRENNAN: Are there different types of location data that are captured and stored on a device like an iPhone?

288 1:46:09

MR. WHIFFIN: Can you define "different types," please?

289 1:46:11

MR. BRENNAN: I'm sorry. If you could define what you mean by different types. The different sources of data that are generated that then captured on an iPhone.

290 1:46:18

MR. WHIFFIN: Yes. So the application can specify how accurate it wants the data to be. So for example, if you're using a navigational application, you'd want high accuracy data. So the application would request high accuracy data from location services. Location services would then try to use GPS primarily to get location information, versus if you were using a weather app, for example, where you don't really need to know precise information. You just need to know the approximate town maybe that the user's at. So a weather application would ask for low accuracy information. And the device may be able to calculate the location based on cell tower information, for example. Both can be stored in the database with the accuracy information that's available.

291 1:46:51

MR. BRENNAN: Would an application that is devoted to navigation, in your programming experience, typically have stronger location data information than a more general application like a weather app?

292 1:47:32

MR. WHIFFIN: Yes, for sure. And Apple actually specifies in their documentation when they specify the various different accuracy levels — they have one for navigational purposes for map applications.

293 1:47:41

MR. BRENNAN: How do you define accuracy level from the different data that's being stored in a phone?

294 1:47:46

MR. WHIFFIN: How do you mean? Sorry.

295 1:47:47

MR. BRENNAN: Is there high level, middle, low?

296 1:47:49

MR. WHIFFIN: Yes, the information is typically provided with a range of meters. So you'll have a latitude/longitude coordinate and a number of meters that you have to draw around that location or point. And the device is somewhere within that circle. It could be as accurate as 2 or 5 meters. It could be as inaccurate as several miles depending on the technology that was used to get the data.

297 1:48:12

MR. BRENNAN: Are you familiar with an application called Waze?

298 1:48:15

MR. WHIFFIN: I am. Yes.

299 1:48:16

MR. BRENNAN: And tell us what Waze is.

300 1:48:19

MR. WHIFFIN: Waze is a navigational tool. So you can plot a route and it will try to direct you the best way, avoiding toll roads, avoiding accidents, that kind of thing.

301 1:48:31

MR. BRENNAN: What is the level of accuracy in location information that is generated by using Waze?

302 1:48:38

MR. WHIFFIN: That would be the highest level of accuracy. So it would aim to get GPS quality information of around 5 meter accuracy.

303 1:48:47

MR. BRENNAN: So why doesn't a programmer in every application just use the highest level location data for every application?

304 1:48:55

MR. WHIFFIN: Getting GPS data is not always possible. If you're in a building, in a basement for example, you may not get that. But also it can be expensive to the device in terms of processing power, in terms of battery requirements. So if it can find location information cheaper by using Wi-Fi networks, for example, then it would prefer to do that — just a lot less resource intensive than using GPS all the time.

305 1:49:24

MR. BRENNAN: In order to capture the highest level of location data — the most accurate — in an application such as Waze, if somebody's using Waze and then turns it off, does it still continue to capture that highest level of accuracy?

306 1:49:41

MR. WHIFFIN: Typically not. It may do for a short time as it's still kind of working through a backlog. But fundamentally, if there's no application open that's trying to use location services, then the location information that's being requested and recorded is far more sporadic. It's typically background applications that may be requiring location data.

307 1:49:53

MR. BRENNAN: When you analyzed John O'Keefe's phone, in addition to the location data, did you also look into data known as health data?

308 1:49:58
309 1:49:58

MR. BRENNAN: And could you tell the jury how that works?

310 1:50:00

MR. WHIFFIN: Yeah. So pretty much all iPhones for the last 10 years or so have Apple Health included. It monitors activity on the device such as steps taken, using various sensors inside the device, looking for motion which appears to be walking. It monitors altitude, so it knows whether you've gone up a flight of stairs, for example. It uses that information in concert with the steps taken, so it knows the difference between going in an elevator versus walking a flight of stairs. And all that kind of information is available to you as a user to essentially see how far you walked each day and to monitor your own health.

311 1:50:26

MR. BRENNAN: When you look at health data, you said it interprets it in different terms. One you used was steps. If I have an iPhone and I'm walking and it registers steps, can it tell what direction I went in?

312 1:50:54

MR. WHIFFIN: No, it's purely just looking for motion of the gyroscopes which appears to match the pattern that it expects of somebody who's walking. It doesn't know whether you're in a straight line, walking in zigzag circles — just number of steps.

313 1:51:25

MR. BRENNAN: What if I had my iPhone and I was moving the iPhone but my feet weren't moving? Would it register?

314 1:51:40

MR. WHIFFIN: It could register some, but typically it's relatively good at picking the difference between actually walking or throwing the phone around or shaking it.

315 1:51:58

MR. BRENNAN: The health data — does it store with date and time?

316 1:52:03

MR. WHIFFIN: So there are two locations that health data is stored. Primarily a database called healthdb_secure, and that aggregates the information into periods of time. So you may have a 10-minute period where it says 100 steps were taken. It could be that the 100 steps were taken in the first 2 minutes and then virtually nothing was done for 8 minutes. But there's another database called cache.encrypted.db which is more granular. It's where the information is written originally prior to it being aggregated and moved into the bigger health database.

317 1:52:46

MR. BRENNAN: You also mentioned that the health data has a term known as steps. If the movement registers as steps, would that necessarily mean that a person was walking up or down steps?

318 1:52:57

MR. WHIFFIN: Sorry, are we talking about steps taken or flights climbed?

319 1:53:01

MR. BRENNAN: I'm sorry — flights climbed.

320 1:53:03

MR. WHIFFIN: A flight climbed, according to Apple, is essentially an incline of 3 meters over 16 steps taken. So it wouldn't really matter whether it was walking up a flight of stairs, walking up a steep inclined hill, on an escalator, something like that. If there is movement that appears to be walking and an incline of 3 meters, then that would be considered a flight climb event.

321 1:53:28

MR. BRENNAN: Is there any other way that the phone could register flights climbed but the person's not actually walking up or downstairs?

322 1:53:34

MR. WHIFFIN: So I did test this a few months ago, driving in my vehicle. I was able to — if I just put a phone on my dock as I'm driving around — nothing was recorded. But I found that if I was actually holding the phone while driving at the same time, then the natural suspension of the vehicle plus the movement of my arm would be considered enough to be steps. And if that motion happened while I was driving up a hill, it would also result in a flight climb event. And the testing that I did consistently resulted in — I think it was nine flights of stairs climbed while I was driving up the same hill multiple times.

323 1:54:10

MR. BRENNAN: In your studies, what elevation change would have to be present if you were in a car with a phone and it would register health data as steps? Is there a certain level of elevation that would trigger that?

324 1:54:30

MR. WHIFFIN: Again, it's just a 3 meter incline required.

325 1:54:34

MR. BRENNAN: Did you say 3 meter?

326 1:54:36

MR. WHIFFIN: 3 meters.

327 1:54:37

MR. BRENNAN: The health data — in addition to being able to give a range of time of movement and defining generally terms, whether it's steps or stairs, is there any other information about healthcare data that is important in your analysis of this case?

328 1:55:00

MR. WHIFFIN: Um, sorry, can you just repeat that please?

329 1:55:03

MR. BRENNAN: Sure. Trying to think. Um, the healthcare data you shared tells us there's movement.

330 1:55:08
331 1:55:08

MR. BRENNAN: And it may come in the term steps. You also shared that the healthcare data can show elevation that can come in the term flights.

332 1:55:18
333 1:55:18

MR. BRENNAN: Is there any other information about the healthcare data you looked at? Did you look at it across a wide range in this case?

334 1:55:27

MR. WHIFFIN: No, it was just the steps and the flight climb that I was interested in.

335 1:55:33

MR. BRENNAN: What is the time period you looked at the healthcare data for in this case?

336 1:55:38

MR. WHIFFIN: Uh, between midnight and 6:00 a.m. or 6:30 a.m.

337 1:55:42

MR. BRENNAN: Midnight on January 29th, 2022 till about 6:00 a.m.?

338 1:55:45
339 1:55:45

MR. BRENNAN: And before we get to any presentations, did you see movement on that phone relative to healthcare data at different points through the night?

340 1:55:54

MR. WHIFFIN: I did. Yes.

341 1:55:55

MR. BRENNAN: Did you identify those different times in your report?

342 1:55:59

MR. WHIFFIN: I did.

343 1:56:00

MR. BRENNAN: You created a PowerPoint for Mr. O'Keefe's phone. Are those time points and movements, are they indicated in the PowerPoint as well?

344 1:56:08

MR. WHIFFIN: They are. Yes.

345 1:56:09

MR. BRENNAN: So, you had with Mr. O'Keefe's phone, you looked at location data, you looked at healthcare data. Is there any other data you found important in your analysis to try to track the movements or non-movements of the phone of John O'Keefe on January 29th, 2022?

346 1:56:27

MR. WHIFFIN: Uh, yes. I've also looked at battery temperature information and at a feature called Doppler, which is monitoring for Face ID.

347 1:56:32

MR. BRENNAN: Tell us a little bit about the battery temperature. Is it the battery temperature of the phone or part of the phone?

348 1:56:38

MR. WHIFFIN: Uh, there's a battery temperature sensor built inside the phone, within the battery. And it's essentially always checking for battery overheats or battery cooldowns to the point where performance will be affected and the device needs to power off to save itself being damaged. So that temperature information isn't recording ambient temperature. It's not interested in the temperature in the room, for example. It's purely interested in the battery temperature. But it is affected by ambient temperature. And I again did lots of testing by putting the phone into controlled temperature environments — so inside a freezer for a set amount of time — to monitor how the battery temperature would decrease over time given the environment it was in.

349 1:57:09

MR. WHIFFIN: Bringing it back into a warm environment and testing how long it takes to increase. Putting the device outside. I was in Calgary, where it's pretty cold in winter. So putting it outside — it was like 40°F, I think it calculates to — and the temperature of the environment had a big impact on the battery temperature that was recorded by the device.

350 1:57:47

MR. BRENNAN: Were you able to track the changes in battery temperature for Mr. O'Keefe's phone over the course of the evening from after midnight on January 29, 2022 through after 7, 8 in the morning?

351 1:58:05

MR. WHIFFIN: Yes, there wasn't a massive number of records, but there were records that I've included in my report.

352 1:58:15

MR. BRENNAN: In addition to those three areas, when a person uses an iPhone and presses the buttons, or they hold it and they try to open it by recognizing their face, what is that process called?

353 1:58:35

MR. WHIFFIN: Uh, Face ID would be the process for the unlocking, and then the locking — pressing the button on the side would lock the device.

354 1:58:40

MR. BRENNAN: When an iPhone is being used, does it act or operate differently when it's out in the open or if it's in your pocket or under something?

355 1:58:46

MR. WHIFFIN: Uh, yes. So this is the Doppler function that I found within a feature called unified logs. Essentially, whenever the device receives a phone call, or when you pick up the device, an iOS — sorry — an iPhone X or above is trying to find a face to use to unlock the device. If the camera is blocked, a record is made to say that it's within a pocket state. So if my phone's in my pocket, when somebody calls me, it tries to look for a face, it immediately recognizes that the camera's blocked, and it records pocket state. As soon as I take the phone out of my pocket or unblock the camera, it records a pocket state cleared event. So we know when the camera was covered up versus when it was uncovered, if at the time it was receiving a phone call or was being picked up.

356 1:59:21

MR. BRENNAN: Does an iPhone always record whether or not the camera was blocked or hidden or covered at the time a call comes in?

357 1:59:28

MR. WHIFFIN: Uh, no. For example, if the device is already unlocked, then it won't make a recording to say that it was within a pocket state or a pocket state cleared. And if the device isn't blocked at all — so if I have the device on a desk in front of me, for example, and a call comes in — there'll be no record that says that it's in a pocket state or a pocket state cleared. It will only record a pocket state event if the camera's blocked, and it will only record a pocket state cleared event if the camera was blocked and now isn't.

358 2:00:05

MR. BRENNAN: So, if I have my iPhone and I put it inside my jacket in the darkness and I get 30 calls, would all of those calls result in a reading of pocket state?

359 2:00:44

MR. WHIFFIN: They'd all result in multiple readings of pocket state. The pocket state check is conducted more than once a second. I can't remember the exact number, but it's very frequent. And an average phone call, from the start of the ring to when the device essentially hangs up, somewhere in the region of 500 checks. So if you had 10 phone calls then you'll have 5,000 checks made that would all report pocket state.

360 2:01:17

MR. BRENNAN: Did you analyze John O'Keefe's phone on the evening, early morning hours through the next morning on January 29th, 2022, in an attempt to identify where he was, what he was doing, and whether his phone was inside or outside?

361 2:01:35

MR. WHIFFIN: That was my goal. Yes.

362 2:01:36

MR. BRENNAN: And did you engage in that analysis, sir?

363 2:01:39

MR. WHIFFIN: I did.

364 2:01:39

MR. BRENNAN: And in your efforts, did you write a report?

365 2:01:42

MR. WHIFFIN: I did.

366 2:01:43

MR. BRENNAN: Did you write multiple reports on these separate issues?

367 2:01:45

MR. WHIFFIN: I did.

368 2:01:46

MR. BRENNAN: And those reports were provided to everybody?

369 2:01:48
370 2:01:49

MR. BRENNAN: In addition to the reports that you generated from your study, did you present or did you prepare a PowerPoint?

371 2:01:55

MR. WHIFFIN: I did.

372 2:01:55

MR. BRENNAN: Does the PowerPoint outline some of those points?

373 2:01:58

MR. WHIFFIN: It does.

374 2:01:58

MR. BRENNAN: At the end of the PowerPoint, do you go through a timeline accumulating many of these pieces of evidence together that show them in a chronological sequence?

375 2:02:07

MR. WHIFFIN: I do.

376 2:02:08

MR. BRENNAN: And does that help capture the movement or non-movement of John O'Keefe's phone through that night?

377 2:02:13

MR. WHIFFIN: I believe it does.

378 2:02:15

MR. BRENNAN: May I approach?

379 2:02:17
380 2:02:17

MR. BRENNAN: I'm showing you a binder. Sir, could you look at it too? Let me know if you recognize it.

381 2:02:29

MR. WHIFFIN: Uh, yes. This is the presentation that I created regarding John's phone.

382 2:02:37

MR. BRENNAN: And does it include some of the subject areas we just spoke about?

383 2:02:45

MR. WHIFFIN: It does.

384 2:02:46

MR. BRENNAN: I'd move to introduce this as an exhibit, please.

385 2:02:51

MR. YANNETTI: No objection, your honor.

386 2:02:54

JUDGE CANNONE: Thank you. Thank you.

387 2:02:56

MR. BRENNAN: With the court's permission, Mr. Whiffin, referring to exhibit 39, I'd like you to walk us through John O'Keefe's phone on the evening of January 29th —

388 2:03:13

MR. WHIFFIN: Okay.

389 2:03:13

MR. BRENNAN: — 2022.

390 2:03:15
391 2:03:15

MR. BRENNAN: Thank you.

392 2:03:17

MR. WHIFFIN: Uh, so I start the presentation with location data. As I mentioned earlier, this comes from the cache.sqlite database, which is considered the most reliable location — or the most reliable file for location data on an iOS device. It stores information whenever location information is requested. That could be through user interaction with the device using something like Waze. It could be background activity, just depending on what applications the user has open, what settings the user has chosen. This constantly trying to find its location and recording it in this database, partly for the purposes of identifying frequent locations. At 12 minutes and 5 seconds after midnight, the device shows multiple location points at Washington Street around Forge Pond.

393 2:03:59

MR. WHIFFIN: What I tried to show here — there's a kind of a gold dot in the middle which would show the actual latitude/longitude information, and then the circle around it is what's considered the accuracy radius. The smaller the accuracy radius, obviously the more accurate the information is believed to be according to the device, but ultimately if the device is anywhere within that circle, then iOS would consider it correct — it considers it an accurate record.

394 2:04:45

MR. BRENNAN: Mr. Whiffin, why are there multiple circles of location data for one point where Mr. O'Keefe's phone was?

395 2:04:50

MR. WHIFFIN: Uh, so this wasn't a single point in time. This was multiple records at around 12 minutes and 5 seconds. No application was actually in use at this time requesting location information, but the device for whatever reason recorded multiple records with various degrees of accuracy. Typically, you would see accuracy start quite low and get better over time — which you may have seen on your own device when you open up the map application and it may show your device, you know, close to where you are but not perfectly where you are, and then wait a few seconds and that information gets refined. Essentially, this is the same thing. So low accuracy would be a wider circle and higher accuracy would be a smaller circle.

396 2:05:27

MR. BRENNAN: Correct. At this point, Mr. O'Keefe is not utilizing Waze on his phone.

397 2:05:32

MR. WHIFFIN: Correct.

398 2:05:33

MR. BRENNAN: But location data is still being stored randomly on the phone from multiple different sources.

399 2:05:39

MR. WHIFFIN: It is. Yeah. Depends on the device itself.

400 2:05:43

MR. BRENNAN: In the top left hand corner, it says 12:05. That's the time that this snapshot —

401 2:05:50
402 2:05:50

MR. BRENNAN: — okay. And approximate. And below it's obviously the date.

403 2:05:54
404 2:05:55

MR. BRENNAN: Okay. Could you take us ahead please?

405 2:05:58

MR. WHIFFIN: Yeah. Uh, there were multiple records between that last time and what's shown on screen now at 19 minutes and 33 seconds, but all of the records were sporadic and low accuracy with values of 1,000 m or more. But around this time, around 19 minutes and 33 seconds after midnight, is when Waze was actually brought on screen. Waze starts to ask for high accuracy data. So we see the accuracy immediately start to improve. So again we see relatively low accuracy data to begin and then over the next few seconds it begins to refine itself until it gets down to a 5 m accuracy record as the device continues up here. We'll highlight that there's a cluster of records here as the device came to either a slow or a stop momentarily.

406 2:06:57

MR. WHIFFIN: Multiple records were created and then the device continued driving up Denim Street.

407 2:07:02

MR. BRENNAN: Mr. Whiffin, below the time 12:19:33, in the data, it talks about the average accuracy.

408 2:07:09
409 2:07:10

MR. BRENNAN: And that's in meters.

410 2:07:12

MR. WHIFFIN: That's in meters. So again the records that are shown at the bottom here are around 55 m. The records shown at the top are around 5 meters.

411 2:07:24

MR. BRENNAN: Is it typical in Waze that once it locks in, the range is around 5 meters?

412 2:07:32

MR. WHIFFIN: Typically, yes, that would be the goal.

413 2:07:35

MR. BRENNAN: You also mentioned the average speed. Where do you learn the speed from? Where does that data come from?

414 2:07:44

MR. WHIFFIN: The database, the cache.sqlite database also calculates the average speed between two data points and also the bearing or the direction of travel between those two points. So the average speed that's shown here on the left is approximately the average of all of the records that are shown on this map at the time. And each of these map points has a directional arrow that points in the direction that the database recorded the device was traveling in.

415 2:08:12

MR. BRENNAN: When you look at this information generated because of the usage of Waze, and you can see both the accuracy and the speed, with the Waze information at its most accurate, can you actually tell whether the vehicle is moving or whether it stops?

416 2:08:28

MR. WHIFFIN: Yes, based on the speed and the location and the timestamps you can determine whether the device is moving or stopped.

417 2:08:34

MR. BRENNAN: Thank you.

418 2:08:35

MR. WHIFFIN: Also important to point out here in terms of knowing how reliable this location information is, I typically look at something along the lines of does the location think it's accurate. In this case, 5 m. So, yes. Does it make sense? Like it's on the road, it's on the correct side of the road. So, again, it kind of makes sense. It fits the pattern of the road. The cadence and the speed are what you would expect for this road, like traveling at 20 to 30 miles an hour up here seems quite reasonable. So all of these factors taken together increase my confidence that this would be reliable location data.

419 2:09:11

MR. WHIFFIN: Moving to the next slide, between 20 minutes and 19 seconds and 21 minutes and 58 seconds after midnight, the device starts on the left side — uh, sorry, on the right side at Denim Street, drives up and turns left onto Maplecroft Road. Again, we see that all of these location points match the pattern of the road layout. They all have a consistent cadence, a consistent speed traveling at between 10 and 20 mph. And we see a cluster of records here, which is around a stop sign. So again, it indicates how reliable the data is because the location data that's recorded recognized the vehicle slow, come to a stop, and then continue after the stop sign.

420 2:09:56

MR. BRENNAN: Is Maplecroft Road in Canton?

421 2:09:57

MR. WHIFFIN: Yes. At the end of Maplecroft Road, the device turned left onto Oakdale Road and continued heading down there. Between 21 minutes and 59 seconds and 22 minutes and 53 seconds, the device continues down Oakdale Road. Again, all of these location points show with 5 meter accuracy. They show a consistent cadence, consistent pattern to the road and again we see a cluster where we see the device come to a slow or a stop for a stop sign. The device ultimately turns right onto Cedarcrest Road, I believe. And continues down there between 22 minutes and 54 seconds and 23 minutes and 57 seconds. Again as I've said before, all of these points 5 m accurate, they all conform to the road, cadence is good and again we see a cluster on approach to a stop sign.

422 2:10:45

MR. WHIFFIN: The device shows that it overshot Fairview Road and continued turning up Cedarcrest but came to a stop somewhere between 50 and 51. And at 23 minutes and 58 seconds, the device appears to have turned around, so potentially a three-point turn, in order to head back down Cedarcrest Road and turn right onto Fairview Road. Again, accuracy 5 m, good cadence, good conformity to the road. All appears to be reliable and make sense. Traveling at an average of 20 miles an hour.

423 2:11:37

MR. BRENNAN: And that road coming down at the bottom of the screen where John O'Keefe's phone travels, that's Fairview Road.

424 2:11:50

MR. WHIFFIN: This is Fairview Road here. Yes. The next few slides replay that same data, but instead of showing multiple points on one graph or on one map, it's going to show one location point per slide. So at 24 minutes and 20 seconds, we see the device is already on Fairview Road. Accuracy of 5 meters, traveling at 14.8 mph and heading south. 24 minutes and 21 seconds, now at 16.2 mph, but it's still highly accurate information. 24 minutes and 22 seconds traveling at 18.3 mph. 24 minutes and 23 seconds traveling at 16.9. 24 minutes and 24 seconds after midnight, traveling at 16.9. 24 minutes and 25 seconds traveling at 16.6. 24 minutes 26 seconds traveling at 17. 24 minutes 27 seconds traveling at 15.9 mph.

425 2:13:25

MR. WHIFFIN: At 24 minutes 28 seconds traveling at 14.5 mph, at which point it's approximately outside number 34, around the driveway area. 24 minutes and 29 seconds traveling at 12.1 mph. 24 minutes and 30 seconds traveling at 11.5. 24 minutes and 31 seconds traveling at 10.4. 24 minutes and 32 seconds traveling at 8.9. 24 minutes and 33 seconds traveling at 7. 24 minutes 34 seconds traveling at 5.2. 24 minutes and 35 seconds traveling at 3.5. 24 minutes and 36 seconds traveling at 3.2 mph. And at 24 minutes 37 seconds traveling at 1.4 mph. Finally, the device comes to a complete stop at 24 minutes and 38 seconds. I'll say from the testing that I've done related to the speed, it may not be 100% accurate, but it's a very good indicator of the speed in general.

426 2:14:33

MR. WHIFFIN: So if it says it was traveling at 10 miles an hour, it would have been traveling somewhere between 9.5 and 10.5 on average.

427 2:14:45

MR. BRENNAN: Mr. Whiffin, you just showed us the travel of Mr. O'Keefe's cell phone around 12:24 to 12:24:38 on January 29th, 2022. And you said at 12:24:38 it came to a complete stop.

428 2:15:03
429 2:15:03

MR. BRENNAN: Before that complete stop, was the car continuously moving at some speed?

430 2:15:10

MR. WHIFFIN: Yes. This is the first record that shows 0 miles per hour or 0 m/s. Prior to this, there was always a record that showed some level of speed.

431 2:15:26

MR. BRENNAN: If you look at number 34 on that chalk, if you can highlight it, please.

432 2:15:33
433 2:15:33

MR. BRENNAN: Um, if the driveway were at the right side, the top side of the house.

434 2:15:40
435 2:15:41

MR. BRENNAN: Um, does your studies indicate that the vehicle or at least the phone traveled past the driveway before it stopped?

436 2:15:50

MR. ALESSI: Objection.

437 2:15:51

JUDGE CANNONE: Ask it non leading.

438 2:15:52

MR. BRENNAN: Did this car or the phone that was in the car ever stop at the driveway of that address?

439 2:16:01

MR. WHIFFIN: No. According to the location and the speed data from the device, by the time it was approximately at the driveway, the phone reports it was still traveling at around 15.9 mph.

440 2:16:17

MR. BRENNAN: Have you ever seen a photograph of that address?

441 2:16:19

MR. WHIFFIN: I have.

442 2:16:20

MR. BRENNAN: You have or have not?

443 2:16:21

MR. WHIFFIN: I have.

444 2:16:21

MR. BRENNAN: You have. And in that address, do you see on the far left corner of that address, in the yard, there's a flag pole?

445 2:16:28
446 2:16:28

MR. BRENNAN: Where this car stopped. So, this phone stops at 12:24:33. How close is the phone to that flag pole?

447 2:16:33

MR. WHIFFIN: I believe very close.

448 2:16:35

MR. BRENNAN: And do you ever see the car or the phone stop anywhere near that driveway?

449 2:16:39
450 2:16:39

MR. BRENNAN: Please continue.

451 2:16:40

MR. WHIFFIN: Between 24 minutes and 39 seconds and 25 minutes and 8 seconds, there were a cluster of more records all showing 5 m accuracy but no movement. Although the center point does move around a little bit. You could interpret this as movement, but because all of the radiuses or radii overlap, there's also a good chance that there's no movement that actually occurred here. This is just the device as it's trying to refine its location. At 25 minutes and 30 seconds, we see a relatively significant change where the accuracy drops to 34 m. We do see a course or a bearing that shows that the device reported it was heading west, but again this accuracy radius includes the previous locations anyway.

452 2:17:14

MR. WHIFFIN: So it's difficult to differentiate between actual movement based on this location data or just on the fact that the accuracy reduced, the center point shifted because of the accuracy change and therefore a bearing was attributed to it when it shouldn't have been.

453 2:18:03

MR. BRENNAN: If I could ask you some questions about the [unintelligible] that indicates 25 minutes 30 seconds. So 12:25:30, the circles become larger.

454 2:18:16

MR. WHIFFIN: Correct.

455 2:18:16

MR. BRENNAN: Is Waze still being used or has Waze been stopped?

456 2:18:22

MR. WHIFFIN: No. Waze has been closed at this point for about 40 or 50 seconds.

457 2:18:30

MR. BRENNAN: For how long, sir?

458 2:18:33

MR. WHIFFIN: About 40 or 50 seconds.

459 2:18:36

MR. BRENNAN: This location data, or this circle, the perimeter, that's not coming from the

460 2:18:44

MR. WHIFFIN: Waze application anymore? No — the location data never came from the Waze application. Waze was requesting location data. iOS is responding to that request and, as part of that response, would write the information to its database. Waze itself records very little location data.

461 2:18:58

MR. BRENNAN: So when you look at that circle based on location data alone, could the phone be anywhere within that circle?

462 2:19:05

MR. WHIFFIN: Correct.

463 2:19:05

MR. BRENNAN: There is a bullet pinpoint — center of that circle.

464 2:19:09
465 2:19:09

MR. BRENNAN: That center of the circle doesn't necessarily mean that the phone is at that exact location, does it?

466 2:19:15

MR. WHIFFIN: It doesn't. No. The center point is purely an indication of where you need to draw the center in order to draw the radius. If we didn't have a center point, how would you know where to draw this circle? And so the phone could be anywhere in that circle.

467 2:19:32

MR. BRENNAN: Close to 34, inside 34, 32?

468 2:19:33

MR. ALESSI: Objection, your honor.

469 2:19:34

JUDGE CANNONE: Ask it non-leading, please.

470 2:19:35

MR. BRENNAN: Could the phone be anywhere in that circle?

471 2:19:38

MR. WHIFFIN: It could.

472 2:19:39

MR. BRENNAN: Could it be at the center point?

473 2:19:41

MR. WHIFFIN: It could.

474 2:19:41

MR. BRENNAN: Could it be still in the car?

475 2:19:43

MR. WHIFFIN: It could.

476 2:19:44

MR. BRENNAN: Continue, please.

477 2:19:45

MR. WHIFFIN: Between 25 minutes and 31 seconds and 25 minutes and 36 seconds, there's an additional cluster of location data, ranging between 61 m accuracy and 17 m accuracy. All of them roughly centered on the same point approximately. And all of the accuracy radii cover the same area — there's so much overlap in these records that the device is essentially anywhere within the smaller circle. Between 27 minutes and 35 seconds and 38 minutes and 15 seconds, there were approximately 50 low-accuracy records. Again, the device wasn't being used to ask for location data. This is completely passive and resulting in some pretty poor location data.

478 2:20:18

MR. WHIFFIN: I've highlighted with the red arrow where 34 Fairview Road is, and we can see — although a lot of these location data do overlap with that point — there is location information here that doesn't. At 38 minutes and 16 seconds, the accuracy improves again — now 18 meters accurate — but continues to show approximately the same location that we saw 10 or 15 minutes earlier, around the flag pole area. 38 minutes and 17 seconds — same general area, slightly higher accuracy, down to 14 m. 38 minutes and 18 seconds — accuracy increased to 12 meters, shifted slightly. Now the flag pole area is essentially at the lower side of this circle. Obviously, the top side of the circle now includes a part of 34 Fairview.

479 2:22:06

MR. BRENNAN: If the location information is indicated by the circle and the circle has shifted, does that mean necessarily the phone has moved?

480 2:22:14

MR. WHIFFIN: Not necessarily. Typically you could assume it has, but when we're already talking about accuracies of 12, 13, 14 m, it starts to become a little bit harder to determine how accurate this data is. So at this point in time, it could be anywhere within this circle, and the movement of the center point could just be the result of refinement of the device or environmental conditions that suddenly change. If the weather changes, it could cause the device to slightly miscalculate, or to calculate differently.

481 2:22:50

MR. BRENNAN: Would a snowstorm or a blizzard potentially impact the precision of location information that's not precise, like Waze?

482 2:22:54

MR. WHIFFIN: It definitely has the potential to. Yes.

483 2:22:55

MR. BRENNAN: How about a phone being covered? Could that affect it?

484 2:22:58

MR. WHIFFIN: That could also affect it. Yes.

485 2:22:59

MR. BRENNAN: If somebody was lying on a phone, could that affect it?

486 2:23:01

MR. WHIFFIN: That could affect it.

487 2:23:02

MR. BRENNAN: Could being in a building affect it?

488 2:23:04

MR. WHIFFIN: It could.

489 2:23:04

MR. BRENNAN: Thank you.

490 2:23:05

MR. WHIFFIN: At 38 minutes and 20 seconds, again refining information more — we've got an 8 m accurate radius, still focusing primarily on the front yard towards the left side. And then accuracy of 7 m at 38 minutes and 21 seconds, again showing that same general area. Between 40 minutes and 22 seconds and 59 minutes and 29 seconds, accuracy drops off again and we see some fairly wild records that don't cover the area at all. But we also see some more accurate records showing, again, where the red arrow points at Fairview Road. Those records are highlighted here — just between 40 minutes and 22 seconds and 59 minutes and 29 seconds — only showing records of 25 meter accuracy or better. And again, it kind of focuses on that flag pole area. Between 1:00 a.m.

491 2:23:37

MR. WHIFFIN: and 2:00 a.m., only looking at location information which is 25 m accurate or better — again, it kind of focuses around the front yard area. Although some of these accuracies are still rather large and could put the device inside 34, on the opposite side of the street, or towards 32. Between 2 a.m. and 3:00 a.m., fairly similar story — most of these points are centered around that same location at the front yard. Similarly between 3:00 and 4:00 a.m., between 4 and 5, between 5 and 6. And in fact, if I take all of the location data between 25 minutes after midnight until 6:00 a.m., only looking at the records that report 10 m accuracy or better, then typically they all focus around that same location at the front of the yard, nearish to where the flag pole can be found.

492 2:25:17

MR. BRENNAN: I'd like to ask you some questions about this photograph. There's a red circle with a bunch of red dots in the middle.

493 2:25:25
494 2:25:25

MR. BRENNAN: Would those red dots indicate the center of some location that was captured at a particular point over that night?

495 2:25:33

MR. WHIFFIN: Yes. So each of those center dots is the center of a 10 m accurate or better location record. I chose to not show the accuracy radius circle on this image just purely because it makes it hard to see when you've got all these intersecting lines. But ultimately, if you were to draw a 10 meter radius around all of these points, they would all fall within the large red circle that's shown.

496 2:26:00

MR. BRENNAN: So this photograph was meant to take readings from the most accurate of the data throughout the night.

497 2:26:12

MR. WHIFFIN: Correct.

498 2:26:12

JUDGE CANNONE: Sustained. Ask it again differently, please.

499 2:26:16

MR. BRENNAN: Did this circle include low accuracy data?

500 2:26:21

MR. WHIFFIN: No. This circle only includes 10 meter accuracy or better.

501 2:26:28

MR. BRENNAN: Okay. The fact that the center dots are in different spots — is that inconsistent with a phone being in the same place, not moving that entire night?

502 2:26:47

MR. WHIFFIN: It could indicate movement. It could indicate refinement.

503 2:26:49

MR. BRENNAN: Is it impossible to tell?

504 2:26:50

MR. WHIFFIN: It's impossible to tell at this level of detail.

505 2:26:53

MR. BRENNAN: Anyway, are all of these dots — given the range of 10 m or under — are all these dots and all these readings of the high accuracy data that you compiled for that night, are they all consistent with Mr. O'Keefe's phone being near the flag pole and not moving that night?

506 2:27:09

MR. ALESSI: Objection, your honor.

507 2:27:10

JUDGE CANNONE: I'm going — I think that's a reasonable assumption. All right, this might be a good spot. Are you ready to move on to the next area, or do you have more questions?

508 2:27:20

MR. BRENNAN: Now would be a fine time, your honor.

509 2:27:22

JUDGE CANNONE: All right, folks, why don't we take our morning break? 15-20 minutes. See you back there. Thank you.

510 2:27:27

COURT OFFICER: Please rise for the jury. Be seated.

511 2:27:30

JUDGE CANNONE: All right, Mr. Brennan, whenever you're ready.

512 3:00:22

MR. BRENNAN: Mr. Whiffin, before we go into the next subject area, I'd like to ask you about the location data. Based on your review of the location data, do you have an opinion whether the location data throughout the evening is consistent with John O'Keefe's cell phone being near the flag pole the entire night?

513 3:00:44

MR. WHIFFIN: I believe it is. Yes.

514 3:00:46

MR. BRENNAN: I asked you whether you had an opinion whether it was consistent — I didn't ask you if you had an opinion to a reasonable degree of scientific certainty. Are there other things that you looked at that you will consider in addition to the location data to have a more certain opinion?

515 3:01:08

MR. WHIFFIN: There is.

516 3:01:08

MR. BRENNAN: And is the next thing that you considered Apple Health data?

517 3:01:11

MR. WHIFFIN: It's Apple Health data. Yes.

518 3:01:12

MR. BRENNAN: I asked you about it earlier on, but I just want to talk about it a little bit before you show us and present to us the data that you've compiled for us. Is Apple Health data different than when you have like an Apple Watch?

519 3:01:24

MR. WHIFFIN: No. It's the same Apple Health data recording on the phone or the watch. The only difference is the sensors being used to do that monitoring. So if you're just using the phone, obviously you're only using the sensors in the phone. It's limited to steps walked and to altitude climbed. If you're wearing a watch, it can also do those things, but it can also add things like blood pressure monitoring and things like that.

520 3:01:45

MR. BRENNAN: Does Apple Health data require an internet connection?

521 3:01:49

MR. WHIFFIN: It doesn't. No.

522 3:01:50

MR. BRENNAN: So it's all self-sufficient?

523 3:01:52

MR. WHIFFIN: It is.

524 3:01:53

MR. BRENNAN: So without having an internet connection, it will still store the data.

525 3:01:59

MR. WHIFFIN: Correct.

526 3:02:00

MR. BRENNAN: If I have an iPhone, is it storing health data even if I didn't ask for it to do so?

527 3:02:10

MR. WHIFFIN: Yes. Unless you actively turn the feature off, it will by default try to track movement.

528 3:02:18

MR. BRENNAN: Is it something that is hidden that I wouldn't see unless I look for it?

529 3:02:26

MR. WHIFFIN: No. There's an application for Apple Health and then the settings are quite obvious in the settings screen.

530 3:02:33

MR. BRENNAN: Apple Health data tracks movement of the phone.

531 3:02:36

MR. WHIFFIN: Correct.

532 3:02:36

MR. BRENNAN: When you were considering the Apple Health data in this case, did you begin looking for the Apple Health data before Mr. O'Keefe's phone began approaching Fairview Road?

533 3:02:47

MR. WHIFFIN: Yeah, I started again at around midnight and looked at the health data up until 6:30 a.m. on the 29th.

534 3:02:55

MR. BRENNAN: The different points when you tracked Apple Health data — is that helpful even if you're only trying to isolate a certain point in time?

535 3:03:05

MR. WHIFFIN: It can be. Yes.

536 3:03:06

MR. BRENNAN: Does it help determine whether or not it was working properly?

537 3:03:11

MR. WHIFFIN: It can determine whether it's working properly. It can determine an average kind of walking speed, for example, of a person, the average gait that the person may walk with.

538 3:03:25

MR. BRENNAN: If a person has an iPhone and they're moving and it registers Apple Health data, and then they stop moving and the Apple Health data doesn't register because there's no movement — would the Apple Health data resume movement even if somebody else picks up the phone?

539 3:03:46

MR. WHIFFIN: It would. The phone itself doesn't care who's carrying it. It just looks for movement.

540 3:03:54

MR. BRENNAN: So it doesn't identify the owner in order to register movement.

541 3:03:57

MR. WHIFFIN: Correct.

542 3:03:57

MR. BRENNAN: Your Honor, does it identify the owner in order to register?

543 3:04:01

JUDGE CANNONE: Better question.

544 3:04:01

MR. WHIFFIN: It doesn't. No.

545 3:04:02

MR. BRENNAN: Could you turn to the next part of the data analysis that you did?

546 3:04:07

MR. WHIFFIN: Yes, please. So the two sources that I got the Apple Health data from were a database called healthdb_secure.sqlite. As I said earlier, this is the typical database that's used to store long-term information about the health activity that's been recorded. So this database can have years worth of steps taken, flights climbed, and any other kind of health data that's been recorded. The downside to that is that the information is aggregated. So you see chunks of time and multiple activities can happen within those chunks of time. The cache encrypted C .SQLite database is much more temporary but is much more granular.

547 3:04:40

MR. WHIFFIN: So we can see exact times that flights were climbed, for example, or at least you can see the exact time that the flight climb was recorded to the device, and then that information is aggregated into the larger chunk of time. So again we might see within the cache encrypted C individual flight climb events that occurred, for example, 30 seconds apart. But by the time that information is written to the healthdb_secure, you're now looking at a 10-minute time period with three flight climb events as opposed to three individual flight climb events with individual timestamps. Typically that source is not used because the data is not stored there for very long. The information I found on John's phone was essentially these five records.

548 3:05:23

MR. WHIFFIN: So between 12:11:09 and 12:21:05, there were 170 steps recorded by the device.

549 3:05:34

MR. BRENNAN: Mr. Whiffin, I'm going to stop at each one and ask you some questions. At the time period between 12:19 to 12:21:15, you don't have any independent information where John O'Keefe or his cell phone were, do you?

550 3:06:08

MR. WHIFFIN: The location data that I showed to begin with on Washington Street was around 12 minutes after midnight. So the presumption is that's where the location was at that time, and then at 12:21:05 the device had already started using Waze. It was already driving along [unintelligible] or had turned onto [unintelligible].

551 3:06:30

MR. BRENNAN: What time did you say that Waze was initiated?

552 3:06:34

MR. WHIFFIN: It was approximately 12:19:30.

553 3:06:36

MR. BRENNAN: Thank you.

554 3:06:37

MR. WHIFFIN: Again we see at 12:21:10 until 12:24:22 there are 80 steps recorded. And again if you compare this to the location data, we know that the device was in a vehicle at this time. Between 12:22:14 and 12:24:37, we have three flight climb events that are aggregated into that time period. And again the location data shows that the device was traveling in a vehicle at that time.

555 3:07:07

MR. BRENNAN: Mr. Whiffin, you had showed us a slide of 12:24:37 on January 29th, 2022 in your PowerPoint presentation, noting at that time 12:24:37, the phone in the car was still traveling at 1.4 mph.

556 3:07:22

MR. WHIFFIN: Correct.

557 3:07:22

MR. BRENNAN: This is about a second before it came to a stop. Can you conclude to a reasonable degree of scientific certainty that that period of 12:22:14 to 12:24:37, Mr. O'Keefe — or at least Mr. O'Keefe's cell phone — was still in that car?

558 3:07:42

MR. WHIFFIN: Yes, the location data shows it was in the car at the time. And my next few slides will demonstrate why we're still recording a flight climb event while it was in a vehicle.

559 3:07:57

MR. BRENNAN: Thank you. At 12:31:56 until 12:32:16, there were 36 steps recorded. And then there was no further health activity recorded on the device for several hours, until 4 minutes after 6 a.m., when 432 steps were recorded between the time of 6:04 and 6:11. Let me ask you about that 12:31:56 to 12:32:16 time period. We can see larger ranges in the time period range. That is a smaller range comparatively.

560 3:08:30
561 3:08:30

MR. BRENNAN: Okay. At 12:31:56 — is that the beginning of the 36 steps?

562 3:08:36

MR. WHIFFIN: Essentially, yeah. It takes the timestamps from the cache encrypted C, looks at when the first step occurred, looks at when the last step occurred, and aggregates the times based on that. So 12:32:16 would be the last steps taken for that cell phone.

563 3:08:57

MR. BRENNAN: Correct. And in between that time period there's 36 steps. You shared earlier that it doesn't indicate the direction of the steps, other than the movement that equates to the steps. Can it tell anything about the direction, the positioning, how the phone was moving?

564 3:09:20

MR. WHIFFIN: It can't. No. It's just purely registered what it thinks are 36 steps.

565 3:09:26

MR. BRENNAN: Could it have been a straight line?

566 3:09:30

MR. WHIFFIN: It could have been a straight line.

567 3:09:33

MR. BRENNAN: Could it have been somebody pacing?

568 3:09:36

MR. WHIFFIN: It could have been.

569 3:09:38

MR. BRENNAN: Could it have been somebody moving and jumping?

570 3:09:42

MR. WHIFFIN: Yes. Jumping, if they were jumping forward.

571 3:09:46

MR. BRENNAN: Essentially after 12:32:16, when this phone took its last steps, it never moved again.

572 3:09:53

MR. ALESSI: Your Honor, form of the question.

573 3:09:56

JUDGE CANNONE: Sustained.

574 3:09:56

MR. BRENNAN: After 12:32:16, when this phone took its last steps, did it move again until 6:04:01 a.m.?

575 3:10:05

MR. WHIFFIN: There were no more steps or flight climb or any other health activity recorded during that time.

576 3:10:12

MR. BRENNAN: Do you know what triggered movement at 6:04:01 a.m. of Mr. O'Keefe's cell phone?

577 3:10:18

MR. WHIFFIN: I presume that the device was moving at that time, but I don't know the details of who.

578 3:10:25

JUDGE CANNONE: I'll strike it. Please continue.

579 3:10:27

MR. WHIFFIN: Regarding the flight climb events, looking at the cache encrypted C database, I was able to find more granular, accurate timestamps for these records. And I showed those timestamps on this map at the position that the device was according to the location data at the time.

580 3:10:47

MR. BRENNAN: So you're going back to earlier in the evening now, 12:22:14?

581 3:10:51

MR. WHIFFIN: Correct.

582 3:10:52

MR. BRENNAN: To 12:24:37, when the phone stopped near the flag pole.

583 3:10:56

MR. WHIFFIN: Correct.

584 3:10:57

MR. BRENNAN: Okay. Thank you.

585 3:10:58

MR. WHIFFIN: So we have the first record at 12:22:17 — a flight climb event was recorded. I've highlighted that with a red line, and that equates to the red line that shows underneath the timestamp where the device was at that time. The second record is 12:22:32, shown with a green line which shows over here. And then finally 12:24:37 after midnight shows with an orange line down here outside 34 Fairview. I'd like to point out that health activity events are recorded upon the event completion. The device doesn't know that you're about to walk up some stairs. It doesn't know that you're halfway up some stairs. It has to wait until you've reached the top in order to detect that an altitude change has occurred. So that change only gets written to the database once the flight climb has ended.

586 3:11:45

MR. WHIFFIN: I tested approximately eight different phones, different models, different versions of iOS, and found that on average there was a time difference between 15 and 50 seconds between when I physically stopped walking up a flight of stairs and when the record was made. So it's just based on the time that the device takes to pull the altitude, detect that an altitude difference has occurred, and then write the data to the database. So then I took that average data between 15 and 50 seconds and plotted it onto this graph, which also plots the altitude of the device over time. So the red line here shows the time according to the cache encrypted C database where the first flight climb event was recorded at 12:22:17.

587 3:12:22

MR. WHIFFIN: Working back 15 seconds from that to say that, with the gap that I know exists between the flight climb ending and when the record is recorded, the flight climb event is presumed to have occurred within this red gradient area. The altitude information on the device shows that between those times the altitude increase from around 41 m to around 45 m. You may recall earlier I said that it's a 3 m incline that Apple considers a flight climb event. Therefore the incline that occurred within this red gradient is sufficient to trip a flight climb event. When we look at the second record at 22 minutes and 32 seconds, this is shown on this chart as a green line. And again working back 15 seconds and beyond to allow for the tolerance we see the green gradient area.

588 3:13:08

MR. WHIFFIN: This shows an altitude change of around 45 m to 48 m. Again, that would be sufficient for a flight climb event to be recorded because we have 3 m incline change. We then don't see an incline change for a while. All we see is the device going downhill until we get the record right at the end there at 24 minutes and 37 seconds. And again working back around 15 seconds to the orange gradient we see an increase from around 25 to 28-29 meters. Again, that would be sufficient to cause a flight climb event to be recorded.

589 3:13:55

MR. BRENNAN: I'd like to ask you — sorry, I'll go back, continue, and then I'll ask you please.

590 3:14:05

MR. WHIFFIN: Okay. I then compared that information to a topography website from the area according to topography website data and plotted that out. Here we see the red circle now is related to the first flight climb, the green circle to the second flight climb, and the orange circle to the third flight climb. The gradients that we see here are the same gradients that were shown on the previous graph. So the presumption is that within this red gradient is where the flight climb event occurred. Within the green gradient here is where the second flight climb event occurred. And within the orange gradient here is where the third flight climb event occurred. The white circles show the altitude of that particular location according to the topography website.

591 3:15:23

MR. WHIFFIN: So again we see that for the red gradient there's an increase from 43 to 47 m. Between the green gradient and the green number two, again we're going from around 47 to 50 m. And then with the orange gradient at the bottom, we've gone from around 26 to 28 m. So, fairly consistent with the data that was recorded on the device in terms of altitude information, and I would suggest is the reason that these flight climb events occurred.

592 3:15:54

MR. BRENNAN: Mr. Whiffin, there's three different times. The first is 12:22:17. At that time, was the Waze data app initiated?

593 3:16:01

MR. WHIFFIN: It was.

594 3:16:02

MR. BRENNAN: And did that indicate whether or not Mr. O'Keefe or his phone were traveling in a car at that time?

595 3:16:10

MR. WHIFFIN: Appeared to be still traveling in a car at 12:22.

596 3:16:14

MR. BRENNAN: Was the Waze data initiated and active?

597 3:16:16

MR. WHIFFIN: It was. Yes.

598 3:16:17

MR. BRENNAN: And at that time, does the data indicate that Mr. O'Keefe's phone was in a vehicle and moving?

599 3:16:24

MR. WHIFFIN: It does.

600 3:16:25

MR. BRENNAN: And you showed us a slide finally from 12:24:37 that the vehicle was still moving 1.4 mph. Correct.

601 3:16:32

MR. WHIFFIN: Correct.

602 3:16:32

MR. BRENNAN: And was the Waze data initiated and active at that time, 12:24:37?

603 3:16:37

MR. WHIFFIN: If I remember correctly, Waze had closed about 5 or 10 seconds earlier.

604 3:16:42

MR. BRENNAN: Now based on your study of the Waze information, the location information, the topography and the health data, do you have an opinion to a reasonable degree of scientific certainty whether the indication on the health data reflecting flights of stairs — do you have an opinion whether or not that was registered as a result of a person holding a phone walking upstairs or for some other reason?

605 3:17:09

MR. WHIFFIN: Based on the location data, the health data and the research that I did and the testing, I believe it is more likely that the device was in a vehicle traveling on a road going up an incline versus the location data being incorrect and the person walking up physical stairs.

606 3:17:52

MR. BRENNAN: Thank you. You can continue please.

607 3:17:58

MR. WHIFFIN: Okay. So I'll address the idea of three clocks, which I believe was brought up previously.

608 3:18:01

MR. BRENNAN: Let me interrupt. Sorry. Why don't we just explain to the jury how clocks work in an iPhone?

609 3:18:04

MR. WHIFFIN: That is kind of covered in the next slide anyway.

610 3:18:07

MR. BRENNAN: Okay. Maybe worth just jumping ahead to that slide. Explain the idea of three clocks.

611 3:18:10

MR. WHIFFIN: Yes. Essentially there is one clock on an iPhone. It's the clock that you see — it's shown in the top corner and all activity is related to that particular time. So when you receive a text message, the time that's shown in the database is related to the time that you can see on the phone. When you do health activity it's related to the time that you see in the top corner of the phone. Everything is related to that time. The difference is within the current power log databases — it's a subset of files stored on iOS devices. They use what's called a monotonic clock, but it's not a clock that can actually be trusted to see when events occurred. It's the way that the device records time. It's essentially a counter that's just counting seconds since the device was reset, basically.

612 3:18:40

MR. WHIFFIN: And I'm sure most people can recall a time where you would set a clock on a digital device, come back to it 3 or 4 months later and the clock's now not quite as accurate as it was when you left it. Time starts to drift. It might drift forward and be faster. It might drift slower and be further behind. That essentially happens with the monotonic clock as well. So you have to take the values that the monotonic clock provides and add or subtract different values which are essentially offsets in order to get the accurate time. And that's what I'll be displaying in this slide here. The confusion with the idea of three clocks I believe comes from the way that Magnet AXIOM displays power log data.

613 3:20:08

MR. WHIFFIN: They show a monotonic date and time, a baseband date and time and a display date and time within the power log records. As an examiner, it's really good to see this data and understand how the tool is determining these values. As an examiner, it would be really bad to look at these values and think that they are accurate timestamps at face value because they aren't. And I'll start to talk through how this information works. So the other thing that Axiom shows as well as the monotonic, baseband and display times is they show the location where this information came from. In this case we have two tables. One is called PL springboard agent event forward sblock and that is what this table is here. And you can see we've got an ID number, a timestamp, and a value of locked.

614 3:20:54

MR. WHIFFIN: We also show a second table that's involved called PL storage operator event forward time offset. And that's this table at the bottom here. So again, we see there's an ID, a timestamp, baseband, kernel, and system values. These values all need to be read together in order to make sense of the data. So for example, if I take the timestamp that's shown here, the 1643 33687 number, if you treat that as number of seconds since the 1st of January 1970, it's what we call a Unix epoch. That will get you the timestamp of 29th of January 2022 at midnight, 21 minutes and 27 seconds, once you account for the UTC minus 5 offset. And you'll see that that is the same timestamp that Axiom shows here as the monotonic time, 12:21:27.

615 3:21:41

MR. WHIFFIN: What we need to then do is take that monotonic time and add it to the baseband value that we see in the time offset table. So now we have a value of 1643 36 87.14954 and we add minus 183 — whatever this number is here — to get this value. If we treat this value as number of seconds since the 1st of January 1970, then we get a time of 18 minutes and 23 seconds past midnight on January 29th, which is also the time that we show here as the baseband time. Finally, we can take the monotonic time and add the minus 181 seconds shown in the system to get this value which equates to 18 minutes and 25 seconds past midnight on the 29th of January which is the same as the display time up here.

616 3:22:41

MR. WHIFFIN: So all this is essentially doing is saying that the counter that is built into the iPhone is registered at the time that we see in the top — the monotonic time. This is not necessarily the time that the event happened. You have to offset it with this value here in order to get the actual time that this happened. My own personal phone when I was doing this testing, the time difference between the monotonic time and when something actually happened was over two weeks. There was a massive difference because my phone has been drifting so far since I originally bought and set up that phone. And again, when I was testing this, I can turn the flashlight on, turn the flashlight off. Both of those activities are recorded in the power log database.

617 3:23:30

MR. WHIFFIN: If I just look at the monotonic time, it's off by over two weeks. If I do this process to calculate the correct offset, it shows exactly when I turned that flashlight on and when I turned that flashlight off. The calculation is imperative. Without the calculation, these timestamps are irrelevant. And all Axiom is doing here is they're showing you the values that they use in order to calculate the final value. It doesn't mean that you can take the monotonic timestamp and read anything into it. It's completely irrelevant on its own.

618 3:24:10

MR. BRENNAN: Is it necessary to understand this process in order to ensure the integrity of the time that you're offering to the jury so you understand whether it's accurate or not?

619 3:24:22

MR. WHIFFIN: It would be if we were discussing power log data. Power log data only really encompasses things like battery level, the time and date that it's plugged in, button presses, camera usage, things like that. It doesn't account for location data. It doesn't account for Apple health data. They both work on the system time and they both work on the same system time. So they're always going to be aligned.

620 3:24:52

MR. BRENNAN: Do you have an opinion to a reasonable degree of scientific certainty as to the accuracy of the location data times and the accuracy of the health data times that you shared with us?

621 3:25:04

MR. WHIFFIN: They'd be consistent with each other. So to summarize, there's only really one clock that's in use on an iPhone for recording. The only difference is the monotonic time which is how power logs record information. But you need to offset the times to figure out when that activity actually happened. And that you only have to offset those times for power log data. Not for health, not for location, not for messages or photographs or any other activity like that. Purely power log data.

622 3:25:36

MR. BRENNAN: Okay. Is there another subject that you looked at that you analyzed in order to reach a conclusion about the time and location of John O'Keefe's cell phone over the night of January 29, 2022?

623 3:26:18

MR. WHIFFIN: Yes, the next one is battery temperature.

624 3:26:20

MR. BRENNAN: Can you explain a little bit of background on this before you start the slides?

625 3:26:26

MR. WHIFFIN: So again, we have a temperature sensor built in within the phone monitoring for if the battery temperature increases too high and becomes a danger or if the temperature gets too low and becomes an issue. So it constantly monitors the temperature of the battery and records that information in the knowledgeC database.

626 3:26:48

MR. BRENNAN: Did you look into the battery temperatures from before midnight and after midnight and do an analysis regarding the temperatures of that cell phone battery?

627 3:26:58

MR. WHIFFIN: I did. Yes. Throughout the evening of the 28th of January and then the morning of the 29th.

628 3:27:03

JUDGE CANNONE: Mr. Whiffin, that's going to be hard to read. Is there any way you can enlarge it?

629 3:27:08

MR. WHIFFIN: Apparently not like that. There we go.

630 3:27:10

JUDGE CANNONE: Thank you.

631 3:27:11

MR. WHIFFIN: So on the evening of the 28th, see an average temperature of around mid-80 degree Fahrenheit. I've got no understanding of where the device was at this time — whether it was in a pocket, on a surface, whether it was in use or not. But I just wanted to get an average idea of temperatures of the device. By 13 minutes after midnight, we're still at 82 Fahrenheit. At 22 minutes after midnight, we know from the location data that the device was currently in a car. And we see the temperature has dropped to 77 Fahrenheit. By 37 minutes after midnight, we now know the device is already at Fairview. It's been at Fairview for approximately 12 minutes. And the temperature has continued to drop. It's now 72 Fahrenheit.

632 3:27:52

MR. BRENNAN: Mr. Whiffin, if I can interrupt you — at 12:37, when the temperature drops to 72°, is that before or after the health data stops for that evening?

633 3:28:06

MR. WHIFFIN: That's after.

634 3:28:07

MR. BRENNAN: Thank you.

635 3:28:08

MR. WHIFFIN: 45 minutes past, the temperature has dropped to 66 Fahrenheit. At 53 minutes past, it's dropped to 61 Fahrenheit. At 7 minutes after 1, it's dropped to 55 Fahrenheit. At 1:36, it's dropped to 50. And then we have a large gap in the data, with the next record being made at 6 minutes after 6:00 a.m. when the temperature is 43 Fahrenheit.

636 3:28:40

MR. BRENNAN: Mr. Whiffin, if a phone has any protection or coverage — well, let me ask it this way. Do you know what if anything happened around 6:02, 6:03 to trigger that 6-degree drop in temperature?

637 3:29:12

MR. WHIFFIN: I don't know accurately, no.

638 3:29:17

MR. BRENNAN: Okay. And then you're now at 6:14 and it's 37°.

639 3:29:26

MR. WHIFFIN: Yeah, correct. This is the coldest temperature recorded.

640 3:29:33

MR. BRENNAN: Do you know what if anything happened to that phone at 6:15:01?

641 3:29:45

MR. WHIFFIN: I don't know.

642 3:29:46

MR. BRENNAN: Okay, please continue.

643 3:29:47

MR. WHIFFIN: And then as of that point in time, from 6:35, we start to see an increase in temperature to 43 Fahrenheit. At 6:40 it's up to 50 Fahrenheit. At 6:48, up to 55 Fahrenheit. And at 6:56, up to 61 Fahrenheit. And then also plotted this out onto a graph just for visualization. Again, we can see on the evening of the 28th the temperature is relatively consistent. It starts to drop as we know the phone is traveling in a car, and by the time it arrives at Fairview we only see it drop until 1:36 a.m. We see a relatively modest drop over the next few hours but no records recorded.

644 3:30:41

MR. WHIFFIN: We see the final drop at 6:14 and then we see an increase, but there are no increases that occur prior to 6:14 that would suggest that the phone went from a cold environment to a warm environment or had extensive usage between 1:36 a.m. and 6:06 a.m.

645 3:31:00

MR. BRENNAN: Is there any indication at any time that that battery temperature went up?

646 3:31:05

MR. WHIFFIN: No, there's no records related to battery temperature at all for that time.

647 3:31:10

MR. BRENNAN: Thank you. Is there another area that you looked at for your conclusions in this case?

648 3:31:17

MR. WHIFFIN: Yes, I was looking at device usage.

649 3:31:20

MR. BRENNAN: What is device usage?

650 3:31:21

MR. WHIFFIN: Information about when the user unlocks the phone, what applications they're using, what they're using the device for, and when they lock the phone again.

651 3:31:32

MR. BRENNAN: Would device usage require an actual person to interact with the phone, or can it happen without user interaction?

652 3:31:36

MR. WHIFFIN: Everything that I was looking at was related to physical interaction and manipulation of the device by a user.

653 3:31:40

MR. BRENNAN: Okay, please continue.

654 3:31:41

MR. WHIFFIN: So the three sources of data that I used for this were the knowledgeC database I mentioned earlier, that logs lots of different activity including device unlocks, device locks, applications that are on screen. The current power log which I mentioned, which can track button presses — so specifically when the lock button is pressed, and the times that I display have been offset appropriately. And unified logs, which is essentially a list of almost everything that's happening on that phone for a short amount of time. But it would be used, for example, if you had a problem with your device and took it back to Apple because it was crashing all the time — they could look at the unified logs and figure out what's causing these crashes to occur. So, really granular.

655 3:32:12

MR. WHIFFIN: We see that at 12 minutes and 52 seconds after midnight, the device is unlocked using biometric Face ID. The SMS application is on screen for about 5 seconds before it's closed, and then the user presses the lock button at the side of the device to lock the phone. At 13 minutes and 54 seconds, biometric Face ID is used again and the SMS application is opened. And at 14 minutes and 29 seconds, the lock button is pressed again, causing the device to lock. 15 minutes and 46 seconds, the device is unlocked using Face ID. The SMS application is already on screen because that's the application that was on screen when the device was locked. And the device is locked again at 16:03. At 17 minutes and 59 seconds, the device is unlocked again using Face ID.

656 3:33:40

MR. WHIFFIN: The SMS application is still on screen from before, and at 18 minutes and 12 seconds the lock button is pressed causing the device to lock. At 18 minutes and 25 seconds the device is unlocked using Face ID. The SMS application is already on screen from the previous usage, and at 18:31 the SMS application is closed. At 18:34, the phone application is opened by the user actively pressing on the phone icon on the home screen. At 18:36, they're now in a call and this causes a different screen on the phone. And at 19:23, that phone call ends. At 19:29, the Waze application is opened by the user pressing on the icon on the home screen. And that's open for approximately 5 minutes, closing at 24 minutes and 26 seconds.

657 3:34:28

MR. WHIFFIN: 2 seconds later, at 24 minutes and 28 seconds, the device is locked by the user pressing the lock button on the side of the phone. At 24 minutes and 59 seconds, the device is unlocked using Face ID. The SMS application is opened using the icon on the home screen. And at 25 minutes and 9 seconds, the lock button is pressed by the user to lock the device. At 27 minutes and 45 seconds, the device is unlocked using Face ID. The SMS application is already on screen. And at 27 minutes and 50 seconds, the device is locked using the lock button. 29 minutes and 52 seconds, device is unlocked using Face ID. SMS application is already on screen from the previous usage, and at 29 minutes and 53 seconds the lock button is pressed to lock the device.

658 3:35:15

MR. WHIFFIN: 32 minutes and 4 seconds, the device is unlocked using Face ID. SMS application is already on screen from the previous use, and at 32 minutes and 9 seconds the lock button is pressed by the user. And that is the final interaction with the device. It's the final unlock of the device using Face ID, and it's the final logged button press on the device as well to lock the device. So, the final

659 3:36:02

MR. BRENNAN: Interaction with John O'Keefe's cell phone that night.

660 3:36:04

MR. WHIFFIN: Correct. Up until 6:15 a.m., 12:32 AM was the last time before the phone moved again the next morning.

661 3:36:09

MR. BRENNAN: Correct. Is there one more area that you engaged in analyzing to help reach your conclusions in this case?

662 3:36:14

MR. WHIFFIN: There is. During my time looking at the unified logs that were mentioned, I found a record that appeared like it could be interesting that was called Doppler. This was the pocket state that I think I mentioned earlier, and it detects when the user takes the phone out of the pocket, or at least removes the item that's blocking the camera. ...there were hundreds of thousands of records within the unified logs that I was able to filter down to just the Doppler records and to filter and aggregate down into a more digestible number, which is what's shown here. So again, whenever the device receives a phone call or whenever the device is picked up in a particular way, the camera activates and it actively looks for a face.

663 3:36:49

MR. WHIFFIN: If it finds that the camera is blocked, it records the fact that it's in a pocket state, and it will continue to record pocket state until either the obstruction is removed — so the device has been removed from a pocket — or until whatever is calling for the Doppler check to be completed. So, for example, if I make a phone call, it will continue to check and look for a face up until the phone call ends or the ringing ends. So in this case, at 12 minutes and 37 seconds, we see a small amount of time where four Doppler checks were conducted. And that ended at 12 minutes and 37 seconds with a pocket state cleared event. At 12 minutes and 39 seconds, there was a 7½-second period where 108 Doppler checks were conducted.

664 3:37:36

MR. WHIFFIN: Again, that ended with a pocket state cleared event at 12 minutes and 46 seconds. At 25 minutes and 8 seconds, there was a single Doppler check that resulted in a pocket state. And at 29 minutes and 37 seconds, for roughly 5½ seconds, there were 97 Doppler checks. The 97th check resulted in a pocket state cleared event at 29 minutes and 42 seconds. At 31 minutes and 52 seconds past midnight, there was an 11-second period where 155 Doppler checks were made. The 155th Doppler check resulted in a pocket cleared event at 32 minutes and 3 seconds. At 33 minutes and 14 seconds was the start of a 5 hour and 20 minute period where 26,500 Doppler checks were conducted. Every one of those checks came back to say that it was in a pocket state.

665 3:39:17

MR. WHIFFIN: There was never a pocket state cleared event during that time. At 2 minutes after 6:00 a.m. and 41 seconds, there was a 12-minute and 22-second period where 417 Doppler checks were conducted. The 417th Doppler check showed a pocket state cleared event at 6:15.

666 3:39:40

MR. BRENNAN: Mr. Whiffin, as a result of your analysis of John O'Keefe's cell phone — considering the location data, including Waze data, and considering the health data, the pocket state information, the battery temperature — did you have an opportunity to create a timeline putting all of these different important pieces of data together so you could show them to the jury in chronological order?

667 3:40:13

MR. WHIFFIN: I did, yes.

668 3:40:13

MR. BRENNAN: Could you share with us now your timeline and explain it for us?

669 3:40:17

MR. WHIFFIN: Of course. So again, this combines all of the information from the previous slides, just showing it all within a timeline view. So at 18 minutes and 25 seconds, the device is unlocked using Face ID. We see the SMS application is in use for around 11 seconds. A phone call is made from John to Jennifer McCabe. The phone call lasts 36 seconds, starting at 18 minutes and 47 seconds. That call ends at 19 minutes and 23 seconds, and the mobile phone application is closed at 19 minutes and 24 seconds. At 19 minutes and 29 seconds, the Waze application is loaded on screen. And at 20 minutes and 49 seconds — which is what this location on the side relates to — we see an incoming message from Brian Higgins saying, "You coming here?"

670 3:40:58

MR. WHIFFIN: At 22 minutes and 14 seconds, this is the start of the three flight climb events, as the device is driving along Oakdale Road. I believe that at 24 minutes and 26 seconds is when the Waze application is closed and the device is locked via the lock button at 24 minutes and 28 seconds. At 24 minutes and 37 seconds, the three flight climb events come to an end. And at 24 minutes and 38 seconds is the first record that shows a speed of zero meters per second. At 24 minutes and 59 seconds, the device is unlocked using Face ID, and the "You coming here?" message is read at 25 minutes and 8 seconds after midnight. At 25 minutes and 9 seconds after midnight, the device is locked using the lock button.

671 3:41:55

MR. WHIFFIN: At 27 minutes and 33 seconds after midnight, a text message is received from Jen McCabe saying, "Here." At 27 minutes and 45 seconds after midnight, the device is unlocked using Face ID, and the "Here" message that was just received is read at 27 minutes and 48 seconds. At 27 minutes and 50 seconds, the lock button is pressed by the user, causing the device to lock. At 29 minutes and 37 seconds, we start to get some Doppler checks. And at 29 minutes and 42 seconds, the pocket state cleared event is written. At 29 minutes and 44 seconds, there's an incoming call from Jen McCabe. This is answered and lasts for 7 seconds, ending at 29 minutes and 51 seconds. At 29 minutes and 52 seconds, the device is unlocked and a second later, the lock button is pressed, causing the device to lock again.

672 3:42:47

MR. WHIFFIN: At 31 minutes and 47 seconds after midnight, a message is received again from Jennifer McCabe saying, "Pull behind me." And at 31 minutes and 52 seconds, the Doppler check records a pocket state. At 31 minutes and 56 seconds, we start the health event that shows 36 steps were taken. And at 32 minutes and 3 seconds, there's a pocket state cleared event. At 32 minutes and 4 seconds, the device unlocks with Face ID. And again, I'll point out that makes perfect sense — if the Doppler state clears because it's no longer within a pocket and then it unlocks a second later, that makes sense with the logic that's been identified. At 32 minutes and 5 seconds, the messages application is on screen and the message "Pull behind me" is read.

673 3:44:24

MR. WHIFFIN: At 32 minutes and 9 seconds, the messages application is closed and the device is locked for the last time. At 32 minutes and 16 seconds, the 36-step health event is ending. At 33 minutes and 14 seconds, we have the first of the 26,500 Doppler state records that all record pocket state. This is followed by several phone calls at 33 minutes and 35 seconds, 34 minutes and 9 seconds, 34 minutes and 38 seconds, 35 minutes and 9 seconds, 35 minutes and 35 seconds, and 36 minutes and 9 seconds — all calls from Karen, all unanswered, and all resulting in pocket state being detected by Doppler.

674 3:45:16

MR. WHIFFIN: At 36 minutes and 9 seconds, and again at 36 minutes and 40 seconds, two more phone calls received from Karen, again showing unanswered calls and resulting in pocket state being recorded by the Doppler function. At 37 minutes past midnight, battery temperature dropped to 72°F. And at 37 minutes and 8 seconds, a further phone call, again unanswered, again resulting in a pocket state recorded by Doppler. At 37 minutes and 31 seconds, a 3-second voicemail received from Karen. And at 38 minutes and 21 seconds, another incoming call. And at 38 minutes and 26 seconds, another incoming call. Both unanswered, both resulting in Doppler pocket state being detected by Doppler. And I've also shown some of the locations that were recorded at around this time by the device.

675 3:46:08

MR. WHIFFIN: At 40 minutes and 31 seconds, a message received from Jennifer McCabe saying, "Hello." This is the first iMessage or SMS message received by the device which is unread. This is followed up 2 minutes later — at 42 minutes and 9 seconds — by another message from Jennifer McCabe saying, "Where are you?" And at 42 minutes and 35 seconds, there's a 40-second voicemail received from Karen. At 43 minutes past midnight, the battery temperature has now dropped to 66° F. At 45 minutes and 53 seconds, another incoming message from Jennifer McCabe saying, "Hello." And again, we can see location data at 53 minutes and 7 seconds placing the device on the front yard, somewhere around the flagpole area. At 55 minutes and 31 seconds, a message received from Karen stating, "I'm going home."

676 3:46:58

MR. WHIFFIN: At 55 minutes and 50 seconds, a follow-up message saying, "See you later." Another location data point — this is the location shown bottom left. And at 2 minutes past 1:00 a.m., another message from Karen saying, "Your kids are cooking alone."

677 3:47:20

MR. BRENNAN: Mr. Whiffin, based on your analysis of John O'Keefe's cell phone — keeping in mind some of the data points you shared with us: that Waze was initiated around 12:19, that the car reached the flagpole around 12:24:37, that the only health data during that later time near 12:30 was from 12:31:56 to 12:32:16, that the last interaction was at 12:32:09 followed by an overnight pocket state and a reduction — DEFENSE COUNSEL: Objection, your honor.

678 3:48:01

JUDGE CANNONE: I need to hear the question first.

679 3:48:05

MR. BRENNAN: — including a reduction in the battery temperature — do you have an opinion, to a reasonable degree of scientific certainty, that after that phone stopped in the car at the flagpole area, 34 Fairview, whether or not that cell phone remained near the flagpole the entire night until after 6:00 a.m. the next morning? DEFENSE COUNSEL: Objection.

680 3:48:40

JUDGE CANNONE: I'm going to allow it.

681 3:48:43

MR. WHIFFIN: The location data — the location data that shows accurate — tends to show around the flagpole area. There's no further health data other than 36 steps that were taken that suggest it moved after 32 minutes and 16 seconds after midnight. The battery temperature data never indicates that the device went from a cold environment to a warm environment, which I would expect to see if the device went inside a building. And the Doppler state information suggests that the camera was blocked for at least the majority of the 5-hour period, with no records showing that the camera was unblocked during that time, which would typically happen if you were to pick it up and move it around.

682 3:49:57

MR. BRENNAN: Does that lead you to a conclusion to a reasonable degree of scientific certainty?

683 3:50:04
684 3:50:05

MR. BRENNAN: Whether that phone remained in the flag pole area from around 12:24:33 until the next morning at 6:00 a.m. or after?

685 3:50:16

JUDGE CANNONE: Objection sustained. Ask the question in a different form.

686 3:50:21

MR. BRENNAN: Do you have an opinion where John O'Keefe's cell phone was from around 12:24:33 on the evening of January 29th, 2022 through at least 6 a.m. and after that morning?

687 3:50:37

MR. WHIFFIN: Yes. Based on the totality of all of the information that we've described, my opinion is that the device never moved far away from the flag pole.

688 3:50:52

MR. BRENNAN: I have no further questions. Thank you.

689 3:51:15

JUDGE CANNONE: All right, Mr. Alessi. Approach. Okay, jurors, feel free to stand up.