# 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
AED = dirâm tî âEmirâti tî Arâbo Ôko
AOA = kwânza tî Angoläa
AUD = dolära tî Ostralïi|A$
BHD = dolùara tî Bahrâina||3
BIF = farânga tî Burundïi||0
BWP = pûla tî Botswana
CAD = dolära tî kanadäa|CA$
CDF = farânga tî Kongöo
CHF = farânga tî Sûîsi
CNY = yuan renminbi tî Shîni|CN¥
CVE = eskûêdo tî Kâpo-Vêre
DJF = farânga tî Dibutïi||0
DZD = dinäri tî Alzerïi
EGP = pôndo tî Kâmitâ
ERN = nakafa tî Eritrëe
ETB = bir tî Etiopïi
EUR = zoröo|€
GBP = pôndo tî Anglëe|£
GHC = sêdi tî Ganäa|||1
GMD = dalasi tî gambïi
GNS = sili tî Ginëe|||1
INR = rupïi tî Ênnde|₹
JPY = yêni tî Zapön|JP¥|0
KES = shilîngi tî Kenyäa
KMF = farânga tî Kömôro||0
LRD = dolära tî Liberïa
LSL = loti tî Lesôtho
LYD = dinäar tî Libïi||3
MAD = dirâm tî Marôko
MGA = ariâri tî Madagasikära||0
MRO = ugîya tî Moritanïi||0
MUR = rupïi tî Mörîsi||0
MWK = kwâtia tî Malawïi
MZM = metikala tî Mozambîka|||1
NAD = dolära tî Namibïi
NGN = nâîra tî Nizerïa
RWF = farânga tî Ruandäa||0
SAR = riâli tî Saûdi Arabïi
SCR = rupïi tî Sëyshêle
SDG = pôndo tî Sudäan
SHP = pôndo tî Zûâ Sênt-Helêna
SLL = leône tî Sierâ-Leône||0
SOS = shilîngi tî Somalïi||0
STD = dôbra tî Sâô Tomë na Prinsîpe||0|1
SZL = lilangùeni tî Swazïlânde
TND = dinära tî Tunizïi||3
TZS = shilîngi tî Tanzanïi||0
UGX = shilîngi tî Ugandäa||0
USD = dol$ara ttî äLetäa-Ôko tî Amerîka|US$
XAF = farânga CFA (BEAC)|FCFA|0
XOF = farânga CFA (BCEAO)|CFA|0
ZAR = rânde tî Mbongo-Afrîka
ZMK = kwâtia tî Zambïi (1968–2012)||0|1
ZMW = kwâtia tî Zambïi
ZWD = dolära tî Zimbäbwe||0|1
