PageSourceSearch

https://geoconfirmed.org/publications

html geoconfirmed.org collected 2026-09-28 11:04:27 UTC 99,083 bytes, 665 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en"><head><meta charset="utf-8">
3    <meta name="viewport" content="width=device-width, initial-scale=1.0">
4    <base href="/">
5    <link rel="icon" type="image/svg+xml" href="branding/favicon.svg">
6    <link href="_framework/dotnet.wbpa9zeobx.js" rel="preload" as="script" fetchpriority="high" crossorigin="anonymous" integrity="sha256-vJNKLCzYIgMIZsXROxxT7Die3B1UThvidm14rCtl75o=" />
7    <link rel="stylesheet" href="_content/MudBlazor/MudBlazor.min.6x2ajsl5c8.css" />
8    <link rel="stylesheet" href="_content/Z.Blazor.Diagrams/style.min.kjpcwcpl0m.css" />
9    <link rel="stylesheet" href="css/site.min.f77wpwfxjd.css" />
10    <link rel="stylesheet" href="Geoconfirmed.Server.rj2bawaprf.styles.css" />
11    <link rel="stylesheet" href="lib/maplibre/maplibre-gl.lknc33pihc.css" />
12    
12<script type="importmap">{
13  "imports": {
14    "./Components/ChipMultiSelect.razor.js": "./Components/ChipMultiSelect.0dupfe019l.razor.js",
15    "./Components/Map/MapLibre.razor.js": "./Components/Map/MapLibre.mrzap9dn3x.razor.js",
16    "./Components/Orbat/OrbatDiagram.razor.js": "./Components/Orbat/OrbatDiagram.m9xjddoukk.razor.js",
17    "./Components/QuillEditor.razor.js": "./Components/QuillEditor.dkjomxn3yq.razor.js",
18    "./Components/SortableList.razor.js": "./Components/SortableList.emlhiha34z.razor.js",
19    "./Geoconfirmed.Server.lib.module.js": "./Geoconfirmed.Server.o6kwazyep2.lib.module.js",
20    "./Pages/Toolkit/Toolkit.razor.js": "./Pages/Toolkit/Toolkit.ahklpziiur.razor.js",
21    "./_content/MudBlazor/MudBlazor.min.js": "./_content/MudBlazor/MudBlazor.min.jolev99wdd.js",
22    "./_content/Z.Blazor.Diagrams/script.js": "./_content/Z.Blazor.Diagrams/script.gd8b3shkm2.js",
23    "./_content/Z.Blazor.Diagrams/script.min.js": "./_content/Z.Blazor.Diagrams/script.min.8l02e235tj.js",
24    "./_framework/blazor.server.js": "./_framework/blazor.server.dwu72t6gfx.js",
25    "./_framework/blazor.web.js": "./_framework/blazor.web.9hsif5t8mt.js",
26    "./_framework/dotnet.native.js": "./_framework/dotnet.native.2ag2pd6i77.js",
27    "./_framework/dotnet.runtime.js": "./_framework/dotnet.runtime.v06hirbjsv.js",
28    "./_framework/dotnet.js": "./_framework/dotnet.wbpa9zeobx.js",
29    "./js/page-visibility.js": "./js/page-visibility.j8d3k6t9sd.js",
30    "./js/sortable.esm.js": "./js/sortable.esm.ad77j3wqwf.js",
31    "./lib/maplibre/maplibre-gl.js": "./lib/maplibre/maplibre-gl.tm1kcqru8s.js",
32    "./lib/turf/turf.min.js": "./lib/turf/turf.min.kv09mgep2m.js",
33    "_framework/resource-collection.js": "./_framework/resource-collection.itv_j.js",
34    "_framework/resource-collection.js.gz": "./_framework/resource-collection.itv_j.js.gz"
35  },
36  "integrity": {
37    "./Components/ChipMultiSelect.0dupfe019l.razor.js": "sha256-9AzzruFMT3wRu2+y6S3q1V8dQRC/sIUgzJJ338orRLI=",
38    "./Components/ChipMultiSelect.razor.js": "sha256-9AzzruFMT3wRu2+y6S3q1V8dQRC/sIUgzJJ338orRLI=",
39    "./Components/Map/MapLibre.mrzap9dn3x.razor.js": "sha256-bh9lbx5EM8OP8qwJA91HacB8pIZBa3D34jrWN/WRbbY=",
40    "./Components/Map/MapLibre.razor.js": "sha256-bh9lbx5EM8OP8qwJA91HacB8pIZBa3D34jrWN/WRbbY=",
41    "./Components/Orbat/OrbatDiagram.m9xjddoukk.razor.js": "sha256-KrCuYKrLCaYnPG/0+hZ5k1TD1fkfpH2f71KZYJN6ZAk=",
42    "./Components/Orbat/OrbatDiagram.razor.js": "sha256-KrCuYKrLCaYnPG/0+hZ5k1TD1fkfpH2f71KZYJN6ZAk=",
43    "./Components/QuillEditor.dkjomxn3yq.razor.js": "sha256-81x8eOqyFwDqfH6jFem18E0TfTFnL5NOwDU2G3h4Qpw=",
44    "./Components/QuillEditor.razor.js": "sha256-81x8eOqyFwDqfH6jFem18E0TfTFnL5NOwDU2G3h4Qpw=",
45    "./Components/SortableList.emlhiha34z.razor.js": "sha256-th2QY+hz5Poil3RWxWppuLrescvvmhjrBgX3howjLzU=",
46    "./Components/SortableList.razor.js": "sha256-th2QY+hz5Poil3RWxWppuLrescvvmhjrBgX3howjLzU=",
47    "./Geoconfirmed.Server.lib.module.js": "sha256-MIS0Ny50u9x4Rvmr9eJCsXGMQ1sc+PkEWZW6cpVF1Ac=",
48    "./Geoconfirmed.Server.o6kwazyep2.lib.module.js": "sha256-MIS0Ny50u9x4Rvmr9eJCsXGMQ1sc+PkEWZW6cpVF1Ac=",
49    "./Pages/Toolkit/Toolkit.ahklpziiur.razor.js": "sha256-EuBhWVRHOKHrPcEP24zJTaezG3hKutmrGozx6FvcD00=",
50    "./Pages/Toolkit/Toolkit.razor.js": "sha256-EuBhWVRHOKHrPcEP24zJTaezG3hKutmrGozx6FvcD00=",
51    "./_content/MudBlazor/MudBlazor.min.jolev99wdd.js": "sha256-QzjV54WPFDZoVGX1oYGL1g4pxgMR0AvEZ5Nfl3uvpOQ=",
52    "./_content/MudBlazor/MudBlazor.min.js": "sha256-QzjV54WPFDZoVGX1oYGL1g4pxgMR0AvEZ5Nfl3uvpOQ=",
53    "./_content/Z.Blazor.Diagrams/script.gd8b3shkm2.js": "sha256-JOLpZRGjCLhxymxEneS0YcmDu2u5TLQVgnEmu0ujdn0=",
54    "./_content/Z.Blazor.Diagrams/script.js": "sha256-JOLpZRGjCLhxymxEneS0YcmDu2u5TLQVgnEmu0ujdn0=",
55    "./_content/Z.Blazor.Diagrams/script.min.8l02e235tj.js": "sha256-fPUqIj7jmA95o8LYGeWd3ccScqIqRgC4QmP0dvNe/Do=",
56    "./_content/Z.Blazor.Diagrams/script.min.js": "sha256-fPUqIj7jmA95o8LYGeWd3ccScqIqRgC4QmP0dvNe/Do=",
57    "./_framework/blazor.server.dwu72t6gfx.js": "sha256-Lc5OPalQJm9BAlnrUqnpkrh1LpQXi5KqbcuMnfqzZ6g=",
58    "./_framework/blazor.server.js": "sha256-Lc5OPalQJm9BAlnrUqnpkrh1LpQXi5KqbcuMnfqzZ6g=",
59    "./_framework/blazor.web.9hsif5t8mt.js": "sha256-UyxcGqcLON35RjdHgX1tr8QrjPLgL0P1EaXSRUokmko=",
60    "./_framework/blazor.web.js": "sha256-UyxcGqcLON35RjdHgX1tr8QrjPLgL0P1EaXSRUokmko=",
61    "./_framework/blazor.webassembly.js": "sha256-A59Tr9HqEhHMu8kU7kruLI9ayw5MRS6Lvc6z7jCbghk=",
62    "./_framework/dotnet.js": "sha256-vJNKLCzYIgMIZsXROxxT7Die3B1UThvidm14rCtl75o=",
63    "./_framework/dotnet.native.2ag2pd6i77.js": "sha256-FlRF1CYj+tC2st73PdKR/pbg0qu26R+qsW8BrO3Lu7E=",
64    "./_framework/dotnet.native.js": "sha256-FlRF1CYj+tC2st73PdKR/pbg0qu26R+qsW8BrO3Lu7E=",
65    "./_framework/dotnet.runtime.js": "sha256-QbnqrZGHtGq7wudS17/AYEPpH9JkphrsyVllD6JHmds=",
66    "./_framework/dotnet.runtime.v06hirbjsv.js": "sha256-QbnqrZGHtGq7wudS17/AYEPpH9JkphrsyVllD6JHmds=",
67    "./_framework/dotnet.wbpa9zeobx.js": "sha256-vJNKLCzYIgMIZsXROxxT7Die3B1UThvidm14rCtl75o=",
68    "./js/page-visibility.j8d3k6t9sd.js": "sha256-PR4on6neflaUq8xnxNNrnuEbWcuVR5tboApd7COlYpU=",
69    "./js/page-visibility.js": "sha256-PR4on6neflaUq8xnxNNrnuEbWcuVR5tboApd7COlYpU=",
70    "./js/sortable.esm.ad77j3wqwf.js": "sha256-8n+z0MKK/+qXMaATc+ALnmAEoRbd4pTlx8n0+0mJJmc=",
71    "./js/sortable.esm.js": "sha256-8n+z0MKK/+qXMaATc+ALnmAEoRbd4pTlx8n0+0mJJmc=",
72    "./lib/maplibre/maplibre-gl.js": "sha256-RamwepGJzlYFTGIKlHzPQeKR5YyV6bYVM7dAqqZe5cs=",
73    "./lib/maplibre/maplibre-gl.tm1kcqru8s.js": "sha256-RamwepGJzlYFTGIKlHzPQeKR5YyV6bYVM7dAqqZe5cs=",
74    "./lib/turf/turf.min.js": "sha256-UF06NdqKi/H4rtWQza0P+hHnDVHyjQwjWQB7r+0P04I=",
75    "./lib/turf/turf.min.kv09mgep2m.js": "sha256-UF06NdqKi/H4rtWQza0P+hHnDVHyjQwjWQB7r+0P04I=",
76    "./_framework/resource-collection.itv_j.js": "sha256-VD0o2YRiBFZhtoHb46NbtXcuZs8I2zFfgmECzam9760=",
77    "./_framework/resource-collection.itv_j.js.gz": "sha256-VD0o2YRiBFZhtoHb46NbtXcuZs8I2zFfgmECzam9760="
78  }
79}</script>
79
80
81    <title>GeoConfirmed — Open-Source Conflict Geolocation & Verification</title>
82    <meta name="description" content="GeoConfirmed is a volunteer-driven OSINT project that geolocates and verifies visual content from conflicts around the world.">
83    <meta name="robots" content="index, follow">
84    <meta name="theme-color" content="#1e1732">
85
86    <meta property="og:site_name" content="GeoConfirmed">
87    <meta property="og:type" content="website">
88    <meta property="og:title" content="GeoConfirmed — Open-Source Conflict Geolocation">
89    <meta property="og:description" content="Volunteer-driven OSINT project geolocating and verifying visual content from conflicts worldwide.">
90    <meta property="og:image" content="https://geoconfirmed.org/android-chrome-512x512.png">
91    <meta property="og:image:alt" content="GeoConfirmed logo — a map marker with a verified checkmark">
92
93    <meta name="twitter:card" content="summary_large_image">
94    <meta name="twitter:site" content="@geoconfirmed" />
95    <meta name="twitter:creator" content="@geoconfirmed" />
96    <meta name="twitter:title" content="GeoConfirmed — Open-Source Conflict Geolocation">
97    <meta name="twitter:description" content="Volunteer-driven OSINT project geolocating and verifying visual content from conflicts worldwide.">
98    <meta name="twitter:image" content="https://geoconfirmed.org/android-chrome-512x512.png">
99
100    <!--Blazor-WebAssembly:{"environmentName":"Production","environmentVariables":{}}--><!--Blazor:{"type":"webassembly","prerenderId":"e40e7f14cf8d48e7b59fee7e874ff640","key":{"locationHash":"77D12F14A8105320B1AAED6AE7E689DA0EC4483270A645E84079EAA0FFDF550D:38","formattedComponentKey":""},"assembly":"Microsoft.AspNetCore.Components.Web","typeName":"Microsoft.AspNetCore.Components.Web.HeadOutlet","parameterDefinitions":"W10=","parameterValues":"W10="}--><title b-daz9gi7v2n>Publications &#x2014; GeoConfirmed</title>
101    <meta name="description" content="Publications from GeoConfirmed: long-form analysis, threads, and press coverage from the open-source conflict geolocation community." b-daz9gi7v2n />
102    <meta name="robots" content="index, follow" b-daz9gi7v2n>
103
104    <meta property="og:type" content="website" b-daz9gi7v2n>
105    <meta property="og:title" content="Publications &#x2014; GeoConfirmed" b-daz9gi7v2n />
106    <meta property="og:description" content="Publications from GeoConfirmed: long-form analysis, threads, and press coverage from the open-source conflict geolocation community." b-daz9gi7v2n />
107    <meta property="og:url" content="https://geoconfirmed.org/publications" b-daz9gi7v2n />
108    <meta property="og:image" content="https://geoconfirmed.org/android-chrome-512x512.png" b-daz9gi7v2n>
109
110    <meta name="twitter:card" content="summary_large_image" b-daz9gi7v2n>
111    <meta name="twitter:title" content="Publications &#x2014; GeoConfirmed" b-daz9gi7v2n />
112    <meta name="twitter:description" content="Publications from GeoConfirmed: long-form analysis, threads, and press coverage from the open-source conflict geolocation community." b-daz9gi7v2n />
113    <meta name="twitter:image" content="https://geoconfirmed.org/android-chrome-512x512.png" b-daz9gi7v2n>
114
115    <link rel="canonical" href="https://geoconfirmed.org/publications" b-daz9gi7v2n /><!--Blazor:{"prerenderId":"e40e7f14cf8d48e7b59fee7e874ff640"}-->
116
117    <style>
118        .blazor-loader {
119            position: fixed;
120            inset: 0;
121            z-index: 99999;
122            display: flex;
123            flex-direction: column;
124            align-items: center;
125            justify-content: center;
126            background: #1e1732;
127            transition: opacity 0.5s ease, visibility 0.5s ease;
128        }
129        .blazor-loader.loaded {
130            opacity: 0;
131            visibility: hidden;
132            pointer-events: none;
133        }
134
135        /* --- Grid lines (subtle map background) --- */
136        .blazor-loader-grid {
137            position: absolute;
138            inset: 0;
139            opacity: 0.04;
140            background-image:
141                linear-gradient(rgba(123,93,201,0.5) 1px, transparent 1px),
142                linear-gradient(90deg, rgba(123,93,201,0.5) 1px, transparent 1px);
143            background-size: 60px 60px;
144        }
145
146        /* --- Center content --- */
147        .blazor-loader-content {
148            position: relative;
149            display: flex;
150            flex-direction: column;
151            align-items: center;
152            gap: 24px;
153        }
154
155        /* --- Pin + ring container --- */
156        .blazor-loader-pin-area {
157            position: relative;
158            width: 120px;
159            height: 120px;
160        }
161
162        /* --- Progress ring --- */
163        .blazor-loader-pin-area svg.ring {
164            position: absolute;
165            inset: 0;
166            width: 120px;
167            height: 120px;
168            transform: rotate(-90deg);
169        }
170        .ring-bg {
171            fill: none;
172            stroke: rgba(123, 93, 201, 0.12);
173            stroke-width: 3;
174        }
175        .ring-fg {
176            fill: none;
177            stroke: #7b5dc9;
178            stroke-width: 3;
179            stroke-linecap: round;
180            stroke-dasharray: 339.3;
181            stroke-dashoffset: 339.3;
182            transition: stroke-dashoffset 0.3s ease;
183        }
184
185        /* --- Scan pulse (radiating circles from pin) --- */
186        .blazor-loader-scan {
187            position: absolute;
188            top: 50%; left: 50%;
189            width: 40px; height: 40px;
190            margin: -20px 0 0 -20px;
191            border-radius: 50%;
192            border: 1.5px solid rgba(123, 93, 201, 0.3);
193            animation: scan-pulse 2s ease-out infinite;
194        }
195        .blazor-loader-scan:nth-child(3) { animation-delay: 0.7s; }
196        .blazor-loader-scan:nth-child(4) { animation-delay: 1.4s; }
197
198        @keyframes scan-pulse {
199            0%   { transform: scale(1); opacity: 0.6; }
200            100% { transform: scale(3); opacity: 0; }
201        }
202
203        /* --- Logo icon --- */
204        .blazor-loader-pin-area svg.pin {
205            position: absolute;
206            top: 50%; left: 50%;
207            width: 56px; height: 56px;
208            margin: -28px 0 0 -28px;
209            filter: drop-shadow(0 2px 8px rgba(123, 93, 201, 0.4));
210        }
211
212        /* --- Percentage text --- */
213        .blazor-loader-pct {
214            font-family: 'Roboto Mono', 'Consolas', monospace;
215            font-size: 0.8rem;
216            color: rgba(255, 255, 255, 0.5);
217            letter-spacing: 0.08em;
218        }
219
220        /* --- Branding --- */
221        .blazor-loader-logo {
222            font-family: 'Segoe UI', system-ui, sans-serif;
223            font-size: 1.5rem;
224            font-weight: 700;
225            color: #fff;
226            letter-spacing: 0.06em;
227        }
228        .blazor-loader-sub {
229            font-family: 'Roboto Mono', 'Consolas', monospace;
230            font-size: 0.7rem;
231            color: rgba(123, 93, 201, 0.7);
232            letter-spacing: 0.15em;
233            text-transform: uppercase;
234        }
235    </style></head>
236
237<body><div class="blazor-loader" id="blazor-loader"><div class="blazor-loader-grid"></div>
238        <div class="blazor-loader-content"><div class="blazor-loader-pin-area"><svg class="ring" viewBox="0 0 120 120"><circle class="ring-bg" cx="60" cy="60" r="54"></circle>
239                    <circle class="ring-fg" id="blazor-ring" cx="60" cy="60" r="54"></circle></svg>
240
241                
242                <div class="blazor-loader-scan"></div>
243                <div class="blazor-loader-scan"></div>
244                <div class="blazor-loader-scan"></div>
245
246                
247                <svg class="pin" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="mg" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#9b7ee0"></stop>
248                            <stop offset="100%" stop-color="#5a3da0"></stop></linearGradient></defs>
249                    <path d="M32 60 C32 60, 8 40, 8 26 C8 12.7 18.7 2 32 2 C45.3 2 56 12.7 56 26 C56 40 32 60 32 60Z" fill="url(#mg)"></path>
250                    <circle cx="32" cy="24" r="14" fill="white"></circle>
251                    
252                    <polyline id="blazor-check" points="24,24 29,30 39,17" fill="none" stroke="#7b5dc9" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="25" stroke-dashoffset="25" style="transition: stroke-dashoffset 0.4s ease 0.1s;"></polyline></svg></div>
253
254            <div><div class="blazor-loader-logo">Geoconfirmed</div>
255                <div class="blazor-loader-pct" id="blazor-pct">Loading 0%</div></div></div></div>
256
257    <!--Blazor:{"type":"webassembly","prerenderId":"c54de9ad17da449d928afccc35028ffd","key":{"locationHash":"D1D9AD389F027BEF7378EA0C6F901ABFFE3544A7EF858E899170D44A121B1FDE:44","formattedComponentKey":""},"assembly":"Geoconfirmed.Client","typeName":"Geoconfirmed.Client.Routes","parameterDefinitions":"W10=","parameterValues":"W10="}--><style>
258::-webkit-scrollbar {width: 8px;height: 8px;z-index: 1;}
259::-webkit-scrollbar-track {background: transparent;}
260::-webkit-scrollbar-thumb {background: #c4c4c4;border-radius: 1px;}
261::-webkit-scrollbar-thumb:hover {background: #a6a6a6;}
262html, body * {scrollbar-color: #c4c4c4 transparent;scrollbar-width: thin;}
263</style>
264<style>
265    .mud-chart-serie:hover {
266        filter: url(#lighten);
267    }
268
269    .mud-chart-serie-hovered 
270    {
271        filter: url(#lighten);
272    }
273</style>
274
275<style class='mud-theme-provider'>
276:root{
277--mud-palette-black: rgba(39,44,52,1);
278--mud-palette-white: rgba(255,255,255,1);
279--mud-palette-primary: rgba(123,93,201,1);
280--mud-palette-primary-rgb: 123,93,201;
281--mud-palette-primary-text: rgba(255,255,255,1);
282--mud-palette-primary-darken: rgb(30,23,50);
283--mud-palette-primary-lighten: rgb(146,121,210);
284--mud-palette-primary-hover: rgba(123,93,201,0.058823529411764705);
285--mud-palette-secondary: rgba(94,101,112,1);
286--mud-palette-secondary-rgb: 94,101,112;
287--mud-palette-secondary-text: rgba(255,255,255,1);
288--mud-palette-secondary-darken: rgb(74,80,89);
289--mud-palette-secondary-lighten: rgb(111,120,133);
290--mud-palette-secondary-hover: rgba(94,101,112,0.058823529411764705);
291--mud-palette-tertiary: rgba(30,200,165,1);
292--mud-palette-tertiary-rgb: 30,200,165;
293--mud-palette-tertiary-text: rgba(255,255,255,1);
294--mud-palette-tertiary-darken: rgb(25,169,140);
295--mud-palette-tertiary-lighten: rgb(42,223,187);
296--mud-palette-tertiary-hover: rgba(30,200,165,0.058823529411764705);
297--mud-palette-info: rgba(63,142,252,1);
298--mud-palette-info-rgb: 63,142,252;
299--mud-palette-info-text: rgba(255,255,255,1);
300--mud-palette-info-darken: rgb(29,122,252);
301--mud-palette-info-lighten: rgb(104,166,253);
302--mud-palette-info-hover: rgba(63,142,252,0.058823529411764705);
303--mud-palette-success: rgba(53,180,111,1);
304--mud-palette-success-rgb: 53,180,111;
305--mud-palette-success-text: rgba(255,255,255,1);
306--mud-palette-success-darken: rgb(44,150,92);
307--mud-palette-success-lighten: rgb(73,202,131);
308--mud-palette-success-hover: rgba(53,180,111,0.058823529411764705);
309--mud-palette-warning: rgba(246,183,60,1);
310--mud-palette-warning-rgb: 246,183,60;
311--mud-palette-warning-text: rgba(255,255,255,1);
312--mud-palette-warning-darken: rgb(244,170,21);
313--mud-palette-warning-lighten: rgb(248,198,99);
314--mud-palette-warning-hover: rgba(246,183,60,0.058823529411764705);
315--mud-palette-error: rgba(229,83,75,1);
316--mud-palette-error-rgb: 229,83,75;
317--mud-palette-error-text: rgba(255,255,255,1);
318--mud-palette-error-darken: rgb(224,50,41);
319--mud-palette-error-lighten: rgb(235,118,112);
320--mud-palette-error-hover: rgba(229,83,75,0.058823529411764705);
321--mud-palette-dark: rgba(66,66,66,1);
322--mud-palette-dark-rgb: 66,66,66;
323--mud-palette-dark-text: rgba(255,255,255,1);
324--mud-palette-dark-darken: rgb(46,46,46);
325--mud-palette-dark-lighten: rgb(87,87,87);
326--mud-palette-dark-hover: rgba(66,66,66,0.058823529411764705);
327--mud-palette-text-primary: rgba(66,66,66,1);
328--mud-palette-text-primary-rgb: 66,66,66;
329--mud-palette-text-secondary: rgba(0,0,0,0.5372549019607843);
330--mud-palette-text-secondary-rgb: 0,0,0;
331--mud-palette-text-disabled: rgba(0,0,0,0.3764705882352941);
332--mud-palette-text-disabled-rgb: 0,0,0;
333--mud-palette-action-default: rgba(0,0,0,0.5372549019607843);
334--mud-palette-action-default-hover: rgba(0,0,0,0.058823529411764705);
335--mud-palette-action-disabled: rgba(0,0,0,0.25882352941176473);
336--mud-palette-action-disabled-background: rgba(0,0,0,0.11764705882352941);
337--mud-palette-surface: rgba(255,255,255,1);
338--mud-palette-surface-rgb: 255,255,255;
339--mud-palette-background: rgba(255,255,255,1);
340--mud-palette-background-gray: rgba(245,245,245,1);
341--mud-palette-drawer-background: rgba(30,23,50,1);
342--mud-palette-drawer-text: rgba(255,255,255,1);
343--mud-palette-drawer-icon: rgba(97,97,97,1);
344--mud-palette-appbar-background: rgba(30,23,50,1);
345--mud-palette-appbar-text: rgba(255,255,255,1);
346--mud-palette-lines-default: rgba(0,0,0,0.11764705882352941);
347--mud-palette-lines-inputs: rgba(189,189,189,1);
348--mud-palette-table-lines: rgba(224,224,224,1);
349--mud-palette-table-striped: rgba(0,0,0,0.0196078431372549);
350--mud-palette-table-hover: rgba(0,0,0,0.0392156862745098);
351--mud-palette-divider: rgba(224,224,224,1);
352--mud-palette-divider-rgb: 224,224,224;
353--mud-palette-divider-light: rgba(0,0,0,0.8);
354--mud-palette-skeleton: rgba(0,0,0,0.10980392156862745);
355--mud-palette-gray-default: #9E9E9E;
356--mud-palette-gray-light: #BDBDBD;
357--mud-palette-gray-lighter: #E0E0E0;
358--mud-palette-gray-dark: #757575;
359--mud-palette-gray-darker: #616161;
360--mud-palette-overlay-dark: rgba(33,33,33,0.4980392156862745);
361--mud-palette-overlay-light: rgba(255,255,255,0.4980392156862745);
362--mud-palette-border-opacity: 1;
363--mud-ripple-color: var(--mud-palette-text-primary);
364--mud-ripple-opacity: 0.1;
365--mud-ripple-opacity-secondary: 0.2;
366--mud-elevation-0: none;
367--mud-elevation-1: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
368--mud-elevation-2: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);
369--mud-elevation-3: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12);
370--mud-elevation-4: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);
371--mud-elevation-5: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12);
372--mud-elevation-6: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);
373--mud-elevation-7: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12);
374--mud-elevation-8: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);
375--mud-elevation-9: 0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12);
376--mud-elevation-10: 0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12);
377--mud-elevation-11: 0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12);
378--mud-elevation-12: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12);
379--mud-elevation-13: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12);
380--mud-elevation-14: 0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12);
381--mud-elevation-15: 0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12);
382--mud-elevation-16: 0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12);
383--mud-elevation-17: 0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12);
384--mud-elevation-18: 0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12);
385--mud-elevation-19: 0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12);
386--mud-elevation-20: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12);
387--mud-elevation-21: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12);
388--mud-elevation-22: 0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12);
389--mud-elevation-23: 0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12);
390--mud-elevation-24: 0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12);
391--mud-elevation-25: 0 5px 5px -3px rgba(0,0,0,.06), 0 8px 10px 1px rgba(0,0,0,.042), 0 3px 14px 2px rgba(0,0,0,.036);
392--mud-default-borderradius: 4px;
393--mud-drawer-width-left: 240px;
394--mud-drawer-width-right: 240px;
395--mud-drawer-width-mini-left: 56px;
396--mud-drawer-width-mini-right: 56px;
397--mud-appbar-height: 64px;
398--mud-typography-default-family: Roboto, Helvetica, Arial, sans-serif;
399--mud-typography-default-size: .875rem;
400--mud-typography-default-weight: 400;
401--mud-typography-default-lineheight: 1.43;
402--mud-typography-default-letterspacing: .01071em;
403--mud-typography-default-text-transform: none;
404--mud-typography-h1-family: Roboto, Helvetica, Arial, sans-serif;
405--mud-typography-h1-size: 6rem;
406--mud-typography-h1-weight: 300;
407--mud-typography-h1-lineheight: 1.167;
408--mud-typography-h1-letterspacing: -.01562em;
409--mud-typography-h1-text-transform: none;
410--mud-typography-h2-family: Roboto, Helvetica, Arial, sans-serif;
411--mud-typography-h2-size: 3.75rem;
412--mud-typography-h2-weight: 300;
413--mud-typography-h2-lineheight: 1.2;
414--mud-typography-h2-letterspacing: -.00833em;
415--mud-typography-h2-text-transform: none;
416--mud-typography-h3-family: Roboto, Helvetica, Arial, sans-serif;
417--mud-typography-h3-size: 3rem;
418--mud-typography-h3-weight: 400;
419--mud-typography-h3-lineheight: 1.167;
420--mud-typography-h3-letterspacing: 0;
421--mud-typography-h3-text-transform: none;
422--mud-typography-h4-family: Roboto, Helvetica, Arial, sans-serif;
423--mud-typography-h4-size: 2.125rem;
424--mud-typography-h4-weight: 400;
425--mud-typography-h4-lineheight: 1.235;
426--mud-typography-h4-letterspacing: .00735em;
427--mud-typography-h4-text-transform: none;
428--mud-typography-h5-family: Roboto, Helvetica, Arial, sans-serif;
429--mud-typography-h5-size: 1.5rem;
430--mud-typography-h5-weight: 400;
431--mud-typography-h5-lineheight: 1.334;
432--mud-typography-h5-letterspacing: 0;
433--mud-typography-h5-text-transform: none;
434--mud-typography-h6-family: Roboto, Helvetica, Arial, sans-serif;
435--mud-typography-h6-size: 1.25rem;
436--mud-typography-h6-weight: 500;
437--mud-typography-h6-lineheight: 1.6;
438--mud-typography-h6-letterspacing: .0075em;
439--mud-typography-h6-text-transform: none;
440--mud-typography-subtitle1-family: Roboto, Helvetica, Arial, sans-serif;
441--mud-typography-subtitle1-size: 1rem;
442--mud-typography-subtitle1-weight: 400;
443--mud-typography-subtitle1-lineheight: 1.75;
444--mud-typography-subtitle1-letterspacing: .00938em;
445--mud-typography-subtitle1-text-transform: none;
446--mud-typography-subtitle2-family: Roboto, Helvetica, Arial, sans-serif;
447--mud-typography-subtitle2-size: .875rem;
448--mud-typography-subtitle2-weight: 500;
449--mud-typography-subtitle2-lineheight: 1.57;
450--mud-typography-subtitle2-letterspacing: .00714em;
451--mud-typography-subtitle2-text-transform: none;
452--mud-typography-body1-family: Roboto, Helvetica, Arial, sans-serif;
453--mud-typography-body1-size: 1rem;
454--mud-typography-body1-weight: 400;
455--mud-typography-body1-lineheight: 1.5;
456--mud-typography-body1-letterspacing: .00938em;
457--mud-typography-body1-text-transform: none;
458--mud-typography-body2-family: Roboto, Helvetica, Arial, sans-serif;
459--mud-typography-body2-size: .875rem;
460--mud-typography-body2-weight: 400;
461--mud-typography-body2-lineheight: 1.43;
462--mud-typography-body2-letterspacing: .01071em;
463--mud-typography-body2-text-transform: none;
464--mud-typography-button-family: Roboto, Helvetica, Arial, sans-serif;
465--mud-typography-button-size: .875rem;
466--mud-typography-button-weight: 500;
467--mud-typography-button-lineheight: 1.75;
468--mud-typography-button-letterspacing: .02857em;
469--mud-typography-button-text-transform: uppercase;
470--mud-typography-caption-family: Roboto, Helvetica, Arial, sans-serif;
471--mud-typography-caption-size: .75rem;
472--mud-typography-caption-weight: 400;
473--mud-typography-caption-lineheight: 1.66;
474--mud-typography-caption-letterspacing: .03333em;
475--mud-typography-caption-text-transform: none;
476--mud-typography-overline-family: Roboto, Helvetica, Arial, sans-serif;
477--mud-typography-overline-size: .75rem;
478--mud-typography-overline-weight: 400;
479--mud-typography-overline-lineheight: 2.66;
480--mud-typography-overline-letterspacing: .08333em;
481--mud-typography-overline-text-transform: none;
482--mud-zindex-drawer: 1100;
483--mud-zindex-appbar: 1300;
484--mud-zindex-dialog: 1400;
485--mud-zindex-popover: 1200;
486--mud-zindex-snackbar: 1500;
487--mud-zindex-tooltip: 1600;
488--mud-native-html-color-scheme: light;
489}
490</style>
491
492<div class="mud-popover-provider"></div>
493
494<div id="mud-snackbar-container" class="mud-snackbar-location-top-right"></div>
495
496<div class="mud-layout mud-drawer-open-responsive-md-left mud-drawer-left-clipped-always" style=""><header class="mud-appbar mud-appbar-fixed-top mud-elevation-0 app-bar"><div role="toolbar" class="mud-toolbar mud-toolbar-gutters mud-toolbar-appbar"><button aria-label="Toggle navigation menu" type="button" class="mud-button-root mud-icon-button mud-inherit-text hover:mud-in
496herit-hover mud-ripple mud-ripple-icon mud-icon-button-edge-start" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg></span></button>
497        <a href="/" class="mud-typography mud-link mud-inherit-text mud-link-underline-none mud-typography-h6 d-flex align-center ml-3 app-title"><img src="branding/logo-compact.svg" alt width="28" height="28" class="mr-2">
498            GeoConfirmed
499        </a>
500        <div aria-hidden="true" class="flex-grow-1"></div>
501        <a aria-label="GeoConfirmed on X (Twitter)" type="button" href="https://x.com/GeoConfirmed" target="_blank" rel="noopener" class="mud-button-root mud-icon-button mud-inherit-text hover:mud-inherit-hover mud-ripple mud-ripple-icon mud-icon-button-size-small"><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></span></a>
502        <a aria-label="GeoConfirmed on Bluesky" type="button" href="https://bsky.app/profile/geoconfirmed.org" target="_blank" rel="noopener" class="mud-button-root mud-icon-button mud-inherit-text hover:mud-inherit-hover mud-ripple mud-ripple-icon mud-icon-button-size-small"><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.785 2.627 3.624 3.501 6.204 3.146-4.379.665-5.655 2.849-3.155 5.038 4.642 4.08 6.727-1.006 7.327-2.943.6 1.937 2.685 7.022 7.327 2.943 2.5-2.19 1.224-4.373-3.155-5.038 2.58.355 5.42-.519 6.204-3.146.246-.828.624-5.79.624-6.479 0-.688-.139-1.86-.902-2.203-.659-.3-1.664-.62-4.3 1.24C14.046 4.747 11.087 8.686 10 10.8h2z"/></svg></span></a>
503        <hr class="mud-divider mud-divider-flexitem mud-divider-vertical mx-1 my-3 appbar-divider" />
504        <button aria-label="Switch to dark mode" type="button" class="mud-button-root mud-icon-button mud-inherit-text hover:mud-inherit-hover mud-ripple mud-ripple-icon mud-icon-button-size-small" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><rect fill="none" height="24" width="24"/><path d="M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36c-0.98,1.37-2.58,2.26-4.4,2.26 c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg></span></button>
505        <button type="button" class="mud-button-root mud-button mud-button-text mud-button-text-inherit mud-button-text-size-small mud-ripple d-none d-sm-flex appbar-auth-btn" __internal_stopPropagation_onclick><span class="mud-button-label"><span class="mud-button-icon-start mud-button-icon-size-small"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg></span>
506            Login
507        </span></button>
508        <button aria-label="Log in" type="button" class="mud-button-root mud-icon-button mud-inherit-text hover:mud-inherit-hover mud-ripple mud-ripple-icon d-flex d-sm-none" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5-5L11,7z M20,19h-8v2h8c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-8v2h8V19z"/></g></svg></span></button></div></header>
509
510    <aside class="mud-drawer mud-drawer-fixed mud-drawer-pos-left mud-drawer--open mud-drawer--initial mud-drawer-md mud-drawer-clipped-always mud-elevation-0 mud-drawer-responsive app-drawer" style=""><div class="mud-drawer-content"><nav class="mud-navmenu mud-navmenu-default mud-navmenu-margin-dense mud-navmenu-dense"><div class="mud-nav-item"><a href="/" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg><div class="mud-nav-link-text">Home</div></a></div>
511    <nav class="mud-nav-group" aria-label="Publications"><button tabindex="0" class="mud-nav-link mud-ripple mud-expanded" aria-controls="vsflc74rr" aria-expanded="true" aria-label="Toggle Publications"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z"/></svg><div Class="mud-nav-link-text">Publications</div><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium mud-nav-link-expand-icon mud-transform" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 10l5 5 5-5z"/></svg></button>
512    <div aria-hidden="false" class="mud-collapse-container mud-collapse-entering mud-navgroup-collapse" style=""><div class="mud-collapse-wrapper"><div class="mud-collapse-wrapper-inner"><nav id="vsflc74rr" class="mud-navmenu mud-navmenu-default mud-navmenu-margin-none"><div class="mud-nav-item"><a href="/publications" rel="" tabindex="0" class="mud-nav-link mud-ripple active" aria-current="page"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"/></svg><div class="mud-nav-link-text">All</div></a></div>
513        <div class="mud-nav-item"><a href="/articles" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg><div class="mud-nav-link-text">Articles</div></a></div>
514        <div class="mud-nav-item"><a href="/press" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><div class="mud-nav-link-text">Featured Press</div></a></div>
515        <div class="mud-nav-item"><a href="/threads" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></svg><div class="mud-nav-link-text">Threads</div></a></div></nav></div></div></div></nav><nav class="mud-nav-group" aria-label="Maps"><button tabindex="0" class="mud-nav-link mud-ripple" aria-controls="bc8h6jqv1" aria-expanded="false" aria-label="Toggle Maps"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z"/></svg><div Class="mud-nav-link-text">Maps</div><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium mud-nav-link-expand-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 10l5 5 5-5z"/></svg></button>
516    <div aria-hidden="true" class="mud-collapse-container invisible mud-navgroup-collapse" style=""><div class="mud-collapse-wrapper"><div class="mud-collapse-wrapper-inner"><nav id="bc8h6jqv1" class="mud-navmenu mud-navmenu-default mud-navmenu-margin-none"><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">
517                        All conflicts
518                    </div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/world" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">World</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/ukraine" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Ukraine</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/iran" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Iran</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/ven" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Venezuela</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/nagorno_karabakh" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Nagorno - Karabakh</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/africa" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Africa</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/drc" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">DRCongo</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/israel" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Israel/Gaza/Lebanon</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/7oct" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Isr - 7 Oct 23</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/syria" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Syria</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/yemen" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Yemen</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/afghanistan" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Afghanistan &amp; Pakistan</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/indpak" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">India-Pakistan</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/thailandcambodia" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Thailand - Cambodia</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/pac" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Pacific</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/myanmar" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Myanmar</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/cartel" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Cartel Map</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/wwi" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">WWI</div></a></div></div><div class="nav-conflict-item"><div class="mud-nav-item nav-conflict-link"><a href="/map/wwii" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">WWII</div></a></div></div></nav></div></div></div></nav><nav class="mud-nav-group" aria-label="Orbats"><button tabindex="0" class="mud-nav-link mud-ripple" aria-controls="hwhtjt4on" aria-expanded="false" aria-label="Toggle Orbats"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z"/></svg><div Class="mud-nav-link-text">Orbats</div><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium mud-nav-link-expand-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 10l5 5 5-5z"/></svg></button>
519    <div aria-hidden="true" class="mud-collapse-container invisible mud-navgroup-collapse" style=""><div class="mud-collapse-wrapper"><div class="mud-collapse-wrapper-inner"><nav id="hwhtjt4on" class="mud-navmenu mud-navmenu-default mud-navmenu-margin-none"><div class="mud-nav-item"><a href="/orbat/china" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Chinese Communist Party</div></a></div><div class="mud-nav-item"><a href="/orbat/france" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">French Armed Forces</div></a></div><div class="mud-nav-item"><a href="/orbat/iran" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Iran</div></a></div><div class="mud-nav-item"><a href="/orbat/israel" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Israel</div></a></div><div class="mud-nav-item"><a href="/orbat/fama" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Malian Armed Forces (FAMa)</div></a></div><div class="mud-nav-item"><a href="/orbat/myanmar" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Myanmar</div></a></div><div class="mud-nav-item"><a href="/orbat/myanmaro" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Myanmar Opposition</div></a></div><div class="mud-nav-item"><a href="/orbat/middleeasternfactions" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Middle Eastern Factions</div></a></div><div class="mud-nav-item"><a href="/orbat/cambodia" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Royal Cambodian Armed Forces</div></a></div><div class="mud-nav-item"><a href="/orbat/thailand" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Royal Thai Armed Forces</div></a></div><div class="mud-nav-item"><a href="/orbat/russia" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Russia</div></a></div><div class="mud-nav-item"><a href="/orbat/rwanda" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Rwanda</div></a></div><div class="mud-nav-item"><a href="/orbat/sudan" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Sudan</div></a></div><div class="mud-nav-item"><a href="/orbat/sudan-factions" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Sudan Factions</div></a></div><div class="mud-nav-item"><a href="/orbat/syrianew" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Syria (After 24 DEC 2024)</div></a></div><div class="mud-nav-item"><a href="/orbat/ukraine" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Ukraine</div></a></div><div class="mud-nav-item"><a href="/orbat/us" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">United States Armed Forces</div></a></div><div class="mud-nav-item"><a href="/orbat/ven" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">National Bolivarian Armed Forces of Venezuela (BNAF / FANB)</div></a></div><div class="mud-nav-item"><a href="/orbat/yemen" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Yemeni Armed Forces</div></a></div><div class="mud-nav-item"><a href="/orbat/terroristmilitant" rel="" tabindex="-1" class="mud-nav-link mud-ripple"><div class="mud-nav-link-text">Militant/Terrorist factions</div></a></div></nav></div></div></div></nav><div class="mud-nav-item"><a href="/equipment" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><g><rect height="8.48" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -6.8717 17.6255)" width="3" x="16.34" y="12.87"/><path d="M17.5,10c1.93,0,3.5-1.57,3.5-3.5c0-0.58-0.16-1.12-0.41-1.6l-2.7,2.7L16.4,6.11l2.7-2.7C18.62,3.16,18.08,3,17.5,3 C15.57,3,14,4.57,14,6.5c0,0.41,0.08,0.8,0.21,1.16l-1.85,1.85l-1.78-1.78l0.71-0.71L9.88,5.61L12,3.49 c-1.17-1.17-3.07-1.17-4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71-0.71V9.15l1.41,1.41l0.71-0.71l1.78,1.78 l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92,17.09,10,17.5,10z"/></g></g></svg><div class="mud-nav-link-text">Equipment</div></a></div><div class="mud-nav-item"><a href="/changelog" rel="" tabindex="0" class="mud-nav-link mud-ripple"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-nav-link-icon mud-nav-link-icon-default" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"/></svg><div class="mud-nav-link-text">Changelog</div></a></div></nav></div></aside>
520
521
522    <div class="mud-main-content">
523
524<div class="publications-container" b-daz9gi7v2n><div class="mud-container mud-container-maxwidth-lg mud-container--gutters mt-4"><nav aria-label="Breadcrumb"><ol class="mud-breadcrumbs mud-typography-body1"><li class="mud-breadcrumb-item"><a href="/"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>Home</a></li><li aria-hidden="true" class="mud-breadcrumb-separator mud-ltr mud-flip-x-rtl"><span>/</span></li><li class="mud-breadcrumb-item mud-disabled"><a href="#">Publications</a></li></ol></nav>
525
526    <div class="publications-header" b-daz9gi7v2n><h4 class="mud-typography mud-typography-h4 publications-title">Publications</h4>
527
528        <div class="publications-header-actions" b-daz9gi7v2n></div></div>
529
530    <div class="mud-input-control mud-input-control-margin-dense mud-input-input-control mud-input-sizing-fixed publications-search"><div class="mud-input-control-input-container"><div class="mud-input mud-input-outlined mud-input-adorned-start mud-input-margin-dense mud-shrink mud-typography-subtitle1 mud-input-sizing-fixed"><div class="mud-input-adornment mud-input-adornment-start"><svg class="mud-icon-root mud-icon-default mud-svg-icon mud-icon-size-medium mud-input-adornment-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img" tabindex="-1"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg></div><input class="mud-input-slot mud-input-root mud-input-root-outlined mud-input-root-adorned-start mud-input-root-margin-dense" id="mudinput22y4wpes" type="text" placeholder="Search publications..." inputmode="text" maxlength="524288" aria-invalid="false" aria-required="false" /><div class="mud-input-slot mud-input-root mud-input-root-outlined mud-input-root-adorned-start mud-input-root-margin-dense" style="display:none" tabindex="-1"></div><fieldset class="mud-input-outlined-border"></fieldset></div></div></div><div class="mud-grid mud-grid-spacing-xs-4 justify-start"><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://d.techtimes.com/en/full/470913/googles-street-view-manager-divon-lan-speaks.jpg" alt="Google Earth AI Pulled After Fakes of Nuclear Facilities Pass Watermark Check" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-5a0f476d-38dd-46e0-a811-658fc638fbf2"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
531
532                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.techtimes.com/articles/322578/20260801/google-earth-ai-pulled-after-fakes-nuclear-facilities-pass-watermark-check.htm" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Google Earth AI Pulled After Fakes of Nuclear Facilities Pass Watermark Check
533                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Google Earth AI</p><p class="mud-typography mud-typography-body2 publication-card-author">Tech Times</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Aug 1, 2026</span><span b-daz9gi7v2n>United States</span></div></div>
534
535                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://s.france24.com/media/display/99f8a93a-e6c1-11ee-9116-005056bf30b7/w:1280/p:16x9/img-default-F24.jpg" alt="Google rolls back new satellite image AI tool after backlash" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-31f93dce-c04a-4f98-8285-98762db79e25"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
536
537                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.france24.com/en/live-news/20260731-google-launches-new-satellite-image-ai-tool-alarming-researchers" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Google rolls back new satellite image AI tool after backlash
538                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Google Earth AI</p><p class="mud-typography mud-typography-body2 publication-card-author">France 24</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Jul 30, 2026</span><span b-daz9gi7v2n>France</span></div></div>
539
540                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://meduza.io/imgly/share/1782188242/en/feature/2026/06/23/for-years-ukrainian-strikes-stalled-within-a-few-kilometers-of-the-front-meduza-mapped-thousands-of-geolocated-attacks-and-fou
540nd-they-now-reach-far-behind-russian-lines" alt="For years, Ukrainian strikes stalled within a few kilometers of the front. Meduza mapped thousands of geolocated attacks and found they now reach far behind Russian lines." class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-8e33b05e-a993-415d-8a8e-f2d5b854cc2b"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
541
542                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://meduza.io/en/feature/2026/06/23/for-years-ukrainian-strikes-stalled-within-a-few-kilometers-of-the-front-meduza-mapped-thousands-of-geolocated-attacks-and-found-they-now-reach-far-behind-russian-lines" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">For years, Ukrainian strikes stalled within a few kilometers of the front. Meduza mapped thousands of geolocated attacks and found they now reach far behind Russian lines.
543                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Ukraine Strikes</p><p class="mud-typography mud-typography-body2 publication-card-author">Meduza</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Jun 22, 2026</span><span b-daz9gi7v2n>Latvia</span></div></div>
544
545                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><div class="publication-card-placeholder" b-daz9gi7v2n><svg class="mud-icon-root mud-svg-icon mud-icon-size-large" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg></div><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-0f4618d4-c6b5-4267-8395-1163b0d279ad"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
546
547                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://edition.cnn.com/2026/06/20/europe/ukraine-mid-range-drones-russia-logistics-intl-cmd" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">No fuel, no weapons: How Ukraine&#x2019;s new drone strategy is mauling Russian supply lines
548                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Ukrainian Logistics Strikes</p><p class="mud-typography mud-typography-body2 publication-card-author">CNN</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Jun 19, 2026</span><span b-daz9gi7v2n>United States</span></div></div>
549
550                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://ichef.bbci.co.uk/news/1200/branded_russian/3977/live/50b5f000-5d9f-11f1-b199-9da46582c1b0.jpg" alt="Fuel crisis in Crimea. Gasoline began to be sold using coupons" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-6d09325f-43be-4a2d-9d4e-def34498bae0"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
551
552                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.bbc.com/russian/articles/ce9pln22rk5o" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Fuel crisis in Crimea. Gasoline began to be sold using coupons
553                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Fuel Strikes</p><p class="mud-typography mud-typography-body2 publication-card-author">BBC</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>May 31, 2026</span><span b-daz9gi7v2n>
553United Kingdom</span></div></div>
554
555                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://ichef.bbci.co.uk/ace/branded_news/1200/cpsprodpb/1222/live/288ef030-5b7a-11f1-b682-cf91850925ea.png" alt="Ukraine using AI drones to strike vital convoys supplying Russian troops" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-f51b9f98-9fc0-4a85-b76e-f1d10c0b6e7a"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
556
557                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.bbc.co.uk/news/articles/cdjp0n7rn41o" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Ukraine using AI drones to strike vital convoys supplying Russian troops
558                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">AI Drone Strikes</p><p class="mud-typography mud-typography-body2 publication-card-author">BBC</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>May 29, 2026</span><span b-daz9gi7v2n>United Kingdom</span></div></div>
559
560                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://s.france24.com/media/display/af0c61ea-52cb-11f1-a298-005056a97e36/w:1280/p:16x9/HIXBQDJWwAAEG62.jpg" alt="&#x2018;Aid workers are targeted&#x2019;: Russian drones strike UN convoy in Ukraine" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-671da0fc-b70d-4b0a-a2ed-cbebd7f0987c"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
561
562                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.france24.com/en/europe/20260519-aid-workers-targeted-russian-drones-strike-un-convoy-ukraine" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">&#x2018;Aid workers are targeted&#x2019;: Russian drones strike UN convoy in Ukraine
563                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Ukraine War</p><p class="mud-typography mud-typography-body2 publication-card-author">France 24</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>May 28, 2026</span><span b-daz9gi7v2n>France</span></div></div>
564
565                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://i.cbc.ca/ais/d6bed13e-09a4-48af-bd86-5733cd69b8aa,1779728141650/full/max/0/default.jpg?im=Crop%2Crect%3D%280%2C272%2C5224%2C2938%29%3BResize%3D620" alt="Ukraine&#x27;s cultural, historical institutions heavily damaged in mass-scale Russian attack" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-9494b3d3-3f83-4849-82ba-8bc4134292ca"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
566
567                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.cbc.ca/news/world/ukraine-museums-cultural-institutions-russia-attacks-9.7210980" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Ukraine&#x27;s cultural, historical institutions heavily damaged in mass-scale Russian attack
568                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Ukraine Destruction</p><p class="mud-typography mud-typography-body2 publication-card-author">CBC</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>May 25, 2026</span><span b-daz9gi7v2n>
568Canada</span></div></div>
569
570                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://www.bellingcat.com/app/uploads/2026/04/Iran-police-stations-cover.jpeg" alt="&#x201C;Make Iran Ungovernable&#x201D; &#x2013; Tracking Efforts To Destroy Iran&#x2019;s Police Infrastructure" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-a90f5e76-07ca-4f87-af7e-377fb9297e0e"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
571
572                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.bellingcat.com/news/2026/04/24/make-iran-ungovernable-tracking-efforts-to-destroy-irans-police-infrastructure/" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">&#x201C;Make Iran Ungovernable&#x201D; &#x2013; Tracking Efforts To Destroy Iran&#x2019;s Police Infrastructure
573                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">US Iran War</p><p class="mud-typography mud-typography-body2 publication-card-author">Bellingcat</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Apr 23, 2026</span><span b-daz9gi7v2n>Netherlands</span></div></div>
574
575                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://www.hrw.org/sites/default/files/styles/opengraph/public/media_2026/04/202604mena_iran_south_pars.jpg?h=27de668d&amp;amp;itok=wLm_4Wy8" alt="Israel, Iran: Unlawful March Attacks on Energy Infrastructure" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-2e420d55-0c61-4c8b-a689-772b245e81bc"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
576
577                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.hrw.org/news/2026/04/22/israel-iran-unlawful-march-attacks-on-energy-infrastructure" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Israel, Iran: Unlawful March Attacks on Energy Infrastructure
578                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">
578Strikes on Energy Infrastructure </p><p class="mud-typography mud-typography-body2 publication-card-author">Human Rights Watch</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Apr 22, 2026</span><span b-daz9gi7v2n>United States</span></div></div>
579
580                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://www.hrw.org/sites/default/files/styles/opengraph/public/media_2026/04/202604mena_iran_oildepot.jpg?h=790be497&amp;amp;itok=yNX5I5jJ" alt="Iran: Israel&#x2019;s Oil Depot Strikes Endanger Environment, Health" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-f12829fc-c271-43f6-b7c2-58e192dabe2f"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
581
582                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.hrw.org/news/2026/04/14/iran-israels-oil-depot-strikes-endanger-environment-health" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">Iran: Israel&#x2019;s Oil Depot Strikes Endanger Environment, Health
583                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Israel Iran War</p><p class="mud-typography mud-typography-body2 publication-card-author">Human Rights Watch</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Apr 12, 2026</span><span b-daz9gi7v2n>United States</span></div></div>
584
585                            </div></div><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6 mud-grid-item-lg-3"><div class="publication-card" b-daz9gi7v2n><img src="https://www.bellingcat.com/app/uploads/2026/04/Screenshot-2026-04-07-at-15.12.42.jpg" alt="When Satellite Imagery Goes Dark: New Tool Shows Damage in Iran and the Gulf" class="publication-card-image" loading="lazy" b-daz9gi7v2n /><div class="publication-card-chip-overlay" b-daz9gi7v2n><div class="mud-chip-container" id="chip-container-ce0d66c6-afef-413d-92f5-64e057ff7009"><div tabindex="-1" class="mud-chip mud-chip-filled mud-chip-size-small mud-chip-color-success"><svg class="mud-icon-root mud-svg-icon mud-icon-size-small mud-chip-icon" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><g><rect fill="none" height="24" width="24"/></g><g><path d="M22,3l-1.67,1.67L18.67,3L17,4.67L15.33,3l-1.66,1.67L12,3l-1.67,1.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3v16 c0,1.1,0.9,2,2,2l16,0c1.1,0,2-0.9,2-2V3z M11,19H4v-6h7V19z M20,19h-7v-2h7V19z M20,15h-7v-2h7V15z M20,11H4V8h16V11z"/></g></svg><span class="mud-chip-content">Press</span></div></div></div>
586
587                            <div class="publication-card-body" b-daz9gi7v2n><div class="publication-card-title" b-daz9gi7v2n><a href="https://www.bellingcat.com/resources/2026/04/07/tool-damage-assessment-destruction-sentinel-satellite-imagery-iran-us-gulf/" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-subtitle1">When Satellite Imagery Goes Dark: New Tool Shows Damage in Iran and the Gulf
588                                            <svg class="mud-icon-root mud-svg-icon mud-icon-size-small ml-1" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg></a></div><p class="mud-typography mud-typography-body2 publication-card-summary">Attack on Iran</p><p class="mud-typography mud-typography-body2 publication-card-author">
588Bellingcat</p><div class="publication-card-meta" b-daz9gi7v2n><span b-daz9gi7v2n>Apr 6, 2026</span><span b-daz9gi7v2n>Netherlands</span></div></div>
589
590                            </div></div></div><div class="d-flex justify-center mt-4 mb-4" b-daz9gi7v2n><ul class="mud-pagination mud-pagination-outlined mud-pagination-medium"><li class="mud-pagination-item"><button aria-label="First page" type="button" disabled class="mud-button-root mud-icon-button mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium mud-ripple" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/><path d="M24 24H0V0h24v24z" fill="none"/></svg></span></button></li><li class="mud-pagination-item"><button aria-label="Previous page" type="button" disabled class="mud-button-root mud-icon-button mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium mud-ripple" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg></span></button></li><li class="mud-pagination-item mud-pagination-item-selected"><button aria-current="page" aria-label="Current page 1" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-primary mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">1</span></button></li><li class="mud-pagination-item"><button aria-label="Page 2" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">2</span></button></li><li class="mud-pagination-item"><button aria-label="Page 3" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">3</span></button></li><li class="mud-pagination-item"><button aria-label="Page 4" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">4</span></button></li><li class="mud-pagination-item"><button aria-label="Page 5" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">5</span></button></li><li class="mud-pagination-item"><button aria-label="Page 6" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">6</span></button></li><li class="mud-pagination-item"><p class="mud-typography mud-typography-body1">...</p></li><li class="mud-pagination-item"><button aria-label="Page 19" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">19</span></button></li><li class="mud-pagination-item"><button aria-label="Page 20" type="button" class="mud-button-root mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium" __internal_stopPropagation_onclick><span class="mud-button-label">20</span></button></li><li class="mud-pagination-item"><button aria-label="Next page" type="button" class="mud-button-root mud-icon-button mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium mud-ripple" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg></span></button></li><li class="mud-pagination-item"><button aria-label="Last page" type="button" class="mud-button-root mud-icon-button mud-button mud-button-outlined mud-button-outlined-default mud-button-outlined-size-medium mud-ripple" __internal_stopPropagation_onclick><span class="mud-icon-button-label"><svg class="mud-icon-root mud-svg-icon mud-icon-size-medium" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/></svg></span></button></li></ul></div><p class="mud-typography mud-typography-body2 mud-secondary-text mud-typography-align-center mb-4">239 items
591        </p></div></div></div></div>
592
593<div id="blazor-error-ui" data-nosnippet>
594    An unhandled error has occurred.
595    <a href="." class="reload">Reload</a>
596    <span class="dismiss">🗙</span></div><!--Blazor:{"prerenderId":"c54de9ad17da449d928afccc35028ffd"}-->
597    
597<script src="lib/maplibre/maplibre-gl.tm1kcqru8s.js" defer></script>
597
598    
598<script src="lib/turf/turf.min.kv09mgep2m.js" defer></script>
598
599    
599<script src="_content/MudBlazor/MudBlazor.min.jolev99wdd.js"></script>
599
600    
600<script src="_content/Z.Blazor.Diagrams/script.min.8l02e235tj.js"></script>
600
601    
601<script src="_framework/blazor.web.9hsif5t8mt.js" autostart="false"></script>
601
602    
602<script type="module">
603        const ring = document.getElementById('blazor-ring');
604        const pctEl = document.getElementById('blazor-pct');
605        const check = document.getElementById('blazor-check');
606        const loader = document.getElementById('blazor-loader');
607        const circumference = 2 * Math.PI * 54; // ~339.3
608        const showTime = Date.now();
609        const MIN_DISPLAY_MS = 200;
610        // Time for ring CSS transition (0.3s) + small buffer
611        const RING_TRANSITION_MS = 400;
612        let lastPct = 0;
613
614        const poll = setInterval(() => {
615            const raw = getComputedStyle(document.documentElement)
616                .getPropertyValue('--blazor-load-percentage-text').replace(/["%\s]/g, '');
617            const p = parseInt(raw) || 0;
618            if (p > lastPct) {
619                lastPct = p;
620                ring.style.strokeDashoffset = circumference - (circumference * p / 100);
621                pctEl.textContent = p < 100 ? `Loading ${p}%` : 'Loading complete';
622                if (p >= 100) {
623                    check.style.strokeDashoffset = '0';
624                    clearInterval(poll);
625                }
626            }
627        }, 50);
628
629        await Blazor.start({
630            webAssembly: {
631                environment: ""
632            }
633        });
634
635        clearInterval(poll);
636
637        // Wait until --blazor-load-percentage-text actually reaches 100%
638        await new Promise(resolve => {
639            const check100 = setInterval(() => {
640                const raw = getComputedStyle(document.documentElement)
641                    .getPropertyValue('--blazor-load-percentage-text').replace(/["%\s]/g, '');
642                const p = parseInt(raw) || 0;
643                if (p > lastPct) {
644                    lastPct = p;
645                    ring.style.strokeDashoffset = circumference - (circumference * p / 100);
646                    pctEl.textContent = p < 100 ? `Loading ${p}%` : 'Loading complete';
647                }
648                if (p >= 100) {
649                    clearInterval(check100);
650                    check.style.strokeDashoffset = '0';
651                    resolve();
652                }
653            }, 50);
654        });
655
656        // Wait for ring transition to finish so the user sees the completion,
657        // plus enforce minimum visible time
658        const elapsed = Date.now() - showTime;
659        const waitMs = Math.max(MIN_DISPLAY_MS - elapsed, RING_TRANSITION_MS);
660        await new Promise(r => setTimeout(r, waitMs));
661
662        loader.classList.add('loaded');
663        setTimeout(() => loader.remove(), 600);
664    </script>
664<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"36413589cd7b406a9f57ef0c6b011021","r":1,"spa":2}' crossorigin="anonymous"></script>
664
665</body></html><!--Blazor-Web-Initializers:WwogICJHZW9jb25maXJtZWQuU2VydmVyLm82a3dhenllcDIubGliLm1vZHVsZS5qcyIKXQ==--><!--Blazor-WebAssembly-Component-State:eyJNaWNyb3NvZnQuQXNwTmV0Q29yZS5Db21wb25lbnRzLkluZnJhc3RydWN0dXJlLlBlcnNpc3RlbnRTZXJ2aWNlc1JlZ2lzdHJ5IjoiVzNzaVlYTnpaVzFpYkhraU9pSkhaVzlqYjI1bWFYSnRaV1F1UTJ4cFpXNTBJaXdpWm5Wc2JGUjVjR1ZPWVcxbElqb2lSMlZ2WTI5dVptbHliV1ZrTGtOc2FXVnVkQzVUWlhKMmFXTmxjeTVEYjI1bWJHbGpkRk4wYjNKbEluMHNleUpoYzNObGJXSnNlU0k2SWtkbGIyTnZibVpwY20xbFpDNURiR2xsYm5RaUxDSm1kV3hzVkhsd1pVNWhiV1VpT2lKSFpXOWpiMjVtYVhKdFpXUXVRMnhwWlc1MExsTmxjblpwWTJWekxraHZiV1ZUZEdGMGMxTjBiM0psSW4wc2V5SmhjM05sYldKc2VTSTZJa2RsYjJOdmJtWnBjbTFsWkM1RGJHbGxiblFpTENKbWRXeHNWSGx3WlU1aGJXVWlPaUpIWlc5amIyNW1hWEp0WldRdVEyeHBaVzUwTGxObGNuWnBZMlZ6TGxCc1lXTmxiV0Z5YTFOMGIzSmxJbjBzZXlKaGMzTmxiV0pzZVNJNklrZGxiMk52Ym1acGNtMWxaQzVEYkdsbGJuUWlMQ0ptZFd4c1ZIbHdaVTVoYldVaU9pSkhaVzlqYjI1bWFYSnRaV1F1UTJ4cFpXNTBMbE5sY25acFkyVnpMbFJ2YjJ4cmFYUlRkRzl5WlNKOUxIc2lZWE56WlcxaWJIa2lPaUpOYVdOeWIzTnZablF1UVhOd1RtVjBRMjl5WlM1RGIyMXdiMjVsYm5SekxrVnVaSEJ2YVc1MGN5SXNJbVoxYkd4VWVYQmxUbUZ0WlNJNklrMXBZM0p2YzI5bWRDNUJjM0JPWlhSRGIzSmxMa052YlhCdmJtVnVkSE11VW1WemIzVnlZMlZEYjJ4c1pXTjBhVzl1VUhKdmRtbGtaWElpZlN4N0ltRnpjMlZ0WW14NUlqb2lUV2xqY205emIyWjBMa0Z6Y0U1bGRFTnZjbVV1UTI5dGNHOXVaVzUwY3k1WFpXSWlMQ0ptZFd4c1ZIbHdaVTVoYldVaU9pSk5hV055YjNOdlpuUXVRWE53VG1WMFEyOXlaUzVEYjIxd2IyNWxiblJ6TGtadmNtMXpMa0Z1ZEdsbWIzSm5aWEo1VTNSaGRHVlFjbTkyYVdSbGNpSjlYUT09IiwiS1N6dFQ4NGdBaVYwSU8vVUJSUnBPbThLNGpxRWZcdTAwMkIxSnp2Vk9DTUJsc2lVPSI6ImV5SjJZV3gxWlNJNklrTm1SRW80UW5aMGVXWnNVM05KVGxCeVNISXRUMUZHUVhWcFNGOTJUakV0U1ZJelVIQlFPWGhKV2xWdGFtTjFja0ZvV2tOeU9IaFlZV0l6TWxsaVRuY3RjM1J5YVVWb2NHZFBVbVUzWlZKcFpIaHFjekZNVm5vdFpWaERPV295UjNjeE9WQkdTbTFZWWkxWkxWUlZUMjR5VWpBdFNGaDJWR3B6WW5Cd2JsRndPVVZyUm14NFltSkpXbWc1ZEhBNExYQjFkVmRSYkRsM2QzVmpJaXdpWm05eWJVWnBaV3hrVG1GdFpTSTZJbDlmVW1WeGRXVnpkRlpsY21sbWFXTmhkR2x2YmxSdmEyVnVJbjA9IiwiSzlUZTNMRGJcdTAwMkI2eGZKQy8wUlQwQkdMUU92cFhpUDRLSVNnQWtPekRuc2tBPSI6IklpNHZYMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaUzFqYjJ4c1pXTjBhVzl1TG1sMGRsOXFMbXB6SWc9PSIsInVkOWNuOHMvNWNQOE1Sakl5Mk1ocmJrSHVLcXE5VTBcdTAwMkJiZlFxdXQ0Y2JFOD0iOiJXMTA9IiwiWHpVMmlQTVppcS9zXHUwMDJCQjhpdlpNWWthSXpZdGcvb3YxQXd3ektyM0NOSDJRPSI6IlptRnNjMlU9IiwiWXVmZkV3TFEyMDMxOERLNThaMXYwd1hzMjBVS2Qwc0g4a2NRb3pwRnVJQT0iOiJXMTA9IiwiREFUdktob1pYTGtXblp6MHZKT3RZc3dYZmd3ZWdnamE0aDN4Yy9zaTk1OD0iOiJXMTA9IiwiRjB4VndBQXFybWszd21tV2V4bThcdTAwMkJjL3k2VE03UmlmNEpNaWttV1NKdFRBPSI6IlptRnNjMlU9IiwiVGhERmxaTkJDT1lOTDBEVzJzbEdjZEYyZDJ1Nmw3SnVuSm5DYXVDbUdTRT0iOiJXMTA9IiwiSjFVTlRJbnZpbTBISy9ocDl5LzU5Z2RaejhCTUpHMDlzd3dhNEJxb0xcdTAwMkJNPSI6IlptRnNjMlU9IiwiWURKOVc5VXpIVmRXS04vek1LMjQxUVNFMTJOMkd3Z2k0SnZ2RnlWTEV6RT0iOiJabUZzYzJVPSIsImtqaHg3Wk9zdG90bGNrWlJDQmlTcm5XcHlRU05DRzl5a0ZrWkd5Unp2SE09IjoiWm1Gc2MyVT0iLCJIa2t1djlqUWZCWGZCSkNSUjlIRFhOSnRJeVpEWS9pVlU5OXhZbGRqNXFrPSI6Ilczc2liM0prWlhJaU9qQXNJbTVoYldVaU9pSlhiM0pzWkNJc0luTm9iM0owVG1GdFpTSTZJbGR2Y214a0lpd2lZMjlrWlNJNklsZHZjbXhrSWl3aWRYSnNJam9pZDI5eWJHUWlMQ0p6ZEdGeWRFUmhkR1VpT2lJeU1ESXpMVEF4TFRBeFZEQXdPakF3T2pBd0lpd2laVzVrUkdGMFpTSTZiblZzYkN3aWFYTlFjbWwyWVhSbElqcG1ZV3h6WlN3aWMyaHZkMGx1VFdWdWRHbHZibk1pT25SeWRXVXNJbk5vYjNkVWFXMWxiR2x1WlNJNmRISjFaU3dpYkdGMGFYUjFaR1VpT2pBc0lteHZibWRwZEhWa1pTSTZNQ3dpYUdGelJuSnZiblJzYVc1bElqcG1ZV3h6Wlgwc2V5SnZjbVJsY2lJNk1Td2libUZ0WlNJNklsVnJjbUZwYm1VaUxDSnphRzl5ZEU1aGJXVWlPaUpWYTNKaGFXNWxJaXdpWTI5a1pTSTZJbFZMVWlJc0luVnliQ0k2SW5WcmNtRnBibVVpTENKemRHRnlkRVJoZEdVaU9pSXlNREV6TFRBeExUQXhWREF3T2pBd09qQXdJaXdpWlc1a1JHRjBaU0k2Ym5Wc2JDd2lhWE5RY21sMllYUmxJanBtWVd4elpTd2ljMmh2ZDBsdVRXVnVkR2x2Ym5NaU9uUnlkV1VzSW5Ob2IzZFVhVzFsYkdsdVpTSTZkSEoxWlN3aWJHRjBhWFIxWkdVaU9qUTRMak0zT1RRc0lteHZibWRwZEhWa1pTSTZNekV1TVRZMU5pd2lhR0Z6Um5KdmJuUnNhVzVsSWpwMGNuVmxmU3g3SW05eVpHVnlJam95TENKdVlXMWxJam9pU1hKaGJpSXNJbk5vYjNKMFRtRnRaU0k2SWtseVlXNGlMQ0pqYjJSbElqb2lTWEpoYmlJc0luVnliQ0k2SW1seVlXNGlMQ0p6ZEdGeWRFUmhkR1VpT2lJeU1ESTFMVEF4TFRFeFZEQXdPakF3T2pBd0lpd2laVzVrUkdGMFpTSTZiblZzYkN3aWFYTlFjbWwyWVhSbElqcG1ZV3h6WlN3aWMyaHZkMGx1VFdWdWRHbHZibk1pT25SeWRXVXNJbk5vYjNkVWFXMWxiR2x1WlNJNmRISjFaU3dpYkdGMGFYUjFaR1VpT2pNeUxqVXhOemcwT1N3aWJHOXVaMmwwZFdSbElqbzFOQzR5TmpBNE16SXNJbWhoYzBaeWIyNTBiR2x1WlNJNlptRnNjMlY5TEhzaWIzSmtaWElpT2pNc0ltNWhiV1VpT2lKV1pXNWxlblZsYkdFaUxDSnphRzl5ZEU1aGJXVWlPaUpXUlU0aUxDSmpiMlJsSWpvaVZrVk9JaXdpZFhKc0lqb2lkbVZ1SWl3aWMzUmhjblJFWVhSbElqb2lNakF5TlMweE1DMHdNVlF3TURvd01Eb3dNQ0lzSW1WdVpFUmhkR1VpT201MWJHd3NJbWx6VUhKcGRtRjBaU0k2Wm1G
665c2MyVXNJbk5vYjNkSmJrMWxiblJwYjI1eklqcDBjblZsTENKemFHOTNWR2x0Wld4cGJtVWlPblJ5ZFdVc0lteGhkR2wwZFdSbElqbzNMak14TlRjNE5Dd2liRzl1WjJsMGRXUmxJam90TmpVdU5EZzFPVGN5TENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZTeDdJbTl5WkdWeUlqbzBMQ0p1WVcxbElqb2lUbUZuYjNKdWJ5QXRJRXRoY21GaVlXdG9JaXdpYzJodmNuUk9ZVzFsSWpvaVRtRm5iM0p1YjB0aGNtRmlZV3RvSWl3aVkyOWtaU0k2SWs1QlJ5SXNJblZ5YkNJNkltNWhaMjl5Ym05ZmEyRnlZV0poYTJnaUxDSnpkR0Z5ZEVSaGRHVWlPaUl5TURJekxUQXhMVEF4VkRBd09qQXdPakF3SWl3aVpXNWtSR0YwWlNJNmJuVnNiQ3dpYVhOUWNtbDJZWFJsSWpwbVlXeHpaU3dpYzJodmQwbHVUV1Z1ZEdsdmJuTWlPblJ5ZFdVc0luTm9iM2RVYVcxbGJHbHVaU0k2ZEhKMVpTd2liR0YwYVhSMVpHVWlPak01TGprNE5qSTVPRFlzSW14dmJtZHBkSFZrWlNJNk5EWXVNVFl4TVRNNU1Td2lhR0Z6Um5KdmJuUnNhVzVsSWpwbVlXeHpaWDBzZXlKdmNtUmxjaUk2TlN3aWJtRnRaU0k2SWtGbWNtbGpZU0lzSW5Ob2IzSjBUbUZ0WlNJNklsTmhhR1ZzSWl3aVkyOWtaU0k2SWtGbWNtbGpZU0lzSW5WeWJDSTZJbUZtY21sallTSXNJbk4wWVhKMFJHRjBaU0k2SWpJd01qTXRNREV0TURGVU1EQTZNREE2TURBaUxDSmxibVJFWVhSbElqcHVkV3hzTENKcGMxQnlhWFpoZEdVaU9tWmhiSE5sTENKemFHOTNTVzVOWlc1MGFXOXVjeUk2ZEhKMVpTd2ljMmh2ZDFScGJXVnNhVzVsSWpwMGNuVmxMQ0pzWVhScGRIVmtaU0k2TVRVdU5USTBNVEl4TlN3aWJHOXVaMmwwZFdSbElqb3hNaTQzTXpZek1UY3pMQ0pvWVhOR2NtOXVkR3hwYm1VaU9tWmhiSE5sZlN4N0ltOXlaR1Z5SWpvMkxDSnVZVzFsSWpvaVJGSkRiMjVuYnlJc0luTm9iM0owVG1GdFpTSTZJa1JTUXlJc0ltTnZaR1VpT2lKRVVrTWlMQ0oxY213aU9pSmtjbU1pTENKemRHRnlkRVJoZEdVaU9pSXlNREkwTFRBeExUSTRWREF3T2pBd09qQXdJaXdpWlc1a1JHRjBaU0k2Ym5Wc2JDd2lhWE5RY21sMllYUmxJanBtWVd4elpTd2ljMmh2ZDBsdVRXVnVkR2x2Ym5NaU9uUnlkV1VzSW5Ob2IzZFVhVzFsYkdsdVpTSTZkSEoxWlN3aWJHRjBhWFIxWkdVaU9pMHpMakk1TXpjeE9Td2liRzl1WjJsMGRXUmxJam95TXk0M01UTTROREVzSW1oaGMwWnliMjUwYkdsdVpTSTZabUZzYzJWOUxIc2liM0prWlhJaU9qY3NJbTVoYldVaU9pSkpjM0poWld3dlIyRjZZUzlNWldKaGJtOXVJaXdpYzJodmNuUk9ZVzFsSWpvaVNYTnlZV1ZzSWl3aVkyOWtaU0k2SWtsVFVpSXNJblZ5YkNJNkltbHpjbUZsYkNJc0luTjBZWEowUkdGMFpTSTZJakl3TWpNdE1UQXRNRGRVTURBNk1EQTZNREFpTENKbGJtUkVZWFJsSWpwdWRXeHNMQ0pwYzFCeWFYWmhkR1VpT21aaGJITmxMQ0p6YUc5M1NXNU5aVzUwYVc5dWN5STZkSEoxWlN3aWMyaHZkMVJwYldWc2FXNWxJanAwY25WbExDSnNZWFJwZEhWa1pTSTZNekV1TnpZME1ERXdNaXdpYkc5dVoybDBkV1JsSWpvek5TNHlNVFV5T1RRMExDSm9ZWE5HY205dWRHeHBibVVpT25SeWRXVjlMSHNpYjNKa1pYSWlPamdzSW01aGJXVWlPaUpKYzNJZ0xTQTNJRTlqZENBeU15SXNJbk5vYjNKMFRtRnRaU0k2SWpkUFExUXlNeUlzSW1OdlpHVWlPaUkzVDBOVU1qTWlMQ0oxY213aU9pSTNiMk4wSWl3aWMzUmhjblJFWVhSbElqb2lNakF5TXkweE1DMHdObFF3TURvd01Eb3dNQ0lzSW1WdVpFUmhkR1VpT2lJeU1ESXpMVEV3TFRFd1ZEQXdPakF3T2pBd0lpd2lhWE5RY21sMllYUmxJanBtWVd4elpTd2ljMmh2ZDBsdVRXVnVkR2x2Ym5NaU9uUnlkV1VzSW5Ob2IzZFVhVzFsYkdsdVpTSTZabUZzYzJVc0lteGhkR2wwZFdSbElqb3pNUzQwTVRJME5qa3NJbXh2Ym1kcGRIVmtaU0k2TXpRdU5EazFOalkwTENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZTeDdJbTl5WkdWeUlqbzVMQ0p1WVcxbElqb2lVM2x5YVdFaUxDSnphRzl5ZEU1aGJXVWlPaUpUZVhKcFlTSXNJbU52WkdVaU9pSlRXVklpTENKMWNtd2lPaUp6ZVhKcFlTSXNJbk4wWVhKMFJHRjBaU0k2SWpJd01qTXRNREV0TURGVU1EQTZNREE2TURBaUxDSmxibVJFWVhSbElqcHVkV3hzTENKcGMxQnlhWFpoZEdVaU9tWmhiSE5sTENKemFHOTNTVzVOWlc1MGFXOXVjeUk2ZEhKMVpTd2ljMmh2ZDFScGJXVnNhVzVsSWpwMGNuVmxMQ0pzWVhScGRIVmtaU0k2TXpRdU56STVNRFkwTENKc2IyNW5hWFIxWkdVaU9qTTJMall6TWpFNU5qZ3NJbWhoYzBaeWIyNTBiR2x1WlNJNlptRnNjMlY5TEhzaWIzSmtaWElpT2pFd0xDSnVZVzFsSWpvaVdXVnRaVzRpTENKemFHOXlkRTVoYldVaU9pSlpaVzFsYmlJc0ltTnZaR1VpT2lKWlJVMGlMQ0oxY213aU9pSjVaVzFsYmlJc0luTjBZWEowUkdGMFpTSTZJakl3TWpNdE1ERXRNREZVTURBNk1EQTZNREFpTENKbGJtUkVZWFJsSWpwdWRXeHNMQ0pwYzFCeWFYWmhkR1VpT21aaGJITmxMQ0p6YUc5M1NXNU5aVzUwYVc5dWN5STZkSEoxWlN3aWMyaHZkMVJwYldWc2FXNWxJanAwY25WbExDSnNZWFJwZEhWa1pTSTZNVFV1TXpNMU9UZzNNaXdpYkc5dVoybDBkV1JsSWpvME1pNDNPVFUzT0RJMUxDSm9ZWE5HY205dWRHeHBibVVpT21aaGJITmxmU3g3SW05eVpHVnlJam94TVN3aWJtRnRaU0k2SWtGbVoyaGhibWx6ZEdGdUlGeDFNREF5TmlCUVlXdHBjM1JoYmlJc0luTm9iM0owVG1GdFpTSTZJa0ZtWjJnaUxDSmpiMlJsSWpvaVFXWm5hQ0lzSW5WeWJDSTZJbUZtWjJoaGJtbHpkR0Z1SWl3aWMzUmhjblJFWVhSbElqb2lNakF5TlMwd01TMHdNVlF3TURvd01Eb3dNQ0lzSW1WdVpFUmhkR1VpT201MWJHd3NJbWx6VUhKcGRtRjBaU0k2Wm1Gc2MyVXNJbk5vYjNkSmJrMWxiblJwYjI1eklqcDBjblZsTENKemFHOTNWR2x0Wld4cGJtVWlPblJ5ZFdVc0lteGhkR2wwZFdSbElqb3pNeTQ1TmpVeE5ERXNJbXh2Ym1kcGRIVmtaU0k2TmpVdU1EWTRNekl6TENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZTeDdJbTl5WkdWeUlqb3hNaXdpYm1GdFpTSTZJa2x1WkdsaExWQmhhMmx6ZEdGdUlpd2ljMmh2Y25ST1lXMWxJam9pU1U1RVVFRkxJaXdpWTI5a1pTSTZJa2xPUkMxUVFVc2lMQ0oxY213aU9pSnBibVJ3WVdzaUxDSnpkR0Z5ZEVSaGRHVWlPaUl5TURJMUxUQXhMVEF4VkRBd09qQXdPakF3SWl3aVpXNWtSR0YwWlNJNmJuVnNiQ3dpYVhOUWNtbDJZWFJsSWpwbVlXeHpaU3dpYzJodmQwbHVUV1Z1ZEdsdmJuTWlPblJ5ZFdVc0luTm9iM2RVYVcxbGJHbHVaU0k2ZEhKMVpTd2liR0YwYVhSMVpHVWlPak16TGpVNE9EVXhOU3dpYkc5dVoybDBkV1JsSWpvM015NDRPREEwTVRnc0ltaGhjMFp5YjI1MGJHbHVaU0k2Wm1G
665c2MyVjlMSHNpYjNKa1pYSWlPakV6TENKdVlXMWxJam9pVkdoaGFXeGhibVFnTFNCRFlXMWliMlJwWVNJc0luTm9iM0owVG1GdFpTSTZJbFJJUVV0SVRTSXNJbU52WkdVaU9pSlVTRUZMU0UwaUxDSjFjbXdpT2lKMGFHRnBiR0Z1WkdOaGJXSnZaR2xoSWl3aWMzUmhjblJFWVhSbElqb2lNakF5TlMwd01TMHdNVlF3TURvd01Eb3dNQ0lzSW1WdVpFUmhkR1VpT201MWJHd3NJbWx6VUhKcGRtRjBaU0k2Wm1Gc2MyVXNJbk5vYjNkSmJrMWxiblJwYjI1eklqcDBjblZsTENKemFHOTNWR2x0Wld4cGJtVWlPblJ5ZFdVc0lteGhkR2wwZFdSbElqb3hOQzR5TURNMk1qWXNJbXh2Ym1kcGRIVmtaU0k2TVRBeUxqazBPREl6TENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZTeDdJbTl5WkdWeUlqb3hOQ3dpYm1GdFpTSTZJbEJoWTJsbWFXTWlMQ0p6YUc5eWRFNWhiV1VpT2lKVVlXbDNZVzRpTENKamIyUmxJam9pVUVGRElpd2lkWEpzSWpvaWNHRmpJaXdpYzNSaGNuUkVZWFJsSWpvaU1qQXlNaTB3TVMwd01WUXdNRG93TURvd01DSXNJbVZ1WkVSaGRHVWlPbTUxYkd3c0ltbHpVSEpwZG1GMFpTSTZabUZzYzJVc0luTm9iM2RKYmsxbGJuUnBiMjV6SWpwMGNuVmxMQ0p6YUc5M1ZHbHRaV3hwYm1VaU9uUnlkV1VzSW14aGRHbDBkV1JsSWpveU15NDJPVGM0TENKc2IyNW5hWFIxWkdVaU9qRXlNQzQ1TmpBMUxDSm9ZWE5HY205dWRHeHBibVVpT21aaGJITmxmU3g3SW05eVpHVnlJam94TlN3aWJtRnRaU0k2SWsxNVlXNXRZWElpTENKemFHOXlkRTVoYldVaU9pSk5lV0Z1YldGeUlpd2lZMjlrWlNJNklrMU5VaUlzSW5WeWJDSTZJbTE1WVc1dFlYSWlMQ0p6ZEdGeWRFUmhkR1VpT2lJeU1ESXhMVEF5TFRBeFZEQXdPakF3T2pBd0lpd2laVzVrUkdGMFpTSTZiblZzYkN3aWFYTlFjbWwyWVhSbElqcG1ZV3h6WlN3aWMyaHZkMGx1VFdWdWRHbHZibk1pT25SeWRXVXNJbk5vYjNkVWFXMWxiR2x1WlNJNmRISjFaU3dpYkdGMGFYUjFaR1VpT2pJeExqazBNRFE1T0RZc0lteHZibWRwZEhWa1pTSTZPVFV1T1Rrek5ESXpNaXdpYUdGelJuSnZiblJzYVc1bElqcG1ZV3h6Wlgwc2V5SnZjbVJsY2lJNk1UWXNJbTVoYldVaU9pSkRZWEowWld3Z1RXRndJaXdpYzJodmNuUk9ZVzFsSWpvaVEyRnlkR1ZzSWl3aVkyOWtaU0k2SWtOaGNuUmxiSE1pTENKMWNtd2lPaUpqWVhKMFpXd2lMQ0p6ZEdGeWRFUmhkR1VpT2lJeU1ESTBMVEEyTFRBeFZEQXdPakF3T2pBd0lpd2laVzVrUkdGMFpTSTZiblZzYkN3aWFYTlFjbWwyWVhSbElqcG1ZV3h6WlN3aWMyaHZkMGx1VFdWdWRHbHZibk1pT25SeWRXVXNJbk5vYjNkVWFXMWxiR2x1WlNJNmRISjFaU3dpYkdGMGFYUjFaR1VpT2pJekxqRTNNREExT0Rrc0lteHZibWRwZEhWa1pTSTZMVEV3TWk0d09EUXdNVGcwTENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZTeDdJbTl5WkdWeUlqb3hOeXdpYm1GdFpTSTZJbGRYU1NJc0luTm9iM0owVG1GdFpTSTZJbGRYU1NJc0ltTnZaR1VpT2lKWFYwa2lMQ0oxY213aU9pSjNkMmtpTENKemRHRnlkRVJoZEdVaU9pSXhPVEUwTFRBeExUQXhWREF3T2pBd09qQXdJaXdpWlc1a1JHRjBaU0k2SWpFNU1UZ3RNVEl0TXpCVU1EQTZNREE2TURBaUxDSnBjMUJ5YVhaaGRHVWlPbVpoYkhObExDSnphRzkzU1c1TlpXNTBhVzl1Y3lJNmRISjFaU3dpYzJodmQxUnBiV1ZzYVc1bElqcDBjblZsTENKc1lYUnBkSFZrWlNJNk5USXVOVFF6TmpNNExDSnNiMjVuYVhSMVpHVWlPakV6TGpNM016WTJOU3dpYUdGelJuSnZiblJzYVc1bElqcG1ZV3h6Wlgwc2V5SnZjbVJsY2lJNk1UZ3NJbTVoYldVaU9pSlhWMGxKSWl3aWMyaHZjblJPWVcxbElqb2lWMWRKU1NJc0ltTnZaR1VpT2lKWFYwbEpJaXdpZFhKc0lqb2lkM2RwYVNJc0luTjBZWEowUkdGMFpTSTZJakU1TXpjdE1ERXRNVEZVTURBNk1EQTZNREFpTENKbGJtUkVZWFJsSWpvaU1UazBOaTB4TWkwek1WUXdNRG93TURvd01DSXNJbWx6VUhKcGRtRjBaU0k2Wm1Gc2MyVXNJbk5vYjNkSmJrMWxiblJwYjI1eklqcDBjblZsTENKemFHOTNWR2x0Wld4cGJtVWlPblJ5ZFdVc0lteGhkR2wwZFdSbElqbzFNaTQxTkRNMk16Z3NJbXh2Ym1kcGRIVmtaU0k2TVRNdU16Y3pOalkxTENKb1lYTkdjbTl1ZEd4cGJtVWlPbVpoYkhObGZWMD0iLCJGbDhYR3p3enJhZm0ycExRdmpuU0lLMVpcdTAwMkJzMmVjeEhwMndlVTZ3Mkc2VmM9IjoiZEhKMVpRPT0ifQ==-->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.