# Copyright 2014 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:
#  cldrVersion=25
#  date=$Date: 2014-03-01 06:57:43 +0100 (Sat, 01 Mar 2014) $
#  number=$Revision: 9852 $
#  type=is
ADP = Andorrskur peseti||0|1
AED = Arabískt dírham
AFN = Afgani||0
ALL = Albanskt lek||0
AMD = Armenskt dramm||0
ANG = Hollenskt Antillugyllini
AOA = Angólsk kvansa
ARA = Argentine Austral|||1
ARP = Argentískur pesi (1983–1985)|||1
ARS = Argentínskur pesi
ATS = Austurrískur skildingur|||1
AUD = Ástralskur dalur|$
AWG = Arúbönsk flórína
AZN = Aserskt manat
BAM = Skiptanlegt Bosníu og Hersegóvínu-mark
BBD = Barbadoskur dalur
BDT = Bangladessk taka|৳
BEF = Belgískur franki|||1
BGL = Lef|||1
BGN = Búlgarskt lef
BHD = Bareinskur denari||3
BIF = Búrúndískur franki||0
BMD = Bermúdadalur|$
BND = Brúneiskur dalur
BOB = Bólivíani
BOP = Bólivískur pesi|||1
BOV = Bolivian Mvdol|||1
BRL = Brasilískt ríal|R$
BSD = Bahamadalur|$
BTN = Bútanskt núltrum
BUK = Búrmverskt kjat|||1
BWP = Botsvönsk púla
BYR = Hvítrússnesk rúbla||0
BZD = Belískur dalur|$
CAD = Kanadískur dalur
CDF = Kongóskur franki
CHF = Svissneskur franki
CLF = Chilean Unidades de Fomento||0|1
CLP = Síleskur pesi|$|0
CNY = Kínverskt júan|¥
COP = Kólumbískur pesi||0
CRC = Kostarískt kólon||0
CSK = Tékknesk króna, eldri|||1
CUC = Kúbverskur skiptanlegur pesi
CUP = Kúbverskur pesi|$
CVE = Grænhöfðeyskur skúti
CYP = Kýpverskt pund|||1
CZK = Tékknesk króna
DDM = Austurþýskt mark|||1
DEM = Þýskt mark|||1
DJF = Djíbútískur franki||0
DKK = Dönsk króna
DOP = Dóminískur pesi|$
DZD = Alsírskur denari
ECS = Ecuador Sucre|||1
EEK = Eistnesk króna|||1
EGP = Egypskt pund
ERN = Erítresk nakfa
ESP = Spænskur peseti|₧|0|1
ETB = Eþíópískt birr
EUR = Evra|€
FIM = Finnskt mark|||1
FJD = Fídjeyskur dalur
FKP = Falklenskt pund
FRF = Franskur franki|||1
GBP = Sterlingspund|£
GEL = Georgískur lari
GHS = Ganverskur sedi
GIP = Gíbraltarspund|£
GMD = Gambískur dalasi
GNF = Gíneufranki||0
GRD = Drakma|||1
GTQ = Gvatemalskt kvesal
GWE = Portúgalskur, gíneskur skúti|||1
GYD = Gvæjanskur dalur||0
HKD = Hong Kong-dalur|$
HNL = Hondúrsk lempíra
HRK = Króatísk kúna
HTG = Haítískur gúrdi
HUF = Ungversk fórinta||0
IDR = Indónesísk rúpía||0
IEP = Írskt pund|||1
ILP = Ísraelskt pund|||1
ILS = Nýr ísraelskur sikill|₪
INR = Indversk rúpía|₹
IQD = Írakskur denari||0
IRR = Íranskt ríal||0
ISK = Íslensk króna|kr|0
ITL = Ítölsk líra||0|1
JMD = Jamaískur dalur
JOD = Jórdanskur denari||3
JPY = Japanskt jen|¥|0
KES = Kenískur skildingur
KGS = Kirgiskt som
KHR = Kambódískt ríal
KMF = Kómoreyskur franki||0
KPW = Norðurkóreskt vonn||0
KRW = Suðurkóreskt vonn|₩|0
KWD = Kúveiskur denari||3
KYD = Caymaneyskur dalur|$
KZT = Kasakst tengi|₸
LAK = Laoskt kip||0
LBP = Líbanskt pund||0
LKR = Srílönsk rúpía
LRD = Líberískur dalur
LSL = Lesotho Loti
LTL = Litháískt lít
LTT = Lithuanian Talonas|||1
LUF = Lúxemborgarfranki||0|1
LVL = Lettneskt lat|||1
LVR = Lettnesk rúbla|||1
LYD = Líbískur denari||3
MAD = Marokkóskt dírham
MAF = Marokkóskur franki|||1
MDL = Moldavískt lei
MGA = Madagaskararjari||0
MGF = Madagaskur franki||0|1
MKD = Makedónskur denari
MLF = Malískur franki|||1
MMK = Mjanmarskt kjat||0
MNT = Mongólskur túríkur||0
MOP = Makaópataka
MRO = Máritönsk úgía||0
MTL = Meltnesk líra|||1
MTP = Maltneskt pund|||1
MUR = Máritísk rúpía||0
MVR = Maldíveysk rúpía
MWK = Malavísk kvaka
MXN = Mexíkóskur pesi|$
MXP = Mexíkóskur silfurpesi (1861–1992)|||1
MXV = Mexíkóskur pesi, UDI|||1
MYR = Malasískt ringit
MZE = Mósambískur skúti|||1
MZN = Mósambískt metikal
NAD = Namibískur dalur|$
NGN = Nígerísk næra
NIC = Níkarögsk kordóva (1988–1991)|||1
NIO = Níkarögsk kordóva
NLG = Hollenskt gyllini|||1
NOK = Norsk króna
NPR = Nepölsk rúpía
NZD = Nýsjálenskur dalur|$
OMR = Ómanskt ríal||3
PAB = Balbói
PEN = Perúskt sól
PGK = Papúsk kína
PHP = Filippseyskur pesi
PKR = Pakistönsk rúpía||0
PLN = Pólskt slot
PLZ = Slot|||1
PTE = Portúgalskur skúti|||1
PYG = Paragvæskt gvaraní|₲|0
QAR = Katarskt ríal
ROL = Rúmenskt lei (1952–2006)|||1
RON = Rúmenskt lei
RSD = Serbneskur denari||0
RUB = Rússnesk rúbla
RUR = Rússnesk rúbla (1991–1998)|р.||1
RWF = Rúandskur franki||0
SAR = Sádiarabískt ríal
SBD = Salómonseyskur dalur|$
SCR = Seychellesrúpía
SDD = Súdanskur denari|||1
SDG = Súdanskt pund
SDP = Súdanskt pund (1957–1998)|||1
SEK = Sænsk króna
SGD = Singapúrskur dalur|$
SHP = Helenskt pund
SIT = Slóvenskur dalur|||1
SKK = Slóvakísk króna|||1
SLL = Síerraleónsk ljóna||0
SOS = Sómalískur skildingur||0
SRD = Súrínamdalur
SRG = Suriname Guilder|||1
SSP = Suðursúdanskt pund|£
STD = Saó Tóme og Prinsípe-dóbra||0
SUR = Soviet Rouble|||1
SVC = El Salvador Colon|||1
SYP = Sýrlenskt pund||0
SZL = Svasílenskur lílangeni
THB = Taílenskt bat|฿
TJR = Tadsjiksk rúbla|||1
TJS = Tadsjikskur sómóni
TMM = Túrkmenskt manat (1993–2009)||0|1
TMT = Túrkmenskt manat
TND = Túniskur denari||3
TOP = Tongapanga
TPE = Tímorskur skúti|||1
TRL = Tyrknesk líra (1922–2005)||0|1
TRY = Tyrknesk líra
TTD = Trínidad og Tóbagó-dalur|$
TWD = Taívanskur dalur|NT$
TZS = Tansanískur skildingur||0
UAH = Úkraínsk hrinja|₴
UAK = Ukrainian Karbovanetz|||1
UGX = Úgandskur skildingur||0
USD = Bandaríkjadalur|$
USN = Bandaríkjadalur (næsta dag)|||1
USS = Bandaríkjadalur (sama dag)|||1
UYU = Úrúgvæskur pesi
UZS = Úsbekskt súm||0
VEB = Bolívar í Venesúela (1871–2008)|||1
VEF = Venesúelskur bólívari
VND = Víetnamskt dong|₫|0
VUV = Vanúatúskt vatú||0
WST = Samóatala
XAF = Miðafrískur franki|FCFA|0
XAG = unse silfur|||1
XAU = unse gull|||1
XCD = Austurkarabískur dalur|EC$
XDR = Sérstök dráttarréttindi|||1
XFO = Franskur gullfranki|||1
XFU = Franskur franki, UIC|||1
XOF = Vesturafrískur franki|CFA|0
XPD = unse palladín|||1
XPF = Pólinesískur franki|CFPF|0
XPT = unse platína|||1
XXX = Óþekktur gjaldmiðill|||1
YDD = Jemenskur denari|||1
YER = Jemenskt ríal||0
YUM = Júgóslavneskur denari|||1
ZAL = Rand (viðskipta)|||1
ZAR = Suðurafrískt rand
ZMK = Zambian Kwacha (1968–2012)||0|1
ZMW = Sambísk kvaka
ZWD = Simbabveskur dalur||0|1
