name-suggestion-index
Advanced tools
Comparing version 3.5.0 to 3.6.0
@@ -138,2 +138,14 @@ { | ||
}, | ||
"amenity/cafe|Boston Tea Party": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"amenity": "cafe", | ||
"brand": "Boston Tea Party", | ||
"brand:wikidata": "Q23461358", | ||
"brand:wikipedia": "en:Boston Tea Party (café chain)", | ||
"cuisine": "coffee_shop", | ||
"name": "Boston Tea Party", | ||
"takeaway": "yes" | ||
} | ||
}, | ||
"amenity/cafe|Bridgehead": { | ||
@@ -218,2 +230,11 @@ "countryCodes": ["ca"], | ||
}, | ||
"amenity/cafe|Café de la Mairie": { | ||
"tags": { | ||
"amenity": "cafe", | ||
"brand": "Café de la Mairie", | ||
"cuisine": "coffee_shop", | ||
"name": "Café de la Mairie", | ||
"takeaway": "yes" | ||
} | ||
}, | ||
"amenity/cafe|Café de la Poste": { | ||
@@ -372,2 +393,18 @@ "tags": { | ||
}, | ||
"amenity/cafe|Coffee#1": { | ||
"countryCodes": ["gb"], | ||
"matchNames": [ | ||
"coffee number 1", | ||
"coffee number one" | ||
], | ||
"tags": { | ||
"amenity": "cafe", | ||
"brand": "Coffee#1", | ||
"brand:wikidata": "Q22032058", | ||
"brand:wikipedia": "en:Coffee 1", | ||
"cuisine": "coffee_shop", | ||
"name": "Coffee#1", | ||
"takeaway": "yes" | ||
} | ||
}, | ||
"amenity/cafe|Cofix": { | ||
@@ -374,0 +411,0 @@ "countryCodes": ["il", "ru"], |
@@ -21,2 +21,9 @@ { | ||
}, | ||
"amenity/car_rental|Buchbinder": { | ||
"tags": { | ||
"amenity": "car_rental", | ||
"brand": "Buchbinder", | ||
"name": "Buchbinder" | ||
} | ||
}, | ||
"amenity/car_rental|Budget": { | ||
@@ -23,0 +30,0 @@ "matchNames": ["budget car rental"], |
@@ -46,2 +46,12 @@ { | ||
}, | ||
"amenity/cinema|CGR": { | ||
"countryCodes": ["fr"], | ||
"tags": { | ||
"amenity": "cinema", | ||
"brand": "CGR", | ||
"brand:wikidata": "Q2931406", | ||
"brand:wikipedia": "fr:Circuit Georges-Raymond", | ||
"name": "CGR Cinémas" | ||
} | ||
}, | ||
"amenity/cinema|Caribbean Cinemas": { | ||
@@ -48,0 +58,0 @@ "countryCodes": [ |
@@ -110,3 +110,2 @@ { | ||
"cuisine": "ice_cream", | ||
"delivery": "yes", | ||
"name": "Carvel", | ||
@@ -113,0 +112,0 @@ "takeaway": "yes" |
@@ -1659,2 +1659,10 @@ { | ||
}, | ||
"amenity/pharmacy|Экона": { | ||
"tags": { | ||
"amenity": "pharmacy", | ||
"brand": "Экона", | ||
"healthcare": "pharmacy", | ||
"name": "Экона" | ||
} | ||
}, | ||
"amenity/pharmacy|סופר-פארם": { | ||
@@ -1661,0 +1669,0 @@ "countryCodes": ["il"], |
@@ -238,2 +238,14 @@ { | ||
}, | ||
"amenity/post_office|PHLPost": { | ||
"countryCodes": ["ph"], | ||
"matchNames": ["phl"], | ||
"tags": { | ||
"amenity": "post_office", | ||
"brand": "PHLPost", | ||
"brand:wikidata": "Q1406037", | ||
"brand:wikipedia": "en:Philippine Postal Corporation", | ||
"name": "PHLPost", | ||
"official_name": "Philippine Postal Corporation" | ||
} | ||
}, | ||
"amenity/post_office|PTT": { | ||
@@ -240,0 +252,0 @@ "nomatch": ["amenity/fuel|PTT"], |
@@ -120,2 +120,9 @@ { | ||
}, | ||
"amenity/vending_machine|Foxpost": { | ||
"tags": { | ||
"amenity": "vending_machine", | ||
"brand": "Foxpost", | ||
"name": "Foxpost" | ||
} | ||
}, | ||
"amenity/vending_machine|Home City Ice": { | ||
@@ -122,0 +129,0 @@ "countryCodes": ["us"], |
{ | ||
"leisure/bowling_alley|Hollywood Bowl": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Hollywood Bowl", | ||
"brand:wikidata": "Q80971952", | ||
"brand:wikipedia": "en:Hollywood Bowl Group", | ||
"leisure": "bowling_alley", | ||
"name": "Hollywood Bowl" | ||
} | ||
}, | ||
"leisure/bowling_alley|Strike Bowling Bar": { | ||
@@ -3,0 +13,0 @@ "countryCodes": ["au"], |
@@ -6,4 +6,3 @@ { | ||
"office/financial", | ||
"office/tax_adivsor", | ||
"office/yes" | ||
"office/tax_adivsor" | ||
], | ||
@@ -22,4 +21,3 @@ "tags": { | ||
"office/financial", | ||
"office/tax_adivsor", | ||
"office/yes" | ||
"office/tax_adivsor" | ||
], | ||
@@ -39,4 +37,3 @@ "tags": { | ||
"office/it", | ||
"office/telecommunication", | ||
"office/yes" | ||
"office/telecommunication" | ||
], | ||
@@ -56,4 +53,3 @@ "tags": { | ||
"office/financial", | ||
"office/tax_adivsor", | ||
"office/yes" | ||
"office/tax_adivsor" | ||
], | ||
@@ -72,4 +68,3 @@ "tags": { | ||
"office/financial", | ||
"office/tax_adivsor", | ||
"office/yes" | ||
"office/tax_adivsor" | ||
], | ||
@@ -76,0 +71,0 @@ "tags": { |
@@ -6,2 +6,3 @@ { | ||
"brand": "Bairstow Eves", | ||
"brand:wikidata": "Q81074787", | ||
"name": "Bairstow Eves", | ||
@@ -73,2 +74,12 @@ "office": "estate_agent" | ||
}, | ||
"office/estate_agent|Greenslade Taylor Hunt": { | ||
"countryCodes": ["gb"], | ||
"matchNames": ["gth"], | ||
"tags": { | ||
"brand": "Greenslade Taylor Hunt", | ||
"brand:wikidata": "Q81052826", | ||
"name": "Greenslade Taylor Hunt", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|Guy Hoquet": { | ||
@@ -112,2 +123,4 @@ "countryCodes": ["fr"], | ||
"brand": "Harcourts", | ||
"brand:wikidata": "Q5655056", | ||
"brand:wikipedia": "en:Harcourts International", | ||
"name": "Harcourts", | ||
@@ -146,2 +159,11 @@ "office": "estate_agent" | ||
}, | ||
"office/estate_agent|Martin & Co": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Martin & Co", | ||
"brand:wikidata": "Q81066918", | ||
"name": "Martin & Co", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|Orpi": { | ||
@@ -157,2 +179,11 @@ "countryCodes": ["fr"], | ||
}, | ||
"office/estate_agent|Palmer Snell": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Palmer Snell", | ||
"brand:wikidata": "Q81068923", | ||
"name": "Palmer Snell", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|RE/MAX": { | ||
@@ -171,2 +202,3 @@ "tags": { | ||
"brand": "Ray White", | ||
"brand:wikidata": "Q81077729", | ||
"name": "Ray White", | ||
@@ -196,2 +228,11 @@ "office": "estate_agent" | ||
}, | ||
"office/estate_agent|Stirling Ackroyd": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Stirling Ackroyd", | ||
"brand:wikidata": "Q81062228", | ||
"name": "Stirling Ackroyd", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|Tecnocasa": { | ||
@@ -207,2 +248,29 @@ "countryCodes": ["es", "it", "pl"], | ||
}, | ||
"office/estate_agent|Townends": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Townends", | ||
"brand:wikidata": "Q81061275", | ||
"name": "Townends", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|Webbers": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Webbers", | ||
"brand:wikidata": "Q81068176", | ||
"name": "Webbers", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|William H. Brown": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "William H. Brown", | ||
"brand:wikidata": "Q81787271", | ||
"name": "William H. Brown", | ||
"office": "estate_agent" | ||
} | ||
}, | ||
"office/estate_agent|Your Move": { | ||
@@ -212,2 +280,3 @@ "countryCodes": ["gb"], | ||
"brand": "Your Move", | ||
"brand:wikidata": "Q81078416", | ||
"name": "Your Move", | ||
@@ -214,0 +283,0 @@ "office": "estate_agent" |
@@ -14,2 +14,9 @@ { | ||
}, | ||
"shop/beauty|Body Minute": { | ||
"tags": { | ||
"brand": "Body Minute", | ||
"name": "Body Minute", | ||
"shop": "beauty" | ||
} | ||
}, | ||
"shop/beauty|European Wax Center": { | ||
@@ -16,0 +23,0 @@ "countryCodes": ["us"], |
@@ -42,2 +42,21 @@ { | ||
}, | ||
"shop/bed|Grand Litier": { | ||
"countryCodes": ["fr"], | ||
"tags": { | ||
"brand": "Grand Litier", | ||
"brand:wikidata": "Q21030208", | ||
"brand:wikipedia": "fr:Grand Litier", | ||
"name": "Grand Litier", | ||
"shop": "bed" | ||
} | ||
}, | ||
"shop/bed|Maison de la Literie": { | ||
"countryCodes": ["fr"], | ||
"tags": { | ||
"brand": "Maison de la Literie", | ||
"brand:wikidata": "Q80955776", | ||
"name": "Maison de la Literie", | ||
"shop": "bed" | ||
} | ||
}, | ||
"shop/bed|Matratzen Concord": { | ||
@@ -44,0 +63,0 @@ "countryCodes": ["at", "ch", "de"], |
@@ -10,2 +10,9 @@ { | ||
}, | ||
"shop/beverages|CoCo都可": { | ||
"tags": { | ||
"brand": "CoCo都可", | ||
"name": "CoCo都可", | ||
"shop": "beverages" | ||
} | ||
}, | ||
"shop/beverages|Dursty": { | ||
@@ -12,0 +19,0 @@ "countryCodes": ["de"], |
@@ -62,2 +62,21 @@ { | ||
}, | ||
"shop/car_parts|Euro Car Parts": { | ||
"countryCodes": ["gb", "ie"], | ||
"tags": { | ||
"brand": "Euro Car Parts", | ||
"brand:wikidata": "Q23782692", | ||
"brand:wikipedia": "en:Euro Car Parts", | ||
"name": "Euro Car Parts", | ||
"shop": "car_parts" | ||
} | ||
}, | ||
"shop/car_parts|GSF Car Parts": { | ||
"countryCodes": ["gb", "ie"], | ||
"tags": { | ||
"brand": "GSF Car Parts", | ||
"brand:wikidata": "Q80963064", | ||
"name": "GSF Car Parts", | ||
"shop": "car_parts" | ||
} | ||
}, | ||
"shop/car_parts|Halfords": { | ||
@@ -132,2 +151,11 @@ "countryCodes": ["gb", "ie"], | ||
}, | ||
"shop/car_parts|The Parts Alliance": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "The Parts Alliance", | ||
"brand:wikidata": "Q80964997", | ||
"name": "The Parts Alliance", | ||
"shop": "car_parts" | ||
} | ||
}, | ||
"shop/car_parts|Tokić": { | ||
@@ -134,0 +162,0 @@ "countryCodes": ["ba", "hr"], |
@@ -379,3 +379,3 @@ { | ||
"brand:wikidata": "Q6686", | ||
"brand:wikipedia": "en:Renault", | ||
"brand:wikipedia": "fr:Renault", | ||
"name": "Renault", | ||
@@ -493,2 +493,11 @@ "shop": "car_repair" | ||
}, | ||
"shop/car_repair|Vulco": { | ||
"countryCodes": ["fr"], | ||
"tags": { | ||
"brand": "Vulco", | ||
"brand:wikidata": "Q80184403", | ||
"name": "Vulco", | ||
"shop": "car_repair" | ||
} | ||
}, | ||
"shop/car_repair|pitstop": { | ||
@@ -495,0 +504,0 @@ "countryCodes": ["de"], |
@@ -382,3 +382,3 @@ { | ||
"brand:wikidata": "Q6686", | ||
"brand:wikipedia": "en:Renault", | ||
"brand:wikipedia": "fr:Renault", | ||
"name": "Renault", | ||
@@ -385,0 +385,0 @@ "shop": "car" |
@@ -114,2 +114,9 @@ { | ||
}, | ||
"shop/confectionery|Лакомка": { | ||
"tags": { | ||
"brand": "Лакомка", | ||
"name": "Лакомка", | ||
"shop": "confectionery" | ||
} | ||
}, | ||
"shop/confectionery|シャトレーゼ": { | ||
@@ -116,0 +123,0 @@ "countryCodes": ["jp"], |
@@ -114,2 +114,12 @@ { | ||
}, | ||
"shop/department_store|BrightHouse": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "BrightHouse", | ||
"brand:wikidata": "Q4967357", | ||
"brand:wikipedia": "en:BrightHouse (retailer)", | ||
"name": "BrightHouse", | ||
"shop": "department_store" | ||
} | ||
}, | ||
"shop/department_store|Canadian Tire": { | ||
@@ -291,2 +301,12 @@ "countryCodes": ["ca"], | ||
}, | ||
"shop/department_store|House of Fraser": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "House of Fraser", | ||
"brand:wikidata": "Q5928422", | ||
"brand:wikipedia": "en:House of Fraser", | ||
"name": "House of Fraser", | ||
"shop": "department_store" | ||
} | ||
}, | ||
"shop/department_store|Hudson's Bay": { | ||
@@ -322,2 +342,3 @@ "countryCodes": ["ca", "nl"], | ||
"name": "John Lewis", | ||
"official_name": "John Lewis & Partners", | ||
"shop": "department_store" | ||
@@ -324,0 +345,0 @@ } |
@@ -21,2 +21,23 @@ { | ||
"shop/doityourself|Bauhaus": { | ||
"countryCodes": [ | ||
"at", | ||
"bg", | ||
"ch", | ||
"cz", | ||
"de", | ||
"dk", | ||
"ee", | ||
"es", | ||
"fi", | ||
"hr", | ||
"hu", | ||
"is", | ||
"lu", | ||
"nl", | ||
"no", | ||
"se", | ||
"si", | ||
"sk", | ||
"tr" | ||
], | ||
"tags": { | ||
@@ -55,3 +76,3 @@ "brand": "Bauhaus", | ||
"brand:wikidata": "Q2889702", | ||
"brand:wikipedia": "en:Brico Dépôt", | ||
"brand:wikipedia": "fr:Brico Dépôt", | ||
"name": "Brico Dépôt", | ||
@@ -102,2 +123,3 @@ "shop": "doityourself" | ||
"shop/doityourself|Castorama": { | ||
"countryCodes": ["fr", "pl", "ru"], | ||
"tags": { | ||
@@ -130,2 +152,3 @@ "brand": "Castorama", | ||
"shop/doityourself|Easy": { | ||
"countryCodes": ["ar", "cl", "co"], | ||
"tags": { | ||
@@ -255,2 +278,13 @@ "brand": "Easy", | ||
"shop/doityourself|Hornbach": { | ||
"countryCodes": [ | ||
"at", | ||
"ch", | ||
"cz", | ||
"de", | ||
"lu", | ||
"nl", | ||
"ro", | ||
"se", | ||
"sk" | ||
], | ||
"tags": { | ||
@@ -431,2 +465,11 @@ "brand": "Hornbach", | ||
"shop/doityourself|Sodimac": { | ||
"countryCodes": [ | ||
"ar", | ||
"br", | ||
"cl", | ||
"co", | ||
"mx", | ||
"pe", | ||
"uy" | ||
], | ||
"matchNames": ["sodimac constructor"], | ||
@@ -433,0 +476,0 @@ "tags": { |
@@ -56,3 +56,3 @@ { | ||
"shop/frozen_food|Picard": { | ||
"countryCodes": ["fr"], | ||
"countryCodes": ["be", "fr", "lu"], | ||
"tags": { | ||
@@ -65,3 +65,13 @@ "brand": "Picard", | ||
} | ||
}, | ||
"shop/frozen_food|Thiriet": { | ||
"countryCodes": ["fr"], | ||
"tags": { | ||
"brand": "Thiriet", | ||
"brand:wikidata": "Q3524695", | ||
"brand:wikipedia": "fr:Thiriet (entreprise)", | ||
"name": "Thiriet", | ||
"shop": "frozen_food" | ||
} | ||
} | ||
} |
@@ -349,2 +349,12 @@ { | ||
}, | ||
"shop/furniture|Laura Ashley Home": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Laura Ashley", | ||
"brand:wikidata": "Q1523089", | ||
"brand:wikipedia": "en:Laura Ashley plc", | ||
"name": "Laura Ashley Home", | ||
"shop": "furniture" | ||
} | ||
}, | ||
"shop/furniture|Leen Bakker": { | ||
@@ -429,2 +439,18 @@ "countryCodes": ["nl"], | ||
}, | ||
"shop/furniture|Poltronesofà": { | ||
"countryCodes": [ | ||
"be", | ||
"ch", | ||
"cy", | ||
"fr", | ||
"it", | ||
"mt" | ||
], | ||
"tags": { | ||
"brand": "Poltronesofà", | ||
"brand:wikidata": "Q80833069", | ||
"name": "Poltronesofà", | ||
"shop": "furniture" | ||
} | ||
}, | ||
"shop/furniture|Pottery Barn": { | ||
@@ -431,0 +457,0 @@ "countryCodes": [ |
@@ -12,2 +12,10 @@ { | ||
}, | ||
"shop/garden_centre|Blue Diamond Garden Centres": { | ||
"tags": { | ||
"brand": "Blue Diamond Garden Centres", | ||
"brand:wikidata": "Q81097207", | ||
"name": "Blue Diamond Garden Centres", | ||
"shop": "garden_centre" | ||
} | ||
}, | ||
"shop/garden_centre|Dehner": { | ||
@@ -63,2 +71,11 @@ "countryCodes": ["at", "de"], | ||
}, | ||
"shop/garden_centre|Otter Garden Centres": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Otter Garden Centres", | ||
"brand:wikidata": "Q81095450", | ||
"name": "Otter Garden Centres", | ||
"shop": "garden_centre" | ||
} | ||
}, | ||
"shop/garden_centre|Point Vert": { | ||
@@ -65,0 +82,0 @@ "countryCodes": ["fr"], |
@@ -108,3 +108,2 @@ { | ||
"brand": "Old Time Pottery", | ||
"brand:website": "http://www.oldtimepottery.com", | ||
"brand:wikidata": "Q7085222", | ||
@@ -111,0 +110,0 @@ "brand:wikipedia": "en:Old Time Pottery", |
@@ -12,2 +12,9 @@ { | ||
}, | ||
"shop/kiosk|Lotto": { | ||
"tags": { | ||
"brand": "Lotto", | ||
"name": "Lotto", | ||
"shop": "kiosk" | ||
} | ||
}, | ||
"shop/kiosk|Narvesen": { | ||
@@ -14,0 +21,0 @@ "countryCodes": ["lt", "lv", "no"], |
{ | ||
"shop/rental|Penske Truck Rental": { | ||
"countryCodes": ["ca", "us"], | ||
"matchTags": [ | ||
"amenity/car_rental", | ||
"office/moving_company" | ||
], | ||
"tags": { | ||
"brand": "Penske Truck Rental", | ||
"brand:wikidata": "Q81234570", | ||
"name": "Penske Truck Rental", | ||
"shop": "rental", | ||
"short_name": "Penske" | ||
} | ||
}, | ||
"shop/rental|Ryder": { | ||
"countryCodes": ["ca", "gb", "mx", "us"], | ||
"matchTags": ["amenity/car_rental"], | ||
"tags": { | ||
"brand": "Ryder", | ||
"brand:wikidata": "Q2178198", | ||
"brand:wikipedia": "en:Ryder", | ||
"name": "Ryder", | ||
"shop": "rental" | ||
} | ||
}, | ||
"shop/rental|U-Haul": { | ||
@@ -13,3 +38,22 @@ "countryCodes": ["ca", "us"], | ||
} | ||
}, | ||
"shop/rental|United Rentals": { | ||
"countryCodes": ["ca", "us"], | ||
"matchNames": ["united rental"], | ||
"matchTags": [ | ||
"amenity/car_rental", | ||
"amenity/tool_rental", | ||
"shop/doityourself", | ||
"shop/hardware", | ||
"shop/tool_hire", | ||
"shop/trade" | ||
], | ||
"tags": { | ||
"brand": "United Rentals", | ||
"brand:wikidata": "Q7889101", | ||
"brand:wikipedia": "en:United Rentals", | ||
"name": "United Rentals", | ||
"shop": "rental" | ||
} | ||
} | ||
} |
@@ -558,2 +558,11 @@ { | ||
}, | ||
"shop/shoes|Moshulu": { | ||
"countryCodes": ["gb"], | ||
"tags": { | ||
"brand": "Moshulu", | ||
"brand:wikidata": "Q81555702", | ||
"name": "Moshulu", | ||
"shop": "shoes" | ||
} | ||
}, | ||
"shop/shoes|Naturalizer": { | ||
@@ -873,2 +882,3 @@ "countryCodes": ["ca", "cn", "gu", "us"], | ||
"brand": "Stuart Weitzman", | ||
"brand:wikidata": "Q75244763", | ||
"name": "Stuart Weitzman", | ||
@@ -931,2 +941,12 @@ "shop": "shoes" | ||
}, | ||
"shop/shoes|tReds": { | ||
"countryCodes": ["gb"], | ||
"matchTags": ["shop/clothes"], | ||
"tags": { | ||
"brand": "tReds", | ||
"brand:wikidata": "Q81647338", | ||
"name": "tReds", | ||
"shop": "shoes" | ||
} | ||
}, | ||
"shop/shoes|vanHaren": { | ||
@@ -933,0 +953,0 @@ "countryCodes": ["be", "nl"], |
@@ -43,2 +43,12 @@ { | ||
}, | ||
"shop/telecommunication|Malitel": { | ||
"countryCodes": ["ml"], | ||
"tags": { | ||
"brand": "Malitel", | ||
"brand:wikidata": "Q6743829", | ||
"brand:wikipedia": "en:Malitel", | ||
"name": "Malitel", | ||
"shop": "telecommunication" | ||
} | ||
}, | ||
"shop/telecommunication|Ooredoo": { | ||
@@ -53,2 +63,12 @@ "tags": { | ||
}, | ||
"shop/telecommunication|Orange Mali": { | ||
"countryCodes": ["ml"], | ||
"tags": { | ||
"brand": "Orange Mali", | ||
"brand:wikidata": "Q3355061", | ||
"brand:wikipedia": "fr:Orange Mali", | ||
"name": "Orange Mali", | ||
"shop": "telecommunication" | ||
} | ||
}, | ||
"shop/telecommunication|Spectrum": { | ||
@@ -55,0 +75,0 @@ "countryCodes": ["us"], |
@@ -226,2 +226,18 @@ { | ||
}, | ||
"shop/variety_store|La Foir'Fouille": { | ||
"countryCodes": [ | ||
"be", | ||
"fr", | ||
"lu", | ||
"mu", | ||
"nc" | ||
], | ||
"tags": { | ||
"brand": "La Foir'Fouille", | ||
"brand:wikidata": "Q3209040", | ||
"brand:wikipedia": "fr:La Foir'Fouille", | ||
"name": "La Foir'Fouille", | ||
"shop": "variety_store" | ||
} | ||
}, | ||
"shop/variety_store|M9": { | ||
@@ -228,0 +244,0 @@ "tags": { |
@@ -68,3 +68,2 @@ { | ||
"brand:wikipedia": "nl:Sligro Food Group", | ||
"membership": "yes", | ||
"name": "Sligro", | ||
@@ -71,0 +70,0 @@ "shop": "wholesale" |
@@ -68,5 +68,5 @@ const colors = require('colors/safe'); | ||
filters.keepTags.forEach(s => { | ||
let re = new RegExp(s, 'i'); | ||
const re = new RegExp(s, 'i'); | ||
for (let kvnd in _discard) { | ||
let tag = kvnd.split('|', 2)[0]; | ||
const tag = kvnd.split('|', 2)[0]; | ||
if (re.test(tag)) { | ||
@@ -81,3 +81,3 @@ _keep[kvnd] = _discard[kvnd]; | ||
filters.discardKeys.forEach(s => { | ||
let re = new RegExp(s, 'i'); | ||
const re = new RegExp(s, 'i'); | ||
for (let kvnd in _keep) { | ||
@@ -93,5 +93,5 @@ if (re.test(kvnd)) { | ||
filters.discardNames.forEach(s => { | ||
let re = new RegExp(s, 'i'); | ||
const re = new RegExp(s, 'i'); | ||
for (let kvnd in _keep) { | ||
let name = kvnd.split('|', 2)[1]; | ||
const name = kvnd.split('|', 2)[1]; | ||
if (re.test(name)) { | ||
@@ -121,11 +121,10 @@ _discard[kvnd] = _keep[kvnd]; | ||
Object.keys(_keep).forEach(kvnd => { | ||
let obj = brands[kvnd]; | ||
let parts = toParts(kvnd); | ||
var m = matcher.matchParts(parts); | ||
const parts = toParts(kvnd); | ||
const m = matcher.matchParts(parts); | ||
if (m) return; // already in the index | ||
let obj = brands[kvnd]; | ||
if (!obj) { // a new entry! | ||
obj = { tags: {} }; | ||
brands[kvnd] = obj; | ||
brands[kvnd] = obj; // insert | ||
@@ -142,4 +141,4 @@ // assign default tags - new entries | ||
Object.keys(brands).forEach(kvnd => { | ||
let obj = brands[kvnd]; | ||
let parts = toParts(kvnd); | ||
const obj = brands[kvnd]; | ||
const parts = toParts(kvnd); | ||
@@ -224,8 +223,8 @@ // assign default tags - new or existing entries | ||
Object.keys(brands).forEach(kvnd => { | ||
let obj = brands[kvnd]; | ||
let parts = toParts(kvnd); | ||
const obj = brands[kvnd]; | ||
const parts = toParts(kvnd); | ||
if (!parts.d) { // ignore ambiguous entries for these | ||
// Warn if some other item matches this item | ||
var m = matcher.matchParts(parts); | ||
const m = matcher.matchParts(parts); | ||
if (m && m.kvnd !== kvnd) { | ||
@@ -236,4 +235,4 @@ warnMatched.push([m.kvnd, kvnd]); | ||
// Warn if the name appears to be a duplicate | ||
let stem = stemmer(parts.n); | ||
let other = seen[stem]; | ||
const stem = stemmer(parts.n); | ||
const other = seen[stem]; | ||
if (other) { | ||
@@ -255,3 +254,3 @@ // suppress warning? | ||
// Warn if `brand:wikidata` or `brand:wikipedia` tags are missing or look wrong.. | ||
let wd = obj.tags['brand:wikidata']; | ||
const wd = obj.tags['brand:wikidata']; | ||
if (!wd) { | ||
@@ -262,3 +261,3 @@ warnMissingWikidata.push(kvnd); | ||
} | ||
let wp = obj.tags['brand:wikipedia']; | ||
const wp = obj.tags['brand:wikipedia']; | ||
if (!wp) { | ||
@@ -271,3 +270,3 @@ warnMissingWikipedia.push(kvnd); | ||
// Warn on missing logo | ||
let logos = (wd && _wikidata[wd] && _wikidata[wd].logos) || {}; | ||
const logos = (wd && _wikidata[wd] && _wikidata[wd].logos) || {}; | ||
if (!Object.keys(logos).length) { | ||
@@ -292,3 +291,3 @@ warnMissingLogos.push(kvnd); | ||
// warn if the primary tag is missing or set to the wrong value.. | ||
let primary = obj.tags[parts.k]; | ||
const primary = obj.tags[parts.k]; | ||
if (!primary || primary !== parts.v) { | ||
@@ -300,3 +299,3 @@ warnMissingTag.push([kvnd, parts.k]); | ||
['cuisine', 'vending', 'beauty'].forEach(osmkey => { | ||
let val = obj.tags[osmkey]; | ||
const val = obj.tags[osmkey]; | ||
if (val && oddPunctuation.test(val)) { | ||
@@ -308,3 +307,3 @@ warnFormatTag.push([kvnd, `${osmkey} = ${val}`]); | ||
['wikipedia', 'wikidata'].forEach(osmkey => { | ||
let val = obj.tags[osmkey]; | ||
const val = obj.tags[osmkey]; | ||
if (val) { | ||
@@ -421,7 +420,7 @@ warnFormatTag.push([kvnd, `${osmkey} = ${val}`]); | ||
let total = Object.keys(brands).length; | ||
let hasWd = total - warnMissingWikidata.length; | ||
let pctWd = (hasWd * 100 / total).toFixed(1); | ||
let hasLogos = total - warnMissingLogos.length; | ||
let pctLogos = (hasLogos * 100 / total).toFixed(1); | ||
const total = Object.keys(brands).length; | ||
const hasWd = total - warnMissingWikidata.length; | ||
const pctWd = (hasWd * 100 / total).toFixed(1); | ||
const hasLogos = total - warnMissingLogos.length; | ||
const pctLogos = (hasLogos * 100 / total).toFixed(1); | ||
@@ -428,0 +427,0 @@ console.info(colors.blue.bold(`\nIndex completeness:`)); |
@@ -45,3 +45,6 @@ const colors = require('colors/safe'); | ||
let _brands = fileTree.read('brands'); | ||
let _wikidata = gatherQIDs(_brands); | ||
let _ennames = {}; | ||
let _wikidata = {}; | ||
gatherQIDs(_brands); | ||
let _qids = Object.keys(_wikidata); | ||
@@ -67,13 +70,12 @@ let _total = _qids.length; | ||
function gatherQIDs(brands) { | ||
let wikidata = {}; | ||
Object.keys(brands).forEach(kvnd => { | ||
['brand:wikidata', 'operator:wikidata'].forEach(t => { | ||
let qid = brands[kvnd].tags[t]; | ||
['brand:wikidata', 'operator:wikidata'].forEach(wdtag => { | ||
const tags = brands[kvnd].tags; | ||
const qid = tags[wdtag]; | ||
if (qid && /^Q\d+$/.test(qid)) { | ||
wikidata[qid] = {}; | ||
_ennames[qid] = tags['name:en'] || tags.name; | ||
_wikidata[qid] = {}; | ||
} | ||
}); | ||
}); | ||
return wikidata; | ||
} | ||
@@ -118,5 +120,19 @@ | ||
if (entity.hasOwnProperty('missing')) { | ||
const msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` Entity for "${_ennames[qid]}" was deleted.`); | ||
_errors.push(msg); | ||
console.error(msg); | ||
return; | ||
} | ||
if (label) { | ||
target.label = label; | ||
} else { | ||
const msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` Entity for "${_ennames[qid]}" missing English label.`); | ||
_errors.push(msg); | ||
console.error(msg); | ||
} | ||
if (description) { | ||
@@ -133,3 +149,3 @@ target.description = description; | ||
// P154 - Commons Logo (often not square) | ||
let wikidataLogo = getClaimValue(entity, 'P154'); | ||
const wikidataLogo = getClaimValue(entity, 'P154'); | ||
if (wikidataLogo) { | ||
@@ -141,3 +157,3 @@ target.logos.wikidata = 'https://commons.wikimedia.org/w/index.php?' + | ||
// P856 - official website | ||
let officialWebsite = getClaimValue(entity, 'P856'); | ||
const officialWebsite = getClaimValue(entity, 'P856'); | ||
if (officialWebsite) { | ||
@@ -148,3 +164,3 @@ target.identities.website = officialWebsite; | ||
// P2002 - Twitter username | ||
let twitterUser = getClaimValue(entity, 'P2002'); | ||
const twitterUser = getClaimValue(entity, 'P2002'); | ||
if (twitterUser) { | ||
@@ -156,3 +172,3 @@ target.identities.twitter = twitterUser; | ||
// P2003 - Instagram ID | ||
let instagramUser = getClaimValue(entity, 'P2003'); | ||
const instagramUser = getClaimValue(entity, 'P2003'); | ||
if (instagramUser) { | ||
@@ -163,3 +179,3 @@ target.identities.instagram = instagramUser; | ||
// P2013 - Facebook ID | ||
let facebookUser = getClaimValue(entity, 'P2013'); | ||
const facebookUser = getClaimValue(entity, 'P2013'); | ||
if (facebookUser) { | ||
@@ -171,3 +187,3 @@ target.identities.facebook = facebookUser; | ||
// P2397 - YouTube ID | ||
let youtubeUser = getClaimValue(entity, 'P2397'); | ||
const youtubeUser = getClaimValue(entity, 'P2397'); | ||
if (youtubeUser) { | ||
@@ -178,3 +194,3 @@ target.identities.youtube = youtubeUser; | ||
// P2984 - Snapchat ID | ||
let snapchatUser = getClaimValue(entity, 'P2984'); | ||
const snapchatUser = getClaimValue(entity, 'P2984'); | ||
if (snapchatUser) { | ||
@@ -185,3 +201,3 @@ target.identities.snapchat = snapchatUser; | ||
// P3185 - VK ID | ||
let vkUser = getClaimValue(entity, 'P3185'); | ||
const vkUser = getClaimValue(entity, 'P3185'); | ||
if (vkUser) { | ||
@@ -192,3 +208,3 @@ target.identities.vk = vkUser; | ||
// P3836 - Pinterest ID | ||
let pinterestUser = getClaimValue(entity, 'P3836'); | ||
const pinterestUser = getClaimValue(entity, 'P3836'); | ||
if (pinterestUser) { | ||
@@ -199,3 +215,3 @@ target.identities.pinterest = pinterestUser; | ||
// P4264 - LinkedIn Company ID | ||
let linkedinUser = getClaimValue(entity, 'P4264'); | ||
const linkedinUser = getClaimValue(entity, 'P4264'); | ||
if (linkedinUser) { | ||
@@ -237,17 +253,19 @@ target.identities.linkedin = linkedinUser; | ||
// If the brand is not yet in the index, show a warning to add it | ||
let msg = `Error: ${qid}: ${target.label} should probably be replaced by ${entity}, but this entry is not yet present in the index.`; | ||
let msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` ${target.label} should probably be replaced by ${entity}, but this entry is not yet present in the index.`); | ||
if (dissolution.countries) { | ||
msg += ' '; | ||
msg += `This applies only to the following countries: ${JSON.stringify(dissolution.countries)}.`; | ||
msg += colors.red(`\nThis applies only to the following countries: ${JSON.stringify(dissolution.countries)}.`); | ||
} | ||
_errors.push(msg); | ||
console.error(colors.red(msg)); | ||
console.error(msg); | ||
dissolution.upgrade.splice(index, 1); | ||
} else if (keys.length === 1) { | ||
dissolution.upgrade[index] = keys[0]; | ||
} else if (keys.length > 1) { | ||
let msg = `Error: ${qid}: ${target.label} should probably be replaced by ${entity}, but this applies to more than one entry in the index: ${JSON.stringify(keys)}.`; | ||
let msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` ${target.label} should probably be replaced by ${entity}, but this applies to more than one entry in the index: ${JSON.stringify(keys)}.`); | ||
if (dissolution.countries) { | ||
msg += ' '; | ||
msg += `This applies only to the following countries: ${JSON.stringify(dissolution.countries)}.`; | ||
msg += colors.red(`\nThis applies only to the following countries: ${JSON.stringify(dissolution.countries)}.`); | ||
} | ||
@@ -354,3 +372,3 @@ _errors.push(msg); | ||
fs.writeFileSync('dist/dissolved.json', stringify(sort(dissolved))); | ||
fs.writeFileSync('dist/dissolved.json', stringify(sort(dissolved), { maxLength: 100 })); | ||
console.timeEnd(colors.green('dissolved.json updated')); | ||
@@ -409,3 +427,3 @@ | ||
.catch(e => { | ||
console.error(colors.red(`Error: Twitter rate limit: ` + JSON.stringify(e))); | ||
console.error(colors.blue(`Error: Twitter rate limit: ` + JSON.stringify(e))); | ||
}); | ||
@@ -427,3 +445,4 @@ } | ||
.catch(e => { | ||
let msg = `Error: Twitter username @${username} for ${qid}: ` + JSON.stringify(e); | ||
const msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` Twitter username @${username}: ${JSON.stringify(e)}`); | ||
_errors.push(msg); | ||
@@ -451,3 +470,4 @@ console.error(colors.red(msg)); | ||
.catch(e => { | ||
let msg = `Error: Facebook username @${username} for ${qid}: ` + e; | ||
const msg = colors.yellow(`Error: https://www.wikidata.org/wiki/${qid}`) + | ||
colors.red(` Facebook username @${username}: ${e}`); | ||
_errors.push(msg); | ||
@@ -478,3 +498,3 @@ console.error(colors.red(msg)); | ||
// the entity is likely not a country if no country code is present | ||
let msg = `Error: ${qid}: the linked item ${entity} does not seem to be a country because there is no country code stored as a claim.`; | ||
let msg = `Error: https://www.wikidata.org/wiki/${qid}\n\tThe linked item ${entity} does not seem to be a country because there is no country code stored as a claim.`; | ||
_errors.push(msg); | ||
@@ -481,0 +501,0 @@ console.error(colors.red(msg)); |
@@ -248,2 +248,3 @@ { | ||
"^home\\sutensils$", | ||
"^horodateur$", | ||
"^hospedaje$", | ||
@@ -250,0 +251,0 @@ "^húsbolt$", |
@@ -162,2 +162,3 @@ { | ||
"shop/supermarket", | ||
"shop/discount", | ||
"shop/convenience" | ||
@@ -175,2 +176,2 @@ ], | ||
} | ||
} | ||
} |
{ | ||
"amenity/bank|Allied Bank~(defunct bank in Philipiness)": [ | ||
{"date": "2013-01-01T00:00:00.000Z"} | ||
], | ||
"amenity/bank|Allied Bank~(defunct bank in Philipiness)": [{"date": "2013-01-01T00:00:00.000Z"}], | ||
"amenity/bank|Antonveneta": [{"date": "2013-01-01T00:00:00.000Z"}], | ||
"amenity/bank|BMN": [{"date": "2018-01-01T00:00:00.000Z"}], | ||
"amenity/bank|Banca Intesa": [{"date": "2007-01-01T00:00:00.000Z"}], | ||
"amenity/bank|Banca Popolare di Milano": [ | ||
{"date": "2018-11-26T00:00:00.000Z"} | ||
], | ||
"amenity/bank|Banca Popolare di Novara": [ | ||
{"date": "2011-12-27T00:00:00.000Z"} | ||
], | ||
"amenity/bank|Banca Popolare di Verona": [ | ||
{"date": "2002-06-01T00:00:00.000Z"} | ||
], | ||
"amenity/bank|Banca Popolare di Milano": [{"date": "2018-11-26T00:00:00.000Z"}], | ||
"amenity/bank|Banca Popolare di Novara": [{"date": "2011-12-27T00:00:00.000Z"}], | ||
"amenity/bank|Banca Popolare di Verona": [{"date": "2002-06-01T00:00:00.000Z"}], | ||
"amenity/bank|Banco Pastor": [{"date": "2018-01-01T00:00:00.000Z"}], | ||
"amenity/bank|Banco di Napoli": [{"date": "2018-11-25T00:00:00.000Z"}], | ||
"amenity/bank|Bancpost": [ | ||
{ | ||
"date": "2019-01-03T00:00:00.000Z", | ||
"upgrade": ["amenity/bank|Banca Transilvania"] | ||
} | ||
{"date": "2019-01-03T00:00:00.000Z", "upgrade": ["amenity/bank|Banca Transilvania"]} | ||
], | ||
@@ -46,5 +35,4 @@ "amenity/bank|Caja Duero": [{"date": "2010-01-01T00:00:00.000Z"}], | ||
"shop/florist|Holland Blumen Mark": [{"date": "2014-10-01T00:00:00.000Z"}], | ||
"shop/interior_decoration|Fired Earth": [ | ||
{"date": "1998-01-01T00:00:00.000Z"} | ||
], | ||
"shop/garden_centre|Wyevale": [{"date": "2019-10-01T00:00:00.000Z"}], | ||
"shop/interior_decoration|Fired Earth": [{"date": "1998-01-01T00:00:00.000Z"}], | ||
"shop/mobile_phone|Wind": [{"date": "2016-12-30T00:00:00.000Z"}], | ||
@@ -51,0 +39,0 @@ "shop/mobile_phone|ソフトバンク": [{"date": "2015-04-01T00:00:00.000Z"}], |
@@ -248,2 +248,3 @@ { | ||
"^home\\sutensils$", | ||
"^horodateur$", | ||
"^hospedaje$", | ||
@@ -250,0 +251,0 @@ "^húsbolt$", |
@@ -162,2 +162,3 @@ { | ||
"shop/supermarket", | ||
"shop/discount", | ||
"shop/convenience" | ||
@@ -175,2 +176,2 @@ ], | ||
} | ||
} | ||
} |
@@ -41,2 +41,3 @@ { | ||
{"key": "amenity", "value": "fuel"}, | ||
{"key": "amenity", "value": "gambling"}, | ||
{"key": "amenity", "value": "hospital"}, | ||
@@ -102,3 +103,2 @@ {"key": "amenity", "value": "ice_cream"}, | ||
{"key": "brand:vi"}, | ||
{"key": "brand:website"}, | ||
{"key": "brand:wikidata"}, | ||
@@ -218,2 +218,3 @@ {"key": "brand:wikipedia"}, | ||
{"key": "cuisine", "value": "pasta"}, | ||
{"key": "cuisine", "value": "pasty"}, | ||
{"key": "cuisine", "value": "peruvian"}, | ||
@@ -258,3 +259,2 @@ {"key": "cuisine", "value": "pita"}, | ||
{"key": "cuisine", "value": "wings"}, | ||
{"key": "delivery", "value": "yes"}, | ||
{"key": "diet:kosher", "value": "yes"}, | ||
@@ -269,2 +269,3 @@ {"key": "diet:vegan", "value": "only"}, | ||
{"key": "fuel:lpg", "value": "yes"}, | ||
{"key": "gambling", "value": "bingo;slot_machines"}, | ||
{"key": "grades", "value": "PK"}, | ||
@@ -301,3 +302,2 @@ {"key": "healthcare", "value": "blood_donation"}, | ||
{"key": "max_age", "value": "12"}, | ||
{"key": "membership", "value": "yes"}, | ||
{"key": "min_age", "value": "6 weeks"}, | ||
@@ -304,0 +304,0 @@ {"key": "name"}, |
@@ -13,5 +13,5 @@ const simplify = require('./simplify.js'); | ||
// Create an index of all the keys/simplenames for fast matching | ||
matcher.buildMatchIndex = (brands) => { | ||
// two passes - once for primary names, once for secondary/alternate names | ||
@@ -21,2 +21,3 @@ Object.keys(brands).forEach(kvnd => insertNames(kvnd, 'primary')); | ||
function insertNames(kvnd, which) { | ||
@@ -26,2 +27,7 @@ const obj = brands[kvnd]; | ||
// Exit early for ambiguous names in the second pass. | ||
// They were collected in the first pass and we don't gather alt names for them. | ||
if (which === 'secondary' && parts.d) return; | ||
if (obj.countryCodes) { | ||
@@ -31,7 +37,11 @@ parts.countryCodes = obj.countryCodes.slice(); // copy | ||
let nomatches = (obj.nomatch || []) | ||
.map(kvnd => toParts(kvnd).kvnsimple); | ||
let nomatches = (obj.nomatch || []); | ||
if (nomatches.some(s => s === kvnd)) { | ||
console.log(`WARNING match/nomatch conflict for ${kvnd}`); | ||
return; | ||
} | ||
let match_kv = [parts.kv] | ||
.concat(obj.matchTags || []) | ||
.concat([`${parts.k}/yes`, `building/yes`]) // #3454 - match some generic tags | ||
.map(s => s.toLowerCase()); | ||
@@ -43,10 +53,9 @@ | ||
.concat(obj.matchNames || []) | ||
.concat(obj.tags.official_name || []) // #2732 | ||
.concat(obj.tags.official_name || []) // #2732 - match alternate names | ||
.map(simplify); | ||
} else if (which === 'secondary') { | ||
if (parts.d) return; // exit early - we collected these on the first pass | ||
match_nsimple = [] | ||
.concat(obj.tags.alt_name || []) // #2732 | ||
.concat(obj.tags.short_name || []) // #2732 | ||
.concat(obj.tags.alt_name || []) // #2732 - match alternate names | ||
.concat(obj.tags.short_name || []) // #2732 - match alternate names | ||
.map(simplify); | ||
@@ -59,8 +68,2 @@ } | ||
match_nsimple.forEach(nsimple => { | ||
const test = kv + nsimple; | ||
if (nomatches.some(s => s === test)) { | ||
console.log('WARNING match/nomatch conflict for ' + test); | ||
return; | ||
} | ||
if (parts.d) { | ||
@@ -73,12 +76,14 @@ // Known ambiguous names with disambiguation string ~(USA) / ~(Canada) | ||
} else { | ||
// Names we expect to be unique.. | ||
// Warn if we detect collisions in a primary name, ignore if a secondary name - #2972 | ||
// Names we mostly expect to be unique.. | ||
if (!_matchIndex[kv]) _matchIndex[kv] = {}; | ||
const m = _matchIndex[kv][nsimple]; | ||
if (m) { // there already is a match for this name | ||
if (which === 'primary') { | ||
_warnings.push([m.kvnd, kvnd + ' ("' + nsimple + '")']); | ||
if (m) { // There already is a match for this name, skip it | ||
// Warn if we detect collisions in a primary name. | ||
// Skip warning if a secondary name or a generic `*=yes` tag - #2972 / #3454 | ||
if (which === 'primary' && !/\/yes$/.test(kv)) { | ||
_warnings.push([m.kvnd, `${kvnd} (${kv}/${nsimple})`]); | ||
} | ||
} else { | ||
_matchIndex[kv][nsimple] = parts; | ||
_matchIndex[kv][nsimple] = parts; // insert | ||
} | ||
@@ -92,11 +97,10 @@ } | ||
// pass a `key`, `value`, `name` and return the best match, | ||
// `countryCode` optional (if supplied, must match that too) | ||
matcher.matchKVN = (key, value, name, countryCode) => { | ||
return matcher.matchParts( | ||
toParts(key + "/" + value + "|" + name), | ||
countryCode | ||
); | ||
return matcher.matchParts(toParts(`${key}/${value}|${name}`), countryCode); | ||
}; | ||
// pass a parts object and return the best match, | ||
@@ -103,0 +107,0 @@ // `countryCode` optional (if supplied, must match that too) |
{ | ||
"name": "name-suggestion-index", | ||
"version": "3.5.0", | ||
"version": "3.6.0", | ||
"license": "BSD-3-Clause", | ||
@@ -5,0 +5,0 @@ "repository": "osmlab/name-suggestion-index", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
22737707
252
279062