From b8e77a040477f321bb6a534b46e50d23070b0f06 Mon Sep 17 00:00:00 2001 From: x7z4w Date: Tue, 18 Nov 2025 19:32:05 +0000 Subject: [PATCH 01/91] [android] Fix categories icons fill color for night mode Signed-off-by: x7z4w --- android/app/src/main/res/drawable-night/ic_category_atm.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_bank.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_children.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_eat.xml | 2 +- .../src/main/res/drawable-night/ic_category_entertainment.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_food.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_fuel.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_hospital.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_hotel.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_luggagehero.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_nightlife.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_parking.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_pharmacy.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_police.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_post.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_recycling.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_rv.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_secondhand.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_shopping.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_toilet.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_tourism.xml | 2 +- .../app/src/main/res/drawable-night/ic_category_transport.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_water.xml | 2 +- android/app/src/main/res/drawable-night/ic_category_wifi.xml | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/android/app/src/main/res/drawable-night/ic_category_atm.xml b/android/app/src/main/res/drawable-night/ic_category_atm.xml index 6e128e7e2..2ad4b6284 100644 --- a/android/app/src/main/res/drawable-night/ic_category_atm.xml +++ b/android/app/src/main/res/drawable-night/ic_category_atm.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_bank.xml b/android/app/src/main/res/drawable-night/ic_category_bank.xml index 179a34ffc..2502e92c3 100644 --- a/android/app/src/main/res/drawable-night/ic_category_bank.xml +++ b/android/app/src/main/res/drawable-night/ic_category_bank.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_children.xml b/android/app/src/main/res/drawable-night/ic_category_children.xml index 1b367665f..2ef670acf 100644 --- a/android/app/src/main/res/drawable-night/ic_category_children.xml +++ b/android/app/src/main/res/drawable-night/ic_category_children.xml @@ -18,7 +18,7 @@ android:pivotY="12"> + android:fillColor="#000" /> diff --git a/android/app/src/main/res/drawable-night/ic_category_eat.xml b/android/app/src/main/res/drawable-night/ic_category_eat.xml index 754297441..e6574bec8 100644 --- a/android/app/src/main/res/drawable-night/ic_category_eat.xml +++ b/android/app/src/main/res/drawable-night/ic_category_eat.xml @@ -18,7 +18,7 @@ android:pivotY="12"> + android:fillColor="#000" /> diff --git a/android/app/src/main/res/drawable-night/ic_category_entertainment.xml b/android/app/src/main/res/drawable-night/ic_category_entertainment.xml index 59d955b01..9930fe01c 100644 --- a/android/app/src/main/res/drawable-night/ic_category_entertainment.xml +++ b/android/app/src/main/res/drawable-night/ic_category_entertainment.xml @@ -18,7 +18,7 @@ android:pivotY="12"> + android:fillColor="#000" /> diff --git a/android/app/src/main/res/drawable-night/ic_category_food.xml b/android/app/src/main/res/drawable-night/ic_category_food.xml index e2180f489..f06ae81a2 100644 --- a/android/app/src/main/res/drawable-night/ic_category_food.xml +++ b/android/app/src/main/res/drawable-night/ic_category_food.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_fuel.xml b/android/app/src/main/res/drawable-night/ic_category_fuel.xml index 4b8db7284..6d03607da 100644 --- a/android/app/src/main/res/drawable-night/ic_category_fuel.xml +++ b/android/app/src/main/res/drawable-night/ic_category_fuel.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_hospital.xml b/android/app/src/main/res/drawable-night/ic_category_hospital.xml index 5644ca360..a15c4e441 100644 --- a/android/app/src/main/res/drawable-night/ic_category_hospital.xml +++ b/android/app/src/main/res/drawable-night/ic_category_hospital.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_hotel.xml b/android/app/src/main/res/drawable-night/ic_category_hotel.xml index b5ead3a8e..76e4bd1dd 100644 --- a/android/app/src/main/res/drawable-night/ic_category_hotel.xml +++ b/android/app/src/main/res/drawable-night/ic_category_hotel.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_luggagehero.xml b/android/app/src/main/res/drawable-night/ic_category_luggagehero.xml index 3f25082ce..d8871cd73 100644 --- a/android/app/src/main/res/drawable-night/ic_category_luggagehero.xml +++ b/android/app/src/main/res/drawable-night/ic_category_luggagehero.xml @@ -20,7 +20,7 @@ android:scaleX="0.5" android:scaleY="0.5"> diff --git a/android/app/src/main/res/drawable-night/ic_category_nightlife.xml b/android/app/src/main/res/drawable-night/ic_category_nightlife.xml index e398f979a..01c03d221 100644 --- a/android/app/src/main/res/drawable-night/ic_category_nightlife.xml +++ b/android/app/src/main/res/drawable-night/ic_category_nightlife.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_parking.xml b/android/app/src/main/res/drawable-night/ic_category_parking.xml index 78b459014..147497c93 100644 --- a/android/app/src/main/res/drawable-night/ic_category_parking.xml +++ b/android/app/src/main/res/drawable-night/ic_category_parking.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_pharmacy.xml b/android/app/src/main/res/drawable-night/ic_category_pharmacy.xml index 963468d60..8bca3d90c 100644 --- a/android/app/src/main/res/drawable-night/ic_category_pharmacy.xml +++ b/android/app/src/main/res/drawable-night/ic_category_pharmacy.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_police.xml b/android/app/src/main/res/drawable-night/ic_category_police.xml index 71eb3cb85..4432b6f7a 100644 --- a/android/app/src/main/res/drawable-night/ic_category_police.xml +++ b/android/app/src/main/res/drawable-night/ic_category_police.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_post.xml b/android/app/src/main/res/drawable-night/ic_category_post.xml index 703f25311..f4a1b1bea 100644 --- a/android/app/src/main/res/drawable-night/ic_category_post.xml +++ b/android/app/src/main/res/drawable-night/ic_category_post.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_recycling.xml b/android/app/src/main/res/drawable-night/ic_category_recycling.xml index 23da63c76..13c5a5abf 100644 --- a/android/app/src/main/res/drawable-night/ic_category_recycling.xml +++ b/android/app/src/main/res/drawable-night/ic_category_recycling.xml @@ -18,7 +18,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_rv.xml b/android/app/src/main/res/drawable-night/ic_category_rv.xml index b790b9e51..e4bc7afba 100644 --- a/android/app/src/main/res/drawable-night/ic_category_rv.xml +++ b/android/app/src/main/res/drawable-night/ic_category_rv.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_secondhand.xml b/android/app/src/main/res/drawable-night/ic_category_secondhand.xml index 7594da661..97c564b38 100644 --- a/android/app/src/main/res/drawable-night/ic_category_secondhand.xml +++ b/android/app/src/main/res/drawable-night/ic_category_secondhand.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_shopping.xml b/android/app/src/main/res/drawable-night/ic_category_shopping.xml index 984f6c6bb..69c8f6ba9 100644 --- a/android/app/src/main/res/drawable-night/ic_category_shopping.xml +++ b/android/app/src/main/res/drawable-night/ic_category_shopping.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_toilet.xml b/android/app/src/main/res/drawable-night/ic_category_toilet.xml index 39a945a8d..59ad84ca4 100644 --- a/android/app/src/main/res/drawable-night/ic_category_toilet.xml +++ b/android/app/src/main/res/drawable-night/ic_category_toilet.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_tourism.xml b/android/app/src/main/res/drawable-night/ic_category_tourism.xml index 0d4a5b615..6cc3f4b54 100644 --- a/android/app/src/main/res/drawable-night/ic_category_tourism.xml +++ b/android/app/src/main/res/drawable-night/ic_category_tourism.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_transport.xml b/android/app/src/main/res/drawable-night/ic_category_transport.xml index 587426e54..48bead94c 100644 --- a/android/app/src/main/res/drawable-night/ic_category_transport.xml +++ b/android/app/src/main/res/drawable-night/ic_category_transport.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_water.xml b/android/app/src/main/res/drawable-night/ic_category_water.xml index 6f4a95898..a78b69560 100644 --- a/android/app/src/main/res/drawable-night/ic_category_water.xml +++ b/android/app/src/main/res/drawable-night/ic_category_water.xml @@ -18,7 +18,7 @@ android:pivotX="12" android:pivotY="12"> diff --git a/android/app/src/main/res/drawable-night/ic_category_wifi.xml b/android/app/src/main/res/drawable-night/ic_category_wifi.xml index eb6914478..d00c4c6ba 100644 --- a/android/app/src/main/res/drawable-night/ic_category_wifi.xml +++ b/android/app/src/main/res/drawable-night/ic_category_wifi.xml @@ -17,7 +17,7 @@ android:pivotX="12" android:pivotY="12"> From 20a688505ae8b1f69eb2072efea864b9b2d81f71 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Tue, 11 Nov 2025 20:32:25 +0100 Subject: [PATCH 02/91] [android] Fix background color of edit buttons on Android 5 Signed-off-by: Jean-Baptiste --- android/app/src/main/res/layout/place_page_add.xml | 3 +++ android/app/src/main/res/layout/place_page_editor.xml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/android/app/src/main/res/layout/place_page_add.xml b/android/app/src/main/res/layout/place_page_add.xml index da7852d2f..ccf87f6c4 100644 --- a/android/app/src/main/res/layout/place_page_add.xml +++ b/android/app/src/main/res/layout/place_page_add.xml @@ -2,6 +2,7 @@ @@ -11,5 +12,7 @@ style="@style/MwmWidget.M3.Button.Secondary" android:layout_height="wrap_content" android:layout_width="match_parent" + app:backgroundTint="?windowBackgroundForced" + android:backgroundTint="?windowBackgroundForced" android:text="@string/placepage_add_place_button" /> diff --git a/android/app/src/main/res/layout/place_page_editor.xml b/android/app/src/main/res/layout/place_page_editor.xml index c085142d6..604eff515 100644 --- a/android/app/src/main/res/layout/place_page_editor.xml +++ b/android/app/src/main/res/layout/place_page_editor.xml @@ -2,6 +2,7 @@ @@ -10,5 +11,7 @@ style="@style/MwmWidget.M3.Button.Secondary" android:layout_height="wrap_content" android:layout_width="match_parent" + app:backgroundTint="?windowBackgroundForced" + android:backgroundTint="?windowBackgroundForced" android:text="@string/edit_place"/> From 698afc4880761cb747a0a53c4cc0bdeb24e20462 Mon Sep 17 00:00:00 2001 From: patepelo Date: Wed, 19 Nov 2025 13:16:19 +0100 Subject: [PATCH 03/91] [search] improve Spanish search strings Signed-off-by: patepelo --- .../es-MX.json/localize.json | 2 + data/categories-strings/es.json/localize.json | 318 +++++++++--------- 2 files changed, 161 insertions(+), 159 deletions(-) diff --git a/data/categories-strings/es-MX.json/localize.json b/data/categories-strings/es-MX.json/localize.json index 2b0dd0174..d2e451fee 100644 --- a/data/categories-strings/es-MX.json/localize.json +++ b/data/categories-strings/es-MX.json/localize.json @@ -9,6 +9,8 @@ "recycling-plastic_bottles|@category_recycling": "Botellas de plástico", "recycling-scrap_metal|@category_recycling": "Desechos de metal", "recycling-small_appliances|@category_recycling": "Desechos electrónico", +"highway-bus_stop|@category_transport": "Parada de autobús|Parada|Autobús|Bus|omnibus|omni|bondi|colectivo|camión", +"amenity-bus_station|@category_transport": "3Estación de autobuses|Estación de ómnibus|Estación de micros|Estación de colectivos|Autobús|Bus|Terminal de buses|Terminal de autobuses|camión", "amenity-shelter-basic_hut": "Cabaña Vivac", "natural-strait": "Estrecho", "leisure-hackerspace": "Espacio hacker", diff --git a/data/categories-strings/es.json/localize.json b/data/categories-strings/es.json/localize.json index 6e5e7f64c..cd26f3190 100644 --- a/data/categories-strings/es.json/localize.json +++ b/data/categories-strings/es.json/localize.json @@ -5,31 +5,31 @@ "@category_fuel": "3Gasolinera|Gasolinería|3Estación de servicio|gasoil|diésel|nafta|combustible|bencina|gasolina|gasóleo|surtidor|4bomba de gasolina", "@category_parking": "5Aparcamiento|5Estacionamiento|Aparcar|Estacionar|Parquear|4Parking|Aparcadero|Parqueadero|Parqueo", "@category_shopping": "4Compras", -"@category_hotel": "Hotel|Hoteles", +"@category_hotel": "Hotel|Hoteles|alojamiento", "@category_tourism": "5Atracciones turísticas|4Turismo|Lugares de interés", "@category_entertainment": "Entretenimiento|Diversión|Ocio", "@category_nightlife": "Vida nocturna|noche", "@category_children": "Ocio en familia|Diversión en familia|4Familia|3Niños|Infantil", "@category_atm": "Cajero|cajero automático", -"@category_rv": "5Caravanas|5Autocaravanas|5Motorhome|camper", -"amenity-atm|@category_atm": "dinero|efectivo|cajero", +"@category_rv": "5Caravanas|5Autocaravanas|5Motorhome|camper|campervan|camper van", +"amenity-atm|@category_atm": "dinero|efectivo", "@category_bank": "3Banco|4Sucursal bancaria", -"@category_secondhand": "Segunda mano", +"@category_secondhand": "4Segunda mano", "amenity-bank|@category_bank": "dinero", "@category_recycling": "4Reciclaje|Reciclaje de residuos|Eliminación de residuos|Materiales reciclables|Recogida selectiva de basura|Clasificación de residuos|Reutilización", "amenity-bureau_de_change": "3Cambio de divisas|dinero|Casa de cambio|Cambista", "amenity-studio": "Estudio", "amenity-bar|amenity-pub|@category_eat|@category_nightlife": "2Bar|2pub|taberna|bebida|beber|4cerveza|cóctel", "amenity-cafe|@category_eat": "3Café|3cafetería|3restaurante", -"amenity-fast_food|@category_eat": "4Comida rápida|restaurante", -"amenity-restaurant|@category_eat": "3Restaurante|3café|restaurant|restorán", -"@shop": "Tienda", -"shop-bakery|shop-pastry|@category_eat|@category_food|@shop": "3Panadería|panificadora|4pastelería|5repostería|4confitería|4bollería", +"amenity-fast_food|@category_eat": "4Comida rápida|restaurante|restaurant|3Restaurante de comida rápida", +"amenity-restaurant|@category_eat": "3Restaurante|3Café|restaurant|restorán", +"@shop": "Tienda|Comercio", +"shop-bakery|shop-pastry|@category_eat|@category_food|@shop": "3Panadería|pan|panificadora|4pastelería|5repostería|4confitería|4bollería", "shop-cannabis|@shop": "Cánnabis|marihuana|mariguana", "shop-cosmetics|@category_shopping|@shop": "4Productos cosméticos|Cosméticos|Belleza|Maquillaje", -"shop-convenience|@category_food|@shop": "Tienda de barrio|Tienda de conveniencia|chino|provisión|almacén|minimercado|colmado", -"shop-deli|@category_food|@shop": "Delicatesen|Tienda de productos gourmet|Tienda gourmet|Gourmet", -"shop-farm|@category_food|@shop": "4Granja|Productos de granja", +"shop-convenience|@category_food|@shop": "Tienda de barrio|Tienda de conveniencia|conveniencia|chino|provisión|almacén|minimercado|colmado", +"shop-deli|@category_food|@shop": "delicatesen|delicatessen|deli|Tienda de productos gourmet|Tienda gourmet|Gourmet|Ultramarinos", +"shop-farm|@category_food|@shop": "Productos de granja|Tienda de granja|Provisiones de granja", "shop-garden_centre|@shop": "4Jardinería|4Vivero|Tienda de jardinería", "shop-grocery|@category_food|@shop": "Tienda de comestibles|Almacén|Provisión", "shop-health_food|@category_food|@shop": "Alimentos saludables", @@ -43,53 +43,53 @@ "shop-books|@shop": "4Librería|Libros", "shop-shoes|@category_shopping|@shop": "4Zapatería|tienda de zapatos|zapatos|zapatillas", "shop-electronics|@shop": "4Electrónica|tienda de aparatos electrónicos|tienda de electrónica", -"shop-hardware|shop-doityourself|@shop": "Ferretería|bricolaje", +"shop-hardware|shop-doityourself|@shop": "4Ferretería|bricolaje|tlapalería|tienda de materiales|herramientas|suministros para el hogar|artículos de ferretería", "shop-houseware|@shop": "Enseres domésticos|Artículos del hogar", "shop-jewelry|@category_shopping|@shop": "Joyería|Joyas", "shop-optician|@shop": "4Óptica|lentes|gafas|lentillas|lentes de sol|gafas de sol|anteojos", "shop-gift|@category_shopping|@shop": "Tienda de regalos|Regalos|Souvenir|4Souvenirs", -"shop-beauty": "Centro de belleza|Salón de belleza", +"shop-beauty": "Centro de belleza|4Salón de belleza", "shop-greengrocer|@category_food|@shop": "4Frutería|4Verdulería|fruta|verdura|vegetales|hortalizas|legumbres", "shop-sports|@category_shopping|@shop": "Artículos de deporte|Artículos deportivos|Tienda de deportes|Tienda deportiva", "shop-supermarket|@category_food|@shop": "3Supermercado|Supermarket|automercado", -"shop-mall|@category_shopping|@shop": "Centro comercial|Shopping center|Galería|Mall", +"shop-mall|@category_shopping|@shop": "4Centro comercial|Shopping center|Galería|Mall", "shop-department_store|@category_shopping|@shop": "Grandes almacenes|Grandes tiendas|Tienda por departamentos|Tienda de departamentos|Tiendas departamentales", "shop-beverages|@category_food|@shop": "4Bebidas|4Refrescos", -"shop-computer|@shop": "Tienda de informática|tienda de ordenadores|computación|informática|computadora|computadoras|ordernador|ordenadores", -"shop-confectionery|craft-confectionery|@category_food|@shop": "4Confitería|4pastelería|5repostería|4bollería|5dulces|5chucherías|5golosinas", +"shop-computer|@shop": "Tienda de informática|tienda de ordenadores|computación|informática|computadora|computadoras|ordenador|ordenadores", +"shop-confectionery|craft-confectionery|@category_food|@shop": "4Confitería|4Pastelería|5Repostería|4Bollería|5dulces|5chucherías|5golosinas", "shop-laundry": "4Lavandería", -"shop-toys|@category_children|@shop": "Tienda de juguetes|juguetería|juguetes", +"shop-toys|@category_children|@shop": "Tienda de juguetes|4Juguetería|juguetes", "amenity-marketplace|@category_food": "3Mercado", "amenity-money_transfer": "Transferencia de dinero", "shop-clothes|@category_shopping|@shop": "Tienda de ropa|3ropa", "shop-caravan|@category_rv|@shop": "Venta de caravanas|Venta de autocaravanas|Venta de motorhomes", "shop-car|@shop": "Venta de coches|Venta de autos|Automotora|Automotores|5Concesionaria|Concesionario|Carros|Coches|Automóviles|Autos", "shop-bicycle|@shop": "Tienda de bicicletas|Tienda de bicis|bicicleta|4Bicicletas|Bicis|Ciclismo", -"shop-kiosk": "4Quiosco|4kiosko|kiosco", -"highway-bus_stop|@category_transport": "Parada de autobús|Parada|Autobús|Bus", -"railway-tram_stop|@category_transport": "Parada de tranvía|Parada|Tranvía", -"amenity-bus_station|@category_transport": "3Estación de autobuses|Estación de ómnibus|Estación de micros|Estación de colectivos|Autobús|Bus|Terminal de buses|Terminal de autobuses", -"railway-station|railway-halt|building-train_station|@category_transport": "Estación de tren|3tren|3Estación de trenes|trenes", -"railway-station-funicular": "Funicular", -"railway-station-subway|@category_transport": "3Metro|3Subte|Subterráneo", -"amenity-ferry_terminal|@category_transport": "3Transbordador|terminal|ferry|terminal de ferry|puerto de ferry", -"amenity-taxi|@category_transport": "3Taxi", +"shop-kiosk": "4Quiosco|4Kiosko|kiosco", +"highway-bus_stop|@category_transport": "4Parada de autobús|Parada|Autobús|Bus|omnibus|omni|bondi|colectivo", +"railway-tram_stop|@category_transport": "4Parada de tranvía|Parada|Tranvía", +"amenity-bus_station|@category_transport": "3Estación de autobuses|Estación de ómnibus|Estación de micros|Estación de colectivos|Autobús|bus|Terminal de buses|Terminal de autobusesAutobús|omnibus|omni|bondi|colectivo", +"railway-station|railway-halt|building-train_station|@category_transport": "3Estación de tren|3tren|3Estación de trenes|trenes", +"railway-station-funicular": "4Funicular", +"railway-station-subway|@category_transport": "3Metro|3Subte|Subterráneo|3Estación de metro", +"amenity-ferry_terminal|@category_transport": "3Transbordador|terminal|ferry|4Terminal de ferry|puerto de ferry", +"amenity-taxi|@category_transport": "3Taxi|parada de taxi|Estación de taxis|estación de taxi|parada de taxis|taxis", "amenity-townhall": "3Ayuntamiento|Municipio", -"tourism-attraction|@category_tourism": "3Atracción turística|3turismo", +"tourism-attraction|@category_tourism": "3Atracción turística", "tourism-artwork": "3Obras de arte|Obra de arte", -"tourism-viewpoint|@category_tourism": "3Vista panorámica|Mirador", +"tourism-viewpoint|@category_tourism": "3Vista panorámica|4Mirador", "tourism-information": "4Información turística|Información", "amenity-place_of_worship": "4Lugar de culto|templo", -"amenity-place_of_worship-christian": "3Iglesia|templo|lugar de culto|basílica|catedral", -"amenity-place_of_worship-muslim": "4Mezquita|templo|lugar de culto", -"amenity-place_of_worship-buddhist": "Templo|lugar de culto", -"amenity-place_of_worship-hindu": "Templo|lugar de culto", -"amenity-place_of_worship-shinto": "Ermita|templo|lugar de culto", -"amenity-place_of_worship-jewish": "4Sinagoga|templo|lugar de culto", -"amenity-place_of_worship-taoist": "Templo|lugar de culto", +"amenity-place_of_worship-christian": "3Iglesia|templo|lugar de culto|basílica|catedral|Templo cristiano|cristianismo", +"amenity-place_of_worship-muslim": "4Mezquita|templo|lugar de culto|Templo musulmán|islam", +"amenity-place_of_worship-buddhist": "4Templo budista|templo|lugar de culto|budismo", +"amenity-place_of_worship-hindu": "4Templo hindú|templo|lugar de culto|hinduismo", +"amenity-place_of_worship-shinto": "4Templo shinto|Ermita|templo|lugar de culto|shinto", +"amenity-place_of_worship-jewish": "4Sinagoga|templo judío|templo|lugar de culto", +"amenity-place_of_worship-taoist": "4Templo taoista|templo|lugar de culto|taoismo", "tourism-museum|@category_tourism": "2Museo", "waterway-waterfall|@category_tourism": "3Cascada|Catarata|Salto de agua", -"historic-archaeological_site|@category_tourism": "Yacimiento arqueológico|Sitio arqueológico", +"historic-archaeological_site|@category_tourism": "Yacimiento arqueológico|Sitio arqueológico|arquelogía", "historic-battlefield": "Campo de batalla", "historic-stone": "Piedra histórica", "historic-boundary_stone": "Hito|Hito fronterizo|Mojón", @@ -112,7 +112,7 @@ "historic-ruins|@category_tourism": "3Ruinas", "historic-mine": "Mina histórica", "historic-ship|@category_tourism": "Barco|Navío|Embarcación|Buque", -"historic-wreck": "Naufragio", +"historic-wreck": "Naufragio|barco hundido", "historic-locomotive|@category_tourism": "Locomotora histórica", "historic-tank|@category_tourism": "Tanque histórico", "historic-aircraft|@category_tourism": "Avión histórico", @@ -120,17 +120,17 @@ "man_made-cross": "Cruz", "historic-wayside_cross": "Cruz de término|Cruz de humilladero|Cruz de camino|Crucero|Cruz", "historic-wayside_shrine": "Ermita del humilladero|Ermita|Santuario|Capilla|Altar", -"leisure-dog_park": "Parque para perros|Parque canino|Pipicán|Perros", +"leisure-dog_park": "Parque para perros|Parque canino|Pipicán|perros|zona canina|área para perros", "leisure-dance|@category_entertainment": "4Baile|Escuela de baile|4Danza|Escuela de danza", "leisure-garden": "2Jardín", "leisure-firepit": "3Fogón|Fogata", -"amenity-bench|amenity-bench-backless": "Asiento|3Banco", +"amenity-bench|amenity-bench-backless": "Asiento|3Banco de sentarse", "amenity-bicycle_rental": "3Alquiler de bicicletas|4bicicleta|alquiler|Alquiler de bicis|Bicicletas|Bicis|Ciclismo", "amenity-bicycle_repair_station": "4Reparación de bicicletas|Reparación de bicis|Bicicletas|Bicis", "amenity-car_sharing": "Coche compartido|4carsharing", "amenity-car_rental": "3Coche de alquiler|alquiler|rentadora|alquiladora|3alquiler de coches|alquiler de autos|alquiler de carros", "amenity-motorcycle_rental": "3Alquiler de motos|moto|motos|motocicleta|motocicletas|scooter", -"amenity-cinema|@category_entertainment": "3Cine", +"amenity-cinema|@category_entertainment": "3Cine|películas", "leisure-bowling_alley|@category_entertainment": "Bolera|bowling", "amenity-theatre|@category_entertainment": "3Teatro", "amenity-nightclub|@category_entertainment|@category_nightlife": "3Discoteca|boliche|antro|club nocturno", @@ -140,54 +140,54 @@ "amenity-casino|@category_entertainment|@category_nightlife|@gambling": "Casino", "leisure-adult_gaming_centre|@gambling": "Centro de juegos para adultos", "leisure-amusement_arcade|@category_entertainment": "Arcade|maquinitas|recreativos", -"amenity-fire_station": "Parque de bomberos|Estación de bomberos|cuartel de bomberos|bomberos", +"amenity-fire_station": "Parque de bomberos|Estación de bomberos|cuartel de bomberos|5Bomberos", "amenity-fountain": "4Fuente", "amenity-grave_yard|landuse-cemetery": "5Cementerio|Camposanto", "shop-funeral_directors": "5Funeraria|Servicio fúnebre|Servicio funerario", "@category_hospital": "4Hospital|Sanatorio|Centro de salud|Salud", "amenity-clinic|@category_hospital": "4Clínica|policlínica", -"amenity-doctors|@category_hospital": "Consulta del médico|Clínica|hospital|Consultorio médico", -"amenity-dentist": "4Dentista|Odontólogo|4Odontología", -"healthcare-laboratory": "Laboratorio médico|Laboratorio clínico", +"amenity-doctors|@category_hospital": "Consulta del médico|5Consultorio médico|médico|doctor", +"amenity-dentist": "4Dentista|Odontólogo|4Odontología|dentiatría|dentistería", +"healthcare-laboratory": "Laboratorio médico|5Laboratorio clínico", "healthcare-physiotherapist": "5Fisioterapeuta|Fisioterapia", -"healthcare-alternative": "Medicina alternativa", +"healthcare-alternative": "5Medicina alternativa|medicina holística", "healthcare-audiologist": "Audiología|Audiólogo", -"healthcare-blood_donation": "Donación de sangre|Banco de sangre|Sangre", +"healthcare-blood_donation": "5Donación de sangre|Banco de sangre|Sangre", "healthcare-optometrist": "Optometría|Optometrista", "healthcare-podiatrist": "Podología|Podólogo", "healthcare-psychotherapist": "Psicoterapia|Sicoterapia|Psicoterapeuta|Sicoterapeuta", "healthcare-sample_collection": "Toma de muestras|Recogida de muestras|Recolección de muestras", -"healthcare-speech_therapist": "Logopedia|Logopeda|Fonoaudiólogo|fonoaudiología", -"amenity-hunting_stand": "Puesto de caza", -"amenity-kindergarten": "Guardería|Prescolar|Preescolar|Jardín de infantes|Maternal|Escuela infantil|Kínder", +"healthcare-speech_therapist": "Logopedia|Logopeda|Fonoaudiólogo|fonoaudiología|terapeuta de lenguaje|terapia de lenguaje", +"amenity-hunting_stand": "Puesto de caza|cacería|caza", +"amenity-kindergarten": "4Guardería|Prescolar|Preescolar|Jardín de infantes|Maternal|Escuela infantil|Kínder", "amenity-library": "3Biblioteca", "@category_pharmacy": "3Farmacia", "amenity-pharmacy|@category_pharmacy": "3Farmacia|Droguería", "@category_post": "4Correos|Correo", "amenity-post_box|@category_post": "3Buzón de correos", "amenity-post_office|post_office-post_partner|@category_post": "4Oficina de correos", -"amenity-vehicle_inspection": "Inspección de vehículos|inspección vehicular", +"amenity-vehicle_inspection": "Inspección de vehículos|inspección vehicular|ITV", "amenity-waste_disposal": "Basura|Basurero|Cubo de basura|Contenedor de basura", -"amenity-recycling-centre|@category_recycling": "Centro de reciclaje|punto limpio|punto verde", +"amenity-recycling-centre|@category_recycling": "Centro de reciclaje|punto limpio|punto verde|5Punto de reciclaje|ecoparque", "amenity-recycling-container|amenity-recycling|@category_recycling": "Contenedor de reciclaje", -"recycling-batteries|@category_recycling": "Baterías|Pilas|Reciclaje de baterías|Reciclaje de pilas", -"recycling-clothes|@category_recycling": "Reciclaje de ropa|Reciclaje textil", -"recycling-glass_bottles|@category_recycling": "Cascos de botellas|Reciclaje de vidrio|Vidrio", -"recycling-paper|@category_recycling": "Desperdicio de papel|Papel de desecho|Papel", -"recycling-plastic|@category_recycling": "Residuos de plástico|Residuos plásticos|Plástico", -"recycling-plastic_bottles|@category_recycling": "Botellas de plástico|Botellas", -"recycling-scrap_metal|@category_recycling": "Residuos de metal|Chatarra", -"recycling-small_appliances|@category_recycling": "Residuos electrónicos|Chatarra electrónica|Reciclaje de dispositivos electrónicos", -"recycling-cardboard|@category_recycling": "Cartón|Cartones|Reciclaje de cartón", -"recycling-cans|@category_recycling": "Latas de aluminio|Latas|Reciclaje de latas", +"recycling-batteries|@category_recycling": "Baterías|Pilas|Reciclaje de baterías|10Reciclaje de pilas", +"recycling-clothes|@category_recycling": "10Reciclaje de ropa|Reciclaje textil", +"recycling-glass_bottles|@category_recycling": "Cascos de botellas|10Reciclaje de vidrio|Vidrio", +"recycling-paper|@category_recycling": "10Reciclaje de papel|Desperdicio de papel|Papel de desecho|Papel|", +"recycling-plastic|@category_recycling": "10Reciclaje de plástico|Residuos de plástico|Residuos plásticos|Plástico", +"recycling-plastic_bottles|@category_recycling": "Botellas de plástico|Botellas|Reciclaje de botellas de plástico", +"recycling-scrap_metal|@category_recycling": "Residuos de metal|Chatarra|10Reciclaje de metal", +"recycling-small_appliances|@category_recycling": "Residuos electrónicos|Chatarra electrónica|10Reciclaje de electrónica|Reciclaje de dispositivos electrónicos", +"recycling-cardboard|@category_recycling": "Cartón|Cartones|10Reciclaje de cartón|cartón", +"recycling-cans|@category_recycling": "Latas de aluminio|Latas|10Reciclaje de latas|latas", "recycling-shoes|@category_recycling": "Reciclaje de zapatos", -"recycling-green_waste|@category_recycling": "Reciclaje de residuos orgánicos|Reciclaje de residuos vegetales|Orgánico", -"recycling-cartons|@category_recycling": "Reciclaje de envases de bebidas|Reciclaje de tetrapack", +"recycling-green_waste|@category_recycling": "10Reciclaje de residuos orgánicos|Reciclaje de residuos vegetales|Orgánico", +"recycling-cartons|@category_recycling": "10Reciclaje de envases|Reciclaje de envases de bebidas|Reciclaje de tetrapack|Envases", "amenity-sanitary_dump_station|@category_rv": "4Desagüe|Estación de vaciado para caravanas|Estación de desagüe para caravanas", "amenity-school": "3Escuela|colegio|liceo|4Instituto|Academia|Plantel", -"amenity-shelter": "Refugio", -"amenity-shelter-basic_hut": "Cabaña de Vivac", -"amenity-shelter-lean_to": "Alpende|Cobertizo|Refugio", +"amenity-shelter": "4Refugio|resguardo", +"amenity-shelter-basic_hut": "4Cabaña de Vivac|vivac|cabaña", +"amenity-shelter-lean_to": "Alpende|Cobertizo|4Refugio de alpende|resguardo", "amenity-stripclub": "Club de striptease|Club de estriptis|Striptease|Estriptis", "amenity-telephone": "3Teléfono|teléfono público|cabina telefónica", "@category_toilet": "Baño|Aseo|Lavabo|Servicio|4Sanitarios|3Baños|3Aseos|3Servicios|3Lavabos|Inodoro|WC", @@ -202,8 +202,8 @@ "place-region": "Región", "place-island|place-islet": "Isla|islote", "place-suburb|place-quarter|place-neighbourhood|landuse-residential": "Barrio|Vecindario|Urbanización", -"place-hamlet": "Aldea", -"place-village": "Pueblo", +"place-hamlet": "Aldea|civilización", +"place-village": "Pueblo|civilización", "place-locality": "Localidad|Paraje", "place-farm": "Granja|Chacra|Estancia", "highway-raceway": "Circuito|Pista", @@ -211,19 +211,19 @@ "highway-pedestrian|highway-primary|highway-primary_link|highway-residential|highway-secondary|highway-secondary_link|highway-tertiary|highway-tertiary_link|highway-service|highway-road|highway-track|highway-trunk|highway-trunk_link|highway-living_street|highway-unclassified|highway-motorway_link|highway-motorway|highway-cycleway": "Calle|Avenida", "highway-motorway_junction": "Salida|3intersección", "highway-elevator": "Ascensor|Elevador", -"@mountain": "Cima|pico|montaña|monte|cerro", +"@mountain": "montaña|monte|cerro", "natural-peak|@mountain": "Cima|Pico|Cumbre", -"natural-saddle|mountain_pass": "Collado|Paso de montaña|Puerto de montaña", +"natural-saddle|mountain_pass": "4Collado|4Paso de montaña|Puerto de montaña", "natural-strait": "Estrecho", "landuse-forest": "Bosque", "leisure-park": "4Parque", -"tourism-aquarium|@category_tourism": "Acuario", +"tourism-aquarium|@category_tourism": "4Acuario", "tourism-hostel|@category_hotel": "3Albergue juvenil|hostal|hostel|hospedaje", "tourism-hotel|@category_hotel": "Hotel", "tourism-guest_house|@category_hotel": "Casa de huéspedes|posada|albergue|hospedaje|pensión", "tourism-motel|@category_hotel": "3Motel", "tourism-alpine_hut|@category_hotel": "4Cabaña|cabaña alpina|hotel de montaña", -"shop-hairdresser": "4Peluquería", +"shop-hairdresser": "4Peluquería|4Barbería|estilista|peluquero|peluquera", "aeroway-aerodrome": "3Aeropuerto|3avión|aeródromo", "leisure-stadium": "5Estadio", "leisure-playground|@category_children": "Patio de recreo|4Parque infantil|Corral|Corralito", @@ -231,7 +231,7 @@ "leisure-golf_course": "Campo de golf|Golf", "leisure-miniature_golf": "5Minigolf|Mini golf", "leisure-escape_game": "Escape room|Sala de escape|Cuarto de escape", -"leisure-hackerspace": "Espacio hacker|Espacio para hackers|Hacklab|Hackerspace", +"leisure-hackerspace": "Espacio hacker|Espacio para hackers|Hacklab|Hackerspace|Espacio creativo", "leisure-pitch": "pista|deporte|cancha|campo", "leisure-swimming_pool": "4Piscina|deporte|pileta|natación", "sport-american_football": "Fútbol americano", @@ -279,35 +279,35 @@ "waterway-river|waterway-stream|natural-water-river": "Río|Riachuelo|Arroyo|Quebrada", "waterway-canal": "Canal", "shop-car_repair": "4Taller|4reparación de automóviles|coche|automóvil|auto|carro", -"tourism-camp_site|@category_hotel": "4Cámping|Campamento|acampar|acampada", -"tourism-caravan_site|@category_rv||@category_hotel": "Zona de caravanas|Caravana|Camper|Autocaravana", +"tourism-camp_site|@category_hotel": "4Cámping|5Campamento|acampar|acampada|lugar de acampada|lugar de acampar", +"tourism-caravan_site|@category_rv||@category_hotel": "Zona de caravanas|Caravana|Camper|Autocaravana|parque de caravanas", "office": "Oficina", "office-company": "Oficina", "office-government": "Oficina gubernamental", -"office-lawyer": "Despacho de abogados|bufete|Estudio|Escritorio|abogado", +"office-lawyer": "Despacho de abogados|bufete|Estudio|Escritorio|abogado|abogacía", "office-telecommunication": "Operadora de telefonía móvil|Telefónica|Operadora de telefonía", "craft-beekeeper": "Apicultor", "craft-blacksmith": "Herrero", -"craft-brewery": "Fábrica de cerveza|6cervecera|cervecería", -"craft-caterer": "Catering", +"craft-brewery": "Fábrica de cerveza|6cervecera|cervecería|cerveza", +"craft-caterer": "Catering|servicio de comida|servicio de cocina", "craft-carpenter": "Carpintero|4Carpintería", "craft-confectionery": "4Confitería|4Pastelería|4Dulcería", "craft-electrician": "4Electricista", -"craft-electronics_repair": "Reparación de aparatos electrónicos", -"craft-gardener": "Paisajista|Jardinero|Jardinería", +"craft-electronics_repair": "10Reparación de aparatos electrónicos", +"craft-gardener": "Paisajista|Jardinero|5Jardinería", "craft-grinding_mill": "Molino", "craft-handicraft": "Artesanía", -"craft-hvac": "Aire acondicionado|Climatización", +"craft-hvac": "Aire acondicionado|5Climatización", "craft-metal_construction": "Trabajador del metal|Metalurgia", -"craft-key_cutter": "Copista de llaves|Copia de llaves|Llaves", -"craft-locksmith": "Cerrajero", +"craft-key_cutter": "Copista de llaves|5copia de llaves|Llaves", +"craft-locksmith": "Cerrajero|4Cerrajería", "craft-painter": "Pintor", -"craft-photographer": "4Fotógrafo|estudio de fotografía", -"craft-plumber": "Fontanero|Plomero|Sanitario", -"craft-sawmill": "Serrería|Aserradero", +"craft-photographer": "4Fotógrafo|Fotógrafa|estudio de fotografía", +"craft-plumber": "4Fontanería|4Plomería|Fontanero|Plomero|Sanitario", +"craft-sawmill": "5Serrería|5Aserradero", "craft-shoemaker": "5Zapatero|zapatería|reparación de calzado", -"craft-winery": "4Bodega|Vino", -"craft-tailor": "Sastre|sastrería", +"craft-winery": "4Bodega de vino|Vino", +"craft-tailor": "Sastre|4Sastrería|entalles|arreglo de ropa|arreglos de ropa", "area:highway-footway|area:highway-pedestrian|area:highway-steps|place-square": "Plaza", "place-sea": "Mar", "place-ocean": "Océano", @@ -324,35 +324,35 @@ "shop-copyshop": "4Copistería|4imprenta|Centro de copiado|Centro de fotocopiado|Fotocopiadora|Copias", "shop-photo|@shop": "Artículos de fotografía|5Fotografía", "shop-camera|@shop": "Tienda de cámaras|cámaras", -"shop-travel_agency": "Agencia de viajes|viajes", -"shop-outdoor|@shop": "Equipo de montaña|senderismo|escalada|acampada", -"shop-dry_cleaning": "Tintorería", +"shop-travel_agency": "7Agencia de viajes|viajes", +"shop-outdoor|@shop": "Equipo de montaña|Artículos de montaña|Tienda de deportes al aire libre|tienda de outdoor", +"shop-dry_cleaning": "5Tintorería", "shop-tyres|@shop": "Tienda de neumáticos|neumáticos|cauchos|llantas|gomas|cauchera", "amenity-car_wash": "5Lavado de coches|5autolavado", "amenity-veterinary": "Clínica veterinaria|veterinaria|veterinario", -"amenity-animal_shelter": "Refugio de animales", -"@charging_station": "Estación de carga|punto de carga|punto de recarga|Cargador", +"amenity-animal_shelter": "Refugio de animales|rescate de animales", +"@charging_station": "Estación de carga|punto de carga|punto de recarga|Cargador|recargar|cargar", "amenity-charging_station-bicycle|@charging_station": "4Carga de bicicletas|Carga de bicis|Bicicletas|Bicis", -"amenity-childcare": "Guardería", +"amenity-childcare": "4Guardería|Maternal|Cuidado infantil", "amenity-bicycle_parking": "5Aparcamiento de bicicletas|5Estacionamiento de bicicletas|4Parking de bicicletas|Aparcamiento de bicis|Estacionamiento de bicis|Parking de bicis|4bicicleta", "amenity-waste_basket": "3Papelera|Cubo de basura", "emergency-phone": "3Teléfono de emergencia", "leisure-fitness_centre": "Centro de fitness|gimnasio|gym", "leisure-sauna": "3Sauna", -"shop-car_repair-tyres|shop-car_repair": "Reparación de neumáticos|Gomería|Vulcanizadora|Cauchera", -"shop-chemist|@shop": "4Droguería|Parafamacia", -"shop-pet|@shop": "Tienda de mascotas", -"tourism-zoo|@category_tourism|@category_children": "Zoo", +"shop-car_repair-tyres|shop-car_repair": "Reparación de neumáticos|4Gomería|4Vulcanizadora|4Cauchera", +"shop-chemist|@shop": "4Droguería|4Parafamacia", +"shop-pet|@shop": "Tienda de mascotas|mascotas", +"tourism-zoo|@category_tourism|@category_children": "Zoo|3Zoológico", "attraction-animal": "Recinto de animales", -"tourism-information-office|amenity-ranger_station|@category_tourism": "Oficina de turismo", -"tourism-information-visitor_centre|amenity-ranger_station|@category_tourism": "Centro de visitantes", -"amenity-community_centre": "Centro comunitario", +"tourism-information-office|amenity-ranger_station|@category_tourism": "Oficina de turismo|4Información de turismo|guardaparques|guardabosques", +"tourism-information-visitor_centre|amenity-ranger_station|@category_tourism": "Centro de visitantes|4Información al visitante", +"amenity-community_centre": "5Centro comunitario", "amenity-compressed_air": "3Aire comprimido|Compresor|Hinchador|Inflador|4Bomba de aire", -"amenity-courthouse": "Juzgado", -"amenity-vending_machine-cigarettes": "Máquina expendedora de tabaco|Máquina expendedora|Expendedora", -"amenity-vending_machine-coffee": "Máquina expendedora de café|Café|Máquina expendedora|Expendedora", -"amenity-vending_machine-condoms": "Máquina expendedora de condones|Condones|Máquina expendedora|Expendedora", -"amenity-vending_machine-drinks": "Máquina expendedora de bebidas|Expendedora de bebidas|Máquina expendedora|Expendedora", +"amenity-courthouse": "Juzgado|Corte", +"amenity-vending_machine-cigarettes": "Máquina expendedora de tabaco|Máquina expendedora|Expendedora|tabaco|cigarro|cigarros|cigarrillo|cigarrillos", +"amenity-vending_machine-coffee": "Máquina expendedora de café|Café|Máquina expendedora|Expendedora|cafeína", +"amenity-vending_machine-condoms": "Máquina expendedora de condones|6Condones|Máquina expendedora|Expendedora", +"amenity-vending_machine-drinks": "Máquina expendedora de bebidas|Expendedora de bebidas|Máquina expendedora|Expendedora|bebidas|hidratación", "amenity-vending_machine-food|@category_food": "Máquina expendedora de comida|Comida|Snacks|Máquina expendedora|Expendedora", "amenity-vending_machine-parking_tickets|@category_parking": "4Máquina de pago de aparcamiento|4Tique de aparcamiento|Tique de estacionamiento|Ticket de aparcamiento|Ticket de estacionamiento|Máquina de pago de tique de aparcamiento|5Parquímetro", "amenity-vending_machine-public_transport_tickets|@category_transport": "Máquina expendedora de boletos para el transporte público|Máquina expendedora de billetes para el transporte público|Máquina expendedora de tickets para el transporte público|Máquina expendedora|Expendedora", @@ -363,7 +363,7 @@ "shop-outpost": "Recogida de paquetes|Punto de recogida|Paquetes|Paquetería", "amenity-vending_machine-fuel|@category_fuel": "Surtidor|Surtidor de combustible|Surtidor de gasolina", "building-garage": "4Garaje", -"highway-rest_area|highway-services": "Área de descanso|Área de servicio", +"highway-rest_area|highway-services": "4Área de descanso|Área de servicio|Parada de descanso", "man_made-chimney": "Chimenea de fábrica", "man_made-crane": "Grúa", "man_made-tower|man_made-flare": "Torre", @@ -372,100 +372,100 @@ "shop-charity|@shop|@category_secondhand": "Tienda de caridad", "shop-ticket": "Venta de entradas|Venta de tickets|Venta de tiques|ticket|tickets|tiquet|tiquets|boleto|boletos|tiquete|tiquetes|billete|billetes", "shop-wine|@category_food|@shop": "Tienda de vinos|Vino|Vinos|Vinería|Vinoteca", -"shop-car_parts|@shop": "Piezas de automóvil|Autopartes|Recambios|Repuestos", -"tourism-chalet|@category_hotel": "Casa de vacaciones|Casa rural|Chalet", -"tourism-information-board": "Tablón de información|Tablón informativo|Panel de información|Panel informativo", +"shop-car_parts|@shop": "Piezas de automóvil|5Autopartes|5Recambios|5Repuestos", +"tourism-chalet|@category_hotel": "Casa de vacaciones|5Casa rural|Chalet", +"tourism-information-board": "Tablón de información|Tablón informativo|Panel de información|Panel informativo|panel|tablón|cartel|cartelera", "tourism-information-map": "Mapa turístico|Mapa", -"aerialway-station": "Estación de teleférico|Teleférico", +"aerialway-station": "Estación de teleférico|4Teleférico", "aeroway-helipad": "Helipuerto", "barrier-border_control": "Control de fronteras", -"leisure-water_park|@category_tourism|@category_children": "Parque acuático", +"leisure-water_park|@category_tourism|@category_children": "Parque acuático|acuaparque", "man_made-water_tower": "Depósito de agua|Torre de agua", "man_made-windmill": "Molino", "natural-cave_entrance": "Cueva|4Caverna|3Gruta", "natural-volcano|@mountain": "4Volcán", -"office-estate_agent": "Agente inmobiliario|Inmobiliaria", +"office-estate_agent": "Agente inmobiliario|4Inmobiliaria", "waterway-lock_gate": "Compuerta", "amenity-public_bookcase": "Intercambio de libros|biblioteca libre|punto de intercambio|libros", "sport-climbing": "Centro de escalada|3Rocódromo|Escalar|Escalada|Gimnasio de escalada", "sport-yoga": "3Yoga|Centro de yoga|Estudio de yoga|Sala de yoga", "tourism-apartment|@category_hotel": "5Apartamentos|Apartamento de vacaciones|Piso vacacional|Piso turístico", "leisure-resort|@category_hotel": "Resort|Complejo turístico|Complejo hotelero", -"amenity-biergarten|@category_eat|@category_nightlife": "5Biergarten", -"amenity-driving_school": "4Autoescuela", +"amenity-biergarten|@category_eat|@category_nightlife": "5Biergarten|jardín de cerveza|jardín de la cerveza|cerveza", +"amenity-driving_school": "4Autoescuela|auto escuela|escuela de conducción|escuela de manejo", "amenity-music_school": "Escuela de música|música", "amenity-language_school": "Escuela de idiomas|idiomas", "amenity-ice_cream": "5Heladería|Helados", "amenity-internet_cafe": "5Cibercafé|2cyber|café internet|ciber", "amenity-motorcycle_parking": "5Aparcamiento de motocicletas|5Estacionamiento de motocicletas|4Parking de motocicletas|Aparcamiento de motos|Estacionamiento de motos|Parking de motos", -"amenity-parking_space-disabled|@category_parking": "Plaza de aparcamiento para discapacitados|Plaza de estacionamiento para discapacitados|Plaza de parking para discapacitados", +"amenity-parking_space-disabled|@category_parking": "Plaza de aparcamiento para discapacitados|Plaza de estacionamiento para discapacitados|Plaza de parking para discapacitados|accesible|discapacitados", "amenity-nursing_home": "5Residencia de ancianos", -"amenity-payment_terminal": "Terminal de pago", +"amenity-payment_terminal": "Terminal de pago|pago de servicios|facutas|servicio de pago", "amenity-public_bath": "Baños públicos|baños comunitarios", -"amenity-shower": "Ducha", +"amenity-shower": "3Ducha|duchas|4Regadera|regaderas", "emergency-assembly_point": "Punto de reunión de emergencia|reunión de emergencia|emergencia", -"emergency-defibrillator": "4Desfibrilador|defibrilador|socorro|primeros auxilios|auxilio|electroshock|emergencia", +"emergency-defibrillator": "4Desfibrilador|defibrilador|socorro|primeros auxilios|auxilio|electroshock|schock|reanimar|reanimación|paro cardíaco|infarto|emergencia", "emergency-fire_hydrant": "Boca de incendio|Hidrante", "emergency-lifeguard": "Socorrista|Salvavidas", -"emergency-mountain_rescue": "Puesto de rescate de montaña|Búsqueda y rescate|Rescate", +"emergency-mountain_rescue": "Puesto de rescate de montaña|Búsqueda y rescate|Rescate|rescatista|rescatistas", "leisure-fitness_station": "Aparatos de gimnasia|Aparatos de ejercicio|Estación de ejercicios|Gimnasio exterior|Calistenia|Ejercicio", "office-insurance": "Oficina de seguros|Corredor de seguros|Aseguradora", "office-ngo": "Sede de ONG|Organización no gubernamental|ONG", "shop-erotic|@shop": "3Sex Shop|Boutique erótica|Tienda erótica", -"shop-massage": "Salón de masajes|Masaje|Masajes", +"shop-massage": "Salón de masajes|Masaje|4masajes", "shop-motorcycle|@shop": "Tienda de motos|motocicletas|motos|scooter", "shop-motorcycle_repair": "Reparación de motos|Taller de motos|motos|motocicletas|mototaller", -"shop-newsagent": "Puesto de venta de periódicos|4Periódicos|Periódico", -"shop-pawnbroker": "Casa de empeños|Prestamista", +"shop-newsagent": "Puesto de venta de periódicos|4Periódicos|Periódico|Diario|diarios|prensa", +"shop-pawnbroker": "Casa de empeños|Prestamista|préstamo|préstamos|empeño|empeños", "shop-stationery|@shop": "3Papelería|4Suministros de oficina|4Útiles escolares", -"shop-tattoo": "4Tatuajes|Tattoo|Tattoos", +"shop-tattoo": "4Tatuajes|tatuaje|Tattoo|Tattoos", "shop-variety_store|@category_shopping|@shop": "Todo a cien|Chino|Todo a cinco mil|Todo por dos pesos|Todo a dólar|Dolarazo|Cincuentazo|Bazar|Tienda de variedades|Misceláneo|Misceláneos|Variedades", -"shop-video|@shop": "5Videoclub", -"shop-video_games|@shop": "Tienda de videojuegos|Videojuegos|Gaming", -"tourism-wilderness_hut|@category_hotel": "4Cabaña", +"shop-video|@shop": "5Videoclub|video club", +"shop-video_games|@shop": "Tienda de videojuegos|5Videojuegos|Gaming", +"tourism-wilderness_hut|@category_hotel": "4Cabaña|4Refugio de montaña|Refugio", "tourism-gallery|@category_tourism": "3Galería de arte|museo|Galería", "tourism-theme_park|@category_tourism|@category_children": "Parque de atracciones|Parque temático|Atracciones", -"boundary-national_park|@category_tourism": "Parque nacional", -"leisure-nature_reserve|@category_tourism": "Territorio reservado|Reserva natural", +"boundary-national_park|@category_tourism": "7Parque nacional|naturaleza", +"leisure-nature_reserve|@category_tourism": "Territorio reservado|5Reserva natural|naturaleza", "natural-cape": "Cabo|Punta", "natural-geyser": "3Géiser", "natural-glacier|@category_tourism": "Glaciar", -"highway-ford": "Vado|3Cruce|3Paso", -"leisure-marina": "Puerto deportivo|3Marina|3Puerto|Amarradero", +"highway-ford": "Vado|3Cruce de río|3Paso", +"leisure-marina": "Puerto deportivo|3Marina|3Puerto|Amarradero|Embarcadero|Muelle", "piste:type-downhill|piste:type-nordic": "4Esquí|Ski|Pista de esquí|Esquí nórdico", "amenity-events_venue": "Lugar de eventos|Centro de eventos", -"shop-chocolate|@category_food|@shop": "Tienda de chocolate|Chocolatería|Chocolate", +"shop-chocolate|@category_food|@shop": "Tienda de chocolate|Chocolatería|chocolate|chocolates|cacao", "shop-coffee|@category_food|@shop": "Café|Tienda de café", -"shop-fabric|@shop": "Tienda textil|3Mercería|Textil|Tela|Telas", -"shop-money_lender": "Entidad de crédito|Entidad de préstamo|4Prestamista|Préstamo|Préstamos|Crédito|Empeños", +"shop-fabric|@shop": "Tienda textil|3Mercería|textil|tela|telas", +"shop-money_lender": "Entidad de crédito|Entidad de préstamo|4Prestamista|Préstamo|Préstamos|Crédito", "shop-music|@shop": "Tienda de música|Disquería|Tienda de discos|Discos|Música", "shop-musical_instrument|@shop": "4Instrumentos musicales|Tienda de instrumentos musicales", "shop-tea|@shop": "Tienda de té|Casa de té|Tetería", -"shop-antiques|@category_shopping|@shop|@category_secondhand": "Antigüedades", +"shop-antiques|@category_shopping|@shop|@category_secondhand": "4Anticuario|antigüedades", "shop-art|@category_shopping|@shop": "Tienda de arte", "shop-baby_goods|@category_children|@shop": "Tienda de niños|Tienda de bebés", "shop-bag|@category_shopping|@shop": "Tienda de bolsos|Bolsos", -"shop-cheese|@category_food|@shop": "Tienda de queso|Quesería|Quesos", +"shop-cheese|@category_food|@shop": "Tienda de queso|Quesería|queso|quesos", "shop-dairy|@category_food|@shop": "Productos lácteos", -"shop-electrical|@shop": "Tienda de electricidad", +"shop-electrical|@shop": "Tienda de electricidad|aparatos eléctricos|electrodomésticos", "shop-fishing|@shop": "Tienda de pesca|Pesca", "shop-interior_decoration|@shop": "Decoración de interiores", "shop-lighting|@shop": "Tienda de iluminación|5Iluminación|5Lámparas", -"shop-lottery|@gambling": "Boletos de lotería|Lotería", +"shop-lottery|@gambling": "Boletos de lotería|Lotería|billetes de lotería", "shop-medical_supply|@shop": "Suministros médicos", "shop-nutrition_supplements|@shop": "Suplementos nutricionales|Suplementos", "shop-paint|@shop": "Pintura|Pinturas|Pinturería|Tienda de pintura", "shop-perfumery|@category_shopping|@shop": "Perfumería|Tienda de perfumes|Perfumes|Colonias", "shop-sewing|@shop": "Materiales de costura|3Mercería|Costura", -"shop-storage_rental": "Alquiler de almacenamiento", -"shop-tobacco|@shop": "Tabaco|Tienda de tabaco|Cigarro|Cigarros|Cigarrillo|Cigarrillos", +"shop-storage_rental": "8Alquiler de almacenamiento", +"shop-tobacco|@shop": "4Tabaquería|5Estanco|Expendeduría|tabaco|Tienda de tabaco|Cigarro|Cigarros|Cigarrillo|Cigarrillos", "shop-trade|@shop": "Suministros comerciales", -"shop-watches|@category_shopping|@shop": "Relojes|Tienda de relojes|Relojería", -"shop-wholesale|@shop": "Venta al por mayor|Mayorista", +"shop-watches|@category_shopping|@shop": "Relojes|Tienda de relojes|5Relojería|Reloj", +"shop-wholesale|@shop": "Venta al por mayor|Mayorista|venta al mayor", "leisure-track": "Pista deportiva", "power-plant": "Central eléctrica", -"shop-auction|@category_secondhand": "Subasta|Remate", -"shop-collector|@category_shopping|@category_secondhand": "Colector|Coleccionables|Coleccionista", +"shop-auction|@category_secondhand": "Subasta|Remate|subastas", +"shop-collector|@category_shopping|@category_secondhand": "Colector|Coleccionables|Coleccionista|coleccionismo", "man_made-cairn": "Hito|Mojón|Montículo|Cairn", "wheelchair-yes": "Silla de ruedas|accesible|discapacitados", "amenity-social_facility": "Servicio social", @@ -476,14 +476,14 @@ "shop-bathroom_furnishing|@shop": "Equipamiento de baño|Muebles de baño", "shop-bed|@shop": "Tienda de camas|camas|colchón|colchones", "shop-boutique|@shop": "Boutique", -"amenity-food_court": "Zona de comida|Zona de resturantes|Feria de comida", +"amenity-food_court": "Zona de comida|Zona de restaurantes|5Feria de comida|Patio de comidas|Plazoleta de comidas|Área de comidas", "shop-curtain|@shop": "Cortinas|Tienda de cortinas", -"shop-gas|@shop": "Tienda de gas|Venta de gas|Gas|Gas doméstico|Botella de gas|Botellas de gas|Bombona de gas|Bombona de gas|Bombona|Bombona", +"shop-gas|@shop": "Tienda de gas|Venta de gas|Gas|Gas doméstico|Botella de gas|Botellas de gas|Bombona de gas|Bombona de gas|Bombona|Bombona|Butano|Propano|Gas de cocina", "shop-pet_grooming": "Peluquería canina|Peluquería de mascotas", -"shop-hifi|@shop": "Audio de alta fidelidad", +"shop-hifi|@shop": "Audio de alta fidelidad|alta fidelidad|sonido|tienda de sonido|equipos de sonido", "amenity-conference_centre": "Centro de conferencias", -"shop-herbalist|@shop": "Herbolario", -"shop-appliance|@shop": "Tienda de electrodomésticos", +"shop-herbalist|@shop": "4Herbolario", +"shop-appliance|@shop": "Tienda de electrodomésticos|electrodomésticos", "shop-agrarian|@shop": "Tienda agrícola", "shop-fashion_accessories|@shop": "4Accesorios de moda|Accesorios", "amenity-waste_transfer_station": "Estación de transferencia de residuos|Residuos", @@ -491,23 +491,23 @@ "shop-craft|@shop": "Artesanía|Manualidades", "shop-pasta|@shop": "Pasta|Pastería", "attraction-amusement_ride|attraction-carousel|attraction-roller_coaster|attraction-maze|attraction-historic|attraction-big_wheel|attraction-bumper_car|@category_children": "Atracción", -"amenity-luggage_locker": "4Consigna|Consigna de equipajes|Guardaequipaje|Casillero|Locker|Lockers|Equipaje", +"amenity-luggage_locker": "4Consigna|Consigna de equipajes|Guardaequipaje|casillero|casilleros|locker|lockers|equipaje", "office-security": "Oficina de seguridad", "building-guardhouse": "Garita|Puesto de guardia|Puesto de vigilancia|Vigilancia", "tourism-picnic_site|amenity-bbq|leisure-picnic_table": "3Pícnic|4Barbacoa|BBQ|Parrilla|Parrillera|Asador|Mesa de pícnic", "sport-9pin": "Bolos", "sport-10pin": "Bolos", -"shop-bookmaker|@gambling": "Corredor de apuestas", -"leisure-fitness_centre-sport-yoga": "Estudio de yoga", -"amenity-mobile_money_agent": "Agencia de efectivo móvil | agente de dinero móvil | agencia de dinero móvil | agente de efectivo móvil", +"shop-bookmaker|@gambling": "Corredor de apuestas|apuestas", +"leisure-fitness_centre-sport-yoga": "Estudio de yoga|yoga|sala de yoga", +"amenity-mobile_money_agent": "Agencia de efectivo móvil|agente de dinero móvil|agencia de dinero móvil|agente de efectivo móvil", "amenity-boat_rental": "4aquiler de botes|alquiler de barcos|bote|botes|barco|barcos|barca|barcas|lancha|lanchas|embarcación|embarcaciones|velero|veleros|nagegar|3alquiler", "man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "4Telescopio", "man_made-observatory": "3Observatorio", -"amenity-car_pooling|@category_parking": "Car pooling | Vehículo compartido | Blabla Car", -"amenity-payment_centre": "Centro de pagos", -"leisure-indoor_play": "Parque interior|niños", +"amenity-car_pooling|@category_parking": "Car pooling|Vehículo compartido|blablacar", +"amenity-payment_centre": "7Centro de pagos|pago de sevicios|facturas|servicio de pago", +"leisure-indoor_play|@category_children": "Parque interior|niños", "shop-telecommunication|@shop": "Telecomunicaciones", -"leisure-bandstand": "4Tarima", -"social_facility-soup_kitchen": "4Comedor social | Comedor popular | Comedor comunitario | Comida", -"social_facility-food_bank": "Banco de alimentos | alimento | comida | voluntariado" +"leisure-bandstand": "4Tarima|templete|quiosco de música|kiosco de música|kiosko de música|5Glorieta de música", +"social_facility-soup_kitchen": "4Comedor social|Comedor popular|Comedor comunitario|comida", +"social_facility-food_bank": "Banco de alimentos|alimento|comida|voluntariado" } From e58fe72250b053c778987e474cbb069e89366975 Mon Sep 17 00:00:00 2001 From: Codeberg Translate Date: Tue, 18 Nov 2025 16:17:31 +0000 Subject: [PATCH 04/91] [strings] Update from Codeberg Translate Co-authored-by: Codeberg Translate Co-authored-by: Linus_W_Frische Co-authored-by: Weicat Co-authored-by: prashere Translation: CoMaps/Android - Map Feature Types Translation: CoMaps/Apple AppStore description Translation: CoMaps/F-Droid app description Translation: CoMaps/Google Play and Huawei AppGallery descriptions Translation: CoMaps/iOS - Map Feature Types --- .../src/main/res/values-hu/types_strings.xml | 1 + .../src/main/res/values-ta/types_strings.xml | 21 +++++++++++++++++++ .../hu.lproj/LocalizableTypes.strings | 1 + .../ta.lproj/LocalizableTypes.strings | 20 ++++++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/android/sdk/src/main/res/values-hu/types_strings.xml b/android/sdk/src/main/res/values-hu/types_strings.xml index 6b5e61ff2..05829ae83 100644 --- a/android/sdk/src/main/res/values-hu/types_strings.xml +++ b/android/sdk/src/main/res/values-hu/types_strings.xml @@ -1437,4 +1437,5 @@ Távcső (Rádió) Távcső (Gamma) Csillagvizsgáló + Vészkijárat diff --git a/android/sdk/src/main/res/values-ta/types_strings.xml b/android/sdk/src/main/res/values-ta/types_strings.xml index 10ce169dc..20065d3ec 100644 --- a/android/sdk/src/main/res/values-ta/types_strings.xml +++ b/android/sdk/src/main/res/values-ta/types_strings.xml @@ -13,4 +13,25 @@ சர்வதேச விமான நிலையம் ஹெலிபேட் ஓடுதளம் + முனையம் + கலைக் கூடம் + வங்கி + பார் + பெஞ்ச் + மிதிவண்டி நிறுத்துமிடம் + நிழற்கூட மிதிவண்டி நிறுத்துமிடம் + வாடகை படகு + மிதிவண்டி வாடகை + மிதிவண்டி பழுது நிலையம் + பேருந்து நிலையம் + கஃபே + வாடகை கார் + வாடகை இருசக்கர மோட்டார் வாகனம் + கார் பகிர்வு + கார் கழுவுதல் + தொலைநோக்கி + தொலைநோக்கி (கண்ணாடி) + தொலைநோக்கி (ரேடியோ) + சூதாட்டம் + சார்ஜிங் நிலையம் diff --git a/iphone/Maps/LocalizedStrings/hu.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/hu.lproj/LocalizableTypes.strings index 5a4288fd0..91d2afaaf 100644 --- a/iphone/Maps/LocalizedStrings/hu.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/hu.lproj/LocalizableTypes.strings @@ -1527,3 +1527,4 @@ "type.man_made.telescope.radio" = "Távcső (Rádió)"; "type.man_made.telescope.gamma" = "Távcső (Gamma)"; "type.man_made.observatory" = "Csillagvizsgáló"; +"type.entrance.emergency" = "Vészkijárat"; diff --git a/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings index 55e5bced8..cc510aa86 100644 --- a/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings @@ -3,3 +3,23 @@ "type.aeroway.helipad" = "ஹெலிபேட்"; "type.aeroway.runway" = "ஓடுதளம்"; "type.aeroway.terminal" = "முனையம்"; +"type.amenity.arts_centre" = "கலைக் கூடம்"; +"type.amenity.bank" = "வங்கி"; +"type.amenity.bar" = "பார்"; +"type.amenity.bench" = "பெஞ்ச்"; +"type.amenity.bicycle_parking" = "மிதிவண்டி நிறுத்துமிடம்"; +"type.amenity.bicycle_parking.covered" = "நிழற்கூட மிதிவண்டி நிறுத்துமிடம்"; +"type.amenity.boat_rental" = "வாடகை படகு"; +"type.amenity.bicycle_rental" = "மிதிவண்டி வாடகை"; +"type.amenity.bicycle_repair_station" = "மிதிவண்டி பழுது நிலையம்"; +"type.amenity.bus_station" = "பேருந்து நிலையம்"; +"type.amenity.cafe" = "கஃபே"; +"type.amenity.car_rental" = "வாடகை கார்"; +"type.amenity.motorcycle_rental" = "வாடகை இருசக்கர மோட்டார் வாகனம்"; +"type.amenity.car_sharing" = "கார் பகிர்வு"; +"type.amenity.car_wash" = "கார் கழுவுதல்"; +"type.man_made.telescope" = "தொலைநோக்கி"; +"type.man_made.telescope.optical" = "தொலைநோக்கி (கண்ணாடி)"; +"type.man_made.telescope.radio" = "தொலைநோக்கி (ரேடியோ)"; +"type.amenity.gambling" = "சூதாட்டம்"; +"type.amenity.charging_station" = "சார்ஜிங் நிலையம்"; From 2c526d34e9a5725d04c3e186b14c696538454d1a Mon Sep 17 00:00:00 2001 From: prashere Date: Tue, 18 Nov 2025 16:17:26 +0000 Subject: [PATCH 05/91] Translated using Weblate (Tamil) Currently translated at 2.5% (36 of 1405 strings) Translation: CoMaps/Android - Map Feature Types --- android/sdk/src/main/res/values-ta/types_strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/android/sdk/src/main/res/values-ta/types_strings.xml b/android/sdk/src/main/res/values-ta/types_strings.xml index 20065d3ec..82e5ebe93 100644 --- a/android/sdk/src/main/res/values-ta/types_strings.xml +++ b/android/sdk/src/main/res/values-ta/types_strings.xml @@ -34,4 +34,6 @@ தொலைநோக்கி (ரேடியோ) சூதாட்டம் சார்ஜிங் நிலையம் + மிதிவண்டி சார்ஜிங் நிலையம் + கார் சார்ஜிங் நிலையம் From 6adf01f8ded4cb89af08b3502fa3366dba7f001a Mon Sep 17 00:00:00 2001 From: prashere Date: Tue, 18 Nov 2025 16:17:26 +0000 Subject: [PATCH 06/91] Translated using Weblate (Tamil) Currently translated at 1.9% (27 of 1406 strings) Translation: CoMaps/iOS - Map Feature Types --- iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings index cc510aa86..b52d440c2 100644 --- a/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/ta.lproj/LocalizableTypes.strings @@ -23,3 +23,5 @@ "type.man_made.telescope.radio" = "தொலைநோக்கி (ரேடியோ)"; "type.amenity.gambling" = "சூதாட்டம்"; "type.amenity.charging_station" = "சார்ஜிங் நிலையம்"; +"type.amenity.charging_station.bicycle" = "மிதிவண்டி சார்ஜிங் நிலையம்"; +"type.amenity.charging_station.motorcar" = "கார் சார்ஜிங் நிலையம்"; From 4b66d569786efa404c471819e3b004bb7e7e962f Mon Sep 17 00:00:00 2001 From: Codeberg Translate Date: Wed, 19 Nov 2025 12:35:05 +0000 Subject: [PATCH 07/91] [strings] Update from Codeberg Translate Co-authored-by: Codeberg Translate Translate-URL: https://translate.codeberg.org/projects/comaps/search-synonyms-aliases/ Translation: CoMaps/Search synonyms / aliases --- data/categories-strings/es.json/localize.json | 1 - 1 file changed, 1 deletion(-) diff --git a/data/categories-strings/es.json/localize.json b/data/categories-strings/es.json/localize.json index cd26f3190..8f58067b4 100644 --- a/data/categories-strings/es.json/localize.json +++ b/data/categories-strings/es.json/localize.json @@ -505,7 +505,6 @@ "man_made-observatory": "3Observatorio", "amenity-car_pooling|@category_parking": "Car pooling|Vehículo compartido|blablacar", "amenity-payment_centre": "7Centro de pagos|pago de sevicios|facturas|servicio de pago", -"leisure-indoor_play|@category_children": "Parque interior|niños", "shop-telecommunication|@shop": "Telecomunicaciones", "leisure-bandstand": "4Tarima|templete|quiosco de música|kiosco de música|kiosko de música|5Glorieta de música", "social_facility-soup_kitchen": "4Comedor social|Comedor popular|Comedor comunitario|comida", From a6057af12df7e323b573dbabcb5dbee895212587 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Wed, 19 Nov 2025 12:31:08 +0100 Subject: [PATCH 08/91] [styles] Fix nightclub label color Signed-off-by: Yannik Bloscheck --- data/styles/default/include/Icons_Label_Colors.mapcss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/styles/default/include/Icons_Label_Colors.mapcss b/data/styles/default/include/Icons_Label_Colors.mapcss index 85f7a642a..3f7715e43 100644 --- a/data/styles/default/include/Icons_Label_Colors.mapcss +++ b/data/styles/default/include/Icons_Label_Colors.mapcss @@ -43,7 +43,6 @@ node[amenity=cafe], node[amenity=fast_food], node[amenity=food_court], node[amenity=ice_cream], -node[amenity=nightclub], node[amenity=pub], node[amenity=restaurant], {text-color: @food_label;text-halo-radius: 0.1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;} @@ -52,6 +51,7 @@ node[amenity=casino], node[amenity=cinema], node[amenity=events_venue], node[amenity=gambling], +node[amenity=nightclub], node[amenity=stripclub], node[amenity=theatre], node[leisure=adult_gaming_centre], From 84f7687b982712feaf028bdf02a2b168b882abef Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Wed, 19 Nov 2025 12:45:59 +0100 Subject: [PATCH 09/91] [types] Add name for communication masts Signed-off-by: Yannik Bloscheck --- android/sdk/src/main/res/values-de/types_strings.xml | 4 +++- android/sdk/src/main/res/values/types_strings.xml | 4 +++- .../Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings | 5 ++++- .../LocalizedStrings/en-GB.lproj/LocalizableTypes.strings | 5 ++++- .../Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings | 5 ++++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/android/sdk/src/main/res/values-de/types_strings.xml b/android/sdk/src/main/res/values-de/types_strings.xml index ef5286305..4ab930d7d 100644 --- a/android/sdk/src/main/res/values-de/types_strings.xml +++ b/android/sdk/src/main/res/values-de/types_strings.xml @@ -732,8 +732,10 @@ Turm Funkturm - + Funkturm + + Funkmast Öl- oder Gasbohrung diff --git a/android/sdk/src/main/res/values/types_strings.xml b/android/sdk/src/main/res/values/types_strings.xml index 78a993014..c96f7a6b9 100644 --- a/android/sdk/src/main/res/values/types_strings.xml +++ b/android/sdk/src/main/res/values/types_strings.xml @@ -783,8 +783,10 @@ Tower Communications Tower - + Communications Tower + + Communications Mast Oil or Gas Well diff --git a/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings index 59b3493c2..29f9ea096 100644 --- a/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings @@ -820,9 +820,12 @@ /* A huge telecommunications tower. Often a local monument or a landmark. */ "type.man_made.communications_tower" = "Funkturm"; -/* A regular telecommunications tower / mast. */ +/* A regular telecommunications tower. */ "type.man_made.tower.communication" = "Funkturm"; +/* A regular telecommunications mast. */ +"type.man_made.mast.communication" = "Funkmast"; + /* A deep hole drilled into the earth to extract oil or gas. */ "type.man_made.petroleum_well" = "Öl- oder Gasbohrung"; diff --git a/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings index dbfb7aeb5..c91d6880f 100644 --- a/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings @@ -833,9 +833,12 @@ /* A huge telecommunications tower. Often a local monument or a landmark. */ "type.man_made.communications_tower" = "Communications Tower"; -/* A regular telecommunications tower / mast. */ +/* A regular telecommunications tower. */ "type.man_made.tower.communication" = "Communications Tower"; +/* A regular telecommunications mast. */ +"type.man_made.mast.communication" = "Communications Mast"; + /* A deep hole drilled into the earth to extract oil or gas. */ "type.man_made.petroleum_well" = "Oil or Gas Well"; diff --git a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings index 35bf832b5..4307fa496 100644 --- a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings @@ -864,9 +864,12 @@ /* A huge telecommunications tower. Often a local monument or a landmark. */ "type.man_made.communications_tower" = "Communications Tower"; -/* A regular telecommunications tower / mast. */ +/* A regular telecommunications tower. */ "type.man_made.tower.communication" = "Communications Tower"; +/* A regular telecommunications mast. */ +"type.man_made.mast.communication" = "Communications Mast"; + /* A deep hole drilled into the earth to extract oil or gas. */ "type.man_made.petroleum_well" = "Oil or Gas Well"; From 1df784888806474dd9af97a6de1ce44977d5e094 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Wed, 19 Nov 2025 18:33:15 +0100 Subject: [PATCH 10/91] [docs] Move release process to documentation Signed-off-by: Jean-Baptiste --- docs/RELEASE_MANAGEMENT.md | 118 ++++++++++++++++++++++++++--- docs/{workflows.md => WORFLOWS.md} | 2 + docs/feature_structure.md | 4 +- 3 files changed, 112 insertions(+), 12 deletions(-) rename docs/{workflows.md => WORFLOWS.md} (78%) diff --git a/docs/RELEASE_MANAGEMENT.md b/docs/RELEASE_MANAGEMENT.md index c286510d2..901654ead 100644 --- a/docs/RELEASE_MANAGEMENT.md +++ b/docs/RELEASE_MANAGEMENT.md @@ -1,5 +1,113 @@ # Release Management +## Prepare release + +### A few days before the release +- [ ] start map generation +- [ ] raise release notes PR and ask for translations + +### Shortly before the release day +- [ ] merge a "[planet] Update map data to xxxxxx" PR with new countries.txt +- [ ] merge a meta-php PR with new maps data version +- [ ] make sure new maps files are on all CDN nodes +- [ ] smoke test map data for World and some regions +- [ ] merge (translated) release notes PR + +## Build a release for Android +## Shortly before the release day +- [ ] update GP metadata (descriptions, screenshots..) some days before the release + +### On release day +- [ ] create a release branch release/2025.xx.yy + - add a "[fdroid] Release version 2025.xx.yy-zz" commit + - with a change to android/app/src/fdroid/play/version.yaml + - take the version number from `tools/unix/version.sh` +1 + - e.g. with an added version bump commit it should match script's output +- [ ] tag the new release and push the tag to codeberg + - the tag format is "v2025.08.13-4" (not the old "2025.08.13-4-android"!) + - F-Droid will pickup the new tag (happens once a day) +- [ ] regenerate symbols +- [ ] regenerate drules +- [ ] update the world*.mwm + +- [ ] build Google release bundle (`./gradlew bundleGoogleRelease`) - check the keys are Google upload / test (yes, they're the same at test keys)! +upload to GP and submit for a review + +- [ ] build Codeberg release (`./gradlew -Parm32 -Parm64 assembleWebRelease`, e.g. no x86) - check the keys are prod Codeberg / main! +- [ ] create a Codeberg release from the tag, upload the build, add relnotes +- [ ] Upload the release to Google and submit for review +- [ ] announce the release in TG channel, upload the build + + +## Build a release for iOS + +### Shortly before the release day +- [ ] **Add short iOS release notes to releases document** + - They should consist of the most important things in general, that will be new in this version + - Those will be used for the App Store + - They will be translated in a pull request together with the short Android release notes +- [ ] **Add long iOS release notes to releases document** + - They should consist only of iOS-specific things, that will be new in this version + - Include credits to the persons, who added those new things +- [ ] **Add release with version number in App Store Connect** + - The version number should be the planned release date in `yyyy.MM.dd` format (like _2025.08.30_) +- [ ] **Update metadata in App Store Connect** + - Only include languages for which the App Store metadata has been completely translated + +### On release day +- [ ] **Wait for the Android release to be prepared** +- [ ] **Pull the latest version form the repository** + - The same last commit like for the Android release should be used +- [ ] **Edit versions and build number of the `CoMaps` and `CoMapsWidgetExtension` targets in Xcode** + - Use the same versions and build number of the Android release +- [ ] **Select the build target _Any iOS Device_ in Xcode** +- [ ] **Clean the build folder in Xcode** + - This can be done via _Product_ / _Clean Build Folder..._ in the menubar +- [ ] **Manually regenerate the styles** + - `./tools/unix/generate_styles.sh` +- [ ] **Create the application archive in Xcode** + - This can be done via _Product_ / _Archive_ in the menubar +- [ ] **Upload application to the App Store via the Xcode organizer** + - Choose the freshly created application archive, press `Distribute App`, select `App Store Connect` and follow the steps until the app is successfully uploaded +- [ ] **Adjust the version in App Store Connect, if necessary** + - It should be the same version used in Xcode and for the Android release +- [ ] **Add the short release notes in App Store Connect** + - The translations can be found in a translation pull request specific for that version + - For the languages, which are fully translated for the App Store, but are missing translated release notes, use the English release notes +- [ ] **Add the build to the release in App Store Connect** + - It might take a few minutes for the uploaded build to actually show up +- [ ] **Submit the release to review** + - Don't forget the actual submission step after clicking on _Add for Review_ +- [ ] **Submit the same build to TestFlight review** +- [ ] **Wait for Apple approving the release and TestFlight build** + +### After Apple's release approval +- [ ] **Also release the build on TestFlight** +- [ ] **Notify everybody in the Zulip topic for that release about the App Store availability** + +## Shortly after the release + +### Distribute to the French National library + - [ ] **Build a google apk (with google flavord /web keys and only arm32/64 arches) for French National library** + - [ ] **Upload it to their sftp** + +### Update `json` for [TagInfo](https://taginfo.openstreetmap.org/) +- [ ] **Run script to generate file** + - `python tools/python/generate_taginfo.py` +- [ ] **Raise PR to add updated file** + - `data/taginfo.json` + +### Announcements +- [ ] **Create a banner** +- [ ] **Upload banner to website news** +- [ ] **Announce the release to Telegram** +- [ ] **Create a post in social media** + - Reddit + - Mastodon + - etc. + +# Tools to upload metadata and screenshots on stores + ## Apple App Store ### Upload metadata and screenshots to the App Store @@ -42,16 +150,6 @@ cd xcode Use [Forgejo Actions](../.forgejo/workflows/android-release-metadata.yaml). -### Uploading a new version to Google Play - -Use [Forgejo Actions](../.forgejo/workflows/android-release.yaml). - -Promote version to "Production" manually in Google Play Console. - -### Uploading a new version to Huawei AppGallery - -Use [Forgejo Actions](../.forgejo/workflows/android-release.yaml). - ### Checking metadata Use [Forgejo Actions](../.forgejo/workflows/android-check.yaml). diff --git a/docs/workflows.md b/docs/WORFLOWS.md similarity index 78% rename from docs/workflows.md rename to docs/WORFLOWS.md index bd6fb171e..ff13b1320 100644 --- a/docs/workflows.md +++ b/docs/WORFLOWS.md @@ -2,6 +2,8 @@ CI Codeberg is limited and cannot be used for now to build regularly apps and executes tests. To limit regressions, we have enabled temporary Github CI on the [Github Mirror](https://github.com/comaps/comaps) to build Android and IOS app and execute linter each time we sync the mirror. +We use our own server to execute maps generation with a CI Codeberg. - [Android CI](https://github.com/comaps/comaps/actions/workflows/android-check.yaml) - [IOS CI](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml) +- [Maps generation CI](.forgejo/workflows/map-generator.yml) diff --git a/docs/feature_structure.md b/docs/feature_structure.md index d87eca552..f3b2eba1e 100644 --- a/docs/feature_structure.md +++ b/docs/feature_structure.md @@ -1,5 +1,5 @@ -[!NOTE] -This info might be outdated. +> [!NOTE] +> This info might be outdated. First byte: - 0 - Amount of types (1-8, write as 0-7, 3 bits) From 399908b97cf026160cf24e4dd460671ec2aaa9bb Mon Sep 17 00:00:00 2001 From: x7z4w Date: Sun, 2 Nov 2025 12:17:51 +0100 Subject: [PATCH 11/91] [ci] Fix iOS Signed-off-by: x7z4w --- .github/workflows/ios-check.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ios-check.yaml b/.github/workflows/ios-check.yaml index c998b6fd4..e8e75c9af 100644 --- a/.github/workflows/ios-check.yaml +++ b/.github/workflows/ios-check.yaml @@ -8,14 +8,14 @@ on: jobs: ios-check: name: Build iOS - runs-on: macos-15 + runs-on: macos-26 env: - DEVELOPER_DIR: /Applications/Xcode_26.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_26.1.app/Contents/Developer LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII. LANGUAGE: en_US.UTF-8 LC_ALL: en_US.UTF-8 TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results - SIMULATOR_DEVICE: 'iPhone 16 Pro Max' + SIMULATOR_DEVICE: 'iPhone 17 Pro Max' strategy: fail-fast: false matrix: @@ -31,6 +31,9 @@ jobs: brew install qt \ optipng pip3 install "protobuf<3.21" --break-system-packages + xcodebuild -downloadComponent metalToolchain + xcodebuild -downloadPlatform iOS + - name: Checkout sources uses: actions/checkout@v4 @@ -38,11 +41,11 @@ jobs: shell: bash run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20)) - - name: Configure repository + - name: Configure repository shell: bash run: ./configure.sh - - name: Configure XCode cache + - name: Configure Xcode cache uses: irgaly/xcode-cache@v1 with: key: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.buildType }}-${{ github.sha }} From 54c1aeba1e0265f9653948aee51ebb82215ee3e7 Mon Sep 17 00:00:00 2001 From: Bastian Greshake Tzovaras Date: Thu, 20 Nov 2025 09:12:07 -0300 Subject: [PATCH 12/91] [taginfo] update to state of release 2025-11-19 Signed-off-by: Bastian Greshake Tzovaras --- data/taginfo.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/data/taginfo.json b/data/taginfo.json index 914282de4..45e7aa531 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1,7 +1,7 @@ { "data_format": 1, "data_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/taginfo.json", - "data_updated": "20251117T175008Z", + "data_updated": "20251120T121118Z", "project": { "name": "CoMaps", "description": "CoMaps is a community-focused privacy navigation iOS & Android app for travelers - drivers, hikers, and cyclists.", @@ -128,7 +128,7 @@ "description": "amenity=bicycle_rental", "key": "amenity", "value": "bicycle_rental", - "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/bicycle-rental.svg" + "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/bicycle-rental-xm.svg" }, { "description": "amenity=bicycle_repair_station", @@ -1060,7 +1060,7 @@ "description": "amenity=taxi", "key": "amenity", "value": "taxi", - "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/taxi-m.svg" + "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/taxi-xm.svg" }, { "description": "amenity=telephone", @@ -3959,6 +3959,18 @@ "value": "beauty", "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/beauty-m.svg" }, + { + "description": "shop=beauty + beauty=nails", + "key": "beauty", + "value": "nails", + "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/nails-m.svg" + }, + { + "description": "shop=beauty + beauty=nails", + "key": "shop", + "value": "beauty", + "icon_url": "https://codeberg.org/comaps/comaps/raw/branch/main/data/styles/default/light/symbols/nails-m.svg" + }, { "description": "shop=beauty + beauty=spa", "key": "beauty", From 90ee9e3c0f7e1c219ae63789bb8599ffcf669de8 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Wed, 19 Nov 2025 17:52:23 +0100 Subject: [PATCH 13/91] [drape] Make it possible to hide the name part from the road shield Signed-off-by: Yannik Bloscheck --- libs/indexer/road_shields_parser.cpp | 72 ++++++++++++++++------------ 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index 8e4a12093..87835d492 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -291,10 +291,13 @@ public: struct Entry { Entry() = default; - Entry(std::string_view name, RoadShieldType type) : m_name(name), m_type(type) {} + Entry(std::string_view name, RoadShieldType type, bool isRedundant = false, bool shouldTrimName = false) : m_name(name), m_type(type), m_isRedundant(isRedundant), m_shouldTrimName(shouldTrimName) {} std::string_view m_name; RoadShieldType m_type = RoadShieldType::Default; + /* Hides a specific secondary etc. sign, if there is a primary one */ + bool m_isRedundant = false; + bool m_shouldTrimName = false; }; using ShieldTypes = buffer_vector; @@ -311,19 +314,29 @@ public: if (rawText.size() > kMaxRoadShieldBytesSize) return RoadShield(); - size_t idx = std::numeric_limits::max(); RoadShieldType type = m_defaultType; + std::string name = std::string{rawText}; + size_t idx = std::numeric_limits::max(); for (auto const & p : m_types) { auto const i = rawText.find(p.m_name); if (i != std::string::npos && i < idx) { - type = p.m_type; + name = std::string{rawText}; + if (p.m_shouldTrimName) + { + strings::ReplaceFirst(name, std::string{p.m_name}, ""); + strings::Trim(name); + } + if (index != 1 && p.m_isRedundant) { + type = RoadShieldType::Hidden; + } else { + type = p.m_type; + } idx = i; } } - - return {type, rawText}; + return {type, name}; } private: @@ -339,56 +352,53 @@ public: struct Entry { Entry() = default; - Entry(std::string_view name, HighwayClass highwayClass, RoadShieldType type, bool isRedundant = false) : m_name(name), m_highwayClass(highwayClass), m_type(type), m_isRedundant(isRedundant) {} + Entry(std::string_view name, HighwayClass highwayClass, RoadShieldType type, bool isRedundant = false, bool shouldTrimName = false) : m_name(name), m_type(type), m_highwayClass(highwayClass), m_isRedundant(isRedundant), m_shouldTrimName(shouldTrimName) {} std::string_view m_name; HighwayClass m_highwayClass = HighwayClass::Undefined; RoadShieldType m_type = RoadShieldType::Default; /* Hides a specific secondary etc. sign, if there is a primary one */ bool m_isRedundant = false; + bool m_shouldTrimName = false; }; using ShieldTypes = buffer_vector; HighwayClassRoadShieldParser(std::string const & baseRoadNumber, HighwayClass highwayClass, ShieldTypes && types, RoadShieldType defaultType = RoadShieldType::Default) - : RoadShieldParser(baseRoadNumber) - , m_highwayClass(highwayClass) - , m_types(std::move(types)) - , m_defaultType(defaultType) + : RoadShieldParser(baseRoadNumber) + , m_highwayClass(highwayClass) + , m_types(std::move(types)) + , m_defaultType(defaultType) {} - + RoadShield ParseRoadShield(std::string_view rawText, uint8_t index) const override { if (rawText.size() > kMaxRoadShieldBytesSize) return RoadShield(); - RoadShieldType type = m_defaultType; - if (index == 1) { + if (index == 1) + { for (auto const & p : m_types) { if (p.m_highwayClass == m_highwayClass) { - return RoadShield(p.m_type, rawText); - } - } - } else { - size_t idx = std::numeric_limits::max(); - for (auto const & p : m_types) - { - auto const i = rawText.find(p.m_name); - if (i != std::string::npos && i < idx) - { - if (p.m_isRedundant) { - type = RoadShieldType::Hidden; - } else { - type = p.m_type; + std::string name = std::string{rawText}; + if (p.m_shouldTrimName) + { + strings::ReplaceFirst(name, std::string{p.m_name}, ""); + strings::Trim(name); } - idx = i; + return RoadShield(p.m_type, name); } } } - - return {type, rawText}; + + SimpleRoadShieldParser::ShieldTypes simpleShieldTypes = {}; + for (auto const & p : m_types) + { + simpleShieldTypes.push_back(SimpleRoadShieldParser::Entry(p.m_name, p.m_type, p.m_isRedundant, p.m_shouldTrimName)); + } + return SimpleRoadShieldParser(m_baseRoadNumber, std::move(simpleShieldTypes)).ParseRoadShield(rawText, index); } private: @@ -693,7 +703,7 @@ class GermanyRoadShieldParser : public HighwayClassRoadShieldParser public: explicit GermanyRoadShieldParser(std::string const & baseRoadNumber, HighwayClass const & highwayClass) : HighwayClassRoadShieldParser(baseRoadNumber, highwayClass, - {{"A", HighwayClass::Motorway, RoadShieldType::Highway_Hexagon_Blue}, + {{"A", HighwayClass::Motorway, RoadShieldType::Highway_Hexagon_Blue, false, true}, {"D", HighwayClass::Motorway, RoadShieldType::Hidden}, {"B", HighwayClass::Trunk, RoadShieldType::Generic_Orange_Bordered}, {"B", HighwayClass::Primary, RoadShieldType::Generic_Orange_Bordered}, From 3b4ab0da8971401f4c7f76db3ea3b75d27c5c816 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Wed, 19 Nov 2025 21:37:14 +0100 Subject: [PATCH 14/91] [doc] Revert changes about release process Signed-off-by: Jean-Baptiste --- docs/RELEASE_MANAGEMENT.md | 108 +------------------------------------ 1 file changed, 2 insertions(+), 106 deletions(-) diff --git a/docs/RELEASE_MANAGEMENT.md b/docs/RELEASE_MANAGEMENT.md index 901654ead..466ffaae0 100644 --- a/docs/RELEASE_MANAGEMENT.md +++ b/docs/RELEASE_MANAGEMENT.md @@ -1,110 +1,6 @@ # Release Management - -## Prepare release - -### A few days before the release -- [ ] start map generation -- [ ] raise release notes PR and ask for translations - -### Shortly before the release day -- [ ] merge a "[planet] Update map data to xxxxxx" PR with new countries.txt -- [ ] merge a meta-php PR with new maps data version -- [ ] make sure new maps files are on all CDN nodes -- [ ] smoke test map data for World and some regions -- [ ] merge (translated) release notes PR - -## Build a release for Android -## Shortly before the release day -- [ ] update GP metadata (descriptions, screenshots..) some days before the release - -### On release day -- [ ] create a release branch release/2025.xx.yy - - add a "[fdroid] Release version 2025.xx.yy-zz" commit - - with a change to android/app/src/fdroid/play/version.yaml - - take the version number from `tools/unix/version.sh` +1 - - e.g. with an added version bump commit it should match script's output -- [ ] tag the new release and push the tag to codeberg - - the tag format is "v2025.08.13-4" (not the old "2025.08.13-4-android"!) - - F-Droid will pickup the new tag (happens once a day) -- [ ] regenerate symbols -- [ ] regenerate drules -- [ ] update the world*.mwm - -- [ ] build Google release bundle (`./gradlew bundleGoogleRelease`) - check the keys are Google upload / test (yes, they're the same at test keys)! -upload to GP and submit for a review - -- [ ] build Codeberg release (`./gradlew -Parm32 -Parm64 assembleWebRelease`, e.g. no x86) - check the keys are prod Codeberg / main! -- [ ] create a Codeberg release from the tag, upload the build, add relnotes -- [ ] Upload the release to Google and submit for review -- [ ] announce the release in TG channel, upload the build - - -## Build a release for iOS - -### Shortly before the release day -- [ ] **Add short iOS release notes to releases document** - - They should consist of the most important things in general, that will be new in this version - - Those will be used for the App Store - - They will be translated in a pull request together with the short Android release notes -- [ ] **Add long iOS release notes to releases document** - - They should consist only of iOS-specific things, that will be new in this version - - Include credits to the persons, who added those new things -- [ ] **Add release with version number in App Store Connect** - - The version number should be the planned release date in `yyyy.MM.dd` format (like _2025.08.30_) -- [ ] **Update metadata in App Store Connect** - - Only include languages for which the App Store metadata has been completely translated - -### On release day -- [ ] **Wait for the Android release to be prepared** -- [ ] **Pull the latest version form the repository** - - The same last commit like for the Android release should be used -- [ ] **Edit versions and build number of the `CoMaps` and `CoMapsWidgetExtension` targets in Xcode** - - Use the same versions and build number of the Android release -- [ ] **Select the build target _Any iOS Device_ in Xcode** -- [ ] **Clean the build folder in Xcode** - - This can be done via _Product_ / _Clean Build Folder..._ in the menubar -- [ ] **Manually regenerate the styles** - - `./tools/unix/generate_styles.sh` -- [ ] **Create the application archive in Xcode** - - This can be done via _Product_ / _Archive_ in the menubar -- [ ] **Upload application to the App Store via the Xcode organizer** - - Choose the freshly created application archive, press `Distribute App`, select `App Store Connect` and follow the steps until the app is successfully uploaded -- [ ] **Adjust the version in App Store Connect, if necessary** - - It should be the same version used in Xcode and for the Android release -- [ ] **Add the short release notes in App Store Connect** - - The translations can be found in a translation pull request specific for that version - - For the languages, which are fully translated for the App Store, but are missing translated release notes, use the English release notes -- [ ] **Add the build to the release in App Store Connect** - - It might take a few minutes for the uploaded build to actually show up -- [ ] **Submit the release to review** - - Don't forget the actual submission step after clicking on _Add for Review_ -- [ ] **Submit the same build to TestFlight review** -- [ ] **Wait for Apple approving the release and TestFlight build** - -### After Apple's release approval -- [ ] **Also release the build on TestFlight** -- [ ] **Notify everybody in the Zulip topic for that release about the App Store availability** - -## Shortly after the release - -### Distribute to the French National library - - [ ] **Build a google apk (with google flavord /web keys and only arm32/64 arches) for French National library** - - [ ] **Upload it to their sftp** - -### Update `json` for [TagInfo](https://taginfo.openstreetmap.org/) -- [ ] **Run script to generate file** - - `python tools/python/generate_taginfo.py` -- [ ] **Raise PR to add updated file** - - `data/taginfo.json` - -### Announcements -- [ ] **Create a banner** -- [ ] **Upload banner to website news** -- [ ] **Announce the release to Telegram** -- [ ] **Create a post in social media** - - Reddit - - Mastodon - - etc. + + Details to prepare and push a release are available in the [Wiki](https://codeberg.org/comaps/comaps/wiki/Release-process) # Tools to upload metadata and screenshots on stores From 72920bb930842b5014782d785674038b7bfbd730 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Fri, 14 Nov 2025 18:48:48 +0100 Subject: [PATCH 15/91] [android] Migrate send note button to Material 3 Signed-off-by: Jean-Baptiste --- .../editor/FeatureCategoryAdapter.java | 29 ++++++++++++++++++- .../layout/item_feature_category_footer.xml | 5 ++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/editor/FeatureCategoryAdapter.java b/android/app/src/main/java/app/organicmaps/editor/FeatureCategoryAdapter.java index ebcee31da..db0609728 100644 --- a/android/app/src/main/java/app/organicmaps/editor/FeatureCategoryAdapter.java +++ b/android/app/src/main/java/app/organicmaps/editor/FeatureCategoryAdapter.java @@ -1,16 +1,20 @@ package app.organicmaps.editor; +import android.content.res.ColorStateList; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import app.organicmaps.R; import app.organicmaps.sdk.editor.data.FeatureCategory; import app.organicmaps.sdk.util.StringUtils; import app.organicmaps.util.UiUtils; + +import com.google.android.material.button.MaterialButton; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textview.MaterialTextView; @@ -119,7 +123,7 @@ public class FeatureCategoryAdapter extends RecyclerView.Adapter listener.onSendNoteClicked()); + final ColorStateList bgButtonColor = new ColorStateList( + new int[][]{ + new int[]{android.R.attr.state_enabled}, // enabled + new int[]{-android.R.attr.state_enabled} // disabled + }, + new int[]{ + ContextCompat.getColor( + mSendNoteButton.getContext(), R.color.base_accent), + ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_disabled) + }); + final ColorStateList textButtonColor = new ColorStateList( + new int[][]{ + new int[]{android.R.attr.state_enabled}, // enabled + new int[]{-android.R.attr.state_enabled} // disabled + }, + new int[]{ + ContextCompat.getColor( + mSendNoteButton.getContext(), + UiUtils.getStyledResourceId(mSendNoteButton.getContext(), android.R.attr.textColorPrimaryInverse)), + ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_text_disabled) + }); + mSendNoteButton.setBackgroundTintList(bgButtonColor); + mSendNoteButton.setTextColor(textButtonColor); mNoteEditText.addTextChangedListener(new StringUtils.SimpleTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) diff --git a/android/app/src/main/res/layout/item_feature_category_footer.xml b/android/app/src/main/res/layout/item_feature_category_footer.xml index d57197db5..3ba0c67ff 100644 --- a/android/app/src/main/res/layout/item_feature_category_footer.xml +++ b/android/app/src/main/res/layout/item_feature_category_footer.xml @@ -51,9 +51,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:background="?accentButtonBackground" android:layout_marginTop="@dimen/margin_base" - android:enabled="true" + android:enabled="false" android:text="@string/editor_report_problem_send_button" - app:backgroundTint="@null"/> + android:textColor="?android:textColorPrimaryInverse" /> \ No newline at end of file From d5f640c6d0c2541eda837dfcaad22daea63b4f3a Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Fri, 21 Nov 2025 18:05:18 +0100 Subject: [PATCH 16/91] [android] Remove duplicate drawables Signed-off-by: Jean-Baptiste --- .../main/java/app/organicmaps/car/util/UiHelpers.java | 2 +- .../app/organicmaps/widget/menu/MyPositionButton.java | 2 +- android/app/src/main/res/drawable/ic_down.xml | 9 --------- android/app/src/main/res/drawable/ic_not_follow.xml | 5 ----- android/app/src/main/res/layout/routing_plan.xml | 2 +- .../app/src/main/res/layout/toolbar_search_controls.xml | 2 +- android/app/src/main/res/values/styles.xml | 2 +- 7 files changed, 5 insertions(+), 19 deletions(-) delete mode 100644 android/app/src/main/res/drawable/ic_down.xml delete mode 100644 android/app/src/main/res/drawable/ic_not_follow.xml diff --git a/android/app/src/main/java/app/organicmaps/car/util/UiHelpers.java b/android/app/src/main/java/app/organicmaps/car/util/UiHelpers.java index 214e0cac0..2f6943eb3 100644 --- a/android/app/src/main/java/app/organicmaps/car/util/UiHelpers.java +++ b/android/app/src/main/java/app/organicmaps/car/util/UiHelpers.java @@ -177,7 +177,7 @@ public final class UiHelpers { case LocationState.PENDING_POSITION, LocationState.NOT_FOLLOW_NO_POSITION -> drawableRes = R.drawable.ic_location_off; - case LocationState.NOT_FOLLOW -> drawableRes = R.drawable.ic_not_follow; + case LocationState.NOT_FOLLOW -> drawableRes = R.drawable.ic_location_crosshair; case LocationState.FOLLOW -> { drawableRes = R.drawable.ic_follow; diff --git a/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java b/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java index 56ace762f..1c0ea41f6 100644 --- a/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java +++ b/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java @@ -67,7 +67,7 @@ public class MyPositionButton { case LocationState.PENDING_POSITION -> R.drawable.ic_menu_location_pending; case LocationState.NOT_FOLLOW_NO_POSITION -> R.drawable.ic_location_off; - case LocationState.NOT_FOLLOW -> R.drawable.ic_not_follow; + case LocationState.NOT_FOLLOW -> R.drawable.ic_location_crosshair; case LocationState.FOLLOW -> R.drawable.ic_follow; case LocationState.FOLLOW_AND_ROTATE -> R.drawable.ic_follow_and_rotate; default -> throw new IllegalArgumentException("Invalid button mode: " + mode); diff --git a/android/app/src/main/res/drawable/ic_down.xml b/android/app/src/main/res/drawable/ic_down.xml deleted file mode 100644 index e5da39e7c..000000000 --- a/android/app/src/main/res/drawable/ic_down.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/app/src/main/res/drawable/ic_not_follow.xml b/android/app/src/main/res/drawable/ic_not_follow.xml deleted file mode 100644 index 859760018..000000000 --- a/android/app/src/main/res/drawable/ic_not_follow.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/android/app/src/main/res/layout/routing_plan.xml b/android/app/src/main/res/layout/routing_plan.xml index 4ceee4668..2aa5a813d 100644 --- a/android/app/src/main/res/layout/routing_plan.xml +++ b/android/app/src/main/res/layout/routing_plan.xml @@ -31,7 +31,7 @@ android:background="?attr/selectableItemBackgroundBorderless" app:srcCompat="?homeAsUpIndicator" android:scaleType="center" - tools:src="@drawable/ic_down" /> + tools:src="@drawable/ic_expand_more" /> center_vertical @android:color/white @android:color/white - @drawable/ic_down + @drawable/ic_expand_more diff --git a/android/app/src/main/res/values/dimens.xml b/android/app/src/main/res/values/dimens.xml index 4f7919801..a1c7249e9 100644 --- a/android/app/src/main/res/values/dimens.xml +++ b/android/app/src/main/res/values/dimens.xml @@ -183,4 +183,5 @@ 0.8 + 40dp diff --git a/android/app/src/main/res/values/m3_colors.xml b/android/app/src/main/res/values/m3_colors.xml new file mode 100644 index 000000000..2f89e179c --- /dev/null +++ b/android/app/src/main/res/values/m3_colors.xml @@ -0,0 +1,144 @@ + + + #39693B + #FFFFFF + #BAF0B6 + #215025 + #35693F + #FFFFFF + #B6F1BB + #1B5129 + #39656B + #FFFFFF + #BCEBF1 + #1F4D53 + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #F7FBF2 + #181D17 + #F5FBF7 + #171D1B + #DEE5D9 + #424940 + #72796F + #C2C9BD + #000000 + #2B322F + #ECF2EE + #9FD49C + #BAF0B6 + #002106 + #9FD49C + #215025 + #B6F1BB + #002109 + #9BD4A0 + #1B5129 + #BCEBF1 + #001F23 + #A1CED5 + #1F4D53 + #D5DBD8 + #F5FBF7 + #FFFFFF + #EFF5F1 + #E9EFEB + #E3EAE6 + #DEE4E0 + #0E3F16 + #FFFFFF + #487849 + #FFFFFF + #053F1A + #FFFFFF + #43784C + #FFFFFF + #083C42 + #FFFFFF + #48747A + #FFFFFF + #740006 + #FFFFFF + #CF2C27 + #FFFFFF + #F7FBF2 + #181D17 + #F5FBF7 + #0C1210 + #DEE5D9 + #313830 + #4E544B + #686F65 + #000000 + #2B322F + #ECF2EE + #9FD49C + #487849 + #FFFFFF + #2F5F32 + #FFFFFF + #43784C + #FFFFFF + #2B5F36 + #FFFFFF + #48747A + #FFFFFF + #2E5B61 + #FFFFFF + #C2C8C4 + #F5FBF7 + #FFFFFF + #EFF5F1 + #E3EAE6 + #D8DEDB + #CDD3CF + #01340D + #FFFFFF + #245328 + #FFFFFF + #003413 + #FFFFFF + #1E532B + #FFFFFF + #003237 + #FFFFFF + #225055 + #FFFFFF + #600004 + #FFFFFF + #98000A + #FFFFFF + #F7FBF2 + #181D17 + #F5FBF7 + #000000 + #DEE5D9 + #000000 + #272E26 + #444B42 + #000000 + #2B322F + #FFFFFF + #9FD49C + #245328 + #FFFFFF + #093B13 + #FFFFFF + #1E532B + #FFFFFF + #003C17 + #FFFFFF + #225055 + #FFFFFF + #02393E + #FFFFFF + #B4BAB7 + #F5FBF7 + #FFFFFF + #ECF2EE + #DEE4E0 + #CFD6D2 + #C2C8C4 + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles-editor.xml b/android/app/src/main/res/values/styles-editor.xml index da20e10a3..afedc6020 100644 --- a/android/app/src/main/res/values/styles-editor.xml +++ b/android/app/src/main/res/values/styles-editor.xml @@ -57,12 +57,14 @@ + + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 0a7371f3f..2aded6a25 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -35,17 +35,20 @@ 34dp - - - - @@ -414,6 +417,8 @@ @@ -161,7 +203,7 @@ @color/bg_window - - - - From c22bc75fb02244e91ce304bc7d576c86538cdc5e Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Tue, 25 Nov 2025 12:28:50 +0700 Subject: [PATCH 26/91] [planet] Update map data to 251123 Signed-off-by: Konstantin Pastbin --- data/countries.txt | 4572 ++++++++++++++++++++++---------------------- 1 file changed, 2286 insertions(+), 2286 deletions(-) diff --git a/data/countries.txt b/data/countries.txt index c1a6d9360..acde539ea 100644 --- a/data/countries.txt +++ b/data/countries.txt @@ -1,16 +1,16 @@ { - "v": 251116, + "v": 251123, "id": "Countries", "g": [ { "id": "World", - "s": 52122498, - "sha1_base64": "/0gfHcXNZDpI4PHgP56rUbKXRf8=" + "s": 52229335, + "sha1_base64": "K9SyEaLmUQkGYKLM11AkTlqOSoU=" }, { "id": "WorldCoasts", "s": 8506467, - "sha1_base64": "ZmIKY0c9SIvvdzYwcV+Ets+/p2k=" + "sha1_base64": "hws0jywzCgP4HeamR3JN1QokalM=" }, { "id": "Abkhazia", @@ -22,8 +22,8 @@ "აფხაზეთის ავტონომიური რესპუბლიკა - Аҧсны Автономтә Республика", "საქართველო" ], - "s": 16043226, - "sha1_base64": "vCtilkVVXuZqi2j7qz3NYtxq9F8=" + "s": 16043186, + "sha1_base64": "ob4GblOj/HwHl+W273jPgyX8i3U=" }, { "id": "Afghanistan", @@ -67,8 +67,8 @@ "ولایت غور", "افغانستان" ], - "s": 192898261, - "sha1_base64": "FlR9YZ2g29Ne0EceoChjPFY9Q8w=" + "s": 192993101, + "sha1_base64": "aJvgwclXDXhgZiZu4Gy96bFRYiI=" }, { "id": "Albania", @@ -78,8 +78,8 @@ "affiliations": [ "Shqipëria" ], - "s": 62576430, - "sha1_base64": "N4UzLNqPscD8FB45etn5A3F72VU=" + "s": 62693966, + "sha1_base64": "bVIsK7b1x8lID/p2sDYxPt9g2PY=" }, { "id": "Algeria", @@ -109,8 +109,8 @@ "Tindouf ⵜⵉⵏⴷⵓⴼ تندوف", "Tébessa - تبسة" ], - "s": 177485321, - "sha1_base64": "ZwslMiWzQH3c5JyDAGDpG8Pkzkg=" + "s": 177573833, + "sha1_base64": "sKRanLAV5cNuf8fBRKAZUwHP7+M=" }, { "id": "Algeria_Coast", @@ -151,8 +151,8 @@ "Tizi Ouzou - ⵜⵉⵣⵉ ⵓⵣⵣⵓ - تيزي وزو", "Tlemcen - تلمسان" ], - "s": 195604665, - "sha1_base64": "VnG1tzxSAg3ojxjMKBPjr4lUNaI=" + "s": 195698977, + "sha1_base64": "0GhxdBJSrT3Z36pMG1lHpzSb5f8=" } ] }, @@ -164,8 +164,8 @@ "affiliations": [ "Andorra" ], - "s": 4950667, - "sha1_base64": "WxpydaXedAyEucZlRUunDo2YV3s=" + "s": 4950635, + "sha1_base64": "gbn6lHNS0/AgLSbQ1hhYzXMzGIk=" }, { "id": "Angola", @@ -193,8 +193,8 @@ "Namibe", "Zaire" ], - "s": 123061463, - "sha1_base64": "6KW5FPhZq9oU+O6WTJAh0P+tblQ=" + "s": 123017471, + "sha1_base64": "L1nUYqZyc7YRq1UcNahDnJdEyvo=" }, { "id": "Anguilla", @@ -205,7 +205,7 @@ "Anguilla" ], "s": 906600, - "sha1_base64": "aGxiMwXaZoEBh1+i+Gkzls5B0Tg=" + "sha1_base64": "jxU+1ktfRW5KluyRY9RhUJVxCyE=" }, { "id": "Antigua and Barbuda", @@ -216,8 +216,8 @@ "Antigua and Barbuda", "Montserrat" ], - "s": 3137576, - "sha1_base64": "gkoSejeqXw4r/yrsTLnX7JK1sG4=" + "s": 3137976, + "sha1_base64": "N0vYyH5BfNrDbmwt6iky4ZxHplM=" }, { "id": "Barbados", @@ -227,8 +227,8 @@ "affiliations": [ "Barbados" ], - "s": 6765246, - "sha1_base64": "F4RGPD1eQ5wL424HcPcZRtJewNY=" + "s": 6765558, + "sha1_base64": "Pl/oTq9l0FSd9xpSyXXgGxv+7gs=" }, { "id": "British Virgin Islands", @@ -239,7 +239,7 @@ "British Virgin Islands" ], "s": 1297245, - "sha1_base64": "0L0C6fvKgTFygdo2azkDJgUvsz4=" + "sha1_base64": "PvA0kd+S27N0+iaCOlE4/tUrl+M=" }, { "id": "Caribisch Nederland", @@ -257,8 +257,8 @@ "Aruba", "Curacao" ], - "s": 10746280, - "sha1_base64": "PETcFszeDaLKBoBcUgD1awzdpzQ=" + "s": 10767816, + "sha1_base64": "qYciW6f3ZiIkT4044D/pJJrxfb4=" }, { "id": "Dominica", @@ -279,7 +279,7 @@ "Saint Peter Parish" ], "s": 4170418, - "sha1_base64": "9yHdtR0CIDTskX6wF6NmHvLQ4qo=" + "sha1_base64": "PQbnGl99UpSQgsdPUu0L8yKcdE0=" }, { "id": "Grenada", @@ -289,8 +289,8 @@ "affiliations": [ "Grenada" ], - "s": 2977551, - "sha1_base64": "RLtHNB4Sif69KpAahBoHRmsr54M=" + "s": 2978031, + "sha1_base64": "+T4N/srpNZyrh/xEoWKCE4VZZgY=" }, { "id": "Guadeloupe", @@ -302,8 +302,8 @@ "Guadeloupe", "Montserrat" ], - "s": 18755653, - "sha1_base64": "sKMVGtJRnUR5IK2HIp0P7t7lqZI=" + "s": 18780829, + "sha1_base64": "Lv9YHTbLLvIi++FDhJ22AKx6GjE=" }, { "id": "Martinique", @@ -315,8 +315,8 @@ "Martinique", "Saint Lucia" ], - "s": 15612417, - "sha1_base64": "VfvjD004csKxRW4aEh/mRkMY4pI=" + "s": 15615666, + "sha1_base64": "3xJcrf8gL2e2ewX7YjJtPuRClig=" }, { "id": "Montserrat", @@ -327,7 +327,7 @@ "Montserrat" ], "s": 969212, - "sha1_base64": "AKIx+ZfnZNOPIRjV+xZtOd4YPYM=" + "sha1_base64": "k86kQhEu23Rg/GCJT5dKovLM1ss=" }, { "id": "Saint Barthelemy", @@ -337,8 +337,8 @@ "affiliations": [ "France" ], - "s": 976942, - "sha1_base64": "UA1FL3hFW4gxdIdTpM6p5FbIvsw=" + "s": 976406, + "sha1_base64": "yiZFkQzuuHOFxG5IQXZ7Nbouv7o=" }, { "id": "Saint Kitts and Nevis", @@ -349,7 +349,7 @@ "Saint Kitts and Nevis" ], "s": 1835936, - "sha1_base64": "XNoWOqWQGlEuDPosmo7JSFSSPMk=" + "sha1_base64": "UfmsqLMwwuafpNJN/4gkdKYT/oY=" }, { "id": "Saint Lucia", @@ -360,8 +360,8 @@ "Saint Lucia", "Saint Vincent and the Grenadines" ], - "s": 4693556, - "sha1_base64": "zAJNLT2+1ub2473+RyQK2Yvuqdc=" + "s": 4693564, + "sha1_base64": "5YG8/R0+cMgBBYEA+g1JzsFfuvQ=" }, { "id": "Saint Martin", @@ -378,8 +378,8 @@ "Saint Martin (Dutch part)", "Sint Maarten (Netherlands)" ], - "s": 2500485, - "sha1_base64": "UwWfUmOY9spSPhWBvuSygi5EoAM=" + "s": 2500589, + "sha1_base64": "AIhM0oM4K/gJN1HV3T3yCnrsXqk=" }, { "id": "Saint Vincent and the Grenadines", @@ -390,7 +390,7 @@ "Saint Vincent and the Grenadines" ], "s": 3102807, - "sha1_base64": "0tq8gJOLiIXCEjHx7ofx3mzJLN8=" + "sha1_base64": "XcQw8nz1V2OAZ1Mo7LvefRDYHlk=" }, { "id": "Trinidad and Tobago", @@ -400,8 +400,8 @@ "affiliations": [ "Trinidad and Tobago" ], - "s": 18026250, - "sha1_base64": "VaZcVu1O9AdbehhuQ/VwKYU5MMQ=" + "s": 18163778, + "sha1_base64": "tzfCFkd2mLIvnCFbXDS+d1yO3m8=" }, { "id": "United States Virgin Islands", @@ -416,8 +416,8 @@ "VI", "United States of America" ], - "s": 3462112, - "sha1_base64": "SPn4p5/8EPuNvanNDCGearKbhjA=" + "s": 3462160, + "sha1_base64": "IKsqOonhktPmJvmLdZ+PvuhRQk0=" }, { "id": "Argentina", @@ -428,7 +428,7 @@ "Acuerdo de Campos de Hielo" ], "s": 7075801, - "sha1_base64": "IhAWDdSd+HCzy62/M7F++mwmFx8=" + "sha1_base64": "JOEEwzRpPB57GiUHu/yD1NdchGA=" }, { "id": "Argentina_Buenos Aires_Buenos Aires", @@ -440,8 +440,8 @@ "Ciudad Autónoma de Buenos Aires", "Buenos Aires" ], - "s": 67996125, - "sha1_base64": "UEelxrt8klJb+O1DZJnkbpvi074=" + "s": 68030813, + "sha1_base64": "0MER9xqT0DwPCcO8+f9BD5JUG+g=" }, { "id": "Argentina_Buenos Aires_North", @@ -452,8 +452,8 @@ "Argentina", "Buenos Aires" ], - "s": 41114804, - "sha1_base64": "z/xQe5NbtvcxHKI5BTsjQoJvFm8=" + "s": 41118100, + "sha1_base64": "xoE1GptYKwkafZP6gkwEW0Vl/oE=" }, { "id": "Argentina_Buenos Aires_South", @@ -464,8 +464,8 @@ "Argentina", "Buenos Aires" ], - "s": 58277204, - "sha1_base64": "gpDl1fCpCO6XKhAR8WxWh7NqzCE=" + "s": 58290340, + "sha1_base64": "9MarPXf7069vgBbtznq3eptq3Co=" }, { "id": "Argentina_Patagonia", @@ -480,8 +480,8 @@ "Santa Cruz", "Tierra del Fuego" ], - "s": 247792707, - "sha1_base64": "nCS48rptvoPFww7imsWJgsAHbhU=" + "s": 247935323, + "sha1_base64": "bbZI3w5r4LTzdXXl5Klqpl6Cfn4=" }, { "id": "Argentina_Cuyo", @@ -495,8 +495,8 @@ "San Juan", "San Luis" ], - "s": 78152532, - "sha1_base64": "64J4jDOYAXCaXXNdKGedzcBsz9M=" + "s": 78507204, + "sha1_base64": "tGgZBKcOfkZqD0h16pvBckmFMPM=" }, { "id": "Argentina_Mesopotamia", @@ -517,8 +517,8 @@ "Itapúa", "Misiones" ], - "s": 82818718, - "sha1_base64": "irC7IVlxNNxz2U0fA0wnzQDIyzA=" + "s": 82823550, + "sha1_base64": "Rr3NxxWkeNDYOiLucyC7irfzcm8=" }, { "id": "Argentina_Northwest", @@ -535,8 +535,8 @@ "Santiago del Estero", "Tucumán" ], - "s": 120826312, - "sha1_base64": "CF5Ra2700kgpI2QdeqVISt0ssFw=" + "s": 120871720, + "sha1_base64": "b7KH5qgcWhVsJuRZhaUI1+d13mQ=" }, { "id": "Argentina_Pampas", @@ -548,8 +548,8 @@ "Córdoba", "La Pampa" ], - "s": 82932768, - "sha1_base64": "TVjCOsP6NOpOj5FlvmIG0Yn/o8E=" + "s": 83402792, + "sha1_base64": "Rjr0kBkL+Ns3Yb/rbA/cN8kpaRU=" }, { "id": "Argentina_Santa Fe", @@ -560,8 +560,8 @@ "Argentina", "Santa Fe" ], - "s": 57078293, - "sha1_base64": "w3TjXBFnx6q/iKBBHAkx3Pr+3pI=" + "s": 57106221, + "sha1_base64": "eNRmM44y/Fulk1VV+EsVvTq6iks=" } ] }, @@ -586,8 +586,8 @@ "Արագածոտնի մարզ", "Գեղարքունիք" ], - "s": 64261507, - "sha1_base64": "0/hA4CdIgiga5S7FwYuSNksp7Ns=" + "s": 64318483, + "sha1_base64": "7sdTex52245bp34+Suu8rSPiPBA=" }, { "id": "Austria", @@ -601,8 +601,8 @@ "Burgenland", "Österreich" ], - "s": 41550760, - "sha1_base64": "bJaDwwgF2/XMW/U9Jf3l+xPFCv8=" + "s": 41642984, + "sha1_base64": "AuIbxLql5DggI1I1GEhA4opW0X4=" }, { "id": "Austria_Carinthia", @@ -613,8 +613,8 @@ "Kärnten", "Österreich" ], - "s": 69582600, - "sha1_base64": "efmZSDFCW7mLcQ+xJmoznd4fUpw=" + "s": 69595816, + "sha1_base64": "XhFeWMsJDGMau084iWP2V8q9MHE=" }, { "id": "Austria_Lower Austria_Wien", @@ -626,8 +626,8 @@ "Niederösterreich", "Wien" ], - "s": 136310898, - "sha1_base64": "bv7nd0T0GJXDoZRZjogmSi8JoHs=" + "s": 136346890, + "sha1_base64": "iX4MHecaeqzXS6Q1eVeoAhKKYtA=" }, { "id": "Austria_Styria_Graz", @@ -638,8 +638,8 @@ "Österreich", "Steiermark" ], - "s": 91734609, - "sha1_base64": "E1IkpL9udACBBnOSO1UEaqPy0AQ=" + "s": 91750161, + "sha1_base64": "jO2dnEQmq5YE8SDa1ou4jGY1qbU=" }, { "id": "Austria_Styria_Leoben", @@ -650,8 +650,8 @@ "Österreich", "Steiermark" ], - "s": 62046910, - "sha1_base64": "tF7dw8Dm9S/3p7tqBmPnYKPwifc=" + "s": 62062622, + "sha1_base64": "GmwsgvxOYrOQ/E8CGYHOc9led4Y=" }, { "id": "Austria_Upper Austria_Linz", @@ -662,8 +662,8 @@ "Österreich", "Oberösterreich" ], - "s": 60068574, - "sha1_base64": "FHlmeFxBGUvoiZe8HPjGptLSwog=" + "s": 60059670, + "sha1_base64": "Zy86Gp+XysYksdecjy7TuRSk3Tw=" }, { "id": "Austria_Upper Austria_Wels", @@ -674,8 +674,8 @@ "Österreich", "Oberösterreich" ], - "s": 69328895, - "sha1_base64": "JNL9gk1wKp3dgA+DuSqH1OZ2FTw=" + "s": 69346575, + "sha1_base64": "T/xtsATS0mpZ+EXSWnN0F1eJ1cI=" }, { "id": "Austria_Lower Austria_West", @@ -686,8 +686,8 @@ "Österreich", "Niederösterreich" ], - "s": 129555031, - "sha1_base64": "eghYyPjvTulR9Dw+RB2IT6od3Dk=" + "s": 129660023, + "sha1_base64": "zTvEpet9WeF8qvgCWpvUTIQ3sNI=" }, { "id": "Austria_Tyrol", @@ -698,8 +698,8 @@ "Österreich", "Tirol" ], - "s": 92837833, - "sha1_base64": "GzaA50hYb1OtwEe5MFRolpZ3llY=" + "s": 92865649, + "sha1_base64": "PMMxCwhxEBhOmkPDzH24ML5S0Qo=" }, { "id": "Austria_Salzburg", @@ -710,8 +710,8 @@ "Österreich", "Salzburg" ], - "s": 64658943, - "sha1_base64": "FTRtL1Yrh5yUpYLm87vrGAVec3Q=" + "s": 64678359, + "sha1_base64": "dAO5dzN1T+D5OH3Gu1bNFL09WNM=" }, { "id": "Austria_Vorarlberg", @@ -722,8 +722,8 @@ "Österreich", "Vorarlberg" ], - "s": 39715130, - "sha1_base64": "ms1sL9bCNNAzhXOV1PH/vv/ReNY=" + "s": 39743306, + "sha1_base64": "1a7TeH+sEGtNTe/PBebp5jsALLg=" } ] }, @@ -738,7 +738,7 @@ "Willis Island" ], "s": 186744, - "sha1_base64": "WaqWX/hp3Pr4Ql1V0p7fA9/MI2U=" + "sha1_base64": "YpoZnXabMb/NQcFcjH7J61IRWJA=" }, { "id": "Australia_Melbourne", @@ -749,8 +749,8 @@ "Australia", "Victoria" ], - "s": 173035483, - "sha1_base64": "YdKaLPtBoiwVjyKZD/UCO2hgXK8=" + "s": 173136475, + "sha1_base64": "yTfv+JfrnjB8gfKKhVVLm2gxoyw=" }, { "id": "Australia_New South Wales", @@ -764,8 +764,8 @@ "New South Wales", "Norfolk Island" ], - "s": 128900082, - "sha1_base64": "K4ABiDMFwU1/ilqeFd+/9iiPh0o=" + "s": 129117922, + "sha1_base64": "iuW7iwHQKuslILjYB2UM4epT/aI=" }, { "id": "Australia_Northern Territory", @@ -776,8 +776,8 @@ "Australia", "Northern Territory" ], - "s": 39111297, - "sha1_base64": "e/If/ZLfajuE5HPYotR3Xt2JywY=" + "s": 39171921, + "sha1_base64": "0AdNWJjAZj6oAat9MKLSYXoqthA=" }, { "id": "Australia_Queensland", @@ -789,8 +789,8 @@ "Coral Sea Islands Territory", "Queensland" ], - "s": 131713103, - "sha1_base64": "/wrWjhuoeHb2udbevI2N8hWyP4Q=" + "s": 131738407, + "sha1_base64": "UFeRHlzLvELI8nPMZtThFbcmVR4=" }, { "id": "Australia_South Australia", @@ -801,8 +801,8 @@ "Australia", "South Australia" ], - "s": 98685193, - "sha1_base64": "w9XFgmkFItKa5hrIeKnkwZNNPOs=" + "s": 98699833, + "sha1_base64": "XYmBiR61lW5C0pZBRSFtASLoPDc=" }, { "id": "Australia_Tasmania", @@ -813,8 +813,8 @@ "Australia", "Tasmania" ], - "s": 71949547, - "sha1_base64": "aH7RlNT2oXApVc82N83+EX0c4KY=" + "s": 72040515, + "sha1_base64": "CELpsN9qtj1lPfegVPIl7YTADjI=" }, { "id": "Australia_Victoria", @@ -825,8 +825,8 @@ "Australia", "Victoria" ], - "s": 134214172, - "sha1_base64": "ZtTmZOjbxi3cXy1kXUFtJOtK3eM=" + "s": 134284108, + "sha1_base64": "5ayn+I+way5dRO1RCIv0hln7RzE=" }, { "id": "Australia_Western Australia", @@ -842,8 +842,8 @@ "Cocos (Keeling) Islands", "Western Australia" ], - "s": 199863170, - "sha1_base64": "Qnu62RH4JzPhkNFFl1XQeMMehPs=" + "s": 199921882, + "sha1_base64": "woqvMOvIyvg9/62lorBE5aRyzZ4=" }, { "id": "Australia_Brisbane", @@ -856,8 +856,8 @@ "France, Nouvelle-Calédonie, Récifs de Bellone (eaux territoriales)", "Queensland" ], - "s": 141322677, - "sha1_base64": "gAv+Xjk2mSKqDB3PFkb0CRZP6KM=" + "s": 141391341, + "sha1_base64": "VuvCTHGg0TQIBhOQ/xOg748hOVU=" }, { "id": "Australia_Sydney", @@ -870,8 +870,8 @@ "Jervis Bay Territory", "New South Wales" ], - "s": 192369301, - "sha1_base64": "MEwbP0Pmn1IfsNx1BsI6npIA9/Q=" + "s": 192491853, + "sha1_base64": "JBLQy+xtLNCMFoV28OK2R9xAZsE=" } ] }, @@ -894,8 +894,8 @@ "Մարտունու շրջան (Martuni Province)", "Ստեփանակերտ (Stepanakert - Khankendi)" ], - "s": 12600146, - "sha1_base64": "hW8fQPVo9e0UAoe8fJEHwMZKUIM=" + "s": 12603514, + "sha1_base64": "GDqSMWnW/7psUJ489wMko2rPHiI=" }, { "id": "Azerbaijan", @@ -975,8 +975,8 @@ "Şəmkir rayonu", "Şərur rayonu" ], - "s": 49858412, - "sha1_base64": "21VB/CI6Sro6JL/HvELkrOnag8c=" + "s": 49896348, + "sha1_base64": "/1aK13ubIuWrEQ6wM+TbwAHfwdc=" } ] }, @@ -993,8 +993,8 @@ "المحافظة الجنوبية", "المحافظة الشمالية" ], - "s": 10836219, - "sha1_base64": "nwEs8zmFVnjYPgclIBzWhqpEgYE=" + "s": 10836403, + "sha1_base64": "zcgnCGtChrgKTABAu2h3/blvn28=" }, { "id": "Bangladesh", @@ -1012,8 +1012,8 @@ "বাংলাদেশ", "চট্টগ্রাম বিভাগ" ], - "s": 344639834, - "sha1_base64": "OUbd2/WJm5h4h3A/ppMdUiDzEB4=" + "s": 344709202, + "sha1_base64": "ZnVDX9/FTQwwH/N5qTDQMJ1tTsc=" }, { "id": "Belarus", @@ -1030,8 +1030,8 @@ "Беларусь", "Витебская область" ], - "s": 81013832, - "sha1_base64": "slb7udZoeBryMTTvAjWLn+e5P18=" + "s": 81093104, + "sha1_base64": "G22CnU1mpj2kdJxksjiHw1lEFsM=" }, { "id": "Belarus_Hrodna Region", @@ -1042,8 +1042,8 @@ "Гродненская область", "Беларусь" ], - "s": 56394622, - "sha1_base64": "JDubQi8hU+Xrw5Ey2TkqA8McU6g=" + "s": 56427782, + "sha1_base64": "I2BLXUoX1l94G+je5b3tyeXH56U=" }, { "id": "Belarus_Brest Region", @@ -1054,8 +1054,8 @@ "Беларусь", "Брестская область" ], - "s": 67333925, - "sha1_base64": "hsoMGUlBBNCqNbjHyJ3ZrLNquic=" + "s": 67385741, + "sha1_base64": "KMgDR8lXJRraFMleDlK+zZCot7w=" }, { "id": "Belarus_Homiel Region", @@ -1066,8 +1066,8 @@ "Гомельская область", "Беларусь" ], - "s": 52754236, - "sha1_base64": "eQVHq2maFOUcy4/YR0lEIKQMVPs=" + "s": 52778972, + "sha1_base64": "WovcyPiq958SEr8dhYzQu5+RJB0=" }, { "id": "Belarus_Maglieu Region", @@ -1078,8 +1078,8 @@ "Могилёвская область", "Беларусь" ], - "s": 40977082, - "sha1_base64": "ET1z0XLu4Yi8lX7tEkg6aZMsBew=" + "s": 40977026, + "sha1_base64": "Ib80QMsQZbox9ro1p43FQghSgiE=" }, { "id": "Belarus_Minsk Region", @@ -1094,8 +1094,8 @@ "Колодищи", "Национальный аэропорт \"Минск\"" ], - "s": 100577031, - "sha1_base64": "6JSgK3ugc4kFf7UfR71Uc5SMq6Y=" + "s": 100613679, + "sha1_base64": "UY9efW7YAvg/pmLepCVOdYY/z5E=" } ] }, @@ -1112,8 +1112,8 @@ "België - Belgique - Belgien", "Vlaanderen" ], - "s": 74813485, - "sha1_base64": "yt2e0k+VBNfQTJbtja8Bp930/aQ=" + "s": 74851973, + "sha1_base64": "y/ipSUGF6wAcj/LDEjHuFwLcK9s=" }, { "id": "Belgium_Antwerp", @@ -1125,8 +1125,8 @@ "Nederland - Belgique / België / Belgien", "Vlaanderen" ], - "s": 73143772, - "sha1_base64": "FG9PxRMGtKy5sW8VIwZcxnWoBBQ=" + "s": 73172084, + "sha1_base64": "iyD70KGjnWRGvj4rOXFDLsulwxk=" }, { "id": "Belgium_East Flanders", @@ -1137,8 +1137,8 @@ "België - Belgique - Belgien", "Vlaanderen" ], - "s": 79747382, - "sha1_base64": "CmoP1NfuCF8dgasVmMfw0/YgOwg=" + "s": 79842518, + "sha1_base64": "4s/o9hqPxFARN1F6wR+2YSsH9QI=" }, { "id": "Belgium_Hainaut", @@ -1149,8 +1149,8 @@ "België - Belgique - Belgien", "Wallonie" ], - "s": 81285118, - "sha1_base64": "T8ksPetB17YiDChbHcFEGDqoz98=" + "s": 81517774, + "sha1_base64": "FLPdFuBMMEAJ6M/hHu6KwBAi1qY=" }, { "id": "Belgium_Walloon Brabant", @@ -1161,8 +1161,8 @@ "België - Belgique - Belgien", "Wallonie" ], - "s": 20203431, - "sha1_base64": "ua2+4cZdHd0/CTTYL6OsQovIkEM=" + "s": 20220039, + "sha1_base64": "WlSzceVzcKmjGAuL23IdP++UbNk=" }, { "id": "Belgium_Namur", @@ -1173,8 +1173,8 @@ "België - Belgique - Belgien", "Wallonie" ], - "s": 32231001, - "sha1_base64": "KDva08qrhdddPG3WobfpwkzGqHQ=" + "s": 32277185, + "sha1_base64": "GsyrFbsoRAMRtqU0R+k4W7/XvRs=" }, { "id": "Belgium_Limburg", @@ -1185,8 +1185,8 @@ "België - Belgique - Belgien", "Vlaanderen" ], - "s": 51774452, - "sha1_base64": "OYDPr3+Yf0cVo5+NvOZ6fVZEI50=" + "s": 51796004, + "sha1_base64": "Bx+L+zjPAv1tjqxBqIph7c/QrVw=" }, { "id": "Belgium_Luxembourg", @@ -1197,8 +1197,8 @@ "België - Belgique - Belgien", "Wallonie" ], - "s": 36542963, - "sha1_base64": "6xWMAiEdWqtImKWwAeI8z58iy64=" + "s": 36569267, + "sha1_base64": "kD94Du0lPr03iC9Mly7kxCfFDDs=" }, { "id": "Belgium_Flemish Brabant", @@ -1210,8 +1210,8 @@ "Région de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest", "Vlaanderen" ], - "s": 84803517, - "sha1_base64": "F74hLFs46jaxWIxZChV5WwkRITk=" + "s": 84831717, + "sha1_base64": "cG+s1XBFbs+0hQAZO1rRpR+MWlU=" }, { "id": "Belgium_Liege", @@ -1222,8 +1222,8 @@ "België - Belgique - Belgien", "Wallonie" ], - "s": 63448056, - "sha1_base64": "mB1OdKi6c+WTCM66gOqqSA6JcfQ=" + "s": 63469960, + "sha1_base64": "0pT6qDeT1ywlfysoJaP5jtOXMTA=" } ] }, @@ -1243,8 +1243,8 @@ "Stann Creek", "Toledo" ], - "s": 28274460, - "sha1_base64": "Mj5qHCl6jn2v2iA4mRTUcNYO4A8=" + "s": 28274500, + "sha1_base64": "PtDwhSGg4a1MHBLQRs7YI5Es04M=" }, { "id": "Benin", @@ -1266,8 +1266,8 @@ "Plateau", "Zou" ], - "s": 51965215, - "sha1_base64": "+94NXYTrBkR6mlWMj0mqfOwMkEw=" + "s": 51950015, + "sha1_base64": "wR+T6W7/K/R0w7d5TGASIGJYa9w=" }, { "id": "Bermuda", @@ -1277,8 +1277,8 @@ "affiliations": [ "Bermuda" ], - "s": 2102418, - "sha1_base64": "x4TmNb8CY2BR9OxjMZYAlM5N66I=" + "s": 2102274, + "sha1_base64": "fUsyGFSWP29rlNJIM6I65qz7x9Q=" }, { "id": "Bhutan", @@ -1308,8 +1308,8 @@ "དབང་འདུས་ཕོ་བྲང་རྫོང་ཁག་", "བསམ་གྲུབ་ལྗོངས་མཁར་རྫོང་ཁག་" ], - "s": 34466011, - "sha1_base64": "02IDN7phKgU9oHICV5qA0U2I4Ys=" + "s": 34467259, + "sha1_base64": "JP/0BH1xzOJnwf9Oh2rWwQVWcdg=" }, { "id": "Bolivia", @@ -1326,8 +1326,8 @@ "Pando", "Santa Cruz" ], - "s": 115889073, - "sha1_base64": "wVpG1YlnSoX5yrRPFwD+SXL601o=" + "s": 115967409, + "sha1_base64": "d+cUYrlWAaotXPkkSjCKCQcJGcI=" }, { "id": "Bolivia_South", @@ -1342,8 +1342,8 @@ "Potosí", "Tarija" ], - "s": 117074143, - "sha1_base64": "OFOSKNBjR7vUTDYFEl1sokUl7sk=" + "s": 117184839, + "sha1_base64": "RSOIb8EY6EBc3qRAg4xR6/ITCl0=" } ] }, @@ -1359,8 +1359,8 @@ "Bosna i Hercegovina", "Federacija Bosne i Hercegovine" ], - "s": 80195335, - "sha1_base64": "K63QPa2pArldw2FEXko8sZeBXyQ=" + "s": 80215279, + "sha1_base64": "ZwruxUMj4maEUcKH+m0tYGBvBxE=" }, { "id": "Bosnia and Herzegovina_Brcko district of Bosnia and Herzegowina", @@ -1372,8 +1372,8 @@ "Bosna i Hercegovina", "Republika Srpska" ], - "s": 2673120, - "sha1_base64": "y+E9C7iM1pouekahkhO2XuG874s=" + "s": 2673520, + "sha1_base64": "jOD360DBXPM6SoD5U0k9k/RcwAM=" }, { "id": "Bosnia and Herzegovina_Republic of Srpska", @@ -1384,8 +1384,8 @@ "Bosna i Hercegovina", "Republika Srpska" ], - "s": 101749845, - "sha1_base64": "2JGI5Uds2Mfu972w1LIKePhWQWQ=" + "s": 102060981, + "sha1_base64": "ngvi4gDm/ukqZ1gyKNfwWRbQOxs=" } ] }, @@ -1406,8 +1406,8 @@ "South-East District", "Southern District" ], - "s": 87974170, - "sha1_base64": "o9kR/9B0HNEl0nV7LVs4zEymVNA=" + "s": 87977922, + "sha1_base64": "VaXuCQsQczUmUO8ODwMQEXRPu+Q=" }, { "id": "Brazil", @@ -1421,8 +1421,8 @@ "Bahia", "Brasil" ], - "s": 135006642, - "sha1_base64": "NBGdSNBPO2d2dsajfQRaLKAaXnE=" + "s": 135193354, + "sha1_base64": "O9qL8nlJSjsV05D7HcSB0EauP5Q=" }, { "id": "Brazil_Goias_North", @@ -1433,8 +1433,8 @@ "Brasil", "Goiás" ], - "s": 32712679, - "sha1_base64": "ArpICBw8thYsf5IwwBwhPVZHVa0=" + "s": 32726663, + "sha1_base64": "uZQR0SzUjUUgrPqyyDpLzVxFefY=" }, { "id": "Brazil_Goias_Brasilia", @@ -1446,8 +1446,8 @@ "Distrito Federal", "Goiás" ], - "s": 57431259, - "sha1_base64": "qSE+TdJP1NP2ExJU2ITE1alPQV4=" + "s": 57481363, + "sha1_base64": "sx9RQJbUMtiNQvc2hdj3KuALKuU=" }, { "id": "Brazil_Mato Grosso Do Sul", @@ -1458,8 +1458,8 @@ "Brasil", "Mato Grosso do Sul" ], - "s": 41257464, - "sha1_base64": "8kc1GNtckfi04qtX3x+ccd2e8h4=" + "s": 41367184, + "sha1_base64": "9SngAkkx0MhVEQV0FBcTloKb4cM=" }, { "id": "Brazil_Mato Grosso", @@ -1470,8 +1470,8 @@ "Brasil", "Mato Grosso" ], - "s": 82999126, - "sha1_base64": "/4+umJd8kx8npmfsyPS3S6mmeoA=" + "s": 83007014, + "sha1_base64": "OC2FqOFr6Zhc12PMBiqeQo15Nak=" }, { "id": "Brazil_North Region_East", @@ -1484,8 +1484,8 @@ "Pará", "Tocantins" ], - "s": 131628963, - "sha1_base64": "TYWblpZjHxHY2nybQMEmhYeeoJI=" + "s": 131702083, + "sha1_base64": "wyRjXOKvckNZqyisoNi2l039/I0=" }, { "id": "Brazil_North Region_West", @@ -1499,8 +1499,8 @@ "Rondônia", "Roraima" ], - "s": 143904063, - "sha1_base64": "E2UJRF9MhltOdam7invCHvC80as=" + "s": 143975719, + "sha1_base64": "6/JE/nJlkeyMECPJ9EdXfanUzPc=" }, { "id": "Brazil_Northeast Region_East", @@ -1513,8 +1513,8 @@ "Pernambuco", "Sergipe" ], - "s": 94069525, - "sha1_base64": "QpXCpL9NPbtHY2JqwSV81tmeAus=" + "s": 94085229, + "sha1_base64": "MCXTbbINM15Z9UTZVXjtXFg4DZc=" }, { "id": "Brazil_Northeast Region_West", @@ -1528,8 +1528,8 @@ "Pernambuco", "Piauí" ], - "s": 224688030, - "sha1_base64": "1Wf/ODzkTBWU28yhLZ372WCbtfg=" + "s": 224786198, + "sha1_base64": "YSdAyITo4Ed2Zp07F8Jn9x5x1jA=" }, { "id": "Brazil_Paraiba", @@ -1540,8 +1540,8 @@ "Brasil", "Paraíba" ], - "s": 50175867, - "sha1_base64": "4BKDh80PpXcIS8yZBLStPTQShfc=" + "s": 50224387, + "sha1_base64": "fgLFqMxfSA8tpThmfhE6hjUuaSQ=" }, { "id": "Brazil_Parana_East", @@ -1552,8 +1552,8 @@ "Brasil", "Paraná" ], - "s": 83990591, - "sha1_base64": "wD2n/NM+cLYt8fCqDlMhBowRlHE=" + "s": 84012359, + "sha1_base64": "bEy2IHlowptbXDaGfZPRgcM6vL0=" }, { "id": "Brazil_Parana_West", @@ -1564,8 +1564,8 @@ "Brasil", "Paraná" ], - "s": 107007297, - "sha1_base64": "u8g78OJeiuCVc8XgMUohGh5FXEg=" + "s": 107123057, + "sha1_base64": "rk7CaIX920dsQfIr4jQKTe91E5U=" }, { "id": "Brazil_Rio Grande do Norte", @@ -1577,8 +1577,8 @@ "Pernambuco", "Rio Grande do Norte" ], - "s": 29225983, - "sha1_base64": "zum3OeDrzd/1Ldela1ewGuqyhwg=" + "s": 29242399, + "sha1_base64": "BZ4iYhpRrrOru5mSC/07Rpn+C0E=" }, { "id": "Brazil_Santa Catarina", @@ -1589,8 +1589,8 @@ "Brasil", "Santa Catarina" ], - "s": 154455627, - "sha1_base64": "9cFK8jTirLpHVUkkyjRQMVnSFl4=" + "s": 154505235, + "sha1_base64": "LI0YexxdzYQf7MTmrWTuU4i+99E=" }, { "id": "Brazil_South Region_East", @@ -1601,8 +1601,8 @@ "Brasil", "Rio Grande do Sul" ], - "s": 105474806, - "sha1_base64": "1QiJOmA7fbD9VLpaQZCoHpQfMIk=" + "s": 105505646, + "sha1_base64": "sAUT9sasV6j5cjfPXJoBXMQQ4TQ=" }, { "id": "Brazil_South Region_West", @@ -1613,8 +1613,8 @@ "Brasil", "Rio Grande do Sul" ], - "s": 73668424, - "sha1_base64": "IrxokoumL4DNK07XOdrEtM4pBQA=" + "s": 73669888, + "sha1_base64": "zMNVlz557VDg8HXYZZMnzm2ZmbE=" }, { "id": "Brazil_Southeast Region_Espirito Santo", @@ -1625,8 +1625,8 @@ "Brasil", "Espírito Santo" ], - "s": 222583729, - "sha1_base64": "rjSGpFSC1UIA9HI5xUIaVpqeiQc=" + "s": 222587281, + "sha1_base64": "8mNlOFX3lfWjqPcergtyG20nlfw=" }, { "id": "Brazil_Southeast Region_Minas Gerais_Contagem", @@ -1637,8 +1637,8 @@ "Brasil", "Minas Gerais" ], - "s": 158940548, - "sha1_base64": "QGOSqdRhm2e8xck4VN33mLkntJw=" + "s": 158996948, + "sha1_base64": "Lu3fQzMTmqhqxhIPEDZSR043pdc=" }, { "id": "Brazil_Southeast Region_Minas Gerais_North", @@ -1649,8 +1649,8 @@ "Brasil", "Minas Gerais" ], - "s": 140629162, - "sha1_base64": "xUBwPIz4V4ezYDvkI5eFIiJWhDE=" + "s": 140712458, + "sha1_base64": "nRond8Qx510D00L/AUE391OSOZs=" }, { "id": "Brazil_Southeast Region_Rio de Janeiro", @@ -1661,8 +1661,8 @@ "Brasil", "Rio de Janeiro" ], - "s": 94401583, - "sha1_base64": "V0NiUojq4C/bwfCp501D02izEis=" + "s": 94419855, + "sha1_base64": "QRfqtQcpn3jJa8g1VeVlAMiOBdU=" }, { "id": "Brazil_Southeast Region_Sao Paulo_Campinas", @@ -1673,8 +1673,8 @@ "Brasil", "São Paulo" ], - "s": 108847983, - "sha1_base64": "lT5EL+Vf5Y7FBvN722j0bxUNyfk=" + "s": 108969039, + "sha1_base64": "bedjI5Z5QtV8WeXSRgUNw+nq2tY=" }, { "id": "Brazil_Southeast Region_Sao Paulo_City", @@ -1685,8 +1685,8 @@ "Brasil", "São Paulo" ], - "s": 181346575, - "sha1_base64": "9f8LkPCExC3lssJTC2U9PhocJq4=" + "s": 181458399, + "sha1_base64": "VzaOwjsZq1XETszX0xn9Cr6P4V0=" }, { "id": "Brazil_Southeast Region_Sao Paulo_West", @@ -1697,8 +1697,8 @@ "Brasil", "São Paulo" ], - "s": 81121952, - "sha1_base64": "coUB5m5GCtrmQJAv4pIXP6O7RCg=" + "s": 81161736, + "sha1_base64": "MbM9oBKI2QvdAOO3SiQf9Zsa6wU=" } ] }, @@ -1710,8 +1710,8 @@ "affiliations": [ "Brunei Darussalam" ], - "s": 10693274, - "sha1_base64": "EcwkKuhUdsOCvwxVYtiJp8+dTL4=" + "s": 10693922, + "sha1_base64": "PDBN58KIm1eGQpdtJdmIIwlVcSY=" }, { "id": "Bulgaria", @@ -1724,8 +1724,8 @@ "affiliations": [ "България" ], - "s": 71229399, - "sha1_base64": "r56+31mpUK2UnYZbswpbT3oarFg=" + "s": 71242967, + "sha1_base64": "1wF6owGjexJHDmte2F2Ca7wZmzU=" }, { "id": "Bulgaria_West", @@ -1735,8 +1735,8 @@ "affiliations": [ "България" ], - "s": 132080363, - "sha1_base64": "KjOVSHRqx6jyULOViGkdRHsK3nM=" + "s": 132524123, + "sha1_base64": "JLrTNUzgfDN/G5Gjyrd5aHvsccM=" } ] }, @@ -1761,8 +1761,8 @@ "Sahel", "Sud-Ouest" ], - "s": 72374928, - "sha1_base64": "gx+0jTCqCAwQCOJfpqcGSQtFFiY=" + "s": 72459584, + "sha1_base64": "2wWbajWeFj1h7TLm+SOq4Lnvhso=" }, { "id": "Burundi", @@ -1789,8 +1789,8 @@ "Rutana", "Ruyigi" ], - "s": 47333734, - "sha1_base64": "ZnLKE85FXdVbYG60rVAOrelAYsc=" + "s": 47350358, + "sha1_base64": "okt0eZTX2pYinshHYPIx1Ifgqs0=" }, { "id": "Cambodia", @@ -1825,8 +1825,8 @@ "Tbong Khmum", "ព្រះរាជាណាចក្រកម្ពុជា (Cambodia)" ], - "s": 47479402, - "sha1_base64": "Z20VuX4klvmgTcRiTTdnp81zYzw=" + "s": 47547434, + "sha1_base64": "7kK2WpJ2Hq4PYRlLt8XKf/GMYbo=" }, { "id": "Cameroon", @@ -1845,8 +1845,8 @@ "Nord", "Sud" ], - "s": 174115587, - "sha1_base64": "WTpWH+IjxZrFJR1rxwm0yC7BLQQ=" + "s": 174167451, + "sha1_base64": "yxN8EqpEmUoMFw8tewm4bNV3mA0=" }, { "id": "Cameroon_West", @@ -1860,8 +1860,8 @@ "Ouest", "Sud-Ouest" ], - "s": 94225727, - "sha1_base64": "SHs5R3/Mdcjyd3wZn+3oAMpFmG8=" + "s": 94230239, + "sha1_base64": "jCLD2AE1ByoAbAD3aHkCBpAzpkk=" } ] }, @@ -1880,8 +1880,8 @@ "Alberta", "Canada" ], - "s": 111125864, - "sha1_base64": "EUK/5sYkJHlGY/4aySO6zc4ueX4=" + "s": 111571097, + "sha1_base64": "VpNd7XyCZMyNlLNHVSljBY/9cXQ=" }, { "id": "Canada_Alberta_North", @@ -1892,8 +1892,8 @@ "Alberta", "Canada" ], - "s": 148889404, - "sha1_base64": "FG5IopejheZZ5KwHy7xNkHDWN/Y=" + "s": 148895012, + "sha1_base64": "0lGekWFlpzR+FVF3hhga4vOak/Y=" }, { "id": "Canada_Alberta_South", @@ -1904,8 +1904,8 @@ "Alberta", "Canada" ], - "s": 102664542, - "sha1_base64": "cx2qQkBo2Twg4lLzf2GqBAtVcIU=" + "s": 102797814, + "sha1_base64": "/XF5FQIxh10R2Hh3+GMGwow4OEk=" } ] }, @@ -1921,8 +1921,8 @@ "British Columbia", "Canada" ], - "s": 138113331, - "sha1_base64": "uJhlQYAyxbc3J8Sy1BWwbi2u5cM=" + "s": 138115235, + "sha1_base64": "EgKIfrSieXjQNHd1kbRo25CAIuU=" }, { "id": "Canada_British Columbia_Far_North", @@ -1933,8 +1933,8 @@ "British Columbia", "Canada" ], - "s": 35895868, - "sha1_base64": "gNKxPNQYf6tOcN448JJZnGF5lqA=" + "s": 35899076, + "sha1_base64": "4kule0IiMrdtMlcJjaZmkUyxXFI=" }, { "id": "Canada_British Columbia_Islands", @@ -1945,8 +1945,8 @@ "British Columbia", "Canada" ], - "s": 89520678, - "sha1_base64": "My7WUrFBRtpAR6WK2feS+pVtKdU=" + "s": 89493950, + "sha1_base64": "ZXxWpRigdFVGGvhS83EPfEfzwfA=" }, { "id": "Canada_British Columbia_North", @@ -1957,8 +1957,8 @@ "British Columbia", "Canada" ], - "s": 282109028, - "sha1_base64": "ct4z3rhqvsLyrGxA1jA2CQZo49s=" + "s": 282125380, + "sha1_base64": "eB/285lijwo+y2NyVUmCEsuMiVU=" }, { "id": "Canada_British Columbia_Northeast", @@ -1970,7 +1970,7 @@ "Canada" ], "s": 113866495, - "sha1_base64": "0/18h9z2NKWPhA6M9nhp9vQHftk=" + "sha1_base64": "6VVjZxINVQ2lUEcwXo1pJU37Kj0=" }, { "id": "Canada_British Columbia_Southeast", @@ -1981,8 +1981,8 @@ "British Columbia", "Canada" ], - "s": 129020215, - "sha1_base64": "mITI5PLEB+NQpL2bACitXbr/uwg=" + "s": 129057471, + "sha1_base64": "2E843L0kxEFv75sfGnC+r8LCpFU=" }, { "id": "Canada_British Columbia_Vancouver", @@ -1993,8 +1993,8 @@ "British Columbia", "Canada" ], - "s": 120246562, - "sha1_base64": "VX4PPv329QQB3rowrOk1ySqymm8=" + "s": 120305354, + "sha1_base64": "7eGIqXOmJGsUZAnBQpLilSC3BjI=" } ] }, @@ -2011,8 +2011,8 @@ "Newfoundland and Labrador", "ᓄᓇᕗᑦ Nunavut" ], - "s": 62493246, - "sha1_base64": "oCABOQ4s6EvUPZO99NRPhFpdBlw=" + "s": 62493254, + "sha1_base64": "ZLxkjZ2PU5iL0/HhlAXVzMdNBYA=" }, { "id": "Canada_Labrador_South", @@ -2023,8 +2023,8 @@ "Canada", "Newfoundland and Labrador" ], - "s": 53662773, - "sha1_base64": "u5qMVg7g1S1NRF5QB3pIOceNFDM=" + "s": 53663045, + "sha1_base64": "ty+NNdbIGl1mERFcfyvSzL6JU6M=" }, { "id": "Canada_Labrador_West", @@ -2035,8 +2035,8 @@ "Canada", "Newfoundland and Labrador" ], - "s": 59415491, - "sha1_base64": "j7cwBTldgUP5kXtj85OYWvtdJ88=" + "s": 59415715, + "sha1_base64": "yfFbBCq9RLivUDeNW/ZOfyb8fws=" } ] }, @@ -2054,8 +2054,8 @@ "Manitoba", "ᓄᓇᕗᑦ Nunavut" ], - "s": 96585415, - "sha1_base64": "tFSM693s87FgZiqFkHkF39ZfliI=" + "s": 96586815, + "sha1_base64": "8qg5+p8V3wDXKZO9FNDF3WJXfHY=" }, { "id": "Canada_Manitoba_Northwest", @@ -2066,8 +2066,8 @@ "Canada", "Manitoba" ], - "s": 59395596, - "sha1_base64": "gn5E5YFJhUFYLAbc2y27853n/+M=" + "s": 59396804, + "sha1_base64": "FLBi9Jte0LOBlsDjOgut0poNjmM=" }, { "id": "Canada_Manitoba_South", @@ -2078,8 +2078,8 @@ "Canada", "Manitoba" ], - "s": 50682399, - "sha1_base64": "usVQYoXqdFuKb8EV+UJc1xcapb4=" + "s": 50681567, + "sha1_base64": "LZ4/OAGjgsvLfvLMdfj1vqxe+xo=" }, { "id": "Canada_Manitoba_Winnipeg", @@ -2090,8 +2090,8 @@ "Canada", "Manitoba" ], - "s": 51084948, - "sha1_base64": "sR9FySKv7yqaXuEO3yvFBlBsRHg=" + "s": 51108716, + "sha1_base64": "UpRV3VXELktoOTC4tF3SdyXNON8=" } ] }, @@ -2106,8 +2106,8 @@ "New Brunswick", "Oromocto Indian Reserve NO. 26" ], - "s": 71719123, - "sha1_base64": "NB5GFHqia0sGYWmA2ZMVRoDANJg=" + "s": 71828508, + "sha1_base64": "3k39NKYyo+AlAPjuzWj9yZe4mqM=" }, { "id": "Canada_Newfoundland", @@ -2121,8 +2121,8 @@ "Canada", "Newfoundland and Labrador" ], - "s": 33627718, - "sha1_base64": "a6SzI9COZhde1b7uRjQJtm7XAno=" + "s": 33636014, + "sha1_base64": "X1gt/N+37uqYPZMGu6HwQAsOeBU=" }, { "id": "Canada_Newfoundland_North", @@ -2133,8 +2133,8 @@ "Canada", "Newfoundland and Labrador" ], - "s": 37379659, - "sha1_base64": "nItwDGIX6HANTH4vygvNzaymvOk=" + "s": 37380635, + "sha1_base64": "3idjZkQZnehOyMDKgsUNEXZdhDg=" }, { "id": "Canada_Newfoundland_South", @@ -2148,8 +2148,8 @@ "Newfoundland and Labrador", "Île Verte" ], - "s": 27790754, - "sha1_base64": "0UL05kAckNQZtDzGxLHE6wvIF+M=" + "s": 27946666, + "sha1_base64": "BAnlhbvsO9HVPv/nEpvDglcQzXo=" }, { "id": "Canada_Newfoundland_West", @@ -2160,8 +2160,8 @@ "Canada", "Newfoundland and Labrador" ], - "s": 28292401, - "sha1_base64": "ihaXSW2HmcwwMTWxNbXngNVD1w8=" + "s": 28292601, + "sha1_base64": "M0q0Cy138JRqMSQmt2V1IqMQ9rQ=" } ] }, @@ -2177,8 +2177,8 @@ "Canada", "Northwest Territories" ], - "s": 104597125, - "sha1_base64": "bQQRFjFbRhaqplDe4Gge6IL5p9A=" + "s": 104597037, + "sha1_base64": "qi+522riYXkF1YkkKDFSnvDglec=" }, { "id": "Canada_Northwest Territories_North", @@ -2189,8 +2189,8 @@ "Canada", "Northwest Territories" ], - "s": 327547926, - "sha1_base64": "jZC+Jb8vcP6zoJhNHazfkA9dBOI=" + "s": 327573870, + "sha1_base64": "egTp/kewc4rVGaA46kDNcHe70T4=" }, { "id": "Canada_Northwest Territories_Yellowknife", @@ -2201,8 +2201,8 @@ "Canada", "Northwest Territories" ], - "s": 89223021, - "sha1_base64": "H0VTLj9wKPHwgrAtA01EPLkWths=" + "s": 89220005, + "sha1_base64": "vNYCRRLmfylp+HCJ1mQl+6yheYM=" } ] }, @@ -2218,8 +2218,8 @@ "Canada", "Nova Scotia" ], - "s": 75113018, - "sha1_base64": "1l7Pu7UBeuDrDlLeuAYKG1h2aA4=" + "s": 75118362, + "sha1_base64": "z5FHvlbXe/6tYLR0Sx57kEtsLuE=" }, { "id": "Canada_Nova Scotia_Sydney", @@ -2231,8 +2231,8 @@ "Nova Scotia", "Prince Edward Island" ], - "s": 32465147, - "sha1_base64": "yTvmmmx8ayAAW7Mtya7I+fVhkz0=" + "s": 32535387, + "sha1_base64": "tWwiLED4lHUScUjDgMAqYmOSSUQ=" } ] }, @@ -2248,8 +2248,8 @@ "Canada", "ᓄᓇᕗᑦ Nunavut" ], - "s": 393751133, - "sha1_base64": "XiTWbwn8Jiz8AZpr9f201EkMeEo=" + "s": 393751181, + "sha1_base64": "HgIbYK+eEpQoEBwDvo/e2Q2VZgw=" }, { "id": "Canada_Nunavut_South", @@ -2260,8 +2260,8 @@ "Canada", "ᓄᓇᕗᑦ Nunavut" ], - "s": 844878203, - "sha1_base64": "DaGNbjhZG4oI1EJxZrLjIWUn8/A=" + "s": 850917539, + "sha1_base64": "LnbhAMuqK7xvacWT0HcD1VfrPy8=" } ] }, @@ -2277,8 +2277,8 @@ "Canada", "Ontario" ], - "s": 71716973, - "sha1_base64": "NBIw2zorhmLDvyC46HXvO8fJNOg=" + "s": 71730445, + "sha1_base64": "qsK0ddCqLLxzRTlpOg808VKKPmA=" }, { "id": "Canada_Ontario_Kingston", @@ -2289,8 +2289,8 @@ "Canada", "Ontario" ], - "s": 125299821, - "sha1_base64": "yvo2a3fUfZAoBD5b/3HhXEz1Qik=" + "s": 125317165, + "sha1_base64": "L89TLXxPcwUWFs2Uo9Rm2oQ+NDg=" }, { "id": "Canada_Ontario_London", @@ -2301,8 +2301,8 @@ "Canada", "Ontario" ], - "s": 114055718, - "sha1_base64": "1dOBckP39xrSgw6N1Syh7xKOYHA=" + "s": 114197862, + "sha1_base64": "HTCRe2ctV9Q4peBzyTdIhpE99KI=" }, { "id": "Canada_Ontario_Northeastern_Central", @@ -2313,8 +2313,8 @@ "Canada", "Ontario" ], - "s": 38807628, - "sha1_base64": "C0ZwsYO8b1fYQoeyHft+NeHUiZk=" + "s": 38813436, + "sha1_base64": "x3QbJ8B5BjE7J35QVZl8l5zAXGI=" }, { "id": "Canada_Ontario_Northeastern_North", @@ -2327,8 +2327,8 @@ "Ontario", "ᓄᓇᕗᑦ Nunavut" ], - "s": 48558589, - "sha1_base64": "gdfbxffMgG7DWZjBle8WbqtjHfM=" + "s": 48558973, + "sha1_base64": "jfpryT011lgsYkVcbsQeUcE+COs=" }, { "id": "Canada_Ontario_Northeastern_S", @@ -2339,8 +2339,8 @@ "Canada", "Ontario" ], - "s": 45314588, - "sha1_base64": "QzLGuX3+oNZ2JS0i6xWtQi0cpJs=" + "s": 45311020, + "sha1_base64": "Pq5SjMYoQfVZg9FjBpsmd55yPoY=" }, { "id": "Canada_Ontario_Northeastern_SE", @@ -2351,8 +2351,8 @@ "Canada", "Ontario" ], - "s": 35931052, - "sha1_base64": "sRhkv2i47IhNdhxYGOb3DLF8DZU=" + "s": 36158180, + "sha1_base64": "4qNyg+3FbqrS1bpeWVylR702fgg=" }, { "id": "Canada_Ontario_Northeastern_SW", @@ -2363,8 +2363,8 @@ "Canada", "Ontario" ], - "s": 50698133, - "sha1_base64": "sXwmBCinaqtztx3pMo4ohiH9occ=" + "s": 50713621, + "sha1_base64": "fuTMc6Jwo5k4SX5K/AbA3LIKmt8=" }, { "id": "Canada_Ontario_Northeastern_Wawa", @@ -2375,8 +2375,8 @@ "Canada", "Ontario" ], - "s": 34958882, - "sha1_base64": "zUEhIZby9K+FlQcfZABu/6YD87I=" + "s": 34955090, + "sha1_base64": "DS2oxNHBIND+XFAw95Jpr+VMsxE=" }, { "id": "Canada_Ontario_Northern", @@ -2387,8 +2387,8 @@ "Canada", "Ontario" ], - "s": 53440094, - "sha1_base64": "tRStEXys39iMf7JCEf0FusP75Q8=" + "s": 53446702, + "sha1_base64": "iwxCnhLHy8iLE6dVxfOmkYwZJLs=" }, { "id": "Canada_Ontario_Northwestern", @@ -2402,8 +2402,8 @@ "Ontario", "ᓄᓇᕗᑦ Nunavut" ], - "s": 168586586, - "sha1_base64": "Z+E3f4yGx5HP+F2A79HvQBRoBxM=" + "s": 168606906, + "sha1_base64": "/httwPwaUEJa4Qh10az+k8Wsigk=" }, { "id": "Canada_Ontario_Toronto", @@ -2414,8 +2414,8 @@ "Canada", "Ontario" ], - "s": 146873650, - "sha1_base64": "oUIgiHQk/8HfeiSZpEpiGJzchFI=" + "s": 146937122, + "sha1_base64": "vff9kt4V2SF/UXoJc04Pj3MtF1k=" } ] }, @@ -2428,8 +2428,8 @@ "Canada", "Prince Edward Island" ], - "s": 14509450, - "sha1_base64": "Dt+d1BarZMBflyln747dW5tuVvk=" + "s": 14518706, + "sha1_base64": "a4G4vLWlXCU1UhMA91lCVQ7cjjk=" }, { "id": "Canada_Quebec", @@ -2443,8 +2443,8 @@ "Canada", "Québec" ], - "s": 94018559, - "sha1_base64": "OAdD8ng470Lu2a83YrS5UsBUuuE=" + "s": 94109047, + "sha1_base64": "nyihK9PEoxHKXgi9f5+lIx3FRkA=" }, { "id": "Canada_Quebek_Far North", @@ -2458,8 +2458,8 @@ "Québec", "ᓄᓇᕗᑦ Nunavut" ], - "s": 515537705, - "sha1_base64": "C3yzdFdulUpVUA1Itb/Kcd8BR1Y=" + "s": 515583801, + "sha1_base64": "At80a6KsY2K2Ff8tCj7GdeTVDtw=" }, { "id": "Canada_Quebek_Montreal", @@ -2470,8 +2470,8 @@ "Canada", "Québec" ], - "s": 129237552, - "sha1_base64": "MjFyxUVV3ktAzd3hHpQuNVXyrN4=" + "s": 129286897, + "sha1_base64": "Awn52+/NNU3c/lpNdO+ztREmIsM=" }, { "id": "Canada_Quebek_Lachute", @@ -2482,8 +2482,8 @@ "Canada", "Québec" ], - "s": 63264757, - "sha1_base64": "W9wvXjo1P1LYkv3DAvK9pwwwgjo=" + "s": 63296477, + "sha1_base64": "MpKm+/RVMnOiIyMszuT10Y0GGSo=" }, { "id": "Canada_Quebek_North", @@ -2494,8 +2494,8 @@ "Canada", "Québec" ], - "s": 100877455, - "sha1_base64": "rdHzqEFo/iIkzPTzJQpFvBuaaMM=" + "s": 100882759, + "sha1_base64": "SMWdStP/Awn9ET6CVbxMYyj5uWY=" }, { "id": "Canada_Quebek_Southeast_Rimouski", @@ -2506,8 +2506,8 @@ "Canada", "Québec" ], - "s": 43493846, - "sha1_base64": "SN+Khw229FsJ2aYYPmMidpq4Kzc=" + "s": 43501294, + "sha1_base64": "7JFVJx73oDyv3cEDr0nvwD4+WtA=" }, { "id": "Canada_Quebek_Southeast_Saguenay", @@ -2518,8 +2518,8 @@ "Canada", "Québec" ], - "s": 76870753, - "sha1_base64": "bClOMiRJ3XUT5G7iZhhQjpI/Uas=" + "s": 76874225, + "sha1_base64": "JuB74MKs3cEXruWmqtq4M3M3xag=" }, { "id": "Canada_Quebek_West_Chibougamau", @@ -2530,8 +2530,8 @@ "Canada", "Québec" ], - "s": 68588484, - "sha1_base64": "QhOaX68Hx3N+bLP741WzVAKNTHQ=" + "s": 68592228, + "sha1_base64": "Z5tqZ1Q0YlW9Eb7rJiqiWQQhfd8=" }, { "id": "Canada_Quebek_West_Rouyn-Noranda", @@ -2542,8 +2542,8 @@ "Canada", "Québec" ], - "s": 74202917, - "sha1_base64": "10yiKSHFWnO99OsY/0vt4RUwy9s=" + "s": 74212685, + "sha1_base64": "zBuguP5LhxNePq2lvlZ3UwfyKLw=" } ] }, @@ -2559,8 +2559,8 @@ "Canada", "Saskatchewan" ], - "s": 63149864, - "sha1_base64": "FCH4If5ZDl0Tvb0xieG7fFio/Tg=" + "s": 63157592, + "sha1_base64": "c7EjVVkj3MFWI2sFOddIHRdAUJY=" }, { "id": "Canada_Saskatchewan_Saskatoon", @@ -2571,8 +2571,8 @@ "Canada", "Saskatchewan" ], - "s": 46987434, - "sha1_base64": "TBYndU0DuyO0Ntt7Ztra4a5HSAc=" + "s": 47029850, + "sha1_base64": "sl5vgsn/+HNQFdO6ytz1WMn6ukA=" }, { "id": "Canada_Saskatchewan_Regina", @@ -2583,8 +2583,8 @@ "Canada", "Saskatchewan" ], - "s": 57327427, - "sha1_base64": "7w5YDj0mBxMn31aLURnbvnc4rxk=" + "s": 57329747, + "sha1_base64": "8S2c9QkW1cw7uHW8TEtHYJvY1tQ=" } ] }, @@ -2600,8 +2600,8 @@ "Canada", "Yukon" ], - "s": 83873503, - "sha1_base64": "/yb8E5uUx0lZEWVQqDs89q92KiU=" + "s": 83873551, + "sha1_base64": "BdSSy+yTWIOSBIrtEo59w+x3YAg=" }, { "id": "Canada_Yukon_Whitehorse", @@ -2612,8 +2612,8 @@ "Canada", "Yukon" ], - "s": 56400118, - "sha1_base64": "2Jxmc1cYEehnCdmiVJngduF/ZtE=" + "s": 56400110, + "sha1_base64": "nwss3T2kDMiFjxhzoWb6ONY4a0c=" } ] } @@ -2630,8 +2630,8 @@ "country_name_synonyms": [ "Cabo Verde" ], - "s": 16133583, - "sha1_base64": "kuRsTugkWvvlsp36STKslfiH/cY=" + "s": 16134343, + "sha1_base64": "oWHaV8ujmErMTgzy7t6+dPEJM/U=" }, { "id": "Cayman Islands", @@ -2641,8 +2641,8 @@ "affiliations": [ "Cayman Islands" ], - "s": 1445311, - "sha1_base64": "/XftAlfok8LszzWBOg9Abf1qAb0=" + "s": 1446535, + "sha1_base64": "Jkw5kVMnJxsbxCt+eylvc9bJ+2Y=" }, { "id": "Central African Republic", @@ -2668,8 +2668,8 @@ "Sangha-Mbaéré", "Vakaga" ], - "s": 162132389, - "sha1_base64": "sPokLuWXHs7q5ld7fj9zx7opzdo=" + "s": 162232485, + "sha1_base64": "Vaj4lC+CDpiBgwl2KR1DSsw1Qbg=" }, { "id": "Chad", @@ -2701,8 +2701,8 @@ "Tibesti Region", "Wadi Fira Region" ], - "s": 147270003, - "sha1_base64": "3pTHkTE9YdfaNx6Ax3z8U57l4h0=" + "s": 149163571, + "sha1_base64": "dDhBfN+GFY0WEeYLR1IJRB9U3kU=" }, { "id": "Colombia", @@ -2727,8 +2727,8 @@ "Santander", "Sucre" ], - "s": 150474985, - "sha1_base64": "xterFMy6CO78Ode92tQRs4E6tDo=" + "s": 150670057, + "sha1_base64": "bNGIML29aNNNIDAiizdTJFng/Is=" }, { "id": "Colombia_West", @@ -2751,8 +2751,8 @@ "Tolima", "Valle del Cauca" ], - "s": 160163925, - "sha1_base64": "f9LRUQDkl09rP0DKvVbwfy/MJGM=" + "s": 160280405, + "sha1_base64": "RJCDbiUPYzxD+8Fw2Et1yhDAWyM=" }, { "id": "Colombia_East", @@ -2772,8 +2772,8 @@ "Vaupés", "Vichada" ], - "s": 82449595, - "sha1_base64": "9197vkdl65PtIwRCU/1sI9TrJVk=" + "s": 82497267, + "sha1_base64": "XTq9snqjxcRH4ksPWENdSWpmFG8=" } ] }, @@ -2788,8 +2788,8 @@ "Mwali", "Nzwani / أنجوان" ], - "s": 6522109, - "sha1_base64": "B+fYKQZCnkeM3wm1hyMVh+DXheI=" + "s": 6522069, + "sha1_base64": "Hx6hN+QUjmotTEY7ASlpinKjCPc=" }, { "id": "Congo-Brazzaville", @@ -2814,8 +2814,8 @@ "country_name_synonyms": [ "Republic of the Congo" ], - "s": 46476870, - "sha1_base64": "Yzs1C3/eUEI0Fp8DSf2fAlnd4fg=" + "s": 46562574, + "sha1_base64": "Uie+C3tdJDP2hLoXy5A1J6Ks7zA=" }, { "id": "Congo-Kinshasa", @@ -2855,8 +2855,8 @@ "Tshuapa", "Équateur" ], - "s": 343329926, - "sha1_base64": "FGqLJ/V1gSoPv0g73dg7E8UWdD4=" + "s": 343609438, + "sha1_base64": "0cSJIZWr5zDiJL0tQwUggMU3uu8=" }, { "id": "Congo-Kinshasa_Kivu", @@ -2868,8 +2868,8 @@ "Nord-Kivu", "Sud-Kivu" ], - "s": 171685662, - "sha1_base64": "riJsV8WmeZaGap4QpsCDtAQS6n8=" + "s": 171690622, + "sha1_base64": "x5r35Uqw+bpGTUX22plgsqneZ0w=" } ] }, @@ -2882,7 +2882,7 @@ "Cook Islands" ], "s": 1549627, - "sha1_base64": "tVffl4SiCo2f+mIUnsDKf0xb51U=" + "sha1_base64": "jGX3dt/GRfymuntrHqIFEDqYeRU=" }, { "id": "Costa Rica", @@ -2901,8 +2901,8 @@ "Puntarenas", "San José" ], - "s": 49231473, - "sha1_base64": "2dtJ/Q5G6z6kIJoqiZW00gNa+G4=" + "s": 49287809, + "sha1_base64": "XgoslusUDPybH+oJbDD8q1Rh4Fs=" }, { "id": "Croatia", @@ -2915,8 +2915,8 @@ "affiliations": [ "Hrvatska" ], - "s": 95594456, - "sha1_base64": "SBgjkU+YgdDomGwKU7zWwvmKtWw=" + "s": 95683840, + "sha1_base64": "YpRvKWECjXkCW2gNmwzBMgbDvdU=" }, { "id": "Croatia_West", @@ -2927,8 +2927,8 @@ "Hrvatska", "Italia" ], - "s": 94689073, - "sha1_base64": "oyASlWE73TjNDoGLKMvrwa2zGWo=" + "s": 94717753, + "sha1_base64": "IoaDo11imQ8wknMcAlEqkglSot0=" } ] }, @@ -2954,8 +2954,8 @@ "Santiago de Cuba", "Villa Clara" ], - "s": 76222724, - "sha1_base64": "MXTr5EjJyPEMNCOZIgKFSwg2IKs=" + "s": 76307748, + "sha1_base64": "jluLGxKoi+LRx9EcE/hr82zcSkU=" }, { "id": "Cyprus", @@ -2966,8 +2966,8 @@ "British Sovereign Base Areas", "Κύπρος - Kıbrıs" ], - "s": 46750650, - "sha1_base64": "FECPmcQNNhJsxlRrGS4ep67jjJc=" + "s": 46805770, + "sha1_base64": "kSOH3nnWolO5d1ah0FOm4Hh2f9I=" }, { "id": "Czech Republic", @@ -2984,8 +2984,8 @@ "Praha", "Česko" ], - "s": 37167321, - "sha1_base64": "O93eZRjlB2XOt/lKnIz28wxuxcE=" + "s": 37178737, + "sha1_base64": "qWHhkG7OBx8hYus90i/CDXRiimY=" }, { "id": "Czech_Severovychod_Pardubicky kraj", @@ -2996,8 +2996,8 @@ "Severovýchod", "Česko" ], - "s": 48345285, - "sha1_base64": "XwJKMRZodZJgCXpu1VxKFVzpuG4=" + "s": 48447125, + "sha1_base64": "7mtCP00lOeFBQJgcF2c+pqJRvn8=" }, { "id": "Czech_Karlovasky kraj", @@ -3008,8 +3008,8 @@ "Severozápad", "Česko" ], - "s": 26526838, - "sha1_base64": "widJVsaAiKTMmCZ2O+kAJU2wy5k=" + "s": 26559558, + "sha1_base64": "HDqER0/4FYK4CLiUCOX0tvlNx0M=" }, { "id": "Czech_Ustecky kraj", @@ -3020,8 +3020,8 @@ "Severozápad", "Česko" ], - "s": 60627342, - "sha1_base64": "M6HolhxEM5ImFhOML9YQoBg9TcQ=" + "s": 60677222, + "sha1_base64": "LjEiUV4dyHLVXhCzGUwYOwAxOC8=" }, { "id": "Czech_Jihozapad_Plzensky kraj", @@ -3032,8 +3032,8 @@ "Jihozápad", "Česko" ], - "s": 63596238, - "sha1_base64": "5C9TAy5aPk09HYCFeXreZFdhhsY=" + "s": 63649262, + "sha1_base64": "VMFMOW7cvJfu/cKAlra+jxA0Osw=" }, { "id": "Czech_Severovychod_Kralovehradecky kraj", @@ -3044,8 +3044,8 @@ "Severovýchod", "Česko" ], - "s": 50749044, - "sha1_base64": "aVnBL4udq9LYvdWGPe/dPKjABPg=" + "s": 50796180, + "sha1_base64": "QL7pCiZ9Ij+B2nX+iCMW2SMmvpY=" }, { "id": "Czech_Olomoucky kraj", @@ -3056,8 +3056,8 @@ "Střední Morava", "Česko" ], - "s": 56048540, - "sha1_base64": "jR7hb8SHe1TEYeVM2+Y2tWE97rc=" + "s": 56127444, + "sha1_base64": "425SGl5ftNvUzQicjazUSIdVcpQ=" }, { "id": "Czech_Zlinsky Kraj", @@ -3068,8 +3068,8 @@ "Střední Morava", "Česko" ], - "s": 47130674, - "sha1_base64": "AiVMCZxdh4yb9xrsHBx/vgRXX0I=" + "s": 47169642, + "sha1_base64": "rK7jL5lnO13yT9gO/Du9AfeBYJM=" }, { "id": "Czech_Stredni Cechy_East", @@ -3080,8 +3080,8 @@ "Střední Čechy", "Česko" ], - "s": 66461639, - "sha1_base64": "lV/nGejze+BSIrUnNN041dhuSnQ=" + "s": 66502023, + "sha1_base64": "LnyjKujEXuxWH0zy6l9QFLMkpIc=" }, { "id": "Czech_Jihozapad_Jihocesky kraj", @@ -3092,8 +3092,8 @@ "Jihozápad", "Česko" ], - "s": 83762992, - "sha1_base64": "77MaTkuzfHTg56zz5Dbdonfvm4A=" + "s": 83776768, + "sha1_base64": "EEHhk3NWOS0G4ULEcPkhu7n1Qdc=" }, { "id": "Czech_Jihovychod_Kraj Vysocina", @@ -3104,8 +3104,8 @@ "Jihovýchod", "Česko" ], - "s": 63935853, - "sha1_base64": "+qsRO9uuDC4KWcOSuhTWLL3QcJM=" + "s": 63959877, + "sha1_base64": "l1PLM/4j6JwBYDQMsbg1IFZvkvs=" }, { "id": "Czech_Severovychod_Liberecky kraj", @@ -3116,8 +3116,8 @@ "Severovýchod", "Česko" ], - "s": 40257042, - "sha1_base64": "0bjItvoo1TWPfi8dkWkEWx5236g=" + "s": 40285554, + "sha1_base64": "vQtvaV/GsJTvXOIT4rMhO0UJjd8=" }, { "id": "Czech_Stredni Cechy_West", @@ -3128,8 +3128,8 @@ "Střední Čechy", "Česko" ], - "s": 61533638, - "sha1_base64": "2UtCC3fqbzMfirE4OgQbrWNj5/Y=" + "s": 61551582, + "sha1_base64": "s//6xZAGbaULRQ3iGM1R/OA4ako=" }, { "id": "Czech_Moravskoslezsko", @@ -3140,8 +3140,8 @@ "Moravskoslezsko", "Česko" ], - "s": 69254447, - "sha1_base64": "w9s1uOJ3KzA1mP4XlysnJCnoRn8=" + "s": 69321231, + "sha1_base64": "8ddkz3Zf8YfUTAgeELg7YciYpSE=" }, { "id": "Czech_Jihovychod_Jihomoravsky kraj", @@ -3152,8 +3152,8 @@ "Jihovýchod", "Česko" ], - "s": 90513248, - "sha1_base64": "PqxZwVQKWbTtWdJZe2emGgbSLCA=" + "s": 90670528, + "sha1_base64": "ep/+iBrG2e/bIwW42XAGIoQmfQE=" } ] }, @@ -3183,8 +3183,8 @@ "Côte d'Ivoire", "Ivory Coast" ], - "s": 86606623, - "sha1_base64": "uzvv1IbYodtXh69/RJCZVA9fHQk=" + "s": 87324759, + "sha1_base64": "Pq9bFO9Z1o718zpx381lcWUtt5M=" }, { "id": "Denmark", @@ -3198,8 +3198,8 @@ "Danmark", "Region Nordjylland" ], - "s": 58036355, - "sha1_base64": "UwcMGSMfwE3jDNTdQ4ILdoaR6WM=" + "s": 58189419, + "sha1_base64": "oBosFtaTMmc8la5Gri61jM5QppE=" }, { "id": "Denmark_Central Denmark Region", @@ -3210,8 +3210,8 @@ "Danmark", "Region Midtjylland" ], - "s": 110874375, - "sha1_base64": "yaWA+uyc5OpFDTbOjn17NU9fG90=" + "s": 110933711, + "sha1_base64": "IVnqrEl1DEJM3UhamwhUmQGGX/Q=" }, { "id": "Denmark_Capital Region of Denmark", @@ -3223,8 +3223,8 @@ "Region Hovedstaden", "Territorial waters of Bornholm" ], - "s": 73275769, - "sha1_base64": "RCS+xSW2XSMjsf6aHnEM6LwRMso=" + "s": 73271945, + "sha1_base64": "9nT2bX5ifbo9/j3JuWHMqnb1zCQ=" }, { "id": "Denmark_Region Zealand", @@ -3235,8 +3235,8 @@ "Danmark", "Region Sjælland" ], - "s": 75535221, - "sha1_base64": "RWaI+f17RKMyH7yONMIrCMSwNtU=" + "s": 75549549, + "sha1_base64": "i47cZ7uq36Dh6gTvrzQMVpgdkBY=" }, { "id": "Denmark_Region of Southern Denmark", @@ -3247,8 +3247,8 @@ "Danmark", "Region Syddanmark" ], - "s": 107141686, - "sha1_base64": "x+vnSAu72OXaNrzJc0Extn2EUhs=" + "s": 107349918, + "sha1_base64": "8P9n4K0usKKme1uaftVFpeT2u9s=" } ] }, @@ -3266,8 +3266,8 @@ "Obock", "Tadjourah" ], - "s": 12943039, - "sha1_base64": "1r8PD+r3pZ7bZicOFvjN2XTIfms=" + "s": 12943935, + "sha1_base64": "+VZ4UzJaY9jmgJKCBl+pT+S3oi4=" }, { "id": "Dominican Republic", @@ -3309,8 +3309,8 @@ "Sánchez Ramírez", "Valverde" ], - "s": 38530141, - "sha1_base64": "Fb3r5Ts41n1Mp/IVlEAdeH3PPl8=" + "s": 38557781, + "sha1_base64": "zoH/r2pKwl1MH7m82LT0tIDrh/w=" }, { "id": "East Timor", @@ -3336,8 +3336,8 @@ "Timór Loro Sa'e", "Viqueque" ], - "s": 21452521, - "sha1_base64": "cer49vAdxpBbKy+E17aiwA1b5mk=" + "s": 21457297, + "sha1_base64": "fdLepjCOEeF47WH0ikR2uAKfB88=" }, { "id": "Chile", @@ -3348,7 +3348,7 @@ "Acuerdo de Campos de Hielo" ], "s": 7075801, - "sha1_base64": "IhAWDdSd+HCzy62/M7F++mwmFx8=" + "sha1_base64": "JOEEwzRpPB57GiUHu/yD1NdchGA=" }, { "id": "Chile_Central", @@ -3365,8 +3365,8 @@ "VI Región del Libertador General Bernardo O'Higgins", "VII Región del Maule" ], - "s": 122145354, - "sha1_base64": "Ufomzczep02ce3xXm1dN50FvTac=" + "s": 122394858, + "sha1_base64": "2vSDapbApKcMnNJCSSzV7mokFtA=" }, { "id": "Chile_North", @@ -3382,8 +3382,8 @@ "V Región de Valparaíso", "XV Región de Arica y Parinacota" ], - "s": 84463895, - "sha1_base64": "a9K/lBemfsNFM6BAWaHpGDu1u/E=" + "s": 84500111, + "sha1_base64": "JDsdVWjZUILvHE742p7qJXljJMs=" }, { "id": "Chile_South", @@ -3399,8 +3399,8 @@ "XII Región de Magallanes y de la Antártica Chilena", "XIV Región de Los Ríos" ], - "s": 236470891, - "sha1_base64": "UKtaL+1C2/G9fgp/TJ7frs+AA5o=" + "s": 236605387, + "sha1_base64": "hjddxBvlbV5B2s9Sm2PAeg2Ymfo=" } ] }, @@ -3430,8 +3430,8 @@ "Tungurahua", "Zamora Chinchipe" ], - "s": 80645423, - "sha1_base64": "vLWYuK4EFcZOusCS3P9LUru1p3w=" + "s": 80696151, + "sha1_base64": "ziBWdKudH0iS7Gzot7SuIz0+kJc=" }, { "id": "Ecuador_West", @@ -3458,8 +3458,8 @@ "Santa Elena", "Santo Domingo de los Tsáchilas" ], - "s": 65830694, - "sha1_base64": "pDJBYXR8sV9HYgLSJzzT8ZfWH4c=" + "s": 66025510, + "sha1_base64": "SkVbGmBZ1Z3FySN8yDN7fXe1dro=" } ] }, @@ -3497,8 +3497,8 @@ "‏البحيرة‎", "الإسكندرية" ], - "s": 305913641, - "sha1_base64": "dsf/o0htVEeX29BHkDerDY+q0Ms=" + "s": 305985097, + "sha1_base64": "/902nokWYzV+NJAvF35YosdKCFA=" }, { "id": "El Salvador", @@ -3522,8 +3522,8 @@ "Departemento de Chalatenango", "El Salvador" ], - "s": 41125923, - "sha1_base64": "2EAqJLwOFSgxurnuZvTqnegdG/c=" + "s": 41132003, + "sha1_base64": "WRM3dVg65XJhtH16oRVVG4crwew=" }, { "id": "Equatorial Guinea", @@ -3540,8 +3540,8 @@ "Litoral", "Wele-Nzas" ], - "s": 15341354, - "sha1_base64": "BPQiILSicIiQ7vVACB/QT6DHBTE=" + "s": 15343338, + "sha1_base64": "16JM36JPkNc3Xx8eKCmHRnbpRL0=" }, { "id": "Eritrea", @@ -3557,8 +3557,8 @@ "ዞባ ዓንሰባ", "ጋሽ-ባርካ" ], - "s": 31853532, - "sha1_base64": "AkBQEtcKW5mc0KUJguT0Aj/2JBk=" + "s": 31935532, + "sha1_base64": "sHcGzIWskIK3kCB4U0Bg+v8QX20=" }, { "id": "Estonia", @@ -3571,8 +3571,8 @@ "affiliations": [ "Eesti" ], - "s": 59815030, - "sha1_base64": "vtihulZ+kPSgjr6xpo8sGy7DmhY=" + "s": 59829598, + "sha1_base64": "/unnOM+t+gtQs69AQhy+2K1TlDY=" }, { "id": "Estonia_East", @@ -3582,8 +3582,8 @@ "affiliations": [ "Eesti" ], - "s": 65769079, - "sha1_base64": "OFJwr5QYlhzCpAPVJkU8781MwaQ=" + "s": 65783119, + "sha1_base64": "FnEuPr7s3OVVDhMvgxfZYtBq79w=" } ] }, @@ -3608,8 +3608,8 @@ "Tigray", "ኢትዮጵያ Ethiopia" ], - "s": 173968108, - "sha1_base64": "fKgoRsXdMcB+NHYd+htG8EK7pSg=" + "s": 173988348, + "sha1_base64": "w9xq4CXMfMdpqnWWTS6HjLxXkzM=" }, { "id": "Faroe Islands", @@ -3626,8 +3626,8 @@ "Territorial waters of Faroe Islands", "Vága sýsla" ], - "s": 11742887, - "sha1_base64": "9/Vuz8SWMzch36q0mw2bR164ZMc=" + "s": 11743983, + "sha1_base64": "HGrtYxbOYCu72GZyUKLwR0rJoBw=" }, { "id": "Federated States of Micronesia", @@ -3642,8 +3642,8 @@ "Pohnpei", "Yap" ], - "s": 2931978, - "sha1_base64": "b0A1wB2+OA0QVAcsoi0+QJW+aRU=" + "s": 2932298, + "sha1_base64": "YIX4m9hHR6FUvsI4wGQZ8/78+ik=" }, { "id": "Fiji", @@ -3656,8 +3656,8 @@ "Northern", "Viti" ], - "s": 19900704, - "sha1_base64": "p7T7T3f2zTPSmhR8pD/tX0R114Y=" + "s": 19901240, + "sha1_base64": "93IQyli+72pxmdAsriRTSiYk178=" }, { "id": "Finland", @@ -3671,8 +3671,8 @@ "Länsi-Suomi", "Suomi" ], - "s": 46739043, - "sha1_base64": "4kW45Isi5OXttQwmWunMfF2zMGA=" + "s": 46742243, + "sha1_base64": "6crh+sCtREvu7HtnSuvAg1HWD3s=" }, { "id": "Finland_Western Finland_Tampere", @@ -3683,8 +3683,8 @@ "Länsi-Suomi", "Suomi" ], - "s": 99686815, - "sha1_base64": "5Qa0jImSy/oPBdx4aTlxnlc2hCU=" + "s": 99870879, + "sha1_base64": "6+pWMXxO6Gyf0+p0VZLzZR5bklM=" }, { "id": "Finland_Northern Finland", @@ -3695,8 +3695,8 @@ "Pohjois-Suomi", "Suomi" ], - "s": 125188609, - "sha1_base64": "GyuAS04kN9DwpYR8jLomwProHN0=" + "s": 125453865, + "sha1_base64": "pv2pIuOIsNsWBmMLsDmO2QcDTZA=" }, { "id": "Finland_Eastern Finland_North", @@ -3707,8 +3707,8 @@ "Itä-Suomi", "Suomi" ], - "s": 127123677, - "sha1_base64": "p+imxuPYPM57UST+oshHQ0uEAII=" + "s": 127166221, + "sha1_base64": "F7yN4Z2wnwWOfvpeAY0gshmRops=" }, { "id": "Finland_Eastern Finland_South", @@ -3719,8 +3719,8 @@ "Itä-Suomi", "Suomi" ], - "s": 75631582, - "sha1_base64": "E+pLbaj7TLh1dThLdG9Ly0BlVSw=" + "s": 75672734, + "sha1_base64": "zM+hWMsJseF/IfNRb7thJqGjges=" }, { "id": "Finland_Southern Finland_West", @@ -3732,8 +3732,8 @@ "Suomi", "Åland" ], - "s": 103037126, - "sha1_base64": "7+iQaLonGvW7SX55qvoZZcoP5Yc=" + "s": 103203886, + "sha1_base64": "N/Tw/DFrBdA6budk6OOBOuLj3E4=" }, { "id": "Finland_Southern Finland_Helsinki", @@ -3744,8 +3744,8 @@ "Etelä-Suomi", "Suomi" ], - "s": 125850393, - "sha1_base64": "hreKyqKwVU5b4GgsgKhvf5udqGs=" + "s": 125960689, + "sha1_base64": "GH/ABvMbHPVlqZ9a+vzqhkplIbs=" }, { "id": "Finland_Southern Finland_Lappeenranta", @@ -3756,8 +3756,8 @@ "Etelä-Suomi", "Suomi" ], - "s": 57333781, - "sha1_base64": "lghM+ZALF2IDumWZpucZlV5WA1M=" + "s": 57354501, + "sha1_base64": "BGRFe4AsCDzHxdcdEZ2aWv5GWfQ=" } ] }, @@ -3776,8 +3776,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 71324543, - "sha1_base64": "N1ImIIXWvNPOuGb8yyd23CeETg4=" + "s": 71732335, + "sha1_base64": "YLw9mXNlAk6QAZNfyNThpWEC8dI=" }, { "id": "France_Alsace_Haut-Rhin", @@ -3788,8 +3788,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 50365861, - "sha1_base64": "jk6JGbBUNoBhRqDnRe2Kb0CYmIQ=" + "s": 50387213, + "sha1_base64": "STj/qZapuH/6nZTs9l9WwQOO5no=" } ] }, @@ -3805,8 +3805,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 56863644, - "sha1_base64": "KjdHGHdSbcHwzDQ+TPbZkd6pz5U=" + "s": 56895596, + "sha1_base64": "10n9n6wdUFE0oVXJUuQ7GH0D97o=" }, { "id": "France_Aquitaine_Gironde", @@ -3817,8 +3817,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 86467646, - "sha1_base64": "LNiueCNsKcmtgU6gq4LIKqeRktY=" + "s": 86515190, + "sha1_base64": "JSqwXUaPT3RsgLplpaDorJL/0wY=" }, { "id": "France_Aquitaine_Landes", @@ -3829,8 +3829,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 44712140, - "sha1_base64": "nV6g2lNnOxIsNaL4sASSDUOT2t0=" + "s": 44768156, + "sha1_base64": "rFEHrKDprIA5YSYseBB6ss70Qa4=" }, { "id": "France_Aquitaine_Lot-et-Garonne", @@ -3841,8 +3841,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 39546962, - "sha1_base64": "owsExwZJGNJCW3xDkDzgIopXchM=" + "s": 39548634, + "sha1_base64": "0LGacN9LInXxj/JZrg3fJJ71IrM=" }, { "id": "France_Aquitaine_Pyrenees-Atlantiques", @@ -3853,8 +3853,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 71993277, - "sha1_base64": "W+7EqWkl8lemehpMQW/o/C+T92o=" + "s": 72016757, + "sha1_base64": "bQXxB/GGy01Qslf0Ey8rLKAJ0pE=" } ] }, @@ -3870,8 +3870,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 42419452, - "sha1_base64": "cN59UBpUCglzp/tI72jpFIIG4aQ=" + "s": 42432132, + "sha1_base64": "YjWY9uVwpZXdVyT+Pryj/zrEc84=" }, { "id": "France_Auvergne_Cantal", @@ -3882,8 +3882,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 27756095, - "sha1_base64": "lqFdUIv+upKYlFftaFPz7GsVYCo=" + "s": 27800711, + "sha1_base64": "7HSR6ELepOdnt4Oxixx8KlxMsCU=" }, { "id": "France_Auvergne_Haute-Loire", @@ -3894,8 +3894,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 40712242, - "sha1_base64": "hqln46nJSl+yJzfdVno5fgE8lCE=" + "s": 40743674, + "sha1_base64": "xrGvn0PUNLaeT/DBc/aqUYyPyMc=" }, { "id": "France_Auvergne_Puy-de-Dome", @@ -3906,8 +3906,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 63901974, - "sha1_base64": "pqcDM3X+UIqwe307G7W1mvv2fkQ=" + "s": 64176830, + "sha1_base64": "cE+Crm0y/yypTY0If2c2qwubvpo=" } ] }, @@ -3925,8 +3925,8 @@ "Guernsey", "Jersey" ], - "s": 58870429, - "sha1_base64": "aKoSPxORj2OCMTXeK2+MBUO4sc0=" + "s": 59164669, + "sha1_base64": "bCDlnBOglnnLIsbpbY/o2cBhvNo=" }, { "id": "France_Brittany_Finistere", @@ -3937,8 +3937,8 @@ "Bretagne", "France" ], - "s": 82237654, - "sha1_base64": "wqAlzEcONGzv15S6jNNaDFtyzO4=" + "s": 82271310, + "sha1_base64": "jBU8yuon3vCjJECG5z8rabmnrbc=" }, { "id": "France_Brittany_Ille-et-Vilaine", @@ -3950,8 +3950,8 @@ "France", "Jersey" ], - "s": 73221406, - "sha1_base64": "gtU+0BGZUG9tauzF7DKdzo8NQTk=" + "s": 73934222, + "sha1_base64": "bmyltlE4/TW8FjXlIz7BSIDCbIM=" }, { "id": "France_Brittany_Morbihan", @@ -3962,8 +3962,8 @@ "Bretagne", "France" ], - "s": 63628158, - "sha1_base64": "D9brV0G9T0zEHVwZJaKL/E0rBCs=" + "s": 63691918, + "sha1_base64": "M4wocHpKwGXtHzdyZcKuwNU4nmI=" } ] }, @@ -3979,8 +3979,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 49184093, - "sha1_base64": "adLB8pm0tgUdKEMLkAAEf+zcLeg=" + "s": 49189405, + "sha1_base64": "69q6foZ0cVcBEdI4XY+eCNmhl0w=" }, { "id": "France_Burgundy_Nievre", @@ -3991,8 +3991,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 31487762, - "sha1_base64": "xcvXjibrYpO4c1zmxN9GGBM+4uo=" + "s": 31497466, + "sha1_base64": "hV0P8WXzlePXj6511wCG8C3y4JM=" }, { "id": "France_Burgundy_Saone-et-Loire", @@ -4003,8 +4003,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 103803911, - "sha1_base64": "Ws2O1W0/pNP34bDq/WjLkI7tOJI=" + "s": 103888767, + "sha1_base64": "VJW5JYYg9/4GcNLYXZl+munH7zg=" }, { "id": "France_Burgundy_Yonne", @@ -4015,8 +4015,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 49950669, - "sha1_base64": "6L4hduHNbrXoWlJ+1W0oT/fSZV8=" + "s": 49979429, + "sha1_base64": "lKTEXB/pl8Y76OQt0F8Sp5FH3xQ=" } ] }, @@ -4032,8 +4032,8 @@ "Centre-Val de Loire", "France" ], - "s": 29728761, - "sha1_base64": "mp/r6oU+EIHgRoMzQBYkgWz58h4=" + "s": 29747473, + "sha1_base64": "o1XCgZ+FK09WhmkFiUmSpMHOcnU=" }, { "id": "France_Centre-Val de Loire_Eure-et-Loir", @@ -4044,8 +4044,8 @@ "Centre-Val de Loire", "France" ], - "s": 32081145, - "sha1_base64": "q9bJPP8+Q5zDn8jfarzBUhQX928=" + "s": 32094873, + "sha1_base64": "l0at0XQWNQIuh8RItBnO8tuuvPs=" }, { "id": "France_Centre-Val de Loire_Indre", @@ -4056,8 +4056,8 @@ "Centre-Val de Loire", "France" ], - "s": 47007426, - "sha1_base64": "w2RyBHJqvLDN1naTQux+4ZRQ6Fs=" + "s": 47068098, + "sha1_base64": "pyxo3+uSc1R2ScJt5ffNRcpH3Yo=" }, { "id": "France_Centre-Val de Loire_Indre-et-Loire", @@ -4068,8 +4068,8 @@ "Centre-Val de Loire", "France" ], - "s": 65606078, - "sha1_base64": "R90kjDlcXxqTNaUEH3aGLwfq7ps=" + "s": 65921734, + "sha1_base64": "IaGFmkr9y01PkXGxar2wdOz3aPM=" }, { "id": "France_Centre-Val de Loire_Loir-et-Cher", @@ -4080,8 +4080,8 @@ "Centre-Val de Loire", "France" ], - "s": 43745883, - "sha1_base64": "cojRt4CGpl31Ux1kucY63z9YpLc=" + "s": 43755643, + "sha1_base64": "RPjLdXdOHG5nDnXyoNZ8DYv/+kQ=" }, { "id": "France_Centre-Val de Loire_Loiret", @@ -4092,8 +4092,8 @@ "Centre-Val de Loire", "France" ], - "s": 60775323, - "sha1_base64": "aoNMEHKynjXEz/sPRGUB32Wj9LI=" + "s": 60811851, + "sha1_base64": "QUqv5yNZT5LHFErT3cPP1XU3pMk=" } ] }, @@ -4106,8 +4106,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 128278000, - "sha1_base64": "al3QssVz/srPe4DSay7SUluapbE=" + "s": 128301440, + "sha1_base64": "GAIZX+mob8884imdrbO54+qH7fY=" }, { "id": "France_Corsica", @@ -4121,8 +4121,8 @@ "Italia", "Monaco" ], - "s": 36910361, - "sha1_base64": "3307+NZIj5mecjPFhj5pwyRU4mU=" + "s": 36913009, + "sha1_base64": "nUSAx88Tj5smYrYqcnEZZ9sXTa0=" }, { "id": "France_Free County_North", @@ -4133,8 +4133,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 70626878, - "sha1_base64": "iQ172n4cVXatLJvrJwcisTA+3Yo=" + "s": 70631102, + "sha1_base64": "kn8Ndy/659U4COMd48iBEYax+ng=" }, { "id": "France_Free County_South", @@ -4145,8 +4145,8 @@ "Bourgogne-Franche-Comté", "France" ], - "s": 58996055, - "sha1_base64": "tGWdM+fReZ5BrydrAps39eAdiAs=" + "s": 58999879, + "sha1_base64": "MGB7FuSEezfrJ5j62wVCxBO+WXQ=" }, { "id": "France_French Guiana", @@ -4157,8 +4157,8 @@ "France", "Guyane" ], - "s": 25820316, - "sha1_base64": "tTFcIL9J0XGjC0WNGLcIVV2WmiM=" + "s": 25826524, + "sha1_base64": "/3aZOheqY3PN/b/sZ1rpJW6iqFg=" }, { "id": "France_Ile-de-France", @@ -4172,8 +4172,8 @@ "France", "Île-de-France" ], - "s": 45970908, - "sha1_base64": "7yEdVgKE2fTsAIpTg15izs8wt5o=" + "s": 46031840, + "sha1_base64": "0LqQs9i4sN5Efz6NgMGJnliU9sI=" }, { "id": "France_Ile-de-France_Hauts-de-Seine", @@ -4184,8 +4184,8 @@ "France", "Île-de-France" ], - "s": 26193899, - "sha1_base64": "jt5XbJRKR5nuqX2W1CZyV7etLow=" + "s": 26182870, + "sha1_base64": "qM+TS4Z6oqTK6Foxl+sS36IzSrA=" }, { "id": "France_Ile-de-France_Paris", @@ -4196,8 +4196,8 @@ "France", "Île-de-France" ], - "s": 54196448, - "sha1_base64": "ZWU/39YmdVs4/UyrfHOyfFRyVSo=" + "s": 54020846, + "sha1_base64": "vxJHQ2GCDqykrOhV4kyuo8Y4Su0=" }, { "id": "France_Ile-de-France_Seine-Saint-Denis", @@ -4208,8 +4208,8 @@ "France", "Île-de-France" ], - "s": 27401670, - "sha1_base64": "0CAUu5PcmWkwQzsBZuXen35j1t8=" + "s": 27388169, + "sha1_base64": "aRKrVLdrI46uwdydMVYf6fnvthE=" }, { "id": "France_Ile-de-France_Seine-et-Marne", @@ -4220,8 +4220,8 @@ "France", "Île-de-France" ], - "s": 65556828, - "sha1_base64": "nOUKTvhUCQ3oZI6MRVNCtQzD4Q8=" + "s": 65797896, + "sha1_base64": "omxYlYffBooM+TX9zVWl1+dxakI=" }, { "id": "France_Ile-de-France_Val-dOise", @@ -4232,8 +4232,8 @@ "France", "Île-de-France" ], - "s": 34515298, - "sha1_base64": "KET25FjcpRdnh8fDXE/+loXY6Lk=" + "s": 34534750, + "sha1_base64": "UWK+URukGnAAsJQe7NIFlfJ9680=" }, { "id": "France_Ile-de-France_Val-de-Marne", @@ -4244,8 +4244,8 @@ "France", "Île-de-France" ], - "s": 27522159, - "sha1_base64": "sJDsDHdUhEyPfFnBCDRSRYwbTE0=" + "s": 27515850, + "sha1_base64": "cG3rHlpAzVl0kF/qIv5pOwcMB6U=" }, { "id": "France_Ile-de-France_Yvelines", @@ -4256,8 +4256,8 @@ "France", "Île-de-France" ], - "s": 51393765, - "sha1_base64": "iHk+ocp1IrR6wKYO5KIXksqN36s=" + "s": 51428461, + "sha1_base64": "NnQzkQzCP6OUH7ZzKyrKtOJ8O14=" } ] }, @@ -4273,8 +4273,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 50581964, - "sha1_base64": "vjJ+s3oKmU0hcVeTbT6ijatcXVc=" + "s": 50580428, + "sha1_base64": "dyimboqmlekhC4QDd84W3cLJ970=" }, { "id": "France_Languedoc-Roussillon_Gard", @@ -4285,8 +4285,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 57383117, - "sha1_base64": "na41i7Cm0cBCw44vzLI6V2AMdDA=" + "s": 57393837, + "sha1_base64": "HbqGVvHn2eVmAIe4U1oY7rbFHpk=" }, { "id": "France_Languedoc-Roussillon_Herault", @@ -4297,8 +4297,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 82436118, - "sha1_base64": "mIKaxmZ2B5WwIoFrbb3n2+3rPVY=" + "s": 82482638, + "sha1_base64": "0SZYzzc6AGRwfcyT6PicZPPrCMw=" }, { "id": "France_Languedoc-Roussillon_Lozere", @@ -4309,8 +4309,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 25759440, - "sha1_base64": "i/yFQ6tc294WbATaAZ4YsKkOgCU=" + "s": 25859776, + "sha1_base64": "7ieDpdWrb/IGPr5C8l1X7Rzpm2Y=" }, { "id": "France_Languedoc-Roussillon_Pyrenees-Orientales", @@ -4321,8 +4321,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 45894731, - "sha1_base64": "IG9ZpcKIL5/y3HBQ60LVrgMx/Ls=" + "s": 45935507, + "sha1_base64": "sSZuiHmqFLH4zF7gs+zPpHJI2DA=" } ] }, @@ -4335,8 +4335,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 109878449, - "sha1_base64": "RBkptEmV8oS32QFS6gLKzrh3DT0=" + "s": 109886129, + "sha1_base64": "eZNIJvF6SuvKX4kD8ZapAm0VPfQ=" }, { "id": "France_Lorraine", @@ -4350,8 +4350,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 53545942, - "sha1_base64": "MEnTitMVHscdJNRaBY9Es9zvI30=" + "s": 53587294, + "sha1_base64": "Rwel/FAAI/IMaUbcBJ+t1KuiSjE=" }, { "id": "France_Lorraine_Meuse", @@ -4362,8 +4362,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 26283986, - "sha1_base64": "VescUZbA5g7HFoN+WJKGRMGQP+I=" + "s": 26281698, + "sha1_base64": "L3OjLuD6Jnq4iNgdE+75j/gU0cE=" }, { "id": "France_Lorraine_Moselle", @@ -4374,8 +4374,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 69667711, - "sha1_base64": "bmxEsWd+n+lEgx5nBnDjb1LmdNo=" + "s": 69698135, + "sha1_base64": "esbU+RXYlhqsCRPDDbrecNALcfs=" }, { "id": "France_Lorraine_Vosges", @@ -4386,8 +4386,8 @@ "Alsace-Champagne-Ardenne-Lorraine", "France" ], - "s": 46917373, - "sha1_base64": "ptQe2D7BsJLfWsG7lJrqWxSRyMo=" + "s": 46929285, + "sha1_base64": "QwZWqU4s24rip+W+2hH8aHCIG08=" } ] }, @@ -4403,8 +4403,8 @@ "France", "Normandie" ], - "s": 62533166, - "sha1_base64": "5u+3sFhTKzxYUl/oKnnYortpkgY=" + "s": 62589942, + "sha1_base64": "GtCd/3B2hUf+CgEJQdyu79rBqvA=" }, { "id": "France_Lower Normandy_Manche", @@ -4416,8 +4416,8 @@ "Jersey", "Normandie" ], - "s": 44115701, - "sha1_base64": "niRctkCk/cW09y00T9l1Y8MF7Z0=" + "s": 44391285, + "sha1_base64": "HRqNmR/g10LPM+2ivdz5zAMwwiQ=" }, { "id": "France_Lower Normandy_Orne", @@ -4428,8 +4428,8 @@ "France", "Normandie" ], - "s": 32904273, - "sha1_base64": "G7IFWWbziDDGDkKY0+uMdByZGSI=" + "s": 32920849, + "sha1_base64": "Os9cgAnVToyWGfYDHPBYPhdcMAI=" } ] }, @@ -4445,8 +4445,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 32454305, - "sha1_base64": "lbWxCytdq8IaC0+uxYG0OV2gIG4=" + "s": 32458321, + "sha1_base64": "Gerqa/RcShkU5I4CGtfIhYH2pu4=" }, { "id": "France_Midi-Pyrenees_Aveyron", @@ -4457,8 +4457,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 60874846, - "sha1_base64": "xyzFJQziyVmXsFmzVEky3nI4lPc=" + "s": 60924190, + "sha1_base64": "FQjPyjTwB0KkcWLIkhxJoKsGs4A=" }, { "id": "France_Midi-Pyrenees_Gers", @@ -4469,8 +4469,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 45318044, - "sha1_base64": "i1wMjYxwvBeRhtI/D1gkF0CObyc=" + "s": 45360980, + "sha1_base64": "P5P7VTQLDvqUHDWFa8IaIrMcJrU=" }, { "id": "France_Midi-Pyrenees_Haute-Garonne", @@ -4481,8 +4481,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 93734094, - "sha1_base64": "esCXhaaTq71hfybNAWSbsnXme14=" + "s": 93839702, + "sha1_base64": "/4XLG52lAHbQsGcZUHrksWvwdzM=" }, { "id": "France_Midi-Pyrenees_Hautes-Pyrenees", @@ -4493,8 +4493,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 49037756, - "sha1_base64": "PaZPji6+FplGZnHK3Uc72uIcb3I=" + "s": 49038812, + "sha1_base64": "cUh37kU/PFRVHR72ZGzaIeTv4P8=" }, { "id": "France_Midi-Pyrenees_Lot", @@ -4505,8 +4505,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 44595691, - "sha1_base64": "Xaxy7qVfu5GfD6HEJJU5h+xhHpM=" + "s": 44679251, + "sha1_base64": "nM8BNH5riDk3uV/Q3A8yWNKThTY=" }, { "id": "France_Midi-Pyrenees_Tarn", @@ -4517,8 +4517,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 39968531, - "sha1_base64": "SBW5xh2e3KuWstrba/lgNEBFWQA=" + "s": 40006099, + "sha1_base64": "0JlHp4qrsctwAUG6cShYrqgmWFg=" }, { "id": "France_Midi-Pyrenees_Tarn-et-Garonne", @@ -4529,8 +4529,8 @@ "France", "Languedoc-Roussillon-Midi-Pyrénées" ], - "s": 34663537, - "sha1_base64": "wgrhMwcWHOm6wBRDi0MKhnwDGt0=" + "s": 34630801, + "sha1_base64": "tXMOU884LemufWmgBpUZv7cGonA=" } ] }, @@ -4551,8 +4551,8 @@ "France, Nouvelle-Calédonie, Île de Walpole (eaux territoriales)", "France, Nouvelle-Calédonie, Îles Loyauté (eaux territoriales)" ], - "s": 17294932, - "sha1_base64": "k+uD731lTR8BLapl0vglFjJXUVg=" + "s": 17303452, + "sha1_base64": "tvQHbTZ2NaIuaC5kgI/77FUbmXM=" }, { "id": "France_Nord-Pas-de-Calais", @@ -4566,8 +4566,8 @@ "France", "Nord-Pas-de-Calais-Picardie" ], - "s": 53650342, - "sha1_base64": "WEJ1Cnoc3yR1Oj94T2QlA8MYuc8=" + "s": 53685134, + "sha1_base64": "Qv3WYG9KRToxhlxwRE66Y0OsMbI=" }, { "id": "France_Nord-Pas-de-Calais_Lille", @@ -4578,8 +4578,8 @@ "France", "Nord-Pas-de-Calais-Picardie" ], - "s": 64536501, - "sha1_base64": "LP/jthiFdPl46ttATX0btvOVsHI=" + "s": 64677757, + "sha1_base64": "rFwjpWpzMvKT3/pwZsqGtP4DaxM=" }, { "id": "France_Nord-Pas-de-Calais_Pas-de-Calais", @@ -4592,8 +4592,8 @@ "Nord-Pas-de-Calais-Picardie", "United Kingdom" ], - "s": 83253032, - "sha1_base64": "+8br6VxS70+a9vf0LRJCHUxQhaw=" + "s": 83315464, + "sha1_base64": "XsySubyP1fPaiwV1Yo50Ob5s7zw=" } ] }, @@ -4609,8 +4609,8 @@ "France", "Pays de la Loire" ], - "s": 57511389, - "sha1_base64": "n20T6HO4DxGM8weSN54zUXJZvH4=" + "s": 57612469, + "sha1_base64": "XedEjApBUet88SbO0sX3/p31Uwo=" }, { "id": "France_Pays de la Loire_Loire-Atlantique_Saint-Nazaire", @@ -4621,8 +4621,8 @@ "France", "Pays de la Loire" ], - "s": 33816969, - "sha1_base64": "RzfChTRaEWbCSqbhyp0s77qGSEA=" + "s": 33854249, + "sha1_base64": "unZ7DH8qakU7NjnXqss0aVeXvyY=" }, { "id": "France_Pays de la Loire_Maine-et-Loire", @@ -4633,8 +4633,8 @@ "France", "Pays de la Loire" ], - "s": 66831326, - "sha1_base64": "OMaNuh8zUZSaP65R0dtO3qT3woQ=" + "s": 66892182, + "sha1_base64": "sjFYjp8zMYb1Bhy8UCJ9vg+33Js=" }, { "id": "France_Pays de la Loire_Mayenne", @@ -4645,8 +4645,8 @@ "France", "Pays de la Loire" ], - "s": 29285681, - "sha1_base64": "22zLbgI5xJ4MhKfGkhXmJ9EQD74=" + "s": 29316009, + "sha1_base64": "TyWxt6IvbkdCsFkeBCc3MnmRdE4=" }, { "id": "France_Pays de la Loire_Sarthe", @@ -4657,8 +4657,8 @@ "France", "Pays de la Loire" ], - "s": 47437877, - "sha1_base64": "TwQAfMaBVQ6rTKl/jxpepJ9DZwU=" + "s": 47452949, + "sha1_base64": "aPCeZtJq9sbDaVFDAoErMwFIwnM=" }, { "id": "France_Pays de la Loire_Vendee", @@ -4669,8 +4669,8 @@ "France", "Pays de la Loire" ], - "s": 75024455, - "sha1_base64": "mgTnYJ+uoyYz1t+uLhWPHajdt1Y=" + "s": 75117999, + "sha1_base64": "mRfLYXgKCARD1BqYabkjyHQND0g=" } ] }, @@ -4686,8 +4686,8 @@ "France", "Nord-Pas-de-Calais-Picardie" ], - "s": 50023964, - "sha1_base64": "MzL/lNDxf5lDz1nFrAau7mlMecc=" + "s": 50045388, + "sha1_base64": "hdeokOYlnV9JWg3O3H+YgWoawwg=" }, { "id": "France_Picardy_Oise", @@ -4698,8 +4698,8 @@ "France", "Nord-Pas-de-Calais-Picardie" ], - "s": 63347220, - "sha1_base64": "EjyEFwfA18G2tAUYYBiFxvXNEMM=" + "s": 63366012, + "sha1_base64": "82rMITDhx0J+Ts2SXrnPZVFF50g=" }, { "id": "France_Picardy_Somme", @@ -4710,8 +4710,8 @@ "France", "Nord-Pas-de-Calais-Picardie" ], - "s": 47383357, - "sha1_base64": "4oz3F9B+brPvd4jmkdNTmIjxxw4=" + "s": 47417749, + "sha1_base64": "CBgrhIrx1q5pJIQodNmXuthzyoE=" } ] }, @@ -4727,8 +4727,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 45070099, - "sha1_base64": "3LeKpdNSQ7hR9xlSL2nGWe0gNpg=" + "s": 45082843, + "sha1_base64": "Mo+OwdOR2fFxW+1fj21yD6iRx+A=" }, { "id": "France_Poitou-Charentes_Charente-Maritime", @@ -4739,8 +4739,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 77017318, - "sha1_base64": "1FChjYDYT/oBFQS7sDidUCqXNYU=" + "s": 77089774, + "sha1_base64": "G5UkA1QgDOwJse8h01KyNeZ9Ees=" }, { "id": "France_Poitou-Charentes_Deux-Sevres", @@ -4751,8 +4751,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 59156708, - "sha1_base64": "i3bkEjstsZ1po3KTNb4/OBkGn0Q=" + "s": 59224332, + "sha1_base64": "unkChFCkOeEzMgkH7ea1p8yHMp8=" }, { "id": "France_Poitou-Charentes_Vienne", @@ -4763,8 +4763,8 @@ "Aquitaine-Limousin-Poitou-Charentes", "France" ], - "s": 53878772, - "sha1_base64": "k4L0oJDhN7GR2R7tQKNyuDfUwdU=" + "s": 53943324, + "sha1_base64": "zpVQx2cW5axIHjcrSiwWivD9Ccs=" } ] }, @@ -4780,8 +4780,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 34618475, - "sha1_base64": "kLSGM7jpnxP2zKzCiCxSXplN63U=" + "s": 34629507, + "sha1_base64": "HOUaySBHGlJFpSL81T1qJsdYEr8=" }, { "id": "France_Provence-Alpes-Cote dAzur_Bouches-du-Rhone", @@ -4792,8 +4792,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 80560996, - "sha1_base64": "lse/RfyT1gJq4Wqn+LZ9C4Ava20=" + "s": 80693092, + "sha1_base64": "ktCfz7JQk0nCzAwHqEe8g2PJIAY=" }, { "id": "France_Provence-Alpes-Cote dAzur_Hautes-Alpes", @@ -4804,8 +4804,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 31981442, - "sha1_base64": "FnTEEsGtN3S1qZ1eqn7t2PL85kg=" + "s": 31995610, + "sha1_base64": "dPszaT9InJdGvhpAbt10tOT6YYM=" }, { "id": "France_Provence-Alpes-Cote dAzur_Maritime Alps", @@ -4817,8 +4817,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 56520614, - "sha1_base64": "cF0SJJKzmp5WOuRFCekqP/L5bB8=" + "s": 56581046, + "sha1_base64": "Gac5B6kD0WyIW15FS1laJ9o/Ldw=" }, { "id": "France_Provence-Alpes-Cote dAzur_Var", @@ -4829,8 +4829,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 65656845, - "sha1_base64": "v5ZqpEvNuEUrES//x2b8CMkP6To=" + "s": 65743621, + "sha1_base64": "CVrcFndo9fpyYxT0MP/s7YOJ6ZY=" }, { "id": "France_Provence-Alpes-Cote dAzur_Vaucluse", @@ -4841,8 +4841,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 50990813, - "sha1_base64": "LZRmAN1yicigD1z5qBAQN00O3J4=" + "s": 51021877, + "sha1_base64": "kXwjezaQH2dkV1DiAzZMblN4psM=" } ] }, @@ -4858,8 +4858,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 58508109, - "sha1_base64": "sKFLrlz6LLQniQCUJZCjCubEBeg=" + "s": 58527109, + "sha1_base64": "C1v381nK4cHOizajJ2QJstUkZ4Q=" }, { "id": "France_Rhone-Alpes_Ardeche", @@ -4870,8 +4870,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 50060988, - "sha1_base64": "2J5crVf0iVaNOzNUfsNdp/h5Ivw=" + "s": 50088260, + "sha1_base64": "DEJxhvNsiResPj1kOF6515w4HgE=" }, { "id": "France_Rhone-Alpes_Drome", @@ -4883,8 +4883,8 @@ "France", "Provence-Alpes-Côte d'Azur" ], - "s": 58128861, - "sha1_base64": "zWqhtQNlQ07BszX5Yl3f1q48vTw=" + "s": 58184469, + "sha1_base64": "lmdkVDg9Cibk5wVsACEhjlthOVc=" }, { "id": "France_Rhone-Alpes_Haute-Savoie", @@ -4895,8 +4895,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 69602637, - "sha1_base64": "uolWKm29lPwkN4Fa4pkRRbbx4CY=" + "s": 69653053, + "sha1_base64": "YgGO4Z9QndxZnpAOercPxpEWjAs=" }, { "id": "France_Rhone-Alpes_Isere", @@ -4907,8 +4907,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 90893840, - "sha1_base64": "fQLyyA/aAXLWXzVYDgORvIG4woQ=" + "s": 90981272, + "sha1_base64": "pL69Ia22JNxDUb5rzIJAXWae9Mc=" }, { "id": "France_Rhone-Alpes_Loire", @@ -4919,8 +4919,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 71356653, - "sha1_base64": "LpLZbarVWmLr/AeOTvSmvlpJPT4=" + "s": 71370453, + "sha1_base64": "m/VFdjdjYFw+2GPWU6pr0bCGWg4=" }, { "id": "France_Rhone-Alpes_Rhone", @@ -4931,8 +4931,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 91831110, - "sha1_base64": "IwgGjJaWuvBqc4DzFOqe7pT0cB0=" + "s": 91896670, + "sha1_base64": "zG0L/p+NfK7PaL2B0OJE74JJUJ8=" }, { "id": "France_Rhone-Alpes_Savoie", @@ -4943,8 +4943,8 @@ "Auvergne-Rhône-Alpes", "France" ], - "s": 58846190, - "sha1_base64": "riJBI0pLfT7rlbeQqmCkDZKRQsI=" + "s": 58902646, + "sha1_base64": "I2CIUg/DxKRlbnVo3+EuvbU/PGg=" } ] }, @@ -4968,8 +4968,8 @@ "La Réunion", "Mayotte" ], - "s": 45148490, - "sha1_base64": "sIAM2mLlziHpVXWxGQuHC2TJKnM=" + "s": 45195010, + "sha1_base64": "qRdfcHjLRSpagoVS9nbCgeBLgqM=" }, { "id": "France_Upper Normandy", @@ -4980,8 +4980,8 @@ "France", "Normandie" ], - "s": 100289111, - "sha1_base64": "PFT82NasaZKy50MhqJAvtr6rsoA=" + "s": 100361279, + "sha1_base64": "M4WHSLP2uTYae7LMD3GQSr341PE=" }, { "id": "French Polynesia", @@ -4999,8 +4999,8 @@ "France, Polynésie française, Îles du Vent (eaux territoriales)", "Polynésie française, Îles du Vent (eaux territoriales)" ], - "s": 19528976, - "sha1_base64": "Q56AND/FBNT6frGmryfcdyTDymk=" + "s": 19609392, + "sha1_base64": "S6eoeUEWKHh4HCyOjrdlnDD1nnE=" }, { "id": "Wallis and Futuna", @@ -5012,7 +5012,7 @@ "France, Wallis-et-Futuna (eaux territoriales)" ], "s": 975827, - "sha1_base64": "egwzW25iqep9mvQ/ZetWH0OX4iY=" + "sha1_base64": "pp/aLKvtM+cCKt5vvsPk5yW3wpc=" } ] }, @@ -5033,8 +5033,8 @@ "Ogooué-Lolo", "Woleu-Ntem" ], - "s": 52394755, - "sha1_base64": "vCZGks7KyQ+NW2ycF0iJiaunGKU=" + "s": 52461171, + "sha1_base64": "OGlL+wu/e+r0t4b87tMPMHOonAs=" }, { "id": "Georgia Region", @@ -5058,8 +5058,8 @@ "აჭარის ავტონომიური რესპუბლიკა", "საქართველო" ], - "s": 119872432, - "sha1_base64": "UsKnCnVRD3/Uu0siCSC+aigKr7I=" + "s": 119970568, + "sha1_base64": "hv89CD5TVQxjtSn4tpaRzYRll4I=" }, { "id": "Abkhazia", @@ -5071,8 +5071,8 @@ "აფხაზეთის ავტონომიური რესპუბლიკა - Аҧсны Автономтә Республика", "საქართველო" ], - "s": 16043226, - "sha1_base64": "vCtilkVVXuZqi2j7qz3NYtxq9F8=" + "s": 16043186, + "sha1_base64": "ob4GblOj/HwHl+W273jPgyX8i3U=" }, { "id": "South Ossetia", @@ -5084,8 +5084,8 @@ "Хуссар Ирыстон - Южная Осетия", "საქართველო" ], - "s": 12655081, - "sha1_base64": "aYkyqZw8g6FEED2UTPTMKLe/VCI=" + "s": 12655089, + "sha1_base64": "gKIRczTo6YvA+WvRjAdv4jxsE6M=" } ] }, @@ -5106,8 +5106,8 @@ "Schaffhausen", "Zürich" ], - "s": 146376379, - "sha1_base64": "2TLM84hgUuWhBIJjQhdv2qUYv6s=" + "s": 146489075, + "sha1_base64": "ZQtg+S3CuxX6h1RKvq7H3CZrXqE=" }, { "id": "Germany_Baden-Wurttemberg_Regierungsbezirk Karlsruhe", @@ -5118,8 +5118,8 @@ "Baden-Württemberg", "Deutschland" ], - "s": 136647020, - "sha1_base64": "3y0ETHCP3rRhox0C785G/2gIuPY=" + "s": 136743092, + "sha1_base64": "M+kF/nz9WVHt4a50eiIAsF1yzCY=" }, { "id": "Germany_Baden-Wurttemberg_Regierungsbezirk Stuttgart_Heilbronn", @@ -5130,8 +5130,8 @@ "Baden-Württemberg", "Deutschland" ], - "s": 58354613, - "sha1_base64": "jn1b4zI+UUZAWynKAO2uHyGZHFs=" + "s": 58364333, + "sha1_base64": "t+sjE1CR9dO07hmIjDRoK0DQLRk=" }, { "id": "Germany_Baden-Wurttemberg_Regierungsbezirk Stuttgart_Stuttgart", @@ -5142,8 +5142,8 @@ "Baden-Württemberg", "Deutschland" ], - "s": 134462834, - "sha1_base64": "UtBgEr4l691kwGsPWzLKsgpay30=" + "s": 134534722, + "sha1_base64": "X6xv1gcCudGT+n+XbcQ1p3LR88U=" }, { "id": "Germany_Baden-Wurttemberg_Regierungsbezirk Tubingen", @@ -5154,8 +5154,8 @@ "Baden-Württemberg", "Deutschland" ], - "s": 109855369, - "sha1_base64": "Ez2MSbRW5mEZtdHSCAP65ngEkD4=" + "s": 109954513, + "sha1_base64": "pDKfemZdA8KmQNO5FYkwIxrCCOk=" } ] }, @@ -5168,8 +5168,8 @@ "Berlin", "Deutschland" ], - "s": 97755210, - "sha1_base64": "PT2V61Vit7PDJ0OwOAH+gatVGNk=" + "s": 97911826, + "sha1_base64": "XuKSjVFvcNp4+Vd3FdW84zq4jwI=" }, { "id": "Germany_Brandenburg_North", @@ -5180,8 +5180,8 @@ "Brandenburg", "Deutschland" ], - "s": 97601910, - "sha1_base64": "5UWrqPGKHFtpD6ZoFOnXLvogaVw=" + "s": 97651462, + "sha1_base64": "hYAsk15vv8+geZH3Y1cuKQrNRI0=" }, { "id": "Germany_Brandenburg_South", @@ -5192,8 +5192,8 @@ "Brandenburg", "Deutschland" ], - "s": 93375897, - "sha1_base64": "nE9DH47lQHw+Y9hUOy1m10m1yRM=" + "s": 93404905, + "sha1_base64": "hFW6QrcgUcFCMu2Z0s+2IFpXxsM=" }, { "id": "Germany_Free State of Bavaria", @@ -5207,8 +5207,8 @@ "Bayern", "Deutschland" ], - "s": 84643769, - "sha1_base64": "NtyxhDeyPt7xur633t/RQ9D6aLQ=" + "s": 84701489, + "sha1_base64": "+EdaGWD+a/WRT3hEGLOcpqXrh6w=" }, { "id": "Germany_Free State of Bavaria_Lower Franconia", @@ -5219,8 +5219,8 @@ "Bayern", "Deutschland" ], - "s": 96651224, - "sha1_base64": "sYiBYjIiqqbxYuE74iwQ2FryUqo=" + "s": 96668640, + "sha1_base64": "q2CoX0w0s6H47ef7AfseWo+DAi8=" }, { "id": "Germany_Free State of Bavaria_Middle Franconia", @@ -5231,8 +5231,8 @@ "Bayern", "Deutschland" ], - "s": 83387349, - "sha1_base64": "YTRenaRPDUhFb03+Vdye+LDEL3o=" + "s": 83432173, + "sha1_base64": "osdtF4zsOYLapPVWoxv181gfDas=" }, { "id": "Germany_Free State of Bavaria_Swabia", @@ -5243,8 +5243,8 @@ "Bayern", "Deutschland" ], - "s": 117222722, - "sha1_base64": "9fQXd6wpEr9x9kHjee0UfOuSEtw=" + "s": 117268282, + "sha1_base64": "FwA1LbeV0otkNq2OPRR7GB12/2o=" }, { "id": "Germany_Free State of Bavaria_Upper Bavaria_East", @@ -5255,8 +5255,8 @@ "Bayern", "Deutschland" ], - "s": 82964875, - "sha1_base64": "svgTXhrz/FuUVBjzoTc3pLr7MJY=" + "s": 82994307, + "sha1_base64": "6IryMehIrmKLy5gbvgrKR/+Cq94=" }, { "id": "Germany_Free State of Bavaria_Upper Bavaria_Ingolstadt", @@ -5267,8 +5267,8 @@ "Bayern", "Deutschland" ], - "s": 38806737, - "sha1_base64": "tx4NZgnka/6dQTQg2/D6zXXuBpw=" + "s": 38828177, + "sha1_base64": "9r0XipJjl9FSDTQY+G/JKAf0V40=" }, { "id": "Germany_Free State of Bavaria_Upper Bavaria_Munchen", @@ -5279,8 +5279,8 @@ "Bayern", "Deutschland" ], - "s": 70933546, - "sha1_base64": "K9EZTuVDrGjS4KR7bJ/cen2vJ5s=" + "s": 71092698, + "sha1_base64": "shzO7ndgXVHgG7kIunDQZFWMJfc=" }, { "id": "Germany_Free State of Bavaria_Upper Bavaria_South", @@ -5291,8 +5291,8 @@ "Bayern", "Deutschland" ], - "s": 36448596, - "sha1_base64": "jB8x9+rIrM0+1+Xsukh9NJDl8kI=" + "s": 36529484, + "sha1_base64": "CGzWSLwZiYgxRsxERHOIHRJmnEY=" }, { "id": "Germany_Free State of Bavaria_Upper Franconia", @@ -5303,8 +5303,8 @@ "Bayern", "Deutschland" ], - "s": 81541948, - "sha1_base64": "pOcbiAGpiYNmvNuT4z4bFXfIc/Q=" + "s": 81567804, + "sha1_base64": "MSDvSwKYEkPu6xY54oU4rK4F60g=" }, { "id": "Germany_Free State of Bavaria_Upper Palatinate", @@ -5315,8 +5315,8 @@ "Bayern", "Deutschland" ], - "s": 77917064, - "sha1_base64": "13s+lrtW3GqTmInfWWDE54EwGzY=" + "s": 77942472, + "sha1_base64": "An26cQs+14WTqltdPrn+imMktf8=" } ] }, @@ -5329,8 +5329,8 @@ "Deutschland", "Hamburg" ], - "s": 47261290, - "sha1_base64": "6QI/tUw1NEdZVO1jVZ68hGnXDcs=" + "s": 47266106, + "sha1_base64": "kBJcZz7T42bBoydd2s9WKfYnLrk=" }, { "id": "Germany_Hesse", @@ -5344,8 +5344,8 @@ "Deutschland", "Hessen" ], - "s": 150849019, - "sha1_base64": "Sodg7MtSZWZJxGKSMHsIlRfkYPw=" + "s": 151033451, + "sha1_base64": "/EFDllH8eh3gug3yclS8QcmJrz0=" }, { "id": "Germany_Hesse_Regierungsbezirk Giessen", @@ -5356,8 +5356,8 @@ "Deutschland", "Hessen" ], - "s": 63468118, - "sha1_base64": "KyuFgsMXbG9OpSnYEux1jhSJsjs=" + "s": 63485998, + "sha1_base64": "Nde/AZ6bbGRVSpglKWpXQ1NPF8U=" }, { "id": "Germany_Hesse_Regierungsbezirk Kassel", @@ -5368,8 +5368,8 @@ "Deutschland", "Hessen" ], - "s": 97899441, - "sha1_base64": "1nv10FmrLrjQgpfxNxQ0Qv98HzI=" + "s": 97930249, + "sha1_base64": "KFWdN+tXdFlyX2FZ2X6URbID0q4=" } ] }, @@ -5388,8 +5388,8 @@ "Hamburg", "Niedersachsen" ], - "s": 69121640, - "sha1_base64": "ILeweWgE+JTnZOm/R/eGUEkxplg=" + "s": 69150400, + "sha1_base64": "aoFkBwK1SWZw0O11uEy+lGRwyJ0=" }, { "id": "Germany_Lower Saxony_Bremen_Munster", @@ -5400,8 +5400,8 @@ "Deutschland", "Niedersachsen" ], - "s": 74698759, - "sha1_base64": "HVhS39hG+2cXGE75sxknuG6u5ag=" + "s": 74723015, + "sha1_base64": "43Y8VR86SX7Yy8UqD2VwVexAfdk=" }, { "id": "Germany_Lower Saxony_Hannover", @@ -5412,8 +5412,8 @@ "Deutschland", "Niedersachsen" ], - "s": 79952395, - "sha1_base64": "Wf2BLH/2jERTK/s5czCA3tCCSIU=" + "s": 80066283, + "sha1_base64": "KwurpoDdRkywV2xU4PqgLsvmhEI=" }, { "id": "Germany_Lower Saxony_Braunschweig", @@ -5424,8 +5424,8 @@ "Deutschland", "Niedersachsen" ], - "s": 83732726, - "sha1_base64": "DRnYyQ/cDYJyWIadKnZt6zllBkE=" + "s": 83793550, + "sha1_base64": "5gEmssPAAITF8fU4wDp3Lq+B4ww=" }, { "id": "Germany_Lower Saxony_Oldenburg", @@ -5437,8 +5437,8 @@ "Deutschland", "Niedersachsen" ], - "s": 132935354, - "sha1_base64": "h601dPdsvL50S6eCzaNbbNYTQQY=" + "s": 133105690, + "sha1_base64": "qMgHjiPyGZQ/NeOdvlaXKOPxflo=" } ] }, @@ -5451,8 +5451,8 @@ "Deutschland", "Mecklenburg-Vorpommern" ], - "s": 123287078, - "sha1_base64": "gOtOAb/dMmL8kTeGhfEfprMdUnM=" + "s": 123342662, + "sha1_base64": "zvvkTLa2mCQHxeaW6SrJbagtVhM=" }, { "id": "Germany_North Rhine-Westphalia", @@ -5466,8 +5466,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 68149335, - "sha1_base64": "2Fs23/H9BrEn1Hra/hCxhKWGabc=" + "s": 68225791, + "sha1_base64": "IusQqsy8H+Umm3z1oPJAJnPpFbQ=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Arnsberg_Dortmund", @@ -5478,8 +5478,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 97199068, - "sha1_base64": "zreXuI+fK4TkiT9C8Xc3jQBJ8cg=" + "s": 97220868, + "sha1_base64": "c1sjIdz0iFJJljIbSGs7zyBn4dc=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Detmold", @@ -5490,8 +5490,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 114074880, - "sha1_base64": "+BLV5MGj1DYNELNRgffsdcy2YX4=" + "s": 114112224, + "sha1_base64": "B02tpmwSwizDJMIKLMoRZL3JkuE=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Dusseldorf", @@ -5502,8 +5502,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 86714100, - "sha1_base64": "eTFScFpKeTLectL7Pg6bUaTTB9o=" + "s": 86751876, + "sha1_base64": "0RWEaRq6LaMUSsxjSW7e7sAUQUM=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Mulheim", @@ -5514,8 +5514,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 69696366, - "sha1_base64": "gQzn0AQ6BaPPicCH2I8hBcqVbfM=" + "s": 69708038, + "sha1_base64": "n51RF0tyDjU25JYBaRXJ7Mz0d9g=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Wesel", @@ -5526,8 +5526,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 24063024, - "sha1_base64": "gn53Hjaz6JvJ+Jkrv7KiH4KxAhM=" + "s": 24067128, + "sha1_base64": "jIxikqdRAcReDKBunLcMeCcV4Ao=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Koln_Aachen", @@ -5539,8 +5539,8 @@ "Deutschland - Belgique / België / Belgien", "Nordrhein-Westfalen" ], - "s": 87272679, - "sha1_base64": "kgQ9eCm/1i4ZCbI79wtYzhTIE6U=" + "s": 87310263, + "sha1_base64": "Vulz+YPaKpVB8HCSfUqY5jfmh+A=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Koln_Koln", @@ -5551,8 +5551,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 109366878, - "sha1_base64": "xHuFXqb6CrAja9VGMpLFYGwn2kE=" + "s": 109392038, + "sha1_base64": "syBWlGcHOxNDYrCVKFr6oy06XbM=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Munster_Munster", @@ -5563,8 +5563,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 57393045, - "sha1_base64": "vfqySLQNwaLBDOQhHbngCK1HyYo=" + "s": 57380933, + "sha1_base64": "BRV/r/seO8R5h8pDQBQA5e7zbIQ=" }, { "id": "Germany_North Rhine-Westphalia_Regierungsbezirk Munster_Recklinghausen", @@ -5575,8 +5575,8 @@ "Deutschland", "Nordrhein-Westfalen" ], - "s": 62880403, - "sha1_base64": "2YBV8LjZdKRhtMdQoeAsZMY8Hes=" + "s": 62900699, + "sha1_base64": "Vfi8h/m96SgpCaz44J5hx6lceYs=" } ] }, @@ -5589,8 +5589,8 @@ "Deutschland", "Rheinland-Pfalz" ], - "s": 135504931, - "sha1_base64": "NTo1dvBSaVToBdiHcSGzzw3zUz4=" + "s": 135771051, + "sha1_base64": "ZaWyOe6+4GQGTRqWQVCCNyeu6NI=" }, { "id": "Germany_Rhineland-Palatinate_South", @@ -5601,8 +5601,8 @@ "Deutschland", "Rheinland-Pfalz" ], - "s": 113239264, - "sha1_base64": "iJU+lfrl+lwj7Ku/8Dcdj6U6lLA=" + "s": 113372264, + "sha1_base64": "ZPEmMufZcFILBFTdmlgOCa2DrVk=" }, { "id": "Germany_Saarland", @@ -5613,8 +5613,8 @@ "Deutschland", "Saarland" ], - "s": 47996662, - "sha1_base64": "SrW3UzbmVdwBRIlYrYpRPt70LSM=" + "s": 48013150, + "sha1_base64": "iAnx/KYrtwc24Bw09Ztze+CCD7U=" }, { "id": "Germany_Saxony-Anhalt_Magdeburg", @@ -5625,8 +5625,8 @@ "Deutschland", "Sachsen-Anhalt" ], - "s": 80898224, - "sha1_base64": "UhB4OPL0GBZc7iIhsieucDDSrRo=" + "s": 80921672, + "sha1_base64": "t+cdrLCWR1MOCvE6280GIsCdyOY=" }, { "id": "Germany_Saxony-Anhalt_Halle", @@ -5637,8 +5637,8 @@ "Deutschland", "Sachsen-Anhalt" ], - "s": 72122152, - "sha1_base64": "4/eN6OSx+92h7oOIPWnfLgwk3lg=" + "s": 72225400, + "sha1_base64": "7L/FwhraOk+lgjlI0UsSvWsbTRU=" }, { "id": "Germany_Saxony_Dresden", @@ -5649,8 +5649,8 @@ "Deutschland", "Sachsen" ], - "s": 90220259, - "sha1_base64": "JXH19kRFTCITI7fMS3LrvlE7Ol0=" + "s": 90288723, + "sha1_base64": "f7QttVj6r8/xidL/+uLNnGJ0D+k=" }, { "id": "Germany_Saxony_Leipzig", @@ -5661,8 +5661,8 @@ "Deutschland", "Sachsen" ], - "s": 147622717, - "sha1_base64": "XfNOChE4XpVSBOWYGKbUVlKTRQA=" + "s": 147681389, + "sha1_base64": "CvPtAkwLiZPY7X4Iyo/ktEuR6+s=" }, { "id": "Germany_Schleswig-Holstein_Kiel", @@ -5674,8 +5674,8 @@ "Deutschland", "Schleswig-Holstein" ], - "s": 73535064, - "sha1_base64": "buSGpHJ22xyZ9ImcbJJ3OfkM40I=" + "s": 73556176, + "sha1_base64": "kDqX54NWmANWExsZSursqHcL1n0=" }, { "id": "Germany_Schleswig-Holstein_Flensburg", @@ -5686,8 +5686,8 @@ "Deutschland", "Schleswig-Holstein" ], - "s": 67517229, - "sha1_base64": "j9/nkthEV9AnvXyQDS7lD/mpKKM=" + "s": 67566645, + "sha1_base64": "mh4l03Qa1i+sOkKCYDzXAKa9YBY=" }, { "id": "Germany_Thuringia", @@ -5698,8 +5698,8 @@ "Deutschland", "Thüringen" ], - "s": 157183679, - "sha1_base64": "QaMeswfXI/gXzjpfl+Q54tkatwA=" + "s": 157270079, + "sha1_base64": "W4ULIgHjqbgIBqu8AkXP8F4qt3A=" } ] }, @@ -5721,8 +5721,8 @@ "Volta Region", "Western Region" ], - "s": 102623357, - "sha1_base64": "VzdQOV74nIvdTmsAMTomnFFk3og=" + "s": 102761885, + "sha1_base64": "5AHQ4vHGJ2sncLmvUZw/6ZLpotE=" }, { "id": "Gibraltar", @@ -5734,8 +5734,8 @@ "España", "Gibraltar" ], - "s": 1004757, - "sha1_base64": "TRTnxLJJ5GXysgxJhx3lEVFEJJE=" + "s": 1004837, + "sha1_base64": "EKXg+KmyFxcMjGy+QiBB2Ei4aMA=" }, { "id": "Greece", @@ -5750,8 +5750,8 @@ "Territorial waters of Greece - Gavdos and Gavdopoula", "Αποκεντρωμένη Διοίκηση Κρήτης" ], - "s": 27044374, - "sha1_base64": "C9fF8qB8t7JgcNWiOhQEDm6PNVY=" + "s": 27049966, + "sha1_base64": "ib5msE3JndiIebT35qiXwIF3Ei4=" }, { "id": "Greece_Decentralized Administration of West Greece", @@ -5764,8 +5764,8 @@ "Shqipëria", "Αποκεντρωμένη Διοίκηση Πελοποννήσου, Δυτικής Ελλάδας και Ιονίου" ], - "s": 77872065, - "sha1_base64": "wHXRArUvf2+hck7s3q4TtP/Dnnw=" + "s": 78063121, + "sha1_base64": "l2hfj7tjA3Pz85VWQcjFIAxusWo=" }, { "id": "Greece_Decentralized Administration of Aegean", @@ -5776,8 +5776,8 @@ "Ελλάδα", "Αποκεντρωμένη Διοίκηση Αιγαίου" ], - "s": 34730448, - "sha1_base64": "U9i4f1CW1TFtLKmtJGGmsu4y6so=" + "s": 34756080, + "sha1_base64": "FaGUbC/J1fEtIqj6m0v/zgwBqdM=" }, { "id": "Greece_Decentralized Administration of Epirus - Western Macedonia", @@ -5788,8 +5788,8 @@ "Ελλάδα", "Αποκεντρωμένη Διοίκηση Ηπείρου - Δυτικής Μακεδονίας" ], - "s": 36075129, - "sha1_base64": "H6WgULEx2EGk4UtZ/WFYtfj5ofQ=" + "s": 36101257, + "sha1_base64": "XneAW7hpt6z3x7E8d51KyRvUaOw=" }, { "id": "Greece_Decentralized Administration of Macedonia and Thrace", @@ -5800,8 +5800,8 @@ "Ελλάδα", "Αποκεντρωμένη Διοίκηση Μακεδονίας - Θράκης" ], - "s": 74097966, - "sha1_base64": "/4W7ZaPt5kcqlTGgUISS11zBSC8=" + "s": 74310638, + "sha1_base64": "q9sH0f7vjZhYK5rzZvKFmbXb2ds=" }, { "id": "Greece_Decentralized Administration of Thessaly - Central Greece", @@ -5813,8 +5813,8 @@ "Αποκεντρωμένη Διοίκηση Αττικής", "Αποκεντρωμένη Διοίκηση Θεσσαλίας - Στερεάς Ελλάδας" ], - "s": 62181182, - "sha1_base64": "5qOv6iirN2R/x8oo0WjkZhD6SN0=" + "s": 62229534, + "sha1_base64": "UXMCgpgsxsHBSkg+bzkwf4HOZQY=" }, { "id": "Greece_Decentralized Administration of Attica", @@ -5825,8 +5825,8 @@ "Ελλάδα", "Αποκεντρωμένη Διοίκηση Αττικής" ], - "s": 49765852, - "sha1_base64": "74bqgP/9JY/8CUw36DiZIG9f0qw=" + "s": 49862460, + "sha1_base64": "axRK5h5Xjx67KKhWS//63cQd4kw=" } ] }, @@ -5838,8 +5838,8 @@ "affiliations": [ "Kalaallit Nunaat" ], - "s": 53764077, - "sha1_base64": "Nm7YhKxDGH8g4/d8iT2JHV5Hick=" + "s": 53811693, + "sha1_base64": "jIGymolyjofEzpWWjPiN2n5IL8k=" }, { "id": "Guatemala", @@ -5871,8 +5871,8 @@ "Totonicapán", "Zacapa" ], - "s": 163180193, - "sha1_base64": "/LTPTETkpDIpINk9J7AEz26ywaI=" + "s": 163198537, + "sha1_base64": "Mtirq/UEOF+P3DwuWtjnuEy3mvE=" }, { "id": "Guernsey", @@ -5905,8 +5905,8 @@ "Selle Rocque", "Sark" ], - "s": 2191444, - "sha1_base64": "C4cpn/xQDHvIEnjhqlabhiW9Qn4=" + "s": 2409284, + "sha1_base64": "Gesl56gJ0rJfUpe51lgP0+Rwf9I=" }, { "id": "Guinea", @@ -5924,8 +5924,8 @@ "Région de Mamou", "Région de Nzérékoré" ], - "s": 99573577, - "sha1_base64": "ai4jDlqcVCrsrUNJk3OhAgwv4ac=" + "s": 99587497, + "sha1_base64": "K1npblzTsiPQivDQupYtWecryMw=" }, { "id": "Guinea-Bissau", @@ -5943,8 +5943,8 @@ "Região de Quinara", "Região de Tombali" ], - "s": 18844113, - "sha1_base64": "N7uffzuFw6vof06tbFl++ex1O4Y=" + "s": 18845545, + "sha1_base64": "5NKmF9lYm1uqaWGrlmJqRw68L6Q=" }, { "id": "Guyana", @@ -5954,8 +5954,8 @@ "affiliations": [ "Guyana" ], - "s": 27666546, - "sha1_base64": "WHWfENfpbWCpmrtthANHw2BE2xE=" + "s": 27669770, + "sha1_base64": "dQpe2V/wUzkAp70qWcTEFnN3oTM=" }, { "id": "Haiti", @@ -5975,8 +5975,8 @@ "Département du Sud", "Département du Sud-Est" ], - "s": 59151791, - "sha1_base64": "Fn8e/KHvFDt6ay93dZBQ7FdzcBc=" + "s": 59155551, + "sha1_base64": "mXbqofTU7UUXY7rGXikO3BJp1ag=" }, { "id": "Honduras", @@ -6005,8 +6005,8 @@ "Valle", "Yoro" ], - "s": 78923132, - "sha1_base64": "+tD/betTVd3pgEgY62s7IoV1t1k=" + "s": 78984804, + "sha1_base64": "T7Ww4I8uKrju+igiwrij0R6SnK0=" }, { "id": "Hungary", @@ -6020,8 +6020,8 @@ "Alföld és Észak", "Magyarország" ], - "s": 138648260, - "sha1_base64": "9mm6pwswlxJRD0hq0Z7JPMSe43s=" + "s": 138867004, + "sha1_base64": "0lv1Ch2iJMJ/okyMLU5m7OtjLSo=" }, { "id": "Hungary_Transdanubia", @@ -6032,8 +6032,8 @@ "Dunántúl", "Magyarország" ], - "s": 127164357, - "sha1_base64": "JtuWJWFsUYpYavBjgusUy96i3pk=" + "s": 127225149, + "sha1_base64": "wI2BkPf2pV8W4BifKxfhnskB+Ps=" }, { "id": "Hungary_Kozep-Magyarorszag", @@ -6044,8 +6044,8 @@ "Közép-Magyarország", "Magyarország" ], - "s": 71787734, - "sha1_base64": "bma6YDMCqiibJtfdqqjb/YEiE+Y=" + "s": 71817806, + "sha1_base64": "FHB7mnMWrXJdyx10JcdQ7VSBI/4=" } ] }, @@ -6057,8 +6057,8 @@ "affiliations": [ "Ísland" ], - "s": 113263896, - "sha1_base64": "lFg6xU3WjFM+q2NSE7azYeyJ/ak=" + "s": 113282256, + "sha1_base64": "WgjjgsHOhFr9QjFBAhlJ85ZqSDM=" }, { "id": "India", @@ -6072,8 +6072,8 @@ "Andaman and Nicobar Islands", "India" ], - "s": 9679303, - "sha1_base64": "Gc/2R0URENAAnAp0NTG9g1imMHI=" + "s": 9682063, + "sha1_base64": "htbr4+8/mqqrPV5ygvKyHafLigQ=" }, { "id": "India_Lakshadweep", @@ -6085,7 +6085,7 @@ "Lakshadweep" ], "s": 353558, - "sha1_base64": "ZO0ZQgpJzwYXrEJshxBKdwLaTsI=" + "sha1_base64": "q4xeDF/pp/NQOZMmwTWhJfZevPk=" }, { "id": "India_Andhra Pradesh", @@ -6097,8 +6097,8 @@ "India", "Puducherry" ], - "s": 108999598, - "sha1_base64": "WvN579Ngaw/Xc4Z/tc9aKG9BzE8=" + "s": 109463222, + "sha1_base64": "YzrA+TFn0g2XA43xl8cB+cH709Y=" }, { "id": "India_Gujarat", @@ -6111,8 +6111,8 @@ "Union Territory of Dadra & Nagar Haveli", "Union Territory of Damman & Diu" ], - "s": 88385804, - "sha1_base64": "ISiiFZlP+IWnRwfkagNcQReoP4Y=" + "s": 88394836, + "sha1_base64": "7fm+xiM8IL55K0a6MqftsKm6i8A=" }, { "id": "India_Kerala", @@ -6123,8 +6123,8 @@ "India", "Kerala" ], - "s": 151778551, - "sha1_base64": "u3rcNIOSelSZ76WQxDAGyh9ER9E=" + "s": 151814263, + "sha1_base64": "bb3RQDV7G4rgGOsHtCTTE0sjSB0=" }, { "id": "India_Madhya Pradesh", @@ -6135,8 +6135,8 @@ "India", "Madhya Pradesh" ], - "s": 132069567, - "sha1_base64": "nNDEEQUuZ1GRHXDPjEschsDIvbc=" + "s": 132081823, + "sha1_base64": "vpQwRO9ES7MQzJp+dhCRoRMXty8=" }, { "id": "India_Rajasthan", @@ -6147,8 +6147,8 @@ "India", "Rajasthan" ], - "s": 128023214, - "sha1_base64": "1ClL/uHNLPm4q0+CPaeSpEM0bvc=" + "s": 127934006, + "sha1_base64": "sS8eHkB7ICgBKsG8h2IfhoI/2eg=" }, { "id": "India_Tamil Nadu", @@ -6165,8 +6165,8 @@ "Sorapattu", "Tamil Nadu" ], - "s": 134143448, - "sha1_base64": "F/WkAnuxcv1p0+92Fr1z0P4rR1U=" + "s": 134201168, + "sha1_base64": "EwRtJklxSqprdPYe0X4dRXbPnYg=" }, { "id": "India_Haryana", @@ -6177,8 +6177,8 @@ "Haryana", "India" ], - "s": 56084600, - "sha1_base64": "RgkGtQErjlxihO6ykWn4ZVWr54Y=" + "s": 56082152, + "sha1_base64": "bIpVjVlLhc+QuWri9IlqZjklSI0=" }, { "id": "India_Goa", @@ -6189,8 +6189,8 @@ "Goa", "India" ], - "s": 9471649, - "sha1_base64": "9eoSn9JfbMMjsIr6DJ4XQyPWan0=" + "s": 9496033, + "sha1_base64": "7ASQzuL2d4TOCjXIl+CtohsCd7I=" }, { "id": "India_Karnataka_North", @@ -6201,8 +6201,8 @@ "India", "Karnataka" ], - "s": 63071106, - "sha1_base64": "IMsoQuztWUR5z+Y6s1sGo5Cq20A=" + "s": 63079594, + "sha1_base64": "4DJN1M4ylOmlhE3xngSnk8HgkfU=" }, { "id": "India_Karnataka_South", @@ -6213,8 +6213,8 @@ "India", "Karnataka" ], - "s": 70699300, - "sha1_base64": "NbQpEnkbGOuWwsVwZypyklboha8=" + "s": 70743988, + "sha1_base64": "MxuUwXfHUpyzG0ITQKdunW/tlrg=" }, { "id": "India_Maharashtra", @@ -6230,8 +6230,8 @@ "Maharashtra", "Rangadhampetha" ], - "s": 148970779, - "sha1_base64": "3pKIHk0/lk2UdaNhgqyG8wsHE/0=" + "s": 149086155, + "sha1_base64": "/uy8w2TlxdVqNIXpw6BGzlZcg/U=" }, { "id": "India_Telangana", @@ -6242,8 +6242,8 @@ "India", "Telangana" ], - "s": 95965868, - "sha1_base64": "gF5cS0g8M/VLimWXK9F+uzHTerk=" + "s": 96169028, + "sha1_base64": "vN2ODyqY6PxVAQ+4Fen9yhqxmZI=" }, { "id": "India_Delhi", @@ -6254,8 +6254,8 @@ "Delhi", "India" ], - "s": 22181831, - "sha1_base64": "N5k56xO2frHFpAeapjZLj9WfZ1I=" + "s": 22226983, + "sha1_base64": "Y38LFOXfN83TY0U7tv/uKaF6bfA=" }, { "id": "India_Uttar Pradesh", @@ -6266,8 +6266,8 @@ "Uttar Pradesh", "India" ], - "s": 195740205, - "sha1_base64": "po2Se9+6rTwzezX81LuD0P8GukM=" + "s": 195797813, + "sha1_base64": "230o2xfpfQOAjUPN0HjickyqkZs=" }, { "id": "India_Odisha", @@ -6278,8 +6278,8 @@ "India", "Odisha" ], - "s": 53664942, - "sha1_base64": "fZPACyczsgYga1sYOjOLatu9k5I=" + "s": 53675654, + "sha1_base64": "QGfqFljgQh/YlL3Xhc4XIMwtNps=" }, { "id": "India_Chhattisgarh", @@ -6290,8 +6290,8 @@ "Chhattisgarh", "India" ], - "s": 44196197, - "sha1_base64": "yvbob16ntBd6tqsSa/VAy74ElHA=" + "s": 44199381, + "sha1_base64": "bYKDY5KlPVzaLmquogP0zvryp74=" }, { "id": "India_Jharkhand", @@ -6302,8 +6302,8 @@ "Jharkhand", "India" ], - "s": 39102990, - "sha1_base64": "yCdzRlbygf9TCXfL7HCfWOm1IR4=" + "s": 39107438, + "sha1_base64": "vwO0VuTGdhROwlVEufgvF0Ec9b0=" }, { "id": "India_Bihar", @@ -6314,8 +6314,8 @@ "Bihar", "India" ], - "s": 74495745, - "sha1_base64": "dGYBWjWahgblLbW6wPk5hxGjnqY=" + "s": 74508321, + "sha1_base64": "hRqJE4AEbja2weJHs5/J1jP4+n0=" }, { "id": "India_Tripura", @@ -6326,8 +6326,8 @@ "India", "Tripura" ], - "s": 14353863, - "sha1_base64": "mItqTvG0oL613otDiIbywLOMmAI=" + "s": 14355319, + "sha1_base64": "iB5xMZxMzMdJJjb8qiZoFdcezJE=" }, { "id": "India_West Bengal", @@ -6340,8 +6340,8 @@ "India", "West Bengal" ], - "s": 107521943, - "sha1_base64": "GtUfY8nsfI1qcGEh77EU9u21HgI=" + "s": 107631375, + "sha1_base64": "FMTb1Z2AmyeYerQGZHZe6KO1Jlg=" }, { "id": "India_Sikkim", @@ -6352,8 +6352,8 @@ "India", "Sikkim" ], - "s": 12121010, - "sha1_base64": "A9vYQn4yHV/XLZKO45kullb8k14=" + "s": 12121082, + "sha1_base64": "XRrvvx+ihvpfU1A7iLcG8OFHia4=" }, { "id": "India_Uttarakhand", @@ -6364,8 +6364,8 @@ "Uttarakhand", "India" ], - "s": 40599270, - "sha1_base64": "RN6y7Hj3V6o+ngTEfJQLbt4cTW0=" + "s": 40610054, + "sha1_base64": "hC0ahEr3b0ZaLxwqHFkTNlypYwg=" }, { "id": "India_Mizoram", @@ -6376,8 +6376,8 @@ "India", "Mizoram" ], - "s": 19570291, - "sha1_base64": "Gf1kW/Xzc1sjFpvxm+Q0nb3Ypv4=" + "s": 19581235, + "sha1_base64": "FCmiMex2TwjAwsvY4z2UOW/T8WU=" }, { "id": "India_Meghalaya", @@ -6388,8 +6388,8 @@ "India", "Meghalaya" ], - "s": 14619276, - "sha1_base64": "Da/U+p0Zs/U/5BA4RhPQcRZwW5U=" + "s": 14633020, + "sha1_base64": "MF1Qlz6reNfw9BOqWnzXVh1YOSI=" }, { "id": "India_Manipur", @@ -6400,8 +6400,8 @@ "India", "Manipur" ], - "s": 18060611, - "sha1_base64": "Rh31TA7B+OFs6T6YniHyXBqS7H0=" + "s": 18097947, + "sha1_base64": "gG6/eM7eaj+kE6BpSQ/yEfA9Yv8=" }, { "id": "India_Nagaland", @@ -6412,8 +6412,8 @@ "India", "Nagaland" ], - "s": 14598781, - "sha1_base64": "BUDMDVAv5XQBez3qTr4yYEJhB9w=" + "s": 14599853, + "sha1_base64": "Fj2XrfFTZ3gjJdhE4x0j38pAQ9M=" }, { "id": "India_Assam", @@ -6424,8 +6424,8 @@ "Assam", "India" ], - "s": 59153430, - "sha1_base64": "YlOVToG1J/ueVCDXphqARhGxJ3E=" + "s": 59177270, + "sha1_base64": "0m4bm2JyIi/tZbPLQ480RtP4CD4=" }, { "id": "India_Arunachal Pradesh", @@ -6436,8 +6436,8 @@ "Arunachal Pradesh", "India" ], - "s": 19312080, - "sha1_base64": "Uuw9gkeqGkNpKpo+mhi2wOBNEfw=" + "s": 19316144, + "sha1_base64": "2e9UoP7clBkt+Y2qLUA24myPMUg=" }, { "id": "India_Himachal Pradesh", @@ -6448,8 +6448,8 @@ "Himachal Pradesh", "India" ], - "s": 35376320, - "sha1_base64": "hwn7rueN9vTiG03qjYFZB25EOXI=" + "s": 35510328, + "sha1_base64": "cB7YPRqfBweb9KJXW3MV6eNOg3M=" }, { "id": "India_Jammu and Kashmir", @@ -6460,8 +6460,8 @@ "India", "Jammu and Kashmir" ], - "s": 48380013, - "sha1_base64": "59awPF3yXQf2qbn6JHb5PoMvbJo=" + "s": 48415349, + "sha1_base64": "nswY2YD/0QsXQYP67gd2rzar5pg=" }, { "id": "India_Chandigarh", @@ -6472,8 +6472,8 @@ "India", "Union Territory of Chandīgarh" ], - "s": 1412649, - "sha1_base64": "h93LuAVcYb8zYlfFd6ouWqKhzyI=" + "s": 1412801, + "sha1_base64": "KTCfN1FnmdSEv3wI95ubrUM0uEM=" }, { "id": "India_Punjab", @@ -6484,8 +6484,8 @@ "India", "Punjab" ], - "s": 53042736, - "sha1_base64": "ALjiq2ZWapY+mfImlMQX8a2WRCw=" + "s": 53049528, + "sha1_base64": "iD6sFGXXUVEZlnfFf+DnqXH65bQ=" } ] }, @@ -6511,8 +6511,8 @@ "Sulawesi Tengah", "Sulawesi Utara" ], - "s": 339074371, - "sha1_base64": "p9sDuYqub7OwYvczJKloYqS2uHY=" + "s": 339157547, + "sha1_base64": "8QdJsEk9JSBbErjSdCXPMajjpbM=" }, { "id": "Indonesia_West", @@ -6534,8 +6534,8 @@ "Sumatera Selatan", "Sumatera Utara" ], - "s": 269971349, - "sha1_base64": "XiOY9vxNDm8ZBYYFmjh3NL2FHYA=" + "s": 269988645, + "sha1_base64": "SjZfRGanbUxQLIhbpEA9CjHx/sQ=" }, { "id": "Indonesia_Jawa Tengah", @@ -6547,8 +6547,8 @@ "Indonesia", "Jawa Tengah" ], - "s": 244195376, - "sha1_base64": "SK18ialWkGKZL32oDGGz2xq3JUI=" + "s": 244678000, + "sha1_base64": "bnoDvl5A2fwNXqt4sFlXfAHTO6A=" }, { "id": "Indonesia_Jawa Barat", @@ -6561,8 +6561,8 @@ "Indonesia", "Jawa Barat" ], - "s": 379126507, - "sha1_base64": "WTIq36QFDBPX3P+QtWi5i+9zI8s=" + "s": 379567787, + "sha1_base64": "dcJvdjkqM4CyB140XDXwrsss7zg=" }, { "id": "Indonesia_Nusa Tenggara", @@ -6577,8 +6577,8 @@ "Nusa Tenggara Barat", "Nusa Tenggara Timur" ], - "s": 167916100, - "sha1_base64": "7f3G1zeHoS8WZEDwyD27QLFMEhc=" + "s": 167922932, + "sha1_base64": "55TuT4OdZuSOHwGdwiZhSl+Sjck=" }, { "id": "Indonesia_Jawa Timur", @@ -6589,8 +6589,8 @@ "Indonesia", "Jawa Timur" ], - "s": 222379880, - "sha1_base64": "cD7HMeD1NJVjAPhq0k63CX0DR/0=" + "s": 222568248, + "sha1_base64": "V3JEYDOqXqbWo+3kHGP/sFqkVbY=" }, { "id": "Indonesia_East", @@ -6604,8 +6604,8 @@ "Papua Barat", "Papua" ], - "s": 79737336, - "sha1_base64": "blOwb3Pi3JTu+nRuusPZC1FE/RA=" + "s": 79813448, + "sha1_base64": "L0eJjv4a2/f/sbFO9WspDkSZY/U=" } ] }, @@ -6626,8 +6626,8 @@ "خراسان شمالی‎", "جمهوری اسلامی‏ايران‎" ], - "s": 104056974, - "sha1_base64": "ZpUYwK6z3ZqA/ecyetD+wlATIb4=" + "s": 104102974, + "sha1_base64": "I3alwz9X2TG/wRcvNrR21/uSkQQ=" }, { "id": "Iran_South", @@ -6650,8 +6650,8 @@ "کرمانشاه‎", "‏هرمزگان‎" ], - "s": 157322016, - "sha1_base64": "lduRBIAvC+YIxjlEawubclqLr94=" + "s": 157392880, + "sha1_base64": "1ozbiVW0zIV5jn5zzn/dOtIXhwA=" }, { "id": "Iran_North", @@ -6675,8 +6675,8 @@ "کرمانشاه‎", "آذربایجان شرقی" ], - "s": 146034058, - "sha1_base64": "ioILNl4l4MBMQaLabQf3Uw1+OXY=" + "s": 146111642, + "sha1_base64": "P9OAaNd2RmJCQCQSGUVzvs5gK6o=" } ] }, @@ -6701,8 +6701,8 @@ "الأنبار", "السليمانية" ], - "s": 75489661, - "sha1_base64": "SYJZ/DkaSuWpGQy+AmCMxGs9xXk=" + "s": 75551685, + "sha1_base64": "stXJUJDI+puhhrM5rkwC1D1d+Dc=" }, { "id": "Iraq_South", @@ -6725,8 +6725,8 @@ "الأنبار", "القادسية" ], - "s": 62963084, - "sha1_base64": "2ixVUzVnd/usieyL9e2KZgCw76o=" + "s": 63010012, + "sha1_base64": "13gu6hR5kEByhn6p3YYABzje44k=" } ] }, @@ -6740,8 +6740,8 @@ "Scotland", "United Kingdom" ], - "s": 6210162, - "sha1_base64": "/uA0hw34mDWmvh9PZdCuCqsb8Ts=" + "s": 6243386, + "sha1_base64": "r9ZiUJ2N9wgThCrPt4DiKydfiZc=" }, { "id": "Israel Region", @@ -6756,8 +6756,8 @@ "מחוז ירושלים", "מדינת ישראל" ], - "s": 10235609, - "sha1_base64": "wAK/Du3WEId3sIdLjas6RZqMD6o=" + "s": 10242113, + "sha1_base64": "7afpfAA7ttdln2on3Pup6vYDu7I=" }, { "id": "Israel", @@ -6774,8 +6774,8 @@ "מחוז ירושלים", "מדינת ישראל" ], - "s": 107866352, - "sha1_base64": "H1TGpww473JW6ebqMLp/vrTXP3E=" + "s": 107898840, + "sha1_base64": "jBB/cgfJ17jfrspbAVPhGA141tE=" } ] }, @@ -6791,8 +6791,8 @@ "Abruzzo", "Italia" ], - "s": 101050927, - "sha1_base64": "j03HbEKroLoQDprlMkqXTYVj5g4=" + "s": 101396127, + "sha1_base64": "4uBukOiIQPblQJ6uns/q/qCipoo=" }, { "id": "Italy_Aosta Valley", @@ -6803,8 +6803,8 @@ "Italia", "Valle d'Aosta/Vallée d'Aoste" ], - "s": 23358758, - "sha1_base64": "HAsi0wiFA1WcnGpQbX+sYc5bd5Y=" + "s": 23363142, + "sha1_base64": "v22f8ypNIsrUItXrW80dREzk6q0=" }, { "id": "Italy_Apulia", @@ -6820,8 +6820,8 @@ "Italia", "Puglia" ], - "s": 113140313, - "sha1_base64": "jcnk8Wyq7qK6fkNYy3Lnn2DP8XQ=" + "s": 113168881, + "sha1_base64": "mC9Stm3teurzq7NGDvvwe9c1kjk=" }, { "id": "Italy_Basilicata", @@ -6832,8 +6832,8 @@ "Basilicata", "Italia" ], - "s": 41126767, - "sha1_base64": "NQ7t7oMHyb+OyZo5gR24eQCFZsY=" + "s": 41156927, + "sha1_base64": "dNM4UBqQJJwXcH6QJ89/OKIoS90=" }, { "id": "Italy_Calabria", @@ -6846,8 +6846,8 @@ "Isola di Dino", "Italia" ], - "s": 50660603, - "sha1_base64": "RbdxvAXC+iYWEY5zV0K9dXVtnN8=" + "s": 50804739, + "sha1_base64": "0Iz+nPBCB1DrmoXW+JbYlqMoxrg=" }, { "id": "Italy_Campania", @@ -6864,8 +6864,8 @@ "La Castelluccia", "Scoglio Rovigliano" ], - "s": 89850960, - "sha1_base64": "MqVjIc+5Q63Moqkf3jIdsrX8iRU=" + "s": 89990072, + "sha1_base64": "ap/r5ajPlw4LLk4PtQ38wT2lkb8=" }, { "id": "Italy_Emilia", @@ -6879,8 +6879,8 @@ "Emilia-Romagna", "Italia" ], - "s": 39718867, - "sha1_base64": "gnGGwAnP/kqp5O3ofvnx3UY/bE8=" + "s": 39761419, + "sha1_base64": "OcJPg7WtFJcv9Axz3LzmRiXx1Tw=" }, { "id": "Italy_Emilia-Romagna_Ferrara", @@ -6891,8 +6891,8 @@ "Emilia-Romagna", "Italia" ], - "s": 17343478, - "sha1_base64": "VZAJzi4IoZbyriBZqHFh+nnmzZs=" + "s": 17373894, + "sha1_base64": "QiqFGp5iaQIccEO25KTcyEXYqnE=" }, { "id": "Italy_Emilia-Romagna_Forli-Cesena", @@ -6903,8 +6903,8 @@ "Emilia-Romagna", "Italia" ], - "s": 21591528, - "sha1_base64": "s7JmyWVkIWzEUrOcDyFmfGM8cPk=" + "s": 21595160, + "sha1_base64": "/fikkBs44o0fQpXFdfJnOpmHkGo=" }, { "id": "Italy_Emilia-Romagna_Modena", @@ -6915,8 +6915,8 @@ "Emilia-Romagna", "Italia" ], - "s": 29083152, - "sha1_base64": "UdKQuhHuHVjCQr2grcgKZX819g8=" + "s": 29121752, + "sha1_base64": "P4hzTfWg1BPGKWth5r3tno3CL0w=" }, { "id": "Italy_Emilia-Romagna_Parma", @@ -6927,8 +6927,8 @@ "Emilia-Romagna", "Italia" ], - "s": 24857591, - "sha1_base64": "8iTZjetYSttVVMXnClyIIFVcF90=" + "s": 24864071, + "sha1_base64": "eSkgyvenHQFr+70xHD0+qbKCbmk=" }, { "id": "Italy_Emilia-Romagna_Piacenza", @@ -6939,8 +6939,8 @@ "Emilia-Romagna", "Italia" ], - "s": 15344174, - "sha1_base64": "tBG1/VdWG01/UD56ikO7ZpVUcks=" + "s": 15345726, + "sha1_base64": "yR13EZTTnvgqAmF+LpyaVSappsw=" }, { "id": "Italy_Emilia-Romagna_Ravenna", @@ -6951,8 +6951,8 @@ "Emilia-Romagna", "Italia" ], - "s": 18641783, - "sha1_base64": "VrZUJOxRmzG0trbmX1I3TJRBmP8=" + "s": 18687959, + "sha1_base64": "BeeR5KqIvpyqUi2m3bgjdbQ+x8g=" }, { "id": "Italy_Emilia-Romagna_Reggio Emilia", @@ -6963,8 +6963,8 @@ "Emilia-Romagna", "Italia" ], - "s": 22624063, - "sha1_base64": "d9dbmbjpY6tEBKL8dZKcb4LhA3o=" + "s": 22663319, + "sha1_base64": "RO7al97T9RvQuRdFPIpYF0iIj9o=" }, { "id": "Italy_Emilia-Romagna_Rimini", @@ -6975,8 +6975,8 @@ "Emilia-Romagna", "Italia" ], - "s": 11746556, - "sha1_base64": "XqqaR5GBsaooGvHsAnnRnIxsyMw=" + "s": 11753588, + "sha1_base64": "zc4FMfD3DXB2xztj8/XsyGdKNpM=" } ] }, @@ -6992,8 +6992,8 @@ "Friuli Venezia Giulia", "Italia" ], - "s": 8189058, - "sha1_base64": "AnOsZavVAajiDeAZM5qUbFaWmMU=" + "s": 8189498, + "sha1_base64": "4j82fOGm4exsNZY04/Xg9h45Zms=" }, { "id": "Italy_Friuli-Venezia Giulia_Pordenone", @@ -7004,8 +7004,8 @@ "Friuli Venezia Giulia", "Italia" ], - "s": 26319400, - "sha1_base64": "ZmGAYqUBuE8wMTA2oaBThPNoS1I=" + "s": 26344096, + "sha1_base64": "JMtOREpLZFuFFQt5KSCkbb4D9JY=" }, { "id": "Italy_Friuli-Venezia Giulia_Trieste", @@ -7016,8 +7016,8 @@ "Friuli Venezia Giulia", "Italia" ], - "s": 8503667, - "sha1_base64": "egtixa5ftvVSx5pwE1LhxPXUtSk=" + "s": 8504315, + "sha1_base64": "fShBax6L/Hhy0VxPEsjMFu4ZLy8=" }, { "id": "Italy_Friuli-Venezia Giulia_Udine", @@ -7028,8 +7028,8 @@ "Friuli Venezia Giulia", "Italia" ], - "s": 55597988, - "sha1_base64": "M/6BWBYI5FpuhHKOHRLkzC8dmFE=" + "s": 55679188, + "sha1_base64": "O4AvzygI/PIFZFLPKCJgdVcBnA4=" } ] }, @@ -7051,8 +7051,8 @@ "country_name_synonyms": [ "Vatican City" ], - "s": 124894170, - "sha1_base64": "+g/ALqWt5E9xQYh42wRm3klzs3U=" + "s": 124952266, + "sha1_base64": "pXWCGuoqF6yPNXqBU3nvCa547Vk=" }, { "id": "Italy_Liguria", @@ -7063,8 +7063,8 @@ "Italia", "Liguria" ], - "s": 75638853, - "sha1_base64": "El5fhpeoE8WSN75dEu/q+pi8B1k=" + "s": 75715957, + "sha1_base64": "bXcfGn8DFj4FjURmw3xDRPO0YQY=" }, { "id": "Italy_Lombardy", @@ -7078,8 +7078,8 @@ "Italia", "Lombardia" ], - "s": 32746625, - "sha1_base64": "vS43WlYfIB0+K2oyKenhzgC+eQU=" + "s": 32786793, + "sha1_base64": "JbEVfPlzYP2qHvfSksV49jUGyjM=" }, { "id": "Italy_Lombardy_Brescia", @@ -7090,8 +7090,8 @@ "Italia", "Lombardia" ], - "s": 48550401, - "sha1_base64": "e0zPxUhg6pjW/hmjvD7vLv9vOAE=" + "s": 48592033, + "sha1_base64": "3sPRnnA5lDl1EGHRKCQcx9v64UE=" }, { "id": "Italy_Lombardy_Como", @@ -7102,8 +7102,8 @@ "Italia", "Lombardia" ], - "s": 18339136, - "sha1_base64": "tSqWnbd3wygBGidUWLHeVsq5Czw=" + "s": 18364592, + "sha1_base64": "wRbZOaOW0WODL8ej1G16jZppLjA=" }, { "id": "Italy_Lombardy_Cremona", @@ -7114,8 +7114,8 @@ "Italia", "Lombardia" ], - "s": 9350332, - "sha1_base64": "2TYoMEEuArNCUjRuh5sstO8X3XA=" + "s": 9353284, + "sha1_base64": "7yHenSG6R0monYe73JtDtvOMPZk=" }, { "id": "Italy_Lombardy_Lecco", @@ -7126,8 +7126,8 @@ "Italia", "Lombardia" ], - "s": 13923624, - "sha1_base64": "fYMRt+pQpXmIBJZqfj0veDkEqaU=" + "s": 13927016, + "sha1_base64": "wGYh+3g8hbz5BCX97VorsBiJ7PE=" }, { "id": "Italy_Lombardy_Lodi", @@ -7138,8 +7138,8 @@ "Italia", "Lombardia" ], - "s": 8890946, - "sha1_base64": "0fQSAsA6uvEyUhkDlJ/bOBBvTFU=" + "s": 8891338, + "sha1_base64": "ueQQvTuf4m8Yg8opZe6PUVQNw2c=" }, { "id": "Italy_Lombardy_Mantua", @@ -7150,8 +7150,8 @@ "Italia", "Lombardia" ], - "s": 10143621, - "sha1_base64": "A+c6WiUFXWr83Id0jx3FbDOAvEU=" + "s": 10153997, + "sha1_base64": "ygnQZI82QjTkPXhZ5TDLfe6jUhg=" }, { "id": "Italy_Lombardy_Milan", @@ -7162,8 +7162,8 @@ "Italia", "Lombardia" ], - "s": 45116740, - "sha1_base64": "WnNzOksnwUm504GmH7nEw+rKVC4=" + "s": 45154916, + "sha1_base64": "nBRHz5j5yoofT/lTPBn/tHTSVSQ=" }, { "id": "Italy_Lombardy_Monza and Brianza", @@ -7174,8 +7174,8 @@ "Italia", "Lombardia" ], - "s": 14191140, - "sha1_base64": "TCidHz0Cz1SeO5sDEghLCUeL4EI=" + "s": 14206788, + "sha1_base64": "ms80xspt9lcnpC/CSzbVYwOIvfE=" }, { "id": "Italy_Lombardy_Pavia", @@ -7186,8 +7186,8 @@ "Italia", "Lombardia" ], - "s": 34679073, - "sha1_base64": "ceoJJ59eRV5PFYMiVu8mU4A3JWM=" + "s": 34687025, + "sha1_base64": "nTrXCeEgCKIcMPY7jvFFz7uzINA=" }, { "id": "Italy_Lombardy_Sondrio", @@ -7198,8 +7198,8 @@ "Italia", "Lombardia" ], - "s": 21704551, - "sha1_base64": "wIOg8CX0gNE1jUQ0ePD1liwHt2A=" + "s": 21744239, + "sha1_base64": "g2fh2CoTQbicZvzuFjkLBjAvIb4=" }, { "id": "Italy_Lombardy_Varese", @@ -7210,8 +7210,8 @@ "Italia", "Lombardia" ], - "s": 22649016, - "sha1_base64": "9PLZ9urbqwzXxTPJ/qrNSdkcFl4=" + "s": 22757176, + "sha1_base64": "oBHlBCI8aLX4nKjzyBPRWcNUJpQ=" } ] }, @@ -7224,8 +7224,8 @@ "Italia", "Marche" ], - "s": 56564318, - "sha1_base64": "aU5TXFkr+Yl78feZxGPvQcMFNoc=" + "s": 56700774, + "sha1_base64": "vQzODUJJt2AgHOdCnsciHEG/eJs=" }, { "id": "Italy_Molise", @@ -7236,8 +7236,8 @@ "Italia", "Molise" ], - "s": 16020677, - "sha1_base64": "u5VawDE0MBHu5bOKx7D1wIFjXFo=" + "s": 16158485, + "sha1_base64": "aw0micKP/3PjSFbhbp7fggaLe1g=" }, { "id": "Italy_Piemont", @@ -7251,8 +7251,8 @@ "Italia", "Piemonte" ], - "s": 28183841, - "sha1_base64": "XvoZAfu74KPBstxs4g22pAU1X1M=" + "s": 28185081, + "sha1_base64": "yvR58XsdKVexmRIp+VuikuhcKO8=" }, { "id": "Italy_Piemont_Asti", @@ -7263,8 +7263,8 @@ "Italia", "Piemonte" ], - "s": 15785532, - "sha1_base64": "MvGLvEXl3FoJk+4yr9YW7YjhR2o=" + "s": 15799972, + "sha1_base64": "KN+Eloui/hOFM6o2cRFbb/5FQf8=" }, { "id": "Italy_Piemont_Biella", @@ -7275,8 +7275,8 @@ "Italia", "Piemonte" ], - "s": 13875876, - "sha1_base64": "RRP0wyE79UJdoXdTwrsKPpLNQO0=" + "s": 13875780, + "sha1_base64": "WmJbXdIR8g+kAPja9V13ilV+XPQ=" }, { "id": "Italy_Piemont_Cuneo", @@ -7287,8 +7287,8 @@ "Italia", "Piemonte" ], - "s": 62114813, - "sha1_base64": "cETQsZ7S3z/ObnvLdXDf8IVRthI=" + "s": 62127421, + "sha1_base64": "TohNlF6lgZYpA9QKZptCFhD2RM0=" }, { "id": "Italy_Piemont_Novara", @@ -7299,8 +7299,8 @@ "Italia", "Piemonte" ], - "s": 15558693, - "sha1_base64": "+VjvGeaXtayZ2ChhkEwNCQ7UMEg=" + "s": 15561013, + "sha1_base64": "gxq2hmB0lm6IR6i/r3HxxNwK7+E=" }, { "id": "Italy_Piemont_Torino", @@ -7311,8 +7311,8 @@ "Italia", "Piemonte" ], - "s": 73703102, - "sha1_base64": "Sm2CQk1RVakbhmKg11qUjA5+KQ8=" + "s": 73749422, + "sha1_base64": "TAtROjVo4oofJCKQMTfwPgFGWX0=" }, { "id": "Italy_Piemont_Verbano-Cusio-Ossola", @@ -7323,8 +7323,8 @@ "Italia", "Piemonte" ], - "s": 21113126, - "sha1_base64": "oiKiyCeHUtdcGGVwvnnHmfsyrNk=" + "s": 21116846, + "sha1_base64": "BIJiJd4P5UEtLweMP9S6ibeyHGc=" }, { "id": "Italy_Piemont_Vercelli", @@ -7335,8 +7335,8 @@ "Italia", "Piemonte" ], - "s": 18252832, - "sha1_base64": "TfltEzVZ/eMJ7+rlUwrkFNbEKbY=" + "s": 18278840, + "sha1_base64": "GGswRddYPToEuiPOLfi2OZecc/o=" } ] }, @@ -7359,8 +7359,8 @@ "Sardigna/Sardegna", "Scoglio Il Catalano" ], - "s": 93794385, - "sha1_base64": "wi3O6O0WPcpKvnBeaAZhmJNSiI8=" + "s": 93858513, + "sha1_base64": "hu5FWzJVVvCHqLbooicPa5ztPiQ=" }, { "id": "Italy_Sicily", @@ -7408,8 +7408,8 @@ "Scoglio Palumbo", "Sicilia" ], - "s": 125986038, - "sha1_base64": "KVHSekAtcwm47xP19OI7+PT2Ytw=" + "s": 126081678, + "sha1_base64": "8VNpNcPxvT8QD0DvJ5uXRoH4g20=" }, { "id": "Italy_Trentino-Alto Adige Sudtirol", @@ -7420,8 +7420,8 @@ "Italia", "Trentino-Alto Adige/Südtirol" ], - "s": 112386545, - "sha1_base64": "Qn7q3hFTYoGZLn/2Oc9d4DLi+9w=" + "s": 112455377, + "sha1_base64": "eibhGhTMr53Axe9GATZZp3MGnU4=" }, { "id": "Italy_Tuscany_Grosseto", @@ -7438,8 +7438,8 @@ "Le Scole", "Toscana" ], - "s": 71365655, - "sha1_base64": "ItXMt+9BDwCEl8I8SegVys4Qgcc=" + "s": 71437359, + "sha1_base64": "pwz7QrOsVjbxdtNsq1vwJ7yn8Q0=" }, { "id": "Italy_Tuscany_Massa e Carrara", @@ -7457,8 +7457,8 @@ "Scoglio d'Africa", "Toscana" ], - "s": 129491332, - "sha1_base64": "3MJqzJMCZ2h9flK1Kr0ldh49W2E=" + "s": 129576692, + "sha1_base64": "JBhkBdbFs2wNGFaN0A2nHPjUgMg=" }, { "id": "Italy_Umbria", @@ -7469,8 +7469,8 @@ "Italia", "Umbria" ], - "s": 42519499, - "sha1_base64": "LXt3b0lsQkqtA5rCZ57ESmg9MiE=" + "s": 42534147, + "sha1_base64": "C5NUIaHG31W2bpLa8xLWt7WdwAI=" }, { "id": "Italy_Veneto", @@ -7484,8 +7484,8 @@ "Italia", "Veneto" ], - "s": 29067264, - "sha1_base64": "HCg3yZ95Y0gz+zoAkM6n3Tz9RSc=" + "s": 29068352, + "sha1_base64": "f1uOChPgGEdL7BoDuQwWnKcXk3c=" }, { "id": "Italy_Veneto_Padova", @@ -7496,8 +7496,8 @@ "Italia", "Veneto" ], - "s": 31382136, - "sha1_base64": "3dx7fj0t5gLE0LaBeoI5N+B4pq0=" + "s": 31399544, + "sha1_base64": "RyPtzKS+xbCHbzEhFfwUUPrG614=" }, { "id": "Italy_Veneto_Rovigo", @@ -7508,8 +7508,8 @@ "Italia", "Veneto" ], - "s": 9541021, - "sha1_base64": "KpxYQmN4pIf3NHJxv2XfehBJ+UU=" + "s": 9544669, + "sha1_base64": "jZfuLd8/j6FqqJ/AmlZNfb98NBE=" }, { "id": "Italy_Veneto_Treviso", @@ -7520,8 +7520,8 @@ "Italia", "Veneto" ], - "s": 38102403, - "sha1_base64": "fzsPH/640buF5yIgL3Timcr9+1w=" + "s": 38104451, + "sha1_base64": "u82W11k1hV4w7Fu0A2BfWWAzdcs=" }, { "id": "Italy_Veneto_Venezia", @@ -7532,8 +7532,8 @@ "Italia", "Veneto" ], - "s": 32170506, - "sha1_base64": "xuTYZzwpRvrcxy3f2hVcqmOBOQo=" + "s": 32210538, + "sha1_base64": "d8RFBbcbSMq95POSlbAjY3ZB3lE=" }, { "id": "Italy_Veneto_Verona", @@ -7544,8 +7544,8 @@ "Italia", "Veneto" ], - "s": 36601338, - "sha1_base64": "/Fe0Zxhz8WWQQq3KrzxXBTaJts8=" + "s": 36627970, + "sha1_base64": "YBUpcom1AQHtqdZrI8WSFTeXem4=" }, { "id": "Italy_Veneto_Vicenza", @@ -7556,8 +7556,8 @@ "Italia", "Veneto" ], - "s": 39792593, - "sha1_base64": "/hQsh0CZaKN6qKCPJQisIE1pGS4=" + "s": 39803681, + "sha1_base64": "5F2TMCKVtfVz3c9Q11mbYOne5QA=" } ] } @@ -7571,8 +7571,8 @@ "affiliations": [ "Jamaica" ], - "s": 37832606, - "sha1_base64": "I0kit4ULZ9PT4bRDElKuOtAvCpw=" + "s": 37913238, + "sha1_base64": "qtQklpwOZcW/ftzpUSVms0swGQk=" }, { "id": "Japan", @@ -7590,8 +7590,8 @@ "三重県", "愛知県" ], - "s": 81991394, - "sha1_base64": "FoGjQ1QtzXNYXbCyS4OCq6Muet8=" + "s": 82081418, + "sha1_base64": "HDCKZ285WW9tys5INOopDdiHs1Q=" }, { "id": "Japan_Chubu Region_Aichi_Toyohashi", @@ -7602,8 +7602,8 @@ "日本", "愛知県" ], - "s": 23555109, - "sha1_base64": "Xhaywt7nH9JF3+ruAlt/YEvNu+w=" + "s": 23559357, + "sha1_base64": "9MwPtW5YbLwgMhKj+iwOVsb8nDM=" }, { "id": "Japan_Chubu Region_Fukui", @@ -7614,8 +7614,8 @@ "日本", "福井県" ], - "s": 27687302, - "sha1_base64": "FOQElRTRynTsMh0w+ZzsqwkBA08=" + "s": 27701086, + "sha1_base64": "CAm7z0qkqnK5jR6Wmt8ukvhGVHw=" }, { "id": "Japan_Chubu Region_Gifu", @@ -7626,8 +7626,8 @@ "日本", "岐阜県" ], - "s": 35314839, - "sha1_base64": "fxHGeFBDwmlDY+xZ/dz8Qjy5I+A=" + "s": 35324847, + "sha1_base64": "J0VNbxvaek8J3eitSlA0FZ2i+Ws=" }, { "id": "Japan_Chubu Region_Ishikawa", @@ -7638,8 +7638,8 @@ "日本", "石川県" ], - "s": 29072300, - "sha1_base64": "s17rfBscjCm/FnwR+kNIrSKNX7s=" + "s": 29079036, + "sha1_base64": "R5AGo1Xwq3kt4iZs7tClyRobFWc=" }, { "id": "Japan_Chubu Region_Nagano", @@ -7650,8 +7650,8 @@ "長野県", "日本" ], - "s": 60440052, - "sha1_base64": "cnzHDErZlXzSZp7306p1HhX7GYI=" + "s": 60461116, + "sha1_base64": "AW+o0JMbmgSzEdKJBs1CbtUZCgA=" }, { "id": "Japan_Chubu Region_Niigata", @@ -7663,8 +7663,8 @@ "新潟県", "石川県" ], - "s": 49798434, - "sha1_base64": "CjRwp7bD0IYIo3+mowyNpnyUsEs=" + "s": 49858874, + "sha1_base64": "M0GcIAtYykMJzVzK8ntL+Ii/pEY=" }, { "id": "Japan_Chubu Region_Shizuoka", @@ -7675,8 +7675,8 @@ "静岡県", "日本" ], - "s": 97081853, - "sha1_base64": "hRKCeetWH6DLIOtXBxs0oyj4NTQ=" + "s": 97098309, + "sha1_base64": "GtBbcn2xw715gG/kJlkY3CbRf7o=" }, { "id": "Japan_Chubu Region_Toyama", @@ -7688,8 +7688,8 @@ "富山県", "石川県" ], - "s": 26639525, - "sha1_base64": "5ltsoyLncOs5SdZuiP3oyA+Xy6M=" + "s": 26654605, + "sha1_base64": "BAxwbYdNAUv+FbMSsXMvQ41RmJc=" }, { "id": "Japan_Chubu Region_Yamanashi", @@ -7700,8 +7700,8 @@ "日本", "山梨県" ], - "s": 24483030, - "sha1_base64": "R4e/jAHHVg0r+pKPDG7IMVN1lAs=" + "s": 24484430, + "sha1_base64": "875SaLjuwDjSIaiLQrdNBAI8Pvw=" } ] }, @@ -7717,8 +7717,8 @@ "日本", "広島県" ], - "s": 68728945, - "sha1_base64": "c1tPDm2ptDBQqSReGV190YvUJ7A=" + "s": 68747409, + "sha1_base64": "ejVn3S2toSwprXu/8674DoJnRjg=" }, { "id": "Japan_Chugoku Region_Okayama", @@ -7729,8 +7729,8 @@ "日本", "岡山県" ], - "s": 47184491, - "sha1_base64": "yB/oGzakpseMj2KEiU+Eac+U2EQ=" + "s": 47238435, + "sha1_base64": "llPxNvjNfeDmeNeiVu+0itW2krg=" }, { "id": "Japan_Chugoku Region_Shimane", @@ -7741,8 +7741,8 @@ "日本", "島根県" ], - "s": 29945783, - "sha1_base64": "zjHWCjjmos7ZDbv2VE7aYQDVVco=" + "s": 29955775, + "sha1_base64": "2q4VQZeiz7efTzJO2yarMrUV8MY=" }, { "id": "Japan_Chugoku Region_Tottori", @@ -7753,8 +7753,8 @@ "鳥取県", "日本" ], - "s": 27161388, - "sha1_base64": "mcnTup1n4euw5al5UwG3MzcwSeI=" + "s": 27161308, + "sha1_base64": "B2VVVwMKdKXxI5ilOS1i+3ZCzaA=" }, { "id": "Japan_Chugoku Region_Yamaguchi", @@ -7765,8 +7765,8 @@ "日本", "山口県" ], - "s": 31278247, - "sha1_base64": "SLsQVYCtrkUXYjSX6lFZ7nxt6qA=" + "s": 31280663, + "sha1_base64": "bc1Bwr8kPs/JSrSxpLR9A1QJNuE=" } ] }, @@ -7782,8 +7782,8 @@ "日本", "北海道" ], - "s": 39327646, - "sha1_base64": "Aa6BWSoqt7x2ACFlFtuFd3YXsBk=" + "s": 39358990, + "sha1_base64": "vqIoNqTF4bpsgfCv6nSn+x5qrBs=" }, { "id": "Japan_Hokkaido Region_North", @@ -7794,8 +7794,8 @@ "日本", "北海道" ], - "s": 52303978, - "sha1_base64": "1k/nV6Ia0/Z8bz2MujR+9X6MByw=" + "s": 52301202, + "sha1_base64": "rWh3aAr1iYO6TzhpTuIBRupLxMw=" }, { "id": "Japan_Hokkaido Region_West", @@ -7806,8 +7806,8 @@ "日本", "北海道" ], - "s": 35639623, - "sha1_base64": "6FSlDeEC1L08gX816bdcULAGlNo=" + "s": 35654367, + "sha1_base64": "9BQQ3IkvDIxP+5f42dd9flXg1TM=" }, { "id": "Japan_Hokkaido Region_Sapporo", @@ -7818,8 +7818,8 @@ "日本", "北海道" ], - "s": 70793946, - "sha1_base64": "iKkqwA5cUk9aqHaJcTO+VhlDYtE=" + "s": 70835498, + "sha1_base64": "JVGkmtVJwelAjJDaY5DAcWWnpr0=" } ] }, @@ -7837,8 +7837,8 @@ "東京都", "神奈川県" ], - "s": 61063034, - "sha1_base64": "pTDQX0Ym8b4wjntZH8IJryRJpR8=" + "s": 61122916, + "sha1_base64": "H/y1lRu7yL4IgfgA25wqVryCf9A=" }, { "id": "Japan_Kanto_Gunma", @@ -7849,8 +7849,8 @@ "日本", "群馬県" ], - "s": 33032783, - "sha1_base64": "rKRoAiAPLLeJU/wHlR4nQMDrv4Y=" + "s": 33045223, + "sha1_base64": "0dW26ttYYUStLwLiyKJQrB7Sem0=" }, { "id": "Japan_Kanto_Ibaraki", @@ -7863,8 +7863,8 @@ "千葉県", "福島県" ], - "s": 42082367, - "sha1_base64": "lRpUt3aVKg5uLw3uHtVx4xlkyRM=" + "s": 42122402, + "sha1_base64": "O8uv9z9NbnJldgrSPacJYcqH7N4=" }, { "id": "Japan_Kanto_Kanagawa", @@ -7878,8 +7878,8 @@ "東京都", "神奈川県" ], - "s": 100045893, - "sha1_base64": "vOXWt8pYAGSP69B4Kwzmd0+OGTE=" + "s": 100154785, + "sha1_base64": "Q5EY5tMhU3Eq1OgGvaziyi92Irs=" }, { "id": "Japan_Kanto_Saitama", @@ -7890,8 +7890,8 @@ "日本", "埼玉県" ], - "s": 73964879, - "sha1_base64": "9xnLEuLg6fV/+6tME9hPo6MHww8=" + "s": 74069774, + "sha1_base64": "XkulBrBypN6hiclcAFIMwwn4QYQ=" }, { "id": "Japan_Kanto_Tochigi", @@ -7902,8 +7902,8 @@ "日本", "栃木県" ], - "s": 36942703, - "sha1_base64": "kH6cHPNrDJ51riZRYWzTu3JmKLU=" + "s": 36945519, + "sha1_base64": "quch8plq5aRQAvEaDjuFqt+d48M=" }, { "id": "Japan_Kanto_Tokyo", @@ -7915,8 +7915,8 @@ "日本", "東京都" ], - "s": 122374111, - "sha1_base64": "1CBtwza3Q7Q0R+W4rZ4MAFOZ3eA=" + "s": 122313499, + "sha1_base64": "4zeXZXnoMRT+DtRI0kGOyIDY5t4=" } ] }, @@ -7933,8 +7933,8 @@ "京都府", "滋賀県" ], - "s": 83893357, - "sha1_base64": "NIjHWp/Y6HSvnFchvcFsJI1ARRg=" + "s": 84024701, + "sha1_base64": "M5z66nXYan7Jedi9QxrawXqhG1c=" }, { "id": "Japan_Kinki Region_Mie", @@ -7946,8 +7946,8 @@ "三重県", "愛知県" ], - "s": 36048943, - "sha1_base64": "Ck4SwuRgEnFZ+TgUvcCOlMLYTdI=" + "s": 37964079, + "sha1_base64": "sPQ3xpwN/ODB0N3XZS26SoMVpJQ=" }, { "id": "Japan_Kinki Region_Nara", @@ -7959,8 +7959,8 @@ "奈良県", "和歌山県" ], - "s": 34248885, - "sha1_base64": "ckbuE4gPLjuR6eWPbW1Dq5J0GVo=" + "s": 34264837, + "sha1_base64": "2wCeF+ov7D7YKu6huhXOD7f90Ok=" }, { "id": "Japan_Kinki Region_Osaka_Osaka", @@ -7972,8 +7972,8 @@ "兵庫県", "大阪府" ], - "s": 104979874, - "sha1_base64": "a92I9BkHXLjcdjn5KzYIFLLKJAE=" + "s": 105184042, + "sha1_base64": "fD36npG38rj5Gpb4acHukjadD4M=" }, { "id": "Japan_Kinki Region_Osaka_West", @@ -7984,8 +7984,8 @@ "日本", "兵庫県" ], - "s": 65633099, - "sha1_base64": "50bbpGCMw0V07BNG4Wd6NW67Ics=" + "s": 65673107, + "sha1_base64": "ufHtRZuVxfRD1OLcLKvI2MHs0eU=" }, { "id": "Japan_Kinki Region_Wakayama", @@ -7996,8 +7996,8 @@ "日本", "和歌山県" ], - "s": 23897726, - "sha1_base64": "AV9wdfp9JmxwV2cIRRavB9NodHI=" + "s": 23901342, + "sha1_base64": "hzNn0dDAiQXH7SuPh3f5a6kL8Yc=" } ] }, @@ -8013,8 +8013,8 @@ "日本", "福岡県" ], - "s": 61678483, - "sha1_base64": "VV0eauXe9GLXNclD8VfcgUrTdXk=" + "s": 61725483, + "sha1_base64": "rA9Sctisrfrr8HP7T3bXnOMxboc=" }, { "id": "Japan_Kyushu Region_Kagoshima", @@ -8025,8 +8025,8 @@ "日本", "鹿児島県" ], - "s": 35631079, - "sha1_base64": "yeOWn0krtzz2rTTu5rVncETGeTA=" + "s": 35850879, + "sha1_base64": "5cTLiwep49wU1b00A0GxlT62Tb0=" }, { "id": "Japan_Kyushu Region_Kumamoto", @@ -8037,8 +8037,8 @@ "日本", "熊本県" ], - "s": 43531160, - "sha1_base64": "+7nqPHu5vyTU2wyGjTGgn1CBP6c=" + "s": 43939264, + "sha1_base64": "Sw6zU7ny32GttFgBFNBDH4ZIEyc=" }, { "id": "Japan_Kyushu Region_Miyazaki", @@ -8049,8 +8049,8 @@ "日本", "宮崎県" ], - "s": 21529997, - "sha1_base64": "MphExzylHrgSI0jCDk/j2/GtKxw=" + "s": 21534989, + "sha1_base64": "YET+mkAwT1Y/uCs55ncc1Ox+Hok=" }, { "id": "Japan_Kyushu Region_Nagasaki", @@ -8061,8 +8061,8 @@ "長崎県", "日本" ], - "s": 35007470, - "sha1_base64": "JPrDpE7SrDeHsnsguGlEebhjGM4=" + "s": 35140710, + "sha1_base64": "rWkHKmdQLLxZXLF7P1dNd+z4T7s=" }, { "id": "Japan_Kyushu Region_Oita", @@ -8073,8 +8073,8 @@ "日本", "大分県" ], - "s": 28525023, - "sha1_base64": "QxLvWPlOcYpYrZ2E06xS9u3DmA4=" + "s": 28527999, + "sha1_base64": "kAVy0YpAuuglcRekPQykwU/z7j8=" }, { "id": "Japan_Kyushu Region_Okinawa", @@ -8085,8 +8085,8 @@ "日本", "沖縄県" ], - "s": 23990690, - "sha1_base64": "iUTKqi0zO19yP0WTGSiPAqhXVpg=" + "s": 24017874, + "sha1_base64": "PNO1M5yHNEDab43VCQkMS41n8jk=" }, { "id": "Japan_Kyushu Region_Saga", @@ -8097,8 +8097,8 @@ "日本", "佐賀県" ], - "s": 32517261, - "sha1_base64": "Vk96OsQ7gW7doTtE5bPR1oHWjfc=" + "s": 32563309, + "sha1_base64": "co9BLmt3Q4Am9yON1wBofrCEBuU=" } ] }, @@ -8114,8 +8114,8 @@ "日本", "愛媛県" ], - "s": 35896421, - "sha1_base64": "nsoVY76vpkoPk6lfOCWAZP0J7Zc=" + "s": 35937285, + "sha1_base64": "JZo6wfcPhA1EDQME+TMiP9qbyxo=" }, { "id": "Japan_Shikoku Region_Kagawa", @@ -8126,8 +8126,8 @@ "香川県", "日本" ], - "s": 18355605, - "sha1_base64": "ulNq58ephrdGPA+WiypjRn4kX4w=" + "s": 18357189, + "sha1_base64": "IHMrbw003DIiSHR+61ILXCPnT7M=" }, { "id": "Japan_Shikoku Region_Kochi", @@ -8138,8 +8138,8 @@ "高知県", "日本" ], - "s": 22503613, - "sha1_base64": "JOW7N+Az2IrcldWtNTpxNm51qM8=" + "s": 22503437, + "sha1_base64": "FAFoNxjq63FA0J7WgLg4xXlYc7U=" }, { "id": "Japan_Shikoku Region_Tokushima", @@ -8150,8 +8150,8 @@ "日本", "徳島県" ], - "s": 23171909, - "sha1_base64": "t6RoR/1MF9aTqfSq0obYxDHqkUM=" + "s": 23182053, + "sha1_base64": "kcGG+n6ZKFMbj5Q/rFPoZkjOH/8=" } ] }, @@ -8167,8 +8167,8 @@ "日本", "秋田県" ], - "s": 48487097, - "sha1_base64": "cezTIZFky16pF5L/6sRr/SPELmY=" + "s": 48543441, + "sha1_base64": "wMbpoenckOz0ve/1dFyBamvob+w=" }, { "id": "Japan_Tohoku_Aomori", @@ -8179,8 +8179,8 @@ "青森県", "日本" ], - "s": 34576198, - "sha1_base64": "7IQJkLHwmicpXTn41pIzeK6u+Z8=" + "s": 34634366, + "sha1_base64": "AUUQDQ8Tpq/bAAHEVB7HHs4Dlms=" }, { "id": "Japan_Tohoku_Fukushima", @@ -8191,8 +8191,8 @@ "日本", "福島県" ], - "s": 59071241, - "sha1_base64": "53ptG8mrOQ2kcNZXL/DwWWxCFts=" + "s": 59072945, + "sha1_base64": "svKCNM8RJyqsBs8IM4rh4J09VM4=" }, { "id": "Japan_Tohoku_Iwate", @@ -8203,8 +8203,8 @@ "日本", "岩手県" ], - "s": 39291718, - "sha1_base64": "d2Ll4DG4H+CkS5JJss21EQMP0uU=" + "s": 39302214, + "sha1_base64": "ghFmi+mCNKKiwBeOr3yvnG6VBP8=" }, { "id": "Japan_Tohoku_Miyagi", @@ -8216,8 +8216,8 @@ "宮城県", "福島県" ], - "s": 67045289, - "sha1_base64": "AUft3nwjoQBK2JKudNIyRFtJ7n4=" + "s": 67082353, + "sha1_base64": "UpnyAUEWGucQSq/HmLdpd2CX57U=" }, { "id": "Japan_Tohoku_Yamagata", @@ -8228,8 +8228,8 @@ "日本", "山形県" ], - "s": 26253934, - "sha1_base64": "ABM9SbY6HqR9Tqjr5oIf9WM/eSY=" + "s": 26279446, + "sha1_base64": "JyJMF3rBULGkqZa389rGoym/HQc=" } ] } @@ -8252,8 +8252,8 @@ "Queen's Rock", "The Islet" ], - "s": 2429765, - "sha1_base64": "/RUK1syMFZeRF7kLrW8ryAAHFeQ=" + "s": 2673648, + "sha1_base64": "z3VETXaxBeq1PGwlDTt/KrtJipA=" }, { "id": "Jordan", @@ -8275,8 +8275,8 @@ "Zarqa", "الأردن" ], - "s": 44460473, - "sha1_base64": "WDAZ5ENRZOJ/5BKR8YIM255RUrc=" + "s": 44466497, + "sha1_base64": "ygFunZFdhQYklEP4sD+Rd0HNfGc=" }, { "id": "Kazakhstan", @@ -8295,8 +8295,8 @@ "Павлодарская область", "Карагандинская область" ], - "s": 95628014, - "sha1_base64": "vnNibm2W8kXpReVN3HaAPDu833E=" + "s": 95658486, + "sha1_base64": "FvSKrUTWmbb7R9tOfIOxlEHw1do=" }, { "id": "Kazakhstan_South", @@ -8316,8 +8316,8 @@ "Мангистауская область", "Кызылординская область" ], - "s": 193520314, - "sha1_base64": "tNk7w6QCcd2WgWZpFkkfXpSFWdk=" + "s": 193863914, + "sha1_base64": "54RfR8zrm9KPGBA5YVpAGh20xKA=" } ] }, @@ -8376,8 +8376,8 @@ "Wajir", "West Pokot" ], - "s": 369403648, - "sha1_base64": "/DGbqD4wes3Sz1UI8N8hZJxRM+U=" + "s": 369571368, + "sha1_base64": "4VKF1bNhWFKVkvzofsSuYFAprFE=" }, { "id": "Kingdom of Lesotho", @@ -8390,8 +8390,8 @@ "country_name_synonyms": [ "Lesotho" ], - "s": 104078209, - "sha1_base64": "zTb78cLyqYNxcurnHnudG8ijxMk=" + "s": 104149929, + "sha1_base64": "ZDzi4PoafG0Ya98mAXhDX+VS45Y=" }, { "id": "Kiribati", @@ -8401,8 +8401,8 @@ "affiliations": [ "Kiribati" ], - "s": 3103326, - "sha1_base64": "jeVTTpRDl/4r4wNdjjNth3PFAzA=" + "s": 3104718, + "sha1_base64": "mR1FvcbGbbSS1xb5Sp7IALFtwmM=" }, { "id": "Kuwait", @@ -8418,8 +8418,8 @@ "الفروانية", "‏الكويت‎" ], - "s": 24316830, - "sha1_base64": "0EgvQHTNqZamiCpvvJ2hA4cAodI=" + "s": 24315702, + "sha1_base64": "TkITPx1hgpjbUyASOrPm3NeR418=" }, { "id": "Kyrgyzstan", @@ -8440,8 +8440,8 @@ "Чуйская область", "Кыргызстан" ], - "s": 83025956, - "sha1_base64": "FrmXGHSNdtH/O4UOnVJb7PxbNh0=" + "s": 83079716, + "sha1_base64": "pDN9XlJ97G7Ph8Y+dh0djYyERYg=" }, { "id": "Laos", @@ -8468,8 +8468,8 @@ "ສະຫວັນນະເຂດ", "ນະຄອນຫຼວງວຽງຈັນ" ], - "s": 79008131, - "sha1_base64": "M8j3p5/5Lt/IFxsLFt42LuXAnjE=" + "s": 79048443, + "sha1_base64": "BdN+QXfYB6aR1Fp+dSaigpGK3hc=" }, { "id": "Latvia", @@ -8483,8 +8483,8 @@ "Vidzeme", "Zemgale" ], - "s": 134251138, - "sha1_base64": "xvRs5e+W+T7XuTe5zGMy2wbxI0Y=" + "s": 134317322, + "sha1_base64": "pg9k4dWKYQv/Gm4BSReoZwWkpMM=" }, { "id": "Lebanon", @@ -8519,8 +8519,8 @@ "قضاء البترون", "قضاء النبطية" ], - "s": 47390234, - "sha1_base64": "BBvG/JV0fQGPZdQqa5W+HCHkSSU=" + "s": 47446250, + "sha1_base64": "OzsnfvsCUrsmsKQlVVFQp5I1L08=" }, { "id": "Liberia", @@ -8545,8 +8545,8 @@ "River Gee County", "Sinoe County" ], - "s": 40397613, - "sha1_base64": "Dfl5U+65oHSZ660j7p1+Caa99OM=" + "s": 40397645, + "sha1_base64": "UjDZ18XdRS9vOaw32PX34XS6s5E=" }, { "id": "Libya", @@ -8578,8 +8578,8 @@ "الواحات", "الزاوية" ], - "s": 155003236, - "sha1_base64": "qGEJUxh1rH2zqVTEPRx0rOtlliY=" + "s": 155590292, + "sha1_base64": "hfiJD15mcyWmxm9pMWTJiUtEyh8=" }, { "id": "Liechtenstein", @@ -8589,8 +8589,8 @@ "affiliations": [ "Liechtenstein" ], - "s": 3632690, - "sha1_base64": "7DJgMgX9dzhmSNTz/dwld5cz148=" + "s": 3632914, + "sha1_base64": "0IjHv6+qXcxnFGBXyqzwVQo0Stg=" }, { "id": "Lithuania", @@ -8607,8 +8607,8 @@ "Utenos apskritis", "Vilniaus apskritis" ], - "s": 113867016, - "sha1_base64": "uufKtKdqkvfcyXgrYdnV0rHzqC4=" + "s": 113946352, + "sha1_base64": "0utRvekgFM1D8Lw8n1VohspJTwg=" }, { "id": "Lithuania_West", @@ -8624,8 +8624,8 @@ "Tauragės apskritis", "Šiaulių apskritis" ], - "s": 93932735, - "sha1_base64": "orVh/kjBJSmUzVSbCFxD7i1f9sI=" + "s": 93971695, + "sha1_base64": "igT4f1+OqMSyzAAGcw3tfEw5oCQ=" } ] }, @@ -8637,8 +8637,8 @@ "affiliations": [ "Lëtzebuerg" ], - "s": 46160918, - "sha1_base64": "fI4F1p6ITN2GCipFnRrbCvjZxCU=" + "s": 46240150, + "sha1_base64": "YEsaCk1QA4GS1oTSvXTMZx5P6FE=" }, { "id": "Macedonia", @@ -8659,8 +8659,8 @@ "country_name_synonyms": [ "North Macedonia" ], - "s": 31694407, - "sha1_base64": "eNnWG1oNvgxz4u/des49efOhMqQ=" + "s": 31714871, + "sha1_base64": "vIEVz9Ft4UOVIujIixOpm6riFuc=" }, { "id": "Madagascar", @@ -8674,8 +8674,8 @@ "Région de Sava", "Préfecture de police de Nosy Be" ], - "s": 399837213, - "sha1_base64": "x8fJ2HZ9AK/6PKrieTngk1Gq818=" + "s": 399920909, + "sha1_base64": "l5jwdRjnKQM8NOgWjXXNTzDCRHE=" }, { "id": "Malawi", @@ -8691,8 +8691,8 @@ "Northern", "Southern" ], - "s": 151020972, - "sha1_base64": "Jk//yZFyKur2x/H5VFxbCjZn4Xg=" + "s": 151045076, + "sha1_base64": "c/wLeQQnqfEuGoh4++Zao13gyV0=" }, { "id": "Malaysia", @@ -8738,8 +8738,8 @@ "Sarawak", "Singapura" ], - "s": 241122006, - "sha1_base64": "PORLqcu6JKS0neqArH6/aH0+2zI=" + "s": 241366478, + "sha1_base64": "5xVfStiVlTdFmjUd9TmDgxyXqoY=" }, { "id": "Maldives", @@ -8758,8 +8758,8 @@ "Medhu-Uthuru Province", "ދިވެހިރާއްޖޭގެ ޖުމުހޫރިއްޔާ" ], - "s": 4038048, - "sha1_base64": "nJGPH4BvlftvT3rBEKPwwGKOANw=" + "s": 4039352, + "sha1_base64": "g4Xr5bVQ8xyYhfMPYxARRHzoyhE=" }, { "id": "Mali", @@ -8778,8 +8778,8 @@ "Ségou", "Tombouctou" ], - "s": 225352320, - "sha1_base64": "zeYL+TzH0O5FxdSn9JKTsY0WaP4=" + "s": 225470248, + "sha1_base64": "kPWA2qwFzSa1l9xaFPu3zqcuadc=" }, { "id": "Malta", @@ -8796,8 +8796,8 @@ "Malta", "Malta" ], - "s": 9863185, - "sha1_base64": "tKFog7maHPUTo1Sd5eko6SW0INY=" + "s": 9878737, + "sha1_base64": "pYQeFSbwTH5F6y6NMQQCSgJZVds=" }, { "id": "Marshall Islands", @@ -8808,8 +8808,8 @@ "Aolepān Aorōkin M̧ajeļ", "MH" ], - "s": 1605281, - "sha1_base64": "mzbVt4Vv9vPRS4Cc8bdjD1LJrS4=" + "s": 1609585, + "sha1_base64": "i2boSvSLWr78qi0nAGAQnLDkJwI=" }, { "id": "Mauritania", @@ -8831,8 +8831,8 @@ "إينشيري", "غيديماغا" ], - "s": 53375814, - "sha1_base64": "CQFVTrTmfgRfvyvJLxzrNA2tdls=" + "s": 53399782, + "sha1_base64": "vEtbZNG4cGiuhabOptNh0p9obnY=" }, { "id": "Mauritius", @@ -8867,8 +8867,8 @@ "Île Deux Frères", "Île Frégate" ], - "s": 10761032, - "sha1_base64": "wkpyvv07ogbDhTN5NKwGT3LFbdE=" + "s": 10763768, + "sha1_base64": "Wv/Qx9FDJ0f7ABej9VVsJayJFL4=" }, { "id": "Mexico", @@ -8887,8 +8887,8 @@ "Colima", "Estados Unidos Mexicanos" ], - "s": 78181244, - "sha1_base64": "oHbbDcgW51u/Y/n/sxwa9M0Qxc8=" + "s": 78192748, + "sha1_base64": "Rcciw8aakxKqO36eSwIL4gZ616M=" }, { "id": "Mexico_Central_East", @@ -8902,8 +8902,8 @@ "San Luis Potosí", "Tamaulipas" ], - "s": 78312102, - "sha1_base64": "sZqWUM5AVGhZBgSkVCcpQ8mBxjw=" + "s": 78318846, + "sha1_base64": "5dVIM/YddR7QU9UEmucenpn47Ao=" }, { "id": "Mexico_Central_West", @@ -8920,8 +8920,8 @@ "Sinaloa", "Zacatecas" ], - "s": 106558889, - "sha1_base64": "NZ57L9o78+L/vgENxkxXKZUw6+Y=" + "s": 106596457, + "sha1_base64": "BueS4IIU5w/ZxowkxqpuAjAHFbA=" }, { "id": "Mexico_East", @@ -8939,8 +8939,8 @@ "Veracruz de Ignacio de la Llave", "Yucatán" ], - "s": 87685751, - "sha1_base64": "3ufjFG4H+tqAiJCnKSNM2yzk00w=" + "s": 88262775, + "sha1_base64": "PvTa+F8XXUXT5KVZQsrCS15n/Zs=" }, { "id": "Mexico_Mexico", @@ -8957,8 +8957,8 @@ "Tlaxcala", "Veracruz de Ignacio de la Llave" ], - "s": 198215925, - "sha1_base64": "ylCLs8uNp1s9xHPnPY24J3Vb0R8=" + "s": 198284541, + "sha1_base64": "PtRkAGssrNGtEQjAqXekjOj3xpE=" }, { "id": "Mexico_Chihuahua", @@ -8973,8 +8973,8 @@ "Nuevo León", "Sinaloa" ], - "s": 88329077, - "sha1_base64": "/ZlHd0e8quBNiZ0pt5Moq0bvpjo=" + "s": 88416573, + "sha1_base64": "IWkVJjZWcE85qk5HVYu6x86qbug=" }, { "id": "Mexico_Sonora", @@ -8988,8 +8988,8 @@ "Sinaloa", "Sonora" ], - "s": 63256332, - "sha1_base64": "ehCNt69Plsd2SA9WCHmLL+VOr+0=" + "s": 63368820, + "sha1_base64": "it0vYvIjahYptsF0s2KhNFuWGs0=" }, { "id": "Mexico_South", @@ -9005,8 +9005,8 @@ "Querétaro", "Veracruz de Ignacio de la Llave" ], - "s": 191032819, - "sha1_base64": "MbavuNPUQiIQl+Graix6e0mr/xA=" + "s": 191122347, + "sha1_base64": "mhIHiz3eZLEMpnq8E3yvjXttNNE=" } ] }, @@ -9020,8 +9020,8 @@ "Moldova", "Приднестровье" ], - "s": 114792657, - "sha1_base64": "kjj4YXCRGBKITQZcSw9OPBI6gBg=" + "s": 115011697, + "sha1_base64": "UyRtSd66GdJl3St17kSGIjwfRaM=" }, { "id": "Monaco", @@ -9032,8 +9032,8 @@ "France", "Monaco" ], - "s": 1958236, - "sha1_base64": "9J51VlIbOXZiAsqbMWQjxrfQJ8o=" + "s": 1959580, + "sha1_base64": "0mwifFM1Ix+eGx0msadB1z/Xm6o=" }, { "id": "Mongolia", @@ -9068,8 +9068,8 @@ "Говьсүмбэр", "Өвөрхангай" ], - "s": 117054554, - "sha1_base64": "/GKvmfb6nIh45/Ay4MH6tjwrFks=" + "s": 117110938, + "sha1_base64": "AOSGNYtpWvS4aGHH4cv+ImEDusA=" }, { "id": "Montenegro", @@ -9079,8 +9079,8 @@ "affiliations": [ "Crna Gora" ], - "s": 36896864, - "sha1_base64": "t96Bh2kKuLjztAS75bkVndJjcCs=" + "s": 36938240, + "sha1_base64": "/gPVaTUaUVfjQBdxvTzG7zjznHg=" }, { "id": "Morocco", @@ -9098,8 +9098,8 @@ "Maroc ⵍⵎⵖⵔⵉⴱ المغرب", "Souss-Massa ⵙⵓⵙⵙ-ⵎⴰⵙⵙⴰ سوس-ماسة" ], - "s": 55782340, - "sha1_base64": "fOun/AcNszbRfmblzMTqloB0TTk=" + "s": 55922780, + "sha1_base64": "KC0/hQupATwMCuf+gtHmlO2Dcnk=" }, { "id": "Morocco_Southern", @@ -9115,8 +9115,8 @@ "Oriental ⵜⴰⵏⴳⵎⵓⴹⵜ الشرقية", "Souss-Massa ⵙⵓⵙⵙ-ⵎⴰⵙⵙⴰ سوس-ماسة" ], - "s": 109146088, - "sha1_base64": "u7LxVaZOiJWAJZV3vO8X1BYcrfs=" + "s": 109195536, + "sha1_base64": "L4CEhgOQjkpCOOYibY0oTF/HKfo=" }, { "id": "Morocco_Doukkala-Abda", @@ -9129,8 +9129,8 @@ "Maroc ⵍⵎⵖⵔⵉⴱ المغرب", "Marrakech-Safi ⵎⵕⵕⴰⴽⵛ-ⴰⵙⴼⵉ مراكش-أسفي" ], - "s": 79833495, - "sha1_base64": "JbvgN2MTiilM3ZHEw91JC8D/7wQ=" + "s": 79866791, + "sha1_base64": "hfPtYoSsqOCBOGRjFiQC6Gs+g+A=" }, { "id": "Morocco_Rabat-Sale-Zemmour-Zaer", @@ -9144,8 +9144,8 @@ "Rabat-Salé-Kénitra ⴻⵔⵔⴱⴰⵟ-ⵙⵍⴰ-ⵇⵏⵉⵟⵔⴰ الرباط-سلا-القنيطرة", "Tanger-Tétouan-Al Hoceima ⵟⴰⵏⵊ-ⵟⵉⵜⴰⵡⵉⵏ-ⵍⵃⵓⵙⵉⵎⴰ طنجة-تطوان-الحسيمة" ], - "s": 60478622, - "sha1_base64": "jfe/byRa5c4B7V/0sJXRQgSfvZE=" + "s": 60495862, + "sha1_base64": "7rOAxjkVqXrBkUyb5/Dz6ER5aCY=" } ] }, @@ -9167,8 +9167,8 @@ "Sofala", "Zambézia" ], - "s": 225528239, - "sha1_base64": "Tl8sdXEMlGsb5cUPwz2gn9ndCHs=" + "s": 226195999, + "sha1_base64": "oE8UmcFKuzdpK6u5h8Lcib8Kt+A=" }, { "id": "Myanmar", @@ -9196,8 +9196,8 @@ "country_name_synonyms": [ "Burma" ], - "s": 337264084, - "sha1_base64": "XHD1iHLZQixM13G8dcTNB9L9yP4=" + "s": 337670116, + "sha1_base64": "xi0YdCcnId2kqw/ogOVUOg4Y0Ag=" }, { "id": "Namibia", @@ -9229,8 +9229,8 @@ "Zambezi Region", "ǁKaras Region" ], - "s": 84583901, - "sha1_base64": "n1hL7bu5OusplxJqnO/tw29dTzI=" + "s": 84735589, + "sha1_base64": "XOjgeDM+qB45fjXmIDw8WziM05A=" }, { "id": "Nauru", @@ -9241,7 +9241,7 @@ "Naoero" ], "s": 466424, - "sha1_base64": "ryeKo2qz8ktO9+WENo/DJjZ8RCM=" + "sha1_base64": "HYVLS+eeToE0zb8F/J7ZoQalQps=" }, { "id": "Nepal", @@ -9257,8 +9257,8 @@ "सुदुर पश्चिमाञ्चल विकास क्षेत्र", "पश्चिमाञ्चल विकास क्षेत्र" ], - "s": 225425374, - "sha1_base64": "yyt131+MQ4Xb8jvvrZDzTMzalgU=" + "s": 225655262, + "sha1_base64": "IkL2nmaamJGWWbkEYJmN0yWG/PY=" }, { "id": "Nepal_Kathmandu", @@ -9269,8 +9269,8 @@ "मध्यमाञ्चल विकास क्षेत्र", "नेपाल" ], - "s": 52170625, - "sha1_base64": "sb68i/FVvedSjI4wX1Ks0Tmz9To=" + "s": 52171057, + "sha1_base64": "CCcfmg8+tvpODu62ZobDWllwnPA=" }, { "id": "Nepal_Madhyamanchal", @@ -9281,8 +9281,8 @@ "मध्यमाञ्चल विकास क्षेत्र", "नेपाल" ], - "s": 76651215, - "sha1_base64": "hK90YjH5joYzR5I27B6bepFrZkc=" + "s": 76785191, + "sha1_base64": "SFXLZyOWKa7AkbbOpa3/WNYnZSI=" }, { "id": "Nepal_Purwanchal", @@ -9293,8 +9293,8 @@ "पुर्वाञ्चल विकास क्षेत्र", "नेपाल" ], - "s": 114157305, - "sha1_base64": "omINu+VVtkK/MU6LN/RXLBuMxkw=" + "s": 114160521, + "sha1_base64": "OmWJTJYOwGxMiCutlY1vzWfh2Ww=" } ] }, @@ -9324,8 +9324,8 @@ "Región Autónoma de la Costa Caribe Sur", "Rivas" ], - "s": 64078820, - "sha1_base64": "yvNwJM2uGyNg4hxxh5uI/iV/P9c=" + "s": 64184700, + "sha1_base64": "fDpTMjUf7SAf9N6i2cth9e2CFuA=" }, { "id": "Niger", @@ -9343,8 +9343,8 @@ "Tillabéri", "Zinder" ], - "s": 115898642, - "sha1_base64": "//JzEpkwfdflJI/AJL3FjbpO6AE=" + "s": 115905930, + "sha1_base64": "xFJI7B301vBdxyknnOxfEwO2amo=" }, { "id": "Nigeria", @@ -9385,8 +9385,8 @@ "Rivers", "Taraba" ], - "s": 477659365, - "sha1_base64": "V7YtpKBA0cygTL4Iurh1KBfhTiU=" + "s": 478369893, + "sha1_base64": "EUkuhUas8tMp9QOR+2AImbyRmGU=" }, { "id": "Nigeria_North", @@ -9407,8 +9407,8 @@ "Yobe", "Zamfara" ], - "s": 226960660, - "sha1_base64": "CFvtqRxX43bM+vyW7of3TalTXy4=" + "s": 227002580, + "sha1_base64": "aBFSTPRN8dVAmcAygW/e7jnUkCQ=" } ] }, @@ -9421,7 +9421,7 @@ "Niuē" ], "s": 522096, - "sha1_base64": "j95CwRIuLam3GdePUqmGwxBi2Zc=" + "sha1_base64": "1H1hc3yLLY24O5rZVXJujPltNnA=" }, { "id": "North Korea", @@ -9442,8 +9442,8 @@ "평양직할시", "조선민주주의인민공화국" ], - "s": 103129420, - "sha1_base64": "RNDBxgJasCs2R8isvBJeVaU2n3M=" + "s": 103517524, + "sha1_base64": "Z0EJsoDwXWsm3sVA78P997Rc4XU=" }, { "id": "Norway", @@ -9458,8 +9458,8 @@ "Norge", "Troms" ], - "s": 250018046, - "sha1_base64": "XpBXJGuwnMeb3L9kXg60UYCNUAU=" + "s": 250058278, + "sha1_base64": "nxccCKuGNSWVH4/ft1AUeu6l6uM=" }, { "id": "Norway_Hordaland", @@ -9470,8 +9470,8 @@ "Hordaland", "Norge" ], - "s": 87215067, - "sha1_base64": "muL0fHGbPD/4xIxlh4jPuiFyoew=" + "s": 87216059, + "sha1_base64": "sLAaOuU9WWREPiSsrtgQbg0E3x8=" }, { "id": "Norway_Nordland", @@ -9483,8 +9483,8 @@ "Norge", "Troms" ], - "s": 193762918, - "sha1_base64": "tkFydY6OrZnw8EN7VruxYy0B8RM=" + "s": 193798294, + "sha1_base64": "YcPNq9fwnf8luW4BVLZ33kpcKaE=" }, { "id": "Norway_Svalbard", @@ -9495,8 +9495,8 @@ "Norge", "Svalbard" ], - "s": 18307904, - "sha1_base64": "9LdwSQ17FM2uf1bqWTFItskpkuk=" + "s": 18311352, + "sha1_base64": "U3X4cBPgO+dczgMAP4+P/Lzn7i0=" }, { "id": "Norway_Oppland", @@ -9507,8 +9507,8 @@ "Norge", "Oppland" ], - "s": 99006838, - "sha1_base64": "rCWZ/DKPRXYXQXBLrQevx2fxmZU=" + "s": 99008502, + "sha1_base64": "1F3B5syTsL3OilbM3YX3yhuOWBM=" }, { "id": "Norway_Rogaland", @@ -9519,8 +9519,8 @@ "Norge", "Rogaland" ], - "s": 70978428, - "sha1_base64": "RSzNhTmUTt5SY4iPFW6H+waTPAA=" + "s": 70992020, + "sha1_base64": "dPW97mb9uCibxqNfakwcrNBKYeo=" }, { "id": "Norway_Hedmark", @@ -9531,8 +9531,8 @@ "Hedmark", "Norge" ], - "s": 101371893, - "sha1_base64": "LnGRPzpttlmIxDxIseSoszmORV4=" + "s": 101377437, + "sha1_base64": "bmv20/sSa7N4v1uGGoiEmKB4Yfo=" }, { "id": "Norway_Jan Mayen", @@ -9541,7 +9541,7 @@ "Norge" ], "s": 1198705, - "sha1_base64": "gg8ydSpvTUBHE1t17Que9UFCKxc=" + "sha1_base64": "kdDYOxdk2xieh8nObJ7fpgOyehI=" }, { "id": "Norway_North Trondelag", @@ -9553,8 +9553,8 @@ "Norge", "Sør-Trøndelag" ], - "s": 129156297, - "sha1_base64": "WZuiFfmyzflSOZxzQafckjz4QYo=" + "s": 129167465, + "sha1_base64": "Uq/7Nga5L9IWiJQn/3IUSeu7cGE=" }, { "id": "Norway_South Trondelag", @@ -9565,8 +9565,8 @@ "Norge", "Sør-Trøndelag" ], - "s": 80474020, - "sha1_base64": "aNJYAMAv+WSU9yPcFZFEeAArrS0=" + "s": 80489748, + "sha1_base64": "wQZXQINgNIio5vcPB/yTR8FCs4E=" }, { "id": "Norway_Southern", @@ -9581,8 +9581,8 @@ "Vest-Agder", "Vestfold" ], - "s": 244119466, - "sha1_base64": "HyzosCbJ7JaRBcBnxGYSUgIwNS8=" + "s": 244160818, + "sha1_base64": "g44gUweYq4HCZMATfoe/AYyppdU=" }, { "id": "Norway_Western", @@ -9594,8 +9594,8 @@ "Norge", "Sogn og Fjordane" ], - "s": 134970174, - "sha1_base64": "1C1qx/Rg/pUN9eiUdrK2zcqI0Tg=" + "s": 135009142, + "sha1_base64": "cIwzNL5ONm9+G0b+YZghre61MHE=" }, { "id": "Norway_Central", @@ -9608,8 +9608,8 @@ "Norge", "Oslo" ], - "s": 162118969, - "sha1_base64": "8iW3868qGLKUYlXHRJwWzmNd3No=" + "s": 162112617, + "sha1_base64": "UWTexcQPc+NVysaPbregDA500yk=" }, { "id": "Norway_Bouvet Island", @@ -9621,7 +9621,7 @@ "Norge" ], "s": 180920, - "sha1_base64": "0j0/+YJ7YkJdYMP6LDrPBYqeUXc=" + "sha1_base64": "Ug8SwbZfXFHyK/v8eMxS9mWOBTI=" } ] }, @@ -9643,8 +9643,8 @@ "‏سلطنة عمان‎", "محافظة البريمي" ], - "s": 44914499, - "sha1_base64": "GQ5pci/ql3S6748T8lc+Kzjr12A=" + "s": 44926835, + "sha1_base64": "/kGcxjjSzQ00R73KFqN7PDIN4PE=" }, { "id": "Pakistan", @@ -9662,8 +9662,8 @@ "بلوچستان / Balochistan", "‏پاکستان‎" ], - "s": 249619906, - "sha1_base64": "TJLn+5y7KVJbMeiCIbVfzAICpLU=" + "s": 249905866, + "sha1_base64": "4mb9dydEgP245RSKIX18CbI8f3A=" }, { "id": "Palau", @@ -9674,8 +9674,8 @@ "Belau", "PW" ], - "s": 1653206, - "sha1_base64": "0fag273JtcjrvIL49Ogi3ZLGdL8=" + "s": 1653246, + "sha1_base64": "9lq3gLrFJr/4OevYFZsSq5b+Emg=" }, { "id": "Panama", @@ -9702,8 +9702,8 @@ "Panamá", "Veraguas" ], - "s": 44337176, - "sha1_base64": "/CD6Vk1gFABLaSyuT24pc7+OlpE=" + "s": 44360872, + "sha1_base64": "qW7QeGlZMxiraJOss5/h/BVsFSU=" }, { "id": "Papua New Guinea", @@ -9736,8 +9736,8 @@ "Western", "Western Highlands" ], - "s": 78201872, - "sha1_base64": "xV8jR5+/1lgaH0v/Olbvn6PoA74=" + "s": 78218496, + "sha1_base64": "ab6p4ypWjasOE2li7WZsqJAr0NM=" }, { "id": "Paraguay", @@ -9767,8 +9767,8 @@ "Presidente Hayes", "San Pedro" ], - "s": 100610168, - "sha1_base64": "3twqAimBEZcPp/ER/cAb4wy4/Ug=" + "s": 100613640, + "sha1_base64": "EdeTHGNKkn3S/GKRNZBwqHf5n6U=" }, { "id": "People's Republic of China", @@ -9785,8 +9785,8 @@ "中国", "安徽省" ], - "s": 52965898, - "sha1_base64": "rxAJJUTAWRNiStvtrkt75X1RlXQ=" + "s": 52966442, + "sha1_base64": "I+boqz6Z3jVr1qVCK5SvBS8hyh8=" }, { "id": "China_Chongqing", @@ -9797,8 +9797,8 @@ "重庆市", "中国" ], - "s": 47511872, - "sha1_base64": "ZB4FWAHIn2UCuDKq9WBYI2XQXSM=" + "s": 47549792, + "sha1_base64": "uHXnd6sDd8qmpoooiIhsuVGKrXI=" }, { "id": "China_Fujian", @@ -9809,8 +9809,8 @@ "中国", "福建省" ], - "s": 63005123, - "sha1_base64": "kI6EzfCMZaiS3Sa1P3Umcl4fPwc=" + "s": 63093579, + "sha1_base64": "G3E+zRlCZxNR930cZ3hwNNzdiks=" }, { "id": "China_Gansu", @@ -9821,8 +9821,8 @@ "中国", "甘肃省" ], - "s": 113156238, - "sha1_base64": "9I6wQ4EpjtKXtdpSpMHS+68gclw=" + "s": 113340566, + "sha1_base64": "PwpNZf6LHFxT2DRZyCqgHcHdOtY=" }, { "id": "China_Guangdong", @@ -9837,8 +9837,8 @@ "country_name_synonyms": [ "Hong Kong" ], - "s": 284758442, - "sha1_base64": "ktbG/J7T2T4ZGoHAGzadLHizebQ=" + "s": 285146906, + "sha1_base64": "0BKMJhwtBc1zToaWhTp9+Cal0sw=" }, { "id": "China_Guangxi", @@ -9849,8 +9849,8 @@ "广西壮族自治区", "中国" ], - "s": 96783144, - "sha1_base64": "Q5a88ZRcPoMlgsuhDF7Td8ngMXA=" + "s": 96806072, + "sha1_base64": "R7oTyMK93yrHC04p3z54/+c7nBk=" }, { "id": "China_Guizhou", @@ -9861,8 +9861,8 @@ "贵州省", "中国" ], - "s": 51924633, - "sha1_base64": "jEHDCYSeF0bwVo5LsLRB/388RYg=" + "s": 51936825, + "sha1_base64": "tDEM/pUkYBCPt8dIBbEA242DnVw=" }, { "id": "China_Hebei", @@ -9875,8 +9875,8 @@ "天津市", "河北省" ], - "s": 145770264, - "sha1_base64": "YIP6gaiatKZ5JnGlKwos2Y1UqBA=" + "s": 146196376, + "sha1_base64": "MfVYrf42CZg5UeKaNMVbw4zqZJ4=" }, { "id": "China_Heilongjiang", @@ -9887,8 +9887,8 @@ "中国", "黑龙江省" ], - "s": 61953610, - "sha1_base64": "W3GGvUT1Hsq+AsYtnDKSh3FTIgA=" + "s": 62030570, + "sha1_base64": "D6NZi7cbmZMsTPsICun02Mc8k4g=" }, { "id": "China_Henan", @@ -9899,8 +9899,8 @@ "中国", "河南省" ], - "s": 68291268, - "sha1_base64": "JMysRpBSe+SeOM39BiZZB9KdQNQ=" + "s": 68360132, + "sha1_base64": "3Wq2aF0PJ5HYtMDMb1hZdfeVLzE=" }, { "id": "China_Hubei", @@ -9912,8 +9912,8 @@ "中国", "湖北省" ], - "s": 80360229, - "sha1_base64": "4VvVDL5PRHvIixmok970A5ii380=" + "s": 80463981, + "sha1_base64": "MecaY482rRHkIDIWEF9jX/fKviw=" }, { "id": "China_Hunan", @@ -9924,8 +9924,8 @@ "中国", "湖南省" ], - "s": 80046692, - "sha1_base64": "xiJoJ9502CPy9sUOz+uISCoxIdA=" + "s": 80123396, + "sha1_base64": "U5Mb0CZ06JKtm/ZhDce8ngfHCs0=" }, { "id": "China_Inner Mongolia", @@ -9936,8 +9936,8 @@ "中国", "内蒙古自治区 / Inner Mongolia" ], - "s": 89549410, - "sha1_base64": "ONm8v/9DG7yr0NKYiwNxoxxBBSs=" + "s": 89792810, + "sha1_base64": "8XLCJ84KDUiuWKs7gBMht0eEDN8=" }, { "id": "China_Jiangsu", @@ -9949,8 +9949,8 @@ "江苏省", "秦山岛" ], - "s": 95144599, - "sha1_base64": "BumHinbmfe/VqUwln56wsybai+U=" + "s": 95165711, + "sha1_base64": "fK1xlczaE+VPEtwwEWngMvoZhck=" }, { "id": "China_Jiangxi", @@ -9961,8 +9961,8 @@ "中国", "江西省" ], - "s": 69100867, - "sha1_base64": "3n2zvgzrxeF5abECNrFJYn7RtpI=" + "s": 69145899, + "sha1_base64": "jwXKAVM6/yBP5jza48fEsPDCZzE=" }, { "id": "China_Jilin", @@ -9973,8 +9973,8 @@ "中国", "吉林省" ], - "s": 41106856, - "sha1_base64": "88UO/5qIHVjFoGzfwtbCHv70u8s=" + "s": 41187000, + "sha1_base64": "WGQ8SzV8IHDLp8JYGHDdzJL0JMo=" }, { "id": "China_Liaoning", @@ -9985,8 +9985,8 @@ "辽宁省", "中国" ], - "s": 42478617, - "sha1_base64": "4FX44Ajxbss0XYSTxI+s0BIXt+Q=" + "s": 42654721, + "sha1_base64": "Hv7eJSTYn0SJcIQvO2nxWBEodn8=" }, { "id": "China_Ningxia Hui", @@ -9997,8 +9997,8 @@ "宁夏回族自治区", "中国" ], - "s": 15236573, - "sha1_base64": "NdAgJocUq6y/ZejB6A6PGP+lj0Q=" + "s": 15243029, + "sha1_base64": "SOZb/btuFFHmgworNS7olCUtP5c=" }, { "id": "China_Qinghai", @@ -10009,8 +10009,8 @@ "青海省", "中国" ], - "s": 79140201, - "sha1_base64": "OFGpfZivj50BfNyDgO1al50V/Os=" + "s": 79169073, + "sha1_base64": "ukJ8rhkQ6gyxJYbCcotrNshVbWY=" }, { "id": "China_Shaanxi", @@ -10021,8 +10021,8 @@ "陕西省", "中国" ], - "s": 96288652, - "sha1_base64": "AJN7NPVruRGpmRmdf5RR5DVZXqc=" + "s": 96281068, + "sha1_base64": "+OkL0VoE12+dhFjS6lHD+vCw7x4=" }, { "id": "China_Shandong", @@ -10033,8 +10033,8 @@ "中国", "山东省" ], - "s": 90348558, - "sha1_base64": "YQNnaJgBkjdoCQhyo6Dg49SEJvE=" + "s": 90646878, + "sha1_base64": "MB1gPvTfNw+d8zbisJBKeE/2DbA=" }, { "id": "China_Shanghai", @@ -10046,8 +10046,8 @@ "上海市", "浙江省" ], - "s": 31716495, - "sha1_base64": "sqhmSHqRwfIJ7d+bmzSKi4pv21o=" + "s": 31750831, + "sha1_base64": "sjytOeLOLVf93GTQNKzD4gbXxYQ=" }, { "id": "China_Shanxi", @@ -10058,8 +10058,8 @@ "中国", "山西省" ], - "s": 56426393, - "sha1_base64": "MVvqaPGDE+JSDjBD6/UsvRwf2nA=" + "s": 56622257, + "sha1_base64": "1hB74rS9TCclPR+dc+NMW+mANxc=" }, { "id": "China_Sichuan", @@ -10070,8 +10070,8 @@ "中国", "四川省" ], - "s": 207820478, - "sha1_base64": "GFGiQWPU0jhTMY3ifgGkCB1uYvo=" + "s": 208026166, + "sha1_base64": "jXsJglKs/DxA3uYHWAyEhU7sGjo=" }, { "id": "China_Tibet Autonomous Region", @@ -10082,8 +10082,8 @@ "中国", "西藏自治区 (བོད་རང་སྐྱོང་ལྗོངས་)" ], - "s": 130339442, - "sha1_base64": "xzaHop5r1wHo+YFErP5EPgw4llM=" + "s": 130656906, + "sha1_base64": "xf3hkUuFthWJK2o5CuTX1zwM0kI=" }, { "id": "China_Xinjiang", @@ -10094,8 +10094,8 @@ "中国", "新疆维吾尔自治区" ], - "s": 150071127, - "sha1_base64": "I5/SXTogF1L2A49tUNTRmhnrA1w=" + "s": 150186824, + "sha1_base64": "cp9KFFtZ5fIM7oIfmwXF6CFYtBc=" }, { "id": "China_Yunnan", @@ -10106,8 +10106,8 @@ "中国", "云南省" ], - "s": 165681239, - "sha1_base64": "hJQeOfBtl1PbYR993IxY5i/L8LA=" + "s": 165884175, + "sha1_base64": "u2MlbV6CEcmQqmkuuRh0vfH3jWw=" }, { "id": "China_Zhejiang", @@ -10118,8 +10118,8 @@ "中国", "浙江省" ], - "s": 112331697, - "sha1_base64": "Y0m2DOW8xFIlKG3in44+7wq2Xr4=" + "s": 112454937, + "sha1_base64": "TYwdSNr3dWfGTrqy4niax/dg4Ro=" } ] }, @@ -10141,8 +10141,8 @@ "臺北市", "中華民國" ], - "s": 266588089, - "sha1_base64": "Gm8havmvrmJo64EUjcfI8pj7+oE=" + "s": 266669393, + "sha1_base64": "rWPXh2C2dEM5mRbvaQ0MWXqnDj4=" }, { "id": "Taiwan_South", @@ -10155,8 +10155,8 @@ "臺中市", "中華民國" ], - "s": 195031409, - "sha1_base64": "Ocek1Zxdum+bwDX7rbeRNIh5NI0=" + "s": 200496081, + "sha1_base64": "Ty1WgNTfAJMNXEbNek2wwufqfTs=" } ] }, @@ -10183,8 +10183,8 @@ "Tumbes", "Ucayali" ], - "s": 168474504, - "sha1_base64": "TJ/kCVTeqUcuIVr45ek3fytXZgA=" + "s": 168525208, + "sha1_base64": "ePZbnjyLrMCp10+7AclVcbI4j3Y=" }, { "id": "Peru_Lima", @@ -10199,8 +10199,8 @@ "Lima", "Perú" ], - "s": 81217446, - "sha1_base64": "v9rH+kqltzRltsPwy9HBSSBYxaY=" + "s": 81339494, + "sha1_base64": "GVysTY0p4hCmwErTF1JVG2nMUXI=" }, { "id": "Peru_South", @@ -10218,8 +10218,8 @@ "Puno", "Tacna" ], - "s": 138080040, - "sha1_base64": "km+w88p521dxo3CoCzkvf++xGgA=" + "s": 138099136, + "sha1_base64": "E0zA37wHF6tpBeX5fIspkExuZcE=" } ] }, @@ -10265,8 +10265,8 @@ "Zamboanga del Norte", "Zamboanga del Sur" ], - "s": 134578369, - "sha1_base64": "pDgOmZbL/vpxoitdSs9vk/KQLvs=" + "s": 134837841, + "sha1_base64": "0841ny5v2oIzzuEtIqTM5/XvgAM=" }, { "id": "Philippines_Visayas", @@ -10297,8 +10297,8 @@ "Southern Leyte", "Sorsogon" ], - "s": 112697790, - "sha1_base64": "pdRygeOTe25jE1kM7x4wKwL8LBI=" + "s": 112839750, + "sha1_base64": "bq0kJCHeV3ub56DX6ijQpYzBkkI=" }, { "id": "Philippines_Luzon_South", @@ -10321,8 +10321,8 @@ "Sorsogon", "太平島" ], - "s": 26490796, - "sha1_base64": "iBdQ4KLx96qOszD2eVCnhBLMC60=" + "s": 26497508, + "sha1_base64": "bZiLSlb9o6l5cOi5vJpLVz1MJyg=" }, { "id": "Philippines_Luzon_Manila", @@ -10344,8 +10344,8 @@ "Rizal", "Sorsogon" ], - "s": 161036249, - "sha1_base64": "Ri+X+b46Sc+WWAkd+f4KTsd5vL4=" + "s": 161124161, + "sha1_base64": "dHC8t070uYxdHe4sY+5o6+nvgxU=" }, { "id": "Philippines_Luzon_North", @@ -10381,8 +10381,8 @@ "Zambales", "海南省" ], - "s": 186485476, - "sha1_base64": "3RiblgY5VuJLAtfjoIbUIXlBbdw=" + "s": 186517556, + "sha1_base64": "eMCvDfWy26k8O/wo75Y8lC1f3tw=" } ] }, @@ -10398,7 +10398,7 @@ "Pitcairn" ], "s": 374724, - "sha1_base64": "RCEzYp1oyb6ZuibHXSE/UuVCmwo=" + "sha1_base64": "MHSk80AiUehdqU1kBn6P2vihgOQ=" }, { "id": "Poland", @@ -10413,8 +10413,8 @@ "Territorial waters of Bornholm", "województwo zachodniopomorskie" ], - "s": 94922568, - "sha1_base64": "QSxD3xhyPbl3KD772iRGyVOZM0M=" + "s": 94972560, + "sha1_base64": "+DFA4cVlRNbdBVdInoB2VztQjiE=" }, { "id": "Poland_Pomeranian Voivodeship", @@ -10426,8 +10426,8 @@ "Territorial waters of Bornholm", "województwo pomorskie" ], - "s": 110121297, - "sha1_base64": "1tVXs17u5chE+gPB8E6jWCe0Qrs=" + "s": 110234161, + "sha1_base64": "TanJoVdH7rVula5HJ6eg8iwnmu8=" }, { "id": "Poland_Podlaskie Voivodeship", @@ -10438,8 +10438,8 @@ "Polska", "województwo podlaskie" ], - "s": 73775711, - "sha1_base64": "Oyydn0Z0hCBDill2CYX5XjtBSf0=" + "s": 73822583, + "sha1_base64": "stuDYNbjiH6YrPUxBDGVPDFe+Mc=" }, { "id": "Poland_Masovian Voivodeship", @@ -10450,8 +10450,8 @@ "Polska", "województwo mazowieckie" ], - "s": 274774688, - "sha1_base64": "QdedZHftWG+FVwuy/Os38xw5qgo=" + "s": 275040440, + "sha1_base64": "VBLISNgImC8VVDoRgieThDa7fRs=" }, { "id": "Poland_Lubusz Voivodeship", @@ -10462,8 +10462,8 @@ "Polska", "województwo lubuskie" ], - "s": 57841052, - "sha1_base64": "eK5v9oDJUCCiB9Ddv58QBR9bpdY=" + "s": 57865708, + "sha1_base64": "bysL7jjsWJEKXg0NyV+uqaavj2U=" }, { "id": "Poland_Lublin Voivodeship", @@ -10474,8 +10474,8 @@ "Polska", "województwo lubelskie" ], - "s": 131787083, - "sha1_base64": "SuaQy2ypm9XZWhPP53GAly1Z2Js=" + "s": 131860939, + "sha1_base64": "qBhD81Svqg/gfmRLWeMpOLu3OUw=" }, { "id": "Poland_Lower Silesian Voivodeship", @@ -10486,8 +10486,8 @@ "Polska", "województwo dolnośląskie" ], - "s": 149154524, - "sha1_base64": "avrTxJy662SHWB8cNkKbw42LkZs=" + "s": 149309620, + "sha1_base64": "zqQk6eqfb4SbdNMfgy6xQG6a/DY=" }, { "id": "Poland_Warmian-Masurian Voivodeship", @@ -10498,8 +10498,8 @@ "Polska", "województwo warmińsko-mazurskie" ], - "s": 87754720, - "sha1_base64": "Q2B8zvLBjhEBI22KJvZFIDHO+m8=" + "s": 87812856, + "sha1_base64": "gz+saWomGwT3ixI9yMmQ42Vbfhg=" }, { "id": "Poland_Lodz Voivodeship", @@ -10510,8 +10510,8 @@ "Polska", "województwo łódzkie" ], - "s": 126262353, - "sha1_base64": "XjSlufTl99EGkm5rJRjwsSmtQrQ=" + "s": 126382361, + "sha1_base64": "G19l8EqReILUTgS05WriXC27u2A=" }, { "id": "Poland_Subcarpathian Voivodeship", @@ -10522,8 +10522,8 @@ "Polska", "województwo podkarpackie" ], - "s": 142779323, - "sha1_base64": "jfqGiz5obFGLTBMUdOrw77AJ6bo=" + "s": 142910659, + "sha1_base64": "4xnoVe4aKCYh41nBM5UgFlNwkJ0=" }, { "id": "Poland_Lesser Poland Voivodeship", @@ -10534,8 +10534,8 @@ "Polska", "województwo małopolskie" ], - "s": 195106773, - "sha1_base64": "b7V995cXB8Ov64in6ApYT//Tc0Y=" + "s": 195272909, + "sha1_base64": "WAf5f6qJ4IED7368V3DZAN9tYxE=" }, { "id": "Poland_Silesian Voivodeship", @@ -10546,8 +10546,8 @@ "Polska", "województwo śląskie" ], - "s": 171935900, - "sha1_base64": "3rmyB9Yq0RDuQMXQktzsi38tZMM=" + "s": 172258868, + "sha1_base64": "4MxUk6WBH+r389zv/e+7m1c9WgI=" }, { "id": "Poland_Kuyavian-Pomeranian Voivodeship", @@ -10558,8 +10558,8 @@ "Polska", "województwo kujawsko-pomorskie" ], - "s": 102491264, - "sha1_base64": "8ZQ6bz/tENKcFur0JuqSRAYw8HM=" + "s": 102516576, + "sha1_base64": "JnDNhdet5OBIWXvvs3L9OzVkvr0=" }, { "id": "Poland_Greater Poland Voivodeship", @@ -10570,8 +10570,8 @@ "Polska", "województwo wielkopolskie" ], - "s": 156489820, - "sha1_base64": "vmHrkSKxnt87YQVdPs9tqU1i1d8=" + "s": 156562388, + "sha1_base64": "77MH424e1q4yG02+cutkpBQpUMc=" }, { "id": "Poland_Opole Voivodeship", @@ -10582,8 +10582,8 @@ "Polska", "województwo opolskie" ], - "s": 51089421, - "sha1_base64": "0DyodpWPQ5S6/YZDJ+D0Bo+cg5M=" + "s": 51212869, + "sha1_base64": "LrasUg1x203UWzpAgZilHGpB2FA=" }, { "id": "Poland_Swietokrzyskie Voivodeship", @@ -10594,8 +10594,8 @@ "Polska", "województwo świętokrzyskie" ], - "s": 80367975, - "sha1_base64": "UG6tXoMr2dg/cAow6B9xmbZ4ETQ=" + "s": 80568831, + "sha1_base64": "Sc7UbYaP9FfpTuOGeGmJ8KjwgFs=" } ] }, @@ -10612,8 +10612,8 @@ "Norte", "Portugal" ], - "s": 111038050, - "sha1_base64": "4RYQiyqxPUz2kijLtY6r+OxKKSQ=" + "s": 111219058, + "sha1_base64": "di0bL8XUkyFsFnGJZDNPlGmcN6w=" }, { "id": "Portugal_South", @@ -10627,8 +10627,8 @@ "Lisboa", "Portugal" ], - "s": 155817260, - "sha1_base64": "+yh0mB5Lzbms646CY048FjTXnEc=" + "s": 155895396, + "sha1_base64": "bohanUGhQ19OmjsU607b7bz11N4=" }, { "id": "Portugal_Islands", @@ -10670,8 +10670,8 @@ "Portugal", "Portugal (águas territoriais)" ], - "s": 40325855, - "sha1_base64": "U+MMqznmpLYVw01uhzbbo/+LQvs=" + "s": 40335047, + "sha1_base64": "VoI4amyC1gt05pxFN8NoNm3Si7Q=" }, { "id": "Portugal_Viseu", @@ -10683,8 +10683,8 @@ "Norte", "Portugal" ], - "s": 133622306, - "sha1_base64": "SqJwtCZw06U2SHYKZiWca+EmckI=" + "s": 133825930, + "sha1_base64": "8VeSo18psCCJ+YssfAgDu4knuOE=" } ] }, @@ -10706,8 +10706,8 @@ "Umm Salal", "‏قطر‎" ], - "s": 30665544, - "sha1_base64": "L9HO9F0JjifZ7Wl9bWHXUjLLUBU=" + "s": 30670904, + "sha1_base64": "4WrboUuDSq72PbRsERDlXbS1y5k=" }, { "id": "Republic of Kosovo", @@ -10720,8 +10720,8 @@ "country_name_synonyms": [ "Kosovo" ], - "s": 37071081, - "sha1_base64": "cmmoWZtmukm7rLnBDGeFXqvietk=" + "s": 37074753, + "sha1_base64": "LsnXFhGdcO2sckVw+rQRjlI+RL4=" }, { "id": "Romania", @@ -10740,8 +10740,8 @@ "Tulcea", "Vrancea" ], - "s": 36995499, - "sha1_base64": "gR8VdBgSlRVnHNZdTJC2bukhlo8=" + "s": 37058123, + "sha1_base64": "K+x2Cu+Je53pLWMONSG3P5+NQ8s=" }, { "id": "Romania_Centre", @@ -10757,8 +10757,8 @@ "România", "Sibiu" ], - "s": 71907286, - "sha1_base64": "an/y88AoVjdM92zRGmnW+tc7DFw=" + "s": 71965558, + "sha1_base64": "0WIhqHsNw9h0cYDalZXJyzDOBj4=" }, { "id": "Romania_West", @@ -10772,8 +10772,8 @@ "România", "Timiș" ], - "s": 45618275, - "sha1_base64": "4775nnHnkerlMVSc/UgBYDvArIQ=" + "s": 45663675, + "sha1_base64": "vgk1cbFELjokun7gIoWNCeKAcqI=" }, { "id": "Romania_North_West", @@ -10789,8 +10789,8 @@ "Satu Mare", "Sălaj" ], - "s": 65737295, - "sha1_base64": "x/HZeF6HLyfV/Ut0PJFDd/jkODg=" + "s": 65767079, + "sha1_base64": "RlQHllyfqlac3/Yc+OdhJC01eqI=" }, { "id": "Romania_South_West", @@ -10805,8 +10805,8 @@ "România", "Vâlcea" ], - "s": 44773356, - "sha1_base64": "pNCLOzzWBM6xYJWoaxyp+yY9Mqw=" + "s": 44785340, + "sha1_base64": "KdYE57p+NhYkkTmRIO2+KrpYjGI=" }, { "id": "Romania_North_East", @@ -10822,8 +10822,8 @@ "Suceava", "Vaslui" ], - "s": 51925204, - "sha1_base64": "ZX+KJfzYhtIVsjy4l2MaJSVm5ZE=" + "s": 52004292, + "sha1_base64": "QHgv5lxvEhEJyjjXPJ/TeU+fi2U=" }, { "id": "Romania_South", @@ -10843,8 +10843,8 @@ "România", "Teleorman" ], - "s": 65687877, - "sha1_base64": "DRrNUuoKfgmcxbEBMcM+hdVmafE=" + "s": 65753413, + "sha1_base64": "wh/QLy/H/K7l6fUr9SELE5TvQs8=" } ] }, @@ -10864,8 +10864,8 @@ "Україна", "Республика Крым" ], - "s": 55728755, - "sha1_base64": "iRBodnM5K1ewzkybnXGIb1DL8nY=" + "s": 55742219, + "sha1_base64": "3Ds39x238QkUUOlO0fm3lspvoFE=" }, { "id": "Russia_Altai Krai", @@ -10877,8 +10877,8 @@ "Российская Федерация", "Алтайский край" ], - "s": 154920607, - "sha1_base64": "ts/pNza46hDeC3cdok3DLd1sDGU=" + "s": 154930615, + "sha1_base64": "r6PUfWZFUVTxKNmjNBjpaTZcLd4=" }, { "id": "Russia_Altai Republic", @@ -10890,8 +10890,8 @@ "Российская Федерация", "Республика Алтай" ], - "s": 113821145, - "sha1_base64": "gjf5WhQuoHnxtWsiCi25VZ3Gak8=" + "s": 113858417, + "sha1_base64": "WmNbiE+EYIzqrKrJpPZBZ8CgoTY=" }, { "id": "Russia_Amur Oblast", @@ -10903,8 +10903,8 @@ "Российская Федерация", "Амурская область" ], - "s": 47710783, - "sha1_base64": "f6H74xXL5wM2Q3pXD/6waf9cKYA=" + "s": 47767543, + "sha1_base64": "os8erp9XxDUajxJAKLU1rRyR2kQ=" }, { "id": "Russia_Arkhangelsk Oblast_Central", @@ -10916,8 +10916,8 @@ "Российская Федерация", "Архангельская область" ], - "s": 67026019, - "sha1_base64": "cRojlh7EUsIAWTP7eCbfManvvEY=" + "s": 67053587, + "sha1_base64": "SmCcxjlW1xPldzLrYvX9HIURh78=" }, { "id": "Russia_Arkhangelsk Oblast_North", @@ -10931,8 +10931,8 @@ "Ненецкий автономный округ", "Архангельская область" ], - "s": 70477172, - "sha1_base64": "jx+e73gybbnNlZtAnSN+t+7LThk=" + "s": 70477212, + "sha1_base64": "fzrQfVBjzxRAwLmOPe85j8ptZYU=" }, { "id": "Russia_Astrakhan Oblast", @@ -10944,8 +10944,8 @@ "Российская Федерация", "Астраханская область" ], - "s": 34987135, - "sha1_base64": "nyp33P8AwxU2dJBKc/KMnCBMpDg=" + "s": 35063751, + "sha1_base64": "DFSPerZcp9rUqQtEgSPXJHZlGB4=" }, { "id": "Russia_Bashkortostan", @@ -10957,8 +10957,8 @@ "Российская Федерация", "Башкортостан" ], - "s": 120360678, - "sha1_base64": "1MVUOHoppC51DKa75xo03RWNcWc=" + "s": 120378502, + "sha1_base64": "Cfz8qUv9KJDiZ8i1UZfPh5vZad4=" }, { "id": "Russia_Belgorod Oblast", @@ -10970,8 +10970,8 @@ "Российская Федерация", "Белгородская область" ], - "s": 40373241, - "sha1_base64": "jAq42WD+QMcVyq51JQqK3PerCFc=" + "s": 40376081, + "sha1_base64": "+uEVJfIPJJlFcnWkoPGyksLejQ4=" }, { "id": "Russia_Bryansk Oblast", @@ -10983,8 +10983,8 @@ "Российская Федерация", "Брянская область" ], - "s": 27133208, - "sha1_base64": "pjNGPGGgqx75M9f30B8fiEVLa1E=" + "s": 27135184, + "sha1_base64": "Hf19Bn4cS1Vg+oBzeUNr649Iaok=" }, { "id": "Russia_Buryatia", @@ -10996,8 +10996,8 @@ "Российская Федерация", "Бурятия" ], - "s": 47554376, - "sha1_base64": "ritAfy+W7OLoBCxIDKF2RRdKdUw=" + "s": 47558920, + "sha1_base64": "SJ/ccoFTpPSOq3aeLbpV9dNZMSk=" }, { "id": "Russia_Chechen Republic", @@ -11009,8 +11009,8 @@ "Россия", "Российская Федерация" ], - "s": 28020341, - "sha1_base64": "OkYxk2VFBX+5yMwCMYtjpsuzFCU=" + "s": 28023765, + "sha1_base64": "qr9ru5Ni7izz6r1kfCiM+YE7AiA=" }, { "id": "Russia_Chelyabinsk Oblast", @@ -11022,8 +11022,8 @@ "Российская Федерация", "Челябинская область" ], - "s": 82846848, - "sha1_base64": "pscrmHoiOgGz2Siyr0rSKAvZVzI=" + "s": 82870144, + "sha1_base64": "PK4icAaQd+b9qVPNGNUYMPEblis=" }, { "id": "Russia_Chukotka Autonomous Okrug", @@ -11035,8 +11035,8 @@ "Россия", "Российская Федерация" ], - "s": 154282463, - "sha1_base64": "TqE67q5URIZWk7vpieQS+1jX1P8=" + "s": 154506127, + "sha1_base64": "GNNmQjVi4yKCxRD2+uLKdg0BO0w=" }, { "id": "Russia_Chuvashia", @@ -11048,8 +11048,8 @@ "Российская Федерация", "Чувашия" ], - "s": 28447479, - "sha1_base64": "sJ2CFDyBO4OBub9Wdm6JaXa6Ws0=" + "s": 28461463, + "sha1_base64": "xY/3Un8Aix6CIefiaxUcSDfXLlo=" }, { "id": "Russia_Ingushetia", @@ -11061,8 +11061,8 @@ "Российская Федерация", "Ингушетия" ], - "s": 10172008, - "sha1_base64": "h70ijRZfEDBwiaHhInyKQ7SnIgw=" + "s": 10173465, + "sha1_base64": "deV8xgS6d5OQIE2rFoTczEmce/Q=" }, { "id": "Russia_Irkutsk Oblast", @@ -11074,8 +11074,8 @@ "Российская Федерация", "Иркутская область" ], - "s": 130560237, - "sha1_base64": "0geeZvcJOsdZ1N7A5CY06Cmg05U=" + "s": 130523157, + "sha1_base64": "dLlJ/dbLWQoZzBdXVL3KrC3za90=" }, { "id": "Russia_Ivanovo Oblast", @@ -11087,8 +11087,8 @@ "Россия", "Российская Федерация" ], - "s": 29132799, - "sha1_base64": "oVQZOvZodY4fb664aX2xdBTarwU=" + "s": 29142919, + "sha1_base64": "H0sMXqJxEmxmyZt5MV/jRPI0tmY=" }, { "id": "Russia_Jewish Autonomous Oblast", @@ -11100,8 +11100,8 @@ "Россия", "Российская Федерация" ], - "s": 14546948, - "sha1_base64": "0pRzs5edGHrXgBVKUdRpjyLPh0E=" + "s": 14547172, + "sha1_base64": "jjOmpSnQ+qHAIH7H/udMAawIENQ=" }, { "id": "Russia_Kabardino-Balkaria", @@ -11113,8 +11113,8 @@ "Россия", "Российская Федерация" ], - "s": 39780919, - "sha1_base64": "HUBkOav7X9qkXDqfIfosk+1yt64=" + "s": 39782279, + "sha1_base64": "nAlesjJIOUFETfSativkvuhB9Wg=" }, { "id": "Russia_Kaliningrad Oblast", @@ -11126,8 +11126,8 @@ "Российская Федерация", "Калининградская область" ], - "s": 29592895, - "sha1_base64": "BcyJYZff9bfk5X6i963C+IzRo3k=" + "s": 29681671, + "sha1_base64": "d7QgblLrp3KkbaYcsWkwUTMPgVE=" }, { "id": "Russia_Kaluga Oblast", @@ -11139,8 +11139,8 @@ "Российская Федерация", "Калужская область" ], - "s": 40706225, - "sha1_base64": "5BZP4YTbFXAtxGMVEKmsru/dgss=" + "s": 40720337, + "sha1_base64": "HPKpir5x2KHHqThNAYSkcezFPB4=" }, { "id": "Russia_Kamchatka Krai", @@ -11152,8 +11152,8 @@ "Российская Федерация", "Камчатский край" ], - "s": 94724632, - "sha1_base64": "svyCW9xxzGMBLYTRSMVKchMrzI0=" + "s": 94739504, + "sha1_base64": "6kSrz0TnSjKW/MUnIYyRiuvLYvQ=" }, { "id": "Russia_Karachay-Cherkessia", @@ -11165,8 +11165,8 @@ "Россия", "Российская Федерация" ], - "s": 47170167, - "sha1_base64": "CZRhdkP26/0F+8LOf+mwhwV4/fI=" + "s": 47174511, + "sha1_base64": "lQi4trEIc/CGThWdwfl6pUcsH/c=" }, { "id": "Russia_Kemerov Oblast", @@ -11178,8 +11178,8 @@ "Российская Федерация", "Кемеровская область" ], - "s": 44612305, - "sha1_base64": "5mpcRtuUU0QzHGz51zH05YiLnyI=" + "s": 44618169, + "sha1_base64": "a8Vj5bRmJVqFxXbrCudF1Ti/dII=" }, { "id": "Russia_Khabarovsk Krai", @@ -11191,8 +11191,8 @@ "Российская Федерация", "Хабаровский край" ], - "s": 180122645, - "sha1_base64": "j7PUO31EhL0jI8RlTPSabKmC1DE=" + "s": 180140477, + "sha1_base64": "htuETLdsXNm0S6uSBDXgoolkW9g=" }, { "id": "Russia_Khakassia", @@ -11204,8 +11204,8 @@ "Россия", "Российская Федерация" ], - "s": 22008846, - "sha1_base64": "E69obFKswfCQGpjWSSY4geH8Pgk=" + "s": 22009414, + "sha1_base64": "yEutNNwPZPZ0z4X/cKwzbTkLD00=" }, { "id": "Russia_Kirov Oblast", @@ -11217,8 +11217,8 @@ "Российская Федерация", "Кировская область" ], - "s": 132579413, - "sha1_base64": "0J0lWbZ7QvfFibUy4YS2i3pCN1g=" + "s": 132736469, + "sha1_base64": "ZNWDPDx6olbgtQpd8L5A16c8E3A=" }, { "id": "Russia_Komi Republic", @@ -11230,8 +11230,8 @@ "Российская Федерация", "Республика Коми" ], - "s": 108289836, - "sha1_base64": "UUWKpNVUgWjOMgDV6lsgct2SP0M=" + "s": 108330868, + "sha1_base64": "KnEMpxU6EquoV6hUul5trDBeza4=" }, { "id": "Russia_Kostroma Oblast", @@ -11243,8 +11243,8 @@ "Российская Федерация", "Костромская область" ], - "s": 31189151, - "sha1_base64": "xQVIAMo4Pf6uAacXI8DL/pK+eXc=" + "s": 31198983, + "sha1_base64": "XiOFbC6u28qpJnQwq7LXHdBgdUU=" }, { "id": "Russia_Krasnodar Krai", @@ -11256,8 +11256,8 @@ "Российская Федерация", "Краснодарский край" ], - "s": 101908367, - "sha1_base64": "+vZt/NMem/I3pVD9DR9qSKymaKw=" + "s": 101929751, + "sha1_base64": "aBsU2vVF+oCwN8YYytkzbRxuJtw=" }, { "id": "Russia_Krasnodar Krai_Adygeya", @@ -11270,8 +11270,8 @@ "Российская Федерация", "Краснодарский край" ], - "s": 90227487, - "sha1_base64": "QfEA2y0/XnAssYLw1e928/V9YmY=" + "s": 90241655, + "sha1_base64": "Un3YWvrBtYYtWctm3Im5ZJMQNTc=" }, { "id": "Russia_Krasnoyarsk Krai_North", @@ -11283,8 +11283,8 @@ "Российская Федерация", "Красноярский край" ], - "s": 155690671, - "sha1_base64": "BbPhh3TFrGV6kHJcD4XQNe5bTgE=" + "s": 155863279, + "sha1_base64": "fut49bq5/wvdtfmPEmvTfCU3AMA=" }, { "id": "Russia_Krasnoyarsk Krai_South", @@ -11296,8 +11296,8 @@ "Российская Федерация", "Красноярский край" ], - "s": 82041366, - "sha1_base64": "qxAzwnwKz0RD5FcTwTk8l0O6x8U=" + "s": 82500710, + "sha1_base64": "eM754L5/jLxOckXMRh2L/7CI4d0=" }, { "id": "Russia_Kurgan Oblast", @@ -11309,8 +11309,8 @@ "Россия", "Российская Федерация" ], - "s": 36448391, - "sha1_base64": "LQhilT9iKQpiXg14JrLHvjrx1j0=" + "s": 36449951, + "sha1_base64": "T4Z5ol4lGJEqUEvva9WLMcLoJYw=" }, { "id": "Russia_Kursk Oblast", @@ -11322,8 +11322,8 @@ "Российская Федерация", "Курская область" ], - "s": 54689393, - "sha1_base64": "gKPM0Um0Lo6Tcvws2/co82xRjV0=" + "s": 54694313, + "sha1_base64": "4u89dpwhyLUk6pehcNSR32Nov9g=" }, { "id": "Russia_Leningradskaya Oblast_Karelsky", @@ -11335,8 +11335,8 @@ "Российская Федерация", "Ленинградская область" ], - "s": 54254777, - "sha1_base64": "eI3kkrhbsz8AXB/6GJy1FAR0yyM=" + "s": 54295993, + "sha1_base64": "A6Lk75xZiTjN+e6zfYOta7cetVQ=" }, { "id": "Russia_Leningradskaya Oblast_Southeast", @@ -11348,8 +11348,8 @@ "Российская Федерация", "Ленинградская область" ], - "s": 87291128, - "sha1_base64": "mrF1PGxLnkDRfW3JwRc7/lihBj4=" + "s": 87308992, + "sha1_base64": "IpcrdSAfg1+wgspF9kWfREMAw34=" }, { "id": "Russia_Lipetsk Oblast", @@ -11361,8 +11361,8 @@ "Российская Федерация", "Липецкая область" ], - "s": 34981936, - "sha1_base64": "P7H6cfLU6evAO2dF6pP5yFD10TE=" + "s": 34987872, + "sha1_base64": "p9gb6bbogWkJ6vR4xP8qoFTZ6Dg=" }, { "id": "Russia_Magadan Oblast", @@ -11374,8 +11374,8 @@ "Российская Федерация", "Магаданская область" ], - "s": 58644549, - "sha1_base64": "OZEah3iZd9Ouof7G9nnY1AXq8JA=" + "s": 58644613, + "sha1_base64": "nwIDIePQykk2D0OaA22OMuPdRKM=" }, { "id": "Russia_Mari El", @@ -11387,8 +11387,8 @@ "Российская Федерация", "Марий Эл" ], - "s": 32065790, - "sha1_base64": "wrmduYJcJTXIMoMpWAk6YkWpdjQ=" + "s": 32098150, + "sha1_base64": "n/z8n840sp+jVG+sTgBq/ukuySw=" }, { "id": "Russia_Moscow Oblast_East", @@ -11400,8 +11400,8 @@ "Россия", "Российская Федерация" ], - "s": 106780131, - "sha1_base64": "ktbKmEZ12aQgNxKY7x4RC82fOfQ=" + "s": 106967459, + "sha1_base64": "D9mk9tiyE8YK1CBbTEOQFUrRuOo=" }, { "id": "Russia_Moscow Oblast_West", @@ -11414,8 +11414,8 @@ "Российская Федерация", "Москва" ], - "s": 73468326, - "sha1_base64": "Ems2r0d8W1ttSdI72yUV6blATeQ=" + "s": 73495078, + "sha1_base64": "ZIsJ32HFfqgK5k6hNJmwouFZkcQ=" }, { "id": "Russia_Moscow", @@ -11428,8 +11428,8 @@ "Российская Федерация", "Москва" ], - "s": 89785428, - "sha1_base64": "AAIqrOTQ3OSzw9GeGxdnJpzmI2Q=" + "s": 89814500, + "sha1_base64": "RLyIJ/fUBP17cXbgz6muDPMe5V8=" }, { "id": "Russia_Murmansk Oblast", @@ -11441,8 +11441,8 @@ "Россия", "Российская Федерация" ], - "s": 90478355, - "sha1_base64": "q6kjhRoaqHnW1626x2/lo76zP4M=" + "s": 90532075, + "sha1_base64": "GwnGtYdFWkUZ8jDELauiT8Q26YA=" }, { "id": "Russia_Nenets Autonomous Okrug", @@ -11454,8 +11454,8 @@ "Российская Федерация", "Ненецкий автономный округ" ], - "s": 35656956, - "sha1_base64": "hC5Gt8XGSZ4yzv2uDLRk5B8NeLc=" + "s": 35656988, + "sha1_base64": "xZd9TmCgE5wtPy0PmvpJyV8SK8g=" }, { "id": "Russia_Nizhny Novgorod Oblast", @@ -11467,8 +11467,8 @@ "Российская Федерация", "Нижегородская область" ], - "s": 80135421, - "sha1_base64": "4HieyqFrXXVX7ZC9lHwISZzbPHc=" + "s": 80146989, + "sha1_base64": "bj7BjeBdOVZKRbvOP9iN7VgCpXk=" }, { "id": "Russia_North Ossetia-Alania", @@ -11480,8 +11480,8 @@ "Российская Федерация", "Северная Осетия - Алания" ], - "s": 22524531, - "sha1_base64": "PyOPdSSay9Yybq4Sn+Cd60D9Zpw=" + "s": 22525051, + "sha1_base64": "w9MJZD26BFlrB3SIUeBUYKvfs0A=" }, { "id": "Russia_Novgorod Oblast", @@ -11493,8 +11493,8 @@ "Российская Федерация", "Новгородская область" ], - "s": 33721496, - "sha1_base64": "565m868zFjDLgSqFZicOdwlHpD0=" + "s": 33847240, + "sha1_base64": "IvvppnLYhbCZ5ZZgMBTFZ8xyKFc=" }, { "id": "Russia_Novosibirsk Oblast", @@ -11506,8 +11506,8 @@ "Российская Федерация", "Новосибирская область" ], - "s": 80192331, - "sha1_base64": "QYv5jTtkdAMHoNRoau8aJc3NwxI=" + "s": 80209019, + "sha1_base64": "8rNhf3OfpCtRSy1uydc0iMsZkyE=" }, { "id": "Russia_Omsk Oblast", @@ -11519,8 +11519,8 @@ "Российская Федерация", "Омская область" ], - "s": 69287771, - "sha1_base64": "zRgC/86hJBdTaBZH8jRIk6oOpbI=" + "s": 69294115, + "sha1_base64": "SX0y7bnzDJcN+PRCx3OCS/0U66Q=" }, { "id": "Russia_Orenburg Oblast", @@ -11532,8 +11532,8 @@ "Российская Федерация", "Оренбургская область" ], - "s": 53550411, - "sha1_base64": "AAu5fV9PpMIvdxLtp6yZs0JoF3k=" + "s": 53555651, + "sha1_base64": "VnqmNZYnLGk0o8z3VFRyNLB85D0=" }, { "id": "Russia_Oryol Oblast", @@ -11545,8 +11545,8 @@ "Россия", "Российская Федерация" ], - "s": 21638926, - "sha1_base64": "H41ZSSswbLi5tZ9re+VNxn+9U2Y=" + "s": 21639654, + "sha1_base64": "xbUG0/MUnUJ8/aVq1Aa3foNX3E0=" }, { "id": "Russia_Penza Oblast", @@ -11558,8 +11558,8 @@ "Россия", "Российская Федерация" ], - "s": 34240623, - "sha1_base64": "1GBrdUmkH816xWN7vViXzBnsN64=" + "s": 34247919, + "sha1_base64": "PNBaiujOqq/jW8xTSjCmt/K+gGs=" }, { "id": "Russia_Perm Krai_North", @@ -11571,8 +11571,8 @@ "Российская Федерация", "Пермский край" ], - "s": 44336024, - "sha1_base64": "2qZX3pyT56GmqbhaI4hYiTy/yk0=" + "s": 44398144, + "sha1_base64": "WOmPYq/DafcBQFLKswaCWHMgSG4=" }, { "id": "Russia_Perm Krai_South", @@ -11584,8 +11584,8 @@ "Российская Федерация", "Пермский край" ], - "s": 58065846, - "sha1_base64": "DSHBXDkxWNHiX4CrX50PZfPWN3g=" + "s": 58122438, + "sha1_base64": "jjG4eDwE3LeFrUEaVAoubmKPM1I=" }, { "id": "Russia_Primorsky Krai", @@ -11597,8 +11597,8 @@ "Российская Федерация", "Приморский край" ], - "s": 67404291, - "sha1_base64": "pXvueu6OmJ79+hyKDjAW30J3CT8=" + "s": 67445531, + "sha1_base64": "se99Zzaz1joEfA9eVjEWlQHL/Ho=" }, { "id": "Russia_Pskov Oblast", @@ -11610,8 +11610,8 @@ "Россия", "Российская Федерация" ], - "s": 59922069, - "sha1_base64": "03ovJWOOG1Lid1GhPWHhXfEWrWs=" + "s": 59949173, + "sha1_base64": "eQjgzX/TDvh8VTiCzrtMNwgZj8U=" }, { "id": "Russia_Republic of Dagestan", @@ -11623,8 +11623,8 @@ "Российская Федерация", "Дагестан" ], - "s": 106802652, - "sha1_base64": "zUPsT7krlDq5dcbvrCD1mR5MWv4=" + "s": 106812812, + "sha1_base64": "lmyvVaekfrd+RNhtsx8brU0ZH8c=" }, { "id": "Russia_Republic of Kalmykia", @@ -11637,8 +11637,8 @@ "Калмыкия", "Астраханская область" ], - "s": 15718258, - "sha1_base64": "CmRBLLPYg/FNUBC3zS/wYe9miuA=" + "s": 15771642, + "sha1_base64": "esyWcAsqBrX6/k7RwdekcdEJ3+k=" }, { "id": "Russia_Republic of Karelia_North", @@ -11650,8 +11650,8 @@ "Россия", "Российская Федерация" ], - "s": 84824800, - "sha1_base64": "+rjnuK0sLr6s3gkUOMPF2PZvAXQ=" + "s": 84910904, + "sha1_base64": "J4AfY0a1OOOOPKqE2Dnv2m8cmO0=" }, { "id": "Russia_Republic of Karelia_South", @@ -11663,8 +11663,8 @@ "Россия", "Российская Федерация" ], - "s": 81835499, - "sha1_base64": "YT72+V+IBuZYz6ESWiY1zsRcBwo=" + "s": 82277899, + "sha1_base64": "BD7l/V8lFo3Njiy5hLSprpJ2uXA=" }, { "id": "Russia_Republic of Mordovia", @@ -11676,8 +11676,8 @@ "Российская Федерация", "Мордовия" ], - "s": 33999790, - "sha1_base64": "G5FuhG2BNgsJGUmHs90uK1e0WdE=" + "s": 34011166, + "sha1_base64": "u+ydinKvyKYE9wEZZRdvlkfyPzQ=" }, { "id": "Russia_Rostov Oblast", @@ -11689,8 +11689,8 @@ "Россия", "Российская Федерация" ], - "s": 82945958, - "sha1_base64": "r5dw3n7mpJJMGlBNmqKLlzZbwKs=" + "s": 82957270, + "sha1_base64": "rgcT/i5YDBoERWHnj6XeXiHyy0g=" }, { "id": "Russia_Ryazan Oblast", @@ -11702,8 +11702,8 @@ "Россия", "Российская Федерация" ], - "s": 36182936, - "sha1_base64": "5Dcb2Nd4ms+zH5LTqjyIme+GQuI=" + "s": 36194872, + "sha1_base64": "iiog5z8Kzvdgsn+UGscO09/VF6c=" }, { "id": "Russia_Saint Petersburg", @@ -11716,8 +11716,8 @@ "Российская Федерация", "Ленинградская область" ], - "s": 64136294, - "sha1_base64": "SJ3DgGnqAcY+PZpb59SQCPJrQGM=" + "s": 64183638, + "sha1_base64": "KueAVJQb7bdwiUQ5Ac2t+Ke31go=" }, { "id": "Russia_Sakha Republic", @@ -11729,8 +11729,8 @@ "Российская Федерация", "Республика Саха (Якутия)" ], - "s": 328003756, - "sha1_base64": "pCstTSUu4YGdn8B4fqulRaOf+jo=" + "s": 328004380, + "sha1_base64": "yJq3mM7zUutD+qHyFg4QMvueKiI=" }, { "id": "Russia_Sakhalin Oblast", @@ -11742,8 +11742,8 @@ "Российская Федерация", "Сахалинская область" ], - "s": 52180809, - "sha1_base64": "mv7FVoXi2Ks7ntaX6Ty6W2kxGA4=" + "s": 52207969, + "sha1_base64": "9H50TnHoVwRqJ3PUVvIwTHFPFKs=" }, { "id": "Russia_Samara Oblast", @@ -11755,8 +11755,8 @@ "Россия", "Российская Федерация" ], - "s": 56846436, - "sha1_base64": "qEC67Ov18rVw0nrM2Q0IzIq+u4E=" + "s": 56876068, + "sha1_base64": "DtC8n6a1Tu7JfPKHQAUYPTxfSPc=" }, { "id": "Russia_Saratov Oblast", @@ -11768,8 +11768,8 @@ "Российская Федерация", "Саратовская область" ], - "s": 53366771, - "sha1_base64": "spztMA+Wj2iNFXnuPbFoxOSXudE=" + "s": 53372115, + "sha1_base64": "6QGZ/+RxRnK1e8QzAgD0lcvtEX4=" }, { "id": "Russia_Smolensk Oblast", @@ -11781,8 +11781,8 @@ "Россия", "Российская Федерация" ], - "s": 45762178, - "sha1_base64": "GcEaXzaggonQTilSoUdTEzsLeDg=" + "s": 45766026, + "sha1_base64": "CssbH9Gjf52m9p21yLaH/N2b194=" }, { "id": "Russia_Stavropol Krai", @@ -11794,8 +11794,8 @@ "Российская Федерация", "Ставропольский край" ], - "s": 41430570, - "sha1_base64": "ddusqR8MSbIRymv+3dyDL98RMw8=" + "s": 41495146, + "sha1_base64": "MNleoN0GAPFYmje3hXuwZte2v48=" }, { "id": "Russia_Sverdlovsk Oblast_Ekaterinburg", @@ -11807,8 +11807,8 @@ "Российская Федерация", "Свердловская область" ], - "s": 58473028, - "sha1_base64": "EIVvXrjzSjpTJvge5cs9Ho/c1Ps=" + "s": 58495804, + "sha1_base64": "HGavT6r47Y9VltlFbpEYVxlzP9w=" }, { "id": "Russia_Sverdlovsk Oblast_North", @@ -11820,8 +11820,8 @@ "Российская Федерация", "Свердловская область" ], - "s": 62928258, - "sha1_base64": "qCkGFlcTD84yDm3moRQEqEk1UoA=" + "s": 62947690, + "sha1_base64": "xIKHTl0q9ZA4UF047m3XojBbDfY=" }, { "id": "Russia_Tambov Oblast", @@ -11833,8 +11833,8 @@ "Россия", "Российская Федерация" ], - "s": 43492249, - "sha1_base64": "WUvQqNUi5U+33uXGt/M5Xo9XLmg=" + "s": 43496897, + "sha1_base64": "KbbPFLXDWHubDFqdP6S/mCdBgLQ=" }, { "id": "Russia_Tatarstan", @@ -11846,8 +11846,8 @@ "Российская Федерация", "Татарстан" ], - "s": 92684199, - "sha1_base64": "Zs+u/gHCRf45pt0pQJ2xN9p6VEE=" + "s": 92783375, + "sha1_base64": "YfO9/KcbmMwOpzydrQu1khYGovM=" }, { "id": "Russia_Tomsk Oblast", @@ -11859,8 +11859,8 @@ "Российская Федерация", "Томская область" ], - "s": 40204831, - "sha1_base64": "BzuwgQ4wQOd17emomJNOtergiic=" + "s": 40206567, + "sha1_base64": "fZulyE5A946pV9JsC4ql3sVFHzA=" }, { "id": "Russia_Tula Oblast", @@ -11872,8 +11872,8 @@ "Российская Федерация", "Тульская область" ], - "s": 33466048, - "sha1_base64": "1RgpsKG28f8xMIXu15CAO+SItts=" + "s": 33478696, + "sha1_base64": "bLGDbfldq8Tfyufne7froCwlfWQ=" }, { "id": "Russia_Tuva", @@ -11885,8 +11885,8 @@ "Российская Федерация", "Тыва" ], - "s": 23936668, - "sha1_base64": "IsIv8j/PPM58WarG8979Vl10VLU=" + "s": 23941260, + "sha1_base64": "5T8PVR0pD4ZpD1T9NjKxohNgyxw=" }, { "id": "Russia_Tver Oblast", @@ -11898,8 +11898,8 @@ "Российская Федерация", "Тверская область" ], - "s": 77328710, - "sha1_base64": "D2Xs66S4TmyZ08iE6/RlA2DQjCs=" + "s": 77346806, + "sha1_base64": "PfgZyyO60NfI5+swOa6WRe+bzvs=" }, { "id": "Russia_Tyumen Oblast", @@ -11911,8 +11911,8 @@ "Россия", "Российская Федерация" ], - "s": 56050171, - "sha1_base64": "ntn7T4GvxKATis0ThwhXpXHOFfQ=" + "s": 56066363, + "sha1_base64": "T6d5UlsQp3iYthykkmOJt/zoYSs=" }, { "id": "Russia_Udmurt Republic", @@ -11924,8 +11924,8 @@ "Российская Федерация", "Удмуртия" ], - "s": 51912779, - "sha1_base64": "8ARdHYxFMDeDAv1h5d0eKOPdaUc=" + "s": 51949811, + "sha1_base64": "YWjt1SB1FnXT0ppoH5bFg5W3/0M=" }, { "id": "Russia_Ulyanovsk Oblast", @@ -11937,8 +11937,8 @@ "Российская Федерация", "Ульяновская область" ], - "s": 41702124, - "sha1_base64": "gEjYAactQxNILIN+qYuLTDRgiVE=" + "s": 41708604, + "sha1_base64": "y8vtxPBngTEi8kBt0+rm3/Qo8ew=" }, { "id": "Russia_Vladimir Oblast", @@ -11950,8 +11950,8 @@ "Российская Федерация", "Владимирская область" ], - "s": 60719862, - "sha1_base64": "QuRZBs9qZV8QTMaN6ghki2HBHh8=" + "s": 60723470, + "sha1_base64": "n+wE6v0AqmbwViJThgkfZ2YRR7c=" }, { "id": "Russia_Volgograd Oblast", @@ -11963,8 +11963,8 @@ "Российская Федерация", "Волгоградская область" ], - "s": 63295051, - "sha1_base64": "w0ylajvF+Uipp3gCXRrbFPzGNfo=" + "s": 63512531, + "sha1_base64": "Z7AcwXdkfmOyAvFTK9trU2vYpso=" }, { "id": "Russia_Vologda Oblast", @@ -11976,8 +11976,8 @@ "Российская Федерация", "Вологодская область" ], - "s": 65426861, - "sha1_base64": "J+zeb+6RknXKpr3tgQMl85o1PX0=" + "s": 65447253, + "sha1_base64": "eOyRrDdruBm+mv7iFKvKsgtt5Nk=" }, { "id": "Russia_Voronezh Oblast", @@ -11989,8 +11989,8 @@ "Российская Федерация", "Воронежская область" ], - "s": 62763628, - "sha1_base64": "VFO9b5+auDc5FPuMzs+3HnBgbls=" + "s": 62776036, + "sha1_base64": "8ZZteNDoY0g3ZZlCFuXYD3UNJ0k=" }, { "id": "Russia_Yamalo-Nenets Autonomous Okrug", @@ -12002,8 +12002,8 @@ "Россия", "Российская Федерация" ], - "s": 43411313, - "sha1_base64": "GpBKj6YHMQ5vF7GB3tA/FjdpGrs=" + "s": 43425585, + "sha1_base64": "hg4NqLAXzZEa8p3njiXzCWJU9Ns=" }, { "id": "Russia_Yaroslavl Oblast", @@ -12015,8 +12015,8 @@ "Российская Федерация", "Ярославская область" ], - "s": 43750665, - "sha1_base64": "Je4h9AWMI2MXgrPJbIVU+iLCnRI=" + "s": 43755625, + "sha1_base64": "pMrV/tJys4vOfL8cCfCx8jldBO0=" }, { "id": "Russia_Yugra_Khanty", @@ -12028,8 +12028,8 @@ "Россия", "Российская Федерация" ], - "s": 69734874, - "sha1_base64": "iaYsWSjNB8g3ENASSkUejlT9Ds0=" + "s": 69741314, + "sha1_base64": "1+jOMohArP0rVRVGc9UET68gkOk=" }, { "id": "Russia_Yugra_Surgut", @@ -12041,8 +12041,8 @@ "Россия", "Российская Федерация" ], - "s": 67470858, - "sha1_base64": "7hUQwBfap+1YNU4il0BDkDpHxaU=" + "s": 67475274, + "sha1_base64": "SVTLCo+0tGMbHqbZr9fwLuaPu0o=" }, { "id": "Russia_Zabaykalsky Krai", @@ -12054,8 +12054,8 @@ "Российская Федерация", "Забайкальский край" ], - "s": 63560543, - "sha1_base64": "cHIN4YDzRMIUHRf404OOhYAhhJc=" + "s": 63567631, + "sha1_base64": "gks023g8G0OHlTZwZVJpqEn0U50=" } ] }, @@ -12072,8 +12072,8 @@ "Rwanda", "Umujyi wa Kigali" ], - "s": 60722807, - "sha1_base64": "XLzi1pI427iYdlIDhuT4Z6PGoFc=" + "s": 60802263, + "sha1_base64": "1JOyvE9meqsX1AisPafilUHekFc=" }, { "id": "Sahrawi Arab Democratic Republic", @@ -12085,8 +12085,8 @@ "Maroc ⵍⵎⵖⵔⵉⴱ المغرب", "RASD" ], - "s": 14884931, - "sha1_base64": "OjoSY5rRPBYa2iaaU55lWMAevzc=" + "s": 14885923, + "sha1_base64": "KWK8zG/Sy/1udBIpFFzvUbh+q64=" }, { "id": "Saint Helena Ascension and Tristan da Cunha", @@ -12100,8 +12100,8 @@ "Saint Helena, Ascension and Tristan da Cunha", "Tristan da Cunha" ], - "s": 1994044, - "sha1_base64": "XBZNzxDBjQbmaXRw/7/tEp9rlFo=" + "s": 1994372, + "sha1_base64": "mpACjkspOSe8apXZyvpTZ1hc5KQ=" }, { "id": "Samoa", @@ -12119,8 +12119,8 @@ "American Samoa", "Sāmoa" ], - "s": 7113929, - "sha1_base64": "3j67GlFiUEhzULBcfZLMNwHk0rc=" + "s": 7148217, + "sha1_base64": "BF8ZunQQglNIIN1S8zJX1FzNPXM=" }, { "id": "San Marino", @@ -12133,7 +12133,7 @@ "San Marino" ], "s": 1744979, - "sha1_base64": "hAmRjNKc8KHRQ6lC0+/9L+08cXs=" + "sha1_base64": "PsYJHKgAVl5IRJ/ej3tL1HPmZxY=" }, { "id": "Saudi Arabia", @@ -12151,8 +12151,8 @@ "الشرقية", "‏المملكة العربية السعودية‎" ], - "s": 125063200, - "sha1_base64": "sT3lLt5F2g9Vv1shZELuFYGUIGs=" + "s": 125124648, + "sha1_base64": "6Ul3ktpukzVedRSZlkI1pbVdAW4=" }, { "id": "Saudi Arabia_North", @@ -12170,8 +12170,8 @@ "المدينة المنورة", "‏المملكة العربية السعودية‎" ], - "s": 107863349, - "sha1_base64": "E1OPJPMvpoaGojQ66K97HQGOndU=" + "s": 107911525, + "sha1_base64": "RWjRzrtF8cVlGP+QF3aJ8oW8O3E=" } ] }, @@ -12187,8 +12187,8 @@ "Região de Cacheu", "Senegal" ], - "s": 105108658, - "sha1_base64": "UEsBiRh+3ziOQCTvz/yHxeV+5Rs=" + "s": 105136858, + "sha1_base64": "yqnBccniH3bTKTUJaKpSnfFjrWI=" }, { "id": "Serbia", @@ -12200,8 +12200,8 @@ "Војводина", "Централна Србија" ], - "s": 242077911, - "sha1_base64": "+PkgFXzrtM3C5YhZyVm/C2z7Evw=" + "s": 242333991, + "sha1_base64": "s/o1hoatioldSbzsHEF74ceWVMc=" }, { "id": "Seychelles", @@ -12212,7 +12212,7 @@ "Sesel" ], "s": 3029317, - "sha1_base64": "9vZjSyZj3c/leTpDR4GW42THDhk=" + "sha1_base64": "vCpqx1XIz6lLyAn2EI9xamBIzIw=" }, { "id": "Sierra Leone", @@ -12226,8 +12226,8 @@ "Southern Province", "Western Area" ], - "s": 47800526, - "sha1_base64": "WQG1N37YTovRQ9HbvKi+GUTHtpg=" + "s": 47803046, + "sha1_base64": "QmOwyswL8a1M1ymbSW37MTvIkB0=" }, { "id": "Singapore", @@ -12239,8 +12239,8 @@ "Malaysia", "Singapura" ], - "s": 30951951, - "sha1_base64": "ov8E+/oCMNUjAgfDQCj+AE4v5kw=" + "s": 30966607, + "sha1_base64": "8aWtkGCIKAQXSMZnMcMIjfoiZa0=" }, { "id": "Slovakia", @@ -12254,8 +12254,8 @@ "Prešovský kraj", "Slovensko" ], - "s": 56974139, - "sha1_base64": "yXaSaqAgMhPQbhvjB89MrNXZIs4=" + "s": 57089851, + "sha1_base64": "+BCuQCSYidp8cdSiGAU/46RYl18=" }, { "id": "Slovakia_Region of Kosice", @@ -12266,8 +12266,8 @@ "Košický kraj", "Slovensko" ], - "s": 53186786, - "sha1_base64": "SVdXoCVfycsOEFR6stUwRxMY070=" + "s": 53205570, + "sha1_base64": "Pe+uUY6UW2iQu5ztB/3W4nTw8gg=" }, { "id": "Slovakia_Region of Banska Bystrica", @@ -12278,8 +12278,8 @@ "Banskobystrický kraj", "Slovensko" ], - "s": 70312284, - "sha1_base64": "Xwg3QfMBQt2E2Dao020XgdNllT8=" + "s": 70333388, + "sha1_base64": "OQYnAt4/f68lFbCBOtSvPV8BPcU=" }, { "id": "Slovakia_Region of Trnava", @@ -12290,8 +12290,8 @@ "Slovensko", "Trnavský kraj" ], - "s": 30483664, - "sha1_base64": "824V1bbqzJCCjwOjTV9vTVv5LiY=" + "s": 30565528, + "sha1_base64": "Y+FD+JZKxt/OIYMhXUpva3WG7kA=" }, { "id": "Slovakia_Region of Trencin", @@ -12302,8 +12302,8 @@ "Slovensko", "Trenčiansky kraj" ], - "s": 43728346, - "sha1_base64": "i3/Sa4qJfGTJGjy/r/2wCoAMFB8=" + "s": 43790098, + "sha1_base64": "46QUwunGwRXR2u8HtiHiIFXxows=" }, { "id": "Slovakia_Region of Nitra", @@ -12314,8 +12314,8 @@ "Nitriansky kraj", "Slovensko" ], - "s": 34124113, - "sha1_base64": "oLbHDQxY4W2MhnrQ5VyQ1O8rd0s=" + "s": 34351793, + "sha1_base64": "2AhWbpUGmrz6CyWkVvLrGb6/sNE=" }, { "id": "Slovakia_Region of Bratislava", @@ -12326,8 +12326,8 @@ "Bratislavský kraj", "Slovensko" ], - "s": 26390560, - "sha1_base64": "S3GNgPGtHp/hXfDwnNW2C3k7DQU=" + "s": 26438488, + "sha1_base64": "pKSdDIeds0lU4sktsGXR8jI4pRo=" }, { "id": "Slovakia_Region of Zilina", @@ -12338,8 +12338,8 @@ "Slovensko", "Žilinský kraj" ], - "s": 60857267, - "sha1_base64": "Lg6OTFwWYxIfpWWzDEJOA2p9e6c=" + "s": 60868659, + "sha1_base64": "AnjPiBZPoVV1tmRXTfH1tdyscD0=" } ] }, @@ -12355,8 +12355,8 @@ "Border SI-HR", "Slovenija" ], - "s": 179323498, - "sha1_base64": "nY+DFQ8O1HJ4s3GkPvfDouHOkf8=" + "s": 179379762, + "sha1_base64": "VvtJuSv0dFYdtu7NQEUvthtuVT4=" }, { "id": "Slovenia_West", @@ -12366,8 +12366,8 @@ "affiliations": [ "Slovenija" ], - "s": 134311465, - "sha1_base64": "r4kJ/vw1qrB0aH8wzSb5VeR9DsM=" + "s": 134376945, + "sha1_base64": "QZSVI12fSuMvkpumYlMTAeEa0EE=" } ] }, @@ -12389,8 +12389,8 @@ "Temotu Province", "Western Province" ], - "s": 19611772, - "sha1_base64": "zcLtgl1qZQadS+1QS74KqsEH8cQ=" + "s": 19614444, + "sha1_base64": "3661ACzxjHfwM3/AwG9NUo97RrU=" }, { "id": "Somalia", @@ -12418,8 +12418,8 @@ "Togdheer", "Woqooyi Galbeed" ], - "s": 219851006, - "sha1_base64": "F/wg7rBkQ2S7QJe9TX7K6qc6VAM=" + "s": 220019638, + "sha1_base64": "YJeyCWT0cqQB0MGi47QVS/X26Ck=" }, { "id": "South Africa", @@ -12434,8 +12434,8 @@ "South Africa", "Western Cape" ], - "s": 75080247, - "sha1_base64": "LlFf+MlJeJ2wjMgso/wwF2LqYOc=" + "s": 75134599, + "sha1_base64": "jOZ7578HLB6HdyPdWAubnrdvNdQ=" }, { "id": "South Africa_Gauteng", @@ -12446,8 +12446,8 @@ "Gauteng", "South Africa" ], - "s": 49758898, - "sha1_base64": "QP3xmolhXtJbiug5dY6xHnG0fcI=" + "s": 49772530, + "sha1_base64": "6aRFfvqxQlSEP++LSWthtDal7Y4=" }, { "id": "South Africa_North West", @@ -12458,8 +12458,8 @@ "North West", "South Africa" ], - "s": 30626829, - "sha1_base64": "XM0/QGk4kRIQfnTpa7cHGPQe8Xw=" + "s": 30657837, + "sha1_base64": "XhSa/Y/ifvLzOb+/VxkbTxCaUUU=" }, { "id": "South Africa_Free State", @@ -12470,8 +12470,8 @@ "Free State", "South Africa" ], - "s": 34125710, - "sha1_base64": "/t26qBxKA9JAiuQuM8+DdYL9HYY=" + "s": 34127566, + "sha1_base64": "HpvpB+SMdDyiatA2bzJGdUl3dFI=" }, { "id": "South Africa_Eastern Cape", @@ -12482,8 +12482,8 @@ "Eastern Cape", "South Africa" ], - "s": 52174466, - "sha1_base64": "LIBBdvrygA9BEgG3D5gfqxTmNoo=" + "s": 52178466, + "sha1_base64": "IELj6AulW+/IT5ncS8P1k0Z/9dE=" }, { "id": "South Africa_Northern Cape", @@ -12494,8 +12494,8 @@ "Northern Cape", "South Africa" ], - "s": 33413101, - "sha1_base64": "DbINe3gXcsmqrg8rCQmAcYGuq8Q=" + "s": 33449269, + "sha1_base64": "He7qsUNQ7vPYIc1d86HTm4VX86Y=" }, { "id": "South Africa_Mpumalanga", @@ -12506,8 +12506,8 @@ "Mpumalanga", "South Africa" ], - "s": 38439607, - "sha1_base64": "mJY36aHRjoGx0U1EjImaDF7CR4w=" + "s": 38463063, + "sha1_base64": "0dAZgAKYg8Ew3gYLh7Ys8y7JaBc=" }, { "id": "South Africa_Limpopo", @@ -12518,8 +12518,8 @@ "Limpopo", "South Africa" ], - "s": 34326503, - "sha1_base64": "EAL4PQ5JY6dBSdvNGauBSOH5u80=" + "s": 34339783, + "sha1_base64": "Zv6540qpmzdqWgtaxb7dbVPWwEQ=" }, { "id": "South Africa_KwaZulu-Natal", @@ -12530,8 +12530,8 @@ "KwaZulu-Natal", "South Africa" ], - "s": 130893686, - "sha1_base64": "WG2wQJFng3lIXqvSbodYo1LmjGQ=" + "s": 131058903, + "sha1_base64": "ioK5gWLM6AKY1rle+knpZCq5Qx8=" } ] }, @@ -12548,7 +12548,7 @@ "South Georgia and South Sandwich Islands" ], "s": 12551754, - "sha1_base64": "cGTEPEcD/3k9mJlTywv18fNMc38=" + "sha1_base64": "G75a24RBnytxgGxbfW3Is/pRrpo=" }, { "id": "South Ossetia", @@ -12560,8 +12560,8 @@ "Хуссар Ирыстон - Южная Осетия", "საქართველო" ], - "s": 12655081, - "sha1_base64": "aYkyqZw8g6FEED2UTPTMKLe/VCI=" + "s": 12655089, + "sha1_base64": "gKIRczTo6YvA+WvRjAdv4jxsE6M=" }, { "id": "South Sudan", @@ -12582,8 +12582,8 @@ "Western Equatoria", "واراب" ], - "s": 118152170, - "sha1_base64": "3d6yz12It3IGtMjgNDAXuv1jMuE=" + "s": 118198146, + "sha1_base64": "G0iUkBhQrA//zi6IPMnD9iBOs04=" }, { "id": "Spain", @@ -12598,8 +12598,8 @@ "España (mare territorial)", "España" ], - "s": 94130817, - "sha1_base64": "n0XqgTnTKHNdSAdng5YSVtN91xM=" + "s": 94437633, + "sha1_base64": "sWefSUG/+DJU08I+vleLGd3kPgY=" }, { "id": "Spain_Andalusia_Sevilla", @@ -12610,8 +12610,8 @@ "Andalucía", "España" ], - "s": 112146224, - "sha1_base64": "azPb7Je8rvuLnP+lClO+sCLbHz4=" + "s": 112259832, + "sha1_base64": "+nlRZH649YCwBGvlmNMRoKDrnEs=" }, { "id": "Spain_Aragon", @@ -12622,8 +12622,8 @@ "Aragón", "España" ], - "s": 114621467, - "sha1_base64": "plfNaJGLLfoYVZGzmrihuyjemik=" + "s": 114748859, + "sha1_base64": "SBpsUqQQOG6Q/z8M3g983C4F6oQ=" }, { "id": "Spain_Balearic Islands", @@ -12634,8 +12634,8 @@ "Illes Balears", "España" ], - "s": 49563474, - "sha1_base64": "dzdy/2eF8DvezwoAwVtw70/H3kw=" + "s": 49599434, + "sha1_base64": "P31Yy9KTdorQBbUuOBg/uOENSzE=" }, { "id": "Spain_Basque Country", @@ -12647,8 +12647,8 @@ "España", "Euskadi" ], - "s": 85083184, - "sha1_base64": "3J3Kbqxx1xOgurd/tqZFNPaft+o=" + "s": 85020896, + "sha1_base64": "YUnEOFMujbewtNbLFEpnsOqanRM=" }, { "id": "Spain_Canary Islands", @@ -12659,8 +12659,8 @@ "Canarias", "España" ], - "s": 66339260, - "sha1_base64": "M/0J0vxYLcSM8eTsOb4LAkDFm5w=" + "s": 66369028, + "sha1_base64": "G6/Ap3lULxUvLBH1Ir+pnp7waCM=" }, { "id": "Spain_Cantabria", @@ -12671,8 +12671,8 @@ "Cantabria", "España" ], - "s": 39371850, - "sha1_base64": "wBSXAHxaDhfDyFVaFZOopxDPXws=" + "s": 39428058, + "sha1_base64": "T2H7ZMTW8GfSsFmYgs8NrHlPzOA=" }, { "id": "Spain_Castile and Leon_West", @@ -12683,8 +12683,8 @@ "Castilla y León", "España" ], - "s": 109504459, - "sha1_base64": "dQPSHwNePhokj0gpHSJZhOQgKEQ=" + "s": 109558131, + "sha1_base64": "euMpjfROf15jg/le/26n9jRrBzI=" }, { "id": "Spain_Castile and Leon_East", @@ -12695,8 +12695,8 @@ "Castilla y León", "España" ], - "s": 96051730, - "sha1_base64": "FJk3WPaHm5HJL+VFlObuE03vz4Y=" + "s": 96288658, + "sha1_base64": "ynAMbZorJCBTZbkffMRfWM9yHsg=" }, { "id": "Spain_Castile-La Mancha", @@ -12707,8 +12707,8 @@ "Castilla-La Mancha", "España" ], - "s": 127989708, - "sha1_base64": "kwOufbbT/ncuQ7zm5zHTaQecu4k=" + "s": 128108484, + "sha1_base64": "qJFId6I/NUgRZE9/WufhkFs8MAY=" }, { "id": "Spain_Catalonia_Provincia de Barcelona", @@ -12719,8 +12719,8 @@ "Catalunya", "España" ], - "s": 142435404, - "sha1_base64": "q7rMKcY7qeSYPGr5Bm8dVCzrJOg=" + "s": 142609123, + "sha1_base64": "GX8xV/avwBCFGMjEXa0pqMJ0LOs=" }, { "id": "Spain_Catalonia_Provincia de Girona", @@ -12731,8 +12731,8 @@ "Catalunya", "España" ], - "s": 53350787, - "sha1_base64": "nWu0Q3ttejVIwczJRkxX1+Gn/hI=" + "s": 53355571, + "sha1_base64": "wcglaG79h0HDRiU3xMCePcR8GYU=" }, { "id": "Spain_Catalonia_Provincia de Lleida", @@ -12743,8 +12743,8 @@ "Catalunya", "España" ], - "s": 67119718, - "sha1_base64": "Fq6r5wmgAcS0hb6pd0i4Wrt6Pgw=" + "s": 67181766, + "sha1_base64": "BHEwqBI7scLq82/HmRiLOdRWmGY=" }, { "id": "Spain_Catalonia_Provincia de Tarragona", @@ -12755,8 +12755,8 @@ "Catalunya", "España" ], - "s": 50316273, - "sha1_base64": "yIGFJGwerr2QZIKghxuE/37/CBs=" + "s": 50352169, + "sha1_base64": "o3H0WO6h6xjTY8p3W1nWdWfQJ0s=" }, { "id": "Spain_Ceuta", @@ -12768,8 +12768,8 @@ "España", "Maroc ⵍⵎⵖⵔⵉⴱ المغرب" ], - "s": 757141, - "sha1_base64": "zJP+oakVTchl7wxGn73BQP1H4lM=" + "s": 757421, + "sha1_base64": "ystleQO97UDeSucByyHQNKhZ0EI=" }, { "id": "Spain_Community of Madrid", @@ -12780,8 +12780,8 @@ "Comunidad de Madrid", "España" ], - "s": 91660000, - "sha1_base64": "+HWQntZe1BVkFchMGHCnTPm954Y=" + "s": 91759832, + "sha1_base64": "w4eoqCbayWfEwBqf7kDzT+l/MCc=" }, { "id": "Spain_Comunidad Foral de Navarra", @@ -12792,8 +12792,8 @@ "Comunidad Foral de Navarra", "España" ], - "s": 54091805, - "sha1_base64": "EShBApav1iXpaiTl4IeI/Dn80Ls=" + "s": 54214125, + "sha1_base64": "y6xUNccVLLcSuQ2/Oi5B8fWsTpk=" }, { "id": "Spain_Extremadura", @@ -12804,8 +12804,8 @@ "España", "Extremadura" ], - "s": 51142898, - "sha1_base64": "0Sv2yM0waJykTdjUcTdQV4SyY9A=" + "s": 51184274, + "sha1_base64": "NMyzU4GKE1QyyftQePyXPnIr3pI=" }, { "id": "Spain_Galicia_North", @@ -12816,8 +12816,8 @@ "España", "Galicia" ], - "s": 73776472, - "sha1_base64": "hBZ5VQyjK+c2clXOxB+bdaHByfA=" + "s": 73839904, + "sha1_base64": "nZQrjd6/YXa2wH6XkZu1KA8n6Ug=" }, { "id": "Spain_Galicia_South", @@ -12828,8 +12828,8 @@ "España", "Galicia" ], - "s": 52538749, - "sha1_base64": "HpYrs771BrSIrji5LsHNOuBGroE=" + "s": 52561653, + "sha1_base64": "0sfHHk4dryr1OvT0xDvUQvjmvpg=" }, { "id": "Spain_La Rioja", @@ -12840,8 +12840,8 @@ "España", "La Rioja" ], - "s": 18916326, - "sha1_base64": "8ILQKrfbbguxRlsMPX3yZbJPKAo=" + "s": 18933438, + "sha1_base64": "DBAw1lqKIj9myuUtfPMDmLWnvfU=" }, { "id": "Spain_Melilla", @@ -12854,8 +12854,8 @@ "Maroc ⵍⵎⵖⵔⵉⴱ المغرب", "Melilla" ], - "s": 985637, - "sha1_base64": "8diCko3x3wIFiKhHSqH0IrSs1TQ=" + "s": 985573, + "sha1_base64": "sMZDI0Ea1G4ONdHY2oRCw7gMdlw=" }, { "id": "Spain_Principado de Asturias", @@ -12866,8 +12866,8 @@ "España", "Principado de Asturias" ], - "s": 41363667, - "sha1_base64": "vaqNC4rkobsBQ852PWOga6tiI/4=" + "s": 41414995, + "sha1_base64": "6ytnPTC34YtKXSR+dGop8itzr/s=" }, { "id": "Spain_Region de Murcia", @@ -12878,8 +12878,8 @@ "España", "Región de Murcia" ], - "s": 46446866, - "sha1_base64": "Kj/mEkL+tjp7k1RsKNpRs3lJqwc=" + "s": 46489994, + "sha1_base64": "ib0KRDjbnBJsTkjVytM75dpqbfA=" }, { "id": "Spain_Valencian Community", @@ -12890,8 +12890,8 @@ "Comunitat Valenciana", "España" ], - "s": 151057309, - "sha1_base64": "fc461cpOXDYSGr2g7zd2eYUzKHs=" + "s": 151351893, + "sha1_base64": "SQ4OicQNV92ZJWdBdekO+47nwrk=" } ] }, @@ -12911,8 +12911,8 @@ "מחוז ירושלים", "מדינת ישראל" ], - "s": 10235609, - "sha1_base64": "wAK/Du3WEId3sIdLjas6RZqMD6o=" + "s": 10242113, + "sha1_base64": "7afpfAA7ttdln2on3Pup6vYDu7I=" }, { "id": "Palestine", @@ -12924,8 +12924,8 @@ "Area B", "Area C" ], - "s": 38191502, - "sha1_base64": "lHdSKktlgrYv8RbuDVrr3vGt7gw=" + "s": 38196006, + "sha1_base64": "nxPA6JQnwjLbiqe2GX5x8+s6uTs=" } ] }, @@ -12946,8 +12946,8 @@ "Western Province", "ශ්‍රී ලංකා" ], - "s": 140050436, - "sha1_base64": "EIY/ZEPF9jKRcVryEMwVr0DYYEQ=" + "s": 140092981, + "sha1_base64": "8AcN0JywwD8LEs5Se0KvRO+Qx/M=" }, { "id": "Sudan", @@ -12970,8 +12970,8 @@ "an-Nil al-Azraq", "ash-Shamaliyah" ], - "s": 55152872, - "sha1_base64": "8yQF8GwebomddKWWANJvZ/y6ve8=" + "s": 55180032, + "sha1_base64": "DZ+kE8IGyyizk4lL4DaSAI1+KF4=" }, { "id": "Sudan_West", @@ -12996,8 +12996,8 @@ "ash-Shamaliyah", "واراب" ], - "s": 153400836, - "sha1_base64": "0demnBADe6NdeXTz6xuniYzMVdU=" + "s": 154226548, + "sha1_base64": "XhSV6SJMj/OlvZT1NAW1dj/4Kf4=" } ] }, @@ -13019,8 +13019,8 @@ "Suriname", "Wanica" ], - "s": 32470092, - "sha1_base64": "RSdDl/BUg7QzkTeRm7vQ0CzqNlU=" + "s": 32474940, + "sha1_base64": "luXXxsdmETDbLkkNcX/nK2lQYc0=" }, { "id": "Swaziland", @@ -13037,8 +13037,8 @@ "country_name_synonyms": [ "Eswatini" ], - "s": 28148928, - "sha1_base64": "lFUZgr7lhSWtSYVsC854sXkHHGY=" + "s": 28151576, + "sha1_base64": "qgROvDJtbF+lfzTyVrhk5XPyguc=" }, { "id": "Sweden", @@ -13054,8 +13054,8 @@ "Uppsala län", "Västmanlands län" ], - "s": 67538694, - "sha1_base64": "l6SWgQgE0/+82DqdDaZ0xl+4ZCY=" + "s": 67575486, + "sha1_base64": "JRIbigwYB0146m03C2t1btY2MiA=" }, { "id": "Sweden_Stockholm", @@ -13066,8 +13066,8 @@ "Stockholms län", "Sverige" ], - "s": 69108685, - "sha1_base64": "L5WpAz9K8T2heO9HjMlQGARDPVU=" + "s": 69150469, + "sha1_base64": "STABWpvW+7VOA2DEOq2Uf6W3bx0=" }, { "id": "Sweden_Ostra Gotaland", @@ -13084,8 +13084,8 @@ "Sverige", "Territorial waters of Gotland" ], - "s": 114286329, - "sha1_base64": "jJz6AJAlHaOry8oICuzRiJvCqHg=" + "s": 114329721, + "sha1_base64": "a7c6cacd63ynBR2oBSO4R5PE0fM=" }, { "id": "Sweden_Norra Sverige", @@ -13097,8 +13097,8 @@ "Sverige", "Västerbottens län" ], - "s": 112319481, - "sha1_base64": "LbHs8iHHNWD++hZ8zTRa4tS9e80=" + "s": 112341665, + "sha1_base64": "oFYEoS16OWvfO+UpVo1bW2d3nDM=" }, { "id": "Sweden_Mellannorrland", @@ -13110,8 +13110,8 @@ "Sverige", "Västernorrlands län" ], - "s": 136590918, - "sha1_base64": "IJ1pQ95ZbJSnFYw+54GishXBNN0=" + "s": 136598702, + "sha1_base64": "ov2ZE4xbTlWKXKSRHtSGurIbGNg=" }, { "id": "Sweden_Bergslagen", @@ -13125,8 +13125,8 @@ "Sverige", "Värmlands län" ], - "s": 165310481, - "sha1_base64": "LTBMi3CVn1jRBIvFQSIobQd+NfI=" + "s": 165362465, + "sha1_base64": "sBkBRvh9rgB930XCwVI8xHZ3v5g=" }, { "id": "Sweden_Vastra Gotaland", @@ -13139,8 +13139,8 @@ "Sverige", "Västra Götalands län" ], - "s": 139601714, - "sha1_base64": "Snr9wONlm9bSOG0Kp9/NjVkq00A=" + "s": 139702442, + "sha1_base64": "nUuPWLyQlP7nozAopHblGU+p4iU=" }, { "id": "Sweden_Sodra Gotaland", @@ -13154,8 +13154,8 @@ "Sverige", "Territorial waters of Bornholm" ], - "s": 61403381, - "sha1_base64": "JxAgewH6Zb+/KVJT0V7mNjWQSw4=" + "s": 61422069, + "sha1_base64": "f3O57EljNq+0n3QwQ8o4+KpVMys=" } ] }, @@ -13177,8 +13177,8 @@ "Schweiz, Suisse, Svizzera, Svizra", "Thurgau" ], - "s": 102410634, - "sha1_base64": "hLtEtwU74wTDyy2VKsUsIqaxdww=" + "s": 102440690, + "sha1_base64": "6Or93+9X9H6jVILX+TOTCi50Koo=" }, { "id": "Switzerland_Central", @@ -13194,8 +13194,8 @@ "Uri", "Zug" ], - "s": 55421549, - "sha1_base64": "DX7U+lewmEt9cNqko2zcmY7kIpo=" + "s": 55458309, + "sha1_base64": "OpZ7y9UviuNw0S2PpGMlhlbSDMg=" }, { "id": "Switzerland_Espace Mittelland_Bern", @@ -13212,8 +13212,8 @@ "Solothurn", "Vaud" ], - "s": 90975569, - "sha1_base64": "bTq8Drg4Sbw7LwCyrFBwLZmx95c=" + "s": 91031905, + "sha1_base64": "mrbrjKTL/azJuXwYJjBAVs7Vkms=" }, { "id": "Switzerland_Espace Mittelland_East", @@ -13224,8 +13224,8 @@ "Bern - Berne", "Schweiz, Suisse, Svizzera, Svizra" ], - "s": 51171139, - "sha1_base64": "1iUEUFpxa/GUgDo0s1FJYQ2s028=" + "s": 51191163, + "sha1_base64": "1IKpsS8P9rCs/obfzBpiZH8s5Ig=" }, { "id": "Switzerland_Ticino", @@ -13236,8 +13236,8 @@ "Schweiz, Suisse, Svizzera, Svizra", "Ticino" ], - "s": 32620210, - "sha1_base64": "CYiD6giN4008gn82NdqKeoACtXg=" + "s": 32669090, + "sha1_base64": "CyZCoCjobn58YXRswUG/D8ALUAw=" }, { "id": "Switzerland_Northwestern", @@ -13250,8 +13250,8 @@ "Basel-Stadt", "Schweiz, Suisse, Svizzera, Svizra" ], - "s": 57029255, - "sha1_base64": "7ryn3jl00Vs94nuiqhW/d8p/HhY=" + "s": 57021703, + "sha1_base64": "B0kILm+hG1Emfu3erTNcsOgkmcg=" }, { "id": "Switzerland_Lake Geneva region", @@ -13265,8 +13265,8 @@ "Vaud", "Valais - Wallis" ], - "s": 110807956, - "sha1_base64": "X3P4aWud/73lNopBUqkfvjoOymw=" + "s": 110930068, + "sha1_base64": "fQshDLBO+HzKqBe0ZEVy0CbZPZM=" }, { "id": "Switzerland_Zurich", @@ -13277,8 +13277,8 @@ "Schweiz, Suisse, Svizzera, Svizra", "Zürich" ], - "s": 68039455, - "sha1_base64": "aCxY4m1kmlAQzbSfzOwDR7+lch8=" + "s": 68072119, + "sha1_base64": "SneOwmdt5CKfCQx3jxv0CYgdE5w=" } ] }, @@ -13304,8 +13304,8 @@ "UNDOF", "حمص" ], - "s": 102296381, - "sha1_base64": "oSyXmUukL/F4NJPvEsZzz7n2QkU=" + "s": 102495652, + "sha1_base64": "rDeMHN7NSufZTyekY7/6UNJG/Qg=" }, { "id": "Sao Tome and Principe", @@ -13317,8 +13317,8 @@ "São Tomé Province", "São Tomé e Príncipe" ], - "s": 3126383, - "sha1_base64": "N3nXGm6e5mbs4KYlTp7VXeSqu1g=" + "s": 3126367, + "sha1_base64": "wdlKGWh071G3H85iI+kqBlxTzKM=" }, { "id": "Tajikistan", @@ -13332,8 +13332,8 @@ "Ноҳияҳои тобеи ҷумҳурӣ", "Тоҷикистон" ], - "s": 81992305, - "sha1_base64": "7fznL1TIHd6WYBsn3LWrRondmZ8=" + "s": 82032593, + "sha1_base64": "3WxyAuTInJnXDv7ZCBIWdV3eGjI=" }, { "id": "Tanzania", @@ -13368,8 +13368,8 @@ "Unguja Kusini", "Unguja Mjini Magharibi" ], - "s": 609811244, - "sha1_base64": "7ooO2S3J63UFLKMeiO/stSebSj0=" + "s": 609856812, + "sha1_base64": "3ZCfXr8pm07ZMb/Z15bVtFITuso=" }, { "id": "Thailand", @@ -13395,8 +13395,8 @@ "จังหวัดเชียงใหม่", "จังหวัดแม่ฮ่องสอน" ], - "s": 66205751, - "sha1_base64": "PcxBaHEGsWh5dUXn9PP8iAQrS04=" + "s": 66238655, + "sha1_base64": "2+yjudlR+abR9jleZLn6vXtE2VE=" }, { "id": "Thailand_Central", @@ -13442,8 +13442,8 @@ "จังหวัดอำนาจเจริญ", "จังหวัดพระนครศรีอยุธยา" ], - "s": 130339528, - "sha1_base64": "+xH0TIoYw+qkxjY4Tvrma6s4S0U=" + "s": 130486456, + "sha1_base64": "dif/F3VHdRGfEsMI/bO/+jDuSSU=" }, { "id": "Thailand_South", @@ -13485,8 +13485,8 @@ "จังหวัดนครศรีธรรมราช", "จังหวัดประจวบคีรีขันธ์" ], - "s": 170834369, - "sha1_base64": "MRCXya9O/0DmuVRRD8VEZO2feRA=" + "s": 171319913, + "sha1_base64": "2RcFRSiZPJFKz7vjKCqWP2W5+NE=" } ] }, @@ -13502,8 +13502,8 @@ "country_name_synonyms": [ "Bahamas" ], - "s": 15099456, - "sha1_base64": "mavHB3+DAhiJ/iU77ZweAi7tjOg=" + "s": 15099744, + "sha1_base64": "XWrDxrjGjbTiKor40hyD71lgkmo=" }, { "id": "The Gambia", @@ -13522,8 +13522,8 @@ "Mansakonko", "Senegal" ], - "s": 16626193, - "sha1_base64": "XcHBsN/EnsZ4pTgXwT9KLjmRCLw=" + "s": 16626233, + "sha1_base64": "ENqEuGdre7aSr3TJoRKaWWxZnKg=" }, { "id": "Netherlands", @@ -13537,8 +13537,8 @@ "Drenthe", "Nederland" ], - "s": 46813329, - "sha1_base64": "smC5GrPzVtnq5j1XMDYyo+wExpg=" + "s": 46813161, + "sha1_base64": "8gHAQm/ZxgNpCJC4A1GVNee7Svc=" }, { "id": "Netherlands_Flevoland", @@ -13549,8 +13549,8 @@ "Flevoland", "Nederland" ], - "s": 28021878, - "sha1_base64": "OHQxkfWxCzbN9O5T4LsK1BJBZ/c=" + "s": 28059646, + "sha1_base64": "Ng7ESmKGDwUkwsajKcP/keVN+xs=" }, { "id": "Netherlands_Friesland", @@ -13561,8 +13561,8 @@ "Friesland", "Nederland" ], - "s": 69671299, - "sha1_base64": "rB3D2aReXUFNBsRKNhj6FqTmmsI=" + "s": 69693635, + "sha1_base64": "R8OEm43UNQsw8j5wm3EWbKor9jY=" }, { "id": "Netherlands_Gelderland_Nijmegen", @@ -13573,8 +13573,8 @@ "Gelderland", "Nederland" ], - "s": 42766154, - "sha1_base64": "j/sEVLhEGPf7uX7dtBGBnUXyp1A=" + "s": 42776402, + "sha1_base64": "v7kxoxupfJjE/MStThwGZzQgIug=" }, { "id": "Netherlands_Gelderland_North", @@ -13585,8 +13585,8 @@ "Gelderland", "Nederland" ], - "s": 71558388, - "sha1_base64": "sJ3B5SWVydUdp8iRNs3E+i3/ysQ=" + "s": 71567300, + "sha1_base64": "5TSZJhMhdqtjepBzWoIXBcSVaBU=" }, { "id": "Netherlands_Gelderland_Zutphen", @@ -13597,8 +13597,8 @@ "Gelderland", "Nederland" ], - "s": 29626838, - "sha1_base64": "Ay13emAIHPXKC0eRHNHHV5cL+2w=" + "s": 29647454, + "sha1_base64": "qkijpJU42zsczyuYwPe+e8HVaGs=" }, { "id": "Netherlands_Groningen", @@ -13611,8 +13611,8 @@ "Nederland", "Niedersachsen" ], - "s": 44094403, - "sha1_base64": "Q2mD1mBnEJ+0i0a8Dote2Bvkctk=" + "s": 44115619, + "sha1_base64": "AGCU+Na7wSRvvOpYMSCUp28emUU=" }, { "id": "Netherlands_Limburg", @@ -13623,8 +13623,8 @@ "Limburg", "Nederland" ], - "s": 80646708, - "sha1_base64": "/zCxzZWShzLsOZv6JbnlU5LS7wk=" + "s": 80649012, + "sha1_base64": "EsIpn7Asuyn/8Z+uC6Ei7DvrY2Y=" }, { "id": "Netherlands_North Brabant_Eindhoven", @@ -13635,8 +13635,8 @@ "Nederland", "Noord-Brabant" ], - "s": 64943115, - "sha1_base64": "kaVMUKphwAfox9dAycUmim8H3Rg=" + "s": 64963219, + "sha1_base64": "Nd2wiAPA+11NSmyU/sFBVbJGLYI=" }, { "id": "Netherlands_North Brabant_Roosendaal", @@ -13647,8 +13647,8 @@ "Nederland", "Noord-Brabant" ], - "s": 21470237, - "sha1_base64": "yRcZyqgeNoIa3Zj6cAVK36+13N8=" + "s": 21470269, + "sha1_base64": "5vBXq4wRSAH9QMeAdYhAROnHKFU=" }, { "id": "Netherlands_North Brabant_Tiburg", @@ -13660,8 +13660,8 @@ "Nederland - Belgique / België / Belgien", "Noord-Brabant" ], - "s": 50619409, - "sha1_base64": "AKA3f3I1/DyJ3hV0tZnF4Q+UIgU=" + "s": 50623713, + "sha1_base64": "IiMxZQYI7lYpjaVg4mWg48k62YM=" }, { "id": "Netherlands_North Brabant_Uden", @@ -13672,8 +13672,8 @@ "Nederland", "Noord-Brabant" ], - "s": 23538301, - "sha1_base64": "BnPgpSo+Wxsf1Y3czKjcHxLQEJE=" + "s": 23541453, + "sha1_base64": "X+Khft9Y5njiYx54S132TbdfaOM=" }, { "id": "Netherlands_North Holland_Alkmaar", @@ -13684,8 +13684,8 @@ "Nederland", "Noord-Holland" ], - "s": 42702681, - "sha1_base64": "IYjjlzBX5tjOLKPoObk55Vte1Mw=" + "s": 42727321, + "sha1_base64": "N5YBVVRc43p5JhrVeI+FONT/dtI=" }, { "id": "Netherlands_North Holland_Amsterdam", @@ -13696,8 +13696,8 @@ "Nederland", "Noord-Holland" ], - "s": 90054252, - "sha1_base64": "+dUV/w+OlBpZBG55oKZnMEdflGk=" + "s": 90067476, + "sha1_base64": "h7iXuOhCivm7qy+TC1g6ApJic9w=" }, { "id": "Netherlands_North Holland_Zaandam", @@ -13708,8 +13708,8 @@ "Nederland", "Noord-Holland" ], - "s": 30443365, - "sha1_base64": "KJXGG0fBjAbfw/XSNV/qglJynOU=" + "s": 30453309, + "sha1_base64": "lpkgR4J+mSbDP4fPds2SMwbPA3c=" }, { "id": "Netherlands_Overijssel_Enschede", @@ -13720,8 +13720,8 @@ "Nederland", "Overijssel" ], - "s": 44133161, - "sha1_base64": "pvwU9DRQ1QUm8qzM9VMpjuyrfX4=" + "s": 44166769, + "sha1_base64": "HAIjnMAuBCfYexXf6iMr27gTBMg=" }, { "id": "Netherlands_Overijssel_Zwolle", @@ -13732,8 +13732,8 @@ "Nederland", "Overijssel" ], - "s": 44288809, - "sha1_base64": "bhI8imgi1cZaAKsICxaDZHuHTOg=" + "s": 44294993, + "sha1_base64": "XQ/9sIk0w4/qvDOk8wcHNa6+sXg=" }, { "id": "Netherlands_South Holland_Brielle", @@ -13744,8 +13744,8 @@ "Nederland", "Zuid-Holland" ], - "s": 23393177, - "sha1_base64": "M4ZiwgIU2NncdQt2hoy3qtbd3aY=" + "s": 23394297, + "sha1_base64": "a/rdGlutUkX5i8U2kAVI5xiFQQI=" }, { "id": "Netherlands_South Holland_Den Haag", @@ -13756,8 +13756,8 @@ "Nederland", "Zuid-Holland" ], - "s": 70096435, - "sha1_base64": "ONFn0n+TbUIm0IP5f/81emi9Edc=" + "s": 70116635, + "sha1_base64": "WaWT5UPM1i0ZAaeyok1X1I+6RG0=" }, { "id": "Netherlands_South Holland_Leiden", @@ -13768,8 +13768,8 @@ "Nederland", "Zuid-Holland" ], - "s": 29138750, - "sha1_base64": "ImvYlVglCukakNVsWFbwZ8P81S8=" + "s": 29144366, + "sha1_base64": "ZHOpoWbXJ77IUltsm8xrB9peDBc=" }, { "id": "Netherlands_South Holland_Rotterdam", @@ -13780,8 +13780,8 @@ "Nederland", "Zuid-Holland" ], - "s": 68247999, - "sha1_base64": "Hc7H43cnRQApAjmWXUY3YjwN7rU=" + "s": 68280215, + "sha1_base64": "AXqPCjOnMKZKOWLXkuLdX7S/AEs=" }, { "id": "Netherlands_Utrecht_Amersfoort", @@ -13792,8 +13792,8 @@ "Utrecht", "Nederland" ], - "s": 33184376, - "sha1_base64": "FRGGWxpMq4Wr8icVDz2dYLf+m2w=" + "s": 33215152, + "sha1_base64": "dUynSqmALiY2QV667zyAmLDQDPs=" }, { "id": "Netherlands_Utrecht_Utrecht", @@ -13804,8 +13804,8 @@ "Utrecht", "Nederland" ], - "s": 40953234, - "sha1_base64": "jfPWoUoNOV0m7GdAMlgmQ6z6ubU=" + "s": 40970122, + "sha1_base64": "0ua3P52HBD+gtUeWKd62NFhPLek=" }, { "id": "Netherlands_Zeeland", @@ -13816,8 +13816,8 @@ "Nederland", "Zeeland" ], - "s": 37924585, - "sha1_base64": "rX4QCcSJriW4uE/fpLLclEWgNKw=" + "s": 37930721, + "sha1_base64": "SRgnyUMy5mKvSmbl1S4jttAzYF0=" } ] }, @@ -13834,8 +13834,8 @@ "Région des Savanes", "Togo" ], - "s": 59507294, - "sha1_base64": "B7dGPlICK9wypWekQ9o1Vvk5VO8=" + "s": 59477270, + "sha1_base64": "Xqv13gxDt9CA6ESl0d1ZRtLPe3s=" }, { "id": "Tonga", @@ -13856,7 +13856,7 @@ "Vavaʻu" ], "s": 4319956, - "sha1_base64": "qBHbCsI6yNXJptzVrYLQe6Dg7K4=" + "sha1_base64": "vfLWXYWG80Y0Cn6xlQnmfUJ/Qmc=" }, { "id": "Tunisia", @@ -13890,8 +13890,8 @@ "القيروان", "المنستير" ], - "s": 83516710, - "sha1_base64": "8KDXJcYKvxBPh+1rQ5hLVOIkX88=" + "s": 83685454, + "sha1_base64": "gXSh4cBgf4D3yZ3eP1rH0ZaKHIY=" }, { "id": "Turkey", @@ -13912,8 +13912,8 @@ "Osmaniye", "Türkiye" ], - "s": 121470678, - "sha1_base64": "QSOUfk5WT4V3rNjUHEVnPzGJ5WY=" + "s": 121654582, + "sha1_base64": "6EoWG6JsS+i8F1QW2OwYn/SOoVs=" }, { "id": "Turkey_Southeastern Anatolia Region", @@ -13933,8 +13933,8 @@ "Şanlıurfa", "Şırnak" ], - "s": 72146226, - "sha1_base64": "8HVo2Gmdv96cpCCA3exkrWibagc=" + "s": 72189010, + "sha1_base64": "lcZe8i7ahAT1oLzFv1DQOcvJgsU=" }, { "id": "Turkey_Marmara Region_Istanbul", @@ -13951,8 +13951,8 @@ "Çanakkale", "İstanbul" ], - "s": 99866416, - "sha1_base64": "dQ2gWR6TpuyuYR57MFh+Yqif8eM=" + "s": 99909464, + "sha1_base64": "+OWA20hI2ecosTja+5vwtJvh10A=" }, { "id": "Turkey_Marmara Region_Bursa", @@ -13972,8 +13972,8 @@ "Çanakkale", "İstanbul" ], - "s": 81281084, - "sha1_base64": "s7bWve0tcsxy4uDjvAijuTadzVI=" + "s": 81572980, + "sha1_base64": "LrLsFQ9X95ZZk5ELQTkvDCXCxVQ=" }, { "id": "Turkey_Eastern Anatolia Region", @@ -13997,8 +13997,8 @@ "Tunceli", "Türkiye" ], - "s": 62954155, - "sha1_base64": "prmFgm/QKEvCjG1aFf+ijFUPNds=" + "s": 62966267, + "sha1_base64": "DZKS3hM77kh/Q+W5g3kWyS9AO1o=" }, { "id": "Turkey_Black Sea Region", @@ -14026,8 +14026,8 @@ "Zonguldak", "Çorum" ], - "s": 108356592, - "sha1_base64": "irgcw36MHGQdJfwVB6dTfgFH9qE=" + "s": 108378760, + "sha1_base64": "qOwGVMFhl4SGRN5PLYDKRXpEfDY=" }, { "id": "Turkey_Central Anatolia Region_Ankara", @@ -14045,8 +14045,8 @@ "Türkiye", "Çankırı" ], - "s": 65732971, - "sha1_base64": "CZJ68iJXZhQNK92YQoZ39Y4Q7PE=" + "s": 65946171, + "sha1_base64": "c2dG5B4p4nWXTJ+CZO3nazPPyCw=" }, { "id": "Turkey_Central Anatolia Region_Kayseri", @@ -14062,8 +14062,8 @@ "Türkiye", "Yozgat" ], - "s": 59115832, - "sha1_base64": "keWCgM4cRn3Tv3QCFJuba4/BHcs=" + "s": 59144217, + "sha1_base64": "wRE5Ib37D7c7mEKpVpThxcGxjEg=" }, { "id": "Turkey_Aegean Region", @@ -14081,8 +14081,8 @@ "Uşak", "İzmir" ], - "s": 108920463, - "sha1_base64": "IkhEJ+XEi795AnVT/PbxHowt224=" + "s": 108970207, + "sha1_base64": "+R77/HOwKQxvfCf5JTKEkv7WCAU=" } ] }, @@ -14099,8 +14099,8 @@ "Mary", "Türkmenistan" ], - "s": 42532793, - "sha1_base64": "IC0N03M6tOePL5waEH7atHkBmt0=" + "s": 42604153, + "sha1_base64": "EkUo55vyaA32qndJ10TC8ur3Z9I=" }, { "id": "Turks and Caicos Islands", @@ -14112,8 +14112,8 @@ "The Bahamas", "Turks and Caicos Islands" ], - "s": 1486382, - "sha1_base64": "qbrn08v2INTKZahPvFZZWAE9W5I=" + "s": 1486326, + "sha1_base64": "4LiiZNwlVpTUy0p4t9nU5lLTtjc=" }, { "id": "Tuvalu", @@ -14123,8 +14123,8 @@ "affiliations": [ "Tuvalu" ], - "s": 538173, - "sha1_base64": "2JhBnLBAh0MIWZ9XryPRpLHBRjU=" + "s": 538205, + "sha1_base64": "66Wx/jMmm2eraqbDGKMAf2Y/sIU=" }, { "id": "Uganda", @@ -14173,8 +14173,8 @@ "Uganda", "Western Region" ], - "s": 348703566, - "sha1_base64": "jl1IydF7WfwniGPwxNapvEzxuUQ=" + "s": 348700382, + "sha1_base64": "52f5g7XUMF0e9NhNFPLxpZ0OSWY=" }, { "id": "Ukraine", @@ -14188,8 +14188,8 @@ "Черкаська область", "Україна" ], - "s": 45687827, - "sha1_base64": "uLPBCU6g1eDeHkFlzRE10bwLE6I=" + "s": 45689203, + "sha1_base64": "00nnPLqzKe74kOpOQRSULj7qDHg=" }, { "id": "Ukraine_Chernihiv Oblast", @@ -14200,8 +14200,8 @@ "Україна", "Чернігівська область" ], - "s": 37372569, - "sha1_base64": "s5o9cwmOEHMd/6VKUyoiBvg7XMM=" + "s": 37372745, + "sha1_base64": "GoWnLbtP+X7G/79W4h06MydFtmo=" }, { "id": "Ukraine_Chernivtsi Oblast", @@ -14212,8 +14212,8 @@ "Чернівецька область", "Україна" ], - "s": 30682045, - "sha1_base64": "VnZ8y/AXxT0FX2rZeqrHXLvX4g0=" + "s": 30682717, + "sha1_base64": "6bpsWDwIkM0oO+U0okDdn378TVI=" }, { "id": "Ukraine_Dnipropetrovsk Oblast", @@ -14224,8 +14224,8 @@ "Україна", "Дніпропетровська область" ], - "s": 64413147, - "sha1_base64": "K2yAIJ4Ky4gHh84/ICrVVMj1L7Y=" + "s": 64448715, + "sha1_base64": "zAFQWz6FkvQGzJxjsFecXT6Ze7g=" }, { "id": "Ukraine_Donetsk Oblast", @@ -14236,8 +14236,8 @@ "Україна", "Донецька область" ], - "s": 72369540, - "sha1_base64": "Tz2dGBMmmBaLaB+fbRQdTMYSN54=" + "s": 72386652, + "sha1_base64": "QJWGzVuvBtTouoBJ2IfCH2z+Mbw=" }, { "id": "Ukraine_Ivano-Frankivsk Oblast", @@ -14248,8 +14248,8 @@ "Івано-Франківська область", "Україна" ], - "s": 42346489, - "sha1_base64": "KahHkWdOpUsX3mpaGy9O/XECqRI=" + "s": 42350721, + "sha1_base64": "VixppBWvr4+9Gw6W62GJtwF0W7Q=" }, { "id": "Ukraine_Kharkiv Oblast", @@ -14260,8 +14260,8 @@ "Харківська область", "Україна" ], - "s": 64249386, - "sha1_base64": "1CWBqG5cZNno21cyGT9kQ6fxXxA=" + "s": 64287794, + "sha1_base64": "L6wMnOh0X5Bb9tOVmeBi1gewU8Y=" }, { "id": "Ukraine_Kherson Oblast", @@ -14272,8 +14272,8 @@ "Херсонська область", "Україна" ], - "s": 24150405, - "sha1_base64": "sFa8IjX6UuabcHmxY36trp7Nw3w=" + "s": 24158373, + "sha1_base64": "4VaqvUMafZ1IHUPmg1ShlIX2Jp4=" }, { "id": "Ukraine_Khmelnytskyi Oblast", @@ -14284,8 +14284,8 @@ "Хмельницька область", "Україна" ], - "s": 39220014, - "sha1_base64": "7T9J9yRuiw769JUtphkmwm4J+z8=" + "s": 39222094, + "sha1_base64": "iourPZnHoEJI+DCB0J5VOA7Xo4Y=" }, { "id": "Ukraine_Kirovohrad Oblast", @@ -14296,8 +14296,8 @@ "Україна", "Кіровоградська область" ], - "s": 39100598, - "sha1_base64": "U23QeC7q3yIb2xuiZ/mIESErY/I=" + "s": 39129990, + "sha1_base64": "SPGf9v/6BOkUJMmA/5ODgr0IlGk=" }, { "id": "Ukraine_Kyiv Oblast", @@ -14309,8 +14309,8 @@ "Україна", "Київська область" ], - "s": 87635230, - "sha1_base64": "VXOWpeic0VAehQpeScvAVCL09jg=" + "s": 87718174, + "sha1_base64": "EcRZnhyr9DXUQxa4+ggUb1FfsDw=" }, { "id": "Ukraine_Luhansk Oblast", @@ -14321,8 +14321,8 @@ "Україна", "Луганська область" ], - "s": 51344440, - "sha1_base64": "I0lYzS+qC5C0jNZcBHNZ80kImbo=" + "s": 51344920, + "sha1_base64": "ks63F8jpQoVZ42NZpNIxu4mVHpw=" }, { "id": "Ukraine_Lviv Oblast", @@ -14333,8 +14333,8 @@ "Львівська область", "Україна" ], - "s": 73735014, - "sha1_base64": "lYjdVLDoC2uWuvQPgUqzzBEFQwc=" + "s": 73826118, + "sha1_base64": "LWVYI816MiCgusNj1pfzt8uU7Tg=" }, { "id": "Ukraine_Mykolaiv Oblast", @@ -14345,8 +14345,8 @@ "Україна", "Миколаївська область" ], - "s": 37067728, - "sha1_base64": "yYPQtJKaJs6AcBuhBHXM1N3sKpc=" + "s": 37116296, + "sha1_base64": "TwCUj17gFRNq8ULBAm7xiH/dhX8=" }, { "id": "Ukraine_Odessa Oblast", @@ -14357,8 +14357,8 @@ "Україна", "Одеська область" ], - "s": 45653651, - "sha1_base64": "qBZZFOECkKTqJ89f18JdNYZ511w=" + "s": 45656763, + "sha1_base64": "yhlWjYMn67OGhZcxHRaSKhGp4iY=" }, { "id": "Ukraine_Poltava Oblast", @@ -14369,8 +14369,8 @@ "Полтавська область", "Україна" ], - "s": 39336442, - "sha1_base64": "vvDt+STYkrdijQUBe8m5ciIrED4=" + "s": 39347794, + "sha1_base64": "PWbim91BBXRbv8xXla1CmClD+os=" }, { "id": "Ukraine_Rivne Oblast", @@ -14381,8 +14381,8 @@ "Рівненська область", "Україна" ], - "s": 31693518, - "sha1_base64": "O+4P0HdFblfj4+9pHOc8bkWpEZk=" + "s": 31696190, + "sha1_base64": "8r1/Y+QHnDlub1m+noKrcCt/Ihc=" }, { "id": "Ukraine_Sumy Oblast", @@ -14393,8 +14393,8 @@ "Україна", "Сумська область" ], - "s": 34835903, - "sha1_base64": "zBoKaTzOxGgPVCZvBRxFdJrfUPg=" + "s": 34842143, + "sha1_base64": "NAQei88IcId6B22CwVr4XzSbo+E=" }, { "id": "Ukraine_Ternopil Oblast", @@ -14405,8 +14405,8 @@ "Україна", "Тернопільська область" ], - "s": 34927110, - "sha1_base64": "CSaNvooCE5TZiPKO+P9FWy8L29I=" + "s": 34926934, + "sha1_base64": "AoLLmlnjPGT3TF0ptl7YwbwbMFc=" }, { "id": "Ukraine_Vinnytsia Oblast", @@ -14417,8 +14417,8 @@ "Україна", "Вінницька область" ], - "s": 46118312, - "sha1_base64": "u6QYJKePiPud6i5kV3IsBXyFiLE=" + "s": 46171312, + "sha1_base64": "bDinoz7eoFXYo13XS+5FulbIqE4=" }, { "id": "Ukraine_Volyn Oblast", @@ -14429,8 +14429,8 @@ "Україна", "Волинська область" ], - "s": 32192142, - "sha1_base64": "AGUHLS+YUuHT6MYZq9ZR5fKVH/8=" + "s": 32196102, + "sha1_base64": "RnYMgv+t65qCJ3I9nsuLMply+dQ=" }, { "id": "Ukraine_Zakarpattia Oblast", @@ -14441,8 +14441,8 @@ "Україна", "Закарпатська область" ], - "s": 45894427, - "sha1_base64": "1JF1gmHH1l66OjNb7I5MtRShDkA=" + "s": 46062939, + "sha1_base64": "xuoTTzAZVwbganTPZlTpY7+ehM0=" }, { "id": "Ukraine_Zaporizhia Oblast", @@ -14453,8 +14453,8 @@ "Запорізька область", "Україна" ], - "s": 33014398, - "sha1_base64": "GgoCCJUux+pUxkGZj0XtF6DRKvQ=" + "s": 33018310, + "sha1_base64": "VTFs2HJyzNm26vU/q3mrzLTa1eo=" }, { "id": "Ukraine_Zhytomyr Oblast", @@ -14465,8 +14465,8 @@ "Житомирська область", "Україна" ], - "s": 38339801, - "sha1_base64": "iul0ABx/9FHrAJAV+kgx/xaJqVU=" + "s": 38345193, + "sha1_base64": "Rd7zmYAvNWBogI7QIupjH59BwWw=" }, { "id": "Crimea", @@ -14481,8 +14481,8 @@ "Україна", "Республика Крым" ], - "s": 55728755, - "sha1_base64": "iRBodnM5K1ewzkybnXGIb1DL8nY=" + "s": 55742219, + "sha1_base64": "3Ds39x238QkUUOlO0fm3lspvoFE=" } ] }, @@ -14502,8 +14502,8 @@ "الشارقة", "الإمارات العربيّة المتّحدة" ], - "s": 107163231, - "sha1_base64": "t5Og75owKkPAV/GSCtCzeVHgGhY=" + "s": 107269791, + "sha1_base64": "lXvLus8j8+HmDuOJsB5x63EA6Kk=" }, { "id": "Falkland Islands", @@ -14513,8 +14513,8 @@ "affiliations": [ "Falkland Islands" ], - "s": 11050271, - "sha1_base64": "lfFe5PGb9rTwFybfnQC+Eph+3Y0=" + "s": 11050319, + "sha1_base64": "/kqFXPW8pmLJDP4f7oB/b/B5qco=" }, { "id": "United Kingdom", @@ -14527,8 +14527,8 @@ "affiliations": [ "British Indian Ocean Territory" ], - "s": 602047, - "sha1_base64": "xx9C1fg2zZQ73mkZaRtbvt/WMhA=" + "s": 602263, + "sha1_base64": "OYsNakPeCweC9qg+PAx+cog3Qw8=" }, { "id": "UK_England_East Midlands", @@ -14539,8 +14539,8 @@ "England", "United Kingdom" ], - "s": 140346105, - "sha1_base64": "s74fkOBRxzZCGmAqZYVohCPUy3c=" + "s": 140745497, + "sha1_base64": "XzlN9HMjnlIRYwJQUNcq6Gv7SSo=" }, { "id": "UK_England_East of England_Essex", @@ -14551,8 +14551,8 @@ "England", "United Kingdom" ], - "s": 85428804, - "sha1_base64": "4txQrxnT4YSIPWsgqpwsD1auIIg=" + "s": 85585436, + "sha1_base64": "pCqS4Cixlrgf8NJu6Bp4jjalSoA=" }, { "id": "UK_England_East of England_Norfolk", @@ -14563,8 +14563,8 @@ "England", "United Kingdom" ], - "s": 97681246, - "sha1_base64": "upJGFcqvKpI9nodtFw4fdCucVn4=" + "s": 97808790, + "sha1_base64": "fdBoJVx46Xf1d1RWsuE1IDX2pWU=" }, { "id": "UK_England_Greater London", @@ -14575,8 +14575,8 @@ "England", "United Kingdom" ], - "s": 137862795, - "sha1_base64": "568X70qyMVSgdZAUTLmaoWcTymQ=" + "s": 137992363, + "sha1_base64": "R3db5QpCHdUP7xLMvBGpDmbfOPM=" }, { "id": "UK_England_North East England", @@ -14587,8 +14587,8 @@ "England", "United Kingdom" ], - "s": 72320564, - "sha1_base64": "Bgxh+2IRikNA3wLAk3tY3GrJzLk=" + "s": 72486580, + "sha1_base64": "9n2989IpnNX85NXdHco8Sh2dliQ=" }, { "id": "UK_England_North West England_Manchester", @@ -14599,8 +14599,8 @@ "England", "United Kingdom" ], - "s": 133795648, - "sha1_base64": "BMZASjqlDTSAjkewWRFxfCPxUPU=" + "s": 134308704, + "sha1_base64": "Ovq5+WzyKOMPLOFhoML79ecERLI=" }, { "id": "UK_England_North West England_Lancaster", @@ -14611,8 +14611,8 @@ "England", "United Kingdom" ], - "s": 60750564, - "sha1_base64": "2w9r0KaDcGohRXr3mZxqgsqmlUE=" + "s": 60822700, + "sha1_base64": "39ubIWsHlOYcYf7tEwAbPZuePXU=" }, { "id": "UK_England_South East_Brighton", @@ -14623,8 +14623,8 @@ "England", "United Kingdom" ], - "s": 148125033, - "sha1_base64": "uGnbtDFOSOHTmxMVaYC/dWkywXU=" + "s": 148310089, + "sha1_base64": "I+l/Fik2DVomcaTJbf3SdzUprkM=" }, { "id": "UK_England_South East_Oxford", @@ -14635,8 +14635,8 @@ "England", "United Kingdom" ], - "s": 137243785, - "sha1_base64": "N6FsPyg3a65bn/jDZbnx5/g1yHo=" + "s": 137415289, + "sha1_base64": "PqwDGohi1rau4IRgqA6v9HOasJE=" }, { "id": "UK_England_South West England_Bristol", @@ -14647,8 +14647,8 @@ "England", "United Kingdom" ], - "s": 153321778, - "sha1_base64": "IrHdg5fAADSg48Av2DDJnBBiaME=" + "s": 153555618, + "sha1_base64": "GI5NpjlmBpBcNmpnUrgmDyZWsQw=" }, { "id": "UK_England_South West England_Cornwall", @@ -14659,8 +14659,8 @@ "England", "United Kingdom" ], - "s": 87648197, - "sha1_base64": "VAg5p4dew6Uef7ojZkC3uuZxg5I=" + "s": 87821309, + "sha1_base64": "Pvev8o92l0dtN5YHDZ6OkM8LM40=" }, { "id": "UK_England_West Midlands", @@ -14671,8 +14671,8 @@ "England", "United Kingdom" ], - "s": 159600475, - "sha1_base64": "NQBvYbD8bG3EQdUPjJDkvpGoU0k=" + "s": 160651563, + "sha1_base64": "ZG6PldreShBg/tNNBfGXMl4KwO8=" }, { "id": "UK_England_Yorkshire and the Humber", @@ -14683,8 +14683,8 @@ "England", "United Kingdom" ], - "s": 154318370, - "sha1_base64": "QIuHHypQ7Ubge/dcMjDxn/0Pvf8=" + "s": 154788050, + "sha1_base64": "kfcPpZUcckYaCVZBB1+L+SDA1mw=" }, { "id": "UK_Northern Ireland", @@ -14696,8 +14696,8 @@ "Scotland", "United Kingdom" ], - "s": 76875573, - "sha1_base64": "j6rDF+yOGKHmHNlEs49GBNTYGfE=" + "s": 77103413, + "sha1_base64": "CyhJpgwkCxa97cj0Czb9e3uAeBE=" }, { "id": "UK_Scotland_North", @@ -14708,8 +14708,8 @@ "Scotland", "United Kingdom" ], - "s": 185083826, - "sha1_base64": "6R3N/C4z2UlgdaZHvWunU1z9YIM=" + "s": 185292306, + "sha1_base64": "oX/akf9ALo2StXWOAbTX4jjlf5c=" }, { "id": "UK_Scotland_South", @@ -14721,8 +14721,8 @@ "Scotland", "United Kingdom" ], - "s": 144107360, - "sha1_base64": "HDNdlOb6D8Zwn1ux4WCEGCvS9FQ=" + "s": 144211232, + "sha1_base64": "uUaIEC4zhvH239tUoiWV/A+T5Gc=" }, { "id": "UK_Wales", @@ -14733,8 +14733,8 @@ "United Kingdom", "Wales" ], - "s": 152092362, - "sha1_base64": "BaNBA56xeN7FEQ8+sD9kw4I6HuM=" + "s": 152793938, + "sha1_base64": "EY+UNk54R07nZ34sGWw7pJp22nc=" } ] }, @@ -14749,8 +14749,8 @@ "affiliations": [ "Ireland" ], - "s": 62482668, - "sha1_base64": "IY0dekzNcgMvFXylZUJSSc2RCNI=" + "s": 62540604, + "sha1_base64": "gxm3s25pmTy2nOsXYU2zu8z3bbY=" }, { "id": "Ireland_Leinster", @@ -14760,8 +14760,8 @@ "affiliations": [ "Ireland" ], - "s": 133716081, - "sha1_base64": "20Bh/ZquExPnCgUym3xVt1sNcZM=" + "s": 133948465, + "sha1_base64": "ygVt/+kD3Z1+uOQoyvxZk/sFHJs=" }, { "id": "Ireland_Munster", @@ -14771,8 +14771,8 @@ "affiliations": [ "Ireland" ], - "s": 87125142, - "sha1_base64": "zSQE3gC3zITgQnrY79/hSkgOxnA=" + "s": 87253990, + "sha1_base64": "9bEeuVwxsREC0wfGaZN6YwJCs88=" }, { "id": "Ireland_Northern Counties", @@ -14782,8 +14782,8 @@ "affiliations": [ "Ireland" ], - "s": 37158201, - "sha1_base64": "K171qJQmuNIylOSp0ozeXufrqyo=" + "s": 37214801, + "sha1_base64": "0B9OMYNF/q41fKW54Lq59tzfcMQ=" } ] }, @@ -14803,8 +14803,8 @@ "AL", "United States of America" ], - "s": 97200043, - "sha1_base64": "VT4DH9NEL+6XjWizloTgUEN35F0=" + "s": 97235971, + "sha1_base64": "+nU0VRVsS8o2hT2Hn1gW23VD8Lc=" }, { "id": "US_Alabama_Montgomery", @@ -14816,8 +14816,8 @@ "AL", "United States of America" ], - "s": 135114382, - "sha1_base64": "AGGt92HjRQbuE+zg1+P2Q/F5Bs8=" + "s": 135129414, + "sha1_base64": "3T6jkuRZEr+HEAE+YS+hdHjsFgs=" } ] }, @@ -14831,8 +14831,8 @@ "AK", "United States of America" ], - "s": 350126980, - "sha1_base64": "+xmp448d3tujpVLOXs3lqJYVnEI=" + "s": 350235636, + "sha1_base64": "z99K3PaHvpEhK12+SpQnFFXsuG8=" }, { "id": "Arizona", @@ -14847,8 +14847,8 @@ "AZ", "United States of America" ], - "s": 99259396, - "sha1_base64": "sYrkmWxCyb+PxTNvlDs4sjnYD+Q=" + "s": 99576844, + "sha1_base64": "e3qfFhq8WA9blu3teeF+lPCe+eo=" }, { "id": "US_Arizona_Phoenix", @@ -14860,8 +14860,8 @@ "AZ", "United States of America" ], - "s": 191490666, - "sha1_base64": "L6D6eICUmoIODuGKIxGAgMLnqtM=" + "s": 191640314, + "sha1_base64": "ixXxLqZOKgEf3kkvl2TO1uqCSIE=" }, { "id": "US_Arizona_Tucson", @@ -14873,8 +14873,8 @@ "AZ", "United States of America" ], - "s": 89314298, - "sha1_base64": "esUXgxHXWtYuDkAO3/P92skb38A=" + "s": 89458050, + "sha1_base64": "d9XnNsuXzzTJ63pZ6BwCvTBynUg=" } ] }, @@ -14891,8 +14891,8 @@ "AR", "United States of America" ], - "s": 97705315, - "sha1_base64": "Lor02hlCpcfTgxayJ6yZu9GNyag=" + "s": 97833531, + "sha1_base64": "lSn3Ja7vWOhow2EoO/pb5bVJN28=" }, { "id": "US_Arkansas_South", @@ -14904,8 +14904,8 @@ "AR", "United States of America" ], - "s": 63865505, - "sha1_base64": "Wltpxq075Fd8rEzo3VN/gsEG2UY=" + "s": 63919481, + "sha1_base64": "C6S0RRBj6nmyA9136IBt7Re5Jho=" } ] }, @@ -14922,8 +14922,8 @@ "CA", "United States of America" ], - "s": 59618617, - "sha1_base64": "kCIemJPxiKEXpWGoveJXWwT5Yc4=" + "s": 59704417, + "sha1_base64": "GxllJ8OvdlCW4JJQTggYiXVlyAo=" }, { "id": "US_California_Bakersfield_Bakersfield", @@ -14935,8 +14935,8 @@ "CA", "United States of America" ], - "s": 60256416, - "sha1_base64": "SNTjP65OKHT2lFRZKc7sD9bPjXg=" + "s": 60348752, + "sha1_base64": "/ltXc3iqzQcLQdK1wEKhI6e1sKg=" }, { "id": "US_California_Bakersfield_Lancaster", @@ -14948,8 +14948,8 @@ "CA", "United States of America" ], - "s": 80993162, - "sha1_base64": "Uq7DAKqdwBs0Ja5etz4LdH31FZo=" + "s": 81303018, + "sha1_base64": "DUvRaI/F1DBorLrxW5ZW598pWUg=" }, { "id": "US_California_LA", @@ -14961,8 +14961,8 @@ "CA", "United States of America" ], - "s": 300014704, - "sha1_base64": "06THQhe1r//PBR7ODsfa815PI+A=" + "s": 300334888, + "sha1_base64": "VOqHuxdcBXxzpep9bGgYYvt2veA=" }, { "id": "US_California_LA North", @@ -14974,8 +14974,8 @@ "CA", "United States of America" ], - "s": 92954840, - "sha1_base64": "KP3Cwu9J2Tcy0VcVzP0mPTi8Cns=" + "s": 93056784, + "sha1_base64": "SPh0kgHxeRHPaLpiRPseEm7nmmE=" }, { "id": "US_California_Redding", @@ -14988,8 +14988,8 @@ "Hoopa Valley Tribe", "United States of America" ], - "s": 71466075, - "sha1_base64": "ySINGomf5rdFPE0+k1l0QMytpp8=" + "s": 71513219, + "sha1_base64": "M461aLjFp+SX+APUprVJcFasSK4=" }, { "id": "US_California_Sacramento_Sacramento", @@ -15001,8 +15001,8 @@ "CA", "United States of America" ], - "s": 78673578, - "sha1_base64": "CEtInmTXyDkhClDLp22T5Mt12kM=" + "s": 78732562, + "sha1_base64": "e3PiLhdNhGA9ZqUf6MRrVHip+x8=" }, { "id": "US_California_Sacramento_Fresno", @@ -15014,8 +15014,8 @@ "CA", "United States of America" ], - "s": 68075328, - "sha1_base64": "v6diTFEwdXQFLKYfsmHSZYEk5zE=" + "s": 68097984, + "sha1_base64": "4WpZTrz+ii6fGIDZHRZRVmyVDcU=" }, { "id": "US_California_Sacramento_Stockton", @@ -15027,8 +15027,8 @@ "CA", "United States of America" ], - "s": 84442418, - "sha1_base64": "JapcINV8790q6PgPAS81H05ej/4=" + "s": 84483962, + "sha1_base64": "6c5L2TxsiCpL8W65CZuQk+QC9Jw=" }, { "id": "US_California_San Diego", @@ -15040,8 +15040,8 @@ "CA", "United States of America" ], - "s": 132070927, - "sha1_base64": "chowwBzw+pUwZKtV0CyRLXoFLpU=" + "s": 132197647, + "sha1_base64": "yWtZ8rSFNnbls4vgSgluQbQ3D8I=" }, { "id": "US_California_Santa_Clara_Santa Cruz", @@ -15053,8 +15053,8 @@ "CA", "United States of America" ], - "s": 43492312, - "sha1_base64": "5+qKfl6kF9mfq8kS57GL+Y+a5nA=" + "s": 43529816, + "sha1_base64": "1Y6xCuVWgDQFeaoIXlEcUOaWiLc=" }, { "id": "US_California_Santa_Clara_Palo Alto", @@ -15066,8 +15066,8 @@ "CA", "United States of America" ], - "s": 227689026, - "sha1_base64": "FIuOqbdzqLHNsWM5S0h2tux6BUA=" + "s": 227929290, + "sha1_base64": "vuczVivq1p++qapDuuk1wb2VjPo=" } ] }, @@ -15084,8 +15084,8 @@ "CO", "United States of America" ], - "s": 109092676, - "sha1_base64": "+QJZ4WfDazsom5zyiyWefBBb+VA=" + "s": 109116332, + "sha1_base64": "h+BCyuQa+XDTL0e7P2dSrDUYpPk=" }, { "id": "US_Colorado_Denver", @@ -15097,8 +15097,8 @@ "CO", "United States of America" ], - "s": 208294490, - "sha1_base64": "pJjD7avLypqMHcze/mYVC9WWDzQ=" + "s": 208433330, + "sha1_base64": "NNMqiYm+6a2eDo1RgV4prehmVcs=" }, { "id": "US_Colorado_South", @@ -15110,8 +15110,8 @@ "CO", "United States of America" ], - "s": 103138618, - "sha1_base64": "DTc8vXkcleDFSRnU7RD2v/26u1E=" + "s": 103477842, + "sha1_base64": "QR7UrPLhG6kifR5F0b1Ty/zhib4=" } ] }, @@ -15125,8 +15125,8 @@ "CT", "United States of America" ], - "s": 182592255, - "sha1_base64": "EQUgYlXECKfFM5M7uKmUR2pxtOk=" + "s": 182643703, + "sha1_base64": "WLnmO/IntYzPMBNTawVlNwwVvQ8=" }, { "id": "US_Delaware", @@ -15138,8 +15138,8 @@ "DE", "United States of America" ], - "s": 30996166, - "sha1_base64": "vcF/lcZoMk1rtguYGUGEIjHDH0U=" + "s": 31005606, + "sha1_base64": "Zsn8Vi0l6HbQQ2/QEJgDawJGeAk=" }, { "id": "Florida", @@ -15154,8 +15154,8 @@ "FL", "United States of America" ], - "s": 221426300, - "sha1_base64": "bDS4rDckIyTeoOIYo2qRgJYTCeE=" + "s": 221467748, + "sha1_base64": "0a090vTPpTR/TEsRPOfTSS2takA=" }, { "id": "US_Florida_Miami", @@ -15167,8 +15167,8 @@ "FL", "United States of America" ], - "s": 210006184, - "sha1_base64": "94wHhRyhB3CqNpvhfgliaN6CZAI=" + "s": 210115376, + "sha1_base64": "97D6tuMAinSCyOVxbdabBX5jYHM=" }, { "id": "US_Florida_Orlando", @@ -15180,8 +15180,8 @@ "FL", "United States of America" ], - "s": 99067594, - "sha1_base64": "Gu6zQ3gBwMOpd0czoKG4BJ9sJ0Q=" + "s": 99104562, + "sha1_base64": "os1olCkBetUXw5ku5i3XOr/vrMk=" }, { "id": "US_Florida_Tampa", @@ -15193,8 +15193,8 @@ "FL", "United States of America" ], - "s": 203832522, - "sha1_base64": "X6Z5sJhPbckPKmrP8hw/c0ik9iM=" + "s": 203855258, + "sha1_base64": "NJ4C+uucBfr173Ls1aNz5EnA6Q4=" }, { "id": "US_Florida_Gainesville", @@ -15206,8 +15206,8 @@ "FL", "United States of America" ], - "s": 154687598, - "sha1_base64": "MU6Jg/KQX9vBr9VIm3C8on/KeHM=" + "s": 154775246, + "sha1_base64": "razI0E1qj5fgaeWtSReBuxd7j+o=" } ] }, @@ -15224,8 +15224,8 @@ "GA", "United States of America" ], - "s": 160306248, - "sha1_base64": "9PYlxRFOe6NywjHQg8SB37ujToQ=" + "s": 160408824, + "sha1_base64": "dFWGYJnEuFmPFuUG9+1Twxu9MfQ=" }, { "id": "US_Georgia_Macon", @@ -15237,8 +15237,8 @@ "GA", "United States of America" ], - "s": 86370164, - "sha1_base64": "XBiJsOC3VvYZjulPHcIJtglnHIw=" + "s": 86385932, + "sha1_base64": "C6mehOnPGCOpOz95SLpmUebHres=" }, { "id": "US_Georgia_North", @@ -15250,8 +15250,8 @@ "GA", "United States of America" ], - "s": 66519034, - "sha1_base64": "QZvfdnZkA8VlXcgxh+qtFo3/U+s=" + "s": 66553802, + "sha1_base64": "SIH2ogI5Vm0qTT651gWE7AUxK/4=" }, { "id": "US_Georgia_South", @@ -15263,8 +15263,8 @@ "GA", "United States of America" ], - "s": 92538787, - "sha1_base64": "ty3PjQVzVOJ2S4J0RYSJQVLfgQk=" + "s": 92570075, + "sha1_base64": "2xzkxZ7vFWGB6PuLVfHagsOjrks=" } ] }, @@ -15284,8 +15284,8 @@ "country_name_synonyms": [ "Guam" ], - "s": 5248396, - "sha1_base64": "1KB2HmCXNx5j/swRNHdR4UYWAzA=" + "s": 5248980, + "sha1_base64": "EfrPwAh/0jgc7SQSADiGraT5HwI=" }, { "id": "US_Hawaii", @@ -15297,8 +15297,8 @@ "HI", "United States of America" ], - "s": 32041739, - "sha1_base64": "Lr8smY5HXzt3HNjUpD9AxJdz1jg=" + "s": 32051875, + "sha1_base64": "rAfC7moHX9sOb6TEawnB+rTFfX8=" }, { "id": "US_Idaho", @@ -15313,8 +15313,8 @@ "ID", "United States of America" ], - "s": 74518114, - "sha1_base64": "e6ekWMrHjfGlY2gSo3fMff/VEHI=" + "s": 74584922, + "sha1_base64": "EybHPkG2lw25J5jh4Zrm1TsmB8M=" }, { "id": "US_Idaho_South", @@ -15326,8 +15326,8 @@ "ID", "United States of America" ], - "s": 82022755, - "sha1_base64": "Gk8bvKKL0InbbRHPzMPOjOO2ciw=" + "s": 82114155, + "sha1_base64": "tqRPzhGJBJoogpdoC/dUI7M//Jo=" } ] }, @@ -15344,8 +15344,8 @@ "IL", "United States of America" ], - "s": 88855277, - "sha1_base64": "wGWsEFFguUsUA+BQh04CLIYkgFI=" + "s": 88946125, + "sha1_base64": "aE4NyiP6LWee9dVVtYa3ITXGdLk=" }, { "id": "US_Illinois_Chickago", @@ -15357,8 +15357,8 @@ "IL", "United States of America" ], - "s": 122349775, - "sha1_base64": "h5r4+J20EMfN5wL9Xxt1rqSM2G4=" + "s": 122436759, + "sha1_base64": "BKCkhggWkDfvLj71LMI0W2CzfdM=" }, { "id": "US_Illinois_Elgin", @@ -15370,8 +15370,8 @@ "IL", "United States of America" ], - "s": 83536604, - "sha1_base64": "N8gmonliDBeo2a9WFyqLTg/WOk4=" + "s": 84006244, + "sha1_base64": "4dOS8/IKMdD3IXG8tLqhZFOWQ74=" }, { "id": "US_Illinois_Rockford", @@ -15383,8 +15383,8 @@ "IL", "United States of America" ], - "s": 52040400, - "sha1_base64": "VQGYUrWcL4Y1OhdIMxGSyvGKcHc=" + "s": 52052864, + "sha1_base64": "NrBN/hyr6EhvO4CM7TDnk5kd5q8=" }, { "id": "US_Illinois_Springfield", @@ -15396,8 +15396,8 @@ "IL", "United States of America" ], - "s": 105634837, - "sha1_base64": "WX4fmG7qzycCQGKnKCQSBSp1jWc=" + "s": 105707645, + "sha1_base64": "iOZjcQMWY4wgZD2P0UYYjEWthFM=" } ] }, @@ -15414,8 +15414,8 @@ "IN", "United States of America" ], - "s": 127621248, - "sha1_base64": "0gmVWUaTwRVo4J9OfcciPrYOb+A=" + "s": 127740065, + "sha1_base64": "9C/ewOgT6n186Fm1UnFZ+wxyERk=" }, { "id": "US_Indiana_Evansville", @@ -15427,8 +15427,8 @@ "IN", "United States of America" ], - "s": 62767137, - "sha1_base64": "gavP+bYOVkOtW9LMzHCd8cvsii0=" + "s": 62886233, + "sha1_base64": "1aHfBYmoo5MIuYtIh1HobS7L0js=" }, { "id": "US_Indiana_Indianapolis", @@ -15440,8 +15440,8 @@ "IN", "United States of America" ], - "s": 96294554, - "sha1_base64": "9PWiQPz8zL+wwc+D0k0/vL40dZE=" + "s": 96351002, + "sha1_base64": "3u+H+8eh8gTz4zzHNeEmOyAT7A4=" } ] }, @@ -15458,8 +15458,8 @@ "IA", "United States of America" ], - "s": 71849994, - "sha1_base64": "80rpBCHd+BOI+0j7iSPmFQx85b8=" + "s": 71855722, + "sha1_base64": "3uYzXdMmh+QjCsZf8+aEMv7oDL0=" }, { "id": "US_Iowa_Waterloo", @@ -15471,8 +15471,8 @@ "IA", "United States of America" ], - "s": 69892538, - "sha1_base64": "GU1JcdV913h5fFgP0ADjLjaBLh0=" + "s": 69929866, + "sha1_base64": "cuyEysO9aTYiJ+inaO27H/TeFp4=" }, { "id": "US_Iowa_West", @@ -15484,8 +15484,8 @@ "IA", "United States of America" ], - "s": 70818113, - "sha1_base64": "2De6V9XDV/ITEmBpVfwvseIV8jA=" + "s": 70830385, + "sha1_base64": "Ph0FpZjdxrhxtWjL4pCl5x+G6Vc=" } ] }, @@ -15502,8 +15502,8 @@ "KS", "United States of America" ], - "s": 82556186, - "sha1_base64": "z+37/RDcxao0aZVa+83DISBcCPs=" + "s": 82579530, + "sha1_base64": "NbBxRKtctzrlIvqhBRpx6vc48kY=" }, { "id": "US_Kansas_West", @@ -15515,8 +15515,8 @@ "KS", "United States of America" ], - "s": 41822143, - "sha1_base64": "wNzPgNjq3Ljgrh5m79GY/srfaCQ=" + "s": 41869951, + "sha1_base64": "ncfZn2NzlB88HP6O23n37NR8GR0=" }, { "id": "US_Kansas_Wichita", @@ -15528,8 +15528,8 @@ "KS", "United States of America" ], - "s": 63677665, - "sha1_base64": "UjDyTsnOoix++zEOT15w33KrthI=" + "s": 63730713, + "sha1_base64": "XOAFRLJ55AsT2SY8NEI+ChDnADo=" } ] }, @@ -15546,8 +15546,8 @@ "KY", "United States of America" ], - "s": 90014107, - "sha1_base64": "H+gfP8c0m+vERACxqwQ4V5LzdSs=" + "s": 90077507, + "sha1_base64": "cR/47J7Tyi8hB3rLFIouwxSmOwM=" }, { "id": "US_Kentucky_West", @@ -15559,8 +15559,8 @@ "KY", "United States of America" ], - "s": 66830529, - "sha1_base64": "xfnMdZC2g7YJ036u9Psl4bkviSU=" + "s": 66894985, + "sha1_base64": "KJQmzUAgnpR896MFZ/bovBmAxPM=" }, { "id": "US_Kentucky_Louisville", @@ -15572,8 +15572,8 @@ "KY", "United States of America" ], - "s": 49854200, - "sha1_base64": "JCRgYEot/UdIFYTI1ayc0bxj/cI=" + "s": 49867080, + "sha1_base64": "Bvv6l5kThrtn/DX/mRRPRZ1Eun4=" } ] }, @@ -15590,8 +15590,8 @@ "LA", "United States of America" ], - "s": 88211395, - "sha1_base64": "DZ+IuNFvOL3FcG1coWgzj0DBz/8=" + "s": 88303171, + "sha1_base64": "44fsEv+93tc82BphbT0ZlDeVm8I=" }, { "id": "US_Louisiana_New Orleans", @@ -15603,8 +15603,8 @@ "LA", "United States of America" ], - "s": 100199180, - "sha1_base64": "+qpPyPVqM7ydDkVJNZnVThcdqCc=" + "s": 100207788, + "sha1_base64": "z1DuL6cB5MjTml9S9aw0VppDfwE=" } ] }, @@ -15618,8 +15618,8 @@ "ME", "United States of America" ], - "s": 122517879, - "sha1_base64": "HT3mJ5CiMLGqHv4pPVmx1JVPoUs=" + "s": 122567583, + "sha1_base64": "0/8oXNWP+s7oOWpSpGie2eeCsQQ=" }, { "id": "Maryland", @@ -15634,8 +15634,8 @@ "MD", "United States of America" ], - "s": 138605280, - "sha1_base64": "0EgAS15P+LONILVKT14nXZsJ/8U=" + "s": 138677264, + "sha1_base64": "Nl/EtQv8F91j6Nj1Gfj7bolTbEA=" }, { "id": "US_Maryland_and_DC", @@ -15650,8 +15650,8 @@ "MD", "United States of America" ], - "s": 117671248, - "sha1_base64": "7FN6s3Nivxb9zjb0iFEun4j1lqc=" + "s": 117782640, + "sha1_base64": "3qjwKsFwcGq5aHbivHC6kb+k4VI=" } ] }, @@ -15668,8 +15668,8 @@ "MA", "United States of America" ], - "s": 94054571, - "sha1_base64": "B0HKNQm1tlkWGrhervHtfb2fpOo=" + "s": 94092059, + "sha1_base64": "Qi8en59s5eaxV6piAnW+1u1eE4A=" }, { "id": "US_Massachusetts_Central", @@ -15681,8 +15681,8 @@ "MA", "United States of America" ], - "s": 46772015, - "sha1_base64": "z/0HSltYSPogD0mCycCaw3lNO3Q=" + "s": 46865767, + "sha1_base64": "dl/b9C6pHwwSiBlyZVnA2TFq4OA=" }, { "id": "US_Massachusetts_Plymouth", @@ -15694,8 +15694,8 @@ "MA", "United States of America" ], - "s": 45651166, - "sha1_base64": "qfULc9Ny8WcDii5tgLURluYKqQg=" + "s": 45658942, + "sha1_base64": "520HZeLR5WuGKNfUzof9nuJbKD8=" }, { "id": "US_Massachusetts_Southeastern", @@ -15707,8 +15707,8 @@ "MA", "United States of America" ], - "s": 23537259, - "sha1_base64": "51kNwV/Cf+EMcWBfsjS+6rTlMug=" + "s": 23538019, + "sha1_base64": "PISTIFbFKiq3mHYeWFEm60kOeDo=" }, { "id": "US_Massachusetts_West", @@ -15720,8 +15720,8 @@ "MA", "United States of America" ], - "s": 42506591, - "sha1_base64": "3G5SdGC7lGes3R8kVmQfk/2GLHQ=" + "s": 42541735, + "sha1_base64": "7sfz2jcblt6aEfqg0YoZExWEI68=" } ] }, @@ -15738,8 +15738,8 @@ "MI", "United States of America" ], - "s": 140586894, - "sha1_base64": "ZjtizqUdOfXmgHZ3Z/0unXmjbaw=" + "s": 140879926, + "sha1_base64": "6K5+s6KaXsIpttSav5q4FXfEB7E=" }, { "id": "US_Michigan_North", @@ -15751,8 +15751,8 @@ "MI", "United States of America" ], - "s": 52708199, - "sha1_base64": "476TTtkR34FZw6L+w75xm5VMF6M=" + "s": 52719855, + "sha1_base64": "DSjr775KQrO6kpA5p9tmmuWQrwU=" }, { "id": "US_Michigan_Grand Rapids", @@ -15770,8 +15770,8 @@ "MI", "United States of America" ], - "s": 112976941, - "sha1_base64": "ZbivEkX4O79NZpHACwXPfOX4QRs=" + "s": 113151853, + "sha1_base64": "EFLXvarkNsO3fF3xLkTzHaB1MLo=" }, { "id": "US_Michigan_Lansing", @@ -15785,8 +15785,8 @@ "MI", "United States of America" ], - "s": 119917087, - "sha1_base64": "183IGsrwXXzW3dRmUoE9vg2JLEo=" + "s": 119979679, + "sha1_base64": "Uj7skeg0hgVU0fxiwceSPqXnuu4=" } ] }, @@ -15803,8 +15803,8 @@ "MN", "United States of America" ], - "s": 77667538, - "sha1_base64": "hrLX/M9Gnf8PBnQ+oLnsOCKKMMs=" + "s": 77736010, + "sha1_base64": "SlklxUKxLgllTd4G+4Yd5IWtZuE=" }, { "id": "US_Minnesota_Minneapolis", @@ -15816,8 +15816,8 @@ "MN", "United States of America" ], - "s": 103468267, - "sha1_base64": "0DrOsMCMWtFFjiJyWpx0tP8U0Oc=" + "s": 103524267, + "sha1_base64": "RYxCcF5p/Ssi4Tsr190WtB50otY=" }, { "id": "US_Minnesota_North", @@ -15829,8 +15829,8 @@ "MN", "United States of America" ], - "s": 86562233, - "sha1_base64": "VZuDsKew+KO3jS5b12ZxfWF7azg=" + "s": 86572401, + "sha1_base64": "tyuWFKGqF20pV1ABOPqA9DrGf6M=" }, { "id": "US_Minnesota_Saint Cloud", @@ -15842,8 +15842,8 @@ "MN", "United States of America" ], - "s": 70673265, - "sha1_base64": "YWP7Ra6Btu8gCm2R6KllMDg25Z4=" + "s": 70812145, + "sha1_base64": "POQXgiuumCMhBakmuCOzIhv3eGY=" } ] }, @@ -15860,8 +15860,8 @@ "MS", "United States of America" ], - "s": 36277781, - "sha1_base64": "0TGpyx1oWMfdhxO+MnKEYJU6RgI=" + "s": 36283133, + "sha1_base64": "FB10zsIHNNYKDvqawvct2rLPmFI=" }, { "id": "US_Mississippi_North", @@ -15873,8 +15873,8 @@ "MS", "United States of America" ], - "s": 101795531, - "sha1_base64": "6pproWny88AQcIaePvjy9dQvnuk=" + "s": 101838427, + "sha1_base64": "/khhMaxQj6WkZuk917nGjw05XN0=" } ] }, @@ -15891,8 +15891,8 @@ "MO", "United States of America" ], - "s": 36028181, - "sha1_base64": "yahkZchtf37JO/4RP0h/ppuCGPs=" + "s": 36042061, + "sha1_base64": "UDOlA3mDdOPyDkWzpjr9aK9uSbY=" }, { "id": "US_Missouri_Springfield", @@ -15904,8 +15904,8 @@ "MO", "United States of America" ], - "s": 69714059, - "sha1_base64": "6pHzrRXathhtwhT+hFLBbB2oE/A=" + "s": 69734195, + "sha1_base64": "rvRztZM8/jyjE4Ene535NbliJTo=" }, { "id": "US_Missouri_Kansas", @@ -15917,8 +15917,8 @@ "MO", "United States of America" ], - "s": 82255605, - "sha1_base64": "iC6D2pdxvYeiqK3kuGFS6Vms6HQ=" + "s": 82563797, + "sha1_base64": "QP3rM3pnHJpqdLW0nqD5h2x8zcQ=" }, { "id": "US_Missouri_St Louis", @@ -15930,8 +15930,8 @@ "MO", "United States of America" ], - "s": 104398209, - "sha1_base64": "Jd8Pw6NJvAp766fTmaqToC5UpSY=" + "s": 104432705, + "sha1_base64": "08OjjTYFpblA1kmhzZBB41yG5mA=" } ] }, @@ -15948,8 +15948,8 @@ "MT", "United States of America" ], - "s": 71254018, - "sha1_base64": "v0kEW/LQRobPG8xrqSzyeV9vD6I=" + "s": 71311610, + "sha1_base64": "ier0EVYp1JkYdO4nRSUjqnr8fno=" }, { "id": "US_Montana_West", @@ -15961,8 +15961,8 @@ "MT", "United States of America" ], - "s": 74298683, - "sha1_base64": "/p1XX2ITLzFQ2TSIt5VfMmqqzFI=" + "s": 74328179, + "sha1_base64": "Df9U2FHeqkRUrpw+zLPtFd2MOUc=" } ] }, @@ -15979,8 +15979,8 @@ "NE", "United States of America" ], - "s": 71943411, - "sha1_base64": "Br1KUwRIQTc79KTvPLVXFQWcIrM=" + "s": 72047235, + "sha1_base64": "MVxirrOP1+4S8G5eV30fCvQqCLc=" }, { "id": "US_Nebraska_West", @@ -15992,8 +15992,8 @@ "NE", "United States of America" ], - "s": 67278915, - "sha1_base64": "35aXx9dTdd4WJGNMkMejhEIWIpo=" + "s": 67451299, + "sha1_base64": "Tgl8gkOovgpF/El9PwI8B5vYNPY=" } ] }, @@ -16007,8 +16007,8 @@ "NV", "United States of America" ], - "s": 159270976, - "sha1_base64": "Hoo1+X3y0egJqCoCE0xRM4qH3Ec=" + "s": 159581304, + "sha1_base64": "T/DRpm4rU1uFaO6Ch+I/lK3w38o=" }, { "id": "US_New Hampshire", @@ -16020,8 +16020,8 @@ "NH", "United States of America" ], - "s": 82191958, - "sha1_base64": "wA1QOhfm0BkyAN1aTkmp5QnFfkA=" + "s": 82223310, + "sha1_base64": "E6oWnyNherP4hi84o2Wwl/HY4FQ=" }, { "id": "New Jersey", @@ -16036,8 +16036,8 @@ "NJ", "United States of America" ], - "s": 99630550, - "sha1_base64": "k+9tbuUjMcmUhTJxvUDH59qMOag=" + "s": 99684814, + "sha1_base64": "CWal3//Uqm3HavYd2kPJNWaKZ6g=" }, { "id": "US_New Jersey_South", @@ -16049,8 +16049,8 @@ "NJ", "United States of America" ], - "s": 111626249, - "sha1_base64": "1izyaJOBk/EXKqfGEdVVTi6T0oU=" + "s": 111641488, + "sha1_base64": "Bwmdf61249yr1q0eQHgsobSgR+E=" } ] }, @@ -16067,8 +16067,8 @@ "NM", "United States of America" ], - "s": 90396095, - "sha1_base64": "KQLg2eYTvXMBmo9IbFSHO6YWQEM=" + "s": 90485295, + "sha1_base64": "Iwx7AwGahq0RVd0cThSZj/Li1MY=" }, { "id": "US_New Mexico_Roswell", @@ -16080,8 +16080,8 @@ "NM", "United States of America" ], - "s": 76479834, - "sha1_base64": "0459+rC9uJHOZVO60O+zNyIMZ7A=" + "s": 76538394, + "sha1_base64": "MJa2UfFzOPc0pUuAz1Fl7fJf90Y=" } ] }, @@ -16099,8 +16099,8 @@ "NY", "United States of America" ], - "s": 130619365, - "sha1_base64": "VRym7xCV/GIB5qJhVmOvRKgfpzU=" + "s": 130642493, + "sha1_base64": "4dU4FPgA6Py6ASbz8qfXI/3vr/A=" }, { "id": "US_New York_New York", @@ -16114,8 +16114,8 @@ "NY", "United States of America" ], - "s": 114940151, - "sha1_base64": "Hw7+prFwLQiXwc+W17CCn3z3ajA=" + "s": 114980527, + "sha1_base64": "W3WfH+IE2+4vPJKZEEBCTZ7lMic=" }, { "id": "US_New York_North", @@ -16127,8 +16127,8 @@ "NY", "United States of America" ], - "s": 130374486, - "sha1_base64": "5UXYS4vq9yqNaYo5MkDCZJ8ooYY=" + "s": 130444662, + "sha1_base64": "Zk3Pje4bpW969G+G58Zp6FJ6ZlA=" }, { "id": "US_New York_West", @@ -16140,8 +16140,8 @@ "NY", "United States of America" ], - "s": 212533232, - "sha1_base64": "Q4B7WwwoBO1sepppoE+YhL+S2IM=" + "s": 212633416, + "sha1_base64": "En7KvKPlr0zOfwj7i/EK/rIsES4=" } ] }, @@ -16158,8 +16158,8 @@ "NC", "United States of America" ], - "s": 66652146, - "sha1_base64": "qE/Rd5UiYMCDbgkE6spHHqI86U0=" + "s": 66683594, + "sha1_base64": "0ADZbSreHYASGeeVLzxI399Yr1Q=" }, { "id": "US_North Carolina_Asheville", @@ -16171,8 +16171,8 @@ "NC", "United States of America" ], - "s": 76020403, - "sha1_base64": "iA33WDyC3SymP5dBGFL6MdKeawU=" + "s": 76183395, + "sha1_base64": "bmTSed4BO+WB01dl8BKj9STtsLk=" }, { "id": "US_North Carolina_Charlotte", @@ -16184,8 +16184,8 @@ "NC", "United States of America" ], - "s": 115521995, - "sha1_base64": "rJvulqLndpW14ugjflfNDomYCGw=" + "s": 115578339, + "sha1_base64": "5spweRgESehfvJyO/y2ISINdUZc=" }, { "id": "US_North Carolina_Greensboro", @@ -16197,8 +16197,8 @@ "NC", "United States of America" ], - "s": 91708866, - "sha1_base64": "lbosrxCLoCaLFsgolq6tW9i5Bms=" + "s": 91754202, + "sha1_base64": "6kCzjXcxqfwpBRZVnAqKpBYx41c=" }, { "id": "US_North Carolina_Raleigh", @@ -16210,8 +16210,8 @@ "NC", "United States of America" ], - "s": 110484109, - "sha1_base64": "/R1DZma2ZEI6kY7llkmsaaYH9rE=" + "s": 110506901, + "sha1_base64": "CeaUAjznstsGq3fFQ7vRgo7GyYI=" }, { "id": "US_North Carolina_Wilmington", @@ -16223,8 +16223,8 @@ "NC", "United States of America" ], - "s": 67773010, - "sha1_base64": "yhx05+wTzZgJeBZJw1mFJKEy0+Q=" + "s": 67786642, + "sha1_base64": "6KToPbl14w35aK0qPuHCfxmG1zg=" } ] }, @@ -16241,8 +16241,8 @@ "ND", "United States of America" ], - "s": 42342998, - "sha1_base64": "EQeA9nXZZPr0tranWf7OhMPZBes=" + "s": 42345158, + "sha1_base64": "hhwLxlDqktEtuEDyPDKN2kMdZbo=" }, { "id": "US_North Dakota_East", @@ -16254,8 +16254,8 @@ "ND", "United States of America" ], - "s": 55826816, - "sha1_base64": "eSVxxLasy7SvqbhP3i9kQZC56ss=" + "s": 55864416, + "sha1_base64": "LAmSVMff6L7A24VgnndtGbF9PCs=" }, { "id": "US_North Dakota_Minot", @@ -16267,8 +16267,8 @@ "ND", "United States of America" ], - "s": 35510773, - "sha1_base64": "p2HBqUe8ubZxEcbIIAvbyFM4Yz4=" + "s": 35511421, + "sha1_base64": "IS8O1J7DMCWu1/6NCK9oqYjNlv4=" } ] }, @@ -16285,8 +16285,8 @@ "OH", "United States of America" ], - "s": 147150761, - "sha1_base64": "YDA4tDCNLeLHu9ME1mEiIK/wB1k=" + "s": 147437001, + "sha1_base64": "kPhKT8/wkhu7c/Qz8AkrF/PqHmE=" }, { "id": "US_Ohio_Cincinnati", @@ -16298,8 +16298,8 @@ "OH", "United States of America" ], - "s": 126030015, - "sha1_base64": "esNsVPFPfQJy/zwSftvy/StcONA=" + "s": 126250215, + "sha1_base64": "qvrOxSIuV1IvcdMiSMPtKKXrRU0=" }, { "id": "US_Ohio_Columbus", @@ -16311,8 +16311,8 @@ "OH", "United States of America" ], - "s": 96744398, - "sha1_base64": "0AQFS32M5ST/80DzvqUqTauEojw=" + "s": 97000038, + "sha1_base64": "EjXaX8wK3+CczLUbrGxIue5+waw=" }, { "id": "US_Ohio_Toledo", @@ -16324,8 +16324,8 @@ "OH", "United States of America" ], - "s": 66308049, - "sha1_base64": "wwYNFuvnm+awjmhGEq7BrWCmvwA=" + "s": 66346233, + "sha1_base64": "TH2LFeZeLbSz0ahVkMUMT0RSlaY=" } ] }, @@ -16342,8 +16342,8 @@ "OK", "United States of America" ], - "s": 32689422, - "sha1_base64": "Ir0iZRruxdHZ6zYRUP0YRoCvVEo=" + "s": 32761806, + "sha1_base64": "5rZ8ykJR7lPpgo+izUNuVJt/v34=" }, { "id": "US_Oklahoma_West", @@ -16355,8 +16355,8 @@ "OK", "United States of America" ], - "s": 32543653, - "sha1_base64": "+dHpHIXCdJfFMVlV0wW/lw+iQuc=" + "s": 32544837, + "sha1_base64": "6r6XSImggZPWY2J4FgTywx/8B5E=" }, { "id": "US_Oklahoma_Tulsa", @@ -16368,8 +16368,8 @@ "OK", "United States of America" ], - "s": 73125242, - "sha1_base64": "6pWjGmDqX3tAyyS6Jpz5CnUOuvU=" + "s": 73211242, + "sha1_base64": "TLCiLt5bFxMRQFTuVBD2K5AahPo=" }, { "id": "US_Oklahoma_Oklahoma", @@ -16381,8 +16381,8 @@ "OK", "United States of America" ], - "s": 67518443, - "sha1_base64": "eANytw5/5+hMcKU7TOr7522OCHw=" + "s": 67546499, + "sha1_base64": "boZDdBENlU/iVY7AXyZQBJxXYyQ=" } ] }, @@ -16399,8 +16399,8 @@ "OR", "United States of America" ], - "s": 87171396, - "sha1_base64": "TTumPBvm0j7VXJQrBZQhLrjkfBc=" + "s": 87232668, + "sha1_base64": "u84vh/apg6016hkqESg/rHrLUkE=" }, { "id": "US_Oregon_Portland", @@ -16412,8 +16412,8 @@ "OR", "United States of America" ], - "s": 123431877, - "sha1_base64": "u2msTQ5tkCIhHIgF3CMLRHYhO1s=" + "s": 123488069, + "sha1_base64": "t8YsDBSbWclcmj4+2V8KUGgPI34=" }, { "id": "US_Oregon_West", @@ -16425,8 +16425,8 @@ "OR", "United States of America" ], - "s": 75701403, - "sha1_base64": "+gk+2O291mwj4mNgXq1xOa596dI=" + "s": 75850691, + "sha1_base64": "XdbL/Z3EAZDSVyLas0N28bMGd18=" } ] }, @@ -16443,8 +16443,8 @@ "PA", "United States of America" ], - "s": 122093550, - "sha1_base64": "nIPiE4vfJLkIL4GPsfbSvAjO9cg=" + "s": 122321670, + "sha1_base64": "hfqmY11Fxy2bWefiho1VG6iO1jY=" }, { "id": "US_Pennsylvania_Pittsburgh", @@ -16456,8 +16456,8 @@ "PA", "United States of America" ], - "s": 117878004, - "sha1_base64": "hg6Z4Gde+b/2bDNifWgUc+OPjRQ=" + "s": 117899524, + "sha1_base64": "b8eEUlz5Lee4QfqHqIM5DyqinRs=" }, { "id": "US_Pennsylvania_Reading", @@ -16469,8 +16469,8 @@ "PA", "United States of America" ], - "s": 117257447, - "sha1_base64": "M0gC64/dF9o3VGB82/cst6mK+Q0=" + "s": 117420447, + "sha1_base64": "skkgcngNPZnRYmxc5n26WUUm7lA=" }, { "id": "US_Pennsylvania_Scranton", @@ -16482,8 +16482,8 @@ "PA", "United States of America" ], - "s": 101930580, - "sha1_base64": "XaJJaJgH2lPApxESJSq4tEC60kY=" + "s": 102004500, + "sha1_base64": "mlZ2XQkGOXZ13dVYwBJDAR0/xBI=" } ] }, @@ -16498,8 +16498,8 @@ "República Dominicana", "United States of America" ], - "s": 72403029, - "sha1_base64": "ncexVLps7IlxyIbaPYJEf0vYHyk=" + "s": 72459661, + "sha1_base64": "gj3jwrJdJao1D9Ja7MxLSBxDVvc=" }, { "id": "US_Rhode Island", @@ -16512,8 +16512,8 @@ "RI", "United States of America" ], - "s": 45652871, - "sha1_base64": "nWnZrLciapJTv/BuFyW0UQEy/nw=" + "s": 45672727, + "sha1_base64": "5LLLeh+VIV8ECSNVVwaka4aeHkI=" }, { "id": "South Carolina", @@ -16528,8 +16528,8 @@ "SC", "United States of America" ], - "s": 57728608, - "sha1_base64": "wakqoAYrYYe2Lp++yylBJny9xrQ=" + "s": 57750176, + "sha1_base64": "qEGw5Xpa4og8IKMdxLkd5yG5Pqw=" }, { "id": "US_South Carolina_Columbia", @@ -16541,8 +16541,8 @@ "SC", "United States of America" ], - "s": 107722923, - "sha1_base64": "kAqJrbfbo0lNir3iGqOeE2wJeFk=" + "s": 107750403, + "sha1_base64": "v+9ONgwgzYUF1Ys99ZfX9icvtKY=" }, { "id": "US_South Carolina_Florence", @@ -16554,8 +16554,8 @@ "SC", "United States of America" ], - "s": 67060400, - "sha1_base64": "jrs0R4cOUfIxE5zQCrAuMCnikkM=" + "s": 67095952, + "sha1_base64": "CFfS6OS26olNryQSG+JUBpdl4Dc=" } ] }, @@ -16569,8 +16569,8 @@ "SD", "United States of America" ], - "s": 88785713, - "sha1_base64": "YDvuJ+fPoMg1FKRp7pTivN7kZj0=" + "s": 88789297, + "sha1_base64": "ghivPaWYDjXmVG/azGpbNmK770g=" }, { "id": "Tennessee", @@ -16585,8 +16585,8 @@ "TN", "United States of America" ], - "s": 148107640, - "sha1_base64": "sCA2wN9oa0OI28D/6HN59K5k8cU=" + "s": 148164184, + "sha1_base64": "cqGYdfaO20/wsX3v8HLs/lBMew0=" }, { "id": "US_Tennessee_West", @@ -16598,8 +16598,8 @@ "TN", "United States of America" ], - "s": 132052263, - "sha1_base64": "0/Ka6DlxYZ18ZBsabzhv5dJVstc=" + "s": 132309551, + "sha1_base64": "NW1toS92iU2xD6FEG+jmGDBvg0M=" } ] }, @@ -16616,8 +16616,8 @@ "TX", "United States of America" ], - "s": 109414578, - "sha1_base64": "lmG4g8GKBq39LbaRwh/OtMTgNL4=" + "s": 109479850, + "sha1_base64": "meN4vx7e9A7rVSm0XlPjxBSWlLU=" }, { "id": "US_Texas_Victoria", @@ -16629,8 +16629,8 @@ "TX", "United States of America" ], - "s": 36543477, - "sha1_base64": "rCC25Qvlzt/mZXTLjQ8rRtwCGOo=" + "s": 36779037, + "sha1_base64": "C2ECHSetbFTF03O8fF6/1/nJ8QA=" }, { "id": "US_Texas_Dallas", @@ -16642,8 +16642,8 @@ "TX", "United States of America" ], - "s": 201403873, - "sha1_base64": "T/xTZq/gJPBlIB65V6c4QtpCKRs=" + "s": 201538521, + "sha1_base64": "UKYHtpxdUfUlNmWyUDsxwUC3a7s=" }, { "id": "US_Texas_Houston", @@ -16655,8 +16655,8 @@ "TX", "United States of America" ], - "s": 149507120, - "sha1_base64": "Kksq/OK6kbvVbslL56/KVDl12+E=" + "s": 150042232, + "sha1_base64": "eRf7e2MteUTsP64JCqNhSu/6H6w=" }, { "id": "US_Texas_Amarillo", @@ -16668,8 +16668,8 @@ "TX", "United States of America" ], - "s": 41372942, - "sha1_base64": "lPUgGBy0yFSxOZvyahznGbOV8yY=" + "s": 41449774, + "sha1_base64": "pNWcCJzsHtReiDKAL+9GZOoFWp8=" }, { "id": "US_Texas_Lubbock", @@ -16681,8 +16681,8 @@ "TX", "United States of America" ], - "s": 43683504, - "sha1_base64": "ivE1ufUX39aaQH+80dUIz1/9Ic0=" + "s": 43716968, + "sha1_base64": "2e8JYXBgFQSTXwj+LoYLDjvkO9I=" }, { "id": "US_Texas_San Antonio", @@ -16694,8 +16694,8 @@ "TX", "United States of America" ], - "s": 90534244, - "sha1_base64": "sI3NW0o7M0FPDQS5v8aw4w11yp4=" + "s": 90600468, + "sha1_base64": "Tz4Dby6/rvESY3oz6lZhcvbflJ0=" }, { "id": "US_Texas_Southwest", @@ -16707,8 +16707,8 @@ "TX", "United States of America" ], - "s": 45639813, - "sha1_base64": "8vi1ZdWY/lzXSHFiMVnO61lFYlc=" + "s": 45649565, + "sha1_base64": "GmsEBBNgnUDkCIvWrBOzv6o4RVs=" }, { "id": "US_Texas_Tyler", @@ -16720,8 +16720,8 @@ "TX", "United States of America" ], - "s": 87732347, - "sha1_base64": "RN1Fyc0R+iNXsNICMV7y61lzmVY=" + "s": 87664523, + "sha1_base64": "uiGEAAImXMMjeCT9uGyluArA5g0=" }, { "id": "US_Texas_Wako", @@ -16733,8 +16733,8 @@ "TX", "United States of America" ], - "s": 55867921, - "sha1_base64": "47PkKHSTBiitPU8JHS0ylLfriAg=" + "s": 55964873, + "sha1_base64": "WSv66tgXH7W0inC2lyouseCCWtk=" }, { "id": "US_Texas_West", @@ -16746,8 +16746,8 @@ "TX", "United States of America" ], - "s": 71220234, - "sha1_base64": "8Cte0Q8egVmib9uIWogunzCQUsU=" + "s": 71248050, + "sha1_base64": "I0H3gupGol2khxf3iIONEgaDPJc=" } ] }, @@ -16758,7 +16758,7 @@ "United States Minor Outlying Islands" ], "s": 854200, - "sha1_base64": "/9THN++DK+wRpHA+lLp1AX1ej64=" + "sha1_base64": "d4OhSKVMRpbtcGkXGogxTiK85Ck=" }, { "id": "US_Utah", @@ -16773,8 +16773,8 @@ "Utah", "UT" ], - "s": 65803617, - "sha1_base64": "axMFEDgP1X4jPcm/ItGdjbOQNYw=" + "s": 66014265, + "sha1_base64": "XFHKdW5DkRA6uJ3ePnArKuWq/Mc=" }, { "id": "US_Utah_North", @@ -16786,8 +16786,8 @@ "Utah", "UT" ], - "s": 134838973, - "sha1_base64": "3JTORN7bRnvAjB5zEon82Rb3GFU=" + "s": 134951581, + "sha1_base64": "mn10kGaxea3wabLiwPSdx15X7Y0=" } ] }, @@ -16801,8 +16801,8 @@ "Vermont", "VT" ], - "s": 59325065, - "sha1_base64": "aPmKcVBWOYGs+/R+r765c9iw4JE=" + "s": 59345833, + "sha1_base64": "NbRuPblsSADDjpfqEBgzMY4KOzE=" }, { "id": "Virginia", @@ -16817,8 +16817,8 @@ "VA", "United States of America" ], - "s": 77220243, - "sha1_base64": "ap8rfEgelDpKNJA0K7b2K3wkldo=" + "s": 77318555, + "sha1_base64": "5NHGUQDFNI2oo0ScnQkFAPsJ6v4=" }, { "id": "US_Virginia_Norfolk", @@ -16830,8 +16830,8 @@ "VA", "United States of America" ], - "s": 98752496, - "sha1_base64": "N29d2VvD4XreJ0CQPMfMltnWaTA=" + "s": 98766872, + "sha1_base64": "qFRgSZklF+ahvTBZPe5/2l/UN4s=" }, { "id": "US_Virginia_Lynchburg", @@ -16843,8 +16843,8 @@ "VA", "United States of America" ], - "s": 108733028, - "sha1_base64": "9EhwHM5llFORTDOxjkzTAOYVwcc=" + "s": 108782140, + "sha1_base64": "p9lJLbIv/LQTZRqhJT+9zrWLjsA=" }, { "id": "US_Virginia_Richmond", @@ -16856,8 +16856,8 @@ "VA", "United States of America" ], - "s": 73671073, - "sha1_base64": "DHFAPGDa+rev0L61D3WAOSlDpBo=" + "s": 73784201, + "sha1_base64": "o3MO8yJkIbPayBavYr8IJ4Gm5hw=" }, { "id": "US_Virginia_Alexandria", @@ -16869,8 +16869,8 @@ "VA", "United States of America" ], - "s": 105179448, - "sha1_base64": "Vq2j18rp/NENPoQo3DIzMbM/z0w=" + "s": 105240128, + "sha1_base64": "cV70Xpv/wueh00m2hO9wG+Kk8u4=" } ] }, @@ -16889,8 +16889,8 @@ "Washington", "WA" ], - "s": 194183347, - "sha1_base64": "n8pjy8W8z+mvjyM1Fam51/xN1BY=" + "s": 194334243, + "sha1_base64": "BmPQYilOCORrW+4YRWI2J8vPcok=" }, { "id": "US_Washington_Seattle", @@ -16902,8 +16902,8 @@ "Washington", "WA" ], - "s": 113613887, - "sha1_base64": "tzqvgvHz54vY8wxNaDnQ8WHgzMc=" + "s": 113706719, + "sha1_base64": "BADqxG7qPPLrBpV1KsKzUjinaVI=" }, { "id": "US_Washington_Yakima", @@ -16915,8 +16915,8 @@ "Washington", "WA" ], - "s": 118272311, - "sha1_base64": "7DVlYhEhuQst5l0WrH7k4hsqytU=" + "s": 118430551, + "sha1_base64": "XCqQUmWsU0HPn7kF2oCCGatyC74=" } ] }, @@ -16930,8 +16930,8 @@ "West Virginia", "WV" ], - "s": 155281905, - "sha1_base64": "pN6GD9T8WbJWKet6TrJE+q3o/Io=" + "s": 155339505, + "sha1_base64": "zYm5UV6/8aTS0nsdSMFEB/VcgX4=" }, { "id": "Wisconsin", @@ -16946,8 +16946,8 @@ "Wisconsin", "WI" ], - "s": 141957358, - "sha1_base64": "pcxn/JYUov3VVzWluJ8984oJFog=" + "s": 141996854, + "sha1_base64": "TWqYCb1MmJa0xSklN32MuRTIrlQ=" }, { "id": "US_Wisconsin_North", @@ -16959,8 +16959,8 @@ "Wisconsin", "WI" ], - "s": 62870105, - "sha1_base64": "XTaO9tD9VqnrVJSv4+fKb2EWncI=" + "s": 62871945, + "sha1_base64": "uuHpALn0ZCxvVj7I8ry0jWlLpHU=" }, { "id": "US_Wisconsin_Madison", @@ -16972,8 +16972,8 @@ "Wisconsin", "WI" ], - "s": 70479921, - "sha1_base64": "YUEnzT2VISlVAz+V42qhaYq4jKw=" + "s": 70521697, + "sha1_base64": "LavfVdBRuPjCfLhC0pm3vqA0PeI=" }, { "id": "US_Wisconsin_Eau Claire", @@ -16985,8 +16985,8 @@ "Wisconsin", "WI" ], - "s": 62855809, - "sha1_base64": "z3DqefBzVSZDz84iIiD8ezKwz1E=" + "s": 62873257, + "sha1_base64": "LNbO7sGkJRzUCi2NMlUej03J2jc=" } ] }, @@ -17000,8 +17000,8 @@ "Wyoming", "WY" ], - "s": 111849389, - "sha1_base64": "4P0P6ccBuUgWFN5dhI9embe3msc=" + "s": 112068989, + "sha1_base64": "KFRztlQLJAksfG6uQSYAdmVCOG0=" } ] }, @@ -17033,8 +17033,8 @@ "Treinta y Tres", "Uruguay" ], - "s": 71015544, - "sha1_base64": "SuV3zxTXKig3WJ0lLNn5olLdoq0=" + "s": 71022544, + "sha1_base64": "gs4xfCxVmcBUWeMGHbvCod1khPI=" }, { "id": "Uzbekistan", @@ -17059,8 +17059,8 @@ "Toshkent", "Xorazm Viloyati" ], - "s": 186217907, - "sha1_base64": "hd5xB1dpF8mqa95pyyLUzUVSCeY=" + "s": 186573163, + "sha1_base64": "iVp+5JUFe4IEiSG0k10DQq5z9Zc=" }, { "id": "Vanuatu", @@ -17076,8 +17076,8 @@ "Vanuatu", "Torba" ], - "s": 12373662, - "sha1_base64": "MHDA7mYPmMzygj1fY80QfUJdw4I=" + "s": 12373326, + "sha1_base64": "Hen/V8a5wyFmsW9j5jpr7At307s=" }, { "id": "Venezuela", @@ -17112,8 +17112,8 @@ "Yaracuy", "Zulia" ], - "s": 71676678, - "sha1_base64": "iozTxbGf3i7J09GfL22LdrTQv0s=" + "s": 71708566, + "sha1_base64": "kYjABsvMJgfSZ/M35qf9O8fguB8=" }, { "id": "Venezuela_South", @@ -17134,8 +17134,8 @@ "Venezuela", "Zulia" ], - "s": 80455988, - "sha1_base64": "ar1rJ+uAY7jViwUM2FDzTiUTPT8=" + "s": 80639092, + "sha1_base64": "itMMcbP0kVrJiyrvCT+LfErzUHU=" } ] }, @@ -17210,8 +17210,8 @@ "Tỉnh Hà Giang", "Việt Nam" ], - "s": 335941478, - "sha1_base64": "7UkOvQML1paQhFB1szOZGJCqvwY=" + "s": 336321478, + "sha1_base64": "JvakrLWrmIQGqwWJbwsfQwF9TQs=" }, { "id": "Yemen", @@ -17242,8 +17242,8 @@ "Ḩaḑramawt", "اليمن" ], - "s": 95397199, - "sha1_base64": "CEn+KvVZAHEqgsOr3yhHp/n5dZk=" + "s": 95418231, + "sha1_base64": "Kjybo//WftSEDZi2zvOZZ3jNi4A=" }, { "id": "Zambia", @@ -17263,8 +17263,8 @@ "Western Province", "Zambia" ], - "s": 240064046, - "sha1_base64": "23eIB8UXcgEXtZ2FFzati1mB58M=" + "s": 240187158, + "sha1_base64": "CY0IaVNUapisL1JSxROLg52ObTU=" }, { "id": "Zimbabwe", @@ -17284,16 +17284,16 @@ "Midlands Province", "Zimbabwe" ], - "s": 151489780, - "sha1_base64": "3En7+VK0wdxnc/wKxodYlPLnrJ4=" + "s": 151590668, + "sha1_base64": "EUO5Vzo2mYiI52CFuqehy3iIcRs=" }, { "id": "Antarctica", "affiliations": [ "South Georgia and South Sandwich Islands" ], - "s": 62515327, - "sha1_base64": "Qq9AAb0ghkrbgtubSIcaR9j4Puk=" + "s": 62513183, + "sha1_base64": "SVCFIItVEHVlbZzvGC/pNP/dR1A=" }, { "id": "New Zealand", @@ -17307,7 +17307,7 @@ "Tokelau" ], "s": 463311, - "sha1_base64": "x7Nk94poXSZJS8q4MSWe3+N+nak=" + "sha1_base64": "s2WFiMiME6BJZsLLVmX7wPMfAA8=" }, { "id": "New Zealand North_Auckland", @@ -17321,8 +17321,8 @@ "Northland", "Waikato" ], - "s": 168817491, - "sha1_base64": "/ANzh5+RSYweN+y9HEcZkBU36z0=" + "s": 169018723, + "sha1_base64": "z2tgQkly4bsxshgKCeJqS04ol2k=" }, { "id": "New Zealand North_Wellington", @@ -17337,8 +17337,8 @@ "Taranaki", "Wellington" ], - "s": 118468672, - "sha1_base64": "xC/lehlrEnzl1DIC35VblR6WElI=" + "s": 118614880, + "sha1_base64": "Ld9PfT5o1Faz8nVuOcUotf3xXBw=" }, { "id": "New Zealand South_Canterbury", @@ -17354,8 +17354,8 @@ "Tasman", "West Coast" ], - "s": 150963512, - "sha1_base64": "82GwoXwEpDJYRNLaq5E03rhFDjE=" + "s": 151020472, + "sha1_base64": "vckoY/wdHIEE1KqzSh3pSHlqLp4=" }, { "id": "New Zealand South_Southland", @@ -17368,8 +17368,8 @@ "Southland", "West Coast" ], - "s": 94214655, - "sha1_base64": "vjXp/pP5QM5RFGJM6v63KLtvYC0=" + "s": 94251815, + "sha1_base64": "zcq/qdKSwdBmSuFfzf3IBp8xwtI=" } ] }, @@ -17393,8 +17393,8 @@ "충청남도", "충청북도" ], - "s": 199266091, - "sha1_base64": "mhjzNr8OuMU4Xw6EtaDFF8ea7S4=" + "s": 199412171, + "sha1_base64": "lxxyw0w4E14MlEc50Mmjz/tbSfs=" }, { "id": "South Korea_South", @@ -17414,8 +17414,8 @@ "전라남도", "전라북도" ], - "s": 175860275, - "sha1_base64": "V0i1M5dYnn5Cfq8yZRhsFwddI0s=" + "s": 176128091, + "sha1_base64": "q/IoFOE99A+9JC3LGIV6l3uBYoI=" } ] } From 2954b3b871a0c279dda9cbd112e21a6c140fc236 Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Tue, 25 Nov 2025 12:40:15 +0700 Subject: [PATCH 27/91] Release notes for November R2 hotfix Signed-off-by: Konstantin Pastbin --- .../src/fdroid/play/listings/de-DE/release-notes.txt | 11 ----------- .../src/fdroid/play/listings/en-US/release-notes.txt | 6 ++++-- .../src/fdroid/play/listings/es-ES/release-notes.txt | 11 ----------- .../src/fdroid/play/listings/fr-FR/release-notes.txt | 11 ----------- .../src/fdroid/play/listings/it-IT/release-notes.txt | 11 ----------- .../src/fdroid/play/listings/pt-BR/release-notes.txt | 11 ----------- .../src/fdroid/play/listings/ru-RU/release-notes.txt | 10 ---------- .../app/src/fdroid/play/listings/sr/release-notes.txt | 11 ----------- 8 files changed, 4 insertions(+), 78 deletions(-) delete mode 100644 android/app/src/fdroid/play/listings/de-DE/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/es-ES/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/fr-FR/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/it-IT/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/pt-BR/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/ru-RU/release-notes.txt delete mode 100644 android/app/src/fdroid/play/listings/sr/release-notes.txt diff --git a/android/app/src/fdroid/play/listings/de-DE/release-notes.txt b/android/app/src/fdroid/play/listings/de-DE/release-notes.txt deleted file mode 100644 index 09adddc92..000000000 --- a/android/app/src/fdroid/play/listings/de-DE/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• OpenStreetMap-Daten vom 16. November -• Bäume hinzugefügt -• Kleine Bushaltestellen-Icons die früher angezeigt werden -• Sichtbarkeit von Eingängen reduziert -• Neue POI-Typen hinzugefügt -• Sandflächen werden auf Karte angezeigt -• Option „Geschäft ist leerstehend” zum OSM-Editor hinzugefügt -• Straßenbeschilderung in Europa verbessert -• Option „Asphaltierte Straßen vermeiden” hinzugefügt -• Icons in den Einstellungen hinzugefügt -Weitere Änderungen in unseren Codeberg-Versionshinweisen! diff --git a/android/app/src/fdroid/play/listings/en-US/release-notes.txt b/android/app/src/fdroid/play/listings/en-US/release-notes.txt index 14bcd78f6..4c7c367dd 100644 --- a/android/app/src/fdroid/play/listings/en-US/release-notes.txt +++ b/android/app/src/fdroid/play/listings/en-US/release-notes.txt @@ -1,4 +1,7 @@ -• OpenStreetMap data as of November 16 +• Fixed voice directions pronouncing weird symbols in the beginning +• OpenStreetMap data as of November 23 + +Changes in the previous release: • Added trees • Made bus stop icons smaller and show up earlier • Reduce visibility of entrances @@ -8,4 +11,3 @@ • Improved road shields in Europe • Avoid paved roads routing option • Added icons to the settings page -Check our Codeberg release notes for more changes! diff --git a/android/app/src/fdroid/play/listings/es-ES/release-notes.txt b/android/app/src/fdroid/play/listings/es-ES/release-notes.txt deleted file mode 100644 index 8e684aaef..000000000 --- a/android/app/src/fdroid/play/listings/es-ES/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• Nuevos datos OSM a 16.11.25 -• Se añaden árboles -• Se reducen los iconos de paradas de autobús y aparecen antes -• Se reduce visibilidad de entradas -• Se añaden muchos tipos de puntos de interés -• Se muestran las zonas de arena en el mapa -• Se añade la opción «negocio vacío» al editor -• Se mejoran las señales de tráfico en Europa -• Nueva opción «evitar caminos asfaltadas» -• Nuevos iconos en la página de configuración -Más detalles en Codeberg diff --git a/android/app/src/fdroid/play/listings/fr-FR/release-notes.txt b/android/app/src/fdroid/play/listings/fr-FR/release-notes.txt deleted file mode 100644 index fac593f6f..000000000 --- a/android/app/src/fdroid/play/listings/fr-FR/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• Données OpenStreetMap du 16 novembre -• Ajout des arbres -• Les icônes des arrêts de bus sont plus petites et apparaissent plus tôt -• Réduction de la visibilité des entrées -• Ajout de nouveaux types de POI -• Affichage des zones de sable -• Nouveau bouton pour signaler un commerce vacant -• Amélioration des badges routiers en Europe -• Ajout d'une option pour éviter les routes pavées -• Ajout d'icônes dans les paramètres -Plus d'informations sur notre Codeberg diff --git a/android/app/src/fdroid/play/listings/it-IT/release-notes.txt b/android/app/src/fdroid/play/listings/it-IT/release-notes.txt deleted file mode 100644 index 4886fd635..000000000 --- a/android/app/src/fdroid/play/listings/it-IT/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• Mappe OSM al 16 Novembre -• Aggiunti alberi -• Fermate bus più piccole e visibili prima -• Entrate rese meno ingombranti -• Aggiunti diversi POI -• Le zone sabbiose sono ora visibili -• Aggiunta l'opzione di POI vacante nell'editor OSM -• Migliorate le insegne stradali in Europa -• Aggiunta opzione per evitare strade pavimentate -• Aggiunte icone nelle impostazioni -Visita Codeberg per ulteriori dettagli diff --git a/android/app/src/fdroid/play/listings/pt-BR/release-notes.txt b/android/app/src/fdroid/play/listings/pt-BR/release-notes.txt deleted file mode 100644 index 3deabb02c..000000000 --- a/android/app/src/fdroid/play/listings/pt-BR/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• Dados OSM de 16/11 -• Adição de árvores ao mapa -• Ícones de pontos de ônibus menores e exibidos mais cedo -• Visibilidade reduzida das entradas -• Adição de diversos outros tipos de Pontos de Interesse -• Exibição de áreas de areia no mapa -• Adição de opção de "Estabelecimento vazio" ao editor do OSM -• Melhorias nas placas de rodovias na Europa -• Opção para evitar rotas por estradas pavimentadas -• Adição de ícones nas configurações -Confira as notas de lançamento do Codeberg para mais detalhes! diff --git a/android/app/src/fdroid/play/listings/ru-RU/release-notes.txt b/android/app/src/fdroid/play/listings/ru-RU/release-notes.txt deleted file mode 100644 index 40e8ed7cd..000000000 --- a/android/app/src/fdroid/play/listings/ru-RU/release-notes.txt +++ /dev/null @@ -1,10 +0,0 @@ -• Карты OpenStreetMap от 16 ноября -• Добавлены деревья и песчаные области -• Автобусные остановки показываются раньше, но маленькими иконами -• Входы разделены по типам -• В OSM редакторе можно отметить место как неиспользуемое -• Улучшения в иконках номеров дорог в Европе -• Возможность избегать дорог с покрытием при построении маршрута -• Иконки в экране настроек -• На карту добавлены несколько новых типов объектов -Подробнее смотрите на codeberg.org/comaps/comaps/releases diff --git a/android/app/src/fdroid/play/listings/sr/release-notes.txt b/android/app/src/fdroid/play/listings/sr/release-notes.txt deleted file mode 100644 index 332728494..000000000 --- a/android/app/src/fdroid/play/listings/sr/release-notes.txt +++ /dev/null @@ -1,11 +0,0 @@ -• Подaци са OpenStreetMap-а закључно са 16. новембром -• Додате ознаке за дрвеће -• Смањене иконе аутобуских стајалишта и ранији приказ -• Смањена видљивост улаза -• Додато неколико нових типова ознака на мапу -• Приказ пешчаних површина на мапи -• Додата опција „пословни простор је празан“ у OSM едитору -• Побољшани путокази у Европи -• Опција рутирања „избегавај асфалтиране путеве“ -• Додате иконе на страници подешавања -Погледајте детаље на Codeberg-у за списак свих промена! From 2c37e22f5cac5f9fabff7c70817c480839d21523 Mon Sep 17 00:00:00 2001 From: gekeleda Date: Tue, 25 Nov 2025 10:27:10 +0100 Subject: [PATCH 28/91] [android] Ensure correct system language order in map lang selection Signed-off-by: gekeleda Co-authored-by: gekeleda Co-committed-by: gekeleda --- .../app/organicmaps/editor/LanguagesFragment.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java b/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java index 1355ad4a7..12be7e79c 100644 --- a/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java @@ -15,6 +15,7 @@ import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Objects; import java.util.Set; public class LanguagesFragment extends BaseMwmRecyclerFragment @@ -40,7 +41,9 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment LocaleListCompat systemLocales = ConfigurationCompat.getLocales(config); List languages = new ArrayList<>(); - List systemLanguages = new ArrayList<>(); + List systemLanguages = new ArrayList<>(systemLocales.size()); + for (int i = 0; i < systemLocales.size(); i++) + systemLanguages.add(null); for (Language lang : Editor.nativeGetSupportedLanguages(false)) { @@ -49,7 +52,10 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment { Locale locale = systemLocales.get(i); if (locale != null && locale.getLanguage().equals(lang.code)) - systemLanguages.add(lang); + { + systemLanguages.add(i, lang); + break; + } } if (existingLanguages.contains(lang.code) || systemLanguages.contains(lang)) @@ -60,7 +66,7 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment Collections.sort(languages, Comparator.comparing(lhs -> lhs.name)); - languages.addAll(0, systemLanguages); + languages.addAll(0, systemLanguages.stream().filter(Objects::nonNull).toList()); return new LanguagesAdapter(this, languages.toArray(new Language[languages.size()])); } From 1d087ca854c30fdab16f2378d83022a9692ce257 Mon Sep 17 00:00:00 2001 From: gekeleda Date: Sun, 23 Nov 2025 20:23:43 +0100 Subject: [PATCH 29/91] [android] Add function to get all android system languages Signed-off-by: gekeleda --- .../app/organicmaps/sdk/platform/Language.cpp | 30 ++++++++++------ .../app/organicmaps/sdk/util/Language.java | 35 +++++++++++++++++++ libs/platform/preferred_languages.cpp | 6 ++-- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/android/sdk/src/main/cpp/app/organicmaps/sdk/platform/Language.cpp b/android/sdk/src/main/cpp/app/organicmaps/sdk/platform/Language.cpp index 38035bddc..bd0597721 100644 --- a/android/sdk/src/main/cpp/app/organicmaps/sdk/platform/Language.cpp +++ b/android/sdk/src/main/cpp/app/organicmaps/sdk/platform/Language.cpp @@ -9,8 +9,7 @@ #include -/// This function is called from native c++ code -std::string GetAndroidSystemLanguage() +std::vector GetAndroidSystemLanguages() { static char const * DEFAULT_LANG = "en"; @@ -18,20 +17,31 @@ std::string GetAndroidSystemLanguage() if (!env) { LOG(LWARNING, ("Can't get JNIEnv")); - return DEFAULT_LANG; + return {DEFAULT_LANG}; } static jclass const languageClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/Language"); - static jmethodID const getDefaultLocaleId = - jni::GetStaticMethodID(env, languageClass, "getDefaultLocale", "()Ljava/lang/String;"); - jni::TScopedLocalRef localeRef(env, env->CallStaticObjectMethod(languageClass, getDefaultLocaleId)); + static jmethodID const getSystemLocalesId = + jni::GetStaticMethodID(env, languageClass, "getSystemLocales", "()[Ljava/lang/String;"); - std::string res = jni::ToNativeString(env, (jstring)localeRef.get()); - if (res.empty()) - res = DEFAULT_LANG; + jni::TScopedLocalRef resultArray(env, env->CallStaticObjectMethod(languageClass, getSystemLocalesId)); - return res; + jobjectArray array = static_cast(resultArray.get()); + size_t len = env->GetArrayLength(array); + + std::vector languages; + languages.reserve(len); + + for (size_t i = 0; i < len; ++i) + { + jni::TScopedLocalRef elem(env, env->GetObjectArrayElement(array, i)); + std::string lang = jni::ToNativeString(env, static_cast(elem.get())); + + languages.push_back(lang); + } + + return languages; } namespace platform diff --git a/android/sdk/src/main/java/app/organicmaps/sdk/util/Language.java b/android/sdk/src/main/java/app/organicmaps/sdk/util/Language.java index e814eb4d3..758ee6581 100644 --- a/android/sdk/src/main/java/app/organicmaps/sdk/util/Language.java +++ b/android/sdk/src/main/java/app/organicmaps/sdk/util/Language.java @@ -1,11 +1,16 @@ package app.organicmaps.sdk.util; import android.content.Context; +import android.content.res.Resources; +import android.os.Build; +import android.os.LocaleList; import android.text.TextUtils; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; import androidx.annotation.Keep; import androidx.annotation.NonNull; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; public class Language @@ -33,6 +38,36 @@ public class Language return lang; } + @Keep + @SuppressWarnings("unused") + @NonNull + public static String[] getSystemLocales() + { + List result = new ArrayList<>(); + + // Check for Android version high enough to support Locale Preference list + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) + { + // Gets user language preference list, on system level - app-specific changes are not applied + // (For that a Context object would be necessary) + LocaleList list = Resources.getSystem().getConfiguration().getLocales(); + for (int i = 0; i < list.size(); i++) + { + String lang = list.get(i).toString(); + if (lang.startsWith("in")) + lang = "id"; + if (lang.startsWith("iw")) + lang = "he"; + result.add(lang); + } + } + else + { + result.add(Locale.getDefault().toString()); + } + return result.toArray(new String[0]); + } + // After some testing on Galaxy S4, looks like this method doesn't work on all devices: // sometime it always returns the same value as getDefaultLocale() @NonNull diff --git a/libs/platform/preferred_languages.cpp b/libs/platform/preferred_languages.cpp index a2c28d73b..abf5be684 100644 --- a/libs/platform/preferred_languages.cpp +++ b/libs/platform/preferred_languages.cpp @@ -24,7 +24,7 @@ #include #elif defined(OMIM_OS_ANDROID) /// Body for this function is inside android/sdk/src/main/cpp sources -std::string GetAndroidSystemLanguage(); +std::vector GetAndroidSystemLanguages(); #else #error "Define language preferences for your platform" #endif @@ -514,7 +514,9 @@ struct SystemLanguages } #elif defined(OMIM_OS_ANDROID) - m_langs.push_back(GetAndroidSystemLanguage()); + std::vector system_langs = GetAndroidSystemLanguages(); + for (auto const & lang : system_langs) + m_langs.push_back(lang); #else #error "Define language preferences for your platform" #endif From 955d3702ac576b33f0be6b45c6f70f959541af6f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Fri, 21 Nov 2025 18:37:37 +0100 Subject: [PATCH 30/91] [android] Reorder settings like on iOS Signed-off-by: Jean-Baptiste --- .../src/main/res/values/donottranslate.xml | 1 + android/app/src/main/res/values/strings.xml | 1 + android/app/src/main/res/xml/prefs_main.xml | 157 +++++++++--------- 3 files changed, 83 insertions(+), 76 deletions(-) diff --git a/android/app/src/main/res/values/donottranslate.xml b/android/app/src/main/res/values/donottranslate.xml index d74801afe..d0bde177d 100644 --- a/android/app/src/main/res/values/donottranslate.xml +++ b/android/app/src/main/res/values/donottranslate.xml @@ -41,6 +41,7 @@ MapLanguage Backup LeftButton + pref_power %1$s: %2$s %2$s :%1$s diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 90fd6d02c..861f6dfc1 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -658,6 +658,7 @@ Privacy Privacy policy + Power management Terms of use Traffic Subway diff --git a/android/app/src/main/res/xml/prefs_main.xml b/android/app/src/main/res/xml/prefs_main.xml index c1d5e30a0..779df1dd0 100644 --- a/android/app/src/main/res/xml/prefs_main.xml +++ b/android/app/src/main/res/xml/prefs_main.xml @@ -54,118 +54,78 @@ android:defaultValue="false" app:icon="@drawable/ic_text_fields" android:order="6"/> + + android:order="8"/> - - - - - - + android:order="9"/> - + android:key="@string/pref_backup" + android:title="@string/pref_backup_title" + android:summary="@string/pref_backup_summary" + app:icon="@drawable/ic_settings_backup_restore" + app:singleLineTitle="false" + android:persistent="false" + android:order="10"/> + + - + android:order="1"/> + android:order="2"/> + android:order="3"> + + + + + + + + android:order="5"> Date: Tue, 25 Nov 2025 20:26:06 +0100 Subject: [PATCH 31/91] [android] Fix background color of socket cardview Signed-off-by: Jean-Baptiste --- android/app/src/main/res/layout/button_new_item.xml | 1 + android/app/src/main/res/layout/item_charge_socket.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/android/app/src/main/res/layout/button_new_item.xml b/android/app/src/main/res/layout/button_new_item.xml index 9a27fc6fc..9d238de6b 100644 --- a/android/app/src/main/res/layout/button_new_item.xml +++ b/android/app/src/main/res/layout/button_new_item.xml @@ -8,6 +8,7 @@ android:layout_margin="4dp" android:clickable="true" android:focusable="true" + app:cardBackgroundColor="?cardBackground" app:cardCornerRadius="12dp" app:cardElevation="2dp" tools:showIn="@layout/item_charging_sockets"> diff --git a/android/app/src/main/res/layout/item_charge_socket.xml b/android/app/src/main/res/layout/item_charge_socket.xml index 69b09271b..eeb49abef 100644 --- a/android/app/src/main/res/layout/item_charge_socket.xml +++ b/android/app/src/main/res/layout/item_charge_socket.xml @@ -6,6 +6,7 @@ android:layout_margin="4dp" android:clickable="true" android:focusable="true" + app:cardBackgroundColor="?cardBackground" app:cardCornerRadius="12dp" app:cardElevation="2dp"> From 92c2945897833235346547d396131302bcecbd9e Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Wed, 26 Nov 2025 17:24:44 +0700 Subject: [PATCH 32/91] [android] Default release rollout fraction to 20% of users Signed-off-by: Konstantin Pastbin --- android/app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/build.gradle b/android/app/build.gradle index 3c691aef6..ba1644cbb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -377,6 +377,7 @@ play { track.set('production') defaultToAppBundles.set(true) releaseStatus.set(ReleaseStatus.IN_PROGRESS) + userFraction.set(0.2) // Rollout to 20% of users serviceAccountCredentials.set(file('google-play.json')) } From e19e63930d368b0b78886f5f3ae965dd3dbba8fe Mon Sep 17 00:00:00 2001 From: x7z4w Date: Sun, 23 Nov 2025 16:41:52 +0100 Subject: [PATCH 33/91] [cmake] Fix build errors Signed-off-by: x7z4w --- CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a1791f75e..2389d8528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,10 +222,8 @@ if (PLATFORM_DESKTOP AND NOT WITH_SYSTEM_PROVIDED_3PARTY) include_directories("${PROJECT_BINARY_DIR}/3party/gflags/include") endif() -# Android fails to find boost in many cases, this fixes it. -if (PLATFORM_ANDROID) - include_directories("${OMIM_ROOT}/3party/boost") -endif() +# Fix for #include +include_directories("${OMIM_ROOT}/3party/boost") # Used in qt/ and shaders/ find_package(Python3 REQUIRED COMPONENTS Interpreter) From 6b76e9826b0ee60a6f05fc88e209f30fc5dc47ce Mon Sep 17 00:00:00 2001 From: x7z4w Date: Mon, 24 Nov 2025 17:44:22 +0000 Subject: [PATCH 34/91] [tests] Fix build errors Signed-off-by: x7z4w --- libs/base/base_tests/regexp_test.cpp | 2 +- .../platform_tests/downloader_tests/downloader_test.cpp | 4 +++- libs/platform/platform_tests/platform_test.cpp | 2 +- tools/openlr/openlr_stat/openlr_stat.cpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libs/base/base_tests/regexp_test.cpp b/libs/base/base_tests/regexp_test.cpp index 7fff59742..dae8245ec 100644 --- a/libs/base/base_tests/regexp_test.cpp +++ b/libs/base/base_tests/regexp_test.cpp @@ -9,7 +9,7 @@ namespace regexp_test template void ForEachMatched(std::string const & s, boost::regex const & regex, Fn && fn) { - for (std::sregex_token_iterator cur(s.begin(), s.end(), regex), end; cur != end; ++cur) + for (boost::sregex_token_iterator cur(s.begin(), s.end(), regex), end; cur != end; ++cur) fn(*cur); } diff --git a/libs/platform/platform_tests/downloader_tests/downloader_test.cpp b/libs/platform/platform_tests/downloader_tests/downloader_test.cpp index aca39751d..c533d2d9b 100644 --- a/libs/platform/platform_tests/downloader_tests/downloader_test.cpp +++ b/libs/platform/platform_tests/downloader_tests/downloader_test.cpp @@ -11,6 +11,8 @@ #include "base/logging.hpp" #include "base/std_serialization.hpp" +#include + #include #include @@ -395,7 +397,7 @@ void DeleteTempDownloadFiles() // Remove data from previously failed files. // Get regexp like this: (\.downloading3$|\.resume3$) - string const regexp = "(\\" RESUME_FILE_EXTENSION "$|\\" DOWNLOADING_FILE_EXTENSION "$)"; + static boost::regex const regexp("(\\" RESUME_FILE_EXTENSION "$|\\" DOWNLOADING_FILE_EXTENSION "$)"); Platform::FilesList files; Platform::GetFilesByRegExp(".", regexp, files); diff --git a/libs/platform/platform_tests/platform_test.cpp b/libs/platform/platform_tests/platform_test.cpp index 3af643cd3..44ddea2c8 100644 --- a/libs/platform/platform_tests/platform_test.cpp +++ b/libs/platform/platform_tests/platform_test.cpp @@ -102,7 +102,7 @@ UNIT_TEST(GetFilesInDir_Smoke) TEST(base::IsExist(files1, "minsk-pass.mwm"), ()); - pl.GetFilesByRegExp(dir, boost::regex(".*\\" + DATA_FILE_EXTENSION + "$"), files2); + pl.GetFilesByRegExp(dir, boost::regex(std::string(".*\\") + DATA_FILE_EXTENSION + std::string("$")), files2); TEST_EQUAL(files1, files2, ()); files1.clear(); diff --git a/tools/openlr/openlr_stat/openlr_stat.cpp b/tools/openlr/openlr_stat/openlr_stat.cpp index 08650b8c4..72a6ad5b8 100644 --- a/tools/openlr/openlr_stat/openlr_stat.cpp +++ b/tools/openlr/openlr_stat/openlr_stat.cpp @@ -62,7 +62,7 @@ void LoadDataSources(std::string const & pathToMWMFolder, std::vector Date: Mon, 24 Nov 2025 16:34:49 +0000 Subject: [PATCH 35/91] [core] Fix warning Signed-off-by: x7z4w --- libs/indexer/road_shields_parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index 87835d492..500965a97 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -355,8 +355,8 @@ public: Entry(std::string_view name, HighwayClass highwayClass, RoadShieldType type, bool isRedundant = false, bool shouldTrimName = false) : m_name(name), m_type(type), m_highwayClass(highwayClass), m_isRedundant(isRedundant), m_shouldTrimName(shouldTrimName) {} std::string_view m_name; - HighwayClass m_highwayClass = HighwayClass::Undefined; RoadShieldType m_type = RoadShieldType::Default; + HighwayClass m_highwayClass = HighwayClass::Undefined; /* Hides a specific secondary etc. sign, if there is a primary one */ bool m_isRedundant = false; bool m_shouldTrimName = false; From a702989b095737b88ecb5697c7e094bf775b94f6 Mon Sep 17 00:00:00 2001 From: x7z4w Date: Wed, 26 Nov 2025 10:54:35 +0000 Subject: [PATCH 36/91] [cmake] Remove LTO hacks Signed-off-by: x7z4w --- CMakeLists.txt | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2389d8528..d0ecf6e39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,19 +114,6 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo") add_compile_options(-fno-omit-frame-pointer) endif() -# Linux GCC LTO plugin fix. -if (PLATFORM_LINUX AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_BUILD_TYPE MATCHES "^Rel")) - # To force errors if LTO was not enabled. - add_compile_options(-fno-fat-lto-objects) - # To fix ar and ranlib "plugin needed to handle lto object". - string(REGEX MATCH "[0-9]+" GCC_MAJOR_VERSION ${CMAKE_CXX_COMPILER_VERSION}) - file(GLOB_RECURSE plugin /usr/lib/gcc/*/${GCC_MAJOR_VERSION}*/liblto_plugin.so) - set(CMAKE_C_ARCHIVE_CREATE " --plugin ${plugin} qcs ") - set(CMAKE_C_ARCHIVE_FINISH " --plugin ${plugin} ") - set(CMAKE_CXX_ARCHIVE_CREATE " --plugin ${plugin} qcs ") - set(CMAKE_CXX_ARCHIVE_FINISH " --plugin ${plugin} ") -endif() - message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) if (PLATFORM_LINUX OR PLATFORM_ANDROID) From 26cb42651c4400c994e000675aee0e7c00c4c0b4 Mon Sep 17 00:00:00 2001 From: map-per Date: Wed, 26 Nov 2025 15:14:09 +0100 Subject: [PATCH 37/91] [build] Fix gradle sync in Android Studio Signed-off-by: map-per --- android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index ba1644cbb..8a286f56e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -377,7 +377,7 @@ play { track.set('production') defaultToAppBundles.set(true) releaseStatus.set(ReleaseStatus.IN_PROGRESS) - userFraction.set(0.2) // Rollout to 20% of users + userFraction.set(0.2d) // Rollout to 20% of users serviceAccountCredentials.set(file('google-play.json')) } From 610737d2958e547884036a458b0cfc5a7629ac92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9verin=20Lemaignan?= Date: Tue, 25 Nov 2025 22:42:12 +0100 Subject: [PATCH 38/91] add support for schuko/type-E charge sockets to C++ SDK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Séverin Lemaignan --- libs/indexer/feature_charge_sockets.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/indexer/feature_charge_sockets.hpp b/libs/indexer/feature_charge_sockets.hpp index 6a84c8d73..8cfec3b86 100644 --- a/libs/indexer/feature_charge_sockets.hpp +++ b/libs/indexer/feature_charge_sockets.hpp @@ -93,9 +93,9 @@ public: /** List of supported sockets, ~ordered from high-power to low-power. * This order can be used in the UIs. */ - static constexpr std::array SUPPORTED_TYPES = { - "mcs", "type2_combo", "chademo", "nacs", "type1", "gb_dc", - "chaoji", "type3c", "type2_cable", "type2", "gb_ac", "type3a"}; + static constexpr std::array SUPPORTED_TYPES = { + "mcs", "type2_combo", "chademo", "nacs", "type1", "gb_dc", "chaoji", + "type3c", "type2_cable", "type2", "gb_ac", "type3a", "typee", "schuko"}; /** Return a list of OSM attributes that have changed between the current * list of sockets and the provided old list. From 6d0111b43413746ba2a1cc6f17a1f00215614967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9verin=20Lemaignan?= Date: Tue, 25 Nov 2025 22:44:34 +0100 Subject: [PATCH 39/91] [android] add support for schuko/type-E charge sockets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The commit is slightly more complicated that expected because: - it adds supports for both schuko and type-E, using the same icon (but maintaining the underlying type annotated in OSM) - it adds logic to *not* display the power of schuko socket as 'unknown' when not provided in OSM, as it is 'implicit' (3.7kW in most countries) Signed-off-by: Séverin Lemaignan --- .../organicmaps/editor/EditorFragment.java | 34 ++++++++------- .../PlacePageChargeSocketsFragment.java | 9 +++- .../app/src/main/res/values-es/strings.xml | 1 + android/app/src/main/res/values/arrays.xml | 1 + android/app/src/main/res/values/strings.xml | 1 + .../data/ChargeSocketDescriptor.java | 28 ++++++++++++- .../res/drawable/ic_charge_socket_schuko.xml | 10 +++++ .../ic_charge_socket_schuko.svg | 42 +++++++++++++++++++ 8 files changed, 108 insertions(+), 18 deletions(-) create mode 100644 android/sdk/src/main/res/drawable/ic_charge_socket_schuko.xml create mode 100644 data/symbols-svg/charging_sockets/ic_charge_socket_schuko.svg diff --git a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java index 0a728c985..a329aa05a 100644 --- a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java @@ -1,5 +1,7 @@ package app.organicmaps.editor; +import static android.view.View.INVISIBLE; + import android.annotation.SuppressLint; import android.content.Context; import android.os.Bundle; @@ -396,16 +398,18 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe typeBtns.removeAllViews(); List SOCKET_TYPES = Arrays.stream(getResources().getStringArray(R.array.charge_socket_types)).toList(); - for (String socket : SOCKET_TYPES) + for (String socketType : SOCKET_TYPES) { + ChargeSocketDescriptor socket = new ChargeSocketDescriptor(socketType,0,0); + MaterialButton btn = (MaterialButton) inflater.inflate(R.layout.button_socket_type, typeBtns, false); - btn.setTag(R.id.socket_type, socket); + btn.setTag(R.id.socket_type, socket.type()); // load SVG icon converted into VectorDrawable in res/drawable @SuppressLint("DiscouragedApi") int resIconId = - getResources().getIdentifier("ic_charge_socket_" + socket, "drawable", requireContext().getPackageName()); + getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable", requireContext().getPackageName()); if (resIconId != 0) { btn.setIcon(getResources().getDrawable(resIconId)); @@ -413,7 +417,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe @SuppressLint("DiscouragedApi") int resTypeId = - getResources().getIdentifier("charge_socket_" + socket, "string", requireContext().getPackageName()); + getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName()); if (resTypeId != 0) { btn.setText(getResources().getString(resTypeId)); @@ -601,8 +605,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe GridLayout socketsGrid = mChargeSockets.findViewById(R.id.socket_grid_editor); socketsGrid.removeAllViews(); - for (int i = 0; i < sockets.length; i++) - { + for (int i = 0; i < sockets.length; i++) { final int currentIndex = i; ChargeSocketDescriptor socket = sockets[i]; @@ -613,28 +616,29 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe MaterialTextView power = itemView.findViewById(R.id.socket_power); MaterialTextView count = itemView.findViewById(R.id.socket_count); + // load SVG icon converted into VectorDrawable in res/drawable @SuppressLint("DiscouragedApi") - int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.type(), "drawable", - requireContext().getPackageName()); - if (resIconId != 0) - { + int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable", + requireContext().getPackageName()); + if (resIconId != 0) { icon.setImageResource(resIconId); } @SuppressLint("DiscouragedApi") int resTypeId = - getResources().getIdentifier("charge_socket_" + socket.type(), "string", requireContext().getPackageName()); - if (resTypeId != 0) - { + getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName()); + if (resTypeId != 0) { type.setText(resTypeId); } - if (socket.power() != 0) - { + if (socket.power() != 0) { DecimalFormat df = new DecimalFormat("#.##"); power.setText(getString(R.string.kw_label, df.format(socket.power()))); } + else if (socket.ignorePower()) { + power.setVisibility(INVISIBLE); + } if (socket.count() != 0) { diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageChargeSocketsFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageChargeSocketsFragment.java index 152614d2e..8233cb6e3 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageChargeSocketsFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageChargeSocketsFragment.java @@ -1,5 +1,7 @@ package app.organicmaps.widget.placepage.sections; +import static android.view.View.INVISIBLE; + import android.annotation.SuppressLint; import android.os.Bundle; import android.view.LayoutInflater; @@ -89,7 +91,7 @@ public class PlacePageChargeSocketsFragment extends Fragment implements Observer // load SVG icon converted into VectorDrawable in res/drawable @SuppressLint("DiscouragedApi") - int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.type(), "drawable", + int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable", requireContext().getPackageName()); if (resIconId != 0) { @@ -98,7 +100,7 @@ public class PlacePageChargeSocketsFragment extends Fragment implements Observer @SuppressLint("DiscouragedApi") int resTypeId = - getResources().getIdentifier("charge_socket_" + socket.type(), "string", requireContext().getPackageName()); + getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName()); if (resTypeId != 0) { type.setText(resTypeId); @@ -109,6 +111,9 @@ public class PlacePageChargeSocketsFragment extends Fragment implements Observer DecimalFormat df = new DecimalFormat("#.##"); power.setText(getString(R.string.kw_label, df.format(socket.power()))); } + else if (socket.ignorePower()) { + power.setVisibility(INVISIBLE); + } if (socket.count() != 0) { diff --git a/android/app/src/main/res/values-es/strings.xml b/android/app/src/main/res/values-es/strings.xml index 7d59ad3f0..115bd8ea0 100644 --- a/android/app/src/main/res/values-es/strings.xml +++ b/android/app/src/main/res/values-es/strings.xml @@ -887,6 +887,7 @@ Potencia (kW) desconocido Evitar escaleras + Doméstico UE enchufe desconocido Crear nuevo enchufe o editar existentes. Enchufes disponibles diff --git a/android/app/src/main/res/values/arrays.xml b/android/app/src/main/res/values/arrays.xml index de2c651d7..f2f0a85eb 100644 --- a/android/app/src/main/res/values/arrays.xml +++ b/android/app/src/main/res/values/arrays.xml @@ -30,6 +30,7 @@ type1 type2_cable type2 + schuko unknown diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 861f6dfc1..2273c8658 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -939,6 +939,7 @@ Type 1 NACS CHAdeMO + Domestic EU unknown socket Create new sockets or edit existing ones. Available sockets diff --git a/android/sdk/src/main/java/app/organicmaps/sdk/bookmarks/data/ChargeSocketDescriptor.java b/android/sdk/src/main/java/app/organicmaps/sdk/bookmarks/data/ChargeSocketDescriptor.java index 955464bc6..743c39afc 100644 --- a/android/sdk/src/main/java/app/organicmaps/sdk/bookmarks/data/ChargeSocketDescriptor.java +++ b/android/sdk/src/main/java/app/organicmaps/sdk/bookmarks/data/ChargeSocketDescriptor.java @@ -1,7 +1,33 @@ package app.organicmaps.sdk.bookmarks.data; +import java.text.DecimalFormat; + /** * represents the details of the socket available on a particular charging station * */ -public record ChargeSocketDescriptor(String type, int count, double power) {} +public record ChargeSocketDescriptor(String type, int count, double power) { + + /** + * Some charge sockets have the same visuals as other sockets, even though they are different and are tagged + * differently in OSM. This method returns the 'visual' type that should be used for the socket. + * + * @return the 'equivalent' visual style that should be used for this socket + */ + public String visualType() { + if (type.equals("typee")) { + return "schuko"; + } + return type; + } + + /** + * For some sockets (eg, domestic sockets), the power is usually not provided, as it is 'implicit' + * + * @return true if this socket type does not require displaying the power + */ + public Boolean ignorePower() { + return type.equals("typee") || type.equals("schuko"); + } + +} diff --git a/android/sdk/src/main/res/drawable/ic_charge_socket_schuko.xml b/android/sdk/src/main/res/drawable/ic_charge_socket_schuko.xml new file mode 100644 index 000000000..85e92e6ba --- /dev/null +++ b/android/sdk/src/main/res/drawable/ic_charge_socket_schuko.xml @@ -0,0 +1,10 @@ + + + diff --git a/data/symbols-svg/charging_sockets/ic_charge_socket_schuko.svg b/data/symbols-svg/charging_sockets/ic_charge_socket_schuko.svg new file mode 100644 index 000000000..89edae0b7 --- /dev/null +++ b/data/symbols-svg/charging_sockets/ic_charge_socket_schuko.svg @@ -0,0 +1,42 @@ + +image/svg+xml From e862da648e67ee4f3df4251db487b6293b63d471 Mon Sep 17 00:00:00 2001 From: patepelo Date: Thu, 13 Nov 2025 01:13:23 +0700 Subject: [PATCH 40/91] [search] Improve search synonyms spanish Signed-off-by: patepelo --- libs/search/query_params.cpp | 230 +++++++++++++++++++++-------------- 1 file changed, 141 insertions(+), 89 deletions(-) diff --git a/libs/search/query_params.cpp b/libs/search/query_params.cpp index 96e25791d..65140282e 100644 --- a/libs/search/query_params.cpp +++ b/libs/search/query_params.cpp @@ -3,8 +3,8 @@ #include "search/ranking_utils.hpp" #include "search/token_range.hpp" -#include #include +#include namespace search { @@ -18,38 +18,77 @@ namespace unordered_map> const kSynonyms = { /// @todo Should process synonyms with errors like "blvrd" -> "blvd". /// @see HouseOnStreetSynonymsWithMisprints test. - {"1", {"pierwszy", "pierwsza", "un", "una", "pierwsze", "primo", "واحد", "حادى", "احد"}}, - {"1st", {"first"}}, - {"1°", {"primo"}}, - {"20", {"venti", "عشرين", "عشرون"}}, - {"25", {"venticinque", "خمسه و عشرون", "خمس و عشرين"}}, - {"2", {"due", "drugi", "drugie", "druga", "اثنان", "اثنين"}}, - {"2nd", {"second"}}, - {"3", {"trzecia", "trzecie", "tre", "trzeci", "ثلاث"}}, - {"3rd", {"third"}}, - {"4", {"quattro", "اربع"}}, - {"4th", {"fourth"}}, - {"5", {"cinque", "خمس"}}, - {"5th", {"fifth"}}, - {"6", {"sei", "ست"}}, - {"6th", {"sixth"}}, - {"7", {"sette", "سبع"}}, - {"7th", {"seventh"}}, - {"8", {"otto", "ثمان", "ثمانيه"}}, - {"8th", {"eighth"}}, - {"9", {"nove", "تسع"}}, - {"9th", {"ninth"}}, + {"10a", {"décima"}}, + {"10o", {"décimo"}}, {"10th", {"tenth"}}, + {"11a", {"undécima", "decimoprimera"}}, + {"11o", {"undécimo", "decimoprimero"}}, {"11th", {"eleventh"}}, + {"12a", {"duodécima", "decimosegunda"}}, + {"12o", {"duodécimo", "decimosegundo"}}, {"12th", {"twelfth"}}, + {"13a", {"decimotercera"}}, + {"13o", {"decimotercero"}}, {"13th", {"thirteenth"}}, + {"14a", {"decimocuarta"}}, + {"14o", {"decimocuarto"}}, {"14th", {"fourteenth"}}, + {"15a", {"decimoquinta"}}, + {"15o", {"decimoquinto"}}, {"15th", {"fifteenth"}}, + {"16a", {"decimosexta"}}, + {"16o", {"decimosexto"}}, {"16th", {"sixteenth"}}, + {"17a", {"decimoséptima"}}, + {"17o", {"decimoséptimo"}}, {"17th", {"seventeenth"}}, + {"18a", {"decimoctava"}}, + {"18o", {"decimoctavo"}}, {"18th", {"eighteenth"}}, + {"19a", {"decimonovena"}}, + {"19o", {"decimonoveno"}}, {"19th", {"nineteenth"}}, + {"1a", {"primera"}}, + {"1o", {"primo", "primero"}}, + {"1", + {"pierwszy", "pierwsza", "un", "una", "uno", "pierwsze", "primo", "primer", "primero", "واحد", "حادى", "احد"}}, + {"1°", {"primo", "primero"}}, + {"1st", {"first"}}, {"20th", {"twentieth"}}, + {"20", {"venti", "veinte", "عشرين", "عشرون"}}, + {"25", {"venticinque", "خمسه و عشرون", "خمس و عشرين"}}, + {"2a", {"segunda"}}, + {"2", {"due", "drugi", "drugie", "druga", "dos", "segunda", "segundo", "اثنان", "اثنين"}}, + {"2nd", {"second"}}, + {"2o", {"segundo"}}, + {"3a", {"tercera"}}, + {"3o", {"tercero"}}, + {"3rd", {"third"}}, + {"3", {"trzecia", "trzecie", "tre", "trzeci", "tres", "tercera", "tercero", "ثلاث"}}, + {"4a", {"cuarta"}}, + {"4o", {"cuarto"}}, + {"4", {"quattro", "cuatro", "cuarta", "cuarto", "اربع"}}, + {"4th", {"fourth"}}, + {"5a", {"quinta"}}, + {"5", {"cinque", "cinco", "quinta", "quinto", "خمس"}}, + {"5o", {"quinto"}}, + {"5th", {"fifth"}}, + {"6a", {"sexta"}}, + {"6o", {"sexto"}}, + {"6", {"sei", "seis", "sexta", "secto", "ست"}}, + {"6th", {"sixth"}}, + {"7a", {"séptima"}}, + {"7o", {"séptimo"}}, + {"7", {"sette", "siete", "séptima", "séptima", "سبع"}}, + {"7th", {"seventh"}}, + {"8a", {"octava"}}, + {"8o", {"octavo"}}, + {"8", {"otto", "ocho", "octava", "octavo", "ثمان", "ثمانيه"}}, + {"8th", {"eighth"}}, + {"9a", {"novena"}}, + {"9o", {"noveno"}}, + {"9", {"nove", "nueve", "تسع", "nueve", "novena", "noveno"}}, + {"9th", {"ninth"}}, {"a", {"am", "auto-estrada", "aikštė"}}, {"abe", {"abbaye"}}, {"accs", {"access"}}, @@ -96,7 +135,7 @@ unordered_map> const kSynonyms = { {"arb", {"arboleda"}}, {"arc", {"arcade", "arcades"}}, {"arq", {"arquiteto", "arquitecto"}}, - {"arqº", {"arquiteto", "arquitecto"}}, + {"arqo", {"arquiteto", "arquitecto"}}, {"arral", {"arrabal"}}, {"arry", {"arroyo"}}, {"art", {"anciennes routes", "ancienne route"}}, @@ -114,8 +153,8 @@ unordered_map> const kSynonyms = { {"auto", {"autopista"}}, {"autop", {"autopista"}}, {"autov", {"autovía", "autovia"}}, - {"avª", {"avenida"}}, {"av", {"avinguda", "avenida", "avenue"}}, + {"ava", {"avenida"}}, {"avda", {"avinguda", "avenida"}}, {"avd", {"avinguda", "avenida"}}, {"ave", {"avenue"}}, @@ -164,7 +203,6 @@ unordered_map> const kSynonyms = { {"blvrd", {"boulevard"}}, {"bnc", {"barranc"}}, {"bnd", {"bend"}}, - {"bº", {"bairro"}}, {"bo", {"barrio"}}, {"boul", {"boulevard"}}, {"bpa", {"biskupa", "biskup"}}, @@ -203,9 +241,11 @@ unordered_map> const kSynonyms = { {"byp", {"bypass"}}, {"bywy", {"byway"}}, {"cac", {"cacique"}}, - {"cª", {"companhia"}}, + {"ca", {"compañía anónima","companhia", "compañía"}}, + {"cad", {"cadde"}}, {"cal", {"calea"}}, {"cale", {"cale"}}, + {"call", {"calleja", "callejón"}}, {"callej", {"callejón"}}, {"cam", {"caminho", "camino"}}, {"campg", {"camping"}}, @@ -223,13 +263,11 @@ unordered_map> const kSynonyms = { {"cav", {"cavée"}}, {"cbtiz", {"cobertizo"}}, {"cc", {"calçada", "centro comercial"}}, - {"call", {"calleja", "callejón"}}, {"c", {"cesta", "carrer", "calle", "centre"}}, {"cckq", {"căn cứ không quân"}}, {"ccnh", {"calçadinha"}}, {"cct", {"circuit"}}, {"ccvcn", {"circunvalación"}}, - {"cad", {"cadde"}}, {"cd", {"cadde", "caddesi"}}, {"cđ", {"cao đẳng"}}, {"cds", {"cul-de-sac"}}, @@ -331,8 +369,8 @@ unordered_map> const kSynonyms = { {"crtil", {"carretil"}}, {"crtjo", {"cortijo"}}, {"csac", {"cul-de-sac"}}, - {"cs", {"cross"}}, {"čs", {"československé", "československého", "československých"}}, + {"cs", {"cross"}}, {"csg", {"crossing"}}, {"csl", {"casal"}}, {"čsl", {"československej", "československé", "československého", "československých"}}, @@ -352,6 +390,8 @@ unordered_map> const kSynonyms = { {"cty", {"city", "công ty"}}, {"cty cp", {"công ty cổ phần"}}, {"ctyd", {"courtyard"}}, + {"cuarta", {"4", "4a"}}, + {"cuarto", {"4", "4o"}}, {"cutt", {"cutting"}}, {"cv", {"công viên", "cove", "cave"}}, {"cve", {"curve"}}, @@ -360,7 +400,7 @@ unordered_map> const kSynonyms = { {"cway", {"causeway"}}, {"cyd", {"courtyard"}}, {"czada", {"calzada"}}, - {"dª", {"dona"}}, + {"da", {"dona"}}, {"dars", {"darse"}}, {"dav", {"deutscher alpenverein"}}, {"d´", {"de"}}, @@ -388,7 +428,6 @@ unordered_map> const kSynonyms = { {"dom", {"domaine", "domaines"}}, {"dq", {"duque"}}, {"dra", {"doctora", "doutora"}}, - {"drª", {"doutora"}}, {"dr", {"doktora", "doktorky", "doktor", "dokter", "doctor", "drive", "doutora", "doutor", "doktora"}}, {"drec", {"drecera"}}, {"drs", {"doctorandus"}}, @@ -419,8 +458,8 @@ unordered_map> const kSynonyms = { {"egl", {"église"}}, {"égl", {"église"}}, {"ehem", {"ehemalige", "ehemaliger", "ehemaliges"}}, - {"eighth", {"8th"}}, {"eighteenth", {"18th"}}, + {"eighth", {"8th"}}, {"elb", {"elbow"}}, {"eleventh", {"11th"}}, {"emb", {"embaixador"}}, @@ -430,10 +469,10 @@ unordered_map> const kSynonyms = { {"en", {"estrada nacional", "enceinte"}}, {"enf", {"enfermeiro"}}, {"enfo", {"enfermeiro"}}, - {"enfº", {"enfermeiro"}}, - {"engª", {"engenheira"}}, + {"enfo", {"enfermeiro"}}, + {"enga", {"engenheira"}}, {"eng", {"engenheira", "engenheiro"}}, - {"engº", {"engenheiro"}}, + {"engo", {"engenheiro"}}, {"entd", {"entrada"}}, {"ent", {"entrance"}}, {"entl", {"entresòl"}}, @@ -482,10 +521,10 @@ unordered_map> const kSynonyms = { {"ff", {"freiwillige feuerwehr"}}, {"fg", {"faubourg"}}, {"fh", {"fachhochschule", "forsthaus"}}, - {"fit", {"firetrail"}}, - {"fifth", {"5th"}}, {"fifteenth", {"15th"}}, + {"fifth", {"5th"}}, {"first", {"1st"}}, + {"fit", {"firetrail"}}, {"flat", {"flat"}}, {"fl", {"flat"}}, {"fnd", {"fundătura"}}, @@ -493,8 +532,8 @@ unordered_map> const kSynonyms = { {"fon", {"fontaine"}}, {"form", {"forum", "formation"}}, {"fos", {"fosses", "fosse"}}, - {"fourth", {"4th"}}, {"fourteenth", {"14th"}}, + {"fourth", {"4th"}}, {"foyr", {"foyer"}}, {"fr", {"father", "frontage", "frei"}}, {"frm", {"ferme", "fermes"}}, @@ -540,7 +579,9 @@ unordered_map> const kSynonyms = { {"gpt", {"groupement"}}, {"gra", {"grange"}}, {"grg", {"gymnasium und realgymnasium"}}, - {"gr", {"grande rue", "grandes rues", "gracht", "grand’rue", "gränd", "graben", "grovet", "gränden", "grove", "großes", "große", "großer"}}, + {"gr", + {"grande rue", "grandes rues", "gracht", "grand’rue", "gränd", "graben", "grovet", "gränden", "grove", "großes", + "große", "großer"}}, {"gri", {"grille"}}, {"grim", {"grimpette"}}, {"grnd", {"ground"}}, @@ -593,11 +634,11 @@ unordered_map> const kSynonyms = { {"ii", {"seconda", "drugi", "druga", "secondo", "segundo", "drugie"}}, {"ile", {"île"}}, {"ima", {"irmã"}}, - {"imª", {"irmã"}}, + {"ima", {"irmã"}}, {"im", {"irmã", "irmão"}}, {"imm", {"immeubles", "immeuble"}}, {"imo", {"irmão"}}, - {"imº", {"irmão"}}, + {"imo", {"irmão"}}, {"imp", {"impasse", "impasses"}}, {"ind", {"industrial"}}, {"inf", {"infante"}}, @@ -750,26 +791,28 @@ unordered_map> const kSynonyms = { {"mw", {"mews"}}, {"mwy", {"motorway"}}, {"mz", {"manzana"}}, - {"nábr", {"nábrežie"}}, {"nábř", {"nábřeží"}}, + {"nábr", {"nábrežie"}}, {"nac", {"nacional"}}, {"nám", {"námestie", "náměstí"}}, {"n:a", {"norra"}}, - {"nª", {"nossa"}}, + {"na", {"nossa"}}, {"nd", {"niedere", "niederes", "niederer"}}, {"ndr", {"nordre"}}, {"ne", {"northeast"}}, {"nh", {"nhà hát"}}, {"nhs", {"national high school"}}, - {"ninth", {"9th"}}, {"nineteenth", {"19th"}}, + {"ninth", {"9th"}}, {"nk", {"nook"}}, {"nms", {"neue mittelschule"}}, {"n", {"nowy", "nowa", "nossa", "norra", "número", "north", "nosso", "nacional", "nowe"}}, {"nö", {"niederösterreichischer", "niederösterreichisches", "niederösterreich", "niederösterreichische"}}, - {"nº", {"número"}}, + {"no", {"número"}}, {"nook", {"nook"}}, {"nördl", {"nördlicher", "nördliche", "nördliches"}}, + {"novena", {"9", "9a"}}, + {"noveno", {"9", "9o"}}, {"no", {"சாலை", "salai", "nomor", "vazhi", "வழி"}}, {"np", {"nationalpark", "national park"}}, {"nra", {"national recreation area"}}, @@ -789,6 +832,8 @@ unordered_map> const kSynonyms = { {"öav", {"österreichischer alpenverein"}}, {"obj", {"objekt"}}, {"ob", {"oberer", "obere", "oberes"}}, + {"octava", {"8", "8a"}}, + {"octavo", {"8", "8o"}}, {"ögv", {"österreichischer gebirgsverein"}}, {"olv", {"onze-lieve-vrouw"}}, {"o", {"ob"}}, @@ -828,7 +873,7 @@ unordered_map> const kSynonyms = { {"pcp", {"police community precinct"}}, {"pc", {"praça"}}, {"pç", {"praça"}}, - {"pctª", {"praceta"}}, + {"pcta", {"praceta"}}, {"pct", {"precinct", "praceta"}}, {"pda", {"pujada"}}, {"pde", {"parade"}}, @@ -850,8 +895,8 @@ unordered_map> const kSynonyms = { {"piaz", {"piazza"}}, {"pim", {"petite impasse"}}, {"pi", {"polígon industrial"}}, - {"pj", {"polícia judiciária"}}, {"pje", {"pasaje"}}, + {"pj", {"polícia judiciária"}}, {"pkg", {"parking"}}, {"pkld", {"parklands"}}, {"pko", {"puistikko"}}, @@ -882,7 +927,7 @@ unordered_map> const kSynonyms = { {"pol. ind", {"polígon industrial"}}, {"pol", {"polígon"}}, {"pont", {"ponts", "pont"}}, - {"po", {"post office"}}, + {"po", {"post office", "paseo"}}, {"por", {"porucznika", "porucznik", "poručíka"}}, {"porq", {"portique", "portiques"}}, {"port", {"port"}}, @@ -898,9 +943,11 @@ unordered_map> const kSynonyms = { {"pre", {"pré"}}, {"presid", {"presidente"}}, {"pres", {"president"}}, + {"primera", {"1", "1a"}}, + {"primero", {"1", "1o"}}, {"prk", {"purok"}}, {"prm", {"promenade"}}, - {"profª", {"professora"}}, + {"profa", {"professora"}}, {"prof", {"professora", "professor", "profesora", "profesorky", "profesor"}}, {"proj", {"projectada", "projetada"}}, {"prolng", {"prolongamento"}}, @@ -949,6 +996,8 @@ unordered_map> const kSynonyms = { {"qt", {"quảng trường"}}, {"quad", {"quad"}}, {"qua", {"quartier"}}, + {"quinta", {"5", "5a"}}, + {"quinto", {"5", "5o"}}, {"qu", {"quelle", "quai"}}, {"qy", {"quay", "quays"}}, {"qys", {"quays"}}, @@ -956,7 +1005,7 @@ unordered_map> const kSynonyms = { {"raid", {"raidillon"}}, {"rang", {"rang"}}, {"ra", {"ramble"}}, - {"rª", {"ribeira"}}, + {"ra", {"ribeira"}}, {"ras", {"rautatieasema"}}, {"rbla", {"rambla"}}, {"rbra", {"ribera"}}, @@ -978,13 +1027,12 @@ unordered_map> const kSynonyms = { {"rem", {"rempart"}}, {"rep", {"representative"}}, {"resid", {"residencial"}}, - {"res", {"reservation", "reserve", "reservoir", "résidence", "résidences", "residencias", "residencia"}}, - {"rest", {"rest"}}, + {"res", {"reservation", "reserve", "reservoir", "résidence", "résidences", "residencias", "residencia", "residencial"}}, {"rge", {"range"}}, {"rg", {"range"}}, {"rgwy", {"ridgeway"}}, {"rh", {"rhein", "rạp hát"}}, - {"ribª", {"ribeira"}}, + {"riba", {"ribeira"}}, {"rib", {"ribeirão", "ribeira"}}, {"ri", {"rise"}}, {"rise", {"rise"}}, @@ -1024,8 +1072,7 @@ unordered_map> const kSynonyms = { {"sanat", {"sanatorio"}}, {"santu", {"santuario"}}, {"sarg", {"sargento"}}, - {"sª", {"senhora"}}, - {"sa", {"sociedade anónima"}}, + {"sa", {"sociedade anónima", "sociedad anónima","senhora"}}, {"s:a", {"södra"}}, {"savinj", {"savinjski"}}, {"sbg", {"salzburger", "salzburg"}}, @@ -1045,12 +1092,18 @@ unordered_map> const kSynonyms = { {"second", {"2nd"}}, {"sect", {"sector"}}, {"sedra", {"sendera"}}, + {"segunda", {"2", "2a"}}, + {"segundo", {"2", "2o"}}, {"send", {"sendero"}}, {"sen", {"sente", "senator", "sentiers", "sentier", "sentes"}}, {"sent", {"sentier"}}, - {"seventh", {"7th"}}, - {"seventeenth", {"17th"}}, + {"séptima", {"7", "7a"}}, + {"séptimo", {"7", "7o"}}, {"se", {"southeast"}}, + {"seventeenth", {"17th"}}, + {"seventh", {"7th"}}, + {"sexta", {"6", "6a"}}, + {"sexto", {"6", "6o"}}, {"sgda", {"sagrada"}}, {"sg", {"schottergrube", "sungai", "sandgrube"}}, {"sgt", {"sagrat", "sergeant"}}, @@ -1059,8 +1112,8 @@ unordered_map> const kSynonyms = { {"shun", {"shunt"}}, {"shwy", {"state highway"}}, {"sídl", {"sídlisko", "sídliště"}}, - {"sixth", {"6th"}}, {"sixteenth", {"16th"}}, + {"sixth", {"6th"}}, {"sk", {"sokak", "sokağı"}}, {"skv", {"skveras"}}, {"slj", {"sobre-loja"}}, @@ -1087,14 +1140,12 @@ unordered_map> const kSynonyms = { {"spl", {"splaiul"}}, {"sp", {"strada provinciale", "szkoła podstawowa", "splaiul", "spodnja", "spodnji", "spitze", "spodnje"}}, {"sq", {"square", "superquadra"}}, - {"srª", {"senhora"}}, {"sra", {"senhora", "senora", "señora"}}, {"sr", {"srednje", "strada regionale", "senior", "srednja", "senhor", "srednji", "señor", "sister", "state route"}}, {"s", {"santo", "senhora", "sant'", "santa", "south", "são", "san", "södra", "senhor", "see"}}, {"ss", {"simpang susun", "santi", "strada statale", "saints"}}, {"śś", {"świętych", "święci"}}, {"s:ta", {"sankta"}}, - {"stª", {"santa"}}, {"sta", {"santa", "station"}}, {"stas", {"santas"}}, {"staz", {"stazione"}}, @@ -1105,7 +1156,6 @@ unordered_map> const kSynonyms = { {"sth", {"south"}}, {"stn", {"station"}}, {"sto", {"santo"}}, - {"stº", {"santo"}}, {"stos", {"santos"}}, {"strada", {"strada"}}, {"stra", {"strand", "strada"}}, @@ -1136,6 +1186,8 @@ unordered_map> const kSynonyms = { {"tcty", {"tổng công ty"}}, {"ten", {"tenente"}}, {"tenth", {"10th"}}, + {"tercera", {"3", "3a"}}, + {"tercero", {"3", "3o"}}, {"term", {"terminal"}}, {"terr", {"terrace"}}, {"ter", {"terrace"}}, @@ -1359,6 +1411,33 @@ unordered_map> const kSynonyms = { {"туп", {"тупик", "тупік"}}, {"ул", {"улица"}}, {"ш", {"шаша", "шосе", "шоссе"}}, + {"اثنان", {"2"}}, + {"اثنين", {"2"}}, + {"احد", {"1"}}, + {"اربع", {"4"}}, + {"الاحد", {"الحد"}}, + {"التلات", {"الثلاثاء"}}, + {"الثلاثاء", {"التلات"}}, + {"الحد", {"الاحد"}}, + {"تسع", {"9"}}, + {"ثلاث", {"3"}}, + {"ثمان", {"8"}}, + {"ثمانيه", {"8"}}, + {"ج", {"جامعه"}}, + {"حادى", {"1"}}, + {"ح", {"حى"}}, + {"خمس", {"5"}}, + {"د", {"دكتور"}}, + {"سبع", {"7"}}, + {"ست", {"6"}}, + {"ش", {"شارع"}}, + {"ط", {"طريق"}}, + {"عشر", {"10"}}, + {"عشرون", {"20"}}, + {"عشرين", {"20"}}, + {"ع", {"عماره"}}, + {"م", {"ميدان", "مجاوره", "محطه", "موقف"}}, + {"واحد", {"1"}}, {"ইউপি", {"ইউনিয়ন পরিষদ"}}, {"একনেক", {"জাতীয় অর্থনৈতিক পরিষদের নির্বাহী কমিটি"}}, {"টেশিস", {"টেলিফোন শিল্প সংস্থা"}}, @@ -1379,7 +1458,7 @@ unordered_map> const kSynonyms = { {"医", {"医療法人"}}, {"合", {"合同会社"}}, {"名", {"合名会社"}}, - {"大", {"国立大学法人", "公立大学法人","大学"}}, + {"大", {"国立大学法人", "公立大学法人", "大学"}}, {"学", {"学校法人"}}, {"小", {"小学校"}}, {"有", {"有限会社"}}, @@ -1390,33 +1469,6 @@ unordered_map> const kSynonyms = { {"銀", {"銀行"}}, {"高校", {"高等学校"}}, {"高", {"高等学校"}}, - {"ش", {"شارع"}}, - {"ط", {"طريق"}}, - {"م", {"ميدان", "مجاوره", "محطه", "موقف"}}, - {"د", {"دكتور"}}, - {"ج", {"جامعه"}}, - {"ح", {"حى"}}, - {"ع", {"عماره"}}, - {"احد", {"1"}}, - {"واحد", {"1"}}, - {"حادى", {"1"}}, - {"اثنين", {"2"}}, - {"اثنان", {"2"}}, - {"ثلاث", {"3"}}, - {"اربع", {"4"}}, - {"خمس", {"5"}}, - {"ست", {"6"}}, - {"سبع", {"7"}}, - {"ثمان", {"8"}}, - {"ثمانيه", {"8"}}, - {"تسع", {"9"}}, - {"عشر", {"10"}}, - {"عشرين", {"20"}}, - {"عشرون", {"20"}}, - {"الحد", {"الاحد"}}, - {"الاحد", {"الحد"}}, - {"التلات", {"الثلاثاء"}}, - {"الثلاثاء", {"التلات"}}, }; } // namespace From 48e1c1f3a5635f7fdb9b1813ae4e42c93eb526c4 Mon Sep 17 00:00:00 2001 From: matheusgomesms Date: Sun, 23 Nov 2025 11:17:15 +0100 Subject: [PATCH 41/91] [search] Add PT abbreviations Signed-off-by: matheusgomesms --- libs/search/query_params.cpp | 86 ++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/libs/search/query_params.cpp b/libs/search/query_params.cpp index 65140282e..f3ea74e11 100644 --- a/libs/search/query_params.cpp +++ b/libs/search/query_params.cpp @@ -21,53 +21,53 @@ unordered_map> const kSynonyms = { {"10a", {"décima"}}, {"10o", {"décimo"}}, {"10th", {"tenth"}}, - {"11a", {"undécima", "decimoprimera"}}, - {"11o", {"undécimo", "decimoprimero"}}, + {"11a", {"undécima", "decimoprimera", "décima primeira"}}, + {"11o", {"undécimo", "decimoprimero", "décimo primeiro"}}, {"11th", {"eleventh"}}, - {"12a", {"duodécima", "decimosegunda"}}, - {"12o", {"duodécimo", "decimosegundo"}}, + {"12a", {"duodécima", "decimosegunda", "décima segunda"}}, + {"12o", {"duodécimo", "decimosegundo", "décimo segundo"}}, {"12th", {"twelfth"}}, - {"13a", {"decimotercera"}}, - {"13o", {"decimotercero"}}, + {"13a", {"decimotercera", "décima terceira"}}, + {"13o", {"decimotercero", "décimo terceiro"}}, {"13th", {"thirteenth"}}, - {"14a", {"decimocuarta"}}, - {"14o", {"decimocuarto"}}, + {"14a", {"decimocuarta", "décima quarta"}}, + {"14o", {"decimocuarto", "décimo quarto"}}, {"14th", {"fourteenth"}}, - {"15a", {"decimoquinta"}}, - {"15o", {"decimoquinto"}}, + {"15a", {"decimoquinta", "décima quinta"}}, + {"15o", {"decimoquinto", "décimo quinto"}}, {"15th", {"fifteenth"}}, - {"16a", {"decimosexta"}}, - {"16o", {"decimosexto"}}, + {"16a", {"decimosexta", "décima sexta"}}, + {"16o", {"decimosexto", "décimo sexto"}}, {"16th", {"sixteenth"}}, - {"17a", {"decimoséptima"}}, - {"17o", {"decimoséptimo"}}, + {"17a", {"decimoséptima", "décima sétima"}}, + {"17o", {"decimoséptimo", "décimo sétimo"}}, {"17th", {"seventeenth"}}, - {"18a", {"decimoctava"}}, - {"18o", {"decimoctavo"}}, + {"18a", {"decimoctava", "décima oitava"}}, + {"18o", {"decimoctavo", "décimo oitavo"}}, {"18th", {"eighteenth"}}, - {"19a", {"decimonovena"}}, - {"19o", {"decimonoveno"}}, + {"19a", {"decimonovena", "décima nona"}}, + {"19o", {"decimonoveno", "décimo nono"}}, {"19th", {"nineteenth"}}, - {"1a", {"primera"}}, - {"1o", {"primo", "primero"}}, + {"1a", {"primera", "primeira"}}, + {"1o", {"primo", "primero", "primeiro"}}, {"1", {"pierwszy", "pierwsza", "un", "una", "uno", "pierwsze", "primo", "primer", "primero", "واحد", "حادى", "احد"}}, - {"1°", {"primo", "primero"}}, + {"1°", {"primo", "primero", "primeiro"}}, {"1st", {"first"}}, {"20th", {"twentieth"}}, {"20", {"venti", "veinte", "عشرين", "عشرون"}}, {"25", {"venticinque", "خمسه و عشرون", "خمس و عشرين"}}, {"2a", {"segunda"}}, - {"2", {"due", "drugi", "drugie", "druga", "dos", "segunda", "segundo", "اثنان", "اثنين"}}, + {"2", {"due", "drugi", "drugie", "druga", "dos", "dois", "segunda", "segundo", "اثنان", "اثنين"}}, {"2nd", {"second"}}, {"2o", {"segundo"}}, - {"3a", {"tercera"}}, - {"3o", {"tercero"}}, + {"3a", {"tercera", "terceira"}}, + {"3o", {"tercero", "terceiro"}}, {"3rd", {"third"}}, - {"3", {"trzecia", "trzecie", "tre", "trzeci", "tres", "tercera", "tercero", "ثلاث"}}, - {"4a", {"cuarta"}}, - {"4o", {"cuarto"}}, - {"4", {"quattro", "cuatro", "cuarta", "cuarto", "اربع"}}, + {"3", {"trzecia", "trzecie", "tre", "trzeci", "tres", "três", "tercera", "tercero", "terceira", "terceiro", "ثلاث"}}, + {"4a", {"cuarta", "quarta"}}, + {"4o", {"cuarto", "quarto"}}, + {"4", {"quattro", "cuatro", "cuarta", "cuarto", "quarta", "quarto", "اربع"}}, {"4th", {"fourth"}}, {"5a", {"quinta"}}, {"5", {"cinque", "cinco", "quinta", "quinto", "خمس"}}, @@ -77,17 +77,17 @@ unordered_map> const kSynonyms = { {"6o", {"sexto"}}, {"6", {"sei", "seis", "sexta", "secto", "ست"}}, {"6th", {"sixth"}}, - {"7a", {"séptima"}}, - {"7o", {"séptimo"}}, - {"7", {"sette", "siete", "séptima", "séptima", "سبع"}}, + {"7a", {"séptima", "sétima"}}, + {"7o", {"séptimo", "sétimo"}}, + {"7", {"sette", "siete", "sete", "séptima", "séptima", "سبع"}}, {"7th", {"seventh"}}, - {"8a", {"octava"}}, - {"8o", {"octavo"}}, + {"8a", {"octava", "oitava"}}, + {"8o", {"octavo", "oitavo"}}, {"8", {"otto", "ocho", "octava", "octavo", "ثمان", "ثمانيه"}}, {"8th", {"eighth"}}, - {"9a", {"novena"}}, - {"9o", {"noveno"}}, - {"9", {"nove", "nueve", "تسع", "nueve", "novena", "noveno"}}, + {"9a", {"novena", "nona"}}, + {"9o", {"noveno", "nono"}}, + {"9", {"nove", "nueve", "تسع", "nueve", "novena", "noveno", "nona", "nono"}}, {"9th", {"ninth"}}, {"a", {"am", "auto-estrada", "aikštė"}}, {"abe", {"abbaye"}}, @@ -809,6 +809,8 @@ unordered_map> const kSynonyms = { {"n", {"nowy", "nowa", "nossa", "norra", "número", "north", "nosso", "nacional", "nowe"}}, {"nö", {"niederösterreichischer", "niederösterreichisches", "niederösterreich", "niederösterreichische"}}, {"no", {"número"}}, + {"nona", {"9", "9a"}}, + {"nono", {"9", "9o"}}, {"nook", {"nook"}}, {"nördl", {"nördlicher", "nördliche", "nördliches"}}, {"novena", {"9", "9a"}}, @@ -834,6 +836,8 @@ unordered_map> const kSynonyms = { {"ob", {"oberer", "obere", "oberes"}}, {"octava", {"8", "8a"}}, {"octavo", {"8", "8o"}}, + {"oitava", {"8", "8a"}}, + {"oitavo", {"8", "8o"}}, {"ögv", {"österreichischer gebirgsverein"}}, {"olv", {"onze-lieve-vrouw"}}, {"o", {"ob"}}, @@ -996,6 +1000,8 @@ unordered_map> const kSynonyms = { {"qt", {"quảng trường"}}, {"quad", {"quad"}}, {"qua", {"quartier"}}, + {"quarta", {"4", "4a"}}, + {"quarto", {"4", "4o"}}, {"quinta", {"5", "5a"}}, {"quinto", {"5", "5o"}}, {"qu", {"quelle", "quai"}}, @@ -1072,7 +1078,7 @@ unordered_map> const kSynonyms = { {"sanat", {"sanatorio"}}, {"santu", {"santuario"}}, {"sarg", {"sargento"}}, - {"sa", {"sociedade anónima", "sociedad anónima","senhora"}}, + {"sa", {"sociedade anónima", "sociedade anônima", "sociedad anónima","senhora"}}, {"s:a", {"södra"}}, {"savinj", {"savinjski"}}, {"sbg", {"salzburger", "salzburg"}}, @@ -1089,6 +1095,7 @@ unordered_map> const kSynonyms = { {"sdn", {"sekolah dasar negeri"}}, {"sdr", {"søndre", "sønder"}}, {"sd", {"strand", "sekolah dasar"}}, + {"se", {"southeast"}}, {"second", {"2nd"}}, {"sect", {"sector"}}, {"sedra", {"sendera"}}, @@ -1099,7 +1106,8 @@ unordered_map> const kSynonyms = { {"sent", {"sentier"}}, {"séptima", {"7", "7a"}}, {"séptimo", {"7", "7o"}}, - {"se", {"southeast"}}, + {"sétima", {"7", "7a"}}, + {"sétimo", {"7", "7o"}}, {"seventeenth", {"17th"}}, {"seventh", {"7th"}}, {"sexta", {"6", "6a"}}, @@ -1186,6 +1194,8 @@ unordered_map> const kSynonyms = { {"tcty", {"tổng công ty"}}, {"ten", {"tenente"}}, {"tenth", {"10th"}}, + {"terceira", {"3", "3a"}}, + {"terceiro", {"3", "3o"}}, {"tercera", {"3", "3a"}}, {"tercero", {"3", "3o"}}, {"term", {"terminal"}}, From 3f7dc91b5bcad3b2c85a290d35f32376cbee1e87 Mon Sep 17 00:00:00 2001 From: x7z4w Date: Wed, 26 Nov 2025 20:22:14 +0000 Subject: [PATCH 42/91] [search] nits Signed-off-by: x7z4w --- libs/indexer/search_string_utils.cpp | 2 ++ libs/search/query_params.cpp | 27 ++++++++++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/libs/indexer/search_string_utils.cpp b/libs/indexer/search_string_utils.cpp index 5822c4228..df5114f6c 100644 --- a/libs/indexer/search_string_utils.cpp +++ b/libs/indexer/search_string_utils.cpp @@ -83,6 +83,7 @@ static std::pair const kPreprocessReplacements[] = { {MakeUniString("p.le"), MakeUniString("piazzale")}, {MakeUniString("p.º"), MakeUniString("paseo")}, {MakeUniString("p.º mar."), MakeUniString("paseo marítimo")}, + {MakeUniString("pol. ind"), MakeUniString("polígon industrial")}, {MakeUniString("p.s.p."), MakeUniString("polícia de segurança pública")}, {MakeUniString("p-ta"), MakeUniString("piața")}, {MakeUniString("p-ţa"), MakeUniString("piața")}, @@ -107,6 +108,7 @@ static std::pair const kPreprocessReplacements[] = { {MakeUniString("v.co"), MakeUniString("vico")}, {MakeUniString("v. d."), MakeUniString("van de")}, {MakeUniString("v.d"), MakeUniString("von der")}, + {MakeUniString("v.le"), MakeUniString("viale")}, {MakeUniString("v.lo"), MakeUniString("vicolo")}, {MakeUniString("w z"), MakeUniString("westzijde")}, {MakeUniString("w. z"), MakeUniString("westzijde")}, diff --git a/libs/search/query_params.cpp b/libs/search/query_params.cpp index f3ea74e11..7962926db 100644 --- a/libs/search/query_params.cpp +++ b/libs/search/query_params.cpp @@ -52,7 +52,6 @@ unordered_map> const kSynonyms = { {"1o", {"primo", "primero", "primeiro"}}, {"1", {"pierwszy", "pierwsza", "un", "una", "uno", "pierwsze", "primo", "primer", "primero", "واحد", "حادى", "احد"}}, - {"1°", {"primo", "primero", "primeiro"}}, {"1st", {"first"}}, {"20th", {"twentieth"}}, {"20", {"venti", "veinte", "عشرين", "عشرون"}}, @@ -64,7 +63,8 @@ unordered_map> const kSynonyms = { {"3a", {"tercera", "terceira"}}, {"3o", {"tercero", "terceiro"}}, {"3rd", {"third"}}, - {"3", {"trzecia", "trzecie", "tre", "trzeci", "tres", "três", "tercera", "tercero", "terceira", "terceiro", "ثلاث"}}, + {"3", + {"trzecia", "trzecie", "tre", "trzeci", "tres", "três", "tercera", "tercero", "terceira", "terceiro", "ثلاث"}}, {"4a", {"cuarta", "quarta"}}, {"4o", {"cuarto", "quarto"}}, {"4", {"quattro", "cuatro", "cuarta", "cuarto", "quarta", "quarto", "اربع"}}, @@ -86,8 +86,8 @@ unordered_map> const kSynonyms = { {"8", {"otto", "ocho", "octava", "octavo", "ثمان", "ثمانيه"}}, {"8th", {"eighth"}}, {"9a", {"novena", "nona"}}, - {"9o", {"noveno", "nono"}}, {"9", {"nove", "nueve", "تسع", "nueve", "novena", "noveno", "nona", "nono"}}, + {"9o", {"noveno", "nono"}}, {"9th", {"ninth"}}, {"a", {"am", "auto-estrada", "aikštė"}}, {"abe", {"abbaye"}}, @@ -153,8 +153,8 @@ unordered_map> const kSynonyms = { {"auto", {"autopista"}}, {"autop", {"autopista"}}, {"autov", {"autovía", "autovia"}}, - {"av", {"avinguda", "avenida", "avenue"}}, {"ava", {"avenida"}}, + {"av", {"avinguda", "avenida", "avenue"}}, {"avda", {"avinguda", "avenida"}}, {"avd", {"avinguda", "avenida"}}, {"ave", {"avenue"}}, @@ -241,7 +241,7 @@ unordered_map> const kSynonyms = { {"byp", {"bypass"}}, {"bywy", {"byway"}}, {"cac", {"cacique"}}, - {"ca", {"compañía anónima","companhia", "compañía"}}, + {"ca", {"compañía anónima", "companhia", "compañía"}}, {"cad", {"cadde"}}, {"cal", {"calea"}}, {"cale", {"cale"}}, @@ -647,7 +647,6 @@ unordered_map> const kSynonyms = { {"intg", {"interchange"}}, {"int", {"interior", "internationaler", "intrarea", "internationales", "internationale"}}, {"intl", {"international"}}, - {"intrarea", {"intrarea"}}, {"intr", {"intrarea"}}, {"ip", {"itinerário principal", "idrottsplats"}}, {"i", {"prima", "pierwszy", "pierwsza", "in", "island", "pierwsze", "primo", "im"}}, @@ -807,10 +806,10 @@ unordered_map> const kSynonyms = { {"nk", {"nook"}}, {"nms", {"neue mittelschule"}}, {"n", {"nowy", "nowa", "nossa", "norra", "número", "north", "nosso", "nacional", "nowe"}}, - {"nö", {"niederösterreichischer", "niederösterreichisches", "niederösterreich", "niederösterreichische"}}, - {"no", {"número"}}, {"nona", {"9", "9a"}}, + {"nö", {"niederösterreichischer", "niederösterreichisches", "niederösterreich", "niederösterreichische"}}, {"nono", {"9", "9o"}}, + {"no", {"número"}}, {"nook", {"nook"}}, {"nördl", {"nördlicher", "nördliche", "nördliches"}}, {"novena", {"9", "9a"}}, @@ -836,9 +835,9 @@ unordered_map> const kSynonyms = { {"ob", {"oberer", "obere", "oberes"}}, {"octava", {"8", "8a"}}, {"octavo", {"8", "8o"}}, + {"ögv", {"österreichischer gebirgsverein"}}, {"oitava", {"8", "8a"}}, {"oitavo", {"8", "8o"}}, - {"ögv", {"österreichischer gebirgsverein"}}, {"olv", {"onze-lieve-vrouw"}}, {"o", {"ob"}}, {"oö", {"oberösterreichisches", "oberösterreich", "oberösterreichische", "oberösterreichischer"}}, @@ -928,7 +927,6 @@ unordered_map> const kSynonyms = { {"pnt", {"pointe", "point"}}, {"pobl", {"població"}}, {"políg", {"polígono"}}, - {"pol. ind", {"polígon industrial"}}, {"pol", {"polígon"}}, {"pont", {"ponts", "pont"}}, {"po", {"post office", "paseo"}}, @@ -1033,7 +1031,8 @@ unordered_map> const kSynonyms = { {"rem", {"rempart"}}, {"rep", {"representative"}}, {"resid", {"residencial"}}, - {"res", {"reservation", "reserve", "reservoir", "résidence", "résidences", "residencias", "residencia", "residencial"}}, + {"res", + {"reservation", "reserve", "reservoir", "résidence", "résidences", "residencias", "residencia", "residencial"}}, {"rge", {"range"}}, {"rg", {"range"}}, {"rgwy", {"ridgeway"}}, @@ -1078,7 +1077,7 @@ unordered_map> const kSynonyms = { {"sanat", {"sanatorio"}}, {"santu", {"santuario"}}, {"sarg", {"sargento"}}, - {"sa", {"sociedade anónima", "sociedade anônima", "sociedad anónima","senhora"}}, + {"sa", {"sociedade anónima", "sociedade anônima", "sociedad anónima", "senhora"}}, {"s:a", {"södra"}}, {"savinj", {"savinjski"}}, {"sbg", {"salzburger", "salzburg"}}, @@ -1095,7 +1094,6 @@ unordered_map> const kSynonyms = { {"sdn", {"sekolah dasar negeri"}}, {"sdr", {"søndre", "sønder"}}, {"sd", {"strand", "sekolah dasar"}}, - {"se", {"southeast"}}, {"second", {"2nd"}}, {"sect", {"sector"}}, {"sedra", {"sendera"}}, @@ -1106,6 +1104,7 @@ unordered_map> const kSynonyms = { {"sent", {"sentier"}}, {"séptima", {"7", "7a"}}, {"séptimo", {"7", "7o"}}, + {"se", {"southeast"}}, {"sétima", {"7", "7a"}}, {"sétimo", {"7", "7o"}}, {"seventeenth", {"17th"}}, @@ -1264,7 +1263,6 @@ unordered_map> const kSynonyms = { {"up", {"upper"}}, {"urb", {"urbanização", "urbanització", "urbanización"}}, {"u", {"unteres", "unterer", "untere", "utca"}}, - {"vale", {"vale"}}, {"val", {"vallée", "vallon"}}, {"varful", {"vârful"}}, {"varf", {"vârful"}}, @@ -1297,7 +1295,6 @@ unordered_map> const kSynonyms = { {"vi", {"sesta", "sesto"}}, {"vlä", {"väylä"}}, {"vla", {"villa", "villas"}}, - {"v.le", {"viale"}}, {"vlls", {"villas"}}, {"vlt", {"vliet"}}, {"vl", {"vila"}}, From eaa56e5127627b7d85ac65cc3d5100b1754067b4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Mon, 24 Nov 2025 22:09:10 +0100 Subject: [PATCH 43/91] [android] Use Material switches in preference screens Signed-off-by: Jean-Baptiste --- android/app/src/main/res/values/styles.xml | 8 -------- android/app/src/main/res/xml/prefs_main.xml | 13 +++++++++++++ .../src/main/res/xml/prefs_voice_instructions.xml | 2 ++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 2aded6a25..979619951 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -386,14 +386,6 @@ false - - - - diff --git a/android/app/src/main/res/values/styles-text.xml b/android/app/src/main/res/values/styles-text.xml index 49bb5fba4..6e1577bcc 100644 --- a/android/app/src/main/res/values/styles-text.xml +++ b/android/app/src/main/res/values/styles-text.xml @@ -128,7 +128,6 @@ diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 979619951..23fad800c 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -68,7 +68,6 @@ ?buttonBackground @null @string/robotoMedium - true 0.04 @null @@ -87,7 +86,6 @@ ?clickableBackground @dimen/text_size_button ?buttonDialogTextColor - true @string/robotoMedium 2 center_vertical|end @@ -291,7 +289,6 @@ @@ -391,7 +388,6 @@ wrap_content ?accentButtonTextColor @null - false 20dp 16sp From fdb665317f4125c62fcc4ccca6228813f46abac7 Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Wed, 3 Dec 2025 12:55:02 +0700 Subject: [PATCH 60/91] [generator] Add a test generation flag Signed-off-by: Konstantin Pastbin --- .forgejo/workflows/map-generator.yml | 6 +++++ tools/unix/maps/docker_maps_generator.sh | 32 ++++++++++++------------ 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.forgejo/workflows/map-generator.yml b/.forgejo/workflows/map-generator.yml index 300711681..e4c0d2b88 100644 --- a/.forgejo/workflows/map-generator.yml +++ b/.forgejo/workflows/map-generator.yml @@ -17,6 +17,11 @@ on: - tiger - maps - upload + map-generator-test: + description: 'Test (non-prod) generation?' + required: false + default: false + type: boolean map-generator-continue: description: 'Continue previous map generation?' required: false @@ -43,6 +48,7 @@ env: WIKIMEDIA_PASSWORD: ${{ secrets.WIKIMEDIA_PASSWORD }} ZULIP_BOT_EMAIL: ${{ secrets.ZULIP_BOT_EMAIL }} ZULIP_API_KEY: ${{ secrets.ZULIP_API_KEY }} + MWMTEST: ${{ inputs.map-generator-test }} MWMCONTINUE: ${{ inputs.map-generator-continue }} MWMCOUNTRIES: ${{ inputs.map-generator-countries }} DEBIAN_FRONTEND: noninteractive diff --git a/tools/unix/maps/docker_maps_generator.sh b/tools/unix/maps/docker_maps_generator.sh index d0abc0b74..e1f588122 100644 --- a/tools/unix/maps/docker_maps_generator.sh +++ b/tools/unix/maps/docker_maps_generator.sh @@ -31,26 +31,26 @@ python3 -m venv /tmp/venv echo "<$(date +%T)> Copying map generator INI..." cp var/etc/map_generator.ini.prod var/etc/map_generator.ini +$GENARGS="" + +if [ $MWMTEST -gt 0 ]; then + echo "Marking as a test (non-prod) generation" + # TODO: output test maps into e.g. osm-maps-test/ and use a different generation.log + $GENARGS="$GENARGS -s=test" +fi -cd ~/comaps/tools/python if [ $MWMCONTINUE -gt 0 ]; then - -echo "<$(date +%T)> Continuing from preexisting generator run..." -/tmp/venv/bin/python -m maps_generator --skip="MwmDiffs" --continue - -else + echo "Continuing from preexisting generator run" + $GENARGS="$GENARGS --continue" +fi if [[ -n $MWMCOUNTRIES ]]; then - -echo "<$(date +%T)> Generating only specific maps [$MWMCOUNTRIES]..." -/tmp/venv/bin/python -m maps_generator --countries=$MWMCOUNTRIES --skip="MwmDiffs" - -else - -echo "<$(date +%T)> Generating maps..." -/tmp/venv/bin/python -m maps_generator --skip="MwmDiffs" - -fi + echo "Generating only specific maps for [$MWMCOUNTRIES]" + $GENARGS="$GENARGS --countries=$MWMCOUNTRIES" fi +cd ~/comaps/tools/python +echo "<$(date +%T)> Generating maps (extra args: $GENARGS)..." +/tmp/venv/bin/python -m maps_generator --skip="MwmDiffs" $GENARGS + echo "<$(date +%T)> DONE" From 47db332f095d99b6120d48ea70654f33e4bc26e5 Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Tue, 2 Dec 2025 17:28:36 +0700 Subject: [PATCH 61/91] [generator] Add chekboxes for all mapgen steps; separate pbf and o5m planet updates Signed-off-by: Konstantin Pastbin --- .forgejo/workflows/map-generator.yml | 345 ++++++++++++++++----------- 1 file changed, 206 insertions(+), 139 deletions(-) diff --git a/.forgejo/workflows/map-generator.yml b/.forgejo/workflows/map-generator.yml index e4c0d2b88..895ac2443 100644 --- a/.forgejo/workflows/map-generator.yml +++ b/.forgejo/workflows/map-generator.yml @@ -2,26 +2,51 @@ name: map-generator on: workflow_dispatch: # Manual trigger inputs: - jobs: - description: 'Which job(s) to run right now?' - required: true - default: 'all-except-upload' - type: choice - options: - - all-except-upload - - copy-coasts - - planet - - wiki - - isolines - - subways - - tiger - - maps - - upload map-generator-test: description: 'Test (non-prod) generation?' required: false default: false type: boolean + run-copy-coasts: + description: 'Copy last used coastlines?' + required: false + default: true + type: boolean + run-isolines: + description: 'Update altitude isolines?' + required: false + default: false + type: boolean + run-tiger: + description: 'Update TIGER address data?' + required: false + default: true + type: boolean + run-planet-pbf: + description: 'Update PBF planet (for Wiki & subways)?' + required: false + default: true + type: boolean + run-subways: + description: 'Update subways?' + required: false + default: true + type: boolean + run-wiki: + description: 'Update Wikipedia descriptions?' + required: false + default: true + type: boolean + run-planet-o5m: + description: 'Update O5M planet (for mapgen)?' + required: false + default: true + type: boolean + run-mapgen: + description: 'Run maps generation?' + required: false + default: true + type: boolean map-generator-continue: description: 'Continue previous map generation?' required: false @@ -31,6 +56,11 @@ on: description: 'Generate specific MWMs? (i.e. "US_New York_*, foo")' required: false type: string + run-upload: + description: 'Upload latest maps to CDN?' + required: false + default: false + type: boolean reset: description: 'Reset part of the system?' required: false @@ -88,11 +118,9 @@ jobs: git clone https://codeberg.org/comaps/subways.git copy-coasts: - if: inputs.jobs == 'copy-coasts' || inputs.jobs == 'all-except-upload' + if: inputs.run-copy-coasts name: Copy Previously Generated Coasts runs-on: mapfilemaker - needs: - - clone-repos container: image: codeberg.org/comaps/maps_generator:f6d53d54f794 volumes: @@ -112,7 +140,7 @@ jobs: echo "Before:" ls -al /home/planet/latest_coasts* - + # TODO: don't copy coasts from test generations cp -p /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.geom /home/planet/latest_coasts.geom cp -p /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.rawgeom /home/planet/latest_coasts.rawgeom @@ -125,12 +153,103 @@ jobs: fi - update-planet: - if: inputs.jobs == 'planet' || inputs.jobs == 'all-except-upload' - name: Update Planet + update-isolines: + if: inputs.run-isolines + name: Update Isolines runs-on: mapfilemaker needs: - clone-repos + container: + image: codeberg.org/comaps/maps_generator:f6d53d54f794 + volumes: + - /mnt/4tbexternal/:/mnt/4tbexternal/ + - /mnt/4tbexternal/osm-planet:/home/planet + concurrency: + group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + steps: + - uses: actions/cache@v4 + with: + path: "~" + key: cache-${{ github.run_id }}-${{ github.run_attempt }} + # TODO: we only need to update these if our SRTM or countries change + # TODO: after update, verify that sizable files exist: /home/planet/isolines/*.isolines + - name: Update Isolines + shell: bash + # TODO: preserve previous isolines version? + # TODO: cleanup the tmp-tiles dir after completion + run: | + cd ~/comaps/ + ./tools/unix/build_omim.sh -p ~ -R topography_generator_tool + rm -rf /home/planet/isolines/ + mkdir /home/planet/isolines/ + ~/omim-build-relwithdebinfo/topography_generator_tool \ + --profiles_path=./data/conf/isolines/isolines-profiles.json \ + --countries_to_generate_path=./data/conf/isolines/countries-to-generate.json \ + --tiles_isolines_out_dir=/home/planet/isolines/tmp-tiles/ \ + --countries_isolines_out_dir=/home/planet/isolines/ \ + --data_dir=./data/ \ + --srtm_path=/home/planet/SRTM-patched-europe/ \ + --threads=96 + - name: Check isolines + shell: bash + run: | + NUMISO=$(ls -al /home/planet/isolines/*.isolines | wc -l) + echo "Found $NUMISO isolines" + if [ $NUMISO -lt 10 ]; then + echo "ERROR: Did generation fail?" + exit 1 + fi + - name: Notify Zulip + run: | + curl -X POST https://comaps.zulipchat.com/api/v1/messages \ + -u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \ + --data-urlencode type=stream \ + --data-urlencode 'to="DevOps"' \ + --data-urlencode topic=codeberg-bot \ + --data-urlencode 'content=Isolines are done!' + + update-tiger: + if: inputs.run-tiger + name: Update TIGER + runs-on: mapfilemaker + needs: + - clone-repos + container: + image: codeberg.org/comaps/maps_generator:f6d53d54f794 + volumes: + - /mnt/4tbexternal/:/mnt/4tbexternal/ + - /mnt/4tbexternal/osm-planet:/home/planet + concurrency: + group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + steps: + - uses: actions/cache@v4 + with: + path: "~" + key: cache-${{ github.run_id }}-${{ github.run_attempt }} + - name: Build address_parser + shell: bash + run: | + cd ~/comaps + #rm -rf ~/omim-build-relwithdebinfo/CMakeCache.txt + #rm -rf ~/omim-build-relwithdebinfo/CMakeFiles + ./tools/unix/build_omim.sh -p ~ -R address_parser_tool + - name: Update TIGER from Nominatim + shell: bash + # TODO: use curl instead of wget2 + run: | + # TODO: maybe remove old osm-planet/tiger first? + cd /home/planet/ + mkdir -p tiger + wget2 https://nominatim.org/data/tiger-nominatim-preprocessed-latest.csv.tar.gz + cd ~/comaps + tar -xOzf /home/planet/tiger-nominatim-preprocessed-latest.csv.tar.gz | ~/omim-build-relwithdebinfo/address_parser_tool --output_path=/home/planet/tiger + + update-planet-pbf: + if: inputs.run-planet-pbf + name: Update PBF Planet + runs-on: mapfilemaker container: image: codeberg.org/comaps/maps_generator:f6d53d54f794 volumes: @@ -153,20 +272,13 @@ jobs: else echo "planet-latest.osm.pbf was found, raw download not required." fi - - name: Update Planet + - name: Update PBF Planet shell: bash run: | cd /home/planet/planet/ rm -f planet-latest-new.osm.pbf pyosmium-up-to-date planet-latest.osm.pbf -o planet-latest-new.osm.pbf -v --size 16384 mv planet-latest-new.osm.pbf planet-latest.osm.pbf - - name: Converting planet-latest.osm.pbf to planet.o5m - # TODO: better to run osmupdate (not convert) just before starting the maps jobs - for max fresh data. - run: | - echo "Starting..." - cd /home/planet/planet/ - osmconvert -v --drop-author --drop-version --hash-memory=4000 planet-latest.osm.pbf -o=planet.o5m - echo "Done." - name: Notify Zulip run: | curl -X POST https://comaps.zulipchat.com/api/v1/messages \ @@ -174,10 +286,44 @@ jobs: --data-urlencode type=stream \ --data-urlencode 'to="DevOps"' \ --data-urlencode topic=codeberg-bot \ - --data-urlencode 'content=Planet update is done!' + --data-urlencode 'content=PBF planet update is done!' + + update-subways: + if: inputs.run-subways + name: Update Subways + runs-on: mapfilemaker + needs: + - clone-repos + container: + image: codeberg.org/comaps/maps_generator:f6d53d54f794 + volumes: + - /mnt/4tbexternal/:/mnt/4tbexternal/ + - /mnt/4tbexternal/osm-planet:/home/planet + concurrency: + group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + steps: + - uses: actions/cache@v4 + with: + path: "~" + key: cache-${{ github.run_id }}-${{ github.run_attempt }} + - name: Update Subways + shell: bash + run: | + cd ~/comaps/ + cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh + ./tools/unix/maps/generate_subways.sh + - name: Notify Zulip + run: | + curl -X POST https://comaps.zulipchat.com/api/v1/messages \ + -u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \ + --data-urlencode type=stream \ + --data-urlencode 'to="DevOps"' \ + --data-urlencode topic=codeberg-bot \ + --data-urlencode 'content=Subways are done!' wiki-update: - if: inputs.jobs == 'wiki' || inputs.jobs == 'all-except-upload' + if: inputs.run-wiki name: Update Wikipedia runs-on: mapfilemaker needs: @@ -284,12 +430,10 @@ jobs: --data-urlencode topic=codeberg-bot \ --data-urlencode 'content=Wiki update is done!' - update-isolines: - if: inputs.jobs == 'isolines' || inputs.jobs == 'all-except-upload' - name: Update Isolines + update-planet-o5m: + if: inputs.run-planet-o5m + name: Update O5M Planet runs-on: mapfilemaker - needs: - - clone-repos container: image: codeberg.org/comaps/maps_generator:f6d53d54f794 volumes: @@ -299,38 +443,32 @@ jobs: group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true steps: - - uses: actions/cache@v4 - with: - path: "~" - key: cache-${{ github.run_id }}-${{ github.run_attempt }} - # TODO: we only need to update these if our SRTM or countries change - # TODO: after update, verify that sizable files exist: /home/planet/isolines/*.isolines - - name: Update Isolines - shell: bash - # TODO: preserve previous isolines version? - # TODO: cleanup the tmp-tiles dir after completion - run: | - cd ~/comaps/ - ./tools/unix/build_omim.sh -p ~ -R topography_generator_tool - rm -rf /home/planet/isolines/ - mkdir /home/planet/isolines/ - ~/omim-build-relwithdebinfo/topography_generator_tool \ - --profiles_path=./data/conf/isolines/isolines-profiles.json \ - --countries_to_generate_path=./data/conf/isolines/countries-to-generate.json \ - --tiles_isolines_out_dir=/home/planet/isolines/tmp-tiles/ \ - --countries_isolines_out_dir=/home/planet/isolines/ \ - --data_dir=./data/ \ - --srtm_path=/home/planet/SRTM-patched-europe/ \ - --threads=96 - - name: Check isolines + - name: Check for O5M Planet File shell: bash run: | - NUMISO=$(ls -al /home/planet/isolines/*.isolines | wc -l) - echo "Found $NUMISO isolines" - if [ $NUMISO -lt 10 ]; then - echo "ERROR: Did generation fail?" + if [ ! -f /home/planet/planet/planet.o5m ]; then + echo "WARN: No file at /home/planet/planet/planet.o5m" + + if [ ! -f /home/planet/planet/planet-latest.osm.pbf ]; then + echo "ERROR: No file at /home/planet/planet/planet-latest.osm.pbf" + ls -al /home/planet/ + ls -al /home/planet/planet/ exit 1 fi + + echo "Converting planet-latest.osm.pbf to planet.o5m" + cd /home/planet/planet/ + osmconvert -v --drop-author --drop-version --hash-memory=4000 planet-latest.osm.pbf -o=planet.o5m + echo "Conversion is done." + fi + - name: Update O5M planet + run: | + echo "Starting..." + cd /home/planet/planet/ + rm -f planet-new.o5m + osmupdate -v --drop-author --drop-version --hash-memory=4000 --max-merge=32 --out-o5m planet.o5m planet-new.o5m + mv planet-new.o5m planet.o5m + echo "Done." - name: Notify Zulip run: | curl -X POST https://comaps.zulipchat.com/api/v1/messages \ @@ -338,81 +476,10 @@ jobs: --data-urlencode type=stream \ --data-urlencode 'to="DevOps"' \ --data-urlencode topic=codeberg-bot \ - --data-urlencode 'content=Isolines are done!' - - update-subways: - if: inputs.jobs == 'subways' || inputs.jobs == 'all-except-upload' - name: Update Subways - runs-on: mapfilemaker - needs: - - clone-repos - container: - image: codeberg.org/comaps/maps_generator:f6d53d54f794 - volumes: - - /mnt/4tbexternal/:/mnt/4tbexternal/ - - /mnt/4tbexternal/osm-planet:/home/planet - concurrency: - group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - steps: - - uses: actions/cache@v4 - with: - path: "~" - key: cache-${{ github.run_id }}-${{ github.run_attempt }} - - name: Update Subways - shell: bash - run: | - cd ~/comaps/ - cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh - ./tools/unix/maps/generate_subways.sh - - name: Notify Zulip - run: | - curl -X POST https://comaps.zulipchat.com/api/v1/messages \ - -u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \ - --data-urlencode type=stream \ - --data-urlencode 'to="DevOps"' \ - --data-urlencode topic=codeberg-bot \ - --data-urlencode 'content=Subways are done!' - - update-tiger: - if: inputs.jobs == 'tiger' || inputs.jobs == 'all-except-upload' - name: Update TIGER - runs-on: mapfilemaker - needs: - - clone-repos - container: - image: codeberg.org/comaps/maps_generator:f6d53d54f794 - volumes: - - /mnt/4tbexternal/:/mnt/4tbexternal/ - - /mnt/4tbexternal/osm-planet:/home/planet - concurrency: - group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - steps: - - uses: actions/cache@v4 - with: - path: "~" - key: cache-${{ github.run_id }}-${{ github.run_attempt }} - - name: Build address_parser - shell: bash - run: | - cd ~/comaps - #rm -rf ~/omim-build-relwithdebinfo/CMakeCache.txt - #rm -rf ~/omim-build-relwithdebinfo/CMakeFiles - ./tools/unix/build_omim.sh -p ~ -R address_parser_tool - - name: Update TIGER from Nominatim - shell: bash - # TODO: use curl instead of wget2 - run: | - # TODO: maybe remove old osm-planet/tiger first? - cd /home/planet/ - mkdir -p tiger - wget2 https://nominatim.org/data/tiger-nominatim-preprocessed-latest.csv.tar.gz - cd ~/comaps - tar -xOzf /home/planet/tiger-nominatim-preprocessed-latest.csv.tar.gz | ~/omim-build-relwithdebinfo/address_parser_tool --output_path=/home/planet/tiger + --data-urlencode 'content=O5M planet update is done!' generate-maps: - if: inputs.jobs == 'maps' || inputs.jobs == 'all-except-upload' + if: inputs.run-mapgen name: Generate Maps runs-on: mapfilemaker needs: @@ -461,7 +528,7 @@ jobs: --data-urlencode 'content=Generator is done!' upload-maps: - if: inputs.jobs == 'upload' + if: inputs.run-upload name: Upload Maps runs-on: mapfilemaker container: From 038dca9c6f932830dd5cade0db1356c54134d95a Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Wed, 3 Dec 2025 18:45:05 +0700 Subject: [PATCH 62/91] [generator] Disable secondary action options Signed-off-by: Konstantin Pastbin --- .forgejo/workflows/map-generator.yml | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.forgejo/workflows/map-generator.yml b/.forgejo/workflows/map-generator.yml index 895ac2443..f0dc8fc86 100644 --- a/.forgejo/workflows/map-generator.yml +++ b/.forgejo/workflows/map-generator.yml @@ -7,11 +7,11 @@ on: required: false default: false type: boolean - run-copy-coasts: - description: 'Copy last used coastlines?' - required: false - default: true - type: boolean +# run-copy-coasts: +# description: 'Copy last used coastlines?' +# required: false +# default: true +# type: boolean run-isolines: description: 'Update altitude isolines?' required: false @@ -52,23 +52,23 @@ on: required: false default: false type: boolean - map-generator-countries: - description: 'Generate specific MWMs? (i.e. "US_New York_*, foo")' - required: false - type: string +# map-generator-countries: +# description: 'Generate specific MWMs? (i.e. "US_New York_*, foo")' +# required: false +# type: string run-upload: description: 'Upload latest maps to CDN?' required: false default: false type: boolean - reset: - description: 'Reset part of the system?' - required: false - default: 'no' - type: choice - options: - - 'no' - - wiki-ratelimit +# reset: +# description: 'Reset part of the system?' +# required: false +# default: 'no' +# type: choice +# options: +# - 'no' +# - wiki-ratelimit ## RCLONE_CONF is multi-line text containing keys and credentials for us2,ru1,fi1,de1 servers @@ -80,7 +80,7 @@ env: ZULIP_API_KEY: ${{ secrets.ZULIP_API_KEY }} MWMTEST: ${{ inputs.map-generator-test }} MWMCONTINUE: ${{ inputs.map-generator-continue }} - MWMCOUNTRIES: ${{ inputs.map-generator-countries }} + # MWMCOUNTRIES: ${{ inputs.map-generator-countries }} DEBIAN_FRONTEND: noninteractive TZ: Etc/UTC @@ -118,7 +118,7 @@ jobs: git clone https://codeberg.org/comaps/subways.git copy-coasts: - if: inputs.run-copy-coasts + # if: inputs.run-copy-coasts name: Copy Previously Generated Coasts runs-on: mapfilemaker container: From b54b77bce6493746def49582eb8f499ed7a3b6b1 Mon Sep 17 00:00:00 2001 From: thesupertechie Date: Wed, 3 Dec 2025 17:25:38 +0100 Subject: [PATCH 63/91] [docs][strings] Correct typos Signed-off-by: thesupertechie Co-authored-by: thesupertechie Co-committed-by: thesupertechie --- CONTRIBUTORS | 5 +++-- .../en-GB.lproj/Localizable.strings | 20 +++++++++---------- .../en.lproj/Localizable.strings | 20 +++++++++---------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index aaaadbf1e..0494e23a6 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,15 +1,16 @@ This file contains a list of people who have contributed to this project. -Its not neccesarily comprehensive. +It is not necessarily comprehensive as contributors must manually add themselves. Feel free to add yourself here along with your first contribution! -------------------------------------------------------------------------------- CoMaps contributors: -(in alphabetic order) +(in alphabetical order) -------------------------------------------------------------------------------- Bastian Greshake Tzovaras clover sage Harry Bond +thesupertechie vikiawv Yannik Bloscheck diff --git a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings index 0bba18f8f..eed84d074 100644 --- a/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en-GB.lproj/Localizable.strings @@ -541,8 +541,8 @@ /* Voice */ "voice" = "Voice"; -"voice_explanation" = "It's possible to pick a better voice in the system settings under *Accesibility*, *Read & Speak*, *Voices*."; -"voice_explanation_before_version26" = "It's possible to pick a better voice in the system settings under *Accesibility*, *Spoken Content*, *Voices*."; +"voice_explanation" = "It's possible to pick a better voice in the system settings under *Accessibility*, *Read & Speak*, *Voices*."; +"voice_explanation_before_version26" = "It's possible to pick a better voice in the system settings under *Accessibility*, *Spoken Content*, *Voices*."; "unknown" = "Unknown"; /* Place page confirmation messages and time ago formatting */ @@ -1045,25 +1045,25 @@ /* Message for the bug report alert. */ "bugreport_alert_message" = "Would you like to send a bug report to the developers?\nWe rely on our users as CoMaps doesn't collect any error information automatically. Thank you in advance for supporting CoMaps!"; -/* Title for the iCloud syncronization setting */ -"icloud_sync" = "iCloud Syncronization (Beta)"; +/* Title for the iCloud synchronization setting */ +"icloud_sync" = "iCloud Synchronization (Beta)"; -/* Title for the "Enable iCloud Syncronization" alert. */ -"enable_icloud_synchronization_title" = "Enable iCloud Syncronization"; +/* Title for the "Enable iCloud Synchronization" alert. */ +"enable_icloud_synchronization_title" = "Enable iCloud Synchronization"; -/* Message for the "Enable iCloud Syncronization" alert. */ +/* Message for the "Enable iCloud Synchronization" alert. */ "enable_icloud_synchronization_message" = "iCloud synchronization is an experimental feature under development. Make sure that you have made a backup of all your bookmarks and tracks."; /* Title for the "iCloud Is Disabled" alert. */ "icloud_disabled_title" = "iCloud Is Disabled"; /* Message for the "iCloud is Disabled" alert. */ -"icloud_disabled_message" = "Please enable iCloud in your device's settings to use this feature."; +"icloud_disabled_message" = "Please enable iCloud for CoMaps in your Apple Account's settings to use this feature."; -/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */ +/* Title for the "Enable iCloud Synchronization" alert's "Enable" action button. */ "enable" = "Enable"; -/* Title for the "Enable iCloud Syncronization" alert's "Backup" action button. */ +/* Title for the "Enable iCloud Synchronization" alert's "Backup" action button. */ "backup" = "Backup"; /* Title for the "iCloud synchronization failure" alert. */ diff --git a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings index 426e9dfef..1cd8cc179 100644 --- a/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/en.lproj/Localizable.strings @@ -560,8 +560,8 @@ /* Voice */ "voice" = "Voice"; -"voice_explanation" = "It's possible to pick a better voice in the system settings under *Accesibility*, *Read & Speak*, *Voices*."; -"voice_explanation_before_version26" = "It's possible to pick a better voice in the system settings under *Accesibility*, *Spoken Content*, *Voices*."; +"voice_explanation" = "It's possible to pick a better voice in the system settings under *Accessibility*, *Read & Speak*, *Voices*."; +"voice_explanation_before_version26" = "It's possible to pick a better voice in the system settings under *Accessibility*, *Spoken Content*, *Voices*."; "unknown" = "Unknown"; /* Place page confirmation messages and time ago formatting */ @@ -1070,25 +1070,25 @@ /* Message for the bug report alert. */ "bugreport_alert_message" = "Would you like to send a bug report to the developers?\nWe rely on our users as CoMaps doesn't collect any error information automatically. Thank you in advance for supporting CoMaps!"; -/* Title for the iCloud syncronization setting */ -"icloud_sync" = "iCloud Syncronization (Beta)"; +/* Title for the iCloud synchronization setting */ +"icloud_sync" = "iCloud Synchronization (Beta)"; -/* Title for the "Enable iCloud Syncronization" alert. */ -"enable_icloud_synchronization_title" = "Enable iCloud Syncronization"; +/* Title for the "Enable iCloud Synchronization" alert. */ +"enable_icloud_synchronization_title" = "Enable iCloud Synchronization"; -/* Message for the "Enable iCloud Syncronization" alert. */ +/* Message for the "Enable iCloud Synchronization" alert. */ "enable_icloud_synchronization_message" = "iCloud synchronization is an experimental feature under development. Make sure that you have made a backup of all your bookmarks and tracks."; /* Title for the "iCloud Is Disabled" alert. */ "icloud_disabled_title" = "iCloud Is Disabled"; /* Message for the "iCloud is Disabled" alert. */ -"icloud_disabled_message" = "Please enable iCloud in your device's settings to use this feature."; +"icloud_disabled_message" = "Please enable iCloud for CoMaps in your Apple Account's settings to use this feature."; -/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */ +/* Title for the "Enable iCloud Synchronization" alert's "Enable" action button. */ "enable" = "Enable"; -/* Title for the "Enable iCloud Syncronization" alert's "Backup" action button. */ +/* Title for the "Enable iCloud Synchronization" alert's "Backup" action button. */ "backup" = "Backup"; /* Title for the "iCloud synchronization failure" alert. */ From ce9af79a6811308a83fd5cb4272568db6d4cc2b9 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Mon, 1 Dec 2025 19:55:16 +0100 Subject: [PATCH 64/91] [android] Migrate view on map button to M3 Signed-off-by: Jean-Baptiste --- android/app/src/main/res/layout/show_on_map_fab.xml | 5 ++--- android/app/src/main/res/values-night/themes.xml | 2 +- android/app/src/main/res/values/styles.xml | 13 +------------ 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/android/app/src/main/res/layout/show_on_map_fab.xml b/android/app/src/main/res/layout/show_on_map_fab.xml index 2d1e27803..15553a920 100644 --- a/android/app/src/main/res/layout/show_on_map_fab.xml +++ b/android/app/src/main/res/layout/show_on_map_fab.xml @@ -6,9 +6,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/search_show_on_map" - style="@style/FAB" + style="@style/MwmWidget.ExtendedFAB" app:icon="@drawable/ic_show_on_map" android:text="@string/search_show_on_map" android:clickable="true" - android:focusable="true" - app:fabSize="mini"/> + android:focusable="true" /> diff --git a/android/app/src/main/res/values-night/themes.xml b/android/app/src/main/res/values-night/themes.xml index 6bd0730eb..65152f9ed 100644 --- a/android/app/src/main/res/values-night/themes.xml +++ b/android/app/src/main/res/values-night/themes.xml @@ -1,7 +1,7 @@ -