# 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 = Дирхам ӀЦЭ
AFN = ОвхӀан-пачхьалкхан афгани||0
ALL = Албанин лек||0
AMD = Эрмалойчоьнан драм||0
ANG = Нидерландин Антилин гульден
AOA = Анголан кванза
ARS = Аргентинан песо
AUD = Австралин доллар|A$
AWG = Арубан флорин
AZN = Азербайджанан манат
BAM = Боснин а, Герцеговинан а хийцалун марка
BBD = Барбадосан доллар
BDT = Бангладешан така
BGN = Болгарин лев
BHD = Бахрейнан динар||3
BIF = Бурундин франк||0
BMD = Бермудан доллар
BND = Брунейн доллар
BOB = Боливин боливиано
BRL = Бразилин реал|R$
BSD = Багаман доллар
BTN = Бутанан нгултрум
BWP = Ботсванан пула
BYN = Белоруссин сом
BYR = Белоруссин сом (2000–2016)||0|1
BZD = Белизин доллар
CAD = Канадан доллар|CA$
CDF = Конголезин франк
CHF = Швейцарин франк
CLP = Чилин песо||0
CNY = Китайн юань|CN¥
COP = Колумбин песо||0
CRC = Костарикан колон
CUC = Кубан хийцалун песо
CUP = Кубан песо
CVE = Кабо-Верден эскудо
CZK = Чехин крона
DJF = Джибутин франк||0
DKK = Данин крона
DOP = Доминикан песо
DZD = Алжиран динар
EGP = Мисаран фунт
ERN = Эритрейн накфа
ETB = Эфиопин быр
EUR = Евро|€
FJD = Фиджин доллар
FKP = Фолклендан гӀайренийн фунт
GBP = Англин фунт|£
GEL = Гуьржийчоьнан лари|₾
GHS = Ганан седи
GIP = Гибралтаран фунт
GMD = Гамбин даласи
GNF = Гвинейн франк||0
GTQ = Гватемалан кетсаль
GYD = Гайанан доллар||0
HKD = Гонконган доллар|HK$
HNL = Гондурасан лемпира
HRK = Хорватин куна
HTG = Гаитин гурд
HUF = Венгрин форинт
IDR = Индонезин рупи||0
ILS = Израилан керла шекель|₪
INR = Индин рупи|₹
IQD = Ӏиракъан динар||0
IRR = ГӀажарийчоьнан риал||0
ISK = Исландин крона||0
JMD = Ямайн доллар
JOD = Урданан динар||3
JPY = Японин иена|JP¥|0
KES = Кенин шиллинг
KGS = Киргизин сом
KHR = Камбоджан риель
KMF = Коморийн гӀайренийн франк||0
KPW = Къилбаседа Корейн вона||0
KRW = Къилба Корейн вона|₩|0
KWD = Кувейтан динар||3
KYD = Кайманийн гӀайренийн доллар
KZT = Кхазакхстанан тенге
LAK = Лаосан кип||0
LBP = Ливанан фунт||0
LKR = Шри-Ланкан рупи
LRD = Либерин доллар
LYD = Ливин динар||3
MAD = Мароккон дирхам
MDL = Молдавин лей
MGA = Малагасийн ариари||0
MKD = Македонин динар
MMK = Мьянман кьят||0
MNT = Монголин тугрик||0
MOP = Макаон патака
MRO = Мавританин уги||0
MUR = Маврикин рупи||0
MVR = Мальдивийн руфи
MWK = Малавин квача
MXN = Мексикан песо|MX$
MYR = Малайзин ринггит
MZN = Мозамбикан метикал
NAD = Намибин доллар
NGN = Нигерин найра
NIO = Никарагуан кордоба
NOK = Норвегин крона
NPR = Непалан рупи
NZD = Керла Зеландин доллар|NZ$
OMR = Оманан риал||3
PAB = Панаман бальбоа
PEN = Перун соль
PGK = Папуа — Керла Гвинейн кина
PHP = Филиппинийн песо
PKR = Пакистанан рупи||0
PLN = Польшан злотый
PYG = Парагвайн гуарани||0
QAR = Катаран риал
RON = Румынин лей
RSD = Сербин динар||0
RUB = Российн сом|₽
RWF = Руандан франк||0
SAR = СаӀудийн Ӏаьрбийчоьнан риал
SBD = Соломонан гӀайренийн доллар
SCR = Сейшелан рупи
SDG = Суданан фунт
SEK = Швецин крона
SGD = Сингапуран доллар
SHP = Сийлахьчу Еленин гӀайрен фунт
SLL = Леоне||0
SOS = Сомалин шиллинг||0
SRD = Суринаман доллар
SSP = Къилба Суданан фунт
STD = Сан-Томен а, Принсипин а добра||0|1
SYP = Шеман фунт||0
SZL = Свазилендан лилангени
THB = Таиландан бат
TJS = Таджикистанан сомони
TMT = Туркменин керла манат
TND = Тунисан динар||3
TOP = Тонганан паанга
TRY = Туркойчоьнан лира|TL
TTD = Тринидадан а, Тобагон а доллар
TWD = Тайванан керла доллар|NT$
TZS = Танзанин шиллинг||0
UAH = Украинан гривна
UGX = Угандан шиллинг||0
USD = АЦШн доллар|US$
UYU = Уругвайн песо
UZS = Узбекистанан сом||0
VEF = Венесуэлан боливар
VND = Вьетнаман донг|₫|0
VUV = Вануатун вату||0
WST = Самоанан тала
XAF = Юккъерчу Африкан КФА франк|FCFA|0
XCD = Малхбален Карибийн доллар|EC$
XOF = Малхбузен Африкан КФА франк|CFA|0
XPF = Французийн Тийна океанан франк|CFPF|0
XXX = девзаш доцу я лелаш доцу ахча|||1
YER = Йеменан риал||0
ZAR = Къилба-Африкин рэнд
ZMW = Замбин квача
