# 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 = Diraamu eya Emireeti
AOA = Kwanza y’Angola
AUD = Doola y’Awusiturelya|A$
BHD = Dinaali ya Baareeni||3
BIF = Faranga ya burundi||0
BWP = Pula ya Botiswana
CAD = Doola ya Kanada|CA$
CDF = Faranga ya Kongo
CHF = Faranga ey’eSwitizirandi
CNY = Yuwani Reniminibi ya Cayina|CN¥
CVE = Esikudo ya Keepu Veredi
DJF = Faranga ya Jjibuti||0
DZD = Dinaali y’Aligerya
EGP = Pawunda ya Misiri
ERN = Nakifa ya Eritureya
ETB = Biiru ya Esyopya
EUR = Yuro|€
GBP = Pawunda ya Bungereza|£
GHC = Sedi ya Gana|||1
GMD = Dalasi ya Gambya
GNS = Faranga ya Gini|||1
INR = Rupiya ya Buyindi|₹
JPY = Yeni ya Japani|JP¥|0
KES = Silingi ya Kenya
KMF = Faranga ya Komoro||0
LRD = Doola ya Liberya
LSL = Loti ya Lesoso
LYD = Dinaali ya Libya||3
MAD = Diraamu ey’eMoroko
MGA = Faranga ey’eMalagase||0
MRO = Wugwiya ey’eMawritenya||0
MUR = Rupiya ey’eMawurisyasi||0
MWK = Kwaca ey’eMalawi
MZM = Metikaali ey’eMozambiiki|||1
NGN = Nayira ey’eNayijerya
RWF = Faranga ey’eRwanda||0
SAR = Riyaali ey’eBuwarabu
SCR = Rupiya ey’eSesere
SDG = Dinaali ey’eSudaani
SDP = Pawunda ey’eSudaani|||1
SHP = Pawunda ey’eSenti Herena
SLL = Lewone||0
SOS = Silingi ey’eSomaliya||0
STD = Dobura ey’eSantome ne Purincipe||0|1
SZL = Lilangeni
TND = Dinaali ey’eTunizya||3
TZS = Silingi ey’eTanzaniya||0
UGX = Silingi eya Yuganda|USh|0
USD = Doola ey’Amerika|US$
XAF = Faranga yamu Afirika ya wakati|FCFA|0
XOF = Faranga yamu Afirika ya bugwanjuba|CFA|0
ZAR = Randi ey’eSawusafirika
ZMK = Kwaca ey’eZambya (1968–2012)||0|1
ZMW = Kwaca ey’eZambya
ZWD = Doola ey’eZimbabwe||0|1
