#*
#* © 2016 and later: Unicode, Inc. and others.
#* License & terms of use: http://www.unicode.org/copyright.html#License
#*******************************************************************************
#* Copyright (C) 2008-2011, International Business Machines Corporation and    *
#* others. All Rights Reserved.                                                *
#*******************************************************************************
#* This is the properties contains ICU runtime configuration 
#*

#
# The default TimeZone implementation type used by the ICU TimeZone
# factory method. [ ICU | JDK ]
#
com.ibm.icu.util.TimeZone.DefaultTimeZoneType = JDK

#
# By default, DecimalFormat uses some internal equivalent character
# data in addition to ones in DecimalFormatSymbols for parsing
# decimal/grouping separators.  When this property is true,
# DecimalFormat uses separators configured by DecimalFormatSymbols only
# and does not try to find a match in the internal equivalent character
# data.
#
com.ibm.icu.text.DecimalFormat.SkipExtendedSeparatorParsing = false


# 
# [Internal Use Only]
# Disable resource path scan for building full locale name list
# at run time.
#
com.ibm.icu.impl.ICUResourceBundle.skipRuntimeLocaleResourceScan = false
