# Copyright (C) 2011 The Libphonenumber Authors

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Translated from fr/352.txt using Freebase and Wikipedia.

35222|Luxembourg City
35223|Mondorf-les-Bains/Bascharage/Noerdange/Remich
352240|Luxembourg
352241|Luxembourg
3522420|Luxembourg
3522421|Weicherdange
3522422|Luxembourg City
3522423|Mondorf-les-Bains/Bascharage/Noerdange/Remich
3522424|Luxembourg
3522425|Luxembourg
3522426|Luxembourg
3522427|Belair, Luxembourg
3522428|Luxembourg City
3522429|Luxembourg/Kockelscheuer
3522430|Capellen/Kehlen
3522431|Bertrange/Mamer/Munsbach/Strassen
3522432|Lintgen/Mersch/Steinfort
3522433|Walferdange
3522434|Rameldange/Senningerberg
3522435|Sandweiler/Moutfort/Roodt-sur-Syre
3522436|Hesperange/Kockelscheuer/Roeser
3522437|Leudelange/Ehlange/Mondercange
3522438|Luxembourg
3522439|Windhof/Steinfort
3522440|Howald
3522441|Luxembourg
3522442|Plateau de Kirchberg
3522443|Findel/Kirchberg
3522444|Luxembourg
3522445|Diedrich
3522446|Luxembourg
3522447|Lintgen
3522448|Contern/Foetz
3522449|Howald
3522450|Bascharage/Petange/Rodange
3522451|Dudelange/Bettembourg/Livange
3522452|Dudelange
3522453|Esch-sur-Alzette
3522454|Esch-sur-Alzette
3522455|Esch-sur-Alzette/Mondercange
3522456|Rumelange
3522457|Esch-sur-Alzette/Schifflange
3522458|Soleuvre/Differdange
3522459|Soleuvre
352246|Luxembourg
3522467|Dudelange
3522470|Luxembourg
3522471|Betzdorf
3522472|Echternach
3522473|Rosport
3522474|Wasserbillig
3522475|Grevenmacher-sur-Moselle
3522476|Wormeldange
3522477|Luxembourg
3522478|Junglinster
3522479|Berdorf/Consdorf
3522480|Diekirch
3522481|Ettelbruck/Reckange-sur-Mess
3522482|Luxembourg
3522483|Vianden
3522484|Han/Lesse
3522485|Bissen/Roost
3522486|Luxembourg
3522487|Larochette
3522488|Mertzig/Wahl
3522489|Luxembourg
352249|Luxembourg
3522492|Clervaux/Fischbach/Hosingen
3522495|Wiltz
3522497|Huldange
3522499|Troisvierges
35225|Luxembourg
3522621|Weicherdange
3522622|Luxembourg City
3522623|Mondorf-les-Bains/Bascharage/Noerdange/Remich
3522625|Luxembourg
3522627|Belair, Luxembourg
3522628|Luxembourg City
3522629|Luxembourg/Kockelscheuer
3522630|Capellen/Kehlen
3522631|Bertrange/Mamer/Munsbach/Strassen
3522632|Lintgen/Mersch/Steinfort
3522633|Walferdange
3522634|Rameldange/Senningerberg
3522635|Sandweiler/Moutfort/Roodt-sur-Syre
3522636|Hesperange/Kockelscheuer/Roeser
3522637|Leudelange/Ehlange/Mondercange
3522639|Windhof/Steinfort
3522640|Howald
3522642|Plateau de Kirchberg
3522643|Findel/Kirchberg
3522645|Diedrich
3522647|Lintgen
3522648|Contern/Foetz
3522649|Howald
3522650|Bascharage/Petange/Rodange
3522651|Dudelange/Bettembourg/Livange
3522652|Dudelange
3522653|Esch-sur-Alzette
3522654|Esch-sur-Alzette
3522655|Esch-sur-Alzette/Mondercange
3522656|Rumelange
3522657|Esch-sur-Alzette/Schifflange
3522658|Soleuvre/Differdange
3522659|Soleuvre
3522667|Dudelange
3522671|Betzdorf
3522672|Echternach
3522673|Rosport
3522674|Wasserbillig
3522675|Grevenmacher-sur-Moselle
3522676|Wormeldange
3522678|Junglinster
3522679|Berdorf/Consdorf
3522680|Diekirch
3522681|Ettelbruck/Reckange-sur-Mess
3522683|Vianden
3522684|Han/Lesse
3522685|Bissen/Roost
3522687|Larochette
3522688|Mertzig/Wahl
3522692|Clervaux/Fischbach/Hosingen
3522695|Wiltz
3522697|Huldange
3522699|Troisvierges
3522721|Weicherdange
3522722|Luxembourg City
3522723|Mondorf-les-Bains/Bascharage/Noerdange/Remich
3522725|Luxembourg
3522727|Belair, Luxembourg
3522728|Luxembourg City
3522729|Luxembourg/Kockelscheuer
3522730|Capellen/Kehlen
3522731|Bertrange/Mamer/Munsbach/Strassen
3522732|Lintgen/Mersch/Steinfort
3522733|Walferdange
3522734|Rameldange/Senningerberg
3522735|Sandweiler/Moutfort/Roodt-sur-Syre
3522736|Hesperange/Kockelscheuer/Roeser
3522737|Leudelange/Ehlange/Mondercange
3522739|Windhof/Steinfort
3522740|Howald
3522742|Plateau de Kirchberg
3522743|Findel/Kirchberg
3522745|Diedrich
3522747|Lintgen
3522748|Contern/Foetz
3522749|Howald
3522750|Bascharage/Petange/Rodange
3522751|Dudelange/Bettembourg/Livange
3522752|Dudelange
3522753|Esch-sur-Alzette
3522754|Esch-sur-Alzette
3522755|Esch-sur-Alzette/Mondercange
3522756|Rumelange
3522757|Esch-sur-Alzette/Schifflange
3522758|Soleuvre/Differdange
3522759|Soleuvre
3522767|Dudelange
3522771|Betzdorf
3522772|Echternach
3522773|Rosport
3522774|Wasserbillig
3522775|Grevenmacher-sur-Moselle
3522776|Wormeldange
3522778|Junglinster
3522779|Berdorf/Consdorf
3522780|Diekirch
3522781|Ettelbruck/Reckange-sur-Mess
3522783|Vianden
3522784|Han/Lesse
3522785|Bissen/Roost
3522787|Larochette
3522788|Mertzig/Wahl
3522792|Clervaux/Fischbach/Hosingen
3522795|Wiltz
3522797|Huldange
3522799|Troisvierges
35228|Luxembourg City
35229|Luxembourg/Kockelscheuer
35230|Capellen/Kehlen
35231|Bertrange/Mamer/Munsbach/Strassen
35232|Mersch
35233|Walferdange
35234|Rameldange/Senningerberg
35235|Sandweiler/Moutfort/Roodt-sur-Syre
35236|Hesperange/Kockelscheuer/Roeser
35237|Leudelange/Ehlange/Mondercange
35239|Windhof/Steinfort
35240|Howald
35241|Luxembourg City
35242|Plateau de Kirchberg
35243|Findel/Kirchberg
35244|Luxembourg City
35245|Diedrich
35246|Luxembourg City
35247|Lintgen
35248|Contern/Foetz
35249|Howald
35250|Bascharage/Petange/Rodange
35251|Dudelange/Bettembourg/Livange
35252|Dudelange
35253|Esch-sur-Alzette
35254|Esch-sur-Alzette
35255|Esch-sur-Alzette/Mondercange
35256|Rumelange
35257|Esch-sur-Alzette/Schifflange
35258|Differdange
35259|Soleuvre
35271|Betzdorf
35272|Echternach
35273|Rosport
35274|Wasserbillig
35275|Grevenmacher
35276|Wormeldange
35278|Junglinster
35279|Berdorf/Consdorf
35280|Diekirch
35281|Ettelbruck
35283|Vianden
35284|Han/Lesse
35285|Bissen/Roost
35287|Larochette
35288|Mertzig/Wahl
35292|Clervaux/Fischbach/Hosingen
35295|Wiltz
35297|Huldange
35299|Troisvierges
