# Copyright 2012 Google Inc.
# 
# 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.

#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag|rounding
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# If a currency should be rounded to a multiple of of the least significant
#   digit, rounding will be present
# Trailing empty fields can be omitted

# DO NOT EDIT - GENERATED FROM CLDR DATA
ADP = peseta andorrane||0|1
AED = dirham des Émirats arabes unis
AFA = afghani (1927–2002)|||1
AFN = afghani afghan||0
ALK = lek albanais (1947–1961)|||1
ALL = lek albanais||0
AMD = dram arménien||0
ANG = florin antillais
AOA = kwanza angolais
AOK = kwanza angolais (1977–1990)|||1
AON = nouveau kwanza angolais (1990–2000)|||1
AOR = kwanza angolais réajusté (1995–1999)|||1
ARA = austral argentin|||1
ARL = peso lourd argentin (1970–1983)|||1
ARM = peso argentin (1881–1970)|||1
ARP = peso argentin (1983–1985)|||1
ARS = peso argentin|$AR
ATS = schilling autrichien|||1
AUD = dollar australien|$AU
AWG = florin arubais
AZM = manat azéri (1993–2006)|||1
AZN = manat azéri
BAD = dinar bosniaque|||1
BAM = mark convertible bosniaque
BBD = dollar barbadien
BDT = taka bangladeshi
BEC = franc belge (convertible)|||1
BEF = franc belge|FB||1
BEL = franc belge (financier)|||1
BGL = lev bulgare (1962–1999)|||1
BGN = lev bulgare
BHD = dinar bahreïni||3
BIF = franc burundais||0
BMD = dollar bermudien|$BM
BND = dollar brunéien|$BN
BOB = boliviano bolivien
BOL = boliviano bolivien (1863–1963)|||1
BOP = peso bolivien|||1
BOV = mvdol bolivien|||1
BRB = nouveau cruzeiro brésilien (1967–1986)|||1
BRC = cruzado brésilien (1986–1989)|||1
BRE = cruzeiro brésilien (1990–1993)|||1
BRL = réal brésilien|R$
BRN = nouveau cruzado|||1
BRR = cruzeiro|||1
BRZ = cruzeiro brésilien (1942–1967)|||1
BSD = dollar bahaméen|$BS
BTN = ngultrum bouthanais
BUK = kyat birman|||1
BWP = pula botswanais
BYB = nouveau rouble biélorusse (1994–1999)|||1
BYN = rouble biélorusse
BYR = rouble biélorusse (2000–2016)||0|1
BZD = dollar bélizéen|$BZ
CAD = dollar canadien|$CA
CDF = franc congolais
CHE = euro WIR|||1
CHF = franc suisse
CHW = franc WIR|||1
CLE = escudo chilien|||1
CLF = unité d’investissement chilienne||4|1
CLP = peso chilien|$CL|0
CNH = yuan chinois (zone extracôtière)|||1
CNX = dollar de la Banque populaire chinoise|||1
CNY = yuan renminbi chinois
COP = peso colombien|$CO|0
COU = unité de valeur réelle colombienne|||1
CRC = colón costaricain
CSD = dinar serbo-monténégrin|||1
CSK = couronne forte tchécoslovaque|||1
CUC = peso cubain convertible
CUP = peso cubain
CVE = escudo capverdien
CYP = livre chypriote|£CY||1
CZK = couronne tchèque
DDM = mark est-allemand|||1
DEM = mark allemand|||1
DJF = franc djiboutien||0
DKK = couronne danoise
DOP = peso dominicain
DZD = dinar algérien
ECS = sucre équatorien|||1
ECV = unité de valeur constante équatoriale (UVC)|||1
EEK = couronne estonienne|||1
EGP = livre égyptienne
ERN = nafka érythréen
ESA = peseta espagnole (compte A)|||1
ESB = peseta espagnole (compte convertible)|||1
ESP = peseta espagnole||0|1
ETB = birr éthiopien
EUR = euro|€
FIM = mark finlandais|||1
FJD = dollar fidjien|$FJ
FKP = livre des îles Malouines|£FK
FRF = franc français|F||1
GBP = livre sterling|£GB
GEK = coupon de lari géorgien|||1
GEL = lari géorgien|₾
GHC = cédi|||1
GHS = cédi ghanéen
GIP = livre de Gibraltar|£GI
GMD = dalasi gambien
GNF = franc guinéen||0
GNS = syli guinéen|||1
GQE = ekwélé équatoguinéen|||1
GRD = drachme grecque|||1
GTQ = quetzal guatémaltèque
GWE = escudo de Guinée portugaise|||1
GWP = peso bissau-guinéen|||1
GYD = dollar du Guyana||0
HKD = dollar de Hong Kong
HNL = lempira hondurien
HRD = dinar croate|||1
HRK = kuna croate
HTG = gourde haïtienne
HUF = forint hongrois
IDR = roupie indonésienne||0
IEP = livre irlandaise|£IE||1
ILP = livre israélienne|£IL||1
ILR = shekel israélien (1980–1985)|||1
ILS = nouveau shekel israélien|₪
INR = roupie indienne|₹
IQD = dinar irakien||0
IRR = riyal iranien||0
ISK = couronne islandaise||0
ITL = lire italienne|₤IT|0|1
JMD = dollar jamaïcain
JOD = dinar jordanien||3
JPY = yen japonais||0
KES = shilling kényan
KGS = som kirghize
KHR = riel cambodgien
KMF = franc comorien||0
KPW = won nord-coréen||0
KRH = hwan sud-coréen (1953–1962)|||1
KRO = won sud-coréen (1945–1953)|||1
KRW = won sud-coréen|₩|0
KWD = dinar koweïtien||3
KYD = dollar des îles Caïmans
KZT = tenge kazakh
LAK = kip loatien||0
LBP = livre libanaise|£LB|0
LKR = roupie srilankaise
LRD = dollar libérien
LSL = loti lesothan|lLS
LTL = litas lituanien|||1
LTT = talonas lituanien|||1
LUC = franc convertible luxembourgeois|||1
LUF = franc luxembourgeois||0|1
LUL = franc financier luxembourgeois|||1
LVL = lats letton|||1
LVR = rouble letton|||1
LYD = dinar libyen||3
MAD = dirham marocain
MAF = franc marocain|fMA||1
MDL = leu moldave
MGA = ariary malgache||0
MGF = franc malgache|Fmg|0|1
MKD = denar macédonien
MLF = franc malien|||1
MMK = kyat myanmarais||0
MNT = tugrik mongol||0
MOP = pataca macanaise
MRO = ouguiya mauritanien||0
MTL = lire maltaise|||1
MTP = livre maltaise|£MT||1
MUR = roupie mauricienne||0
MVP = roupie maldivienne|||1
MVR = rufiyaa maldivien
MWK = kwacha malawite
MXN = peso mexicain|$MX
MXP = peso d’argent mexicain (1861–1992)|||1
MXV = unité de conversion mexicaine (UDI)|||1
MYR = ringgit malais
MZE = escudo mozambicain|||1
MZM = métical|||1
MZN = metical mozambicain
NAD = dollar namibien|$NA
NGN = naira nigérian
NIC = cordoba|||1
NIO = córdoba oro nicaraguayen
NLG = florin néerlandais|||1
NOK = couronne norvégienne
NPR = roupie népalaise
NZD = dollar néo-zélandais|$NZ
OMR = riyal omanais||3
PAB = balboa panaméen
PEI = inti péruvien|||1
PEN = sol péruvien
PES = sol péruvien (1863–1985)|||1
PGK = kina papouan-néo-guinéen
PHP = peso philippin
PKR = roupie pakistanaise||0
PLN = zloty polonais
PLZ = zloty (1950–1995)|||1
PTE = escudo portugais|||1
PYG = guaraní paraguayen||0
QAR = riyal qatari
RHD = dollar rhodésien|$RH||1
ROL = ancien leu roumain|||1
RON = leu roumain
RSD = dinar serbe||0
RUB = rouble russe
RUR = rouble russe (1991–1998)|||1
RWF = franc rwandais||0
SAR = riyal saoudien
SBD = dollar des îles Salomon|$SB
SCR = roupie des Seychelles
SDD = dinar soudanais|||1
SDG = livre soudanaise
SDP = livre soudanaise (1956–2007)|||1
SEK = couronne suédoise
SGD = dollar de Singapour|$SG
SHP = livre de Sainte-Hélène
SIT = tolar slovène|||1
SKK = couronne slovaque|||1
SLL = leone sierra-léonais||0
SOS = shilling somalien||0
SRD = dollar surinamais|$SR
SRG = florin surinamais|||1
SSP = livre sud-soudanaise
STD = dobra santoméen||0|1
SUR = rouble soviétique|||1
SVC = colón salvadorien|||1
SYP = livre syrienne||0
SZL = lilangeni swazi
THB = baht thaïlandais
TJR = rouble tadjik|||1
TJS = somoni tadjik
TMM = manat turkmène||0|1
TMT = nouveau manat turkmène
TND = dinar tunisien||3
TOP = pa’anga tongan
TPE = escudo timorais|||1
TRL = livre turque (1844–2005)||0|1
TRY = livre turque|LT
TTD = dollar trinidadien|$TT
TWD = nouveau dollar taïwanais
TZS = shilling tanzanien||0
UAH = hryvnia ukrainienne
UAK = karbovanetz|||1
UGS = shilling ougandais (1966–1987)|||1
UGX = shilling ougandais||0
USD = dollar des États-Unis|$US
USN = dollar des Etats-Unis (jour suivant)|||1
USS = dollar des Etats-Unis (jour même)|||1
UYI = peso uruguayen (unités indexées)||0|1
UYP = peso uruguayen (1975–1993)|||1
UYU = peso uruguayen|$UY
UZS = sum ouzbek||0
VEB = bolivar vénézuélien (1871–2008)|||1
VEF = bolivar vénézuélien
VND = dông vietnamien|₫|0
VNN = dông vietnamien (1978–1985)|||1
VUV = vatu vanuatuan||0
WST = tala samoan|WS$
XAF = franc CFA (BEAC)|FCFA|0
XAG = argent|||1
XAU = or|||1
XBA = unité européenne composée|||1
XBB = unité monétaire européenne|||1
XBC = unité de compte européenne (XBC)|||1
XBD = unité de compte européenne (XBD)|||1
XCD = dollar des Caraïbes orientales
XDR = droit de tirage spécial|DTS||1
XEU = unité de compte européenne (ECU)|||1
XFO = franc or|||1
XFU = franc UIC|||1
XOF = franc CFA (BCEAO)|CFA|0
XPD = palladium|||1
XPF = franc CFP|FCFP|0
XPT = platine|||1
XRE = type de fonds RINET|||1
XSU = sucre|||1
XTS = (devise de test)|||1
XUA = unité de compte ADB|||1
XXX = devise inconnue ou non valide|||1
YDD = dinar du Yémen|||1
YER = riyal yéménite||0
YUD = nouveau dinar yougoslave|||1
YUM = dinar yougoslave Noviy|||1
YUN = dinar yougoslave convertible|||1
ZAL = rand sud-africain (financier)|||1
ZAR = rand sud-africain
ZMK = kwacha zambien (1968–2012)||0|1
ZMW = kwacha zambien
ZRN = nouveau zaïre zaïrien|||1
ZRZ = zaïre zaïrois|||1
ZWD = dollar zimbabwéen||0|1
ZWL = dollar zimbabwéen (2009)|||1
ZWR = dollar zimbabwéen (2008)|||1
