Update ICU to 59.1

* Highlights:
  - Emoji 5.0 data (partial; Emoji_Component property not included)
  - CLDR 31.0.1 (http://blog.unicode.org/2017/03/cldr-version-31-released.html)
    UTC and GMT are treated as distinct)
  - New case mapping API for styled text
  - C++ 11 is required
  - char16_t for UChar (UTF-16)
  - Source code is in UTF-8

* Size changes

  common: 10,130,560 => 10,175,056
  android: 6,573,872 => 6,616,864
  iOS: 6,562,352 => 6,605,152

On top of ICU 59.1 from the upstream, the following changes were applied.
See https://chromium.googlesource.com/chromium/deps/icu/+log/chromium/59staging

  - Fix C++ 11 string literal assignment issue (upstream bug: 13192)
  - Fix C4229 warning by MSVC
  - Apply utf32.patch and include unistr.h in fuzzer_util
  - Update ICU data files
  - Fix wpo.patch
  - Apply Google locale patch and locale1.patch
  - update readme
  - Apply breakiterator related patches
  - Apply and update wpo.patch
  - Drop unused patch, apply data.build.win.patch, update README.chromium
  - Add /utf-8 flag for Windows/Visual Studio
  - Update BUILD.gn for UChar, stubdata and apply data_sym.patch
  - use stubdata.cpp instead of stubdata.c in icu.gyp
  - Update icu.gyp* files for v8
  - Update BUILD.gn, apply data.build.patch and vscomp.patch
  - Add new files in ICU 59.1
  - Get a fresh copy of ICU 59.1 from the upstream
  - Update update.sh script

TBR=drott@chromium.org, yangguo@chromium.org
Bug:699469
TEST: layout tests, all unittests, browser tests
Change-Id: Ie1e77323aa0c7f872153680c4deca6471a771a5c
Reviewed-on: https://chromium-review.googlesource.com/505173
Reviewed-by: Jungshik Shin <jshin@chromium.org>
diff --git a/APIChangeReport.html b/APIChangeReport.html
index 232f9b9..d56d69c 100644
--- a/APIChangeReport.html
+++ b/APIChangeReport.html
@@ -5,31 +5,31 @@
 	-->
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 57 with ICU 58</title>
+<title>ICU4C API Comparison: ICU 58 (update #1: 58.2) with ICU 59</title>
 <link type="text/css" href="icu4c.css" rel="stylesheet">
 </head>
 <body>
 <a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 57 with ICU 58</h1>
+<h1>ICU4C API Comparison: ICU 58 (update #1: 58.2) with ICU 59</h1>
 <div id="toc">
 <ul>
 <li>
-<a href="#removed">Removed from ICU 57</a>
+<a href="#removed">Removed from ICU 58</a>
 </li>
 <li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 58</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 59</a>
 </li>
 <li>
-<a href="#changed">Changed in  ICU 58</a>
+<a href="#changed">Changed in  ICU 59</a>
 </li>
 <li>
-<a href="#promoted">Promoted to stable in ICU 58</a>
+<a href="#promoted">Promoted to stable in ICU 59</a>
 </li>
 <li>
-<a href="#added">Added in ICU 58</a>
+<a href="#added">Added in ICU 59</a>
 </li>
 <li>
-<a href="#other">Other existing drafts in ICU 58</a>
+<a href="#other">Other existing drafts in ICU 59</a>
 </li>
 <li>
 <a href="#purevirtual">Signature Simplifications</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
@@ -38,1459 +38,35 @@
 <hr>
 </div>
 <a name="removed"></a>
-<h2>Removed from ICU 57</h2>
+<h2>Removed from ICU 58</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">const StringPiece&amp; icu::BytesTrie::Iterator::getString()</td><td class="stabchange">Stable<br>ICU 4.8</td><td>(missing)<br>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createEast(UErrorCode&amp;)</td><td class="">Draft<br>ICU 58</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder&amp; icu::BytesTrieBuilder::add(const StringPiece&amp;, int32_t, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.8</td><td>(missing)<br>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createNorth(UErrorCode&amp;)</td><td class="">Draft<br>ICU 58</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(const StringPiece&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createSouth(UErrorCode&amp;)</td><td class="">Draft<br>ICU 58</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const StringPiece&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>(missing)<br>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createWest(UErrorCode&amp;)</td><td class="">Draft<br>ICU 58</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(const StringPiece&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.4</td><td>(missing)<br>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_HAVE_RVALUE_REFERENCES</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(const StringPiece&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.4</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(const StringPiece&amp;, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(const StringPiece&amp;, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(const StringPiece&amp;, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(const StringPiece&amp;, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">UClassID icu::LayoutEngine::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">icu::LayoutEngine::~LayoutEngine()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">le_int32 icu::LayoutEngine::getGlyphCount()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">le_int32 icu::LayoutEngine::layoutChars(const LEUnicode chars[], le_int32, le_int32, le_int32, le_bool, float, float, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> LayoutEngine* icu::LayoutEngine::layoutEngineFactory(const LEFontInstance*, le_int32, le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> LayoutEngine* icu::LayoutEngine::layoutEngineFactory(const LEFontInstance*, le_int32, le_int32, le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> UClassID icu::LayoutEngine::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> const le_int32 icu::LayoutEngine::kTypoFlagKern</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> const le_int32 icu::LayoutEngine::kTypoFlagLiga</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getCharIndices(le_int32 charIndices[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphPosition(le_int32, float&amp;, float&amp;, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphPositions(float positions[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphs(LEGlyphID glyphs[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::reset()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32, const LECharMapper*)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32, const LECharMapper*, le_bool)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">LEUnicode32 icu::LECharMapper::mapChar(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">UClassID icu::LEFontInstance::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">const LEFontInstance* icu::LEFontInstance::getSubFont(const LEUnicode chars[], le_int32*, le_int32, le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">const void* icu::LEFontInstance::getFontTable(LETag, size_t&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getScaleFactorX()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getScaleFactorY()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getXPixelsPerEm()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getYPixelsPerEm()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::xPixelsToUnits(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::xUnitsToPoints(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::yPixelsToUnits(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::yUnitsToPoints(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">icu::LECharMapper::~LECharMapper()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">icu::LEFontInstance::~LEFontInstance()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_bool icu::LEFontInstance::canDisplay(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_bool icu::LEFontInstance::getGlyphPoint(LEGlyphID, le_int32, LEPoint&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getAscent()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getDescent()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getLeading()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getLineHeight()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getUnitsPerEM()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> UClassID icu::LEFontInstance::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> float icu::LEFontInstance::fixedToFloat(le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> le_int32 icu::LEFontInstance::floatToFixed(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::getGlyphAdvance(LEGlyphID, LEPoint&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32, le_int32, le_bool, const LECharMapper*, le_bool, LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::pixelsToUnits(LEPoint&amp;, LEPoint&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::transformFunits(float, float, LEPoint&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::unitsToPoints(LEPoint&amp;, LEPoint&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID icu::LEGlyphStorage::getGlyphID(le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID&amp; icu::LEGlyphStorage::operator[](le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID* icu::LEGlyphStorage::insertGlyphs(le_int32, le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID* icu::LEGlyphStorage::insertGlyphs(le_int32, le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">UClassID icu::LEGlyphStorage::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">icu::LEGlyphStorage::LEGlyphStorage()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">icu::LEGlyphStorage::~LEGlyphStorage()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::allocateAuxData(LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::allocatePositions(LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::applyInsertions()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::getCharIndex(le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::getGlyphCount()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_uint32 icu::LEGlyphStorage::getAuxData(le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto"><tt>static</tt> UClassID icu::LEGlyphStorage::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adjustPosition(le_int32, float, float, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptAuxDataArray(LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptCharIndicesArray(LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphArray(LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphCount(LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphCount(le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptPositionArray(LEGlyphStorage&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::allocateGlyphArray(le_int32, le_bool, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getAuxData(le_uint32 auxData[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getCharIndices(le_int32 charIndices[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getCharIndices(le_int32 charIndices[], le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphPosition(le_int32, float&amp;, float&amp;, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphPositions(float positions[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphs(LEGlyphID glyphs[], LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphs(le_uint32 glyphs[], le_uint32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::moveGlyph(le_int32, le_int32, le_uint32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::reset()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setAuxData(le_int32, le_uint32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setCharIndex(le_int32, le_int32, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setGlyphID(le_int32, LEGlyphID, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setPosition(le_int32, float, float, LEErrorCode&amp;)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LESwaps.h</td><td class="proto"><tt>#define</tt> SWAPL</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LESwaps.h</td><td class="proto"><tt>#define</tt> SWAPW</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LESwaps.h</td><td class="proto"><tt>static</tt> le_uint16 icu::LESwaps::swapWord(le_uint16)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LESwaps.h</td><td class="proto"><tt>static</tt> le_uint32 icu::LESwaps::swapLong(le_uint32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_AFRC_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ARRAY_COPY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ARRAY_SIZE</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ASSERT_BAD_FONT</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CHAR_FILTER_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIENT_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIENT_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CSWH_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DEBUG_BAD_FONT</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DEFAULT_FEATURE_FLAG</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DELETE_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_FAILURE</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_FRAC_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_CLIENT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_GLYPH</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_SUB_FONT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GLYPH_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GLYPH_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GROW_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_HLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_Kerning_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_LIGA_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_Ligatures_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_MAKE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_NALT_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_NEW_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RANGE_CHECK</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RUBY_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SALT_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_CLIENT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_GLYPH</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_SUB_FONT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SMCP_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS01_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS02_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS03_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS04_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS05_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS06_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS07_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUB_FONT_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUB_FONT_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUCCESS</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SWSH_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_UINT32_MAX</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_UINTPTR_MAX</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ZERO_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_FONT_FILE_NOT_FOUND_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_ILLEGAL_ARGUMENT_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_INDEX_OUT_OF_BOUNDS_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_INTERNAL_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_MEMORY_ALLOCATION_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_MISSING_FONT_TABLE_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_LAYOUT_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_SUBFONT_WARNING</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_AFRC_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CHAR_FILTER_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CSWH_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_DLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_FEATURE_ENUM_MAX</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_FRAC_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_HLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_Kerning_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_LIGA_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_Ligatures_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_NALT_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_RLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_RUBY_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SALT_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SMCP_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS01_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS02_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS03_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS04_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS05_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS06_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS07_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SWSH_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_ZERO_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AFRC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AKHN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_C2PC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_C2SC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CASE_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CCMP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CJCT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CPSP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CSWH_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CURS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DIST_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DNOM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_EXPT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FIN2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FIN3_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FINA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FRAC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HIST_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HKNA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HNGL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_INIT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ISOL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ITAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP78_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP83_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP90_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_KERN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LFBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LIGA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LOCL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MARK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MED2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MEDI_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MGRK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MKMK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MSET_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NLCK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NUKT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NUMR_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ONUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_OPBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ORDN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ORNM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PCAP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PREF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PRES_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PSTF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PSTS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_QWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RAND_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RKRF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RPHF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RTBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RTLA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RUBY_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SINF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SIZE_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SMCP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SMPL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS01_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS02_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS03_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS04_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS05_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS06_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS07_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS08_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS09_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS10_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS11_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS12_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS13_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS14_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS15_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS16_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS17_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS18_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS19_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS20_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SUBS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SUPS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SWSH_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TITL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TNAM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TRAD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_UNIC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VATU_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VERT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VHAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VKNA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VKRN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VPAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VRT2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ZERO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_ACNT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_AVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BASE_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BDAT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BHED_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BLOC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BSLN_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CFF__TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CMAP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CVT__TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_DSIG_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBDT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBLC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBSC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FDSC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FEAT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FPGM_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GASP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GDEF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GLYF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GPOS_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GSUB_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HDMX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HEAD_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HHEA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HSTY_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_JSTF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_JUST_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_KERN_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LCAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LOCA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LTSH_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MAXP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MORT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MORX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_NAME_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_OPBD_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_OS_2_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PCLT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_POST_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PREP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PROP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_TRAK_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VDMX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VHEA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VORG_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_ZAPF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const StringPiece&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(const StringPiece&amp;)</td><td class="stabchange">Stable<br>ICU 4.2</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>
+<td class="file">unistr.h</td><td class="proto"><tt>#define</tt> U_STRING_CASE_MAPPER_DEFINED</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 </table>
@@ -1498,1531 +74,618 @@
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 58</h2>
+<h2>Deprecated or Obsoleted in ICU 59</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt> 
-							icu::DateFormatSymbols::DtContextType::DT_CONTEXT_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">utmscale.h</td><td class="proto"><tt>enum</tt> UDateTimeScale::UDTS_MAX_SCALE</td><td class="stabchange">Stable<br>ICU 3.2</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt> 
-							icu::DateFormatSymbols::DtWidthType::DT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">measfmt.h</td><td class="proto"><tt>enum</tt> UMeasureFormatWidth::UMEASFMT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateDirection::UDAT_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeUnit::UDAT_RELATIVE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">tmunit.h</td><td class="proto"><tt>enum</tt> 
-							icu::TimeUnit::UTimeUnitFields::UTIMEUNIT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ubidi.h</td><td class="proto"><tt>#define</tt> U_BIDI_CLASS_DEFAULT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ubidi.h</td><td class="proto"><tt>enum</tt> UBiDiReorderingMode::UBIDI_REORDER_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ubrk.h</td><td class="proto"><tt>enum</tt> UBreakIteratorType::UBRK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UCalendarDateFields::UCAL_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBidiPairedBracketType::U_BPT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharDirection::U_CHAR_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharNameChoice::U_CHAR_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UDecompositionType::U_DT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UEastAsianWidth::U_EA_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UHangulSyllableType::U_HST_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningType::U_JT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UNumericType::U_NT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BINARY_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_DOUBLE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INT_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_MASK_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_OTHER_PROPERTY_LIMIT</td><td class="stabchange">Stable<br>ICU 4.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_STRING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UPropertyNameChoice::U_PROPERTY_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> USentenceBreak::U_SB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucnv.h</td><td class="proto"><tt>enum</tt> UConverterUnicodeSet::UCNV_SET_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttribute::UCOL_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttributeValue::UCOL_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColBoundMode::UCOL_BOUND_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColReorderCode::UCOL_REORDER_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrencyUsage::UCURR_USAGE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_BOOLEAN_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udata.h</td><td class="proto"><tt>enum</tt> UDataFileAccess::UDATA_FILE_ACCESS_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternConflict::UDATPG_CONFLICT_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternField::UDATPG_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uformattable.h</td><td class="proto"><tt>enum</tt> UFormattableType::UFMT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uloc.h</td><td class="proto"><tt>enum</tt> ULocDataLocaleType::ULOC_DATA_LOCALE_TYPE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataDelimiterType::ULOCDATA_DELIMITER_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataExemplarSetType::ULOCDATA_ES_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> UMeasurementSystem::UMS_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UCurrencySpacing::UNUM_CURRENCY_SPACING_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 49</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_FORMAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatSymbol::UNUM_FORMAT_SYMBOL_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">upluralrules.h</td><td class="proto"><tt>enum</tt> UPluralType::UPLURAL_TYPE_COUNT</td><td class="stabchange">Stable<br>ICU 50</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uregion.h</td><td class="proto"><tt>enum</tt> URegionType::URGN_LIMIT</td><td class="stabchange">Stable<br>ICU 51</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeDateTimeFormatterStyle::UDAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_COUNT</td><td class="">Draft<br>ICU 57</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ures.h</td><td class="proto"><tt>enum</tt> UResType::URES_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttribute::USEARCH_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uset.h</td><td class="proto"><tt>enum</tt> USetSpanCondition::USET_SPAN_CONDITION_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_ANY_CASE</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_COLLATION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_CONVERSION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_FUNCTION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_BRK_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_WARNING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_FMT_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_IDNA_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PLUGIN_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_REGEX_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_STANDARD_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">utmscale.h</td><td class="proto"><tt>enum</tt> UTimeScaleValue::UTSV_MAX_SCALE_VALUE</td><td class="stabchange">Stable<br>ICU 3.2</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 59</span></span></td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="changed"></a>
-<h2>Changed in  ICU 58 (old, new)</h2>
+<h2>Changed in  ICU 59 (old, new)</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(double, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilePerGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramPerDeciliter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(int64_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMillimolePerLiter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt> 
-							icu::DateFormatSymbols::DtContextType::DT_CONTEXT_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPartPerMillion(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt> 
-							icu::DateFormatSymbols::DtWidthType::DT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::format(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetBaseSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::formatNumeric(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">SimpleFormatter&amp; icu::SimpleFormatter::operator=(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous) {}</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPattern(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous)::DONT_CARE</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPatternMinMaxArguments(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString icu::SimpleFormatter::getTextWithNoArguments()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::suppressBreakAfter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::unsuppressBreakAfter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">icu::FilteredBreakIteratorBuilder::~FilteredBreakIteratorBuilder()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndAppend(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(const Locale&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndReplace(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">icu::LocalArray&lt; T &gt;::LocalArray(T*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray&lt; T &gt;::adoptInsteadAndCheckErrorCode(T*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray&lt; T &gt;::swap(LocalArray&lt; T &gt;&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalPointer&lt; T &gt;::swap(LocalPointer&lt; T &gt;&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measfmt.h</td><td class="proto"><tt>enum</tt> UMeasureFormatWidth::UMEASFMT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::~SimpleFormatter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCentury(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">int32_t icu::SimpleFormatter::getArgumentLimit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCupMetric(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER_BASE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGenericTemperature(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKnot(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_PRESENTATION</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createLiterPer100Kilometers(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMileScandinavian(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_AM_PM_MIDNIGHT_NOON_FIELD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPintMetric(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">ureldatefmt.h</td><td class="proto">URelativeDateTimeFormatter* ureldatefmt_open(const char*, UNumberFormat*, UDateRelativeDateTimeFormatterStyle, UDisplayContext, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createRevolutionAngle(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_DAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const Formattable&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_FRIDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(double, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_HOUR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MINUTE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(int64_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONTH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateDirection::UDAT_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_QUARTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeUnit::UDAT_RELATIVE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SATURDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">tmunit.h</td><td class="proto"><tt>enum</tt> 
-							icu::TimeUnit::UTimeUnitFields::UTIMEUNIT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SECOND</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">ubidi.h</td><td class="proto"><tt>#define</tt> U_BIDI_CLASS_DEFAULT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SUNDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">ubidi.h</td><td class="proto"><tt>enum</tt> UBiDiReorderingMode::UBIDI_REORDER_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_THURSDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">ubrk.h</td><td class="proto"><tt>enum</tt> UBreakIteratorType::UBRK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_TUESDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UCalendarDateFields::UCAL_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEDNESDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBidiPairedBracketType::U_BPT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEEK</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_YEAR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharDirection::U_CHAR_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter*, const UChar*, int32_t, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharNameChoice::U_CHAR_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_format(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UDecompositionType::U_DT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UEastAsianWidth::U_EA_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto">void ureldatefmt_close(URelativeDateTimeFormatter*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">utmscale.h</td><td class="proto"><tt>enum</tt> UDateTimeScale::UDTS_MAX_SCALE</td><td class="stabchange">Stable<br>ICU 3.2</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_PREPEND</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_SPACING_MARK</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UHangulSyllableType::U_HST_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningType::U_JT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_CLOSE_PARENTHESIS</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_CONDITIONAL_JAPANESE_STARTER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 49</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_H2</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_H3</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_HEBREW_LETTER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 49</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JL</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JV</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_NEXT_LINE</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.6</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_WORD_JOINER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.6</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UNumericType::U_NT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BINARY_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_DOUBLE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INT_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_MASK_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_OTHER_PROPERTY_LIMIT</td><td class="stabchange">Stable<br>ICU 4.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_STRING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UPropertyNameChoice::U_PROPERTY_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> USentenceBreak::U_SB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_CR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_DOUBLE_QUOTE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_EXTEND</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_HEBREW_LETTER</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_LF</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_MIDNUMLET</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_NEWLINE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_SINGLE_QUOTE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucnv.h</td><td class="proto"><tt>enum</tt> UConverterUnicodeSet::UCNV_SET_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttribute::UCOL_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttributeValue::UCOL_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColBoundMode::UCOL_BOUND_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColReorderCode::UCOL_REORDER_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrencyUsage::UCURR_USAGE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_BOOLEAN_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_PARTIAL_LITERAL_MATCH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udata.h</td><td class="proto"><tt>enum</tt> UDataFileAccess::UDATA_FILE_ACCESS_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternConflict::UDATPG_CONFLICT_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternField::UDATPG_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uformattable.h</td><td class="proto"><tt>enum</tt> UFormattableType::UFMT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uloc.h</td><td class="proto"><tt>enum</tt> ULocDataLocaleType::ULOC_DATA_LOCALE_TYPE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataDelimiterType::ULOCDATA_DELIMITER_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataExemplarSetType::ULOCDATA_ES_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> UMeasurementSystem::UMS_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>#define</tt> UNISTR_OBJECT_SIZE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">void icu::UnicodeString::swap(UnicodeString&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UCurrencySpacing::UNUM_CURRENCY_SPACING_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 49</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_CURRENCY_STANDARD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_LONG</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_SHORT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_FORMAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatSymbol::UNUM_FORMAT_SYMBOL_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">upluralrules.h</td><td class="proto"><tt>enum</tt> UPluralType::UPLURAL_TYPE_COUNT</td><td class="stabchange">Stable<br>ICU 50</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uregion.h</td><td class="proto"><tt>enum</tt> URegionType::URGN_LIMIT</td><td class="stabchange">Stable<br>ICU 51</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeDateTimeFormatterStyle::UDAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_COUNT</td><td class="">Draft<br>ICU 57</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ures.h</td><td class="proto"><tt>enum</tt> UResType::URES_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttribute::USEARCH_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uset.h</td><td class="proto"><tt>enum</tt> USetSpanCondition::USET_SPAN_CONDITION_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_ANY_CASE</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUTF8(const USpoofChecker*, const char*, int32_t, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUnicodeString(const USpoofChecker*, const icu::UnicodeString&amp;, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_COLLATION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_CONVERSION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_FUNCTION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="">Deprecated<br>ICU 54</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_BRK_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_WARNING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_FMT_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_IDNA_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PLUGIN_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_REGEX_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_STANDARD_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">utmscale.h</td><td class="proto"><tt>enum</tt> UTimeScaleValue::UTSV_MAX_SCALE_VALUE</td><td class="stabchange">Stable<br>ICU 3.2</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 59</span></span></td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="promoted"></a>
-<h2>Promoted to stable in ICU 58</h2>
+<h2>Promoted to stable in ICU 59</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">StringPiece icu::BytesTrie::Iterator::getString()</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::operator=(LocalArray&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder&amp; icu::BytesTrieBuilder::add(StringPiece, int32_t, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::operator=(LocalPointer&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">localpointer.h</td><td class="proto">icu::LocalArray&lt; T &gt;::LocalArray(LocalArray&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">localpointer.h</td><td class="proto">icu::LocalPointer&lt; T &gt;::LocalPointer(LocalPointer&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetBaseSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilePerGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous) {}</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramPerDeciliter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous)::DONT_CARE</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMillimolePerLiter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPartPerMillion(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::suppressBreakAfter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::format(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::unsuppressBreakAfter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::formatNumeric(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">icu::FilteredBreakIteratorBuilder::~FilteredBreakIteratorBuilder()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">SimpleFormatter&amp; icu::SimpleFormatter::operator=(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPattern(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(const Locale&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPatternMinMaxArguments(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString icu::SimpleFormatter::getTextWithNoArguments()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndAppend(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndReplace(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">icu::LocalArray&lt; T &gt;::LocalArray(T*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray&lt; T &gt;::adoptInsteadAndCheckErrorCode(T*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray&lt; T &gt;::swap(LocalArray&lt; T &gt;&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalPointer&lt; T &gt;::swap(LocalPointer&lt; T &gt;&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCentury(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::~SimpleFormatter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCupMetric(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">simpleformatter.h</td><td class="proto">int32_t icu::SimpleFormatter::getArgumentLimit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGenericTemperature(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER_BASE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKnot(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createLiterPer100Kilometers(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_PRESENTATION</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMileScandinavian(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPintMetric(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_AM_PM_MIDNIGHT_NOON_FIELD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createRevolutionAngle(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::operator=(UnicodeString&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(UnicodeString&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto">URelativeDateTimeFormatter* ureldatefmt_open(const char*, UNumberFormat*, UDateRelativeDateTimeFormatterStyle, UDisplayContext, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_DAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_FRIDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GLAGOLITIC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_HOUR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MINUTE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MONGOLIAN_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONTH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_QUARTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SATURDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT_COMPONENTS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SECOND</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SUNDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_THURSDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_TUESDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEDNESDAY</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEEK</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_YEAR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_FEH</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter*, const UChar*, int32_t, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_NOON</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_format(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_QAF</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_PARTIAL_LITERAL_MATCH</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto"><tt>#define</tt> UNISTR_OBJECT_SIZE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(StringPiece)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.2</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">void icu::UnicodeString::swap(UnicodeString&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_CURRENCY_STANDARD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_LONG</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_SHORT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HAN_WITH_BOPOMOFO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_JAMO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SYMBOLS_EMOJI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUTF8(const USpoofChecker*, const char*, int32_t, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUnicodeString(const USpoofChecker*, const icu::UnicodeString&amp;, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="">Deprecated<br>ICU 54</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">ureldatefmt.h</td><td class="proto">void ureldatefmt_close(URelativeDateTimeFormatter*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 57</td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="added"></a>
-<h2>Added in ICU 58</h2>
+<h2>Added in ICU 59</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">StringPiece icu::BytesTrie::Iterator::getString()</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::fold(uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder&amp; icu::BytesTrieBuilder::add(StringPiece, int32_t, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toLower(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toTitle(const char*, uint32_t, BreakIterator*, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toUpper(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8Fold(uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToLower(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToUpper(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">char16_t* icu::Char16Ptr::get()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(StringPiece, ByteSink&amp;, IDNAInfo&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">const char16_t* icu::ConstChar16Ptr::get()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measfmt.h</td><td class="proto">UnicodeString icu::MeasureFormat::getUnitDisplayName(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(char16_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createEast(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(std::nullptr_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createNorth(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(uint16_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createSouth(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(wchar_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createWest(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::operator char16_t* ()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::~Char16Ptr()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">tznames.h</td><td class="proto">void icu::TimeZoneNames::getDisplayNames(const UnicodeString&amp;, const UTimeZoneNameType types[], int32_t, UDate, UnicodeString dest[], UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const char16_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">tznames.h</td><td class="proto">void icu::TimeZoneNames::loadAllDisplayNames(UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const uint16_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const wchar_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::operator const char16_t* ()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::~ConstChar16Ptr()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseChangesIterator()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseIterator()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineChangesIterator()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineIterator()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">UBool icu::Edits::copyErrorTo(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">UBool icu::Edits::hasChanges()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">icu::Edits::~Edits()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::lengthDelta()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">void icu::Edits::addReplace(int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">void icu::Edits::addUnchanged(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">void icu::Edits::reset()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::operator=(LocalArray&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::operator=(LocalPointer&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">localpointer.h</td><td class="proto">icu::LocalArray&lt; T &gt;::LocalArray(LocalArray&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">localpointer.h</td><td class="proto">icu::LocalPointer&lt; T &gt;::LocalPointer(LocalPointer&lt; T &gt;&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPoint(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_PLATFORM_HAS_WINUWP_API</td><td class="">(missing)</td><td>Internal<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto">UBiDiTransform* ubiditransform_open(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const Formattable&amp;, const NumberFormat&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_OFF</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_openBinaryRules(const uint8_t*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_ON</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">ubrk.h</td><td class="proto">int32_t ubrk_getBinaryRules(UBreakIterator*, uint8_t*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_LOGICAL</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">ucasemap.h</td><td class="proto"><tt>#define</tt> UCASEMAP_OMIT_UNCHANGED_TEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_VISUAL</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto">uint32_t ubiditransform_transform(UBiDiTransform*, const UChar*, int32_t, UChar*, int32_t, UBiDiLevel, UBiDiOrder, UBiDiLevel, UBiDiOrder, UBiDiMirroring, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto">void ubiditransform_close(UBiDiTransform*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GLAGOLITIC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MONGOLIAN_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT_COMPONENTS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_FEH</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_NOON</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_QAF</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_NO_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContextType::UDISPCTX_TYPE_SUBSTITUTE_HANDLING</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(StringPiece)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.2</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HAN_WITH_BOPOMOFO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_JAMO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SYMBOLS_EMOJI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">URestrictionLevel uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">USpoofCheckResult* uspoof_openCheckResult(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer,,)</td><td class="">(missing)</td><td>
-<br>
-<span class=""><span></span>
-<br>
-<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">U_NAMESPACE_END int32_t uspoof_getCheckResultChecks(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">const USet* uspoof_getCheckResultNumerics(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> URestrictionLevel::USPOOF_UNDEFINED_RESTRICTIVE</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_CHAR16_IS_TYPEDEF</td><td class="">(missing)</td><td>Internal<br>
 <span class=""><span></span></span></td>
 </tr>
+<tr class="row0">
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_CONFUSABLE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2(const USpoofChecker*, const UChar*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::operator=(UnicodeString&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UTF8(const USpoofChecker*, const char*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(UnicodeString&amp;&amp;) U_NOEXCEPT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 56</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UnicodeString(const USpoofChecker*, const icu::UnicodeString&amp;, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">void uspoof_closeCheckResult(USpoofCheckResult*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const uint16_t*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const wchar_t*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(std::nullptr_t, int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(uint16_t*, int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(wchar_t*, int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unum.h</td><td class="proto">int32_t unum_formatDoubleForFields(const UNumberFormat*, double, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">upluralrules.h</td><td class="proto">UEnumeration* uplrules_getKeywords(const UPluralRules*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 59</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">upluralrules.h</td><td class="proto">int32_t uplrules_selectWithFormat(const UPluralRules*, double, const UNumberFormat*, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 59</span></span></td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="other"></a>
-<h2>Other existing drafts in ICU 58</h2>
+<h2>Other existing drafts in ICU 59</h2>
 <div class="other">
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 58</th><th>ICU 59</th>
 </tr>
 </THEAD>
 <tr class="row1">
@@ -3032,88 +695,40 @@
 <td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
 </tr>
 <tr class="row1">
+<td class="file">measfmt.h</td><td class="proto">UnicodeString icu::MeasureFormat::getUnitDisplayName(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
+</tr>
+<tr class="row0">
 <td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
 </tr>
+<tr class="row1">
+<td class="file">ubiditransform.h</td><td class="proto">UBiDiTransform* ubiditransform_open(UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
+</tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_OFF</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilePerGallonImperial(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_ON</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramPerDeciliter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_LOGICAL</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMillimolePerLiter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_VISUAL</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPartPerMillion(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto">uint32_t ubiditransform_transform(UBiDiTransform*, const UChar*, int32_t, UChar*, int32_t, UBiDiLevel, UBiDiOrder, UBiDiLevel, UBiDiOrder, UBiDiMirroring, uint32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::format(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubiditransform.h</td><td class="proto">void ubiditransform_close(UBiDiTransform*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto">UnicodeString&amp; icu::RelativeDateTimeFormatter::formatNumeric(double, URelativeDateTimeUnit, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_NO_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">SimpleFormatter&amp; icu::SimpleFormatter::operator=(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPattern(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPatternMinMaxArguments(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString icu::SimpleFormatter::getTextWithNoArguments()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::format(const UnicodeString&amp;, const UnicodeString&amp;, const UnicodeString&amp;, UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndAppend(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString&amp; icu::SimpleFormatter::formatAndReplace(const UnicodeString* const*, int32_t, UnicodeString&amp;, int32_t*, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const SimpleFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&amp;, int32_t, int32_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::~SimpleFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">int32_t icu::SimpleFormatter::getArgumentLimit()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER_BASE</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_PRESENTATION</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_AM_PM_MIDNIGHT_NOON_FIELD</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContextType::UDISPCTX_TYPE_SUBSTITUTE_HANDLING</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
 <td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
@@ -3122,64 +737,31 @@
 <td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
 </tr>
 <tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">URelativeDateTimeFormatter* ureldatefmt_open(const char*, UNumberFormat*, UDateRelativeDateTimeFormatterStyle, UDisplayContext, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">URestrictionLevel uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_DAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">USpoofCheckResult* uspoof_openCheckResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_FRIDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">U_NAMESPACE_END int32_t uspoof_getCheckResultChecks(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_HOUR</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">const USet* uspoof_getCheckResultNumerics(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MINUTE</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_CONFUSABLE</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2(const USpoofChecker*, const UChar*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONTH</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UTF8(const USpoofChecker*, const char*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_QUARTER</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UnicodeString(const USpoofChecker*, const icu::UnicodeString&amp;, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 <tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SATURDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SECOND</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SUNDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_THURSDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_TUESDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEDNESDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEEK</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_YEAR</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter*, const UChar*, int32_t, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_format(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto">void ureldatefmt_close(URelativeDateTimeFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">uspoof.h</td><td class="proto">void uspoof_closeCheckResult(USpoofCheckResult*)</td><td class="" colspan="2" align="center">Draft<br>ICU 58</td>
 </tr>
 </table>
 </div>
@@ -3197,7 +779,7 @@
 <a href="#_top">(jump back to top)</a>
 <hr>
 <p>
-<i><font size="-1">Contents generated by StableAPI tool on Thu Sep 22 11:14:21 PDT 2016<br>Copyright (C) 2016, International Business Machines Corporation, All Rights Reserved.</font></i>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Apr 05 23:17:58 UTC 2017<br>Copyright (C) 2017, International Business Machines Corporation, All Rights Reserved.</font></i>
 </p>
 </body>
 </html>
diff --git a/BUILD.gn b/BUILD.gn
index 30de807..7c38dbb 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -51,6 +51,12 @@
       defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ]
     }
   }
+
+  if (is_win) {
+    defines += [ "UCHAR_TYPE=wchar_t" ]
+  } else {
+    defines += [ "UCHAR_TYPE=uint16_t" ]
+  }
 }
 
 # Config used only by ICU code.
@@ -75,6 +81,7 @@
       "/wd4267",  # Conversion from size_t on 64-bits.
       # http://bugs.icu-project.org/trac/ticket/12821
       "/wd4333",  # Right shift by too large amount.
+      "/utf-8",   # ICU source files are in UTF-8.
     ]
   } else if (is_linux || is_android) {
     cflags += [
@@ -200,7 +207,7 @@
     "source/i18n/dayperiodrules.h",
     "source/i18n/dcfmtimp.h",
     "source/i18n/dcfmtsym.cpp",
-    "source/i18n/decContext.c",
+    "source/i18n/decContext.cpp",
     "source/i18n/decContext.h",
     "source/i18n/decfmtst.cpp",
     "source/i18n/decfmtst.h",
@@ -210,7 +217,7 @@
     "source/i18n/decimfmt.cpp",
     "source/i18n/decimfmtimpl.cpp",
     "source/i18n/decimfmtimpl.h",
-    "source/i18n/decNumber.c",
+    "source/i18n/decNumber.cpp",
     "source/i18n/decNumber.h",
     "source/i18n/decNumberLocal.h",
     "source/i18n/digitaffix.cpp",
@@ -394,7 +401,7 @@
     "source/i18n/ufieldpositer.cpp",
     "source/i18n/uitercollationiterator.cpp",
     "source/i18n/uitercollationiterator.h",
-    "source/i18n/ulocdata.c",
+    "source/i18n/ulocdata.cpp",
     "source/i18n/umsg.cpp",
     "source/i18n/umsg_imp.h",
     "source/i18n/unesctrn.cpp",
@@ -419,7 +426,7 @@
     "source/i18n/utf16collationiterator.h",
     "source/i18n/utf8collationiterator.cpp",
     "source/i18n/utf8collationiterator.h",
-    "source/i18n/utmscale.c",
+    "source/i18n/utmscale.cpp",
     "source/i18n/utrans.cpp",
     "source/i18n/valueformatter.cpp",
     "source/i18n/valueformatter.h",
@@ -560,25 +567,26 @@
     "source/common/chariter.cpp",
     "source/common/charstr.cpp",
     "source/common/charstr.h",
-    "source/common/cmemory.c",
+    "source/common/cmemory.cpp",
     "source/common/cmemory.h",
     "source/common/cpputils.h",
     "source/common/cstr.cpp",
     "source/common/cstr.h",
-    "source/common/cstring.c",
+    "source/common/cstring.cpp",
     "source/common/cstring.h",
-    "source/common/cwchar.c",
+    "source/common/cwchar.cpp",
     "source/common/cwchar.h",
     "source/common/dictbe.cpp",
     "source/common/dictbe.h",
     "source/common/dictionarydata.cpp",
     "source/common/dictionarydata.h",
     "source/common/dtintrv.cpp",
+    "source/common/edits.cpp",
     "source/common/errorcode.cpp",
     "source/common/filteredbrk.cpp",
     "source/common/filterednormalizer2.cpp",
     "source/common/hash.h",
-    "source/common/icudataver.c",
+    "source/common/icudataver.cpp",
     "source/common/icuplug.cpp",
     "source/common/icuplugimp.h",
     "source/common/listformatter.cpp",
@@ -591,7 +599,7 @@
     "source/common/locdspnm.cpp",
     "source/common/locid.cpp",
     "source/common/loclikely.cpp",
-    "source/common/locmap.c",
+    "source/common/locmap.cpp",
     "source/common/locmap.h",
     "source/common/locresdata.cpp",
     "source/common/locutil.cpp",
@@ -614,7 +622,7 @@
     "source/common/propname.cpp",
     "source/common/propname_data.h",
     "source/common/propname.h",
-    "source/common/propsvec.c",
+    "source/common/propsvec.cpp",
     "source/common/propsvec.h",
     "source/common/punycode.cpp",
     "source/common/punycode.h",
@@ -658,26 +666,27 @@
     "source/common/sprpimpl.h",
     "source/common/stringpiece.cpp",
     "source/common/stringtriebuilder.cpp",
-    "source/common/uarrsort.c",
+    "source/common/uarrsort.cpp",
     "source/common/uarrsort.h",
     "source/common/uassert.h",
-    "source/common/ubidi.c",
+    "source/common/ubidi.cpp",
     "source/common/ubidiimp.h",
-    "source/common/ubidiln.c",
-    "source/common/ubidi_props.c",
+    "source/common/ubidiln.cpp",
+    "source/common/ubidi_props.cpp",
     "source/common/ubidi_props_data.h",
     "source/common/ubidi_props.h",
-    "source/common/ubiditransform.c",
-    "source/common/ubidiwrt.c",
+    "source/common/ubiditransform.cpp",
+    "source/common/ubidiwrt.cpp",
     "source/common/ubrk.cpp",
     "source/common/ubrkimpl.h",
     "source/common/ucase.cpp",
     "source/common/ucase.h",
     "source/common/ucasemap.cpp",
+    "source/common/ucasemap_imp.h",
     "source/common/ucasemap_titlecase_brkiter.cpp",
     "source/common/ucase_props_data.h",
-    "source/common/ucat.c",
-    "source/common/uchar.c",
+    "source/common/ucat.cpp",
+    "source/common/uchar.cpp",
     "source/common/uchar_props_data.h",
     "source/common/ucharstriebuilder.cpp",
     "source/common/ucharstrie.cpp",
@@ -687,68 +696,68 @@
     "source/common/ucln_cmn.h",
     "source/common/ucln.h",
     "source/common/ucln_imp.h",
-    "source/common/ucmndata.c",
+    "source/common/ucmndata.cpp",
     "source/common/ucmndata.h",
     "source/common/ucnv2022.cpp",
     "source/common/ucnv_bld.cpp",
     "source/common/ucnv_bld.h",
     "source/common/ucnvbocu.cpp",
-    "source/common/ucnv.c",
-    "source/common/ucnv_cb.c",
-    "source/common/ucnv_cnv.c",
+    "source/common/ucnv_cb.cpp",
+    "source/common/ucnv_cnv.cpp",
     "source/common/ucnv_cnv.h",
-    "source/common/ucnv_ct.c",
-    "source/common/ucnvdisp.c",
-    "source/common/ucnv_err.c",
+    "source/common/ucnv.cpp",
+    "source/common/ucnv_ct.cpp",
+    "source/common/ucnvdisp.cpp",
+    "source/common/ucnv_err.cpp",
     "source/common/ucnv_ext.cpp",
     "source/common/ucnv_ext.h",
-    "source/common/ucnvhz.c",
+    "source/common/ucnvhz.cpp",
     "source/common/ucnv_imp.h",
     "source/common/ucnv_io.cpp",
     "source/common/ucnv_io.h",
-    "source/common/ucnvisci.c",
-    "source/common/ucnvlat1.c",
-    "source/common/ucnv_lmb.c",
+    "source/common/ucnvisci.cpp",
+    "source/common/ucnvlat1.cpp",
+    "source/common/ucnv_lmb.cpp",
     "source/common/ucnvmbcs.cpp",
     "source/common/ucnvmbcs.h",
-    "source/common/ucnvscsu.c",
+    "source/common/ucnvscsu.cpp",
     "source/common/ucnvsel.cpp",
-    "source/common/ucnv_set.c",
-    "source/common/ucnv_u16.c",
-    "source/common/ucnv_u32.c",
-    "source/common/ucnv_u7.c",
-    "source/common/ucnv_u8.c",
+    "source/common/ucnv_set.cpp",
+    "source/common/ucnv_u16.cpp",
+    "source/common/ucnv_u32.cpp",
+    "source/common/ucnv_u7.cpp",
+    "source/common/ucnv_u8.cpp",
     "source/common/ucol_data.h",
     "source/common/ucol_swp.cpp",
     "source/common/ucol_swp.h",
     "source/common/ucurr.cpp",
     "source/common/ucurrimp.h",
     "source/common/udata.cpp",
-    "source/common/udatamem.c",
+    "source/common/udatamem.cpp",
     "source/common/udatamem.h",
-    "source/common/udataswp.c",
+    "source/common/udataswp.cpp",
     "source/common/udataswp.h",
     "source/common/uelement.h",
-    "source/common/uenum.c",
+    "source/common/uenum.cpp",
     "source/common/uenumimp.h",
-    "source/common/uhash.c",
+    "source/common/uhash.cpp",
     "source/common/uhash.h",
     "source/common/uhash_us.cpp",
     "source/common/uidna.cpp",
     "source/common/uinit.cpp",
-    "source/common/uinvchar.c",
+    "source/common/uinvchar.cpp",
     "source/common/uinvchar.h",
     "source/common/uiter.cpp",
-    "source/common/ulist.c",
+    "source/common/ulist.cpp",
     "source/common/ulistformatter.cpp",
     "source/common/ulist.h",
     "source/common/uloc.cpp",
     "source/common/ulocimp.h",
     "source/common/uloc_keytype.cpp",
-    "source/common/uloc_tag.c",
-    "source/common/umapfile.c",
+    "source/common/uloc_tag.cpp",
+    "source/common/umapfile.cpp",
     "source/common/umapfile.h",
-    "source/common/umath.c",
+    "source/common/umath.cpp",
     "source/common/umutex.cpp",
     "source/common/umutex.h",
     "source/common/unames.cpp",
@@ -776,14 +785,14 @@
     "source/common/uprops.cpp",
     "source/common/uprops.h",
     "source/common/uresbund.cpp",
-    "source/common/ures_cnv.c",
+    "source/common/ures_cnv.cpp",
     "source/common/uresdata.cpp",
     "source/common/uresdata.h",
     "source/common/uresimp.h",
     "source/common/ureslocs.h",
-    "source/common/usc_impl.c",
+    "source/common/usc_impl.cpp",
     "source/common/usc_impl.h",
-    "source/common/uscript.c",
+    "source/common/uscript.cpp",
     "source/common/uscript_props.cpp",
     "source/common/uset.cpp",
     "source/common/uset_imp.h",
@@ -798,7 +807,7 @@
     "source/common/ustr_cnv.h",
     "source/common/ustrenum.cpp",
     "source/common/ustrenum.h",
-    "source/common/ustrfmt.c",
+    "source/common/ustrfmt.cpp",
     "source/common/ustrfmt.h",
     "source/common/ustr_imp.h",
     "source/common/ustring.cpp",
@@ -806,11 +815,11 @@
     "source/common/ustrtrns.cpp",
     "source/common/ustr_wcs.cpp",
     "source/common/utext.cpp",
-    "source/common/utf_impl.c",
+    "source/common/utf_impl.cpp",
     "source/common/util.cpp",
     "source/common/util.h",
     "source/common/util_props.cpp",
-    "source/common/utrace.c",
+    "source/common/utrace.cpp",
     "source/common/utracimp.h",
     "source/common/utrie2_builder.cpp",
     "source/common/utrie2.cpp",
@@ -820,14 +829,14 @@
     "source/common/utrie.h",
     "source/common/uts46.cpp",
     "source/common/utypeinfo.h",
-    "source/common/utypes.c",
+    "source/common/utypes.cpp",
     "source/common/uvector.cpp",
     "source/common/uvector.h",
     "source/common/uvectr32.cpp",
     "source/common/uvectr32.h",
     "source/common/uvectr64.cpp",
     "source/common/uvectr64.h",
-    "source/common/wintz.c",
+    "source/common/wintz.cpp",
     "source/common/wintz.h",
   ]
 
@@ -839,10 +848,13 @@
     "source/common/unicode/bytestriebuilder.h",
     "source/common/unicode/bytestrie.h",
     "source/common/unicode/caniter.h",
+    "source/common/unicode/casemap.h",
+    "source/common/unicode/char16ptr.h",
     "source/common/unicode/chariter.h",
     "source/common/unicode/dbbi.h",
     "source/common/unicode/docmain.h",
     "source/common/unicode/dtintrv.h",
+    "source/common/unicode/edits.h",
     "source/common/unicode/enumset.h",
     "source/common/unicode/errorcode.h",
     "source/common/unicode/filteredbrk.h",
@@ -948,7 +960,7 @@
   public_configs = [ ":icu_config" ]
 
   if (is_win || icu_use_data_file) {
-    sources += [ "source/stubdata/stubdata.c" ]
+    sources += [ "source/stubdata/stubdata.cpp" ]
     defines += [ "U_ICUDATAENTRY_IN_COMMON" ]
   }
 }
diff --git a/LICENSE b/LICENSE
index 90be7cd..c5295da 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
 
-Copyright © 1991-2016 Unicode, Inc. All rights reserved.
+Copyright © 1991-2017 Unicode, Inc. All rights reserved.
 Distributed under the Terms of Use in http://www.unicode.org/copyright.html
 
 Permission is hereby granted, free of charge, to any person obtaining
diff --git a/README.chromium b/README.chromium
index 14dad32..6b1850e 100644
--- a/README.chromium
+++ b/README.chromium
@@ -180,12 +180,12 @@
    c. Other locales in Accept-Language list : will only have bare minimum
    locale data
 
-  - brklocal.mk drops all *loose.brk to save space ( ~370kB) for now.
+  - brklocal.mk drops some line*brk files to save space for now.
 
 3. source/data/brkitr
-  - khmerdict.txt: Abridged Khmer dictionary. See
+  - dictionaries/khmerdict.txt: Abridged Khmer dictionary. See
     http://bugs.icu-project.org/trac/ticket/9451
-  - word_ja.txt (used only on Android)
+  - rules/word_ja.txt (used only on Android)
     Added for Japanese-specific word-breaking without the C+J dictionary.
 
 4. source/data/trnslit/root_subset.txt
@@ -244,9 +244,9 @@
      windowsZones.txt
      zoneinfo64.txt
 
-  As of Dec 7, 2016, the latest version is 2016j and the above files
+  As of May 8, 2017, the latest version is 2017b and the above files
   are available at
-  http://source.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2016j/44/
+  http://source.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2017b/44/
 
 4. Build-related changes
 
@@ -272,15 +272,18 @@
 
    - patches/utf32.patch
 
-6. Fix four bugs found in 58.1 that will fixed in 58.1 maintenance release
+6. Don't use '__cdecl' for function arguments (as opposed to functions)
+   in uclean.h to make MSVC happy (C4229 warning).
 
-   upstream bugs:
-     http://www.icu-project.org/trac/ticket/12825 (scriptset)
-     http://www.icu-project.org/trac/ticket/12815 (uspoof)
-     http://www.icu-project.org/trac/ticket/12822 (without std::string on Win)
-     http://www.icu-project.org/trac/ticket/12832 (greek_upper)
+   http://www.icu-project.org/trac/ticket/13030
 
-   - patches/scriptset.patch
-   - patches/uspoof.patch
-   - patches/digilist.patch
-   - patches/greek_upper.patch
+   - patches/msvc4229.patch
+
+7. C++ 11 does not allow a string literal to be assigned to a variable
+   of char*.
+
+   http://www.icu-project.org/trac/ticket/13192
+
+   - patches/string_literal_charptr.patch
+
+   
diff --git a/android/icudtl.dat b/android/icudtl.dat
index a333180..7a889dc 100644
--- a/android/icudtl.dat
+++ b/android/icudtl.dat
Binary files differ
diff --git a/common/icudtb.dat b/common/icudtb.dat
index 230e61f..0c79bbe 100644
--- a/common/icudtb.dat
+++ b/common/icudtb.dat
Binary files differ
diff --git a/common/icudtl.dat b/common/icudtl.dat
index f8c4741..2e371e8 100644
--- a/common/icudtl.dat
+++ b/common/icudtl.dat
Binary files differ
diff --git a/fuzzers/fuzzer_utils.h b/fuzzers/fuzzer_utils.h
index 8b3161a..df69966 100644
--- a/fuzzers/fuzzer_utils.h
+++ b/fuzzers/fuzzer_utils.h
@@ -11,6 +11,7 @@
 #include "base/i18n/icu_util.h"
 #include "third_party/icu/source/common/unicode/locid.h"
 #include "third_party/icu/source/common/unicode/uchar.h"
+#include "third_party/icu/source/common/unicode/unistr.h"
 
 struct IcuEnvironment {
   IcuEnvironment() {
diff --git a/icu.gyp b/icu.gyp
index 86b457e..096e393 100644
--- a/icu.gyp
+++ b/icu.gyp
@@ -37,6 +37,16 @@
           'U_STATIC_IMPLEMENTATION',
         ],
       }],
+      ['OS=="win"', {
+        'defines': [
+          'UCHAR_TYPE=wchar_t',
+        ],
+	'cflags': [ '/utf-8' ],
+      },{
+        'defines': [
+          'UCHAR_TYPE=uint16_t',
+        ],
+      }],
       ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
          or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \
         (target_arch=="arm" or target_arch=="ia32" or \
@@ -428,7 +438,7 @@
             }],
             [ 'OS == "win" or icu_use_data_file_flag==1', {
               'sources': [
-                'source/stubdata/stubdata.c',
+                'source/stubdata/stubdata.cpp',
               ],
               'defines': [
                 'U_ICUDATAENTRY_IN_COMMON',
@@ -597,10 +607,13 @@
               'unicode/bytestriebuilder.h',
               'unicode/bytestrie.h',
               'unicode/caniter.h',
+              'unicode/casemap.h',
+              'unicode/char16ptr.h',
               'unicode/chariter.h',
               'unicode/dbbi.h',
               'unicode/docmain.h',
               'unicode/dtintrv.h',
+              'unicode/edits.h',
               'unicode/enumset.h',
               'unicode/errorcode.h',
               'unicode/filteredbrk.h',
diff --git a/icu.gypi b/icu.gypi
index 74a8823..f92885e 100644
--- a/icu.gypi
+++ b/icu.gypi
@@ -60,12 +60,12 @@
       'source/i18n/datefmt.cpp',
       'source/i18n/dayperiodrules.cpp',
       'source/i18n/dcfmtsym.cpp',
-      'source/i18n/decContext.c',
+      'source/i18n/decContext.cpp',
       'source/i18n/decfmtst.cpp',
       'source/i18n/decimalformatpattern.cpp',
       'source/i18n/decimfmt.cpp',
       'source/i18n/decimfmtimpl.cpp',
-      'source/i18n/decNumber.c',
+      'source/i18n/decNumber.cpp',
       'source/i18n/digitaffix.cpp',
       'source/i18n/digitaffixesandpadding.cpp',
       'source/i18n/digitformatter.cpp',
@@ -174,7 +174,7 @@
       'source/i18n/udatpg.cpp',
       'source/i18n/ufieldpositer.cpp',
       'source/i18n/uitercollationiterator.cpp',
-      'source/i18n/ulocdata.c',
+      'source/i18n/ulocdata.cpp',
       'source/i18n/umsg.cpp',
       'source/i18n/unesctrn.cpp',
       'source/i18n/uni2name.cpp',
@@ -191,7 +191,7 @@
       'source/i18n/uspoof_impl.cpp',
       'source/i18n/utf16collationiterator.cpp',
       'source/i18n/utf8collationiterator.cpp',
-      'source/i18n/utmscale.c',
+      'source/i18n/utmscale.cpp',
       'source/i18n/utrans.cpp',
       'source/i18n/valueformatter.cpp',
       'source/i18n/visibledigits.cpp',
@@ -218,17 +218,18 @@
       'source/common/caniter.cpp',
       'source/common/chariter.cpp',
       'source/common/charstr.cpp',
-      'source/common/cmemory.c',
+      'source/common/cmemory.cpp',
       'source/common/cstr.cpp',
-      'source/common/cstring.c',
-      'source/common/cwchar.c',
+      'source/common/cstring.cpp',
+      'source/common/cwchar.cpp',
       'source/common/dictbe.cpp',
       'source/common/dictionarydata.cpp',
       'source/common/dtintrv.cpp',
+      'source/common/edits.cpp',
       'source/common/errorcode.cpp',
       'source/common/filteredbrk.cpp',
       'source/common/filterednormalizer2.cpp',
-      'source/common/icudataver.c',
+      'source/common/icudataver.cpp',
       'source/common/icuplug.cpp',
       'source/common/listformatter.cpp',
       'source/common/loadednormalizer2impl.cpp',
@@ -238,7 +239,7 @@
       'source/common/locdspnm.cpp',
       'source/common/locid.cpp',
       'source/common/loclikely.cpp',
-      'source/common/locmap.c',
+      'source/common/locmap.cpp',
       'source/common/locresdata.cpp',
       'source/common/locutil.cpp',
       'source/common/messagepattern.cpp',
@@ -249,7 +250,7 @@
       'source/common/patternprops.cpp',
       'source/common/pluralmap.cpp',
       'source/common/propname.cpp',
-      'source/common/propsvec.c',
+      'source/common/propsvec.cpp',
       'source/common/punycode.cpp',
       'source/common/putil.cpp',
       'source/common/rbbi.cpp',
@@ -276,66 +277,66 @@
       'source/common/simpleformatter.cpp',
       'source/common/stringpiece.cpp',
       'source/common/stringtriebuilder.cpp',
-      'source/common/uarrsort.c',
-      'source/common/ubidi.c',
-      'source/common/ubidiln.c',
-      'source/common/ubidi_props.c',
-      'source/common/ubiditransform.c',
-      'source/common/ubidiwrt.c',
+      'source/common/uarrsort.cpp',
+      'source/common/ubidi.cpp',
+      'source/common/ubidiln.cpp',
+      'source/common/ubidi_props.cpp',
+      'source/common/ubiditransform.cpp',
+      'source/common/ubidiwrt.cpp',
       'source/common/ubrk.cpp',
       'source/common/ucase.cpp',
       'source/common/ucasemap.cpp',
       'source/common/ucasemap_titlecase_brkiter.cpp',
-      'source/common/ucat.c',
-      'source/common/uchar.c',
+      'source/common/ucat.cpp',
+      'source/common/uchar.cpp',
       'source/common/ucharstriebuilder.cpp',
       'source/common/ucharstrie.cpp',
       'source/common/ucharstrieiterator.cpp',
       'source/common/uchriter.cpp',
       'source/common/ucln_cmn.cpp',
-      'source/common/ucmndata.c',
+      'source/common/ucmndata.cpp',
       'source/common/ucnv2022.cpp',
       'source/common/ucnv_bld.cpp',
       'source/common/ucnvbocu.cpp',
-      'source/common/ucnv.c',
-      'source/common/ucnv_cb.c',
-      'source/common/ucnv_cnv.c',
-      'source/common/ucnv_ct.c',
-      'source/common/ucnvdisp.c',
-      'source/common/ucnv_err.c',
+      'source/common/ucnv_cb.cpp',
+      'source/common/ucnv_cnv.cpp',
+      'source/common/ucnv.cpp',
+      'source/common/ucnv_ct.cpp',
+      'source/common/ucnvdisp.cpp',
+      'source/common/ucnv_err.cpp',
       'source/common/ucnv_ext.cpp',
-      'source/common/ucnvhz.c',
+      'source/common/ucnvhz.cpp',
       'source/common/ucnv_io.cpp',
-      'source/common/ucnvisci.c',
-      'source/common/ucnvlat1.c',
-      'source/common/ucnv_lmb.c',
+      'source/common/ucnvisci.cpp',
+      'source/common/ucnvlat1.cpp',
+      'source/common/ucnv_lmb.cpp',
       'source/common/ucnvmbcs.cpp',
-      'source/common/ucnvscsu.c',
+      'source/common/ucnvscsu.cpp',
       'source/common/ucnvsel.cpp',
-      'source/common/ucnv_set.c',
-      'source/common/ucnv_u16.c',
-      'source/common/ucnv_u32.c',
-      'source/common/ucnv_u7.c',
-      'source/common/ucnv_u8.c',
+      'source/common/ucnv_set.cpp',
+      'source/common/ucnv_u16.cpp',
+      'source/common/ucnv_u32.cpp',
+      'source/common/ucnv_u7.cpp',
+      'source/common/ucnv_u8.cpp',
       'source/common/ucol_swp.cpp',
       'source/common/ucurr.cpp',
       'source/common/udata.cpp',
-      'source/common/udatamem.c',
-      'source/common/udataswp.c',
-      'source/common/uenum.c',
-      'source/common/uhash.c',
+      'source/common/udatamem.cpp',
+      'source/common/udataswp.cpp',
+      'source/common/uenum.cpp',
+      'source/common/uhash.cpp',
       'source/common/uhash_us.cpp',
       'source/common/uidna.cpp',
       'source/common/uinit.cpp',
-      'source/common/uinvchar.c',
+      'source/common/uinvchar.cpp',
       'source/common/uiter.cpp',
-      'source/common/ulist.c',
+      'source/common/ulist.cpp',
       'source/common/ulistformatter.cpp',
       'source/common/uloc.cpp',
       'source/common/uloc_keytype.cpp',
-      'source/common/uloc_tag.c',
-      'source/common/umapfile.c',
-      'source/common/umath.c',
+      'source/common/uloc_tag.cpp',
+      'source/common/umapfile.cpp',
+      'source/common/umath.cpp',
       'source/common/umutex.cpp',
       'source/common/unames.cpp',
       'source/common/unifiedcache.cpp',
@@ -356,10 +357,10 @@
       'source/common/uobject.cpp',
       'source/common/uprops.cpp',
       'source/common/uresbund.cpp',
-      'source/common/ures_cnv.c',
+      'source/common/ures_cnv.cpp',
       'source/common/uresdata.cpp',
-      'source/common/usc_impl.c',
-      'source/common/uscript.c',
+      'source/common/usc_impl.cpp',
+      'source/common/uscript.cpp',
       'source/common/uscript_props.cpp',
       'source/common/uset.cpp',
       'source/common/usetiter.cpp',
@@ -371,25 +372,25 @@
       'source/common/ustrcase_locale.cpp',
       'source/common/ustr_cnv.cpp',
       'source/common/ustrenum.cpp',
-      'source/common/ustrfmt.c',
+      'source/common/ustrfmt.cpp',
       'source/common/ustring.cpp',
       'source/common/ustr_titlecase_brkiter.cpp',
       'source/common/ustrtrns.cpp',
       'source/common/ustr_wcs.cpp',
       'source/common/utext.cpp',
-      'source/common/utf_impl.c',
+      'source/common/utf_impl.cpp',
       'source/common/util.cpp',
       'source/common/util_props.cpp',
-      'source/common/utrace.c',
+      'source/common/utrace.cpp',
       'source/common/utrie2_builder.cpp',
       'source/common/utrie2.cpp',
       'source/common/utrie.cpp',
       'source/common/uts46.cpp',
-      'source/common/utypes.c',
+      'source/common/utypes.cpp',
       'source/common/uvector.cpp',
       'source/common/uvectr32.cpp',
       'source/common/uvectr64.cpp',
-      'source/common/wintz.c',
+      'source/common/wintz.cpp',
     ]
   }
 }
diff --git a/ios/icudtl.dat b/ios/icudtl.dat
index eb9da3e..e64cba7 100644
--- a/ios/icudtl.dat
+++ b/ios/icudtl.dat
Binary files differ
diff --git a/license.html b/license.html
index 25591ce..2484672 100644
--- a/license.html
+++ b/license.html
@@ -11,8 +11,8 @@
     The ICU license is now in plain text format, see <a href="./LICENSE">LICENSE</a>.
 Update links and software appropriately.
   </p>
-  <i>Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html</i> 
-  <i>Copyright (c) 1995-2016 International Business Machines Corporation and others</i>
+  <i>© 2016 and later: Unicode, Inc. and others. License &amp; terms of use: http://www.unicode.org/copyright.html</i> 
+  <i>© 1995-2016 International Business Machines Corporation and others</i>
 
 </body>
 </html>
diff --git a/patches/data.build.win.patch b/patches/data.build.win.patch
index 7698193..834ef31 100644
--- a/patches/data.build.win.patch
+++ b/patches/data.build.win.patch
@@ -1,8 +1,8 @@
 diff --git a/source/data/makedata.mak b/source/data/makedata.mak
-index 1f454c8..44adaff 100644
+index 65c2e76c..246229ce 100644
 --- a/source/data/makedata.mak
 +++ b/source/data/makedata.mak
-@@ -502,7 +502,7 @@ COMMON_ICUDATA_ARGUMENTS=-f -e $(U_ICUDATA_NAME) -v $(ICU_PACKAGE_MODE) -c -p $(
+@@ -529,7 +529,7 @@ COMMON_ICUDATA_ARGUMENTS=$(COMMON_ICUDATA_ARGUMENTS) -a
  #				Building the common dll in $(ICUBLD_PKG) unconditionally copies it to $(DLL_OUTPUT) too.
  #
  #############################################################################
@@ -10,8 +10,8 @@
 +ALL : GODATA "$(ICU_LIB_TARGET)"
  	@echo All targets are up to date
  
- # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu)
-@@ -621,6 +621,7 @@ icu4j-data-install :
+ !IF "$(UWP)" == "UWP"
+@@ -653,6 +653,7 @@ icu4j-data-install :
  	cd "$(ICUBLD_PKG)"
  	"$(ICUPBIN)\icupkg" -x * --list "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\icudata.lst"
  	"$(ICUPBIN)\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\icudata.lst"
diff --git a/patches/digilist.patch b/patches/digilist.patch
deleted file mode 100644
index 08e39fc..0000000
--- a/patches/digilist.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/source/i18n/digitlst.cpp b/source/i18n/digitlst.cpp
-index a3b3406..ab5b557 100644
---- a/source/i18n/digitlst.cpp
-+++ b/source/i18n/digitlst.cpp
-@@ -60,8 +60,8 @@
- # endif
- #endif
- 
--#if U_USE_STRTOD_L && !U_PLATFORM_USES_ONLY_WIN32_API
--# if U_PLATFORM == U_PF_CYGWIN
-+#if U_USE_STRTOD_L
-+# if U_PLATFORM_USES_ONLY_WIN32_API || U_PLATFORM == U_PF_CYGWIN
- #   include <locale.h>
- # else
- #   include <xlocale.h>
diff --git a/patches/greek_upper.patch b/patches/greek_upper.patch
deleted file mode 100644
index e957d3e..0000000
--- a/patches/greek_upper.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: source/common/ucasemap.cpp
-===================================================================
---- source/common/ucasemap.cpp	(revision 39499)
-+++ source/common/ucasemap.cpp	(revision 39500)
-@@ -200,7 +200,7 @@
-         return -1;  // integer overflow
-     }
-     int32_t limit=destIndex+length;
--    if(limit<destCapacity) {
-+    if(limit<=destCapacity) {
-         U8_APPEND_UNSAFE(dest, destIndex, c);
-     }
-     return limit;
diff --git a/patches/locale_google.patch b/patches/locale_google.patch
index b5f830f..96201d5 100644
--- a/patches/locale_google.patch
+++ b/patches/locale_google.patch
@@ -1,5 +1,4439 @@
+diff --git a/patches/locale_google.patch b/patches/locale_google.patch
+index b5f830f1..e69de29b 100644
+--- a/patches/locale_google.patch
++++ b/patches/locale_google.patch
+@@ -1,4429 +0,0 @@
+-diff --git a/source/data/curr/ru.txt b/source/data/curr/ru.txt
+-index ca6ba83..ab68900 100644
+---- a/source/data/curr/ru.txt
+-+++ b/source/data/curr/ru.txt
+-@@ -911,7 +911,7 @@ ru{
+-             "Танзанийский шиллинг",
+-         }
+-         UAH{
+--            "₴",
+-+            "грн.",
+-             "Украинская гривна",
+-         }
+-         UAK{
+-@@ -1202,7 +1202,6 @@ ru{
+-     Currencies%variant{
+-         GEL{"₾"}
+-         TRY{"TL"}
+--        UAH{"грн."}
+-     }
+-     CurrencyPlurals{
+-         ADP{
+-diff --git a/source/data/curr/uk.txt b/source/data/curr/uk.txt
+-index 68485f1..8d8d9d0 100644
+---- a/source/data/curr/uk.txt
+-+++ b/source/data/curr/uk.txt
+-@@ -911,7 +911,7 @@ uk{
+-             "танзанійський шилінг",
+-         }
+-         UAH{
+--            "₴",
+-+            "грн.",
+-             "українська гривня",
+-         }
+-         UAK{
+-@@ -1201,7 +1201,6 @@ uk{
+-     Currencies%variant{
+-         GEL{"₾"}
+-         TRY{"TL"}
+--        UAH{"грн."}
+-     }
+-     CurrencyPlurals{
+-         ADP{
+-diff --git a/source/data/locales/hi.txt b/source/data/locales/hi.txt
+-index da547a0..4e90c97 100644
+---- a/source/data/locales/hi.txt
+-+++ b/source/data/locales/hi.txt
+-@@ -395,16 +395,16 @@ hi{
+-         }
+-         gregorian{
+-             AmPmMarkers{
+--                "पूर्वाह्न",
+--                "अपराह्न",
+-+                "am",
+-+                "pm",
+-             }
+-             AmPmMarkersAbbr{
+-                 "पूर्वाह्न",
+-                 "अपराह्न",
+-             }
+-             AmPmMarkersNarrow{
+--                "पू",
+--                "अ",
+-+                "am",
+-+                "pm",
+-             }
+-             DateTimePatterns{
+-                 "h:mm:ss a zzzz",
+-@@ -567,14 +567,14 @@ hi{
+-                     narrow{
+-                         afternoon1{"अपराह्न"}
+-                         evening1{"शाम"}
+--                        midnight{"मध्यरात्रि"}
+-+                        midnight{"m"}
+-                         morning1{"सुबह"}
+-                         night1{"शाम"}
+-                     }
+-                     wide{
+-                         afternoon1{"अपराह्न"}
+-                         evening1{"शाम"}
+--                        midnight{"मध्यरात्रि"}
+-+                        midnight{"midnight"}
+-                         morning1{"सुबह"}
+-                         night1{"रात"}
+-                     }
+-diff --git a/source/data/locales/ta.txt b/source/data/locales/ta.txt
+-index 8184c2c..7287423 100644
+---- a/source/data/locales/ta.txt
+-+++ b/source/data/locales/ta.txt
+-@@ -488,8 +488,8 @@ ta{
+-                 "பிற்பகல்",
+-             }
+-             AmPmMarkersAbbr{
+--                "முற்பகல்",
+--                "பிற்பகல்",
+-+                "AM",
+-+                "PM",
+-             }
+-             AmPmMarkersNarrow{
+-                 "மு.ப",
+-diff --git a/source/data/misc/likelySubtags.txt b/source/data/misc/likelySubtags.txt
+-index 396ab53..e60d048 100644
+---- a/source/data/misc/likelySubtags.txt
+-+++ b/source/data/misc/likelySubtags.txt
+-@@ -519,7 +519,6 @@ likelySubtags:table(nofallback){
+-     jen{"jen_Latn_ZZ"}
+-     jgk{"jgk_Latn_ZZ"}
+-     jgo{"jgo_Latn_CM"}
+--    ji{"ji_Hebr_UA"}
+-     jib{"jib_Latn_ZZ"}
+-     jmc{"jmc_Latn_TZ"}
+-     jml{"jml_Deva_NP"}
+-@@ -632,6 +631,7 @@ likelySubtags:table(nofallback){
+-     kto{"kto_Latn_ZZ"}
+-     ku{"ku_Latn_TR"}
+-     ku_Arab{"ku_Arab_IQ"}
+-+    ku_IR{"ku_Arab_IR"}
+-     ku_LB{"ku_Arab_LB"}
+-     kub{"kub_Latn_ZZ"}
+-     kud{"kud_Latn_ZZ"}
+-@@ -1047,6 +1047,7 @@ likelySubtags:table(nofallback){
+-     sgs{"sgs_Latn_LT"}
+-     sgw{"sgw_Ethi_ZZ"}
+-     sgz{"sgz_Latn_ZZ"}
+-+    sh{"sr_Latn_RS"}
+-     shi{"shi_Tfng_MA"}
+-     shk{"shk_Latn_ZZ"}
+-     shn{"shn_Mymr_MM"}
+-@@ -1527,7 +1528,7 @@ likelySubtags:table(nofallback){
+-     und_NE{"ha_Latn_NE"}
+-     und_NI{"es_Latn_NI"}
+-     und_NL{"nl_Latn_NL"}
+--    und_NO{"nb_Latn_NO"}
+-+    und_NO{"no_Latn_NO"}
+-     und_NP{"ne_Deva_NP"}
+-     und_Narb{"xna_Narb_SA"}
+-     und_Nbat{"arc_Nbat_JO"}
+-@@ -1576,7 +1577,7 @@ likelySubtags:table(nofallback){
+-     und_SD{"ar_Arab_SD"}
+-     und_SE{"sv_Latn_SE"}
+-     und_SI{"sl_Latn_SI"}
+--    und_SJ{"nb_Latn_SJ"}
+-+    und_SJ{"no_Latn_SJ"}
+-     und_SK{"sk_Latn_SK"}
+-     und_SM{"it_Latn_SM"}
+-     und_SN{"fr_Latn_SN"}
+-diff --git a/source/data/misc/metadata.txt b/source/data/misc/metadata.txt
+-index 6a05d55..4a530c5 100644
+---- a/source/data/misc/metadata.txt
+-+++ b/source/data/misc/metadata.txt
+-@@ -4210,6 +4210,8 @@ metadata:table(nofallback){
+-         "ksb_TZ",
+-         "ksf_CM",
+-         "ksh_DE",
+-+        "ku_Arab",
+-+        "ku_Latn_SY",
+-         "ku_TR",
+-         "kw_GB",
+-         "ky_KG",
+-diff --git a/source/data/misc/supplementalData.txt b/source/data/misc/supplementalData.txt
+-index 77bcce3..f57d7f9 100644
+---- a/source/data/misc/supplementalData.txt
+-+++ b/source/data/misc/supplementalData.txt
+-@@ -4100,6 +4100,7 @@ supplementalData:table(nofallback){
+-                 "BRZ",
+-                 "BUK",
+-                 "BYB",
+-+                "BYR",
+-                 "CHE",
+-                 "CHW",
+-                 "CLE~F",
+-@@ -16985,6 +16986,12 @@ supplementalData:table(nofallback){
+-                 "1",
+-             }
+-             {
+-+                "nb",
+-+                "no",
+-+                "99",
+-+                "0",
+-+            }
+-+            {
+-                 "ne_Deva",
+-                 "en_Latn",
+-                 "90",
+-@@ -17000,18 +17007,12 @@ supplementalData:table(nofallback){
+-                 "nn",
+-                 "nb",
+-                 "90",
+--                "0",
+-+                "1",
+-             }
+-             {
+-                 "nn",
+-                 "no",
+-                 "90",
+--                "1",
+--            }
+--            {
+--                "no",
+--                "nb",
+--                "99",
+-                 "0",
+-             }
+-             {
+-@@ -26382,7 +26383,7 @@ supplementalData:table(nofallback){
+-                 populationShareF:int{48600000}
+-             }
+-             yue{
+--                populationShareF:int{49900000}
+-+                populationShareF:int{48900000}
+-                 writingShareF:int{48430000}
+-             }
+-             za{
+-@@ -30969,7 +30970,7 @@ supplementalData:table(nofallback){
+-             kk_Cyrl{
+-                 populationShareF:int{44800000}
+-             }
+--            ku_Latn{
+-+            ku{
+-                 populationShareF:int{48550000}
+-             }
+-             ky_Latn{
+-diff --git a/source/data/region/af.txt b/source/data/region/af.txt
+-index 2d33a2b..24d7bc2 100644
+---- a/source/data/region/af.txt
+-+++ b/source/data/region/af.txt
+-@@ -131,7 +131,7 @@ af{
+-         GU{"Guam"}
+-         GW{"Guinee-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong SAS Sjina"}
+-+        HK{"Hongkong"}
+-         HM{"Heard- en McDonaldeilande"}
+-         HN{"Honduras"}
+-         HR{"Kroasië"}
+-@@ -185,7 +185,7 @@ af{
+-         ML{"Mali"}
+-         MM{"Mianmar (Birma)"}
+-         MN{"Mongolië"}
+--        MO{"Macau SAS Sjina"}
+-+        MO{"Macau"}
+-         MP{"Noord-Mariane-eilande"}
+-         MQ{"Martinique"}
+-         MR{"Mauritanië"}
+-@@ -220,7 +220,7 @@ af{
+-         PM{"St. Pierre en Miquelon"}
+-         PN{"Pitcairneilande"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestynse gebiede"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ af{
+-     }
+-     Countries%short{
+-         GB{"VK"}
+--        HK{"Hongkong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"VN"}
+-         US{"VSA"}
+-     }
+-diff --git a/source/data/region/am.txt b/source/data/region/am.txt
+-index a8edc8c..9b241dc 100644
+---- a/source/data/region/am.txt
+-+++ b/source/data/region/am.txt
+-@@ -131,7 +131,7 @@ am{
+-         GU{"ጉዋም"}
+-         GW{"ጊኒ ቢሳኦ"}
+-         GY{"ጉያና"}
+--        HK{"ሆንግ ኮንግ ልዩ የአስተዳደር ክልል ቻይና"}
+-+        HK{"ሆንግ ኮንግ"}
+-         HM{"ኽርድ ደሴቶችና ማክዶናልድ ደሴቶች"}
+-         HN{"ሆንዱራስ"}
+-         HR{"ክሮኤሽያ"}
+-@@ -185,7 +185,7 @@ am{
+-         ML{"ማሊ"}
+-         MM{"ማይናማር(በርማ)"}
+-         MN{"ሞንጎሊያ"}
+--        MO{"ማካኡ ልዩ የአስተዳደር ክልል ቻይና"}
+-+        MO{"ማካኡ"}
+-         MP{"የሰሜናዊ ማሪያና ደሴቶች"}
+-         MQ{"ማርቲኒክ"}
+-         MR{"ሞሪቴኒያ"}
+-@@ -220,7 +220,7 @@ am{
+-         PM{"ቅዱስ ፒዬር እና ሚኩኤሎን"}
+-         PN{"ፒትካኢርን አይስላንድ"}
+-         PR{"ፖርታ ሪኮ"}
+--        PS{"የፍልስጤም ግዛት"}
+-+        PS{"ፍልስጥኤም"}
+-         PT{"ፖርቱጋል"}
+-         PW{"ፓላው"}
+-         PY{"ፓራጓይ"}
+-@@ -295,9 +295,6 @@ am{
+-     }
+-     Countries%short{
+-         GB{"ዩናይትድ ኪንግደም"}
+--        HK{"ሆንግ ኮንግ"}
+--        MO{"ማካኡ"}
+--        PS{"ፍልስጥኤም"}
+-         UN{"የተመ"}
+-         US{"ዩ ኤስ"}
+-     }
+-diff --git a/source/data/region/ar.txt b/source/data/region/ar.txt
+-index 102742d..c270e07 100644
+---- a/source/data/region/ar.txt
+-+++ b/source/data/region/ar.txt
+-@@ -131,7 +131,7 @@ ar{
+-         GU{"غوام"}
+-         GW{"غينيا بيساو"}
+-         GY{"غيانا"}
+--        HK{"هونغ كونغ الصينية"}
+-+        HK{"هونغ كونغ"}
+-         HM{"جزيرة هيرد وجزر ماكدونالد"}
+-         HN{"هندوراس"}
+-         HR{"كرواتيا"}
+-@@ -185,7 +185,7 @@ ar{
+-         ML{"مالي"}
+-         MM{"ميانمار (بورما)"}
+-         MN{"منغوليا"}
+--        MO{"مكاو الصينية (منطقة إدارية خاصة)"}
+-+        MO{"مكاو"}
+-         MP{"جزر ماريانا الشمالية"}
+-         MQ{"جزر المارتينيك"}
+-         MR{"موريتانيا"}
+-@@ -220,7 +220,7 @@ ar{
+-         PM{"سانت بيير وميكولون"}
+-         PN{"جزر بيتكيرن"}
+-         PR{"بورتوريكو"}
+--        PS{"الأراضي الفلسطينية"}
+-+        PS{"فلسطين"}
+-         PT{"البرتغال"}
+-         PW{"بالاو"}
+-         PY{"باراغواي"}
+-@@ -295,9 +295,6 @@ ar{
+-     }
+-     Countries%short{
+-         GB{"المملكة المتحدة"}
+--        HK{"هونغ كونغ"}
+--        MO{"مكاو"}
+--        PS{"فلسطين"}
+-         UN{"أمم"}
+-         US{"الولايات المتحدة"}
+-     }
+-diff --git a/source/data/region/ast.txt b/source/data/region/ast.txt
+-index 462fe3a..d9553f9 100644
+---- a/source/data/region/ast.txt
+-+++ b/source/data/region/ast.txt
+-@@ -131,7 +131,7 @@ ast{
+-         GU{"Guam"}
+-         GW{"Guinea-Bisáu"}
+-         GY{"Guyana"}
+--        HK{"ARE China de Ḥong Kong"}
+-+        HK{"Ḥong Kong"}
+-         HM{"Islles Heard y McDonald"}
+-         HN{"Hondures"}
+-         HR{"Croacia"}
+-@@ -185,7 +185,7 @@ ast{
+-         ML{"Malí"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"ARE China de Macáu"}
+-+        MO{"Macáu"}
+-         MP{"Islles Marianes del Norte"}
+-         MQ{"La Martinica"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ ast{
+-         PM{"Saint Pierre y Miquelon"}
+-         PN{"Islles Pitcairn"}
+-         PR{"Puertu Ricu"}
+--        PS{"Territorios Palestinos"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Paláu"}
+-         PY{"Paraguái"}
+-@@ -294,9 +294,6 @@ ast{
+-     }
+-     Countries%short{
+-         GB{"RX"}
+--        HK{"Ḥong Kong"}
+--        MO{"Macáu"}
+--        PS{"Palestina"}
+-         US{"EE.XX."}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/az.txt b/source/data/region/az.txt
+-index 66e3209..efef69e 100644
+---- a/source/data/region/az.txt
+-+++ b/source/data/region/az.txt
+-@@ -131,7 +131,7 @@ az{
+-         GU{"Quam"}
+-         GW{"Qvineya-Bisau"}
+-         GY{"Qayana"}
+--        HK{"Honq Konq Xüsusi İnzibati Ərazi Çin"}
+-+        HK{"Honq Konq"}
+-         HM{"Herd və Makdonald adaları"}
+-         HN{"Honduras"}
+-         HR{"Xorvatiya"}
+-@@ -185,7 +185,7 @@ az{
+-         ML{"Mali"}
+-         MM{"Myanma"}
+-         MN{"Monqolustan"}
+--        MO{"Makao Xüsusi İnzibati Ərazi Çin"}
+-+        MO{"Makao"}
+-         MP{"Şimali Marian adaları"}
+-         MQ{"Martinik"}
+-         MR{"Mavritaniya"}
+-@@ -220,7 +220,7 @@ az{
+-         PM{"Müqəddəs Pyer və Mikelon"}
+-         PN{"Pitkern adaları"}
+-         PR{"Puerto Riko"}
+--        PS{"Fələstin Əraziləri"}
+-+        PS{"Fələstin"}
+-         PT{"Portuqaliya"}
+-         PW{"Palau"}
+-         PY{"Paraqvay"}
+-@@ -295,9 +295,6 @@ az{
+-     }
+-     Countries%short{
+-         GB{"BK"}
+--        HK{"Honq Konq"}
+--        MO{"Makao"}
+--        PS{"Fələstin"}
+-         UN{"BMT"}
+-         US{"ABŞ"}
+-     }
+-diff --git a/source/data/region/az_Cyrl.txt b/source/data/region/az_Cyrl.txt
+-index 6c9d182..2f8deb8 100644
+---- a/source/data/region/az_Cyrl.txt
+-+++ b/source/data/region/az_Cyrl.txt
+-@@ -130,7 +130,7 @@ az_Cyrl{
+-         GU{"Гуам"}
+-         GW{"Гвинеја-Бисау"}
+-         GY{"Гајана"}
+--        HK{"Һонк Конг Хүсуси Инзибати Әрази Чин"}
+-+        HK{"Һонг Конг"}
+-         HM{"Һерд вә Макдоналд адалары"}
+-         HN{"Һондурас"}
+-         HR{"Хорватија"}
+-@@ -183,7 +183,7 @@ az_Cyrl{
+-         ML{"Мали"}
+-         MM{"Мјанма"}
+-         MN{"Монголустан"}
+--        MO{"Макао Хүсуси Инзибати Әрази Чин"}
+-+        MO{"Макао"}
+-         MP{"Шимали Мариан адалары"}
+-         MQ{"Мартиник"}
+-         MR{"Мавританија"}
+-@@ -291,8 +291,6 @@ az_Cyrl{
+-     }
+-     Countries%short{
+-         GB{"БК"}
+--        HK{"Һонг Конг"}
+--        MO{"Макао"}
+-         US{"АБШ"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/be.txt b/source/data/region/be.txt
+-index fe115c7..9e662d0 100644
+---- a/source/data/region/be.txt
+-+++ b/source/data/region/be.txt
+-@@ -131,7 +131,7 @@ be{
+-         GU{"Гуам"}
+-         GW{"Гвінея-Бісау"}
+-         GY{"Гаяна"}
+--        HK{"Ганконг, САР (Кітай)"}
+-+        HK{"Ганконг"}
+-         HM{"Астравы Херд і Макдональд"}
+-         HN{"Гандурас"}
+-         HR{"Харватыя"}
+-@@ -185,7 +185,7 @@ be{
+-         ML{"Малі"}
+-         MM{"М’янма (Бірма)"}
+-         MN{"Манголія"}
+--        MO{"Макаа, САР (Кітай)"}
+-+        MO{"Макаа"}
+-         MP{"Паўночныя Марыянскія астравы"}
+-         MQ{"Марцініка"}
+-         MR{"Маўрытанія"}
+-@@ -220,7 +220,7 @@ be{
+-         PM{"Сен-П’ер і Мікелон"}
+-         PN{"Астравы Піткэрн"}
+-         PR{"Пуэрта-Рыка"}
+--        PS{"Палесцінскія Тэрыторыі"}
+-+        PS{"Палесціна"}
+-         PT{"Партугалія"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -294,9 +294,6 @@ be{
+-     }
+-     Countries%short{
+-         GB{"Вялікабрытанія"}
+--        HK{"Ганконг"}
+--        MO{"Макаа"}
+--        PS{"Палесціна"}
+-         US{"ЗША"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/bg.txt b/source/data/region/bg.txt
+-index 1d221a5..ecfc5fe 100644
+---- a/source/data/region/bg.txt
+-+++ b/source/data/region/bg.txt
+-@@ -131,7 +131,7 @@ bg{
+-         GU{"Гуам"}
+-         GW{"Гвинея-Бисау"}
+-         GY{"Гаяна"}
+--        HK{"Хонконг, САР на Китай"}
+-+        HK{"Хонконг"}
+-         HM{"остров Хърд и острови Макдоналд"}
+-         HN{"Хондурас"}
+-         HR{"Хърватия"}
+-@@ -185,7 +185,7 @@ bg{
+-         ML{"Мали"}
+-         MM{"Мианмар (Бирма)"}
+-         MN{"Монголия"}
+--        MO{"Макао, САР на Китай"}
+-+        MO{"Макао"}
+-         MP{"Северни Мариански острови"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритания"}
+-@@ -220,7 +220,7 @@ bg{
+-         PM{"Сен Пиер и Микелон"}
+-         PN{"Острови Питкерн"}
+-         PR{"Пуерто Рико"}
+--        PS{"Палестински територии"}
+-+        PS{"Палестина"}
+-         PT{"Португалия"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ bg{
+-     }
+-     Countries%short{
+-         GB{"Обединеното кралство"}
+--        HK{"Хонконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         US{"САЩ"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/bn.txt b/source/data/region/bn.txt
+-index 5f800f6..9d82fad 100644
+---- a/source/data/region/bn.txt
+-+++ b/source/data/region/bn.txt
+-@@ -131,7 +131,7 @@ bn{
+-         GU{"গুয়াম"}
+-         GW{"গিনি-বিসাউ"}
+-         GY{"গিয়ানা"}
+--        HK{"হংকং এসএআর চীনা"}
+-+        HK{"হংকং"}
+-         HM{"হার্ড দ্বীপ এবং ম্যাকডোনাল্ড দ্বীপপুঞ্জ"}
+-         HN{"হণ্ডুরাস"}
+-         HR{"ক্রোয়েশিয়া"}
+-@@ -185,7 +185,7 @@ bn{
+-         ML{"মালি"}
+-         MM{"মায়ানমার (বার্মা)"}
+-         MN{"মঙ্গোলিয়া"}
+--        MO{"ম্যাকাও এসএআর চীনা"}
+-+        MO{"ম্যাকাও"}
+-         MP{"উত্তরাঞ্চলীয় মারিয়ানা দ্বীপপুঞ্জ"}
+-         MQ{"মার্টিনিক"}
+-         MR{"মরিতানিয়া"}
+-@@ -220,7 +220,7 @@ bn{
+-         PM{"সেন্ট পিয়ের ও মিকুয়েলন"}
+-         PN{"পিটকেয়ার্ন দ্বীপপুঞ্জ"}
+-         PR{"পুয়ের্তো রিকো"}
+--        PS{"ফিলিস্তিন অঞ্চলসমূহ"}
+-+        PS{"ফিলিস্তিন"}
+-         PT{"পর্তুগাল"}
+-         PW{"পালাউ"}
+-         PY{"প্যারাগুয়ে"}
+-@@ -295,9 +295,6 @@ bn{
+-     }
+-     Countries%short{
+-         GB{"ইউ কে"}
+--        HK{"হংকং"}
+--        MO{"ম্যাকাও"}
+--        PS{"ফিলিস্তিন"}
+-         UN{"ইউএন"}
+-         US{"ইউ এস"}
+-     }
+-diff --git a/source/data/region/br.txt b/source/data/region/br.txt
+-index 53b27c6..9e64e1e 100644
+---- a/source/data/region/br.txt
+-+++ b/source/data/region/br.txt
+-@@ -131,7 +131,7 @@ br{
+-         GU{"Guam"}
+-         GW{"Ginea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong RMD Sina"}
+-+        HK{"Hong Kong"}
+-         HM{"Inizi Heard ha McDonald"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -185,7 +185,7 @@ br{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"Macau RMD Sina"}
+-+        MO{"Macau"}
+-         MP{"Inizi Mariana an Norzh"}
+-         MQ{"Martinik"}
+-         MR{"Maouritania"}
+-@@ -220,7 +220,7 @@ br{
+-         PM{"Sant-Pêr-ha-Mikelon"}
+-         PN{"Enez Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Tiriadoù Palestina"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ br{
+-     }
+-     Countries%short{
+-         GB{"RU"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         US{"SU"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/bs.txt b/source/data/region/bs.txt
+-index 3ace56f..d1bc705 100644
+---- a/source/data/region/bs.txt
+-+++ b/source/data/region/bs.txt
+-@@ -131,7 +131,7 @@ bs{
+-         GU{"Guam"}
+-         GW{"Gvineja-Bisao"}
+-         GY{"Gvajana"}
+--        HK{"Hong Kong (SAR Kina)"}
+-+        HK{"Hong Kong"}
+-         HM{"Herd i arhipelag MekDonald"}
+-         HN{"Honduras"}
+-         HR{"Hrvatska"}
+-@@ -185,7 +185,7 @@ bs{
+-         ML{"Mali"}
+-         MM{"Mijanmar"}
+-         MN{"Mongolija"}
+--        MO{"Makao (SAR Kina)"}
+-+        MO{"Makao"}
+-         MP{"Sjeverna Marijanska Ostrva"}
+-         MQ{"Martinik"}
+-         MR{"Mauritanija"}
+-@@ -220,7 +220,7 @@ bs{
+-         PM{"Sveti Petar i Mikelon"}
+-         PN{"Pitkernska Ostrva"}
+-         PR{"Porto Riko"}
+--        PS{"Palestinska Teritorija"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paragvaj"}
+-@@ -295,9 +295,6 @@ bs{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Makao"}
+--        PS{"Palestina"}
+-         UN{"UN"}
+-         US{"SAD"}
+-     }
+-diff --git a/source/data/region/bs_Cyrl.txt b/source/data/region/bs_Cyrl.txt
+-index ecba6b4..bc83bdd 100644
+---- a/source/data/region/bs_Cyrl.txt
+-+++ b/source/data/region/bs_Cyrl.txt
+-@@ -130,7 +130,7 @@ bs_Cyrl{
+-         GU{"Гуам"}
+-         GW{"Гвинеја-Бисао"}
+-         GY{"Гвајана"}
+--        HK{"Хонг Конг С. А. Р. Кина"}
+-+        HK{"Хонг Конг"}
+-         HM{"Херд и Мекдоналд Острва"}
+-         HN{"Хондурас"}
+-         HR{"Хрватска"}
+-@@ -184,7 +184,7 @@ bs_Cyrl{
+-         ML{"Мали"}
+-         MM{"Мијанмар (Бурма)"}
+-         MN{"Монголија"}
+--        MO{"Макао С. А. Р. Кина"}
+-+        MO{"Макао"}
+-         MP{"Северна Маријанска Острва"}
+-         MQ{"Мартиник"}
+-         MR{"Мауританија"}
+-@@ -288,10 +288,6 @@ bs_Cyrl{
+-         ZW{"Зимбабве"}
+-         ZZ{"Непозната или неважећа област"}
+-     }
+--    Countries%short{
+--        HK{"Хонг Конг"}
+--        MO{"Макао"}
+--    }
+-     Countries%variant{
+-         CD{"Конго (ДРК)"}
+-         CG{"Конго (Република)"}
+-diff --git a/source/data/region/ca.txt b/source/data/region/ca.txt
+-index 5dc4763..e61eb0a 100644
+---- a/source/data/region/ca.txt
+-+++ b/source/data/region/ca.txt
+-@@ -131,7 +131,7 @@ ca{
+-         GU{"Guam"}
+-         GW{"Guinea Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong (RAE Xina)"}
+-+        HK{"Hong Kong"}
+-         HM{"Illa Heard i Illes McDonald"}
+-         HN{"Hondures"}
+-         HR{"Croàcia"}
+-@@ -185,7 +185,7 @@ ca{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmània)"}
+-         MN{"Mongòlia"}
+--        MO{"Macau (RAE Xina)"}
+-+        MO{"Macau"}
+-         MP{"Illes Mariannes del Nord"}
+-         MQ{"Martinica"}
+-         MR{"Mauritània"}
+-@@ -220,7 +220,7 @@ ca{
+-         PM{"Saint-Pierre-et-Miquelon"}
+-         PN{"Illes Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"territoris palestins"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -295,9 +295,6 @@ ca{
+-     }
+-     Countries%short{
+-         GB{"RU"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"ONU"}
+-         US{"EUA"}
+-     }
+-diff --git a/source/data/region/ce.txt b/source/data/region/ce.txt
+-index ac28193..e045bea 100644
+---- a/source/data/region/ce.txt
+-+++ b/source/data/region/ce.txt
+-@@ -131,7 +131,7 @@ ce{
+-         GU{"Гуам"}
+-         GW{"Гвиней-Бисау"}
+-         GY{"Гайана"}
+--        HK{"Гонконг (ша-къаьстина кӀошт)"}
+-+        HK{"Гонконг"}
+-         HM{"Херд гӀайре а, Макдональд гӀайренаш а"}
+-         HN{"Гондурас"}
+-         HR{"Хорвати"}
+-@@ -185,7 +185,7 @@ ce{
+-         ML{"Мали"}
+-         MM{"Мьянма (Бирма)"}
+-         MN{"Монголи"}
+--        MO{"Макао (ша-къаьстина кӀошт)"}
+-+        MO{"Макао"}
+-         MP{"Къилбаседа Марианан гӀайренаш"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритани"}
+-@@ -220,7 +220,7 @@ ce{
+-         PM{"Сен-Пьер а, Микелон а"}
+-         PN{"Питкэрн гӀайренаш"}
+-         PR{"Пуэрто-Рико"}
+--        PS{"Палестинан латтанаш"}
+-+        PS{"Палестина"}
+-         PT{"Португали"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -294,9 +294,6 @@ ce{
+-     }
+-     Countries%short{
+-         GB{"Йоккха Британи"}
+--        HK{"Гонконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         US{"АЦШ"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/chr.txt b/source/data/region/chr.txt
+-index 3a4b1e6..7a25fdb 100644
+---- a/source/data/region/chr.txt
+-+++ b/source/data/region/chr.txt
+-@@ -131,7 +131,7 @@ chr{
+-         GU{"ᏆᎻ"}
+-         GW{"ᎩᎢᏂ-ᏈᏌᎤᏫ"}
+-         GY{"ᎦᏯᎾ"}
+--        HK{"ᎰᏂᎩ ᎪᏂᎩ ᎤᏓᏤᎵᏓ ᏧᏂᎸᏫᏍᏓᏁᏗ ᎢᎬᎾᏕᎾ ᏓᎶᏂᎨᏍᏛ"}
+-+        HK{"ᎰᏂᎩ ᎪᏂᎩ"}
+-         HM{"ᎲᏗ ᎤᎦᏚᏛᎢ ᎠᎴ ᎺᎩᏓᎾᎵᏗ ᏚᎦᏚᏛᎢ"}
+-         HN{"ᎭᏂᏚᎳᏍ"}
+-         HR{"ᎧᎶᎡᏏᎠ"}
+-@@ -185,7 +185,7 @@ chr{
+-         ML{"ᎹᎵ"}
+-         MM{"ᎹᏯᎹᎵ"}
+-         MN{"ᎹᏂᎪᎵᎠ"}
+--        MO{"ᎹᎧᎣ (ᎤᏓᏤᎵᏓ ᏧᏂᎸᏫᏍᏓᏁᏗ ᎢᎬᎾᏕᎾ) ᏣᎢ"}
+-+        MO{"ᎹᎧᎣ"}
+-         MP{"ᏧᏴᏢ ᏗᏜ ᎹᎵᎠᎾ ᏚᎦᏚᏛᎢ"}
+-         MQ{"ᎹᏘᏂᎨ"}
+-         MR{"ᎹᏘᎢᏯ"}
+-@@ -220,7 +220,7 @@ chr{
+-         PM{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ"}
+-         PN{"ᏈᎧᎵᏂ ᏚᎦᏚᏛᎢ"}
+-         PR{"ᏇᎡᏙ ᎵᎢᎪ"}
+--        PS{"ᏆᎴᏍᏗᏂᎠᏂ ᏄᎬᏫᏳᏌᏕᎩ"}
+-+        PS{"ᏆᎴᏍᏗᏂ"}
+-         PT{"ᏉᏥᎦᎳ"}
+-         PW{"ᏆᎴᎠᏫ"}
+-         PY{"ᏆᎳᏇᎢᏯ"}
+-@@ -294,9 +294,6 @@ chr{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"ᎰᏂᎩ ᎪᏂᎩ"}
+--        MO{"ᎹᎧᎣ"}
+--        PS{"ᏆᎴᏍᏗᏂ"}
+-         US{"US"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/ckb.txt b/source/data/region/ckb.txt
+-index 6349e1b..e918132 100644
+---- a/source/data/region/ckb.txt
+-+++ b/source/data/region/ckb.txt
+-@@ -162,6 +162,7 @@ ckb{
+-         SN{"سینیگال"}
+-         SO{"سۆمالیا"}
+-         SR{"سورینام"}
+-+        SS{"باشووری سوودان"}
+-         ST{"ساوتۆمێ و پرینسیپی"}
+-         SV{"ئێلسالڤادۆر"}
+-         SY{"سووریا"}
+-diff --git a/source/data/region/cs.txt b/source/data/region/cs.txt
+-index 97a7970..858e72f 100644
+---- a/source/data/region/cs.txt
+-+++ b/source/data/region/cs.txt
+-@@ -131,7 +131,7 @@ cs{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong – ZAO Číny"}
+-+        HK{"Hongkong"}
+-         HM{"Heardův ostrov a McDonaldovy ostrovy"}
+-         HN{"Honduras"}
+-         HR{"Chorvatsko"}
+-@@ -185,7 +185,7 @@ cs{
+-         ML{"Mali"}
+-         MM{"Myanmar (Barma)"}
+-         MN{"Mongolsko"}
+--        MO{"Macao – ZAO Číny"}
+-+        MO{"Macao"}
+-         MP{"Severní Mariany"}
+-         MQ{"Martinik"}
+-         MR{"Mauritánie"}
+-@@ -220,7 +220,7 @@ cs{
+-         PM{"Saint-Pierre a Miquelon"}
+-         PN{"Pitcairnovy ostrovy"}
+-         PR{"Portoriko"}
+--        PS{"Palestinská území"}
+-+        PS{"Palestina"}
+-         PT{"Portugalsko"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ cs{
+-     }
+-     Countries%short{
+-         GB{"GB"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"OSN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/cy.txt b/source/data/region/cy.txt
+-index 4083b2d..a8355e0 100644
+---- a/source/data/region/cy.txt
+-+++ b/source/data/region/cy.txt
+-@@ -131,7 +131,7 @@ cy{
+-         GU{"Guam"}
+-         GW{"Guiné-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong RhGA Tsieina"}
+-+        HK{"Hong Kong"}
+-         HM{"Ynys Heard ac Ynysoedd McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croatia"}
+-@@ -185,7 +185,7 @@ cy{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macau RhGA Tsieina"}
+-+        MO{"Macau"}
+-         MP{"Ynysoedd Gogledd Mariana"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ cy{
+-         PM{"Saint-Pierre-et-Miquelon"}
+-         PN{"Ynysoedd Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Tiriogaethau Palesteinaidd"}
+-+        PS{"Palesteina"}
+-         PT{"Portiwgal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ cy{
+-     }
+-     Countries%short{
+-         GB{"DU"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palesteina"}
+-         UN{"UN"}
+-         US{"UDA"}
+-     }
+-diff --git a/source/data/region/da.txt b/source/data/region/da.txt
+-index 1ed8dcf..2bd2a71 100644
+---- a/source/data/region/da.txt
+-+++ b/source/data/region/da.txt
+-@@ -131,7 +131,7 @@ da{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"SAR Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heard Island og McDonald Islands"}
+-         HN{"Honduras"}
+-         HR{"Kroatien"}
+-@@ -185,7 +185,7 @@ da{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongoliet"}
+--        MO{"SAR Macao"}
+-+        MO{"Macao"}
+-         MP{"Nordmarianerne"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanien"}
+-@@ -220,7 +220,7 @@ da{
+-         PM{"Saint Pierre og Miquelon"}
+-         PN{"Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"De palæstinensiske områder"}
+-+        PS{"Palæstina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ da{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palæstina"}
+-         UN{"FN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/de.txt b/source/data/region/de.txt
+-index f995f0c..8ab024c 100644
+---- a/source/data/region/de.txt
+-+++ b/source/data/region/de.txt
+-@@ -131,7 +131,7 @@ de{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Sonderverwaltungszone Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heard und McDonaldinseln"}
+-         HN{"Honduras"}
+-         HR{"Kroatien"}
+-@@ -185,7 +185,7 @@ de{
+-         ML{"Mali"}
+-         MM{"Myanmar"}
+-         MN{"Mongolei"}
+--        MO{"Sonderverwaltungsregion Macau"}
+-+        MO{"Macau"}
+-         MP{"Nördliche Marianen"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanien"}
+-@@ -220,7 +220,7 @@ de{
+-         PM{"St. Pierre und Miquelon"}
+-         PN{"Pitcairninseln"}
+-         PR{"Puerto Rico"}
+--        PS{"Palästinensische Autonomiegebiete"}
+-+        PS{"Palästina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ de{
+-     }
+-     Countries%short{
+-         GB{"GB"}
+--        HK{"Hongkong"}
+--        MO{"Macau"}
+--        PS{"Palästina"}
+-         UN{"UN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/dsb.txt b/source/data/region/dsb.txt
+-index 40ac9ad..1218298 100644
+---- a/source/data/region/dsb.txt
+-+++ b/source/data/region/dsb.txt
+-@@ -131,7 +131,7 @@ dsb{
+-         GU{"Guam"}
+-         GW{"Gineja-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Wósebna zastojnstwowa cona Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heardowa kupa a McDonaldowe kupy"}
+-         HN{"Honduras"}
+-         HR{"Chorwatska"}
+-@@ -185,7 +185,7 @@ dsb{
+-         ML{"Mali"}
+-         MM{"Myanmar"}
+-         MN{"Mongolska"}
+--        MO{"Wósebna zastojnstwowa cona Macao"}
+-+        MO{"Macao"}
+-         MP{"Pódpołnocne Mariany"}
+-         MQ{"Martinique"}
+-         MR{"Mawretańska"}
+-@@ -220,7 +220,7 @@ dsb{
+-         PM{"St. Pierre a Miquelon"}
+-         PN{"Pitcairnowe kupy"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinski awtonomny teritorium"}
+-+        PS{"Palestina"}
+-         PT{"Portugalska"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ dsb{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/dz.txt b/source/data/region/dz.txt
+-index 3d898f3..bafa973 100644
+---- a/source/data/region/dz.txt
+-+++ b/source/data/region/dz.txt
+-@@ -131,7 +131,7 @@ dz{
+-         GU{"གུ་འམ་ མཚོ་གླིང"}
+-         GW{"གྷི་ནི་ བྷི་སཱའུ"}
+-         GY{"གྷ་ཡ་ན"}
+--        HK{"ཧོང་ཀོང་ཅཱའི་ན"}
+-+        HK{"ཧོང་ཀོང"}
+-         HM{"ཧཱརཌ་མཚོ་གླིང་ དང་ མེཀ་ཌོ་ནལཌ྄་གླིང་ཚོམ"}
+-         HN{"ཧཱན་ཌུ་རཱས྄"}
+-         HR{"ཀྲོ་ཨེ་ཤ"}
+-@@ -185,7 +185,7 @@ dz{
+-         ML{"མཱ་ལི"}
+-         MM{"མི་ཡཱན་མར་ (བྷར་མ)"}
+-         MN{"སོག་པོ་ཡུལ"}
+--        MO{"མཀ་ཨའུ་ཅཱའི་ན"}
+-+        MO{"མཀ་ཨའུ"}
+-         MP{"བྱང་ཕྱོགས་ཀྱི་མ་ར་ཡ་ན་གླིང་ཚོམ"}
+-         MQ{"མཱར་ཊི་ནིཀ"}
+-         MR{"མོ་རི་ཊེ་ནི་ཡ"}
+-@@ -291,10 +291,6 @@ dz{
+-         ZW{"ཛིམ་བྷབ་ཝེ"}
+-         ZZ{"ངོ་མ་ཤེས་པའི་ལུང་ཕྱོགས"}
+-     }
+--    Countries%short{
+--        HK{"ཧོང་ཀོང"}
+--        MO{"མཀ་ཨའུ"}
+--    }
+-     Countries%variant{
+-         CD{"ཌེ་མོ་ཀེརེ་ཊིཀ་ རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
+-         CG{"རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
+-diff --git a/source/data/region/ee.txt b/source/data/region/ee.txt
+-index 5153157..e95f73c 100644
+---- a/source/data/region/ee.txt
+-+++ b/source/data/region/ee.txt
+-@@ -129,7 +129,7 @@ ee{
+-         GU{"Guam nutome"}
+-         GW{"Gini-Bisao nutome"}
+-         GY{"Guyanadu"}
+--        HK{"Hɔng Kɔng SAR Tsaina nutome"}
+-+        HK{"Hɔng Kɔng nutome"}
+-         HM{"Heard kple Mcdonald ƒudomekpowo nutome"}
+-         HN{"Hondurasdu"}
+-         HR{"Kroatsia nutome"}
+-@@ -183,7 +183,7 @@ ee{
+-         ML{"Mali nutome"}
+-         MM{"Myanmar (Burma) nutome"}
+-         MN{"Mongolia nutome"}
+--        MO{"Macau SAR Tsaina nutome"}
+-+        MO{"Macau nutome"}
+-         MP{"Dziehe Marina ƒudomekpowo nutome"}
+-         MQ{"Martiniki nutome"}
+-         MR{"Mauritania nutome"}
+-@@ -286,10 +286,6 @@ ee{
+-         ZW{"Zimbabwe nutome"}
+-         ZZ{"nutome manya"}
+-     }
+--    Countries%short{
+--        HK{"Hɔng Kɔng nutome"}
+--        MO{"Macau nutome"}
+--    }
+-     Countries%variant{
+-         CD{"Kongo demokratik repɔblik nutome"}
+-         CG{"Kongo repɔblik nutome"}
+-diff --git a/source/data/region/el.txt b/source/data/region/el.txt
+-index 810c585..0465925 100644
+---- a/source/data/region/el.txt
+-+++ b/source/data/region/el.txt
+-@@ -131,7 +131,7 @@ el{
+-         GU{"Γκουάμ"}
+-         GW{"Γουινέα Μπισάου"}
+-         GY{"Γουιάνα"}
+--        HK{"Χονγκ Κονγκ ΕΔΠ Κίνας"}
+-+        HK{"Χονγκ Κονγκ"}
+-         HM{"Νήσοι Χερντ και Μακντόναλντ"}
+-         HN{"Ονδούρα"}
+-         HR{"Κροατία"}
+-@@ -185,7 +185,7 @@ el{
+-         ML{"Μάλι"}
+-         MM{"Μιανμάρ/Βιρμανία"}
+-         MN{"Μογγολία"}
+--        MO{"Μακάο ΕΔΠ Κίνας"}
+-+        MO{"Μακάο"}
+-         MP{"Νήσοι Βόρειες Μαριάνες"}
+-         MQ{"Μαρτινίκα"}
+-         MR{"Μαυριτανία"}
+-@@ -220,7 +220,7 @@ el{
+-         PM{"Σεν Πιερ και Μικελόν"}
+-         PN{"Νήσοι Πίτκερν"}
+-         PR{"Πουέρτο Ρίκο"}
+--        PS{"Παλαιστινιακά Εδάφη"}
+-+        PS{"Παλαιστίνη"}
+-         PT{"Πορτογαλία"}
+-         PW{"Παλάου"}
+-         PY{"Παραγουάη"}
+-@@ -295,9 +295,6 @@ el{
+-     }
+-     Countries%short{
+-         GB{"ΗΒ"}
+--        HK{"Χονγκ Κονγκ"}
+--        MO{"Μακάο"}
+--        PS{"Παλαιστίνη"}
+-         UN{"ΟΗΕ"}
+-         US{"ΗΠΑ"}
+-     }
+-diff --git a/source/data/region/en.txt b/source/data/region/en.txt
+-index aca36b0..50adeaf 100644
+---- a/source/data/region/en.txt
+-+++ b/source/data/region/en.txt
+-@@ -72,9 +72,9 @@ en{
+-         BZ{"Belize"}
+-         CA{"Canada"}
+-         CC{"Cocos (Keeling) Islands"}
+--        CD{"Congo - Kinshasa"}
+-+        CD{"Congo (DRC)"}
+-         CF{"Central African Republic"}
+--        CG{"Congo - Brazzaville"}
+-+        CG{"Congo (Republic)"}
+-         CH{"Switzerland"}
+-         CI{"Côte d’Ivoire"}
+-         CK{"Cook Islands"}
+-@@ -109,7 +109,7 @@ en{
+-         EZ{"Eurozone"}
+-         FI{"Finland"}
+-         FJ{"Fiji"}
+--        FK{"Falkland Islands"}
+-+        FK{"Falkland Islands (Islas Malvinas)"}
+-         FM{"Micronesia"}
+-         FO{"Faroe Islands"}
+-         FR{"France"}
+-@@ -132,7 +132,7 @@ en{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong SAR China"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard & McDonald Islands"}
+-         HN{"Honduras"}
+-         HR{"Croatia"}
+-@@ -182,11 +182,11 @@ en{
+-         MF{"St. Martin"}
+-         MG{"Madagascar"}
+-         MH{"Marshall Islands"}
+--        MK{"Macedonia"}
+-+        MK{"Macedonia (FYROM)"}
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macau SAR China"}
+-+        MO{"Macau"}
+-         MP{"Northern Mariana Islands"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -221,7 +221,7 @@ en{
+-         PM{"St. Pierre & Miquelon"}
+-         PN{"Pitcairn Islands"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinian Territories"}
+-+        PS{"Palestine"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -297,10 +297,7 @@ en{
+-     Countries%short{
+-         BA{"Bosnia"}
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+-         MM{"Myanmar"}
+--        MO{"Macau"}
+--        PS{"Palestine"}
+-         UN{"UN"}
+-         US{"US"}
+-     }
+-diff --git a/source/data/region/es.txt b/source/data/region/es.txt
+-index d3f0ea6..64efb6b 100644
+---- a/source/data/region/es.txt
+-+++ b/source/data/region/es.txt
+-@@ -131,7 +131,7 @@ es{
+-         GU{"Guam"}
+-         GW{"Guinea-Bisáu"}
+-         GY{"Guyana"}
+--        HK{"RAE de Hong Kong (China)"}
+-+        HK{"Hong Kong"}
+-         HM{"Islas Heard y McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croacia"}
+-@@ -185,7 +185,7 @@ es{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"RAE de Macao (China)"}
+-+        MO{"Macao"}
+-         MP{"Islas Marianas del Norte"}
+-         MQ{"Martinica"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ es{
+-         PM{"San Pedro y Miquelón"}
+-         PN{"Islas Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Territorios Palestinos"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palaos"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ es{
+-     }
+-     Countries%short{
+-         GB{"RU"}
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         US{"EE. UU."}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/et.txt b/source/data/region/et.txt
+-index 41fb2ff..2353bff 100644
+---- a/source/data/region/et.txt
+-+++ b/source/data/region/et.txt
+-@@ -131,7 +131,7 @@ et{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkongi erihalduspiirkond"}
+-+        HK{"Hongkong"}
+-         HM{"Heardi ja McDonaldi saared"}
+-         HN{"Honduras"}
+-         HR{"Horvaatia"}
+-@@ -185,7 +185,7 @@ et{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birma)"}
+-         MN{"Mongoolia"}
+--        MO{"Macau erihalduspiirkond"}
+-+        MO{"Macau"}
+-         MP{"Põhja-Mariaanid"}
+-         MQ{"Martinique"}
+-         MR{"Mauritaania"}
+-@@ -220,7 +220,7 @@ et{
+-         PM{"Saint Pierre ja Miquelon"}
+-         PN{"Pitcairni saared"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestiina alad"}
+-+        PS{"Palestiina"}
+-         PT{"Portugal"}
+-         PW{"Belau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ et{
+-     }
+-     Countries%short{
+-         GB{"ÜK"}
+--        HK{"Hongkong"}
+--        MO{"Macau"}
+--        PS{"Palestiina"}
+-         UN{"ÜRO"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/eu.txt b/source/data/region/eu.txt
+-index 77900be..5ed36fc 100644
+---- a/source/data/region/eu.txt
+-+++ b/source/data/region/eu.txt
+-@@ -131,7 +131,7 @@ eu{
+-         GU{"Guam"}
+-         GW{"Ginea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong AEB Txina"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard eta McDonald uharteak"}
+-         HN{"Honduras"}
+-         HR{"Kroazia"}
+-@@ -185,7 +185,7 @@ eu{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"Macau AEB Txina"}
+-+        MO{"Macau"}
+-         MP{"Iparraldeko Mariana uharteak"}
+-         MQ{"Martinika"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ eu{
+-         PM{"Saint-Pierre eta Mikelune"}
+-         PN{"Pitcairn uharteak"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinako Lurraldeak"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -294,9 +294,6 @@ eu{
+-     }
+-     Countries%short{
+-         GB{"EB"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         US{"AEB"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/fa.txt b/source/data/region/fa.txt
+-index cb1dc1c..7eb0669 100644
+---- a/source/data/region/fa.txt
+-+++ b/source/data/region/fa.txt
+-@@ -131,7 +131,7 @@ fa{
+-         GU{"گوام"}
+-         GW{"گینهٔ بیسائو"}
+-         GY{"گویان"}
+--        HK{"هنگ‌کنگ، ناحیهٔ ویژهٔ حکومتی چین"}
+-+        HK{"هنگ‌کنگ"}
+-         HM{"جزیرهٔ هرد و جزایر مک‌دونالد"}
+-         HN{"هندوراس"}
+-         HR{"کرواسی"}
+-@@ -185,7 +185,7 @@ fa{
+-         ML{"مالی"}
+-         MM{"میانمار (برمه)"}
+-         MN{"مغولستان"}
+--        MO{"ماکائو، ناحیهٔ ویژهٔ حکومتی چین"}
+-+        MO{"ماکائو"}
+-         MP{"جزایر ماریانای شمالی"}
+-         MQ{"مارتینیک"}
+-         MR{"موریتانی"}
+-@@ -220,7 +220,7 @@ fa{
+-         PM{"سن پیر و میکلن"}
+-         PN{"جزایر پیت‌کرن"}
+-         PR{"پورتوریکو"}
+--        PS{"سرزمین‌های فلسطینی"}
+-+        PS{"فلسطین"}
+-         PT{"پرتغال"}
+-         PW{"پالائو"}
+-         PY{"پاراگوئه"}
+-@@ -295,9 +295,6 @@ fa{
+-     }
+-     Countries%short{
+-         GB{"بریتانیا"}
+--        HK{"هنگ‌کنگ"}
+--        MO{"ماکائو"}
+--        PS{"فلسطین"}
+-         SA{"عربستان"}
+-         UN{"سازمان ملل"}
+-         US{"ایالات متحده"}
+-diff --git a/source/data/region/fi.txt b/source/data/region/fi.txt
+-index faca6f3..ac30822 100644
+---- a/source/data/region/fi.txt
+-+++ b/source/data/region/fi.txt
+-@@ -131,7 +131,7 @@ fi{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong – Kiinan e.h.a."}
+-+        HK{"Hongkong"}
+-         HM{"Heard ja McDonaldinsaaret"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -185,7 +185,7 @@ fi{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macao – Kiinan e.h.a."}
+-+        MO{"Macao"}
+-         MP{"Pohjois-Mariaanit"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ fi{
+-         PM{"Saint-Pierre ja Miquelon"}
+-         PN{"Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestiinalaisalueet"}
+-+        PS{"Palestiina"}
+-         PT{"Portugali"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ fi{
+-     }
+-     Countries%short{
+-         GB{"Britannia"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestiina"}
+-         UN{"YK"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/fil.txt b/source/data/region/fil.txt
+-index feaac1f..6f6b6c2 100644
+---- a/source/data/region/fil.txt
+-+++ b/source/data/region/fil.txt
+-@@ -131,7 +131,7 @@ fil{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong SAR China"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard Island and McDonald Islands"}
+-         HN{"Honduras"}
+-         HR{"Croatia"}
+-@@ -185,7 +185,7 @@ fil{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macau SAR China"}
+-+        MO{"Macau"}
+-         MP{"Northern Mariana Islands"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ fil{
+-         PM{"Saint Pierre and Miquelon"}
+-         PN{"Pitcairn Islands"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinian Territories"}
+-+        PS{"Palestine"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ fil{
+-     }
+-     Countries%short{
+-         GB{"U.K."}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestine"}
+-         UN{"UN"}
+-         US{"U.S."}
+-     }
+-diff --git a/source/data/region/fo.txt b/source/data/region/fo.txt
+-index b5d5a1b..5600313 100644
+---- a/source/data/region/fo.txt
+-+++ b/source/data/region/fo.txt
+-@@ -131,7 +131,7 @@ fo{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Gujana"}
+--        HK{"Hong Kong SAR Kina"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard og McDonaldoyggjar"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -185,7 +185,7 @@ fo{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Makao SAR Kina"}
+-+        MO{"Makao"}
+-         MP{"Norðaru Mariuoyggjar"}
+-         MQ{"Martinique"}
+-         MR{"Móritania"}
+-@@ -220,7 +220,7 @@ fo{
+-         PM{"Saint Pierre og Miquelon"}
+-         PN{"Pitcairnoyggjar"}
+-         PR{"Puerto Riko"}
+--        PS{"Palestinskt landøki"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -294,9 +294,6 @@ fo{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Makao"}
+--        PS{"Palestina"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/fr.txt b/source/data/region/fr.txt
+-index d166d21..76d0703 100644
+---- a/source/data/region/fr.txt
+-+++ b/source/data/region/fr.txt
+-@@ -131,7 +131,7 @@ fr{
+-         GU{"Guam"}
+-         GW{"Guinée-Bissau"}
+-         GY{"Guyana"}
+--        HK{"R.A.S. chinoise de Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Îles Heard et McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croatie"}
+-@@ -185,7 +185,7 @@ fr{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmanie)"}
+-         MN{"Mongolie"}
+--        MO{"R.A.S. chinoise de Macao"}
+-+        MO{"Macao"}
+-         MP{"Îles Mariannes du Nord"}
+-         MQ{"Martinique"}
+-         MR{"Mauritanie"}
+-@@ -220,7 +220,7 @@ fr{
+-         PM{"Saint-Pierre-et-Miquelon"}
+-         PN{"Îles Pitcairn"}
+-         PR{"Porto Rico"}
+--        PS{"Territoires palestiniens"}
+-+        PS{"Palestine"}
+-         PT{"Portugal"}
+-         PW{"Palaos"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ fr{
+-     }
+-     Countries%short{
+-         GB{"R.-U."}
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+--        PS{"Palestine"}
+-         UN{"NU"}
+-         US{"É.-U."}
+-     }
+-diff --git a/source/data/region/fur.txt b/source/data/region/fur.txt
+-index 8f577b3..6e24b57 100644
+---- a/source/data/region/fur.txt
+-+++ b/source/data/region/fur.txt
+-@@ -128,7 +128,7 @@ fur{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Regjon aministrative speciâl de Cine di Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Isule Heard e Isulis McDonald"}
+-         HN{"Honduras"}
+-         HR{"Cravuazie"}
+-@@ -182,7 +182,7 @@ fur{
+-         ML{"Mali"}
+-         MM{"Birmanie"}
+-         MN{"Mongolie"}
+--        MO{"Regjon aministrative speciâl de Cine di Macao"}
+-+        MO{"Macao"}
+-         MP{"Isulis Mariana dal Nord"}
+-         MQ{"Martiniche"}
+-         MR{"Mauritanie"}
+-@@ -286,10 +286,6 @@ fur{
+-         ZW{"Zimbabwe"}
+-         ZZ{"Regjon no cognossude o no valide"}
+-     }
+--    Countries%short{
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+--    }
+-     Countries%variant{
+-         CD{"Congo (RDC)"}
+-         CG{"Congo (Republiche)"}
+-diff --git a/source/data/region/fy.txt b/source/data/region/fy.txt
+-index 01b1161..b3c7893 100644
+---- a/source/data/region/fy.txt
+-+++ b/source/data/region/fy.txt
+-@@ -131,7 +131,7 @@ fy{
+-         GU{"Guam"}
+-         GW{"Guinee-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong SAR van Sina"}
+-+        HK{"Hongkong"}
+-         HM{"Heard- en McDonaldeilannen"}
+-         HN{"Honduras"}
+-         HR{"Kroatië"}
+-@@ -185,7 +185,7 @@ fy{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birma)"}
+-         MN{"Mongolië"}
+--        MO{"Macao SAR van Sina"}
+-+        MO{"Macao"}
+-         MP{"Noardlike Marianeneilannen"}
+-         MQ{"Martinique"}
+-         MR{"Mauritanië"}
+-@@ -220,7 +220,7 @@ fy{
+-         PM{"Saint-Pierre en Miquelon"}
+-         PN{"Pitcairneilannen"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestynske gebieten"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ fy{
+-     }
+-     Countries%short{
+-         GB{"VK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         US{"VS"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/ga.txt b/source/data/region/ga.txt
+-index 6721e45..a94b1b1 100644
+---- a/source/data/region/ga.txt
+-+++ b/source/data/region/ga.txt
+-@@ -131,7 +131,7 @@ ga{
+-         GU{"Guam"}
+-         GW{"Guine Bissau"}
+-         GY{"An Ghuáin"}
+--        HK{"S.R.R. na Síne Hong Cong"}
+-+        HK{"Hong Cong"}
+-         HM{"Oileán Heard agus Oileáin McDonald"}
+-         HN{"Hondúras"}
+-         HR{"An Chróit"}
+-@@ -185,7 +185,7 @@ ga{
+-         ML{"Mailí"}
+-         MM{"Maenmar (Burma)"}
+-         MN{"An Mhongóil"}
+--        MO{"S.R.R. na Síne Macao"}
+-+        MO{"Macao"}
+-         MP{"Na hOileáin Mháirianacha Thuaidh"}
+-         MQ{"Martinique"}
+-         MR{"An Mháratáin"}
+-@@ -220,7 +220,7 @@ ga{
+-         PM{"Saint-Pierre-et-Miquelon"}
+-         PN{"Oileáin Pitcairn"}
+-         PR{"Portó Ríce"}
+--        PS{"Na Críocha Palaistíneacha"}
+-+        PS{"An Phalaistín"}
+-         PT{"An Phortaingéil"}
+-         PW{"Palau"}
+-         PY{"Paragua"}
+-@@ -295,9 +295,6 @@ ga{
+-     }
+-     Countries%short{
+-         GB{"RA"}
+--        HK{"Hong Cong"}
+--        MO{"Macao"}
+--        PS{"An Phalaistín"}
+-         UN{"NA"}
+-         US{"SAM"}
+-     }
+-diff --git a/source/data/region/gd.txt b/source/data/region/gd.txt
+-index 096bc34..f1c53f2 100644
+---- a/source/data/region/gd.txt
+-+++ b/source/data/region/gd.txt
+-@@ -131,7 +131,7 @@ gd{
+-         GU{"Guam"}
+-         GW{"Gini-Bioso"}
+-         GY{"Guidheàna"}
+--        HK{"Hong Kong SAR na Sìne"}
+-+        HK{"Hong Kong"}
+-         HM{"Eilean Heard is MhicDhòmhnaill"}
+-         HN{"Hondùras"}
+-         HR{"A’ Chròthais"}
+-@@ -185,7 +185,7 @@ gd{
+-         ML{"Màili"}
+-         MM{"Miànmar"}
+-         MN{"Dùthaich nam Mongol"}
+--        MO{"Macàthu SAR na Sìne"}
+-+        MO{"Macàthu"}
+-         MP{"Na h-Eileanan Mairianach a Tuath"}
+-         MQ{"Mairtinic"}
+-         MR{"Moratàinea"}
+-@@ -220,7 +220,7 @@ gd{
+-         PM{"Saint Pierre agus Miquelon"}
+-         PN{"Eileanan Peit a’ Chàirn"}
+-         PR{"Porto Rìceo"}
+--        PS{"Na Ranntairean Palastaineach"}
+-+        PS{"Palastain"}
+-         PT{"A’ Phortagail"}
+-         PW{"Palabh"}
+-         PY{"Paraguaidh"}
+-@@ -294,9 +294,6 @@ gd{
+-     }
+-     Countries%short{
+-         GB{"RA"}
+--        HK{"Hong Kong"}
+--        MO{"Macàthu"}
+--        PS{"Palastain"}
+-         US{"SA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/gl.txt b/source/data/region/gl.txt
+-index 3c02e65..6a74ebb 100644
+---- a/source/data/region/gl.txt
+-+++ b/source/data/region/gl.txt
+-@@ -131,7 +131,7 @@ gl{
+-         GU{"Guam"}
+-         GW{"Guinea-Bisau"}
+-         GY{"Güiana"}
+--        HK{"Hong Kong RAE de China"}
+-+        HK{"Hong Kong"}
+-         HM{"Illa Heard e Illas McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croacia"}
+-@@ -185,7 +185,7 @@ gl{
+-         ML{"Malí"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"Macau RAE de China"}
+-+        MO{"Macau"}
+-         MP{"Illas Marianas do Norte"}
+-         MQ{"Martinica"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ gl{
+-         PM{"Saint Pierre e Miquelon"}
+-         PN{"Illas Pitcairn"}
+-         PR{"Porto Rico"}
+--        PS{"Territorios palestinos"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -295,9 +295,6 @@ gl{
+-     }
+-     Countries%short{
+-         GB{"RU"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"ONU"}
+-         US{"EUA"}
+-     }
+-diff --git a/source/data/region/gsw.txt b/source/data/region/gsw.txt
+-index 6cd60c8..2d370bf 100644
+---- a/source/data/region/gsw.txt
+-+++ b/source/data/region/gsw.txt
+-@@ -125,7 +125,7 @@ gsw{
+-         GU{"Guam"}
+-         GW{"Gineea-Bissau"}
+-         GY{"Guäjaana"}
+--        HK{"Sonderverwaltigszone Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Höörd- und MäcDonald-Insle"}
+-         HN{"Honduras"}
+-         HR{"Kroaazie"}
+-@@ -178,7 +178,7 @@ gsw{
+-         ML{"Maali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolei"}
+--        MO{"Sonderverwaltigszone Macao"}
+-+        MO{"Macao"}
+-         MP{"Nördlichi Mariaane"}
+-         MQ{"Martinigg"}
+-         MR{"Mauretaanie"}
+-@@ -281,10 +281,6 @@ gsw{
+-         ZW{"Simbabwe"}
+-         ZZ{"Unbekannti oder ungültigi Regioon"}
+-     }
+--    Countries%short{
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--    }
+-     Countries%variant{
+-         MK{"Mazedoonie (EJRM)"}
+-     }
+-diff --git a/source/data/region/gu.txt b/source/data/region/gu.txt
+-index 7c647b7..23f88e5 100644
+---- a/source/data/region/gu.txt
+-+++ b/source/data/region/gu.txt
+-@@ -131,7 +131,7 @@ gu{
+-         GU{"ગ્વામ"}
+-         GW{"ગિની-બિસાઉ"}
+-         GY{"ગયાના"}
+--        HK{"હોંગકોંગ SAR ચીન"}
+-+        HK{"હોંગ કોંગ"}
+-         HM{"હર્ડ અને મેકડોનાલ્ડ આઇલેન્ડ્સ"}
+-         HN{"હોન્ડુરસ"}
+-         HR{"ક્રોએશિયા"}
+-@@ -185,7 +185,7 @@ gu{
+-         ML{"માલી"}
+-         MM{"મ્યાંમાર (બર્મા)"}
+-         MN{"મંગોલિયા"}
+--        MO{"મકાઉ SAR ચીન"}
+-+        MO{"મકાઉ"}
+-         MP{"ઉત્તરીય મારિયાના આઇલેન્ડ્સ"}
+-         MQ{"માર્ટીનીક"}
+-         MR{"મૌરિટાનિયા"}
+-@@ -220,7 +220,7 @@ gu{
+-         PM{"સેન્ટ પિયર અને મીક્વેલન"}
+-         PN{"પીટકૈર્ન આઇલેન્ડ્સ"}
+-         PR{"પ્યુઅર્ટો રિકો"}
+--        PS{"પેલેસ્ટિનિયન ટેરિટરી"}
+-+        PS{"પેલેસ્ટાઇન"}
+-         PT{"પોર્ટુગલ"}
+-         PW{"પલાઉ"}
+-         PY{"પેરાગ્વે"}
+-@@ -295,9 +295,6 @@ gu{
+-     }
+-     Countries%short{
+-         GB{"યુ.કે."}
+--        HK{"હોંગ કોંગ"}
+--        MO{"મકાઉ"}
+--        PS{"પેલેસ્ટાઇન"}
+-         UN{"યૂએન"}
+-         US{"યુ.એસ."}
+-     }
+-diff --git a/source/data/region/he.txt b/source/data/region/he.txt
+-index 55f5bd5..b012a96 100644
+---- a/source/data/region/he.txt
+-+++ b/source/data/region/he.txt
+-@@ -131,7 +131,7 @@ he{
+-         GU{"גואם"}
+-         GW{"גינאה ביסאו"}
+-         GY{"גיאנה"}
+--        HK{"הונג קונג (מחוז מנהלי מיוחד של סין)"}
+-+        HK{"הונג קונג"}
+-         HM{"איי הרד ומקדונלד"}
+-         HN{"הונדורס"}
+-         HR{"קרואטיה"}
+-@@ -185,7 +185,7 @@ he{
+-         ML{"מאלי"}
+-         MM{"מיאנמר (בורמה)"}
+-         MN{"מונגוליה"}
+--        MO{"מקאו (מחוז מנהלי מיוחד של סין)"}
+-+        MO{"מקאו"}
+-         MP{"איי מריאנה הצפוניים"}
+-         MQ{"מרטיניק"}
+-         MR{"מאוריטניה"}
+-@@ -220,7 +220,7 @@ he{
+-         PM{"סנט פייר ומיקלון"}
+-         PN{"איי פיטקרן"}
+-         PR{"פוארטו ריקו"}
+--        PS{"השטחים הפלסטיניים"}
+-+        PS{"פלסטין"}
+-         PT{"פורטוגל"}
+-         PW{"פלאו"}
+-         PY{"פרגוואי"}
+-@@ -295,9 +295,6 @@ he{
+-     }
+-     Countries%short{
+-         GB{"בריטניה"}
+--        HK{"הונג קונג"}
+--        MO{"מקאו"}
+--        PS{"פלסטין"}
+-         US{"ארה״ב"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/hi.txt b/source/data/region/hi.txt
+-index 9cffd11..34ff7a5 100644
+---- a/source/data/region/hi.txt
+-+++ b/source/data/region/hi.txt
+-@@ -131,7 +131,7 @@ hi{
+-         GU{"गुआम"}
+-         GW{"गिनी-बिसाउ"}
+-         GY{"गयाना"}
+--        HK{"हाँग काँग (चीन विशेष प्रशासनिक क्षेत्र)"}
+-+        HK{"हाँग काँग"}
+-         HM{"हर्ड द्वीप और मैकडोनॉल्ड द्वीपसमूह"}
+-         HN{"होंडूरास"}
+-         HR{"क्रोएशिया"}
+-@@ -185,7 +185,7 @@ hi{
+-         ML{"माली"}
+-         MM{"म्यांमार (बर्मा)"}
+-         MN{"मंगोलिया"}
+--        MO{"मकाऊ (विशेष प्रशासनिक क्षेत्र चीन)"}
+-+        MO{"मकाऊ"}
+-         MP{"उत्तरी मारियाना द्वीपसमूह"}
+-         MQ{"मार्टीनिक"}
+-         MR{"मॉरिटानिया"}
+-@@ -220,7 +220,7 @@ hi{
+-         PM{"सेंट पिएरे और मिक्वेलान"}
+-         PN{"पिटकैर्न द्वीपसमूह"}
+-         PR{"पोर्टो रिको"}
+--        PS{"फ़िलिस्तीनी क्षेत्र"}
+-+        PS{"फ़िलिस्तीन"}
+-         PT{"पुर्तगाल"}
+-         PW{"पलाऊ"}
+-         PY{"पेराग्वे"}
+-@@ -295,9 +295,6 @@ hi{
+-     }
+-     Countries%short{
+-         GB{"यू.के."}
+--        HK{"हाँग काँग"}
+--        MO{"मकाऊ"}
+--        PS{"फ़िलिस्तीन"}
+-         UN{"संयुक्त राष्ट्र"}
+-         US{"अमेरिका"}
+-     }
+-diff --git a/source/data/region/hr.txt b/source/data/region/hr.txt
+-index 2a0e74b..46e3b29 100644
+---- a/source/data/region/hr.txt
+-+++ b/source/data/region/hr.txt
+-@@ -131,7 +131,7 @@ hr{
+-         GU{"Guam"}
+-         GW{"Gvineja Bisau"}
+-         GY{"Gvajana"}
+--        HK{"PUP Hong Kong Kina"}
+-+        HK{"Hong Kong"}
+-         HM{"Otoci Heard i McDonald"}
+-         HN{"Honduras"}
+-         HR{"Hrvatska"}
+-@@ -185,7 +185,7 @@ hr{
+-         ML{"Mali"}
+-         MM{"Mjanmar (Burma)"}
+-         MN{"Mongolija"}
+--        MO{"PUP Makao Kina"}
+-+        MO{"Makao"}
+-         MP{"Sjevernomarijanski otoci"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanija"}
+-@@ -220,7 +220,7 @@ hr{
+-         PM{"Saint-Pierre-et-Miquelon"}
+-         PN{"Otoci Pitcairn"}
+-         PR{"Portoriko"}
+--        PS{"Palestinsko Područje"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paragvaj"}
+-@@ -295,9 +295,6 @@ hr{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Makao"}
+--        PS{"Palestina"}
+-         UN{"UN"}
+-         US{"SAD"}
+-     }
+-diff --git a/source/data/region/hsb.txt b/source/data/region/hsb.txt
+-index 5b57933..9384186 100644
+---- a/source/data/region/hsb.txt
+-+++ b/source/data/region/hsb.txt
+-@@ -131,7 +131,7 @@ hsb{
+-         GU{"Guam"}
+-         GW{"Gineja-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Wosebita zarjadniska cona Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heardowa kupa a McDonaldowe kupy"}
+-         HN{"Honduras"}
+-         HR{"Chorwatska"}
+-@@ -185,7 +185,7 @@ hsb{
+-         ML{"Mali"}
+-         MM{"Myanmar"}
+-         MN{"Mongolska"}
+--        MO{"Wosebita zarjadniska cona Macao"}
+-+        MO{"Macao"}
+-         MP{"Sewjerne Mariany"}
+-         MQ{"Martinique"}
+-         MR{"Mawretanska"}
+-@@ -220,7 +220,7 @@ hsb{
+-         PM{"St. Pierre a Miquelon"}
+-         PN{"Pitcairnowe kupy"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinski awtonomny teritorij"}
+-+        PS{"Palestina"}
+-         PT{"Portugalska"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ hsb{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/hu.txt b/source/data/region/hu.txt
+-index 59a800d..84f20a9 100644
+---- a/source/data/region/hu.txt
+-+++ b/source/data/region/hu.txt
+-@@ -131,7 +131,7 @@ hu{
+-         GU{"Guam"}
+-         GW{"Bissau-Guinea"}
+-         GY{"Guyana"}
+--        HK{"Hongkong KKT"}
+-+        HK{"Hongkong"}
+-         HM{"Heard-sziget és McDonald-szigetek"}
+-         HN{"Honduras"}
+-         HR{"Horvátország"}
+-@@ -185,7 +185,7 @@ hu{
+-         ML{"Mali"}
+-         MM{"Mianmar (Burma)"}
+-         MN{"Mongólia"}
+--        MO{"Makaó KKT"}
+-+        MO{"Makaó"}
+-         MP{"Északi Mariana-szigetek"}
+-         MQ{"Martinique"}
+-         MR{"Mauritánia"}
+-@@ -220,7 +220,7 @@ hu{
+-         PM{"Saint-Pierre és Miquelon"}
+-         PN{"Pitcairn-szigetek"}
+-         PR{"Puerto Rico"}
+--        PS{"Palesztin Terület"}
+-+        PS{"Palesztina"}
+-         PT{"Portugália"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ hu{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Makaó"}
+--        PS{"Palesztina"}
+-         UN{"ENSZ"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/hy.txt b/source/data/region/hy.txt
+-index 08366fd..8548585 100644
+---- a/source/data/region/hy.txt
+-+++ b/source/data/region/hy.txt
+-@@ -131,7 +131,7 @@ hy{
+-         GU{"Գուամ"}
+-         GW{"Գվինեա-Բիսսաու"}
+-         GY{"Գայանա"}
+--        HK{"Հոնկոնգի ՀՎՇ"}
+-+        HK{"Հոնկոնգ"}
+-         HM{"Հերդ կղզի և ՄակԴոնալդի կղզիներ"}
+-         HN{"Հոնդուրաս"}
+-         HR{"Խորվաթիա"}
+-@@ -185,7 +185,7 @@ hy{
+-         ML{"Մալի"}
+-         MM{"Մյանմա (Բիրմա)"}
+-         MN{"Մոնղոլիա"}
+--        MO{"Չինաստանի Մակաո ՀՎՇ"}
+-+        MO{"Մակաո"}
+-         MP{"Հյուսիսային Մարիանյան կղզիներ"}
+-         MQ{"Մարտինիկա"}
+-         MR{"Մավրիտանիա"}
+-@@ -220,7 +220,7 @@ hy{
+-         PM{"Սեն Պիեռ և Միքելոն"}
+-         PN{"Պիտկեռն կղզիներ"}
+-         PR{"Պուերտո Ռիկո"}
+--        PS{"Պաղեստինյան տարածքներ"}
+-+        PS{"Պաղեստին"}
+-         PT{"Պորտուգալիա"}
+-         PW{"Պալաու"}
+-         PY{"Պարագվայ"}
+-@@ -295,9 +295,6 @@ hy{
+-     }
+-     Countries%short{
+-         GB{"ՄԹ"}
+--        HK{"Հոնկոնգ"}
+--        MO{"Մակաո"}
+--        PS{"Պաղեստին"}
+-         UN{"ՄԱԿ"}
+-         US{"ԱՄՆ"}
+-     }
+-diff --git a/source/data/region/id.txt b/source/data/region/id.txt
+-index bb7a140..762e35a 100644
+---- a/source/data/region/id.txt
+-+++ b/source/data/region/id.txt
+-@@ -131,7 +131,7 @@ id{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong SAR Tiongkok"}
+-+        HK{"Hong Kong"}
+-         HM{"Pulau Heard dan Kepulauan McDonald"}
+-         HN{"Honduras"}
+-         HR{"Kroasia"}
+-@@ -185,7 +185,7 @@ id{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Makau SAR Tiongkok"}
+-+        MO{"Makau"}
+-         MP{"Kepulauan Mariana Utara"}
+-         MQ{"Martinik"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ id{
+-         PM{"Saint Pierre dan Miquelon"}
+-         PN{"Kepulauan Pitcairn"}
+-         PR{"Puerto Riko"}
+--        PS{"Wilayah Palestina"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ id{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Makau"}
+--        PS{"Palestina"}
+-         UN{"PBB"}
+-         US{"A.S."}
+-     }
+-diff --git a/source/data/region/is.txt b/source/data/region/is.txt
+-index 3c2593d..dfd4769 100644
+---- a/source/data/region/is.txt
+-+++ b/source/data/region/is.txt
+-@@ -131,7 +131,7 @@ is{
+-         GU{"Gvam"}
+-         GW{"Gínea-Bissá"}
+-         GY{"Gvæjana"}
+--        HK{"Sjálfstjórnarsvæðið Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard og McDonaldseyjar"}
+-         HN{"Hondúras"}
+-         HR{"Króatía"}
+-@@ -185,7 +185,7 @@ is{
+-         ML{"Malí"}
+-         MM{"Mjanmar (Búrma)"}
+-         MN{"Mongólía"}
+--        MO{"Sjálfstjórnarsvæðið Makaó"}
+-+        MO{"Makaó"}
+-         MP{"Norður-Maríanaeyjar"}
+-         MQ{"Martiník"}
+-         MR{"Máritanía"}
+-@@ -220,7 +220,7 @@ is{
+-         PM{"Sankti Pierre og Miquelon"}
+-         PN{"Pitcairn-eyjar"}
+-         PR{"Púertó Ríkó"}
+--        PS{"Heimastjórnarsvæði Palestínumanna"}
+-+        PS{"Palestína"}
+-         PT{"Portúgal"}
+-         PW{"Palá"}
+-         PY{"Paragvæ"}
+-@@ -295,9 +295,6 @@ is{
+-     }
+-     Countries%short{
+-         GB{"Bretland"}
+--        HK{"Hong Kong"}
+--        MO{"Makaó"}
+--        PS{"Palestína"}
+-         UN{"Sameinuðu þjóðirnar"}
+-         US{"BNA"}
+-     }
+-diff --git a/source/data/region/it.txt b/source/data/region/it.txt
+-index 92c7ecc..95800b0 100644
+---- a/source/data/region/it.txt
+-+++ b/source/data/region/it.txt
+-@@ -131,7 +131,7 @@ it{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"RAS di Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Isole Heard e McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croazia"}
+-@@ -185,7 +185,7 @@ it{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"RAS di Macao"}
+-+        MO{"Macao"}
+-         MP{"Isole Marianne settentrionali"}
+-         MQ{"Martinica"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ it{
+-         PM{"Saint Pierre e Miquelon"}
+-         PN{"Isole Pitcairn"}
+-         PR{"Portorico"}
+--        PS{"Territori palestinesi"}
+-+        PS{"Palestina"}
+-         PT{"Portogallo"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ it{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"nazioni unite"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/ja.txt b/source/data/region/ja.txt
+-index 6879617..ca7ad98 100644
+---- a/source/data/region/ja.txt
+-+++ b/source/data/region/ja.txt
+-@@ -131,7 +131,7 @@ ja{
+-         GU{"グアム"}
+-         GW{"ギニアビサウ"}
+-         GY{"ガイアナ"}
+--        HK{"中華人民共和国香港特別行政区"}
+-+        HK{"香港"}
+-         HM{"ハード島・マクドナルド諸島"}
+-         HN{"ホンジュラス"}
+-         HR{"クロアチア"}
+-@@ -185,7 +185,7 @@ ja{
+-         ML{"マリ"}
+-         MM{"ミャンマー"}
+-         MN{"モンゴル"}
+--        MO{"中華人民共和国マカオ特別行政区"}
+-+        MO{"マカオ"}
+-         MP{"北マリアナ諸島"}
+-         MQ{"マルティニーク"}
+-         MR{"モーリタニア"}
+-@@ -220,7 +220,7 @@ ja{
+-         PM{"サンピエール島・ミクロン島"}
+-         PN{"ピトケアン諸島"}
+-         PR{"プエルトリコ"}
+--        PS{"パレスチナ自治区"}
+-+        PS{"パレスチナ"}
+-         PT{"ポルトガル"}
+-         PW{"パラオ"}
+-         PY{"パラグアイ"}
+-@@ -295,9 +295,6 @@ ja{
+-     }
+-     Countries%short{
+-         GB{"英国"}
+--        HK{"香港"}
+--        MO{"マカオ"}
+--        PS{"パレスチナ"}
+-         UN{"こくれん"}
+-         US{"アメリカ"}
+-     }
+-diff --git a/source/data/region/ka.txt b/source/data/region/ka.txt
+-index 5564e03..f2cbf85 100644
+---- a/source/data/region/ka.txt
+-+++ b/source/data/region/ka.txt
+-@@ -131,7 +131,7 @@ ka{
+-         GU{"გუამი"}
+-         GW{"გვინეა-ბისაუ"}
+-         GY{"გაიანა"}
+--        HK{"ჰონკონგის სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}
+-+        HK{"ჰონკონგი"}
+-         HM{"ჰერდი და მაკდონალდის კუნძულები"}
+-         HN{"ჰონდურასი"}
+-         HR{"ხორვატია"}
+-@@ -185,7 +185,7 @@ ka{
+-         ML{"მალი"}
+-         MM{"მიანმარი (ბირმა)"}
+-         MN{"მონღოლეთი"}
+--        MO{"მაკაოს სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}
+-+        MO{"მაკაო"}
+-         MP{"ჩრდილოეთ მარიანას კუნძულები"}
+-         MQ{"მარტინიკა"}
+-         MR{"მავრიტანია"}
+-@@ -220,7 +220,7 @@ ka{
+-         PM{"სენ-პიერი და მიკელონი"}
+-         PN{"პიტკერნის კუნძულები"}
+-         PR{"პუერტო-რიკო"}
+--        PS{"პალესტინის ტერიტორიები"}
+-+        PS{"პალესტინა"}
+-         PT{"პორტუგალია"}
+-         PW{"პალაუ"}
+-         PY{"პარაგვაი"}
+-@@ -295,9 +295,6 @@ ka{
+-     }
+-     Countries%short{
+-         GB{"გაერთ.სამ."}
+--        HK{"ჰონკონგი"}
+--        MO{"მაკაო"}
+--        PS{"პალესტინა"}
+-         UN{"გაერო"}
+-         US{"აშშ"}
+-     }
+-diff --git a/source/data/region/kea.txt b/source/data/region/kea.txt
+-index 1b6922e..e31a3ce 100644
+---- a/source/data/region/kea.txt
+-+++ b/source/data/region/kea.txt
+-@@ -131,7 +131,7 @@ kea{
+-         GU{"Guam"}
+-         GW{"Gine-Bisau"}
+-         GY{"Giana"}
+--        HK{"Rejiãu Administrativu Spesial di Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Ilhas Heard i McDonald"}
+-         HN{"Onduras"}
+-         HR{"Kroásia"}
+-@@ -185,7 +185,7 @@ kea{
+-         ML{"Mali"}
+-         MM{"Mianmar (Birmánia)"}
+-         MN{"Mongólia"}
+--        MO{"Rejiãu Administrativu Spesial di Makau"}
+-+        MO{"Makau"}
+-         MP{"Ilhas Marianas di Norti"}
+-         MQ{"Martinika"}
+-         MR{"Mauritánia"}
+-@@ -294,8 +294,6 @@ kea{
+-     }
+-     Countries%short{
+-         GB{"R.U."}
+--        HK{"Hong Kong"}
+--        MO{"Makau"}
+-         US{"S.U."}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/kk.txt b/source/data/region/kk.txt
+-index cffc578..987413d 100644
+---- a/source/data/region/kk.txt
+-+++ b/source/data/region/kk.txt
+-@@ -72,7 +72,7 @@ kk{
+-         BZ{"Белиз"}
+-         CA{"Канада"}
+-         CC{"Кокос (Килинг) аралдары"}
+--        CD{"Конго"}
+-+        CD{"Конго Демократиялық Республикасы"}
+-         CF{"Орталық Африка Республикасы"}
+-         CG{"Конго-Браззавиль Республикасы"}
+-         CH{"Швейцария"}
+-@@ -131,7 +131,7 @@ kk{
+-         GU{"Гуам"}
+-         GW{"Гвинея-Бисау"}
+-         GY{"Гайана"}
+--        HK{"Қытай Халық Республикасының Гонконг арнайы әкімшілік ауданы"}
+-+        HK{"Гонконг"}
+-         HM{"Херд аралы және Макдональд аралдары"}
+-         HN{"Гондурас"}
+-         HR{"Хорватия"}
+-@@ -185,7 +185,7 @@ kk{
+-         ML{"Мали"}
+-         MM{"Мьянма (Бирма)"}
+-         MN{"Моңғолия"}
+--        MO{"Қытай Халық Республикасының Макао арнайы әкімшілік ауданы"}
+-+        MO{"Макао"}
+-         MP{"Солтүстік Мариана аралдары"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритания"}
+-@@ -220,7 +220,7 @@ kk{
+-         PM{"Сен-Пьер және Микелон"}
+-         PN{"Питкэрн аралдары"}
+-         PR{"Пуэрто-Рико"}
+--        PS{"Палестина аймақтары"}
+-+        PS{"Палестина"}
+-         PT{"Португалия"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ kk{
+-     }
+-     Countries%short{
+-         GB{"Ұлыбритания"}
+--        HK{"Гонконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         UN{"БҰҰ"}
+-         US{"АҚШ"}
+-     }
+-diff --git a/source/data/region/km.txt b/source/data/region/km.txt
+-index 069023a..81c72cf 100644
+---- a/source/data/region/km.txt
+-+++ b/source/data/region/km.txt
+-@@ -220,7 +220,7 @@ km{
+-         PM{"សង់ព្យែរ និង​មីគីឡុង"}
+-         PN{"កោះ​ភីតកាន"}
+-         PR{"ព័រតូរីកូ"}
+--        PS{"ដែន​ប៉ាលេស្ទីន"}
+-+        PS{"ប៉ាលេស្ទីន"}
+-         PT{"ព័រទុយហ្គាល់"}
+-         PW{"ផៅឡូ"}
+-         PY{"ប៉ារ៉ាហ្គាយ"}
+-@@ -295,9 +295,6 @@ km{
+-     }
+-     Countries%short{
+-         GB{"ច.អ."}
+--        HK{"ហុងកុង"}
+--        MO{"ម៉ាកាវ"}
+--        PS{"ប៉ាលេស្ទីន"}
+-         UN{"អង្គការ"}
+-         US{"ស.រ.អ"}
+-     }
+-diff --git a/source/data/region/kn.txt b/source/data/region/kn.txt
+-index 4e6a85c..827a508 100644
+---- a/source/data/region/kn.txt
+-+++ b/source/data/region/kn.txt
+-@@ -131,7 +131,7 @@ kn{
+-         GU{"ಗುಯಾಮ್"}
+-         GW{"ಗಿನಿ-ಬಿಸ್ಸಾವ್"}
+-         GY{"ಗಯಾನಾ"}
+--        HK{"ಹಾಂಗ್ ಕಾಂಗ್ SAR ಚೈನಾ"}
+-+        HK{"ಹಾಂಗ್ ಕಾಂಗ್"}
+-         HM{"ಹರ್ಡ್ ಮತ್ತು ಮ್ಯಾಕ್‌ಡೋನಾಲ್ಡ್ ದ್ವೀಪಗಳು"}
+-         HN{"ಹೊಂಡುರಾಸ್"}
+-         HR{"ಕ್ರೊಯೇಶಿಯಾ"}
+-@@ -185,7 +185,7 @@ kn{
+-         ML{"ಮಾಲಿ"}
+-         MM{"ಮಯನ್ಮಾರ್ (ಬರ್ಮಾ)"}
+-         MN{"ಮೊಂಗೋಲಿಯಾ"}
+--        MO{"ಮಖಾವು (SAR) ಚೈನಾ"}
+-+        MO{"ಮಖಾವು"}
+-         MP{"ಉತ್ತರ ಮರಿಯಾನಾ ದ್ವೀಪಗಳು"}
+-         MQ{"ಮಾರ್ಟಿನಿಕ್"}
+-         MR{"ಮಾರಿಟೇನಿಯಾ"}
+-@@ -220,7 +220,7 @@ kn{
+-         PM{"ಸೇಂಟ್ ಪಿಯರೆ ಮತ್ತು ಮಿಕೆಲನ್"}
+-         PN{"ಪಿಟ್‌ಕೈರ್ನ್ ದ್ವೀಪಗಳು"}
+-         PR{"ಪ್ಯೂರ್ಟೋ ರಿಕೊ"}
+--        PS{"ಪ್ಯಾಲೇಸ್ಟೇನಿಯನ್ ಪ್ರದೇಶಗಳು"}
+-+        PS{"ಪ್ಯಾಲೆಸ್ಟೈನ್"}
+-         PT{"ಪೋರ್ಚುಗಲ್"}
+-         PW{"ಪಲಾವು"}
+-         PY{"ಪರಾಗ್ವೇ"}
+-@@ -295,9 +295,6 @@ kn{
+-     }
+-     Countries%short{
+-         GB{"ಯು.ಕೆ."}
+--        HK{"ಹಾಂಗ್ ಕಾಂಗ್"}
+--        MO{"ಮಖಾವು"}
+--        PS{"ಪ್ಯಾಲೆಸ್ಟೈನ್"}
+-         UN{"ಯುಎನ್"}
+-         US{"ಯು.ಎಸ್"}
+-     }
+-diff --git a/source/data/region/ko.txt b/source/data/region/ko.txt
+-index 6004f89..08e325a 100644
+---- a/source/data/region/ko.txt
+-+++ b/source/data/region/ko.txt
+-@@ -131,7 +131,7 @@ ko{
+-         GU{"괌"}
+-         GW{"기니비사우"}
+-         GY{"가이아나"}
+--        HK{"홍콩(중국 특별행정구)"}
+-+        HK{"홍콩"}
+-         HM{"허드 맥도널드 제도"}
+-         HN{"온두라스"}
+-         HR{"크로아티아"}
+-@@ -185,7 +185,7 @@ ko{
+-         ML{"말리"}
+-         MM{"미얀마"}
+-         MN{"몽골"}
+--        MO{"마카오(중국 특별행정구)"}
+-+        MO{"마카오"}
+-         MP{"북마리아나제도"}
+-         MQ{"마르티니크"}
+-         MR{"모리타니"}
+-@@ -220,7 +220,7 @@ ko{
+-         PM{"생피에르 미클롱"}
+-         PN{"핏케언 섬"}
+-         PR{"푸에르토리코"}
+--        PS{"팔레스타인 지구"}
+-+        PS{"팔레스타인"}
+-         PT{"포르투갈"}
+-         PW{"팔라우"}
+-         PY{"파라과이"}
+-@@ -295,9 +295,6 @@ ko{
+-     }
+-     Countries%short{
+-         GB{"영국"}
+--        HK{"홍콩"}
+--        MO{"마카오"}
+--        PS{"팔레스타인"}
+-         UN{"유엔"}
+-         US{"미국"}
+-     }
+-diff --git a/source/data/region/ksh.txt b/source/data/region/ksh.txt
+-index b29838f..9fbaeb3 100644
+---- a/source/data/region/ksh.txt
+-+++ b/source/data/region/ksh.txt
+-@@ -294,8 +294,6 @@ ksh{
+-     }
+-     Countries%short{
+-         GB{"Jruußbrettannije"}
+--        HK{"Hongkong"}
+--        MO{"Makau"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/ky.txt b/source/data/region/ky.txt
+-index e8349bc..8c442e6 100644
+---- a/source/data/region/ky.txt
+-+++ b/source/data/region/ky.txt
+-@@ -131,7 +131,7 @@ ky{
+-         GU{"Гуам"}
+-         GW{"Гвинея-Бисау"}
+-         GY{"Гайана"}
+--        HK{"Гонконг Кытай ААА"}
+-+        HK{"Гонконг"}
+-         HM{"Херд жана Макдоналд аралдары"}
+-         HN{"Гондурас"}
+-         HR{"Хорватия"}
+-@@ -185,7 +185,7 @@ ky{
+-         ML{"Мали"}
+-         MM{"Мьянма (Бирма)"}
+-         MN{"Монголия"}
+--        MO{"Макау Кытай ААА"}
+-+        MO{"Макау"}
+-         MP{"Түндүк Мариана аралдары"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритания"}
+-@@ -220,7 +220,7 @@ ky{
+-         PM{"Сен-Пьер жана Микелон"}
+-         PN{"Питкэрн аралдары"}
+-         PR{"Пуэрто-Рико"}
+--        PS{"Палестина аймактары"}
+-+        PS{"Палестина"}
+-         PT{"Португалия"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ ky{
+-     }
+-     Countries%short{
+-         GB{"УБ"}
+--        HK{"Гонконг"}
+--        MO{"Макау"}
+--        PS{"Палестина"}
+-         US{"АКШ"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/lb.txt b/source/data/region/lb.txt
+-index 946e8d0..1e1fab6 100644
+---- a/source/data/region/lb.txt
+-+++ b/source/data/region/lb.txt
+-@@ -131,7 +131,7 @@ lb{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Spezialverwaltungszon Hong Kong"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard- a McDonald-Inselen"}
+-         HN{"Honduras"}
+-         HR{"Kroatien"}
+-@@ -185,7 +185,7 @@ lb{
+-         ML{"Mali"}
+-         MM{"Myanmar"}
+-         MN{"Mongolei"}
+--        MO{"Spezialverwaltungszon Macau"}
+-+        MO{"Macau"}
+-         MP{"Nërdlech Marianen"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanien"}
+-@@ -220,7 +220,7 @@ lb{
+-         PM{"St. Pierre a Miquelon"}
+-         PN{"Pitcairninselen"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinensesch Autonomiegebidder"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -294,9 +294,6 @@ lb{
+-     }
+-     Countries%short{
+-         GB{"GB"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         US{"US"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/lo.txt b/source/data/region/lo.txt
+-index 2eb9780..49a4593 100644
+---- a/source/data/region/lo.txt
+-+++ b/source/data/region/lo.txt
+-@@ -130,7 +130,7 @@ lo{
+-         GU{"ກວາມ"}
+-         GW{"ກິນີ-ບິສເຊົາ"}
+-         GY{"ກາຍຢານາ"}
+--        HK{"ຮອງກົງ ເຂດປົກຄອງພິເສດ ຈີນ"}
+-+        HK{"ຮອງກົງ"}
+-         HM{"ໝູ່ເກາະເຮີດ & ແມັກໂດນອລ"}
+-         HN{"ຮອນດູຣັສ"}
+-         HR{"ໂຄຣເອເທຍ"}
+-@@ -184,7 +184,7 @@ lo{
+-         ML{"ມາລີ"}
+-         MM{"ມຽນມາ (ເບີມາ)"}
+-         MN{"ມອງໂກເລຍ"}
+--        MO{"ມາເກົ້າ ເຂດປົກຄອງພິເສດ ຈີນ"}
+-+        MO{"ມາເກົ້າ"}
+-         MP{"ຫມູ່ເກາະມາແຊວຕອນເຫນືອ"}
+-         MQ{"ມາຕິນີກ"}
+-         MR{"ມົວຣິເທເນຍ"}
+-@@ -219,7 +219,7 @@ lo{
+-         PM{"ເຊນ ປີແອ ມິເກວລອນ"}
+-         PN{"ໝູ່ເກາະພິດແຄນ"}
+-         PR{"ເພືອໂຕ ຣິໂກ"}
+--        PS{"ດິນແດນ ປາເລສຕິນຽນ"}
+-+        PS{"ປາເລສຕາຍ"}
+-         PT{"ພອລທູໂກ"}
+-         PW{"ປາລາວ"}
+-         PY{"ພາຣາກວຍ"}
+-@@ -294,9 +294,6 @@ lo{
+-     }
+-     Countries%short{
+-         GB{"ສະຫະລາດຊະອະນາຈັກຯ"}
+--        HK{"ຮອງກົງ"}
+--        MO{"ມາເກົ້າ"}
+--        PS{"ປາເລສຕາຍ"}
+-         UN{"ຢູເອັນ"}
+-         US{"ສະຫະລັດຯ"}
+-     }
+-diff --git a/source/data/region/lt.txt b/source/data/region/lt.txt
+-index 558b3c7..b90be67 100644
+---- a/source/data/region/lt.txt
+-+++ b/source/data/region/lt.txt
+-@@ -131,7 +131,7 @@ lt{
+-         GU{"Guamas"}
+-         GW{"Bisau Gvinėja"}
+-         GY{"Gajana"}
+--        HK{"Ypatingasis Administracinis Kinijos Regionas Honkongas"}
+-+        HK{"Honkongas"}
+-         HM{"Herdo ir Makdonaldo Salos"}
+-         HN{"Hondūras"}
+-         HR{"Kroatija"}
+-@@ -185,7 +185,7 @@ lt{
+-         ML{"Malis"}
+-         MM{"Mianmaras (Birma)"}
+-         MN{"Mongolija"}
+--        MO{"Ypatingasis Administracinis Kinijos Regionas Makao"}
+-+        MO{"Makao"}
+-         MP{"Marianos Šiaurinės Salos"}
+-         MQ{"Martinika"}
+-         MR{"Mauritanija"}
+-@@ -220,7 +220,7 @@ lt{
+-         PM{"Sen Pjeras ir Mikelonas"}
+-         PN{"Pitkerno salos"}
+-         PR{"Puerto Rikas"}
+--        PS{"Palestinos teritorija"}
+-+        PS{"Palestina"}
+-         PT{"Portugalija"}
+-         PW{"Palau"}
+-         PY{"Paragvajus"}
+-@@ -295,9 +295,6 @@ lt{
+-     }
+-     Countries%short{
+-         GB{"JK"}
+--        HK{"Honkongas"}
+--        MO{"Makao"}
+--        PS{"Palestina"}
+-         UN{"JT"}
+-         US{"JAV"}
+-     }
+-diff --git a/source/data/region/lv.txt b/source/data/region/lv.txt
+-index 39171af..bb5263e 100644
+---- a/source/data/region/lv.txt
+-+++ b/source/data/region/lv.txt
+-@@ -131,7 +131,7 @@ lv{
+-         GU{"Guama"}
+-         GW{"Gvineja-Bisava"}
+-         GY{"Gajāna"}
+--        HK{"Ķīnas īpašās pārvaldes apgabals Honkonga"}
+-+        HK{"Honkonga"}
+-         HM{"Hērda sala un Makdonalda salas"}
+-         HN{"Hondurasa"}
+-         HR{"Horvātija"}
+-@@ -185,7 +185,7 @@ lv{
+-         ML{"Mali"}
+-         MM{"Mjanma (Birma)"}
+-         MN{"Mongolija"}
+--        MO{"Ķīnas īpašās pārvaldes apgabals Makao"}
+-+        MO{"Makao"}
+-         MP{"Ziemeļu Marianas salas"}
+-         MQ{"Martinika"}
+-         MR{"Mauritānija"}
+-@@ -295,9 +295,6 @@ lv{
+-     }
+-     Countries%short{
+-         GB{"Lielbritānija"}
+--        HK{"Honkonga"}
+--        MO{"Makao"}
+--        PS{"Palestīna"}
+-         UN{"ANO"}
+-         US{"ASV"}
+-     }
+-diff --git a/source/data/region/mk.txt b/source/data/region/mk.txt
+-index 181000f..bacdcbe 100644
+---- a/source/data/region/mk.txt
+-+++ b/source/data/region/mk.txt
+-@@ -131,7 +131,7 @@ mk{
+-         GU{"Гуам"}
+-         GW{"Гвинеја-Бисау"}
+-         GY{"Гвајана"}
+--        HK{"Хонг Конг С.А.Р Кина"}
+-+        HK{"Хонг Конг"}
+-         HM{"Остров Херд и Острови Мекдоналд"}
+-         HN{"Хондурас"}
+-         HR{"Хрватска"}
+-@@ -185,7 +185,7 @@ mk{
+-         ML{"Мали"}
+-         MM{"Мјанмар (Бурма)"}
+-         MN{"Монголија"}
+--        MO{"Макао САР"}
+-+        MO{"Макао"}
+-         MP{"Северни Маријански Острови"}
+-         MQ{"Мартиник"}
+-         MR{"Мавританија"}
+-@@ -220,7 +220,7 @@ mk{
+-         PM{"Сент Пјер и Микелан"}
+-         PN{"Питкернски Острови"}
+-         PR{"Порторико"}
+--        PS{"Палестински територии"}
+-+        PS{"Палестина"}
+-         PT{"Португалија"}
+-         PW{"Палау"}
+-         PY{"Парагвај"}
+-@@ -295,9 +295,6 @@ mk{
+-     }
+-     Countries%short{
+-         GB{"ОК"}
+--        HK{"Хонг Конг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         UN{"ОН"}
+-         US{"САД"}
+-     }
+-diff --git a/source/data/region/ml.txt b/source/data/region/ml.txt
+-index ad121ef..893fabf 100644
+---- a/source/data/region/ml.txt
+-+++ b/source/data/region/ml.txt
+-@@ -131,7 +131,7 @@ ml{
+-         GU{"ഗ്വാം"}
+-         GW{"ഗിനിയ-ബിസൗ"}
+-         GY{"ഗയാന"}
+--        HK{"ഹോങ്കോങ്ങ് (SAR) ചൈന"}
+-+        HK{"ഹോങ്കോങ്ങ്"}
+-         HM{"ഹിയേർഡും മക്‌ഡൊണാൾഡ് ദ്വീപുകളും"}
+-         HN{"ഹോണ്ടുറാസ്"}
+-         HR{"ക്രൊയേഷ്യ"}
+-@@ -185,7 +185,7 @@ ml{
+-         ML{"മാലി"}
+-         MM{"മ്യാൻമാർ (ബർമ്മ)"}
+-         MN{"മംഗോളിയ"}
+--        MO{"മക്കാവു (SAR) ചൈന"}
+-+        MO{"മക്കാവു"}
+-         MP{"ഉത്തര മറിയാനാ ദ്വീപുകൾ"}
+-         MQ{"മാർട്ടിനിക്ക്"}
+-         MR{"മൗറിറ്റാനിയ"}
+-@@ -220,7 +220,7 @@ ml{
+-         PM{"സെന്റ് പിയറിയും മിക്കലണും"}
+-         PN{"പിറ്റ്‌കെയ്‌ൻ ദ്വീപുകൾ"}
+-         PR{"പ്യൂർട്ടോ റിക്കോ"}
+--        PS{"പാലസ്‌തീൻ പ്രദേശങ്ങൾ"}
+-+        PS{"പലസ്‌തീൻ"}
+-         PT{"പോർച്ചുഗൽ"}
+-         PW{"പലാവു"}
+-         PY{"പരാഗ്വേ"}
+-@@ -295,9 +295,6 @@ ml{
+-     }
+-     Countries%short{
+-         GB{"യു.കെ."}
+--        HK{"ഹോങ്കോങ്ങ്"}
+--        MO{"മക്കാവു"}
+--        PS{"പലസ്‌തീൻ"}
+-         UN{"യുഎൻ"}
+-         US{"യു.എസ്"}
+-     }
+-diff --git a/source/data/region/mn.txt b/source/data/region/mn.txt
+-index 8c35524..6b42784 100644
+---- a/source/data/region/mn.txt
+-+++ b/source/data/region/mn.txt
+-@@ -131,7 +131,7 @@ mn{
+-         GU{"Гуам"}
+-         GW{"Гвиней-Бисау"}
+-         GY{"Гайана"}
+--        HK{"БНХАУ-ын Тусгай захиргааны бүс Хонг Конг"}
+-+        HK{"Хонг Конг"}
+-         HM{"Хэрд болон Макдоналд арлууд"}
+-         HN{"Гондурас"}
+-         HR{"Хорват"}
+-@@ -185,7 +185,7 @@ mn{
+-         ML{"Мали"}
+-         MM{"Мьянмар (Бурма)"}
+-         MN{"Монгол"}
+--        MO{"БНХАУ-ын Тусгай захиргааны бүс Макао"}
+-+        MO{"Макао"}
+-         MP{"Хойд Марианы арлууд"}
+-         MQ{"Мартиник"}
+-         MR{"Мавритани"}
+-@@ -220,7 +220,7 @@ mn{
+-         PM{"Сэнт Пьер ба Микелон"}
+-         PN{"Питкэрн арлууд"}
+-         PR{"Пуэрто Рико"}
+--        PS{"Палестины нутаг дэвсгэрүүд"}
+-+        PS{"Палестин"}
+-         PT{"Португаль"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ mn{
+-     }
+-     Countries%short{
+-         GB{"ИБ"}
+--        HK{"Хонг Конг"}
+--        MO{"Макао"}
+--        PS{"Палестин"}
+-         UN{"НҮБ"}
+-         US{"АНУ"}
+-     }
+-diff --git a/source/data/region/mr.txt b/source/data/region/mr.txt
+-index 8c95b79..cc0fe8a 100644
+---- a/source/data/region/mr.txt
+-+++ b/source/data/region/mr.txt
+-@@ -131,7 +131,7 @@ mr{
+-         GU{"गुआम"}
+-         GW{"गिनी-बिसाउ"}
+-         GY{"गयाना"}
+--        HK{"हाँगकाँग एसएआर चीन"}
+-+        HK{"हाँगकाँग"}
+-         HM{"हर्ड आणि मॅक्डोनाल्ड बेटे"}
+-         HN{"होंडुरास"}
+-         HR{"क्रोएशिया"}
+-@@ -185,7 +185,7 @@ mr{
+-         ML{"माली"}
+-         MM{"म्यानमार (बर्मा)"}
+-         MN{"मंगोलिया"}
+--        MO{"मकाओ एसएआर चीन"}
+-+        MO{"मकाओ"}
+-         MP{"उत्तरी मारियाना बेटे"}
+-         MQ{"मार्टिनिक"}
+-         MR{"मॉरिटानिया"}
+-@@ -220,7 +220,7 @@ mr{
+-         PM{"सेंट पियरे आणि मिक्वेलोन"}
+-         PN{"पिटकैर्न बेटे"}
+-         PR{"प्युएर्तो रिको"}
+--        PS{"पॅलेस्टिनियन प्रदेश"}
+-+        PS{"पॅलेस्टाईन"}
+-         PT{"पोर्तुगाल"}
+-         PW{"पलाऊ"}
+-         PY{"पराग्वे"}
+-@@ -295,9 +295,6 @@ mr{
+-     }
+-     Countries%short{
+-         GB{"यू.के."}
+--        HK{"हाँगकाँग"}
+--        MO{"मकाओ"}
+--        PS{"पॅलेस्टाईन"}
+-         UN{"यूएन"}
+-         US{"यू.एस."}
+-     }
+-diff --git a/source/data/region/ms.txt b/source/data/region/ms.txt
+-index 614ba00..808c17d 100644
+---- a/source/data/region/ms.txt
+-+++ b/source/data/region/ms.txt
+-@@ -131,7 +131,7 @@ ms{
+-         GU{"Guam"}
+-         GW{"Guinea Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong SAR China"}
+-+        HK{"Hong Kong"}
+-         HM{"Kepulauan Heard & McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croatia"}
+-@@ -185,7 +185,7 @@ ms{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macau SAR China"}
+-+        MO{"Macau"}
+-         MP{"Kepulauan Mariana Utara"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ ms{
+-         PM{"Saint Pierre dan Miquelon"}
+-         PN{"Kepulauan Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Wilayah Palestin"}
+-+        PS{"Palestin"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ ms{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestin"}
+-         UN{"PBB"}
+-         US{"A.S"}
+-     }
+-diff --git a/source/data/region/mt.txt b/source/data/region/mt.txt
+-index 6f72145..0a676bc 100644
+---- a/source/data/region/mt.txt
+-+++ b/source/data/region/mt.txt
+-@@ -129,10 +129,7 @@ mt{
+-         GU{"Guam"}
+-         GW{"il-Guinea-Bissau"}
+-         GY{"il-Guyana"}
+--        HK{
+--            "ir-Reġjun Amministrattiv Speċjali ta’ Hong Kong tar-Repubblika tal-Poplu"
+--            " taċ-Ċina"
+--        }
+-+        HK{"Hong Kong"}
+-         HM{"il-Gżejjer Heard u l-Gżejjer McDonald"}
+-         HN{"il-Honduras"}
+-         HR{"il-Kroazja"}
+-@@ -186,10 +183,7 @@ mt{
+-         ML{"il-Mali"}
+-         MM{"il-Myanmar/Burma"}
+-         MN{"il-Mongolja"}
+--        MO{
+--            "ir-Reġjun Amministrattiv Speċjali tal-Macao tar-Repubblika tal-Poplu taċ"
+--            "-Ċina"
+--        }
+-+        MO{"il-Macao"}
+-         MP{"Ġżejjer Mariana tat-Tramuntana"}
+-         MQ{"Martinique"}
+-         MR{"il-Mauritania"}
+-@@ -224,7 +218,7 @@ mt{
+-         PM{"Saint Pierre u Miquelon"}
+-         PN{"Gżejjer Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"it-Territorji Palestinjani"}
+-+        PS{"il-Palestina"}
+-         PT{"il-Portugall"}
+-         PW{"Palau"}
+-         PY{"il-Paragwaj"}
+-@@ -297,9 +291,6 @@ mt{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hong Kong"}
+--        MO{"il-Macao"}
+--        PS{"il-Palestina"}
+-         US{"US"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/my.txt b/source/data/region/my.txt
+-index e31c1ff..06f6566 100644
+---- a/source/data/region/my.txt
+-+++ b/source/data/region/my.txt
+-@@ -131,7 +131,7 @@ my{
+-         GU{"ဂူအမ်"}
+-         GW{"ဂီနီ-ဘီစော"}
+-         GY{"ဂိုင်ယာနာ"}
+--        HK{"ဟောင်ကောင် (တရုတ်ပြည်)"}
+-+        HK{"ဟောင်ကောင်"}
+-         HM{"ဟတ်ကျွန်းနှင့်မက်ဒေါနယ်ကျွန်းစု"}
+-         HN{"ဟွန်ဒူးရပ်စ်"}
+-         HR{"ခရိုအေးရှား"}
+-@@ -185,7 +185,7 @@ my{
+-         ML{"မာလီ"}
+-         MM{"မြန်မာ"}
+-         MN{"မွန်ဂိုးလီးယား"}
+--        MO{"မကာအို (တရုတ်ပြည်)"}
+-+        MO{"မကာအို"}
+-         MP{"တောင်ပိုင်းမာရီအာနာကျွန်းစု"}
+-         MQ{"မာတီနိခ်"}
+-         MR{"မော်ရီတေးနီးယား"}
+-@@ -220,7 +220,7 @@ my{
+-         PM{"စိန့်ပီအဲရ်နှင့် မီကွီလွန်"}
+-         PN{"ပစ်တ်ကိန်းကျွန်းစု"}
+-         PR{"ပေါ်တိုရီကို"}
+--        PS{"ပါလက်စတိုင်း ပိုင်နက်"}
+-+        PS{"ပါလက်စတိုင်း"}
+-         PT{"ပေါ်တူဂီ"}
+-         PW{"ပလာအို"}
+-         PY{"ပါရာဂွေး"}
+-@@ -295,9 +295,6 @@ my{
+-     }
+-     Countries%short{
+-         GB{"ယူကေ"}
+--        HK{"ဟောင်ကောင်"}
+--        MO{"မကာအို"}
+--        PS{"ပါလက်စတိုင်း"}
+-         UN{"ကုလသမဂ္ဂ"}
+-         US{"ယူအက်စ်"}
+-     }
+-diff --git a/source/data/region/mzn.txt b/source/data/region/mzn.txt
+-index 8a76bf5..b2ff11a 100644
+---- a/source/data/region/mzn.txt
+-+++ b/source/data/region/mzn.txt
+-@@ -131,7 +131,7 @@ mzn{
+-         GU{"گوئام"}
+-         GW{"گینه بیسائو"}
+-         GY{"گویان"}
+--        HK{"هنگ کنگ"}
+-+        HK{"هونگ کونگ"}
+-         HM{"هارد و مک‌دونالد جزایر"}
+-         HN{"هندوراس"}
+-         HR{"کرواسی"}
+-@@ -185,7 +185,7 @@ mzn{
+-         ML{"مالی"}
+-         MM{"میانمار"}
+-         MN{"مغولستون"}
+--        MO{"ماکائو (چین دله)"}
+-+        MO{"ماکائو"}
+-         MP{"شمالی ماریانا جزایر"}
+-         MQ{"مارتینیک جزیره‌ئون"}
+-         MR{"موریتانی"}
+-@@ -220,7 +220,7 @@ mzn{
+-         PM{"سن پییر و میکلن"}
+-         PN{"پیتکارین جزایر"}
+-         PR{"پورتوریکو"}
+--        PS{"فلسطین ِسرزمین"}
+-+        PS{"فلسطین"}
+-         PT{"پرتغال"}
+-         PW{"پالائو"}
+-         PY{"پاراگوئه"}
+-@@ -294,9 +294,6 @@ mzn{
+-     }
+-     Countries%short{
+-         GB{"بریتانیا"}
+--        HK{"هونگ کونگ"}
+--        MO{"ماکائو"}
+--        PS{"فلسطین"}
+-         US{"آمریکا متحده ایالات"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/nb.txt b/source/data/region/nb.txt
+-index 550c2f0..965094a 100644
+---- a/source/data/region/nb.txt
+-+++ b/source/data/region/nb.txt
+-@@ -131,7 +131,7 @@ nb{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong S.A.R. Kina"}
+-+        HK{"Hongkong"}
+-         HM{"Heard- og McDonaldøyene"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -185,7 +185,7 @@ nb{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macao S.A.R. Kina"}
+-+        MO{"Macao"}
+-         MP{"Nord-Marianene"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ nb{
+-         PM{"St. Pierre og Miquelon"}
+-         PN{"Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Det palestinske området"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ nb{
+-     }
+-     Countries%short{
+-         GB{"Storbritannia"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"FN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/ne.txt b/source/data/region/ne.txt
+-index cda2c5f..9298b2d 100644
+---- a/source/data/region/ne.txt
+-+++ b/source/data/region/ne.txt
+-@@ -131,7 +131,7 @@ ne{
+-         GU{"गुवाम"}
+-         GW{"गिनी-बिसाउ"}
+-         GY{"गुयाना"}
+--        HK{"हङकङ चिनिया समाजवादी स्वायत्त क्षेत्र"}
+-+        HK{"हङकङ"}
+-         HM{"हर्ड टापु र म्याकडोनाल्ड टापुहरु"}
+-         HN{"हन्डुरास"}
+-         HR{"क्रोएशिया"}
+-@@ -185,7 +185,7 @@ ne{
+-         ML{"माली"}
+-         MM{"म्यान्मार (बर्मा)"}
+-         MN{"मङ्गोलिया"}
+--        MO{"मकावो चिनिँया स्वशासित क्षेत्र"}
+-+        MO{"मकावो"}
+-         MP{"उत्तरी मारिआना टापु"}
+-         MQ{"मार्टिनिक"}
+-         MR{"माउरिटानिया"}
+-@@ -220,7 +220,7 @@ ne{
+-         PM{"सेन्ट पिर्रे र मिक्केलोन"}
+-         PN{"पिटकाइर्न टापुहरु"}
+-         PR{"पुएर्टो रिको"}
+--        PS{"प्यालेस्टनी भू-भागहरु"}
+-+        PS{"प्यालेसटाइन"}
+-         PT{"पोर्चुगल"}
+-         PW{"पलाउ"}
+-         PY{"प्याराग्वे"}
+-@@ -295,9 +295,6 @@ ne{
+-     }
+-     Countries%short{
+-         GB{"बेलायत"}
+--        HK{"हङकङ"}
+--        MO{"मकावो"}
+--        PS{"प्यालेसटाइन"}
+-         UN{"यूएन"}
+-         US{"अमेरिका"}
+-     }
+-diff --git a/source/data/region/nl.txt b/source/data/region/nl.txt
+-index fd61a14..dd38db3 100644
+---- a/source/data/region/nl.txt
+-+++ b/source/data/region/nl.txt
+-@@ -131,7 +131,7 @@ nl{
+-         GU{"Guam"}
+-         GW{"Guinee-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong SAR van China"}
+-+        HK{"Hongkong"}
+-         HM{"Heard en McDonaldeilanden"}
+-         HN{"Honduras"}
+-         HR{"Kroatië"}
+-@@ -185,7 +185,7 @@ nl{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birma)"}
+-         MN{"Mongolië"}
+--        MO{"Macau SAR van China"}
+-+        MO{"Macau"}
+-         MP{"Noordelijke Marianen"}
+-         MQ{"Martinique"}
+-         MR{"Mauritanië"}
+-@@ -220,7 +220,7 @@ nl{
+-         PM{"Saint-Pierre en Miquelon"}
+-         PN{"Pitcairneilanden"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestijnse gebieden"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ nl{
+-     }
+-     Countries%short{
+-         GB{"VK"}
+--        HK{"Hongkong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"vn"}
+-         US{"VS"}
+-     }
+-diff --git a/source/data/region/nn.txt b/source/data/region/nn.txt
+-index e6fcc18..acf908d 100644
+---- a/source/data/region/nn.txt
+-+++ b/source/data/region/nn.txt
+-@@ -130,7 +130,7 @@ nn{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong S.A.R. Kina"}
+-+        HK{"Hongkong"}
+-         HM{"Heard- og McDonaldsøyane"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -184,7 +184,7 @@ nn{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macao S.A.R. Kina"}
+-+        MO{"Macao"}
+-         MP{"Nord-Marianane"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -293,8 +293,6 @@ nn{
+-     }
+-     Countries%short{
+-         GB{"Storbritannia"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/pa.txt b/source/data/region/pa.txt
+-index dd0f8c6..3994d99 100644
+---- a/source/data/region/pa.txt
+-+++ b/source/data/region/pa.txt
+-@@ -131,7 +131,7 @@ pa{
+-         GU{"ਗੁਆਮ"}
+-         GW{"ਗਿਨੀ-ਬਿਸਾਉ"}
+-         GY{"ਗੁਯਾਨਾ"}
+--        HK{"ਹਾਂਗ ਕਾਂਗ ਐਸਏਆਰ ਚੀਨ"}
+-+        HK{"ਹਾਂਗ ਕਾਂਗ"}
+-         HM{"ਹਰਡ ਤੇ ਮੈਕਡੋਨਾਲਡ ਟਾਪੂ"}
+-         HN{"ਹੋਂਡੁਰਸ"}
+-         HR{"ਕਰੋਏਸ਼ੀਆ"}
+-@@ -185,7 +185,7 @@ pa{
+-         ML{"ਮਾਲੀ"}
+-         MM{"ਮਿਆਂਮਾਰ (ਬਰਮਾ)"}
+-         MN{"ਮੰਗੋਲੀਆ"}
+--        MO{"ਮਕਾਉ ਐਸਏਆਰ ਚੀਨ"}
+-+        MO{"ਮਕਾਉ"}
+-         MP{"ਉੱਤਰੀ ਮਾਰੀਆਨਾ ਟਾਪੂ"}
+-         MQ{"ਮਾਰਟੀਨਿਕ"}
+-         MR{"ਮੋਰਿਟਾਨੀਆ"}
+-@@ -220,7 +220,7 @@ pa{
+-         PM{"ਸੇਂਟ ਪੀਅਰੇ ਐਂਡ ਮਿਕੇਲਨ"}
+-         PN{"ਪਿਟਕੇਰਨ ਟਾਪੂ"}
+-         PR{"ਪਿਊਰਟੋ ਰਿਕੋ"}
+--        PS{"ਫਿਲੀਸਤੀਨੀ ਇਲਾਕਾ"}
+-+        PS{"ਫਿਲੀਸਤੀਨ"}
+-         PT{"ਪੁਰਤਗਾਲ"}
+-         PW{"ਪਲਾਉ"}
+-         PY{"ਪੈਰਾਗਵੇ"}
+-@@ -295,9 +295,6 @@ pa{
+-     }
+-     Countries%short{
+-         GB{"ਯੂ.ਕੇ."}
+--        HK{"ਹਾਂਗ ਕਾਂਗ"}
+--        MO{"ਮਕਾਉ"}
+--        PS{"ਫਿਲੀਸਤੀਨ"}
+-         UN{"ਯੂ.ਐੱਨ."}
+-         US{"ਯੂ.ਐੱਸ."}
+-     }
+-diff --git a/source/data/region/pl.txt b/source/data/region/pl.txt
+-index a6aa7dc..09b884e 100644
+---- a/source/data/region/pl.txt
+-+++ b/source/data/region/pl.txt
+-@@ -131,7 +131,7 @@ pl{
+-         GU{"Guam"}
+-         GW{"Gwinea Bissau"}
+-         GY{"Gujana"}
+--        HK{"SRA Hongkong (Chiny)"}
+-+        HK{"Hongkong"}
+-         HM{"Wyspy Heard i McDonalda"}
+-         HN{"Honduras"}
+-         HR{"Chorwacja"}
+-@@ -185,7 +185,7 @@ pl{
+-         ML{"Mali"}
+-         MM{"Mjanma (Birma)"}
+-         MN{"Mongolia"}
+--        MO{"SRA Makau (Chiny)"}
+-+        MO{"Makau"}
+-         MP{"Mariany Północne"}
+-         MQ{"Martynika"}
+-         MR{"Mauretania"}
+-@@ -220,7 +220,7 @@ pl{
+-         PM{"Saint-Pierre i Miquelon"}
+-         PN{"Pitcairn"}
+-         PR{"Portoryko"}
+--        PS{"Terytoria Palestyńskie"}
+-+        PS{"Palestyna"}
+-         PT{"Portugalia"}
+-         PW{"Palau"}
+-         PY{"Paragwaj"}
+-@@ -295,9 +295,6 @@ pl{
+-     }
+-     Countries%short{
+-         GB{"Wlk. Bryt."}
+--        HK{"Hongkong"}
+--        MO{"Makau"}
+--        PS{"Palestyna"}
+-         UN{"ONZ"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/pt.txt b/source/data/region/pt.txt
+-index bdb57b0..38522fb 100644
+---- a/source/data/region/pt.txt
+-+++ b/source/data/region/pt.txt
+-@@ -131,7 +131,7 @@ pt{
+-         GU{"Guam"}
+-         GW{"Guiné-Bissau"}
+-         GY{"Guiana"}
+--        HK{"Hong Kong, RAE da China"}
+-+        HK{"Hong Kong"}
+-         HM{"Ilhas Heard e McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croácia"}
+-@@ -185,7 +185,7 @@ pt{
+-         ML{"Mali"}
+-         MM{"Mianmar (Birmânia)"}
+-         MN{"Mongólia"}
+--        MO{"Macau, RAE da China"}
+-+        MO{"Macau"}
+-         MP{"Ilhas Marianas do Norte"}
+-         MQ{"Martinica"}
+-         MR{"Mauritânia"}
+-@@ -220,7 +220,7 @@ pt{
+-         PM{"Saint Pierre e Miquelon"}
+-         PN{"Ilhas Pitcairn"}
+-         PR{"Porto Rico"}
+--        PS{"Territórios palestinos"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -295,9 +295,6 @@ pt{
+-     }
+-     Countries%short{
+-         GB{"Reino Unido"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"NU"}
+-         US{"EUA"}
+-     }
+-diff --git a/source/data/region/ro.txt b/source/data/region/ro.txt
+-index 58afc40..add8ce6 100644
+---- a/source/data/region/ro.txt
+-+++ b/source/data/region/ro.txt
+-@@ -131,7 +131,7 @@ ro{
+-         GU{"Guam"}
+-         GW{"Guineea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"R.A.S. Hong Kong a Chinei"}
+-+        HK{"Hong Kong"}
+-         HM{"Insula Heard și Insulele McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croația"}
+-@@ -185,7 +185,7 @@ ro{
+-         ML{"Mali"}
+-         MM{"Myanmar (Birmania)"}
+-         MN{"Mongolia"}
+--        MO{"R.A.S. Macao a Chinei"}
+-+        MO{"Macao"}
+-         MP{"Insulele Mariane de Nord"}
+-         MQ{"Martinica"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ ro{
+-         PM{"Saint-Pierre și Miquelon"}
+-         PN{"Insulele Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Teritoriile Palestiniene"}
+-+        PS{"Palestina"}
+-         PT{"Portugalia"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ ro{
+-     }
+-     Countries%short{
+-         GB{"Regatul Unit"}
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"NU"}
+-         US{"S.U.A."}
+-     }
+-diff --git a/source/data/region/ru.txt b/source/data/region/ru.txt
+-index f3ec826..ba2439b 100644
+---- a/source/data/region/ru.txt
+-+++ b/source/data/region/ru.txt
+-@@ -131,7 +131,7 @@ ru{
+-         GU{"Гуам"}
+-         GW{"Гвинея-Бисау"}
+-         GY{"Гайана"}
+--        HK{"Гонконг (специальный административный район)"}
+-+        HK{"Гонконг"}
+-         HM{"о-ва Херд и Макдональд"}
+-         HN{"Гондурас"}
+-         HR{"Хорватия"}
+-@@ -185,7 +185,7 @@ ru{
+-         ML{"Мали"}
+-         MM{"Мьянма (Бирма)"}
+-         MN{"Монголия"}
+--        MO{"Макао (специальный административный район)"}
+-+        MO{"Макао"}
+-         MP{"Северные Марианские о-ва"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритания"}
+-@@ -220,7 +220,7 @@ ru{
+-         PM{"Сен-Пьер и Микелон"}
+-         PN{"острова Питкэрн"}
+-         PR{"Пуэрто-Рико"}
+--        PS{"Палестинские территории"}
+-+        PS{"Палестина"}
+-         PT{"Португалия"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ ru{
+-     }
+-     Countries%short{
+-         GB{"Британия"}
+--        HK{"Гонконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         UN{"ООН"}
+-         US{"США"}
+-     }
+-diff --git a/source/data/region/se.txt b/source/data/region/se.txt
+-index 677f911..e98cfd4 100644
+---- a/source/data/region/se.txt
+-+++ b/source/data/region/se.txt
+-@@ -289,9 +289,6 @@ se{
+-     }
+-     Countries%short{
+-         GB{"Stuorra-Británnia"}
+--        HK{"Hongkong"}
+--        MO{"Makáo"}
+--        PS{"Palestina"}
+-         US{"USA"}
+-     }
+-     Version{"2.1.27.98"}
+-diff --git a/source/data/region/si.txt b/source/data/region/si.txt
+-index 80e4305..24e61f3 100644
+---- a/source/data/region/si.txt
+-+++ b/source/data/region/si.txt
+-@@ -131,7 +131,7 @@ si{
+-         GU{"ගුවාම්"}
+-         GW{"ගිනි බිසව්"}
+-         GY{"ගයනාව"}
+--        HK{"හොංකොං චීන විශේෂ පරිපාලන කලාපය"}
+-+        HK{"හොංකොං"}
+-         HM{"හර්ඩ් දූපත සහ මැක්ඩොනල්ඩ් දූපත්"}
+-         HN{"හොන්ඩුරාස්"}
+-         HR{"ක්‍රොඒෂියාව"}
+-@@ -185,7 +185,7 @@ si{
+-         ML{"මාලි"}
+-         MM{"මියන්මාරය (බුරුමය)"}
+-         MN{"මොන්ගෝලියාව"}
+--        MO{"මකාවු චීන විශේෂ පරිපාලන කලාපය"}
+-+        MO{"මකාවු"}
+-         MP{"උතුරු මරියානා දූපත්"}
+-         MQ{"මර්ටිනික්"}
+-         MR{"මොරිටේනියාව"}
+-@@ -220,7 +220,7 @@ si{
+-         PM{"ශාන්ත පියරේ සහ මැකෝලන්"}
+-         PN{"පිට්කෙය්න් දූපත්"}
+-         PR{"පුවර්ටෝ රිකෝ"}
+--        PS{"පලස්තීන රාජ්‍යය"}
+-+        PS{"පලස්තීනය"}
+-         PT{"පෘතුගාලය"}
+-         PW{"පලාවු"}
+-         PY{"පැරගුවේ"}
+-@@ -295,9 +295,6 @@ si{
+-     }
+-     Countries%short{
+-         GB{"එ.රා"}
+--        HK{"හොංකොං"}
+--        MO{"මකාවු"}
+--        PS{"පලස්තීනය"}
+-         UN{"එක්සත් ජාතීන්"}
+-         US{"එ.ජ"}
+-     }
+-diff --git a/source/data/region/sk.txt b/source/data/region/sk.txt
+-index d9054dd..27b6599 100644
+---- a/source/data/region/sk.txt
+-+++ b/source/data/region/sk.txt
+-@@ -131,7 +131,7 @@ sk{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guayana"}
+--        HK{"Hongkong – OAO Číny"}
+-+        HK{"Hongkong"}
+-         HM{"Heardov ostrov a Macdonaldove ostrovy"}
+-         HN{"Honduras"}
+-         HR{"Chorvátsko"}
+-@@ -185,7 +185,7 @@ sk{
+-         ML{"Mali"}
+-         MM{"Mjanmarsko"}
+-         MN{"Mongolsko"}
+--        MO{"Macao – OAO Číny"}
+-+        MO{"Macao"}
+-         MP{"Severné Mariány"}
+-         MQ{"Martinik"}
+-         MR{"Mauritánia"}
+-@@ -220,7 +220,7 @@ sk{
+-         PM{"Saint Pierre a Miquelon"}
+-         PN{"Pitcairnove ostrovy"}
+-         PR{"Portoriko"}
+--        PS{"Palestínske územia"}
+-+        PS{"Palestínska samospráva"}
+-         PT{"Portugalsko"}
+-         PW{"Palau"}
+-         PY{"Paraguaj"}
+-@@ -295,9 +295,6 @@ sk{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestínska samospráva"}
+-         UN{"OSN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/sl.txt b/source/data/region/sl.txt
+-index 21dfb62..63015b5 100644
+---- a/source/data/region/sl.txt
+-+++ b/source/data/region/sl.txt
+-@@ -131,7 +131,7 @@ sl{
+-         GU{"Guam"}
+-         GW{"Gvineja Bissau"}
+-         GY{"Gvajana"}
+--        HK{"Posebno administrativno območje LR Kitajske Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heardov otok in McDonaldovi otoki"}
+-         HN{"Honduras"}
+-         HR{"Hrvaška"}
+-@@ -185,7 +185,7 @@ sl{
+-         ML{"Mali"}
+-         MM{"Mjanmar (Burma)"}
+-         MN{"Mongolija"}
+--        MO{"Posebno administrativno območje LR Kitajske Macao"}
+-+        MO{"Macao"}
+-         MP{"Severni Marianski otoki"}
+-         MQ{"Martinik"}
+-         MR{"Mavretanija"}
+-@@ -220,7 +220,7 @@ sl{
+-         PM{"Saint Pierre in Miquelon"}
+-         PN{"Pitcairn"}
+-         PR{"Portoriko"}
+--        PS{"Palestinsko ozemlje"}
+-+        PS{"Palestina"}
+-         PT{"Portugalska"}
+-         PW{"Palau"}
+-         PY{"Paragvaj"}
+-@@ -295,9 +295,6 @@ sl{
+-     }
+-     Countries%short{
+-         GB{"ZK"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"Združeni narodi"}
+-         US{"ZDA"}
+-     }
+-diff --git a/source/data/region/smn.txt b/source/data/region/smn.txt
+-index f323c31..8b34b7e 100644
+---- a/source/data/region/smn.txt
+-+++ b/source/data/region/smn.txt
+-@@ -96,7 +96,7 @@ smn{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong – Kiina e.h.k."}
+-+        HK{"Hong Kong"}
+-         HM{"Heard já McDonaldsuolluuh"}
+-         HN{"Honduras"}
+-         HR{"Kroatia"}
+-@@ -149,7 +149,7 @@ smn{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macao - – Kiina e.h.k."}
+-+        MO{"Macao"}
+-         MP{"Tave-Marianeh"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -255,8 +255,6 @@ smn{
+-     }
+-     Countries%short{
+-         GB{"OK"}
+--        HK{"Hong Kong"}
+--        MO{"Macao"}
+-         US{"USA"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/sq.txt b/source/data/region/sq.txt
+-index 286adec..38f4b89 100644
+---- a/source/data/region/sq.txt
+-+++ b/source/data/region/sq.txt
+-@@ -131,7 +131,7 @@ sq{
+-         GU{"Guam"}
+-         GW{"Guine-Bisau"}
+-         GY{"Guajanë"}
+--        HK{"RVAK i Hong Kongut"}
+-+        HK{"Hong Kong"}
+-         HM{"Ishulli Hërd dhe Ishujt Mekdonald"}
+-         HN{"Honduras"}
+-         HR{"Kroaci"}
+-@@ -185,7 +185,7 @@ sq{
+-         ML{"Mali"}
+-         MM{"Mianmar (Burma)"}
+-         MN{"Mongoli"}
+--        MO{"RVAK i Makaos"}
+-+        MO{"Makao"}
+-         MP{"Ishujt e Marianës Veriore"}
+-         MQ{"Martinikë"}
+-         MR{"Mauritani"}
+-@@ -220,7 +220,7 @@ sq{
+-         PM{"Shën Pier dhe Mikelon"}
+-         PN{"Ishujt Pitkern"}
+-         PR{"Porto-Riko"}
+--        PS{"Territoret Palestineze"}
+-+        PS{"Palestinë"}
+-         PT{"Portugali"}
+-         PW{"Palau"}
+-         PY{"Paraguai"}
+-@@ -295,9 +295,6 @@ sq{
+-     }
+-     Countries%short{
+-         GB{"MB"}
+--        HK{"Hong Kong"}
+--        MO{"Makao"}
+--        PS{"Palestinë"}
+-         UN{"kombet e bashkuara"}
+-         US{"SHBA"}
+-     }
+-diff --git a/source/data/region/sr.txt b/source/data/region/sr.txt
+-index d57934a..2b31d23 100644
+---- a/source/data/region/sr.txt
+-+++ b/source/data/region/sr.txt
+-@@ -131,7 +131,7 @@ sr{
+-         GU{"Гуам"}
+-         GW{"Гвинеја-Бисао"}
+-         GY{"Гвајана"}
+--        HK{"САР Хонгконг (Кина)"}
+-+        HK{"Хонгконг"}
+-         HM{"Острво Херд и Мекдоналдова острва"}
+-         HN{"Хондурас"}
+-         HR{"Хрватска"}
+-@@ -185,7 +185,7 @@ sr{
+-         ML{"Мали"}
+-         MM{"Мијанмар (Бурма)"}
+-         MN{"Монголија"}
+--        MO{"САР Макао (Кина)"}
+-+        MO{"Макао"}
+-         MP{"Северна Маријанска Острва"}
+-         MQ{"Мартиник"}
+-         MR{"Мауританија"}
+-@@ -220,7 +220,7 @@ sr{
+-         PM{"Сен Пјер и Микелон"}
+-         PN{"Питкерн"}
+-         PR{"Порторико"}
+--        PS{"Палестинске територије"}
+-+        PS{"Палестина"}
+-         PT{"Португалија"}
+-         PW{"Палау"}
+-         PY{"Парагвај"}
+-@@ -295,9 +295,6 @@ sr{
+-     }
+-     Countries%short{
+-         GB{"УК"}
+--        HK{"Хонгконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         UN{"УН"}
+-         US{"САД"}
+-     }
+-diff --git a/source/data/region/sr_Latn.txt b/source/data/region/sr_Latn.txt
+-index ea18fcf..83de120 100644
+---- a/source/data/region/sr_Latn.txt
+-+++ b/source/data/region/sr_Latn.txt
+-@@ -132,7 +132,7 @@ sr_Latn{
+-         GU{"Guam"}
+-         GW{"Gvineja-Bisao"}
+-         GY{"Gvajana"}
+--        HK{"SAR Hongkong (Kina)"}
+-+        HK{"Hongkong"}
+-         HM{"Ostrvo Herd i Mekdonaldova ostrva"}
+-         HN{"Honduras"}
+-         HR{"Hrvatska"}
+-@@ -186,7 +186,7 @@ sr_Latn{
+-         ML{"Mali"}
+-         MM{"Mijanmar (Burma)"}
+-         MN{"Mongolija"}
+--        MO{"SAR Makao (Kina)"}
+-+        MO{"Makao"}
+-         MP{"Severna Marijanska Ostrva"}
+-         MQ{"Martinik"}
+-         MR{"Mauritanija"}
+-@@ -221,7 +221,7 @@ sr_Latn{
+-         PM{"Sen Pjer i Mikelon"}
+-         PN{"Pitkern"}
+-         PR{"Portoriko"}
+--        PS{"Palestinske teritorije"}
+-+        PS{"Palestina"}
+-         PT{"Portugalija"}
+-         PW{"Palau"}
+-         PY{"Paragvaj"}
+-@@ -296,9 +296,6 @@ sr_Latn{
+-     }
+-     Countries%short{
+-         GB{"UK"}
+--        HK{"Hongkong"}
+--        MO{"Makao"}
+--        PS{"Palestina"}
+-         UN{"UN"}
+-         US{"SAD"}
+-     }
+-diff --git a/source/data/region/sv.txt b/source/data/region/sv.txt
+-index 48e4b60..58e4434 100644
+---- a/source/data/region/sv.txt
+-+++ b/source/data/region/sv.txt
+-@@ -131,7 +131,7 @@ sv{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hongkong, S.A.R. Kina"}
+-+        HK{"Hongkong"}
+-         HM{"Heardön och McDonaldöarna"}
+-         HN{"Honduras"}
+-         HR{"Kroatien"}
+-@@ -185,7 +185,7 @@ sv{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongoliet"}
+--        MO{"Macao, S.A.R. Kina"}
+-+        MO{"Macao"}
+-         MP{"Nordmarianerna"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanien"}
+-@@ -220,7 +220,7 @@ sv{
+-         PM{"S:t Pierre och Miquelon"}
+-         PN{"Pitcairnöarna"}
+-         PR{"Puerto Rico"}
+--        PS{"Palestinska territorierna"}
+-+        PS{"Palestina"}
+-         PT{"Portugal"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ sv{
+-     }
+-     Countries%short{
+-         GB{"Storbritannien"}
+--        HK{"Hongkong"}
+--        MO{"Macao"}
+--        PS{"Palestina"}
+-         UN{"FN"}
+-         US{"USA"}
+-     }
+-diff --git a/source/data/region/sw.txt b/source/data/region/sw.txt
+-index 62adcc9..08330e7 100644
+---- a/source/data/region/sw.txt
+-+++ b/source/data/region/sw.txt
+-@@ -131,7 +131,7 @@ sw{
+-         GU{"Guam"}
+-         GW{"Ginebisau"}
+-         GY{"Guyana"}
+--        HK{"Hong Kong SAR China"}
+-+        HK{"Hong Kong"}
+-         HM{"Kisiwa cha Heard na Visiwa vya McDonald"}
+-         HN{"Hondurasi"}
+-         HR{"Korasia"}
+-@@ -185,7 +185,7 @@ sw{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Mongolia"}
+--        MO{"Macau SAR China"}
+-+        MO{"Macau"}
+-         MP{"Visiwa vya Mariana vya Kaskazini"}
+-         MQ{"Martiniki"}
+-         MR{"Moritania"}
+-@@ -220,7 +220,7 @@ sw{
+-         PM{"Santapierre na Miquelon"}
+-         PN{"Visiwa vya Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Maeneo ya Palestina"}
+-+        PS{"Palestina"}
+-         PT{"Ureno"}
+-         PW{"Palau"}
+-         PY{"Paragwai"}
+-@@ -295,9 +295,6 @@ sw{
+-     }
+-     Countries%short{
+-         GB{"Uingereza"}
+--        HK{"Hong Kong"}
+--        MO{"Macau"}
+--        PS{"Palestina"}
+-         UN{"umoja wa mataifa"}
+-         US{"US"}
+-     }
+-diff --git a/source/data/region/ta.txt b/source/data/region/ta.txt
+-index 329e0c0..cddce79 100644
+---- a/source/data/region/ta.txt
+-+++ b/source/data/region/ta.txt
+-@@ -131,7 +131,7 @@ ta{
+-         GU{"குவாம்"}
+-         GW{"கினியா-பிஸ்ஸாவ்"}
+-         GY{"கயானா"}
+--        HK{"ஹாங்காங் எஸ்ஏஆர் சீனா"}
+-+        HK{"ஹாங்காங்"}
+-         HM{"ஹேர்ட் மற்றும் மெக்டொனால்டு தீவுகள்"}
+-         HN{"ஹோண்டூராஸ்"}
+-         HR{"குரேஷியா"}
+-@@ -185,7 +185,7 @@ ta{
+-         ML{"மாலி"}
+-         MM{"மியான்மார் (பர்மா)"}
+-         MN{"மங்கோலியா"}
+--        MO{"மகாவ் எஸ்ஏஆர் சீனா"}
+-+        MO{"மகாவ்"}
+-         MP{"வடக்கு மரியானா தீவுகள்"}
+-         MQ{"மார்டினிக்"}
+-         MR{"மௌரிடானியா"}
+-@@ -220,7 +220,7 @@ ta{
+-         PM{"செயின்ட் பியர் & மிக்வேலான்"}
+-         PN{"பிட்கெய்ர்ன் தீவுகள்"}
+-         PR{"பியூர்டோ ரிகோ"}
+--        PS{"பாலஸ்தீனிய பிரதேசங்கள்"}
+-+        PS{"பாலஸ்தீனம்"}
+-         PT{"போர்ச்சுக்கல்"}
+-         PW{"பாலோ"}
+-         PY{"பராகுவே"}
+-@@ -295,9 +295,6 @@ ta{
+-     }
+-     Countries%short{
+-         GB{"யூகே"}
+--        HK{"ஹாங்காங்"}
+--        MO{"மகாவ்"}
+--        PS{"பாலஸ்தீனம்"}
+-         UN{"ஐநா"}
+-         US{"யூஎஸ்"}
+-     }
+-diff --git a/source/data/region/te.txt b/source/data/region/te.txt
+-index e154bf6..d5b3718 100644
+---- a/source/data/region/te.txt
+-+++ b/source/data/region/te.txt
+-@@ -131,7 +131,7 @@ te{
+-         GU{"గ్వామ్"}
+-         GW{"గినియా-బిస్సావ్"}
+-         GY{"గయానా"}
+--        HK{"హాంకాంగ్ ఎస్ఏఆర్ చైనా"}
+-+        HK{"హాంకాంగ్"}
+-         HM{"హెర్డ్ & మెక్ డొనాల్డ్ దీవులు"}
+-         HN{"హోండురాస్"}
+-         HR{"క్రోయేషియా"}
+-@@ -185,7 +185,7 @@ te{
+-         ML{"మాలి"}
+-         MM{"మయన్మార్ (బర్మా)"}
+-         MN{"మంగోలియా"}
+--        MO{"మకావు ఎస్ఏఆర్ చైనా"}
+-+        MO{"మకావు"}
+-         MP{"ఉత్తర మరియానా దీవులు"}
+-         MQ{"మార్టినిక్"}
+-         MR{"మౌరిటేనియా"}
+-@@ -220,7 +220,7 @@ te{
+-         PM{"సెంట్ పియెర్ మరియు మికెలాన్"}
+-         PN{"పిట్‌కెయిర్న్ దీవులు"}
+-         PR{"ఫ్యూర్టో రికో"}
+--        PS{"పాలస్తీనియన్ ప్రాంతాలు"}
+-+        PS{"పాలస్తీనా"}
+-         PT{"పోర్చుగల్"}
+-         PW{"పలావు"}
+-         PY{"పరాగ్వే"}
+-@@ -295,9 +295,6 @@ te{
+-     }
+-     Countries%short{
+-         GB{"యు.కె."}
+--        HK{"హాంకాంగ్"}
+--        MO{"మకావు"}
+--        PS{"పాలస్తీనా"}
+-         UN{"యుఎన్"}
+-         US{"యు.ఎస్."}
+-     }
+-diff --git a/source/data/region/th.txt b/source/data/region/th.txt
+-index 647b2d0..b3e52bf 100644
+---- a/source/data/region/th.txt
+-+++ b/source/data/region/th.txt
+-@@ -131,7 +131,7 @@ th{
+-         GU{"กวม"}
+-         GW{"กินี-บิสเซา"}
+-         GY{"กายอานา"}
+--        HK{"เขตปกครองพิเศษฮ่องกงแห่งสาธารณรัฐประชาชนจีน"}
+-+        HK{"ฮ่องกง"}
+-         HM{"เกาะเฮิร์ดและหมู่เกาะแมกดอนัลด์"}
+-         HN{"ฮอนดูรัส"}
+-         HR{"โครเอเชีย"}
+-@@ -185,7 +185,7 @@ th{
+-         ML{"มาลี"}
+-         MM{"เมียนมาร์ (พม่า)"}
+-         MN{"มองโกเลีย"}
+--        MO{"เขตปกครองพิเศษมาเก๊าแห่งสาธารณรัฐประชาชนจีน"}
+-+        MO{"มาเก๊า"}
+-         MP{"หมู่เกาะนอร์เทิร์นมาเรียนา"}
+-         MQ{"มาร์ตินีก"}
+-         MR{"มอริเตเนีย"}
+-@@ -220,7 +220,7 @@ th{
+-         PM{"แซงปีแยร์และมีเกอลง"}
+-         PN{"หมู่เกาะพิตแคร์น"}
+-         PR{"เปอร์โตริโก"}
+--        PS{"ดินแดนปาเลสไตน์"}
+-+        PS{"ปาเลสไตน์"}
+-         PT{"โปรตุเกส"}
+-         PW{"ปาเลา"}
+-         PY{"ปารากวัย"}
+-@@ -295,9 +295,6 @@ th{
+-     }
+-     Countries%short{
+-         GB{"อังกฤษ"}
+--        HK{"ฮ่องกง"}
+--        MO{"มาเก๊า"}
+--        PS{"ปาเลสไตน์"}
+-         UN{"สหประชาชาติ"}
+-         US{"สหรัฐฯ"}
+-     }
+-diff --git a/source/data/region/to.txt b/source/data/region/to.txt
+-index 892a837..3f4042c 100644
+---- a/source/data/region/to.txt
+-+++ b/source/data/region/to.txt
+-@@ -131,7 +131,7 @@ to{
+-         GU{"Kuamu"}
+-         GW{"Kini-Pisau"}
+-         GY{"Kuiana"}
+--        HK{"Hongi Kongi SAR Siaina"}
+-+        HK{"Hongi Kongi"}
+-         HM{"ʻOtumotu Heati mo Makitonali"}
+-         HN{"Honitulasi"}
+-         HR{"Kuloisia"}
+-@@ -185,7 +185,7 @@ to{
+-         ML{"Māli"}
+-         MM{"Pema"}
+-         MN{"Mongokōlia"}
+--        MO{"Makau SAR Siaina"}
+-+        MO{"Makau"}
+-         MP{"ʻOtumotu Maliana tokelau"}
+-         MQ{"Māteniki"}
+-         MR{"Maulitenia"}
+-@@ -220,7 +220,7 @@ to{
+-         PM{"Sā Piea mo Mikeloni"}
+-         PN{"ʻOtumotu Pitikeni"}
+-         PR{"Puēto Liko"}
+--        PS{"Potu Palesitaine"}
+-+        PS{"Palesitaine"}
+-         PT{"Potukali"}
+-         PW{"Palau"}
+-         PY{"Palakuai"}
+-@@ -294,9 +294,6 @@ to{
+-     }
+-     Countries%short{
+-         GB{"Pilitānia"}
+--        HK{"Hongi Kongi"}
+--        MO{"Makau"}
+--        PS{"Palesitaine"}
+-         US{"ʻAmelika"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/tr.txt b/source/data/region/tr.txt
+-index 910bd96..822189f 100644
+---- a/source/data/region/tr.txt
+-+++ b/source/data/region/tr.txt
+-@@ -131,7 +131,7 @@ tr{
+-         GU{"Guam"}
+-         GW{"Gine-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Çin Hong Kong ÖİB"}
+-+        HK{"Hong Kong"}
+-         HM{"Heard Adası ve McDonald Adaları"}
+-         HN{"Honduras"}
+-         HR{"Hırvatistan"}
+-@@ -185,7 +185,7 @@ tr{
+-         ML{"Mali"}
+-         MM{"Myanmar (Burma)"}
+-         MN{"Moğolistan"}
+--        MO{"Çin Makao ÖİB"}
+-+        MO{"Makao"}
+-         MP{"Kuzey Mariana Adaları"}
+-         MQ{"Martinik"}
+-         MR{"Moritanya"}
+-@@ -220,7 +220,7 @@ tr{
+-         PM{"Saint Pierre ve Miquelon"}
+-         PN{"Pitcairn Adaları"}
+-         PR{"Porto Riko"}
+--        PS{"Filistin Bölgeleri"}
+-+        PS{"Filistin"}
+-         PT{"Portekiz"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ tr{
+-     }
+-     Countries%short{
+-         GB{"BK"}
+--        HK{"Hong Kong"}
+--        MO{"Makao"}
+--        PS{"Filistin"}
+-         UN{"BM"}
+-         US{"ABD"}
+-     }
+-diff --git a/source/data/region/ug.txt b/source/data/region/ug.txt
+-index 0611c0c..25c753d 100644
+---- a/source/data/region/ug.txt
+-+++ b/source/data/region/ug.txt
+-@@ -131,7 +131,7 @@ ug{
+-         GU{"گۇئام"}
+-         GW{"گىۋىنىيە بىسسائۇ"}
+-         GY{"گىۋىيانا"}
+--        HK{"شياڭگاڭ ئالاھىدە مەمۇرىي رايونى (جۇڭگو)"}
+-+        HK{"شياڭگاڭ"}
+-         HM{"ھېرد ئارىلى ۋە ماكدونالد ئاراللىرى"}
+-         HN{"ھوندۇراس"}
+-         HR{"كىرودىيە"}
+-@@ -185,7 +185,7 @@ ug{
+-         ML{"مالى"}
+-         MM{"بىرما"}
+-         MN{"موڭغۇلىيە"}
+--        MO{"ئاۋمېن ئالاھىدە مەمۇرىي رايونى"}
+-+        MO{"ئاۋمېن"}
+-         MP{"شىمالىي مارىيانا ئاراللىرى"}
+-         MQ{"مارتىنىكا"}
+-         MR{"ماۋرىتانىيە"}
+-@@ -220,7 +220,7 @@ ug{
+-         PM{"ساينت پىيېر ۋە مىكېلون ئاراللىرى"}
+-         PN{"پىتكايرن ئاراللىرى"}
+-         PR{"پۇئېرتو رىكو"}
+--        PS{"پەلەستىن زېمىنى"}
+-+        PS{"پەلەستىن"}
+-         PT{"پورتۇگالىيە"}
+-         PW{"پالائۇ"}
+-         PY{"پاراگۋاي"}
+-@@ -294,9 +294,6 @@ ug{
+-     }
+-     Countries%short{
+-         GB{"ئەنگلىيە"}
+--        HK{"شياڭگاڭ"}
+--        MO{"ئاۋمېن"}
+--        PS{"پەلەستىن"}
+-         US{"ئا ق ش"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/uk.txt b/source/data/region/uk.txt
+-index 126fa0e..c8f4b3a 100644
+---- a/source/data/region/uk.txt
+-+++ b/source/data/region/uk.txt
+-@@ -109,7 +109,7 @@ uk{
+-         FI{"Фінляндія"}
+-         FJ{"Фіджі"}
+-         FK{"Фолклендські острови"}
+--        FM{"Мікронезія"}
+-+        FM{"Мікронезія Федеративні Штати"}
+-         FO{"Фарерські Острови"}
+-         FR{"Франція"}
+-         GA{"Габон"}
+-@@ -131,7 +131,7 @@ uk{
+-         GU{"Гуам"}
+-         GW{"Гвінея-Бісау"}
+-         GY{"Гаяна"}
+--        HK{"Гонконг, О.А.Р. Китаю"}
+-+        HK{"Гонконг"}
+-         HM{"Острови Херд і Мак-Дональд"}
+-         HN{"Гондурас"}
+-         HR{"Хорватія"}
+-@@ -185,7 +185,7 @@ uk{
+-         ML{"Малі"}
+-         MM{"Мʼянма (Бірма)"}
+-         MN{"Монголія"}
+--        MO{"Макао, О.А.Р Китаю"}
+-+        MO{"Макао"}
+-         MP{"Північні Маріанські Острови"}
+-         MQ{"Мартиніка"}
+-         MR{"Мавританія"}
+-@@ -220,7 +220,7 @@ uk{
+-         PM{"Сен-Пʼєр і Мікелон"}
+-         PN{"Острови Піткерн"}
+-         PR{"Пуерто-Рико"}
+--        PS{"Палестинські території"}
+-+        PS{"Палестина"}
+-         PT{"Португалія"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ uk{
+-     }
+-     Countries%short{
+-         GB{"Велика Британія"}
+--        HK{"Гонконг"}
+--        MO{"Макао"}
+--        PS{"Палестина"}
+-         UN{"ООН"}
+-         US{"США"}
+-     }
+-diff --git a/source/data/region/ur.txt b/source/data/region/ur.txt
+-index 3478cde..06b05f3 100644
+---- a/source/data/region/ur.txt
+-+++ b/source/data/region/ur.txt
+-@@ -131,7 +131,7 @@ ur{
+-         GU{"گوام"}
+-         GW{"گنی بساؤ"}
+-         GY{"گیانا"}
+--        HK{"ہانگ کانگ SAR چین"}
+-+        HK{"ہانگ کانگ"}
+-         HM{"ہیرڈ جزیرہ و میکڈولینڈ جزائر"}
+-         HN{"ہونڈاروس"}
+-         HR{"کروشیا"}
+-@@ -185,7 +185,7 @@ ur{
+-         ML{"مالی"}
+-         MM{"میانمار (برما)"}
+-         MN{"منگولیا"}
+--        MO{"مکاؤ SAR چین"}
+-+        MO{"مکاؤ"}
+-         MP{"شمالی ماریانا آئلینڈز"}
+-         MQ{"مارٹینک"}
+-         MR{"موریطانیہ"}
+-@@ -220,7 +220,7 @@ ur{
+-         PM{"سینٹ پیئر اور میکلیئون"}
+-         PN{"پٹکائرن جزائر"}
+-         PR{"پیورٹو ریکو"}
+--        PS{"فلسطینی خطے"}
+-+        PS{"فلسطین"}
+-         PT{"پرتگال"}
+-         PW{"پلاؤ"}
+-         PY{"پیراگوئے"}
+-@@ -295,9 +295,6 @@ ur{
+-     }
+-     Countries%short{
+-         GB{"یو کے"}
+--        HK{"ہانگ کانگ"}
+--        MO{"مکاؤ"}
+--        PS{"فلسطین"}
+-         UN{"اقوام متحدہ"}
+-         US{"امریکا"}
+-     }
+-diff --git a/source/data/region/uz.txt b/source/data/region/uz.txt
+-index fdb3580..cc57696 100644
+---- a/source/data/region/uz.txt
+-+++ b/source/data/region/uz.txt
+-@@ -131,7 +131,7 @@ uz{
+-         GU{"Guam"}
+-         GW{"Gvineya-Bisau"}
+-         GY{"Gayana"}
+--        HK{"Gonkong (Xitoy MMH)"}
+-+        HK{"Gonkong"}
+-         HM{"Xerd va Makdonald orollari"}
+-         HN{"Gonduras"}
+-         HR{"Xorvatiya"}
+-@@ -185,7 +185,7 @@ uz{
+-         ML{"Mali"}
+-         MM{"Myanma (Birma)"}
+-         MN{"Mongoliya"}
+--        MO{"Makao (Xitoy MMH)"}
+-+        MO{"Makao"}
+-         MP{"Shimoliy Mariana orollari"}
+-         MQ{"Martinika"}
+-         MR{"Mavritaniya"}
+-@@ -220,7 +220,7 @@ uz{
+-         PM{"Sen-Pyer va Mikelon"}
+-         PN{"Pitkern orollari"}
+-         PR{"Puerto-Riko"}
+--        PS{"Falastin hududi"}
+-+        PS{"Falastin"}
+-         PT{"Portugaliya"}
+-         PW{"Palau"}
+-         PY{"Paragvay"}
+-@@ -295,9 +295,6 @@ uz{
+-     }
+-     Countries%short{
+-         GB{"Britaniya"}
+--        HK{"Gonkong"}
+--        MO{"Makao"}
+--        PS{"Falastin"}
+-         UN{"BMT"}
+-         US{"AQSH"}
+-     }
+-diff --git a/source/data/region/uz_Cyrl.txt b/source/data/region/uz_Cyrl.txt
+-index 010dd64..6c9addc 100644
+---- a/source/data/region/uz_Cyrl.txt
+-+++ b/source/data/region/uz_Cyrl.txt
+-@@ -132,7 +132,7 @@ uz_Cyrl{
+-         GU{"Гуам"}
+-         GW{"Гвинея-Бисау"}
+-         GY{"Гаяна"}
+--        HK{"Гонконг (Хитой ММҲ)"}
+-+        HK{"Гонконг"}
+-         HM{"Херд ва Макдоналд ороллари"}
+-         HN{"Гондурас"}
+-         HR{"Хорватия"}
+-@@ -186,7 +186,7 @@ uz_Cyrl{
+-         ML{"Мали"}
+-         MM{"Мьянма (Бирма)"}
+-         MN{"Монголия"}
+--        MO{"Макао (Хитой ММҲ)"}
+-+        MO{"Макао"}
+-         MP{"Шимолий Марианна ороллари"}
+-         MQ{"Мартиника"}
+-         MR{"Мавритания"}
+-@@ -221,7 +221,7 @@ uz_Cyrl{
+-         PM{"Сент-Пьер ва Микелон"}
+-         PN{"Питкэрн ороллари"}
+-         PR{"Пуэрто-Рико"}
+--        PS{"Фаластин ҳудуди"}
+-+        PS{"Фаластин"}
+-         PT{"Португалия"}
+-         PW{"Палау"}
+-         PY{"Парагвай"}
+-@@ -295,9 +295,6 @@ uz_Cyrl{
+-     }
+-     Countries%short{
+-         GB{"Буюк Британия"}
+--        HK{"Гонконг"}
+--        MO{"Макао"}
+--        PS{"Фаластин"}
+-         US{"АҚШ"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/vi.txt b/source/data/region/vi.txt
+-index e530406..5a932f8 100644
+---- a/source/data/region/vi.txt
+-+++ b/source/data/region/vi.txt
+-@@ -131,7 +131,7 @@ vi{
+-         GU{"Guam"}
+-         GW{"Guinea-Bissau"}
+-         GY{"Guyana"}
+--        HK{"Hồng Kông, Trung Quốc"}
+-+        HK{"Hồng Kông"}
+-         HM{"Quần đảo Heard và McDonald"}
+-         HN{"Honduras"}
+-         HR{"Croatia"}
+-@@ -185,7 +185,7 @@ vi{
+-         ML{"Mali"}
+-         MM{"Myanmar (Miến Điện)"}
+-         MN{"Mông Cổ"}
+--        MO{"Macao, Trung Quốc"}
+-+        MO{"Macao"}
+-         MP{"Quần đảo Bắc Mariana"}
+-         MQ{"Martinique"}
+-         MR{"Mauritania"}
+-@@ -220,7 +220,7 @@ vi{
+-         PM{"Saint Pierre và Miquelon"}
+-         PN{"Quần đảo Pitcairn"}
+-         PR{"Puerto Rico"}
+--        PS{"Lãnh thổ Palestine"}
+-+        PS{"Palestine"}
+-         PT{"Bồ Đào Nha"}
+-         PW{"Palau"}
+-         PY{"Paraguay"}
+-@@ -295,9 +295,6 @@ vi{
+-     }
+-     Countries%short{
+-         GB{"Vương quốc Anh"}
+--        HK{"Hồng Kông"}
+--        MO{"Macao"}
+--        PS{"Palestine"}
+-         UN{"Liên hiệp quốc"}
+-         US{"Hoa Kỳ"}
+-     }
+-diff --git a/source/data/region/wae.txt b/source/data/region/wae.txt
+-index 74e057d..40a13bf 100644
+---- a/source/data/region/wae.txt
+-+++ b/source/data/region/wae.txt
+-@@ -129,7 +129,7 @@ wae{
+-         GU{"Guam"}
+-         GW{"Ginea Bissau"}
+-         GY{"Guyana"}
+--        HK{"Sonderverwaltigszona Hongkong"}
+-+        HK{"Hongkong"}
+-         HM{"Heard- und McDonald-Inslä"}
+-         HN{"Honduras"}
+-         HR{"Kroatie"}
+-@@ -183,7 +183,7 @@ wae{
+-         ML{"Mali"}
+-         MM{"Burma"}
+-         MN{"Mongolei"}
+--        MO{"Sonderverwaltigszona Makau"}
+-+        MO{"Makau"}
+-         MP{"Nördliči Mariane"}
+-         MQ{"Martinique"}
+-         MR{"Mauretanie"}
+-@@ -287,10 +287,6 @@ wae{
+-         ZW{"Simbabwe"}
+-         ZZ{"Unbekannti Regio"}
+-     }
+--    Countries%short{
+--        HK{"Hongkong"}
+--        MO{"Makau"}
+--    }
+-     Countries%variant{
+-         CD{"Kongo (Demokratiši Rebublik)"}
+-         CG{"Kongo (Rebublik)"}
+-diff --git a/source/data/region/yue.txt b/source/data/region/yue.txt
+-index a82634b..fb97921 100644
+---- a/source/data/region/yue.txt
+-+++ b/source/data/region/yue.txt
+-@@ -131,7 +131,7 @@ yue{
+-         GU{"關島"}
+-         GW{"幾內亞比索"}
+-         GY{"蓋亞那"}
+--        HK{"中華人民共和國香港特別行政區"}
+-+        HK{"香港"}
+-         HM{"赫德島同麥克唐納群島"}
+-         HN{"宏都拉斯"}
+-         HR{"克羅埃西亞"}
+-@@ -185,7 +185,7 @@ yue{
+-         ML{"馬利"}
+-         MM{"緬甸"}
+-         MN{"蒙古"}
+--        MO{"中華人民共和國澳門特別行政區"}
+-+        MO{"澳門"}
+-         MP{"北馬里亞納群島"}
+-         MQ{"馬丁尼克島"}
+-         MR{"茅利塔尼亞"}
+-@@ -220,7 +220,7 @@ yue{
+-         PM{"聖皮埃爾同密克隆群島"}
+-         PN{"皮特肯群島"}
+-         PR{"波多黎各"}
+--        PS{"巴勒斯坦自治區"}
+-+        PS{"巴勒斯坦"}
+-         PT{"葡萄牙"}
+-         PW{"帛琉"}
+-         PY{"巴拉圭"}
+-@@ -294,9 +294,6 @@ yue{
+-     }
+-     Countries%short{
+-         GB{"英國"}
+--        HK{"香港"}
+--        MO{"澳門"}
+--        PS{"巴勒斯坦"}
+-         US{"美國"}
+-     }
+-     Countries%variant{
+-diff --git a/source/data/region/zh.txt b/source/data/region/zh.txt
+-index 96c2558..8ae57e3 100644
+---- a/source/data/region/zh.txt
+-+++ b/source/data/region/zh.txt
+-@@ -131,7 +131,7 @@ zh{
+-         GU{"关岛"}
+-         GW{"几内亚比绍"}
+-         GY{"圭亚那"}
+--        HK{"中国香港特别行政区"}
+-+        HK{"香港"}
+-         HM{"赫德岛和麦克唐纳群岛"}
+-         HN{"洪都拉斯"}
+-         HR{"克罗地亚"}
+-@@ -185,7 +185,7 @@ zh{
+-         ML{"马里"}
+-         MM{"缅甸"}
+-         MN{"蒙古"}
+--        MO{"中国澳门特别行政区"}
+-+        MO{"澳门"}
+-         MP{"北马里亚纳群岛"}
+-         MQ{"马提尼克"}
+-         MR{"毛里塔尼亚"}
+-@@ -220,7 +220,7 @@ zh{
+-         PM{"圣皮埃尔和密克隆群岛"}
+-         PN{"皮特凯恩群岛"}
+-         PR{"波多黎各"}
+--        PS{"巴勒斯坦领土"}
+-+        PS{"巴勒斯坦"}
+-         PT{"葡萄牙"}
+-         PW{"帕劳"}
+-         PY{"巴拉圭"}
+-@@ -295,9 +295,6 @@ zh{
+-     }
+-     Countries%short{
+-         GB{"英国"}
+--        HK{"香港"}
+--        MO{"澳门"}
+--        PS{"巴勒斯坦"}
+-         UN{"联合国"}
+-         US{"美国"}
+-     }
+-diff --git a/source/data/region/zh_Hant.txt b/source/data/region/zh_Hant.txt
+-index 2084fa2..d6ec460 100644
+---- a/source/data/region/zh_Hant.txt
+-+++ b/source/data/region/zh_Hant.txt
+-@@ -132,7 +132,7 @@ zh_Hant{
+-         GU{"關島"}
+-         GW{"幾內亞比索"}
+-         GY{"蓋亞那"}
+--        HK{"中國香港特別行政區"}
+-+        HK{"香港"}
+-         HM{"赫德島和麥克唐納群島"}
+-         HN{"宏都拉斯"}
+-         HR{"克羅埃西亞"}
+-@@ -186,7 +186,7 @@ zh_Hant{
+-         ML{"馬利"}
+-         MM{"緬甸"}
+-         MN{"蒙古"}
+--        MO{"中國澳門特別行政區"}
+-+        MO{"澳門"}
+-         MP{"北馬里亞納群島"}
+-         MQ{"馬丁尼克島"}
+-         MR{"茅利塔尼亞"}
+-@@ -221,7 +221,7 @@ zh_Hant{
+-         PM{"聖皮埃爾和密克隆群島"}
+-         PN{"皮特肯群島"}
+-         PR{"波多黎各"}
+--        PS{"巴勒斯坦自治區"}
+-+        PS{"巴勒斯坦"}
+-         PT{"葡萄牙"}
+-         PW{"帛琉"}
+-         PY{"巴拉圭"}
+-@@ -296,9 +296,6 @@ zh_Hant{
+-     }
+-     Countries%short{
+-         GB{"英國"}
+--        HK{"香港"}
+--        MO{"澳門"}
+--        PS{"巴勒斯坦"}
+-         UN{"聯合國"}
+-         US{"美國"}
+-     }
+-diff --git a/source/data/region/zu.txt b/source/data/region/zu.txt
+-index fa87b1f..150f0db 100644
+---- a/source/data/region/zu.txt
+-+++ b/source/data/region/zu.txt
+-@@ -131,7 +131,7 @@ zu{
+-         GU{"i-Guam"}
+-         GW{"i-Guinea-Bissau"}
+-         GY{"i-Guyana"}
+--        HK{"i-Hong Kong SAR China"}
+-+        HK{"i-Hong Kong"}
+-         HM{"i-Heard Island ne-McDonald Islands"}
+-         HN{"i-Honduras"}
+-         HR{"i-Croatia"}
+-@@ -185,7 +185,7 @@ zu{
+-         ML{"iMali"}
+-         MM{"i-Myanmar (Burma)"}
+-         MN{"i-Mongolia"}
+--        MO{"i-Macau SAR China"}
+-+        MO{"i-Macau"}
+-         MP{"i-Northern Mariana Islands"}
+-         MQ{"i-Martinique"}
+-         MR{"i-Mauritania"}
+-@@ -220,7 +220,7 @@ zu{
+-         PM{"i-Saint Pierre kanye ne-Miquelon"}
+-         PN{"i-Pitcairn Islands"}
+-         PR{"i-Puerto Rico"}
+--        PS{"i-Palestinian Territories"}
+-+        PS{"i-Palestine"}
+-         PT{"i-Portugal"}
+-         PW{"i-Palau"}
+-         PY{"i-Paraguay"}
+-@@ -295,9 +295,6 @@ zu{
+-     }
+-     Countries%short{
+-         GB{"i-U.K."}
+--        HK{"i-Hong Kong"}
+--        MO{"i-Macau"}
+--        PS{"i-Palestine"}
+-         UN{"ifulegi"}
+-         US{"i-U.S"}
+-     }
+-diff --git a/source/data/zone/ko.txt b/source/data/zone/ko.txt
+-index 0da4bf2..49e4f14 100644
+---- a/source/data/zone/ko.txt
+-+++ b/source/data/zone/ko.txt
+-@@ -1626,9 +1626,9 @@ ko{
+-             ls{"서부 카자흐스탄 시간"}
+-         }
+-         "meta:Korea"{
+--            ld{"대한민국 하계 표준시"}
+--            lg{"대한민국 시간"}
+--            ls{"대한민국 표준시"}
+-+            ld{"한국 하계 표준시"}
+-+            lg{"한국 시간"}
+-+            ls{"한국 표준시"}
+-         }
+-         "meta:Kosrae"{
+-             ls{"코스라에섬 시간"}
+-diff --git a/source/data/zone/zh.txt b/source/data/zone/zh.txt
+-index 0181098..87eeaf3 100644
+---- a/source/data/zone/zh.txt
+-+++ b/source/data/zone/zh.txt
+-@@ -833,6 +833,12 @@ zh{
+-         }
+-         "Asia:Taipei"{
+-             ec{"台北"}
+-+            ld{"台北夏令时间"}
+-+            lg{"台北时间"}
+-+            ls{"台北标准时间"}
+-+            sd{"台北"}
+-+            sg{"台北"}
+-+            ss{"台北"}
+-         }
+-         "Asia:Tashkent"{
+-             ec{"塔什干"}
+-diff --git a/source/data/zone/zh_Hant.txt b/source/data/zone/zh_Hant.txt
+-index 5e6dade..06f45b1 100644
+---- a/source/data/zone/zh_Hant.txt
+-+++ b/source/data/zone/zh_Hant.txt
+-@@ -834,6 +834,12 @@ zh_Hant{
+-         }
+-         "Asia:Taipei"{
+-             ec{"台北"}
+-+            ld{"台北夏令時間"}
+-+            lg{"台北時間"}
+-+            ls{"台北標準時間"}
+-+            sd{"台北"}
+-+            sg{"台北"}
+-+            ss{"台北"}
+-         }
+-         "Asia:Tashkent"{
+-             ec{"塔什干"}
 diff --git a/source/data/curr/ru.txt b/source/data/curr/ru.txt
-index ca6ba83..ab68900 100644
+index eefe470a..327296e9 100644
 --- a/source/data/curr/ru.txt
 +++ b/source/data/curr/ru.txt
 @@ -911,7 +911,7 @@ ru{
@@ -20,7 +4454,7 @@
      CurrencyPlurals{
          ADP{
 diff --git a/source/data/curr/uk.txt b/source/data/curr/uk.txt
-index 68485f1..8d8d9d0 100644
+index 81864727..36e19874 100644
 --- a/source/data/curr/uk.txt
 +++ b/source/data/curr/uk.txt
 @@ -911,7 +911,7 @@ uk{
@@ -41,10 +4475,10 @@
      CurrencyPlurals{
          ADP{
 diff --git a/source/data/locales/hi.txt b/source/data/locales/hi.txt
-index da547a0..4e90c97 100644
+index fd40cd88..d48265f4 100644
 --- a/source/data/locales/hi.txt
 +++ b/source/data/locales/hi.txt
-@@ -395,16 +395,16 @@ hi{
+@@ -408,16 +408,16 @@ hi{
          }
          gregorian{
              AmPmMarkers{
@@ -65,7 +4499,7 @@
              }
              DateTimePatterns{
                  "h:mm:ss a zzzz",
-@@ -567,14 +567,14 @@ hi{
+@@ -580,14 +580,14 @@ hi{
                      narrow{
                          afternoon1{"अपराह्न"}
                          evening1{"शाम"}
@@ -83,10 +4517,10 @@
                          night1{"रात"}
                      }
 diff --git a/source/data/locales/ta.txt b/source/data/locales/ta.txt
-index 8184c2c..7287423 100644
+index b00f10c8..c3807034 100644
 --- a/source/data/locales/ta.txt
 +++ b/source/data/locales/ta.txt
-@@ -488,8 +488,8 @@ ta{
+@@ -497,8 +497,8 @@ ta{
                  "பிற்பகல்",
              }
              AmPmMarkersAbbr{
@@ -98,10 +4532,10 @@
              AmPmMarkersNarrow{
                  "மு.ப",
 diff --git a/source/data/misc/likelySubtags.txt b/source/data/misc/likelySubtags.txt
-index 396ab53..e60d048 100644
+index cd138c8d..eba898d0 100644
 --- a/source/data/misc/likelySubtags.txt
 +++ b/source/data/misc/likelySubtags.txt
-@@ -519,7 +519,6 @@ likelySubtags:table(nofallback){
+@@ -524,7 +524,6 @@ likelySubtags:table(nofallback){
      jen{"jen_Latn_ZZ"}
      jgk{"jgk_Latn_ZZ"}
      jgo{"jgo_Latn_CM"}
@@ -109,7 +4543,7 @@
      jib{"jib_Latn_ZZ"}
      jmc{"jmc_Latn_TZ"}
      jml{"jml_Deva_NP"}
-@@ -632,6 +631,7 @@ likelySubtags:table(nofallback){
+@@ -638,6 +637,7 @@ likelySubtags:table(nofallback){
      kto{"kto_Latn_ZZ"}
      ku{"ku_Latn_TR"}
      ku_Arab{"ku_Arab_IQ"}
@@ -117,7 +4551,7 @@
      ku_LB{"ku_Arab_LB"}
      kub{"kub_Latn_ZZ"}
      kud{"kud_Latn_ZZ"}
-@@ -1047,6 +1047,7 @@ likelySubtags:table(nofallback){
+@@ -1054,6 +1054,7 @@ likelySubtags:table(nofallback){
      sgs{"sgs_Latn_LT"}
      sgw{"sgw_Ethi_ZZ"}
      sgz{"sgz_Latn_ZZ"}
@@ -125,7 +4559,7 @@
      shi{"shi_Tfng_MA"}
      shk{"shk_Latn_ZZ"}
      shn{"shn_Mymr_MM"}
-@@ -1527,7 +1528,7 @@ likelySubtags:table(nofallback){
+@@ -1533,7 +1534,7 @@ likelySubtags:table(nofallback){
      und_NE{"ha_Latn_NE"}
      und_NI{"es_Latn_NI"}
      und_NL{"nl_Latn_NL"}
@@ -134,7 +4568,7 @@
      und_NP{"ne_Deva_NP"}
      und_Narb{"xna_Narb_SA"}
      und_Nbat{"arc_Nbat_JO"}
-@@ -1576,7 +1577,7 @@ likelySubtags:table(nofallback){
+@@ -1582,7 +1583,7 @@ likelySubtags:table(nofallback){
      und_SD{"ar_Arab_SD"}
      und_SE{"sv_Latn_SE"}
      und_SI{"sl_Latn_SI"}
@@ -144,10 +4578,10 @@
      und_SM{"it_Latn_SM"}
      und_SN{"fr_Latn_SN"}
 diff --git a/source/data/misc/metadata.txt b/source/data/misc/metadata.txt
-index 6a05d55..4a530c5 100644
+index 8868f42f..5454cd70 100644
 --- a/source/data/misc/metadata.txt
 +++ b/source/data/misc/metadata.txt
-@@ -4210,6 +4210,8 @@ metadata:table(nofallback){
+@@ -4368,6 +4368,8 @@ metadata:table(nofallback){
          "ksb_TZ",
          "ksf_CM",
          "ksh_DE",
@@ -157,72 +4591,114 @@
          "kw_GB",
          "ky_KG",
 diff --git a/source/data/misc/supplementalData.txt b/source/data/misc/supplementalData.txt
-index 77bcce3..f57d7f9 100644
+index 0acbc53c..3a46a4f7 100644
 --- a/source/data/misc/supplementalData.txt
 +++ b/source/data/misc/supplementalData.txt
-@@ -4100,6 +4100,7 @@ supplementalData:table(nofallback){
-                 "BRZ",
-                 "BUK",
-                 "BYB",
-+                "BYR",
-                 "CHE",
-                 "CHW",
-                 "CLE~F",
-@@ -16985,6 +16986,12 @@ supplementalData:table(nofallback){
-                 "1",
-             }
+@@ -16538,8 +16538,8 @@ supplementalData:table(nofallback){
+     languageMatching{
+         written{
              {
-+                "nb",
-+                "no",
-+                "99",
-+                "0",
-+            }
-+            {
-                 "ne_Deva",
-                 "en_Latn",
-                 "90",
-@@ -17000,18 +17007,12 @@ supplementalData:table(nofallback){
-                 "nn",
-                 "nb",
-                 "90",
--                "0",
-+                "1",
-             }
-             {
-                 "nn",
-                 "no",
-                 "90",
--                "1",
--            }
--            {
 -                "no",
+                 "nb",
++                "no",
+                 "99",
+                 "0",
+             }
+@@ -17037,13 +17037,13 @@ supplementalData:table(nofallback){
+             }
+             {
+                 "nn",
 -                "nb",
--                "99",
++                "no",
+                 "90",
                  "0",
              }
              {
-@@ -26382,7 +26383,7 @@ supplementalData:table(nofallback){
-                 populationShareF:int{48600000}
+                 "nn",
+-                "no",
++                "nb",
+                 "90",
+                 "1",
              }
-             yue{
--                populationShareF:int{49900000}
-+                populationShareF:int{48900000}
-                 writingShareF:int{48430000}
-             }
-             za{
-@@ -30969,7 +30970,7 @@ supplementalData:table(nofallback){
-             kk_Cyrl{
-                 populationShareF:int{44800000}
-             }
--            ku_Latn{
-+            ku{
-                 populationShareF:int{48550000}
-             }
-             ky_Latn{
+diff --git a/source/data/rbnf/hi.txt b/source/data/rbnf/hi.txt
+index 7af79961..77e32620 100644
+--- a/source/data/rbnf/hi.txt
++++ b/source/data/rbnf/hi.txt
+@@ -5,21 +5,33 @@ hi{
+         OrdinalRules{
+             "%digits-ordinal-masculine:",
+             "-x: \u2212>>;",
++            "x.x: =#,##,##0.0=;",
+             "0: 0;",
+-            "1: =#,##,##0=\u0932\u093E;",
+-            "2: =#,##,##0=\u0930\u093E;",
+-            "4: =#,##,##0=\u0925\u093E;",
+-            "5: =#,##,##0=\u0935\u093E\u0901;",
+-            "6: =#,##,##0=\u091F\u093E;",
++            "1: =0=\u0932\u093E;",
++            "2: =0=\u0930\u093E;",
++            "4: =0=\u0925\u093E;",
++            "5: =0=\u0935\u093E\u0901;",
++            "6: =0=\u0920\u093E;",
+             "7: =#,##,##0=\u0935\u093E\u0901;",
++            "%digits-ordinal-masculine-oblique:",
++            "-x: \u2212>>;",
++            "x.x: =#,##,##0.0=;",
++            "0: 0;",
++            "1: =0=\u0932\u0947;",
++            "2: =0=\u0930\u0947;",
++            "4: =0=\u0925\u0947;",
++            "5: =0=\u0935\u0947\u0902;",
++            "6: =0=\u0920\u0947;",
++            "7: =#,##,##0=\u0935\u0947\u0902;",
+             "%digits-ordinal-feminine:",
+             "-x: \u2212>>;",
++            "x.x: =#,##,##0.0=;",
+             "0: 0;",
+-            "1: =#,##,##0=\u0932\u0940;",
+-            "2: =#,##,##0=\u0930\u0940;",
+-            "4: =#,##,##0=\u0925\u0940;",
+-            "5: =#,##,##0=\u0935\u0940\u0901;",
+-            "6: =#,##,##0=\u091F\u0940;",
++            "1: =0=\u0932\u0940;",
++            "2: =0=\u0930\u0940;",
++            "4: =0=\u0925\u0940;",
++            "5: =0=\u0935\u0940\u0901;",
++            "6: =0=\u0920\u0940;",
+             "7: =#,##,##0=\u0935\u0940\u0901;",
+             "%digits-ordinal:",
+             "0: =%digits-ordinal-masculine=;",
+@@ -142,7 +154,7 @@ hi{
+             "1000000000000000000: =#,##,##0=;",
+             "%spellout-ordinal-masculine:",
+             "-x: \u090B\u0923 >>;",
+-            "x.x: =#,##0.#=;",
++            "x.x: =#,##,##0.0=;",
+             "0: \u0936\u0942\u0928\u094D\u092F\u0935\u093E\u0901;",
+             "1: \u092A\u0939\u0932\u093E;",
+             "2: \u0926\u0942\u0938\u0930\u093E;",
+@@ -153,7 +165,7 @@ hi{
+             "7: =%spellout-cardinal=\u0935\u093E\u0901;",
+             "%spellout-ordinal-feminine:",
+             "-x: \u090B\u0923 >>;",
+-            "x.x: =#,##0.#=;",
++            "x.x: =#,##,##0.0=;",
+             "0: \u0936\u0942\u0928\u094D\u092F\u0935\u0940;",
+             "1: \u092A\u0939\u0932\u0940;",
+             "2: \u0926\u0942\u0938\u0930\u0940;",
 diff --git a/source/data/region/af.txt b/source/data/region/af.txt
-index 2d33a2b..24d7bc2 100644
+index 417cab74..ffe8a36c 100644
 --- a/source/data/region/af.txt
 +++ b/source/data/region/af.txt
+@@ -108,7 +108,7 @@ af{
+         EU{"Europese Unie"}
+         FI{"Finland"}
+         FJ{"Fidji"}
+-        FK{"Falklandeilande"}
++        FK{"Falklandeilande (Malvinas)"}
+         FM{"Mikronesië"}
+         FO{"Faroëreilande"}
+         FR{"Frankryk"}
 @@ -131,7 +131,7 @@ af{
          GU{"Guam"}
          GW{"Guinee-Bissau"}
@@ -232,7 +4708,12 @@
          HM{"Heard- en McDonaldeilande"}
          HN{"Honduras"}
          HR{"Kroasië"}
-@@ -185,7 +185,7 @@ af{
+@@ -181,11 +181,11 @@ af{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalleilande"}
+-        MK{"Macedonië"}
++        MK{"Macedonië (VJRM)"}
          ML{"Mali"}
          MM{"Mianmar (Birma)"}
          MN{"Mongolië"}
@@ -260,10 +4741,28 @@
          UN{"VN"}
          US{"VSA"}
      }
+@@ -305,8 +302,6 @@ af{
+         CD{"Kongo (DRK)"}
+         CG{"Kongo (Republiek die)"}
+         CZ{"Tjeggiese Republiek"}
+-        FK{"Falklandeilande (Malvinas)"}
+-        MK{"Macedonië (VJRM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/am.txt b/source/data/region/am.txt
-index a8edc8c..9b241dc 100644
+index ed3bfc81..a5814b87 100644
 --- a/source/data/region/am.txt
 +++ b/source/data/region/am.txt
+@@ -108,7 +108,7 @@ am{
+         EU{"የአውሮፓ ህብረት"}
+         FI{"ፊንላንድ"}
+         FJ{"ፊጂ"}
+-        FK{"የፎክላንድ ደሴቶች"}
++        FK{"ፎክላንድ ደሴቶች (ኢስላስ ማልቪናስ)"}
+         FM{"ሚክሮኔዢያ"}
+         FO{"የፋሮ ደሴቶች"}
+         FR{"ፈረንሳይ"}
 @@ -131,7 +131,7 @@ am{
          GU{"ጉዋም"}
          GW{"ጊኒ ቢሳኦ"}
@@ -273,7 +4772,12 @@
          HM{"ኽርድ ደሴቶችና ማክዶናልድ ደሴቶች"}
          HN{"ሆንዱራስ"}
          HR{"ክሮኤሽያ"}
-@@ -185,7 +185,7 @@ am{
+@@ -181,11 +181,11 @@ am{
+         MF{"ሴንት ማርቲን"}
+         MG{"ማዳጋስካር"}
+         MH{"ማርሻል አይላንድ"}
+-        MK{"መቄዶንያ"}
++        MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}
          ML{"ማሊ"}
          MM{"ማይናማር(በርማ)"}
          MN{"ሞንጎሊያ"}
@@ -301,10 +4805,28 @@
          UN{"የተመ"}
          US{"ዩ ኤስ"}
      }
+@@ -306,8 +303,6 @@ am{
+         CG{"ኮንጎ (ሪፐብሊክ)"}
+         CI{"አይቮሪኮስት"}
+         CZ{"ቼክ ሪፑብሊክ"}
+-        FK{"ፎክላንድ ደሴቶች (ኢስላስ ማልቪናስ)"}
+-        MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}
+         TL{"ምስራቅ ቲሞር"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/ar.txt b/source/data/region/ar.txt
-index 102742d..c270e07 100644
+index aa2313af..5536df19 100644
 --- a/source/data/region/ar.txt
 +++ b/source/data/region/ar.txt
+@@ -108,7 +108,7 @@ ar{
+         EU{"الاتحاد الأوروبي"}
+         FI{"فنلندا"}
+         FJ{"فيجي"}
+-        FK{"جزر فوكلاند"}
++        FK{"جزر فوكلاند - جزر مالفيناس"}
+         FM{"ميكرونيزيا"}
+         FO{"جزر فارو"}
+         FR{"فرنسا"}
 @@ -131,7 +131,7 @@ ar{
          GU{"غوام"}
          GW{"غينيا بيساو"}
@@ -314,7 +4836,12 @@
          HM{"جزيرة هيرد وجزر ماكدونالد"}
          HN{"هندوراس"}
          HR{"كرواتيا"}
-@@ -185,7 +185,7 @@ ar{
+@@ -181,11 +181,11 @@ ar{
+         MF{"سانت مارتن"}
+         MG{"مدغشقر"}
+         MH{"جزر مارشال"}
+-        MK{"مقدونيا"}
++        MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}
          ML{"مالي"}
          MM{"ميانمار (بورما)"}
          MN{"منغوليا"}
@@ -342,10 +4869,28 @@
          UN{"أمم"}
          US{"الولايات المتحدة"}
      }
+@@ -305,8 +302,6 @@ ar{
+         CD{"جمهورية الكونغو الديمقراطية"}
+         CG{"جمهورية الكونغو"}
+         CZ{"جمهورية التشيك"}
+-        FK{"جزر فوكلاند - جزر مالفيناس"}
+-        MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}
+         TL{"تيمور الشرقية"}
+     }
+     Version{"2.1.32.86"}
 diff --git a/source/data/region/ast.txt b/source/data/region/ast.txt
-index 462fe3a..d9553f9 100644
+index 67ec2b8b..751496a8 100644
 --- a/source/data/region/ast.txt
 +++ b/source/data/region/ast.txt
+@@ -108,7 +108,7 @@ ast{
+         EU{"Xunión Europea"}
+         FI{"Finlandia"}
+         FJ{"Islles Fixi"}
+-        FK{"Falkland Islands"}
++        FK{"Islles Malvines (Falkland Islands)"}
+         FM{"Micronesia"}
+         FO{"Islles Feroe"}
+         FR{"Francia"}
 @@ -131,7 +131,7 @@ ast{
          GU{"Guam"}
          GW{"Guinea-Bisáu"}
@@ -355,7 +4900,12 @@
          HM{"Islles Heard y McDonald"}
          HN{"Hondures"}
          HR{"Croacia"}
-@@ -185,7 +185,7 @@ ast{
+@@ -181,11 +181,11 @@ ast{
+         MF{"Saint Martin"}
+         MG{"Madagascar"}
+         MH{"Islles Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (ARYDM)"}
          ML{"Malí"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -373,7 +4923,7 @@
          PT{"Portugal"}
          PW{"Paláu"}
          PY{"Paraguái"}
-@@ -294,9 +294,6 @@ ast{
+@@ -294,17 +294,12 @@ ast{
      }
      Countries%short{
          GB{"RX"}
@@ -383,10 +4933,27 @@
          US{"EE.XX."}
      }
      Countries%variant{
+         CD{"Congu (RDC)"}
+         CG{"Congu (República del)"}
+         CI{"Costa del Marfil"}
+-        FK{"Islles Malvines (Falkland Islands)"}
+-        MK{"Macedonia (ARYDM)"}
+         TL{"Timor Este"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/az.txt b/source/data/region/az.txt
-index 66e3209..efef69e 100644
+index 493f77ff..38ab334b 100644
 --- a/source/data/region/az.txt
 +++ b/source/data/region/az.txt
+@@ -108,7 +108,7 @@ az{
+         EU{"Avropa Birliyi"}
+         FI{"Finlandiya"}
+         FJ{"Fici"}
+-        FK{"Folklend adaları"}
++        FK{"Folklend adaları (Malvin adaları)"}
+         FM{"Mikroneziya"}
+         FO{"Farer adaları"}
+         FR{"Fransa"}
 @@ -131,7 +131,7 @@ az{
          GU{"Quam"}
          GW{"Qvineya-Bisau"}
@@ -396,7 +4963,12 @@
          HM{"Herd və Makdonald adaları"}
          HN{"Honduras"}
          HR{"Xorvatiya"}
-@@ -185,7 +185,7 @@ az{
+@@ -181,11 +181,11 @@ az{
+         MF{"Sent Martin"}
+         MG{"Madaqaskar"}
+         MH{"Marşal adaları"}
+-        MK{"Makedoniya"}
++        MK{"Makedoniya (KYRM)"}
          ML{"Mali"}
          MM{"Myanma"}
          MN{"Monqolustan"}
@@ -424,10 +4996,28 @@
          UN{"BMT"}
          US{"ABŞ"}
      }
+@@ -306,8 +303,6 @@ az{
+         CG{"Konqo (Respublika)"}
+         CI{"Fil Dişi Sahili"}
+         CZ{"Çex Respublikası"}
+-        FK{"Folklend adaları (Malvin adaları)"}
+-        MK{"Makedoniya (KYRM)"}
+         TL{"Doğu Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/az_Cyrl.txt b/source/data/region/az_Cyrl.txt
-index 6c9d182..2f8deb8 100644
+index b0f5b7b9..c0d3bbd6 100644
 --- a/source/data/region/az_Cyrl.txt
 +++ b/source/data/region/az_Cyrl.txt
+@@ -107,7 +107,7 @@ az_Cyrl{
+         EU{"Авропа Бирлији"}
+         FI{"Финландија"}
+         FJ{"Фиҹи"}
+-        FK{"Фолкленд адалары"}
++        FK{"Фолкленд адалары (Малвин адалары)"}
+         FM{"Микронезија"}
+         FO{"Фарер адалары"}
+         FR{"Франса"}
 @@ -130,7 +130,7 @@ az_Cyrl{
          GU{"Гуам"}
          GW{"Гвинеја-Бисау"}
@@ -437,7 +5027,11 @@
          HM{"Һерд вә Макдоналд адалары"}
          HN{"Һондурас"}
          HR{"Хорватија"}
-@@ -183,7 +183,7 @@ az_Cyrl{
+@@ -180,10 +180,11 @@ az_Cyrl{
+         MF{"Сент Мартин"}
+         MG{"Мадагаскар"}
+         MH{"Маршал адалары"}
++        MK{"Македонија (КЈРМ)"}
          ML{"Мали"}
          MM{"Мјанма"}
          MN{"Монголустан"}
@@ -446,7 +5040,7 @@
          MP{"Шимали Мариан адалары"}
          MQ{"Мартиник"}
          MR{"Мавританија"}
-@@ -291,8 +291,6 @@ az_Cyrl{
+@@ -291,16 +292,12 @@ az_Cyrl{
      }
      Countries%short{
          GB{"БК"}
@@ -455,10 +5049,27 @@
          US{"АБШ"}
      }
      Countries%variant{
+         CD{"Конго (КДР)"}
+         CG{"Конго (Республика)"}
+         CZ{"Чех Республикасы"}
+-        FK{"Фолкленд адалары (Малвин адалары)"}
+-        MK{"Македонија (КЈРМ)"}
+     }
+     Version{"2.1.31.74"}
+ }
 diff --git a/source/data/region/be.txt b/source/data/region/be.txt
-index fe115c7..9e662d0 100644
+index b27616a7..2b4743eb 100644
 --- a/source/data/region/be.txt
 +++ b/source/data/region/be.txt
+@@ -108,7 +108,7 @@ be{
+         EU{"Еўрапейскі саюз"}
+         FI{"Фінляндыя"}
+         FJ{"Фіджы"}
+-        FK{"Фалклендскія астравы"}
++        FK{"Фалклендскія (Мальвінскія) астравы"}
+         FM{"Мікранезія"}
+         FO{"Фарэрскія астравы"}
+         FR{"Францыя"}
 @@ -131,7 +131,7 @@ be{
          GU{"Гуам"}
          GW{"Гвінея-Бісау"}
@@ -468,7 +5079,12 @@
          HM{"Астравы Херд і Макдональд"}
          HN{"Гандурас"}
          HR{"Харватыя"}
-@@ -185,7 +185,7 @@ be{
+@@ -181,11 +181,11 @@ be{
+         MF{"Сен-Мартэн"}
+         MG{"Мадагаскар"}
+         MH{"Маршалавы Астравы"}
+-        MK{"Македонія"}
++        MK{"Македонія (БЮРМ)"}
          ML{"Малі"}
          MM{"М’янма (Бірма)"}
          MN{"Манголія"}
@@ -486,7 +5102,7 @@
          PT{"Партугалія"}
          PW{"Палау"}
          PY{"Парагвай"}
-@@ -294,9 +294,6 @@ be{
+@@ -294,17 +294,12 @@ be{
      }
      Countries%short{
          GB{"Вялікабрытанія"}
@@ -496,10 +5112,27 @@
          US{"ЗША"}
      }
      Countries%variant{
+         CD{"Конга (ДРК)"}
+         CG{"Рэспубліка Конга"}
+         CI{"Бераг Слановай Косці"}
+-        FK{"Фалклендскія (Мальвінскія) астравы"}
+-        MK{"Македонія (БЮРМ)"}
+         TL{"Усходні Тымор"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/bg.txt b/source/data/region/bg.txt
-index 1d221a5..ecfc5fe 100644
+index e5438b63..8d6f310f 100644
 --- a/source/data/region/bg.txt
 +++ b/source/data/region/bg.txt
+@@ -108,7 +108,7 @@ bg{
+         EU{"Европейски съюз"}
+         FI{"Финландия"}
+         FJ{"Фиджи"}
+-        FK{"Фолклендски острови"}
++        FK{"Фолклендски острови (Малвински острови)"}
+         FM{"Микронезия"}
+         FO{"Фарьорски острови"}
+         FR{"Франция"}
 @@ -131,7 +131,7 @@ bg{
          GU{"Гуам"}
          GW{"Гвинея-Бисау"}
@@ -509,7 +5142,12 @@
          HM{"остров Хърд и острови Макдоналд"}
          HN{"Хондурас"}
          HR{"Хърватия"}
-@@ -185,7 +185,7 @@ bg{
+@@ -181,11 +181,11 @@ bg{
+         MF{"Сен Мартен"}
+         MG{"Мадагаскар"}
+         MH{"Маршалови острови"}
+-        MK{"Македония"}
++        MK{"Бивша югославска република Македония"}
          ML{"Мали"}
          MM{"Мианмар (Бирма)"}
          MN{"Монголия"}
@@ -537,10 +5175,28 @@
          US{"САЩ"}
      }
      Countries%variant{
+@@ -305,8 +302,6 @@ bg{
+         CG{"Конго (Република)"}
+         CI{"Бряг на слоновата кост"}
+         CZ{"Чешка република"}
+-        FK{"Фолклендски острови (Малвински острови)"}
+-        MK{"Бивша югославска република Македония"}
+     }
+     Version{"2.1.33.75"}
+ }
 diff --git a/source/data/region/bn.txt b/source/data/region/bn.txt
-index 5f800f6..9d82fad 100644
+index fe1f3b51..c42b7cac 100644
 --- a/source/data/region/bn.txt
 +++ b/source/data/region/bn.txt
+@@ -108,7 +108,7 @@ bn{
+         EU{"ইউরোপীয় ইউনিয়ন"}
+         FI{"ফিনল্যান্ড"}
+         FJ{"ফিজি"}
+-        FK{"ফকল্যান্ড দ্বীপপুঞ্জ"}
++        FK{"ফকল্যান্ড আইল্যান্ড ( ইসল্যাস মাসভেনিস)"}
+         FM{"মাইক্রোনেশিয়া"}
+         FO{"ফ্যারও দ্বীপপুঞ্জ"}
+         FR{"ফ্রান্স"}
 @@ -131,7 +131,7 @@ bn{
          GU{"গুয়াম"}
          GW{"গিনি-বিসাউ"}
@@ -550,7 +5206,12 @@
          HM{"হার্ড দ্বীপ এবং ম্যাকডোনাল্ড দ্বীপপুঞ্জ"}
          HN{"হণ্ডুরাস"}
          HR{"ক্রোয়েশিয়া"}
-@@ -185,7 +185,7 @@ bn{
+@@ -181,11 +181,11 @@ bn{
+         MF{"সেন্ট মার্টিন"}
+         MG{"মাদাগাস্কার"}
+         MH{"মার্শাল দ্বীপপুঞ্জ"}
+-        MK{"ম্যাসাডোনিয়া"}
++        MK{"মেসিডোনিয়া(FYROM)"}
          ML{"মালি"}
          MM{"মায়ানমার (বার্মা)"}
          MN{"মঙ্গোলিয়া"}
@@ -578,10 +5239,28 @@
          UN{"ইউএন"}
          US{"ইউ এস"}
      }
+@@ -306,8 +303,6 @@ bn{
+         CG{"কঙ্গো (প্রজাতন্ত্র)"}
+         CI{"আই ভরি"}
+         CZ{"চেক প্রজাতন্ত্র"}
+-        FK{"ফকল্যান্ড আইল্যান্ড ( ইসল্যাস মাসভেনিস)"}
+-        MK{"মেসিডোনিয়া(FYROM)"}
+         TL{"পূর্ব তিমুর"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/br.txt b/source/data/region/br.txt
-index 53b27c6..9e64e1e 100644
+index 13e350d1..310f367f 100644
 --- a/source/data/region/br.txt
 +++ b/source/data/region/br.txt
+@@ -108,7 +108,7 @@ br{
+         EU{"Unaniezh Europa"}
+         FI{"Finland"}
+         FJ{"Fidji"}
+-        FK{"Inizi Falkland"}
++        FK{"Inizi Falkland (Inizi Maloù)"}
+         FM{"Mikronezia"}
+         FO{"Inizi Faero"}
+         FR{"Frañs"}
 @@ -131,7 +131,7 @@ br{
          GU{"Guam"}
          GW{"Ginea-Bissau"}
@@ -591,7 +5270,12 @@
          HM{"Inizi Heard ha McDonald"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -185,7 +185,7 @@ br{
+@@ -181,11 +181,11 @@ br{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Inizi Marshall"}
+-        MK{"Makedonia"}
++        MK{"Makedonia (RYKM)"}
          ML{"Mali"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -609,7 +5293,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -294,9 +294,6 @@ br{
+@@ -294,17 +294,12 @@ br{
      }
      Countries%short{
          GB{"RU"}
@@ -619,10 +5303,27 @@
          US{"SU"}
      }
      Countries%variant{
+         CD{"Kongo (RDK)"}
+         CG{"Kongo (Republik)"}
+         CI{"Aod Olifant"}
+-        FK{"Inizi Falkland (Inizi Maloù)"}
+-        MK{"Makedonia (RYKM)"}
+         TL{"Timor ar Reter"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/bs.txt b/source/data/region/bs.txt
-index 3ace56f..d1bc705 100644
+index 61bc6e59..7ef81cc0 100644
 --- a/source/data/region/bs.txt
 +++ b/source/data/region/bs.txt
+@@ -108,7 +108,7 @@ bs{
+         EU{"Evropska unija"}
+         FI{"Finska"}
+         FJ{"Fidži"}
+-        FK{"Folklandska Ostrva"}
++        FK{"Folklandska Ostrva (Malvinska Ostrva)"}
+         FM{"Mikronezija"}
+         FO{"Farska Ostrva"}
+         FR{"Francuska"}
 @@ -131,7 +131,7 @@ bs{
          GU{"Guam"}
          GW{"Gvineja-Bisao"}
@@ -632,7 +5333,12 @@
          HM{"Herd i arhipelag MekDonald"}
          HN{"Honduras"}
          HR{"Hrvatska"}
-@@ -185,7 +185,7 @@ bs{
+@@ -181,11 +181,11 @@ bs{
+         MF{"Sv. Martin"}
+         MG{"Madagaskar"}
+         MH{"Maršalova Ostrva"}
+-        MK{"Makedonija"}
++        MK{"Makedonija (BJR)"}
          ML{"Mali"}
          MM{"Mijanmar"}
          MN{"Mongolija"}
@@ -660,10 +5366,28 @@
          UN{"UN"}
          US{"SAD"}
      }
+@@ -306,8 +303,6 @@ bs{
+         CG{"Republika Kongo"}
+         CI{"Obala Bjelokosti"}
+         CZ{"Češka Republika"}
+-        FK{"Folklandska Ostrva (Malvinska Ostrva)"}
+-        MK{"Makedonija (BJR)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/bs_Cyrl.txt b/source/data/region/bs_Cyrl.txt
-index ecba6b4..bc83bdd 100644
+index 75d95975..5a09fd64 100644
 --- a/source/data/region/bs_Cyrl.txt
 +++ b/source/data/region/bs_Cyrl.txt
+@@ -107,7 +107,7 @@ bs_Cyrl{
+         EU{"Европска Унија"}
+         FI{"Финска"}
+         FJ{"Фиџи"}
+-        FK{"Фокландска острва"}
++        FK{"Фокландска (Малвинска) острва"}
+         FM{"Микронезија"}
+         FO{"Фарска Острва"}
+         FR{"Француска"}
 @@ -130,7 +130,7 @@ bs_Cyrl{
          GU{"Гуам"}
          GW{"Гвинеја-Бисао"}
@@ -682,7 +5406,7 @@
          MP{"Северна Маријанска Острва"}
          MQ{"Мартиник"}
          MR{"Мауританија"}
-@@ -288,10 +288,6 @@ bs_Cyrl{
+@@ -288,14 +288,9 @@ bs_Cyrl{
          ZW{"Зимбабве"}
          ZZ{"Непозната или неважећа област"}
      }
@@ -693,10 +5417,23 @@
      Countries%variant{
          CD{"Конго (ДРК)"}
          CG{"Конго (Република)"}
+-        FK{"Фокландска (Малвинска) острва"}
+     }
+     Version{"2.1.32.72"}
+ }
 diff --git a/source/data/region/ca.txt b/source/data/region/ca.txt
-index 5dc4763..e61eb0a 100644
+index a5e45bc3..4a40858e 100644
 --- a/source/data/region/ca.txt
 +++ b/source/data/region/ca.txt
+@@ -108,7 +108,7 @@ ca{
+         EU{"Unió Europea"}
+         FI{"Finlàndia"}
+         FJ{"Fiji"}
+-        FK{"Illes Malvines"}
++        FK{"Illes Malvines (Illes Falkland)"}
+         FM{"Micronèsia"}
+         FO{"Illes Fèroe"}
+         FR{"França"}
 @@ -131,7 +131,7 @@ ca{
          GU{"Guam"}
          GW{"Guinea Bissau"}
@@ -706,7 +5443,12 @@
          HM{"Illa Heard i Illes McDonald"}
          HN{"Hondures"}
          HR{"Croàcia"}
-@@ -185,7 +185,7 @@ ca{
+@@ -181,11 +181,11 @@ ca{
+         MF{"Saint Martin"}
+         MG{"Madagascar"}
+         MH{"Illes Marshall"}
+-        MK{"Macedònia"}
++        MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}
          ML{"Mali"}
          MM{"Myanmar (Birmània)"}
          MN{"Mongòlia"}
@@ -734,10 +5476,28 @@
          UN{"ONU"}
          US{"EUA"}
      }
+@@ -305,8 +302,6 @@ ca{
+         CD{"Congo (República Democràtica del Congo)"}
+         CG{"Congo (República del Congo)"}
+         CZ{"República Txeca"}
+-        FK{"Illes Malvines (Illes Falkland)"}
+-        MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/ce.txt b/source/data/region/ce.txt
-index ac28193..e045bea 100644
+index cf0e6128..15c7e00a 100644
 --- a/source/data/region/ce.txt
 +++ b/source/data/region/ce.txt
+@@ -108,7 +108,7 @@ ce{
+         EU{"Евробарт"}
+         FI{"Финлянди"}
+         FJ{"Фиджи"}
+-        FK{"Фолклендан гӀайренаш"}
++        FK{"Фолклендан гӀайренаш (Мальвинаш)"}
+         FM{"Микронезин Федеративни штаташ"}
+         FO{"Фарерийн гӀайренаш"}
+         FR{"Франци"}
 @@ -131,7 +131,7 @@ ce{
          GU{"Гуам"}
          GW{"Гвиней-Бисау"}
@@ -765,7 +5525,7 @@
          PT{"Португали"}
          PW{"Палау"}
          PY{"Парагвай"}
-@@ -294,9 +294,6 @@ ce{
+@@ -294,14 +294,10 @@ ce{
      }
      Countries%short{
          GB{"Йоккха Британи"}
@@ -775,10 +5535,24 @@
          US{"АЦШ"}
      }
      Countries%variant{
+         CD{"Конго (ДРК)"}
+-        FK{"Фолклендан гӀайренаш (Мальвинаш)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/chr.txt b/source/data/region/chr.txt
-index 3a4b1e6..7a25fdb 100644
+index 32367776..05e8979e 100644
 --- a/source/data/region/chr.txt
 +++ b/source/data/region/chr.txt
+@@ -108,7 +108,7 @@ chr{
+         EU{"ᏳᎳᏛ ᎠᏂᎤᎾᏓᏡᎬ"}
+         FI{"ᏫᏂᎦᏙᎯ"}
+         FJ{"ᏫᏥ"}
+-        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ"}
++        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ (ᎢᏍᎳᏍ ᎹᎸᏫᎾᏍ)"}
+         FM{"ᎹᎢᏉᏂᏏᏯ"}
+         FO{"ᏪᎶ ᏚᎦᏚᏛᎢ"}
+         FR{"ᎦᎸᏥᏱ"}
 @@ -131,7 +131,7 @@ chr{
          GU{"ᏆᎻ"}
          GW{"ᎩᎢᏂ-ᏈᏌᎤᏫ"}
@@ -788,7 +5562,12 @@
          HM{"ᎲᏗ ᎤᎦᏚᏛᎢ ᎠᎴ ᎺᎩᏓᎾᎵᏗ ᏚᎦᏚᏛᎢ"}
          HN{"ᎭᏂᏚᎳᏍ"}
          HR{"ᎧᎶᎡᏏᎠ"}
-@@ -185,7 +185,7 @@ chr{
+@@ -181,11 +181,11 @@ chr{
+         MF{"ᎤᏓᏅᏘ ᏡᏡ"}
+         MG{"ᎹᏓᎦᏍᎧᎵ"}
+         MH{"ᎹᏌᎵ ᏚᎦᏚᏛᎢ"}
+-        MK{"ᎹᏎᏙᏂᏯ"}
++        MK{"ᎹᏎᏙᏂᏯ (FYROM)"}
          ML{"ᎹᎵ"}
          MM{"ᎹᏯᎹᎵ"}
          MN{"ᎹᏂᎪᎵᎠ"}
@@ -806,7 +5585,7 @@
          PT{"ᏉᏥᎦᎳ"}
          PW{"ᏆᎴᎠᏫ"}
          PY{"ᏆᎳᏇᎢᏯ"}
-@@ -294,9 +294,6 @@ chr{
+@@ -294,17 +294,12 @@ chr{
      }
      Countries%short{
          GB{"UK"}
@@ -816,8 +5595,16 @@
          US{"US"}
      }
      Countries%variant{
+         CD{"ᎧᏂᎪ (DRC)"}
+         CG{"ᎧᏂᎪ (ᏍᎦᏚᎩ)"}
+         CZ{"ᏤᎩ ᏍᎦᏚᎩ"}
+-        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ (ᎢᏍᎳᏍ ᎹᎸᏫᎾᏍ)"}
+-        MK{"ᎹᏎᏙᏂᏯ (FYROM)"}
+         TL{"ᏗᎧᎸᎬᎢ ᏘᎼᎵ"}
+     }
+     Version{"2.1.31.74"}
 diff --git a/source/data/region/ckb.txt b/source/data/region/ckb.txt
-index 6349e1b..e918132 100644
+index a31869f4..a2f811b5 100644
 --- a/source/data/region/ckb.txt
 +++ b/source/data/region/ckb.txt
 @@ -162,6 +162,7 @@ ckb{
@@ -829,9 +5616,18 @@
          SV{"ئێلسالڤادۆر"}
          SY{"سووریا"}
 diff --git a/source/data/region/cs.txt b/source/data/region/cs.txt
-index 97a7970..858e72f 100644
+index de98ac13..59bb4948 100644
 --- a/source/data/region/cs.txt
 +++ b/source/data/region/cs.txt
+@@ -108,7 +108,7 @@ cs{
+         EU{"Evropská unie"}
+         FI{"Finsko"}
+         FJ{"Fidži"}
+-        FK{"Falklandské ostrovy"}
++        FK{"Falklandské ostrovy (Malvíny)"}
+         FM{"Mikronésie"}
+         FO{"Faerské ostrovy"}
+         FR{"Francie"}
 @@ -131,7 +131,7 @@ cs{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -841,7 +5637,12 @@
          HM{"Heardův ostrov a McDonaldovy ostrovy"}
          HN{"Honduras"}
          HR{"Chorvatsko"}
-@@ -185,7 +185,7 @@ cs{
+@@ -181,11 +181,11 @@ cs{
+         MF{"Svatý Martin (Francie)"}
+         MG{"Madagaskar"}
+         MH{"Marshallovy ostrovy"}
+-        MK{"Makedonie"}
++        MK{"Makedonie (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Barma)"}
          MN{"Mongolsko"}
@@ -869,10 +5670,28 @@
          UN{"OSN"}
          US{"USA"}
      }
+@@ -306,8 +303,6 @@ cs{
+         CG{"Kongo (republika)"}
+         CI{"Côte d’Ivoire"}
+         CZ{"Česká republika"}
+-        FK{"Falklandské ostrovy (Malvíny)"}
+-        MK{"Makedonie (FYROM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/cy.txt b/source/data/region/cy.txt
-index 4083b2d..a8355e0 100644
+index 4500f3bb..9bb85686 100644
 --- a/source/data/region/cy.txt
 +++ b/source/data/region/cy.txt
+@@ -108,7 +108,7 @@ cy{
+         EU{"Yr Undeb Ewropeaidd"}
+         FI{"Y Ffindir"}
+         FJ{"Fiji"}
+-        FK{"Ynysoedd y Falkland/Malvinas"}
++        FK{"Ynysoedd y Falkland (Ynysoedd y Malfinas)"}
+         FM{"Micronesia"}
+         FO{"Ynysoedd Ffaro"}
+         FR{"Ffrainc"}
 @@ -131,7 +131,7 @@ cy{
          GU{"Guam"}
          GW{"Guiné-Bissau"}
@@ -882,7 +5701,12 @@
          HM{"Ynys Heard ac Ynysoedd McDonald"}
          HN{"Honduras"}
          HR{"Croatia"}
-@@ -185,7 +185,7 @@ cy{
+@@ -181,11 +181,11 @@ cy{
+         MF{"Saint Martin"}
+         MG{"Madagascar"}
+         MH{"Ynysoedd Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (CWIM)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -910,10 +5734,28 @@
          UN{"UN"}
          US{"UDA"}
      }
+@@ -306,8 +303,6 @@ cy{
+         CG{"Y Congo (Gweriniaeth)"}
+         CI{"Arfordir Ifori"}
+         CZ{"Gweriniaeth Tsiec"}
+-        FK{"Ynysoedd y Falkland (Ynysoedd y Malfinas)"}
+-        MK{"Macedonia (CWIM)"}
+         TL{"Dwyrain Timor"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/da.txt b/source/data/region/da.txt
-index 1ed8dcf..2bd2a71 100644
+index 1baf1bf9..1bc025aa 100644
 --- a/source/data/region/da.txt
 +++ b/source/data/region/da.txt
+@@ -108,7 +108,7 @@ da{
+         EU{"Den Europæiske Union"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Falklandsøerne"}
++        FK{"Falklandsøerne (Islas Malvinas)"}
+         FM{"Mikronesiens Forenede Stater"}
+         FO{"Færøerne"}
+         FR{"Frankrig"}
 @@ -131,7 +131,7 @@ da{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -923,7 +5765,12 @@
          HM{"Heard Island og McDonald Islands"}
          HN{"Honduras"}
          HR{"Kroatien"}
-@@ -185,7 +185,7 @@ da{
+@@ -181,11 +181,11 @@ da{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalløerne"}
+-        MK{"Makedonien"}
++        MK{"Den tidligere jugoslaviske republik Makedonien"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongoliet"}
@@ -941,7 +5788,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -295,9 +295,6 @@ da{
+@@ -295,17 +295,12 @@ da{
      }
      Countries%short{
          GB{"UK"}
@@ -951,10 +5798,27 @@
          UN{"FN"}
          US{"USA"}
      }
+     Countries%variant{
+         CD{"Den Demokratiske Republik Congo (DRC)"}
+         CG{"Republikken Congo"}
+-        FK{"Falklandsøerne (Islas Malvinas)"}
+-        MK{"Den tidligere jugoslaviske republik Makedonien"}
+         TL{"Østtimor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/de.txt b/source/data/region/de.txt
-index f995f0c..8ab024c 100644
+index 4d7354ec..3c3795d8 100644
 --- a/source/data/region/de.txt
 +++ b/source/data/region/de.txt
+@@ -108,7 +108,7 @@ de{
+         EU{"Europäische Union"}
+         FI{"Finnland"}
+         FJ{"Fidschi"}
+-        FK{"Falklandinseln"}
++        FK{"Falklandinseln (Malwinen)"}
+         FM{"Mikronesien"}
+         FO{"Färöer"}
+         FR{"Frankreich"}
 @@ -131,7 +131,7 @@ de{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -964,7 +5828,12 @@
          HM{"Heard und McDonaldinseln"}
          HN{"Honduras"}
          HR{"Kroatien"}
-@@ -185,7 +185,7 @@ de{
+@@ -181,11 +181,11 @@ de{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallinseln"}
+-        MK{"Mazedonien"}
++        MK{"Mazedonien (EJR)"}
          ML{"Mali"}
          MM{"Myanmar"}
          MN{"Mongolei"}
@@ -992,10 +5861,28 @@
          UN{"UN"}
          US{"USA"}
      }
+@@ -306,8 +303,6 @@ de{
+         CG{"Kongo (Republik)"}
+         CI{"Elfenbeinküste"}
+         CZ{"Tschechische Republik"}
+-        FK{"Falklandinseln (Malwinen)"}
+-        MK{"Mazedonien (EJR)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/dsb.txt b/source/data/region/dsb.txt
-index 40ac9ad..1218298 100644
+index 323ed78e..ec89a160 100644
 --- a/source/data/region/dsb.txt
 +++ b/source/data/region/dsb.txt
+@@ -108,7 +108,7 @@ dsb{
+         EU{"Europska unija"}
+         FI{"Finska"}
+         FJ{"Fidži"}
+-        FK{"Falklandske kupy"}
++        FK{"Falklandske kupy (Malwiny)"}
+         FM{"Mikroneziska"}
+         FO{"Färöje"}
+         FR{"Francojska"}
 @@ -131,7 +131,7 @@ dsb{
          GU{"Guam"}
          GW{"Gineja-Bissau"}
@@ -1005,7 +5892,12 @@
          HM{"Heardowa kupa a McDonaldowe kupy"}
          HN{"Honduras"}
          HR{"Chorwatska"}
-@@ -185,7 +185,7 @@ dsb{
+@@ -181,11 +181,11 @@ dsb{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallowe kupy"}
+-        MK{"Makedońska"}
++        MK{"Makedońska (PRJ)"}
          ML{"Mali"}
          MM{"Myanmar"}
          MN{"Mongolska"}
@@ -1023,7 +5915,7 @@
          PT{"Portugalska"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -294,9 +294,6 @@ dsb{
+@@ -294,17 +294,12 @@ dsb{
      }
      Countries%short{
          GB{"UK"}
@@ -1033,10 +5925,27 @@
          US{"USA"}
      }
      Countries%variant{
+         CD{"Kongo (Demokratiska republika)"}
+         CG{"Kongo (Republika)"}
+         CI{"Słonowokósćowy pśibrjog"}
+-        FK{"Falklandske kupy (Malwiny)"}
+-        MK{"Makedońska (PRJ)"}
+         TL{"Pódzajtšny Timor"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/dz.txt b/source/data/region/dz.txt
-index 3d898f3..bafa973 100644
+index 021f2c3e..27b3c3ac 100644
 --- a/source/data/region/dz.txt
 +++ b/source/data/region/dz.txt
+@@ -108,7 +108,7 @@ dz{
+         EU{"ཡུ་རོབ་གཅིག་བསྡོམས་ཚོགས་པ"}
+         FI{"ཕིན་ལེནཌ"}
+         FJ{"ཕི་ཇི"}
+-        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ"}
++        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ (ཨིས་ལཱས་མལ་བི་ཎཱས)"}
+         FM{"མའི་ཀྲོ་ནི་ཤི་ཡ"}
+         FO{"ཕཱའེ་རོ་གླིང་ཚོམ"}
+         FR{"ཕྲཱནས"}
 @@ -131,7 +131,7 @@ dz{
          GU{"གུ་འམ་ མཚོ་གླིང"}
          GW{"གྷི་ནི་ བྷི་སཱའུ"}
@@ -1046,7 +5955,12 @@
          HM{"ཧཱརཌ་མཚོ་གླིང་ དང་ མེཀ་ཌོ་ནལཌ྄་གླིང་ཚོམ"}
          HN{"ཧཱན་ཌུ་རཱས྄"}
          HR{"ཀྲོ་ཨེ་ཤ"}
-@@ -185,7 +185,7 @@ dz{
+@@ -181,11 +181,11 @@ dz{
+         MF{"སེནཊ་ མཱར་ཊིན"}
+         MG{"མ་དཱ་གེས་ཀར"}
+         MH{"མར་ཤེལ་གླིང་ཚོམ"}
+-        MK{"མ་སེ་ཌོ་ནི་ཡ"}
++        MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}
          ML{"མཱ་ལི"}
          MM{"མི་ཡཱན་མར་ (བྷར་མ)"}
          MN{"སོག་པོ་ཡུལ"}
@@ -1055,7 +5969,7 @@
          MP{"བྱང་ཕྱོགས་ཀྱི་མ་ར་ཡ་ན་གླིང་ཚོམ"}
          MQ{"མཱར་ཊི་ནིཀ"}
          MR{"མོ་རི་ཊེ་ནི་ཡ"}
-@@ -291,10 +291,6 @@ dz{
+@@ -291,16 +291,10 @@ dz{
          ZW{"ཛིམ་བྷབ་ཝེ"}
          ZZ{"ངོ་མ་ཤེས་པའི་ལུང་ཕྱོགས"}
      }
@@ -1066,10 +5980,25 @@
      Countries%variant{
          CD{"ཌེ་མོ་ཀེརེ་ཊིཀ་ རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
          CG{"རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
+         CI{"ཨི་ཝོ་རི་ཀོསཊ"}
+-        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ (ཨིས་ལཱས་མལ་བི་ཎཱས)"}
+-        MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}
+         TL{"ཤར་ཕྱོགས་ཏི་་མོར"}
+     }
+     Version{"2.1.31.34"}
 diff --git a/source/data/region/ee.txt b/source/data/region/ee.txt
-index 5153157..e95f73c 100644
+index 9272bf17..9521b71b 100644
 --- a/source/data/region/ee.txt
 +++ b/source/data/region/ee.txt
+@@ -106,7 +106,7 @@ ee{
+         EU{"Europa Wɔɖeka nutome"}
+         FI{"Finland nutome"}
+         FJ{"Fidzi nutome"}
+-        FK{"Falkland ƒudomekpowo nutome"}
++        FK{"Falkland ƒudomekpowo (Islas Malvinas) nutome"}
+         FM{"Mikronesia nutome"}
+         FO{"Faroe ƒudomekpowo nutome"}
+         FR{"France nutome"}
 @@ -129,7 +129,7 @@ ee{
          GU{"Guam nutome"}
          GW{"Gini-Bisao nutome"}
@@ -1079,7 +6008,12 @@
          HM{"Heard kple Mcdonald ƒudomekpowo nutome"}
          HN{"Hondurasdu"}
          HR{"Kroatsia nutome"}
-@@ -183,7 +183,7 @@ ee{
+@@ -179,11 +179,11 @@ ee{
+         MF{"Saint Martin nutome"}
+         MG{"Madagaska nutome"}
+         MH{"Marshal ƒudomekpowo nutome"}
+-        MK{"Makedonia nutome"}
++        MK{"Makedonia (FYROM) nutome"}
          ML{"Mali nutome"}
          MM{"Myanmar (Burma) nutome"}
          MN{"Mongolia nutome"}
@@ -1088,7 +6022,7 @@
          MP{"Dziehe Marina ƒudomekpowo nutome"}
          MQ{"Martiniki nutome"}
          MR{"Mauritania nutome"}
-@@ -286,10 +286,6 @@ ee{
+@@ -286,16 +286,10 @@ ee{
          ZW{"Zimbabwe nutome"}
          ZZ{"nutome manya"}
      }
@@ -1099,10 +6033,25 @@
      Countries%variant{
          CD{"Kongo demokratik repɔblik nutome"}
          CG{"Kongo repɔblik nutome"}
+         CI{"Ivory Kost nutome"}
+-        FK{"Falkland ƒudomekpowo (Islas Malvinas) nutome"}
+-        MK{"Makedonia (FYROM) nutome"}
+         TL{"Ɣedzeƒe Timɔ nutome"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/el.txt b/source/data/region/el.txt
-index 810c585..0465925 100644
+index 945dbbc1..c8ee67ee 100644
 --- a/source/data/region/el.txt
 +++ b/source/data/region/el.txt
+@@ -108,7 +108,7 @@ el{
+         EU{"Ευρωπαϊκή Ένωση"}
+         FI{"Φινλανδία"}
+         FJ{"Φίτζι"}
+-        FK{"Νήσοι Φόκλαντ"}
++        FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}
+         FM{"Μικρονησία"}
+         FO{"Νήσοι Φερόες"}
+         FR{"Γαλλία"}
 @@ -131,7 +131,7 @@ el{
          GU{"Γκουάμ"}
          GW{"Γουινέα Μπισάου"}
@@ -1112,7 +6061,12 @@
          HM{"Νήσοι Χερντ και Μακντόναλντ"}
          HN{"Ονδούρα"}
          HR{"Κροατία"}
-@@ -185,7 +185,7 @@ el{
+@@ -181,11 +181,11 @@ el{
+         MF{"Άγιος Μαρτίνος (Γαλλικό τμήμα)"}
+         MG{"Μαδαγασκάρη"}
+         MH{"Νήσοι Μάρσαλ"}
+-        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας"}
++        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}
          ML{"Μάλι"}
          MM{"Μιανμάρ/Βιρμανία"}
          MN{"Μογγολία"}
@@ -1140,22 +6094,19 @@
          UN{"ΟΗΕ"}
          US{"ΗΠΑ"}
      }
+@@ -305,8 +302,6 @@ el{
+         CD{"Κονγκό"}
+         CG{"Κονγκό (Δημοκρατία)"}
+         CZ{"Τσεχική Δημοκρατία"}
+-        FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}
+-        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}
+         TL{"Ανατολικό Τιμόρ"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/en.txt b/source/data/region/en.txt
-index aca36b0..50adeaf 100644
+index f0be08b2..88af57d7 100644
 --- a/source/data/region/en.txt
 +++ b/source/data/region/en.txt
-@@ -72,9 +72,9 @@ en{
-         BZ{"Belize"}
-         CA{"Canada"}
-         CC{"Cocos (Keeling) Islands"}
--        CD{"Congo - Kinshasa"}
-+        CD{"Congo (DRC)"}
-         CF{"Central African Republic"}
--        CG{"Congo - Brazzaville"}
-+        CG{"Congo (Republic)"}
-         CH{"Switzerland"}
-         CI{"Côte d’Ivoire"}
-         CK{"Cook Islands"}
 @@ -109,7 +109,7 @@ en{
          EZ{"Eurozone"}
          FI{"Finland"}
@@ -1208,10 +6159,28 @@
          UN{"UN"}
          US{"US"}
      }
+@@ -309,8 +306,6 @@ en{
+         CG{"Congo (Republic)"}
+         CI{"Ivory Coast"}
+         CZ{"Czech Republic"}
+-        FK{"Falkland Islands (Islas Malvinas)"}
+-        MK{"Macedonia (FYROM)"}
+         TL{"East Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/es.txt b/source/data/region/es.txt
-index d3f0ea6..64efb6b 100644
+index bb3f115e..e5ff679f 100644
 --- a/source/data/region/es.txt
 +++ b/source/data/region/es.txt
+@@ -108,7 +108,7 @@ es{
+         EU{"Unión Europea"}
+         FI{"Finlandia"}
+         FJ{"Fiyi"}
+-        FK{"Islas Malvinas"}
++        FK{"Islas Malvinas (Islas Falkland)"}
+         FM{"Micronesia"}
+         FO{"Islas Feroe"}
+         FR{"Francia"}
 @@ -131,7 +131,7 @@ es{
          GU{"Guam"}
          GW{"Guinea-Bisáu"}
@@ -1221,7 +6190,12 @@
          HM{"Islas Heard y McDonald"}
          HN{"Honduras"}
          HR{"Croacia"}
-@@ -185,7 +185,7 @@ es{
+@@ -181,11 +181,11 @@ es{
+         MF{"San Martín"}
+         MG{"Madagascar"}
+         MH{"Islas Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (ERYM)"}
          ML{"Mali"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -1249,10 +6223,28 @@
          US{"EE. UU."}
      }
      Countries%variant{
+@@ -304,8 +301,6 @@ es{
+         CG{"Congo (República)"}
+         CI{"Costa de Marfil"}
+         CZ{"República Checa"}
+-        FK{"Islas Malvinas (Islas Falkland)"}
+-        MK{"Macedonia (ERYM)"}
+         TL{"Timor Oriental"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/et.txt b/source/data/region/et.txt
-index 41fb2ff..2353bff 100644
+index 688cb15d..9587f744 100644
 --- a/source/data/region/et.txt
 +++ b/source/data/region/et.txt
+@@ -108,7 +108,7 @@ et{
+         EU{"Euroopa Liit"}
+         FI{"Soome"}
+         FJ{"Fidži"}
+-        FK{"Falklandi saared"}
++        FK{"Malviini saared"}
+         FM{"Mikroneesia"}
+         FO{"Fääri saared"}
+         FR{"Prantsusmaa"}
 @@ -131,7 +131,7 @@ et{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -1262,7 +6254,12 @@
          HM{"Heardi ja McDonaldi saared"}
          HN{"Honduras"}
          HR{"Horvaatia"}
-@@ -185,7 +185,7 @@ et{
+@@ -181,11 +181,11 @@ et{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalli Saared"}
+-        MK{"Makedoonia"}
++        MK{"Makedoonia Vabariik"}
          ML{"Mali"}
          MM{"Myanmar (Birma)"}
          MN{"Mongoolia"}
@@ -1290,10 +6287,28 @@
          UN{"ÜRO"}
          US{"USA"}
      }
+@@ -306,8 +303,6 @@ et{
+         CG{"Kongo-Brazzaville"}
+         CI{"Elevandiluurannik"}
+         CZ{"Tšehhi"}
+-        FK{"Malviini saared"}
+-        MK{"Makedoonia Vabariik"}
+         TL{"Timor-Leste"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/eu.txt b/source/data/region/eu.txt
-index 77900be..5ed36fc 100644
+index 016d2f6d..541a26e6 100644
 --- a/source/data/region/eu.txt
 +++ b/source/data/region/eu.txt
+@@ -108,7 +108,7 @@ eu{
+         EU{"Europar Batasuna"}
+         FI{"Finlandia"}
+         FJ{"Fiji"}
+-        FK{"Malvinak"}
++        FK{"Falkland uharteak (Malvina uharteak)"}
+         FM{"Mikronesia"}
+         FO{"Faroe uharteak"}
+         FR{"Frantzia"}
 @@ -131,7 +131,7 @@ eu{
          GU{"Guam"}
          GW{"Ginea-Bissau"}
@@ -1303,7 +6318,12 @@
          HM{"Heard eta McDonald uharteak"}
          HN{"Honduras"}
          HR{"Kroazia"}
-@@ -185,7 +185,7 @@ eu{
+@@ -181,11 +181,11 @@ eu{
+         MF{"San Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshall uharteak"}
+-        MK{"Mazedonia"}
++        MK{"Mazedonia (Mazedoniako Yugoslaviar Errepublika ohia)"}
          ML{"Mali"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -1321,7 +6341,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguai"}
-@@ -294,9 +294,6 @@ eu{
+@@ -294,17 +294,12 @@ eu{
      }
      Countries%short{
          GB{"EB"}
@@ -1331,10 +6351,27 @@
          US{"AEB"}
      }
      Countries%variant{
+         CD{"Kongo (KED)"}
+         CG{"Kongo (errepublika)"}
+         CZ{"Txekiar Errepublika"}
+-        FK{"Falkland uharteak (Malvina uharteak)"}
+-        MK{"Mazedonia (Mazedoniako Yugoslaviar Errepublika ohia)"}
+         TL{"Timor ekialdea"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/fa.txt b/source/data/region/fa.txt
-index cb1dc1c..7eb0669 100644
+index 9bac4d61..c353f9a6 100644
 --- a/source/data/region/fa.txt
 +++ b/source/data/region/fa.txt
+@@ -108,7 +108,7 @@ fa{
+         EU{"اتحادیهٔ اروپا"}
+         FI{"فنلاند"}
+         FJ{"فیجی"}
+-        FK{"جزایر فالکلند"}
++        FK{"جزایر فالکلند (ایسلاس مالویناس)"}
+         FM{"میکرونزی"}
+         FO{"جزایر فارو"}
+         FR{"فرانسه"}
 @@ -131,7 +131,7 @@ fa{
          GU{"گوام"}
          GW{"گینهٔ بیسائو"}
@@ -1344,7 +6381,12 @@
          HM{"جزیرهٔ هرد و جزایر مک‌دونالد"}
          HN{"هندوراس"}
          HR{"کرواسی"}
-@@ -185,7 +185,7 @@ fa{
+@@ -181,11 +181,11 @@ fa{
+         MF{"سنت مارتین"}
+         MG{"ماداگاسکار"}
+         MH{"جزایر مارشال"}
+-        MK{"مقدونیه"}
++        MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}
          ML{"مالی"}
          MM{"میانمار (برمه)"}
          MN{"مغولستان"}
@@ -1372,10 +6414,28 @@
          SA{"عربستان"}
          UN{"سازمان ملل"}
          US{"ایالات متحده"}
+@@ -305,8 +302,6 @@ fa{
+     Countries%variant{
+         CD{"کنگو (جمهوری دموکراتیک)"}
+         CG{"کنگو (جمهوری)"}
+-        FK{"جزایر فالکلند (ایسلاس مالویناس)"}
+-        MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}
+         TL{"تیمور شرقی"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/fi.txt b/source/data/region/fi.txt
-index faca6f3..ac30822 100644
+index 444b5a2b..01c945bd 100644
 --- a/source/data/region/fi.txt
 +++ b/source/data/region/fi.txt
+@@ -108,7 +108,7 @@ fi{
+         EU{"Euroopan unioni"}
+         FI{"Suomi"}
+         FJ{"Fidži"}
+-        FK{"Falklandinsaaret"}
++        FK{"Falklandinsaaret (Malvinassaaret)"}
+         FM{"Mikronesian liittovaltio"}
+         FO{"Färsaaret"}
+         FR{"Ranska"}
 @@ -131,7 +131,7 @@ fi{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -1385,7 +6445,12 @@
          HM{"Heard ja McDonaldinsaaret"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -185,7 +185,7 @@ fi{
+@@ -181,11 +181,11 @@ fi{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallinsaaret"}
+-        MK{"Makedonia"}
++        MK{"EJT Makedonia"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -1413,10 +6478,28 @@
          UN{"YK"}
          US{"USA"}
      }
+@@ -306,8 +303,6 @@ fi{
+         CG{"Kongo-Brazzaville"}
+         CI{"Côte d’Ivoire"}
+         CZ{"Tšekki"}
+-        FK{"Falklandinsaaret (Malvinassaaret)"}
+-        MK{"EJT Makedonia"}
+         TL{"Timor-Leste"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/fil.txt b/source/data/region/fil.txt
-index feaac1f..6f6b6c2 100644
+index 6204c39c..9211bbb1 100644
 --- a/source/data/region/fil.txt
 +++ b/source/data/region/fil.txt
+@@ -108,7 +108,7 @@ fil{
+         EU{"European Union"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Falkland Islands"}
++        FK{"Falkland Islands (Islas Malvinas)"}
+         FM{"Micronesia"}
+         FO{"Faroe Islands"}
+         FR{"France"}
 @@ -131,7 +131,7 @@ fil{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -1426,7 +6509,12 @@
          HM{"Heard Island and McDonald Islands"}
          HN{"Honduras"}
          HR{"Croatia"}
-@@ -185,7 +185,7 @@ fil{
+@@ -181,11 +181,11 @@ fil{
+         MF{"Saint Martin"}
+         MG{"Madagascar"}
+         MH{"Marshall Islands"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -1454,8 +6542,17 @@
          UN{"UN"}
          US{"U.S."}
      }
+@@ -306,8 +303,6 @@ fil{
+         CG{"Congo (Republika)"}
+         CI{"Ivory Coast"}
+         CZ{"Czech Republic"}
+-        FK{"Falkland Islands (Islas Malvinas)"}
+-        MK{"Macedonia (FYROM)"}
+         TL{"East Timor"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/fo.txt b/source/data/region/fo.txt
-index b5d5a1b..5600313 100644
+index fbef67e5..bd90946f 100644
 --- a/source/data/region/fo.txt
 +++ b/source/data/region/fo.txt
 @@ -131,7 +131,7 @@ fo{
@@ -1467,7 +6564,12 @@
          HM{"Heard og McDonaldoyggjar"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -185,7 +185,7 @@ fo{
+@@ -181,11 +181,11 @@ fo{
+         MF{"St-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalloyggjar"}
+-        MK{"Makedónia"}
++        MK{"Makedónia (FJM)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -1485,7 +6587,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguai"}
-@@ -294,9 +294,6 @@ fo{
+@@ -294,13 +294,7 @@ fo{
      }
      Countries%short{
          GB{"UK"}
@@ -1494,11 +6596,24 @@
 -        PS{"Palestina"}
          US{"USA"}
      }
-     Countries%variant{
+-    Countries%variant{
+-        MK{"Makedónia (FJM)"}
+-    }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/fr.txt b/source/data/region/fr.txt
-index d166d21..76d0703 100644
+index ce7ebafc..3a21d3a1 100644
 --- a/source/data/region/fr.txt
 +++ b/source/data/region/fr.txt
+@@ -108,7 +108,7 @@ fr{
+         EU{"Union européenne"}
+         FI{"Finlande"}
+         FJ{"Fidji"}
+-        FK{"Îles Malouines"}
++        FK{"Îles Falkland"}
+         FM{"États fédérés de Micronésie"}
+         FO{"Îles Féroé"}
+         FR{"France"}
 @@ -131,7 +131,7 @@ fr{
          GU{"Guam"}
          GW{"Guinée-Bissau"}
@@ -1508,7 +6623,12 @@
          HM{"Îles Heard et McDonald"}
          HN{"Honduras"}
          HR{"Croatie"}
-@@ -185,7 +185,7 @@ fr{
+@@ -181,11 +181,11 @@ fr{
+         MF{"Saint-Martin"}
+         MG{"Madagascar"}
+         MH{"Îles Marshall"}
+-        MK{"Macédoine"}
++        MK{"Macédoine (ARYM)"}
          ML{"Mali"}
          MM{"Myanmar (Birmanie)"}
          MN{"Mongolie"}
@@ -1536,10 +6656,49 @@
          UN{"NU"}
          US{"É.-U."}
      }
+@@ -305,8 +302,6 @@ fr{
+         CD{"Congo (RDC)"}
+         CG{"République du Congo"}
+         CZ{"République tchèque"}
+-        FK{"Îles Falkland"}
+-        MK{"Macédoine (ARYM)"}
+         TL{"Timor-Oriental"}
+     }
+     Version{"2.1.32.59"}
+diff --git a/source/data/region/fr_CA.txt b/source/data/region/fr_CA.txt
+index 3b6219ca..16042a55 100644
+--- a/source/data/region/fr_CA.txt
++++ b/source/data/region/fr_CA.txt
+@@ -11,7 +11,7 @@ fr_CA{
+         CC{"îles Cocos (Keeling)"}
+         CK{"îles Cook"}
+         CX{"île Christmas"}
+-        FK{"îles Malouines"}
++        FK{"îles Falkland (Malouines)"}
+         FM{"Micronésie"}
+         FO{"îles Féroé"}
+         HM{"îles Heard et McDonald"}
+@@ -35,7 +35,6 @@ fr_CA{
+     }
+     Countries%variant{
+         CI{"Côte d’Ivoire"}
+-        FK{"îles Falkland (Malouines)"}
+         TL{"Timor oriental"}
+     }
+     Version{"2.1.31.33"}
 diff --git a/source/data/region/fur.txt b/source/data/region/fur.txt
-index 8f577b3..6e24b57 100644
+index 1f856656..72e60374 100644
 --- a/source/data/region/fur.txt
 +++ b/source/data/region/fur.txt
+@@ -105,7 +105,7 @@ fur{
+         EU{"Union europeane"}
+         FI{"Finlandie"}
+         FJ{"Fizi"}
+-        FK{"Isulis Falkland"}
++        FK{"Isulis Falkland (Isulis Malvinas)"}
+         FM{"Micronesie"}
+         FO{"Isulis Faroe"}
+         FR{"France"}
 @@ -128,7 +128,7 @@ fur{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -1549,7 +6708,12 @@
          HM{"Isule Heard e Isulis McDonald"}
          HN{"Honduras"}
          HR{"Cravuazie"}
-@@ -182,7 +182,7 @@ fur{
+@@ -178,11 +178,11 @@ fur{
+         MF{"Sant Martin"}
+         MG{"Madagascar"}
+         MH{"Isulis Marshall"}
+-        MK{"Macedonie"}
++        MK{"Macedonie (FYROM)"}
          ML{"Mali"}
          MM{"Birmanie"}
          MN{"Mongolie"}
@@ -1558,7 +6722,7 @@
          MP{"Isulis Mariana dal Nord"}
          MQ{"Martiniche"}
          MR{"Mauritanie"}
-@@ -286,10 +286,6 @@ fur{
+@@ -286,15 +286,9 @@ fur{
          ZW{"Zimbabwe"}
          ZZ{"Regjon no cognossude o no valide"}
      }
@@ -1569,10 +6733,24 @@
      Countries%variant{
          CD{"Congo (RDC)"}
          CG{"Congo (Republiche)"}
+-        FK{"Isulis Falkland (Isulis Malvinas)"}
+-        MK{"Macedonie (FYROM)"}
+     }
+     Version{"2.1.31.33"}
+ }
 diff --git a/source/data/region/fy.txt b/source/data/region/fy.txt
-index 01b1161..b3c7893 100644
+index cb8b5009..78029941 100644
 --- a/source/data/region/fy.txt
 +++ b/source/data/region/fy.txt
+@@ -108,7 +108,7 @@ fy{
+         EU{"Europeeske Unie"}
+         FI{"Finlân"}
+         FJ{"Fiji"}
+-        FK{"Falklâneilannen"}
++        FK{"Falklâneilannen (Islas Malvinas)"}
+         FM{"Micronesië"}
+         FO{"Faeröer"}
+         FR{"Frankrijk"}
 @@ -131,7 +131,7 @@ fy{
          GU{"Guam"}
          GW{"Guinee-Bissau"}
@@ -1582,7 +6760,12 @@
          HM{"Heard- en McDonaldeilannen"}
          HN{"Honduras"}
          HR{"Kroatië"}
-@@ -185,7 +185,7 @@ fy{
+@@ -181,11 +181,11 @@ fy{
+         MF{"Saint-Martin"}
+         MG{"Madeiaskar"}
+         MH{"Marshalleilannen"}
+-        MK{"Macedonië"}
++        MK{"Macedonië (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Birma)"}
          MN{"Mongolië"}
@@ -1600,7 +6783,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -294,9 +294,6 @@ fy{
+@@ -294,16 +294,11 @@ fy{
      }
      Countries%short{
          GB{"VK"}
@@ -1610,10 +6793,26 @@
          US{"VS"}
      }
      Countries%variant{
+         CD{"Congo (DRC)"}
+         CG{"Congo (Republyk)"}
+-        FK{"Falklâneilannen (Islas Malvinas)"}
+-        MK{"Macedonië (FYROM)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/ga.txt b/source/data/region/ga.txt
-index 6721e45..a94b1b1 100644
+index 9b70c9dd..59a24c7b 100644
 --- a/source/data/region/ga.txt
 +++ b/source/data/region/ga.txt
+@@ -108,7 +108,7 @@ ga{
+         EU{"An tAontas Eorpach"}
+         FI{"An Fhionlainn"}
+         FJ{"Fidsí"}
+-        FK{"Oileáin Fháclainne"}
++        FK{"Oileáin Fháclainne (Islas Malvinas)"}
+         FM{"An Mhicrinéis"}
+         FO{"Oileáin Fharó"}
+         FR{"An Fhrainc"}
 @@ -131,7 +131,7 @@ ga{
          GU{"Guam"}
          GW{"Guine Bissau"}
@@ -1623,7 +6822,12 @@
          HM{"Oileán Heard agus Oileáin McDonald"}
          HN{"Hondúras"}
          HR{"An Chróit"}
-@@ -185,7 +185,7 @@ ga{
+@@ -181,11 +181,11 @@ ga{
+         MF{"Saint-Martin"}
+         MG{"Madagascar"}
+         MH{"Oileáin Marshall"}
+-        MK{"An Mhacadóin"}
++        MK{"An Mhacadóin (PIIM)"}
          ML{"Mailí"}
          MM{"Maenmar (Burma)"}
          MN{"An Mhongóil"}
@@ -1641,7 +6845,7 @@
          PT{"An Phortaingéil"}
          PW{"Palau"}
          PY{"Paragua"}
-@@ -295,9 +295,6 @@ ga{
+@@ -295,17 +295,12 @@ ga{
      }
      Countries%short{
          GB{"RA"}
@@ -1651,10 +6855,27 @@
          UN{"NA"}
          US{"SAM"}
      }
+     Countries%variant{
+         CD{"An Congó (PDC)"}
+         CG{"An Congó (Poblacht)"}
+-        FK{"Oileáin Fháclainne (Islas Malvinas)"}
+-        MK{"An Mhacadóin (PIIM)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/gd.txt b/source/data/region/gd.txt
-index 096bc34..f1c53f2 100644
+index 2213a247..f323222e 100644
 --- a/source/data/region/gd.txt
 +++ b/source/data/region/gd.txt
+@@ -108,7 +108,7 @@ gd{
+         EU{"An t-Aonadh Eòrpach"}
+         FI{"An Fhionnlann"}
+         FJ{"Fìdi"}
+-        FK{"Na h-Eileanan Fàclannach"}
++        FK{"Na h-Eileanan Fàclannach (Islas Malvinas)"}
+         FM{"Na Meanbh-eileanan"}
+         FO{"Na h-Eileanan Fàro"}
+         FR{"An Fhraing"}
 @@ -131,7 +131,7 @@ gd{
          GU{"Guam"}
          GW{"Gini-Bioso"}
@@ -1664,7 +6885,12 @@
          HM{"Eilean Heard is MhicDhòmhnaill"}
          HN{"Hondùras"}
          HR{"A’ Chròthais"}
-@@ -185,7 +185,7 @@ gd{
+@@ -181,11 +181,11 @@ gd{
+         MF{"Naomh Màrtainn"}
+         MG{"Madagasgar"}
+         MH{"Eileanan Mharshall"}
+-        MK{"A’ Mhasadon"}
++        MK{"A’ Mhasadon (FYROM)"}
          ML{"Màili"}
          MM{"Miànmar"}
          MN{"Dùthaich nam Mongol"}
@@ -1692,10 +6918,28 @@
          US{"SA"}
      }
      Countries%variant{
+@@ -304,8 +301,6 @@ gd{
+         CG{"A’ Chongo"}
+         CI{"An Costa Ìbhri"}
+         CZ{"Poblachd na Seice"}
+-        FK{"Na h-Eileanan Fàclannach (Islas Malvinas)"}
+-        MK{"A’ Mhasadon (FYROM)"}
+         TL{"Tìomor an Ear"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/gl.txt b/source/data/region/gl.txt
-index 3c02e65..6a74ebb 100644
+index e6606c87..902e1767 100644
 --- a/source/data/region/gl.txt
 +++ b/source/data/region/gl.txt
+@@ -108,7 +108,7 @@ gl{
+         EU{"Unión Europea"}
+         FI{"Finlandia"}
+         FJ{"Fidxi"}
+-        FK{"Illas Malvinas"}
++        FK{"Illas Malvinas (Falkland)"}
+         FM{"Micronesia"}
+         FO{"Illas Feroe"}
+         FR{"Francia"}
 @@ -131,7 +131,7 @@ gl{
          GU{"Guam"}
          GW{"Guinea-Bisau"}
@@ -1705,7 +6949,12 @@
          HM{"Illa Heard e Illas McDonald"}
          HN{"Honduras"}
          HR{"Croacia"}
-@@ -185,7 +185,7 @@ gl{
+@@ -181,11 +181,11 @@ gl{
+         MF{"Saint-Martin"}
+         MG{"Madagascar"}
+         MH{"Illas Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (ARIM)"}
          ML{"Malí"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -1733,8 +6982,17 @@
          UN{"ONU"}
          US{"EUA"}
      }
+@@ -305,8 +302,6 @@ gl{
+         CD{"Congo (RDC)"}
+         CG{"Congo (RC)"}
+         CZ{"República Checa"}
+-        FK{"Illas Malvinas (Falkland)"}
+-        MK{"Macedonia (ARIM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/gsw.txt b/source/data/region/gsw.txt
-index 6cd60c8..2d370bf 100644
+index b6c9c75d..e5ddf99d 100644
 --- a/source/data/region/gsw.txt
 +++ b/source/data/region/gsw.txt
 @@ -125,7 +125,7 @@ gsw{
@@ -1746,7 +7004,12 @@
          HM{"Höörd- und MäcDonald-Insle"}
          HN{"Honduras"}
          HR{"Kroaazie"}
-@@ -178,7 +178,7 @@ gsw{
+@@ -174,11 +174,11 @@ gsw{
+         MF{"St. Martin"}
+         MG{"Madagaschkar"}
+         MH{"Marshallinsle"}
+-        MK{"Mazedoonie"}
++        MK{"Mazedoonie (EJRM)"}
          ML{"Maali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolei"}
@@ -1755,7 +7018,7 @@
          MP{"Nördlichi Mariaane"}
          MQ{"Martinigg"}
          MR{"Mauretaanie"}
-@@ -281,10 +281,6 @@ gsw{
+@@ -281,12 +281,5 @@ gsw{
          ZW{"Simbabwe"}
          ZZ{"Unbekannti oder ungültigi Regioon"}
      }
@@ -1763,13 +7026,24 @@
 -        HK{"Hongkong"}
 -        MO{"Macao"}
 -    }
-     Countries%variant{
-         MK{"Mazedoonie (EJRM)"}
-     }
+-    Countries%variant{
+-        MK{"Mazedoonie (EJRM)"}
+-    }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/gu.txt b/source/data/region/gu.txt
-index 7c647b7..23f88e5 100644
+index cbe58b4e..3e819af9 100644
 --- a/source/data/region/gu.txt
 +++ b/source/data/region/gu.txt
+@@ -108,7 +108,7 @@ gu{
+         EU{"યુરોપિયન સંઘ"}
+         FI{"ફિનલેન્ડ"}
+         FJ{"ફીજી"}
+-        FK{"ફૉકલેન્ડ ટાપુઓ"}
++        FK{"ફૉકલેન્ડ ટાપુઓ (ઇસ્લાસ માલવિનસ)"}
+         FM{"માઇક્રોનેશિયા"}
+         FO{"ફૅરો ટાપુઓ"}
+         FR{"ફ્રાંસ"}
 @@ -131,7 +131,7 @@ gu{
          GU{"ગ્વામ"}
          GW{"ગિની-બિસાઉ"}
@@ -1779,7 +7053,12 @@
          HM{"હર્ડ અને મેકડોનાલ્ડ આઇલેન્ડ્સ"}
          HN{"હોન્ડુરસ"}
          HR{"ક્રોએશિયા"}
-@@ -185,7 +185,7 @@ gu{
+@@ -181,11 +181,11 @@ gu{
+         MF{"સેન્ટ માર્ટિન"}
+         MG{"મેડાગાસ્કર"}
+         MH{"માર્શલ આઇલેન્ડ્સ"}
+-        MK{"મેસેડોનિયા"}
++        MK{"મેસેડોનિયા (FYROM)"}
          ML{"માલી"}
          MM{"મ્યાંમાર (બર્મા)"}
          MN{"મંગોલિયા"}
@@ -1807,10 +7086,28 @@
          UN{"યૂએન"}
          US{"યુ.એસ."}
      }
+@@ -306,8 +303,6 @@ gu{
+         CG{"કોંગો (પ્રજાસત્તાક)"}
+         CI{"આઇવરી કોસ્ટ"}
+         CZ{"ચેક રીપબ્લિક"}
+-        FK{"ફૉકલેન્ડ ટાપુઓ (ઇસ્લાસ માલવિનસ)"}
+-        MK{"મેસેડોનિયા (FYROM)"}
+         TL{"પૂર્વ તિમોર"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/he.txt b/source/data/region/he.txt
-index 55f5bd5..b012a96 100644
+index a407dc74..31e5a072 100644
 --- a/source/data/region/he.txt
 +++ b/source/data/region/he.txt
+@@ -108,7 +108,7 @@ he{
+         EU{"האיחוד האירופי"}
+         FI{"פינלנד"}
+         FJ{"פיג׳י"}
+-        FK{"איי פוקלנד"}
++        FK{"איי פוקלנד (איי מלווינס)"}
+         FM{"מיקרונזיה"}
+         FO{"איי פארו"}
+         FR{"צרפת"}
 @@ -131,7 +131,7 @@ he{
          GU{"גואם"}
          GW{"גינאה ביסאו"}
@@ -1820,7 +7117,12 @@
          HM{"איי הרד ומקדונלד"}
          HN{"הונדורס"}
          HR{"קרואטיה"}
-@@ -185,7 +185,7 @@ he{
+@@ -181,11 +181,11 @@ he{
+         MF{"סן מרטן"}
+         MG{"מדגסקר"}
+         MH{"איי מרשל"}
+-        MK{"מקדוניה"}
++        MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר מקדוניה)"}
          ML{"מאלי"}
          MM{"מיאנמר (בורמה)"}
          MN{"מונגוליה"}
@@ -1838,7 +7140,7 @@
          PT{"פורטוגל"}
          PW{"פלאו"}
          PY{"פרגוואי"}
-@@ -295,9 +295,6 @@ he{
+@@ -295,17 +295,12 @@ he{
      }
      Countries%short{
          GB{"בריטניה"}
@@ -1848,10 +7150,27 @@
          US{"ארה״ב"}
      }
      Countries%variant{
+         CD{"קונגו (הרפובליקה הדמוקרטית של קונגו)"}
+         CG{"קונגו (רפובליקה)"}
+         CZ{"הרפובליקה הצ׳כית"}
+-        FK{"איי פוקלנד (איי מלווינס)"}
+-        MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר מקדוניה)"}
+         TL{"מזרח טימור"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/hi.txt b/source/data/region/hi.txt
-index 9cffd11..34ff7a5 100644
+index 591f455c..e406a663 100644
 --- a/source/data/region/hi.txt
 +++ b/source/data/region/hi.txt
+@@ -108,7 +108,7 @@ hi{
+         EU{"यूरोपीय संघ"}
+         FI{"फ़िनलैंड"}
+         FJ{"फ़िजी"}
+-        FK{"फ़ॉकलैंड द्वीपसमूह"}
++        FK{"फ़ॉकलैंड द्वीपसमूह (इज़्लास माल्विनास)"}
+         FM{"माइक्रोनेशिया"}
+         FO{"फ़ेरो द्वीपसमूह"}
+         FR{"फ़्रांस"}
 @@ -131,7 +131,7 @@ hi{
          GU{"गुआम"}
          GW{"गिनी-बिसाउ"}
@@ -1861,7 +7180,12 @@
          HM{"हर्ड द्वीप और मैकडोनॉल्ड द्वीपसमूह"}
          HN{"होंडूरास"}
          HR{"क्रोएशिया"}
-@@ -185,7 +185,7 @@ hi{
+@@ -181,11 +181,11 @@ hi{
+         MF{"सेंट मार्टिन"}
+         MG{"मेडागास्कर"}
+         MH{"मार्शल द्वीपसमूह"}
+-        MK{"मैसिडोनिया"}
++        MK{"मैसिडोनिया (FYROM)"}
          ML{"माली"}
          MM{"म्यांमार (बर्मा)"}
          MN{"मंगोलिया"}
@@ -1889,10 +7213,28 @@
          UN{"संयुक्त राष्ट्र"}
          US{"अमेरिका"}
      }
+@@ -306,8 +303,6 @@ hi{
+         CG{"कांगो (गणराज्य)"}
+         CI{"आइवरी कोस्ट"}
+         CZ{"चेक गणराज्य"}
+-        FK{"फ़ॉकलैंड द्वीपसमूह (इज़्लास माल्विनास)"}
+-        MK{"मैसिडोनिया (FYROM)"}
+         TL{"पूर्वी तिमोर"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/hr.txt b/source/data/region/hr.txt
-index 2a0e74b..46e3b29 100644
+index fbe16204..edf22be7 100644
 --- a/source/data/region/hr.txt
 +++ b/source/data/region/hr.txt
+@@ -108,7 +108,7 @@ hr{
+         EU{"Europska unija"}
+         FI{"Finska"}
+         FJ{"Fidži"}
+-        FK{"Falklandski otoci"}
++        FK{"Falklandski otoci (Malvini)"}
+         FM{"Mikronezija"}
+         FO{"Farski otoci"}
+         FR{"Francuska"}
 @@ -131,7 +131,7 @@ hr{
          GU{"Guam"}
          GW{"Gvineja Bisau"}
@@ -1902,7 +7244,12 @@
          HM{"Otoci Heard i McDonald"}
          HN{"Honduras"}
          HR{"Hrvatska"}
-@@ -185,7 +185,7 @@ hr{
+@@ -181,11 +181,11 @@ hr{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Maršalovi Otoci"}
+-        MK{"Makedonija"}
++        MK{"Makedonija (BJRM)"}
          ML{"Mali"}
          MM{"Mjanmar (Burma)"}
          MN{"Mongolija"}
@@ -1930,10 +7277,28 @@
          UN{"UN"}
          US{"SAD"}
      }
+@@ -306,8 +303,6 @@ hr{
+         CG{"Kongo (RK)"}
+         CI{"Bjelokosna Obala"}
+         CZ{"Češka Republika"}
+-        FK{"Falklandski otoci (Malvini)"}
+-        MK{"Makedonija (BJRM)"}
+         TL{"Istočni Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/hsb.txt b/source/data/region/hsb.txt
-index 5b57933..9384186 100644
+index 7f52d79d..3ac4f8f3 100644
 --- a/source/data/region/hsb.txt
 +++ b/source/data/region/hsb.txt
+@@ -108,7 +108,7 @@ hsb{
+         EU{"Europska unija"}
+         FI{"Finska"}
+         FJ{"Fidźi"}
+-        FK{"Falklandske kupy"}
++        FK{"Falklandske kupy (Malwiny)"}
+         FM{"Mikroneziska"}
+         FO{"Färöske kupy"}
+         FR{"Francoska"}
 @@ -131,7 +131,7 @@ hsb{
          GU{"Guam"}
          GW{"Gineja-Bissau"}
@@ -1943,7 +7308,12 @@
          HM{"Heardowa kupa a McDonaldowe kupy"}
          HN{"Honduras"}
          HR{"Chorwatska"}
-@@ -185,7 +185,7 @@ hsb{
+@@ -181,11 +181,11 @@ hsb{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallowe kupy"}
+-        MK{"Makedonska"}
++        MK{"Makedonska (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar"}
          MN{"Mongolska"}
@@ -1961,7 +7331,7 @@
          PT{"Portugalska"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -294,9 +294,6 @@ hsb{
+@@ -294,17 +294,12 @@ hsb{
      }
      Countries%short{
          GB{"UK"}
@@ -1971,10 +7341,27 @@
          US{"USA"}
      }
      Countries%variant{
+         CD{"Kongo (Demokratiska republika)"}
+         CG{"Kongo (Republika)"}
+         CI{"Słonowinowy pobrjóh"}
+-        FK{"Falklandske kupy (Malwiny)"}
+-        MK{"Makedonska (FYROM)"}
+         TL{"Wuchodny Timor"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/hu.txt b/source/data/region/hu.txt
-index 59a800d..84f20a9 100644
+index 6e42a008..fabb07bd 100644
 --- a/source/data/region/hu.txt
 +++ b/source/data/region/hu.txt
+@@ -108,7 +108,7 @@ hu{
+         EU{"Európai Unió"}
+         FI{"Finnország"}
+         FJ{"Fidzsi"}
+-        FK{"Falkland-szigetek"}
++        FK{"Falkland-szigetek (Malvin-szigetek)"}
+         FM{"Mikronézia"}
+         FO{"Feröer-szigetek"}
+         FR{"Franciaország"}
 @@ -131,7 +131,7 @@ hu{
          GU{"Guam"}
          GW{"Bissau-Guinea"}
@@ -1984,7 +7371,12 @@
          HM{"Heard-sziget és McDonald-szigetek"}
          HN{"Honduras"}
          HR{"Horvátország"}
-@@ -185,7 +185,7 @@ hu{
+@@ -181,11 +181,11 @@ hu{
+         MF{"Saint Martin"}
+         MG{"Madagaszkár"}
+         MH{"Marshall-szigetek"}
+-        MK{"Macedónia"}
++        MK{"Macedónia (MVJK)"}
          ML{"Mali"}
          MM{"Mianmar (Burma)"}
          MN{"Mongólia"}
@@ -2002,7 +7394,7 @@
          PT{"Portugália"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -295,9 +295,6 @@ hu{
+@@ -295,17 +295,12 @@ hu{
      }
      Countries%short{
          GB{"UK"}
@@ -2012,10 +7404,27 @@
          UN{"ENSZ"}
          US{"USA"}
      }
+     Countries%variant{
+         CD{"Kongó (KDK)"}
+         CG{"Kongó (Köztársaság)"}
+-        FK{"Falkland-szigetek (Malvin-szigetek)"}
+-        MK{"Macedónia (MVJK)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/hy.txt b/source/data/region/hy.txt
-index 08366fd..8548585 100644
+index a180280d..eada93a7 100644
 --- a/source/data/region/hy.txt
 +++ b/source/data/region/hy.txt
+@@ -108,7 +108,7 @@ hy{
+         EU{"Եվրոպական Միություն"}
+         FI{"Ֆինլանդիա"}
+         FJ{"Ֆիջի"}
+-        FK{"Ֆոլքլենդյան կղզիներ"}
++        FK{"Ֆոլքլենդյան (Մալվինյան) կղզիներ"}
+         FM{"Միկրոնեզիա"}
+         FO{"Ֆարերյան կղզիներ"}
+         FR{"Ֆրանսիա"}
 @@ -131,7 +131,7 @@ hy{
          GU{"Գուամ"}
          GW{"Գվինեա-Բիսսաու"}
@@ -2025,7 +7434,12 @@
          HM{"Հերդ կղզի և ՄակԴոնալդի կղզիներ"}
          HN{"Հոնդուրաս"}
          HR{"Խորվաթիա"}
-@@ -185,7 +185,7 @@ hy{
+@@ -181,11 +181,11 @@ hy{
+         MF{"Սեն Մարտեն"}
+         MG{"Մադագասկար"}
+         MH{"Մարշալյան կղզիներ"}
+-        MK{"Մակեդոնիա"}
++        MK{"Մակեդոնիա (ՄՆՀՀ)"}
          ML{"Մալի"}
          MM{"Մյանմա (Բիրմա)"}
          MN{"Մոնղոլիա"}
@@ -2053,10 +7467,28 @@
          UN{"ՄԱԿ"}
          US{"ԱՄՆ"}
      }
+@@ -305,8 +302,6 @@ hy{
+         CD{"Կոնգո (ԿԺՀ)"}
+         CG{"Կոնգո (Կոնգոյի Հանրապետություն)"}
+         CI{"Փղոսկրի Ափ"}
+-        FK{"Ֆոլքլենդյան (Մալվինյան) կղզիներ"}
+-        MK{"Մակեդոնիա (ՄՆՀՀ)"}
+         TL{"Արևելյան Թիմոր"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/id.txt b/source/data/region/id.txt
-index bb7a140..762e35a 100644
+index 8318df54..e4ac0210 100644
 --- a/source/data/region/id.txt
 +++ b/source/data/region/id.txt
+@@ -108,7 +108,7 @@ id{
+         EU{"Uni Eropa"}
+         FI{"Finlandia"}
+         FJ{"Fiji"}
+-        FK{"Kepulauan Malvinas"}
++        FK{"Kepulauan Malvinas (Falkland)"}
+         FM{"Mikronesia"}
+         FO{"Kepulauan Faroe"}
+         FR{"Prancis"}
 @@ -131,7 +131,7 @@ id{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -2066,7 +7498,12 @@
          HM{"Pulau Heard dan Kepulauan McDonald"}
          HN{"Honduras"}
          HR{"Kroasia"}
-@@ -185,7 +185,7 @@ id{
+@@ -181,11 +181,11 @@ id{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Kepulauan Marshall"}
+-        MK{"Makedonia"}
++        MK{"Makedonia (BRY)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -2094,10 +7531,28 @@
          UN{"PBB"}
          US{"A.S."}
      }
+@@ -306,8 +303,6 @@ id{
+         CG{"Kongo (Republik)"}
+         CI{"Ivory Coast"}
+         CZ{"Republik Cheska"}
+-        FK{"Kepulauan Malvinas (Falkland)"}
+-        MK{"Makedonia (BRY)"}
+         TL{"Timor Timur"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/is.txt b/source/data/region/is.txt
-index 3c2593d..dfd4769 100644
+index bfcadf21..8bc5a615 100644
 --- a/source/data/region/is.txt
 +++ b/source/data/region/is.txt
+@@ -108,7 +108,7 @@ is{
+         EU{"Evrópusambandið"}
+         FI{"Finnland"}
+         FJ{"Fídjíeyjar"}
+-        FK{"Falklandseyjar"}
++        FK{"Falklandseyjar (Malvinas)"}
+         FM{"Míkrónesía"}
+         FO{"Færeyjar"}
+         FR{"Frakkland"}
 @@ -131,7 +131,7 @@ is{
          GU{"Gvam"}
          GW{"Gínea-Bissá"}
@@ -2107,7 +7562,12 @@
          HM{"Heard og McDonaldseyjar"}
          HN{"Hondúras"}
          HR{"Króatía"}
-@@ -185,7 +185,7 @@ is{
+@@ -181,11 +181,11 @@ is{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalleyjar"}
+-        MK{"Makedónía"}
++        MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}
          ML{"Malí"}
          MM{"Mjanmar (Búrma)"}
          MN{"Mongólía"}
@@ -2125,7 +7585,7 @@
          PT{"Portúgal"}
          PW{"Palá"}
          PY{"Paragvæ"}
-@@ -295,9 +295,6 @@ is{
+@@ -295,17 +295,12 @@ is{
      }
      Countries%short{
          GB{"Bretland"}
@@ -2135,10 +7595,27 @@
          UN{"Sameinuðu þjóðirnar"}
          US{"BNA"}
      }
+     Countries%variant{
+         CD{"Kongó (Lýðstjórnarlýðveldið)"}
+         CG{"Kongó (Lýðveldið)"}
+-        FK{"Falklandseyjar (Malvinas)"}
+-        MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}
+         TL{"Austur-Tímor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/it.txt b/source/data/region/it.txt
-index 92c7ecc..95800b0 100644
+index cd78e86a..4dacc764 100644
 --- a/source/data/region/it.txt
 +++ b/source/data/region/it.txt
+@@ -108,7 +108,7 @@ it{
+         EU{"Unione Europea"}
+         FI{"Finlandia"}
+         FJ{"Figi"}
+-        FK{"Isole Falkland"}
++        FK{"Isole Falkland (Isole Malvine)"}
+         FM{"Micronesia"}
+         FO{"Isole Fær Øer"}
+         FR{"Francia"}
 @@ -131,7 +131,7 @@ it{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -2148,7 +7625,12 @@
          HM{"Isole Heard e McDonald"}
          HN{"Honduras"}
          HR{"Croazia"}
-@@ -185,7 +185,7 @@ it{
+@@ -181,11 +181,11 @@ it{
+         MF{"Saint Martin"}
+         MG{"Madagascar"}
+         MH{"Isole Marshall"}
+-        MK{"Repubblica di Macedonia"}
++        MK{"Ex Repubblica Jugoslava di Macedonia"}
          ML{"Mali"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -2176,10 +7658,28 @@
          UN{"nazioni unite"}
          US{"USA"}
      }
+@@ -306,8 +303,6 @@ it{
+         CG{"Congo (Repubblica)"}
+         CI{"Côte d’Ivoire"}
+         CZ{"Repubblica Ceca"}
+-        FK{"Isole Falkland (Isole Malvine)"}
+-        MK{"Ex Repubblica Jugoslava di Macedonia"}
+         TL{"Timor Leste"}
+     }
+     Version{"2.1.32.60"}
 diff --git a/source/data/region/ja.txt b/source/data/region/ja.txt
-index 6879617..ca7ad98 100644
+index cc3e0b9c..3702653a 100644
 --- a/source/data/region/ja.txt
 +++ b/source/data/region/ja.txt
+@@ -108,7 +108,7 @@ ja{
+         EU{"欧州連合"}
+         FI{"フィンランド"}
+         FJ{"フィジー"}
+-        FK{"フォークランド諸島"}
++        FK{"フォークランド諸島 (マルビーナス諸島)"}
+         FM{"ミクロネシア連邦"}
+         FO{"フェロー諸島"}
+         FR{"フランス"}
 @@ -131,7 +131,7 @@ ja{
          GU{"グアム"}
          GW{"ギニアビサウ"}
@@ -2189,7 +7689,12 @@
          HM{"ハード島・マクドナルド諸島"}
          HN{"ホンジュラス"}
          HR{"クロアチア"}
-@@ -185,7 +185,7 @@ ja{
+@@ -181,11 +181,11 @@ ja{
+         MF{"サン・マルタン"}
+         MG{"マダガスカル"}
+         MH{"マーシャル諸島"}
+-        MK{"マケドニア"}
++        MK{"マケドニア(旧ユーゴスラビア共和国)"}
          ML{"マリ"}
          MM{"ミャンマー"}
          MN{"モンゴル"}
@@ -2217,10 +7722,28 @@
          UN{"こくれん"}
          US{"アメリカ"}
      }
+@@ -306,8 +303,6 @@ ja{
+         CG{"コンゴ共和国"}
+         CI{"象牙海岸"}
+         CZ{"チェコ共和国"}
+-        FK{"フォークランド諸島 (マルビーナス諸島)"}
+-        MK{"マケドニア(旧ユーゴスラビア共和国)"}
+         TL{"東チモール"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/ka.txt b/source/data/region/ka.txt
-index 5564e03..f2cbf85 100644
+index f60bb8db..5e702265 100644
 --- a/source/data/region/ka.txt
 +++ b/source/data/region/ka.txt
+@@ -108,7 +108,7 @@ ka{
+         EU{"ევროკავშირი"}
+         FI{"ფინეთი"}
+         FJ{"ფიჯი"}
+-        FK{"ფოლკლენდის კუნძულები"}
++        FK{"ფოლკლენდის კუნძულები (მალვინის კუნძულები)"}
+         FM{"მიკრონეზია"}
+         FO{"ფარერის კუნძულები"}
+         FR{"საფრანგეთი"}
 @@ -131,7 +131,7 @@ ka{
          GU{"გუამი"}
          GW{"გვინეა-ბისაუ"}
@@ -2230,7 +7753,12 @@
          HM{"ჰერდი და მაკდონალდის კუნძულები"}
          HN{"ჰონდურასი"}
          HR{"ხორვატია"}
-@@ -185,7 +185,7 @@ ka{
+@@ -181,11 +181,11 @@ ka{
+         MF{"სენ-მარტენი"}
+         MG{"მადაგასკარი"}
+         MH{"მარშალის კუნძულები"}
+-        MK{"მაკედონია"}
++        MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}
          ML{"მალი"}
          MM{"მიანმარი (ბირმა)"}
          MN{"მონღოლეთი"}
@@ -2258,10 +7786,28 @@
          UN{"გაერო"}
          US{"აშშ"}
      }
+@@ -306,8 +303,6 @@ ka{
+         CG{"კონგო (რესპუბლიკა)"}
+         CI{"სპილოს ძვლის სანაპირო"}
+         CZ{"ჩეხეთის რესპუბლიკა"}
+-        FK{"ფოლკლენდის კუნძულები (მალვინის კუნძულები)"}
+-        MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/kea.txt b/source/data/region/kea.txt
-index 1b6922e..e31a3ce 100644
+index 04465c66..db18866a 100644
 --- a/source/data/region/kea.txt
 +++ b/source/data/region/kea.txt
+@@ -108,7 +108,7 @@ kea{
+         EU{"Uniãu Europeia"}
+         FI{"Finlándia"}
+         FJ{"Fidji"}
+-        FK{"Ilhas Malvinas"}
++        FK{"Ilhas Falkland (Ilhas Malvinas)"}
+         FM{"Mikronézia"}
+         FO{"Ilhas Faroe"}
+         FR{"Fransa"}
 @@ -131,7 +131,7 @@ kea{
          GU{"Guam"}
          GW{"Gine-Bisau"}
@@ -2271,7 +7817,12 @@
          HM{"Ilhas Heard i McDonald"}
          HN{"Onduras"}
          HR{"Kroásia"}
-@@ -185,7 +185,7 @@ kea{
+@@ -181,11 +181,11 @@ kea{
+         MF{"Sãu Martinhu di Fransa"}
+         MG{"Madagaskar"}
+         MH{"Ilhas Marxal"}
+-        MK{"Masidónia"}
++        MK{"Masidónia (FYROM)"}
          ML{"Mali"}
          MM{"Mianmar (Birmánia)"}
          MN{"Mongólia"}
@@ -2289,19 +7840,28 @@
          US{"S.U."}
      }
      Countries%variant{
+@@ -303,8 +301,6 @@ kea{
+         CG{"Repúblika di Kongu"}
+         CI{"Kosta di Marfin (Côte d’Ivoire)"}
+         CZ{"Repúblika Txeka"}
+-        FK{"Ilhas Falkland (Ilhas Malvinas)"}
+-        MK{"Masidónia (FYROM)"}
+     }
+     Version{"2.1.31.74"}
+ }
 diff --git a/source/data/region/kk.txt b/source/data/region/kk.txt
-index cffc578..987413d 100644
+index a586234c..33437d23 100644
 --- a/source/data/region/kk.txt
 +++ b/source/data/region/kk.txt
-@@ -72,7 +72,7 @@ kk{
-         BZ{"Белиз"}
-         CA{"Канада"}
-         CC{"Кокос (Килинг) аралдары"}
--        CD{"Конго"}
-+        CD{"Конго Демократиялық Республикасы"}
-         CF{"Орталық Африка Республикасы"}
-         CG{"Конго-Браззавиль Республикасы"}
-         CH{"Швейцария"}
+@@ -108,7 +108,7 @@ kk{
+         EU{"Еуропалық Одақ"}
+         FI{"Финляндия"}
+         FJ{"Фиджи"}
+-        FK{"Фолкленд аралдары"}
++        FK{"Фолкленд аралдары (Мальвин аралдары)"}
+         FM{"Микронезия"}
+         FO{"Фарер аралдары"}
+         FR{"Франция"}
 @@ -131,7 +131,7 @@ kk{
          GU{"Гуам"}
          GW{"Гвинея-Бисау"}
@@ -2311,7 +7871,12 @@
          HM{"Херд аралы және Макдональд аралдары"}
          HN{"Гондурас"}
          HR{"Хорватия"}
-@@ -185,7 +185,7 @@ kk{
+@@ -181,11 +181,11 @@ kk{
+         MF{"Сен-Мартен"}
+         MG{"Мадагаскар"}
+         MH{"Маршалл аралдары"}
+-        MK{"Македония"}
++        MK{"Македония Республикасы"}
          ML{"Мали"}
          MM{"Мьянма (Бирма)"}
          MN{"Моңғолия"}
@@ -2339,10 +7904,37 @@
          UN{"БҰҰ"}
          US{"АҚШ"}
      }
+@@ -306,8 +303,6 @@ kk{
+         CG{"Конго Республикасы"}
+         CI{"Піл Сүйегі Жағалауы"}
+         CZ{"Чех Республикасы"}
+-        FK{"Фолкленд аралдары (Мальвин аралдары)"}
+-        MK{"Македония Республикасы"}
+         TL{"Шығыс Тимор"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/km.txt b/source/data/region/km.txt
-index 069023a..81c72cf 100644
+index bc8e0aa3..d197cd2a 100644
 --- a/source/data/region/km.txt
 +++ b/source/data/region/km.txt
+@@ -108,7 +108,7 @@ km{
+         EU{"សហភាព​អឺរ៉ុប"}
+         FI{"ហ្វាំងឡង់"}
+         FJ{"ហ្វីជី"}
+-        FK{"កោះ​ហ្វក់ឡែន"}
++        FK{"កោះ​ហ្វក់ឡែន (Islas Malvinas)"}
+         FM{"មីក្រូណេស៊ី"}
+         FO{"កោះ​ហ្វារ៉ូ"}
+         FR{"បារាំង"}
+@@ -181,7 +181,7 @@ km{
+         MF{"សង់​ម៉ាទីន"}
+         MG{"ម៉ាដាហ្គាស្កា"}
+         MH{"កោះ​ម៉ាស់សល"}
+-        MK{"ម៉ាសេដូនា"}
++        MK{"ម៉ាសេដូនា (FYROM)"}
+         ML{"ម៉ាលី"}
+         MM{"មីយ៉ាន់ម៉ា (ភូមា)"}
+         MN{"ម៉ុងហ្គោលី"}
 @@ -220,7 +220,7 @@ km{
          PM{"សង់ព្យែរ និង​មីគីឡុង"}
          PN{"កោះ​ភីតកាន"}
@@ -2362,10 +7954,28 @@
          UN{"អង្គការ"}
          US{"ស.រ.អ"}
      }
+@@ -306,8 +303,6 @@ km{
+         CG{"កុងហ្គោ (សធារណៈរដ្ឋ)"}
+         CI{"កូតឌីវ័រ"}
+         CZ{"សាធារណរដ្ឋឆេក"}
+-        FK{"កោះ​ហ្វក់ឡែន (Islas Malvinas)"}
+-        MK{"ម៉ាសេដូនា (FYROM)"}
+         TL{"ទីម័រ​ខាង​កើត"}
+     }
+     Version{"2.1.31.74"}
 diff --git a/source/data/region/kn.txt b/source/data/region/kn.txt
-index 4e6a85c..827a508 100644
+index 4c756169..162d21c6 100644
 --- a/source/data/region/kn.txt
 +++ b/source/data/region/kn.txt
+@@ -108,7 +108,7 @@ kn{
+         EU{"ಯುರೋಪಿಯನ್ ಒಕ್ಕೂಟ"}
+         FI{"ಫಿನ್‌ಲ್ಯಾಂಡ್"}
+         FJ{"ಫಿಜಿ"}
+-        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು"}
++        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}
+         FM{"ಮೈಕ್ರೋನೇಶಿಯಾ"}
+         FO{"ಫರೋ ದ್ವೀಪಗಳು"}
+         FR{"ಫ್ರಾನ್ಸ್"}
 @@ -131,7 +131,7 @@ kn{
          GU{"ಗುಯಾಮ್"}
          GW{"ಗಿನಿ-ಬಿಸ್ಸಾವ್"}
@@ -2375,7 +7985,12 @@
          HM{"ಹರ್ಡ್ ಮತ್ತು ಮ್ಯಾಕ್‌ಡೋನಾಲ್ಡ್ ದ್ವೀಪಗಳು"}
          HN{"ಹೊಂಡುರಾಸ್"}
          HR{"ಕ್ರೊಯೇಶಿಯಾ"}
-@@ -185,7 +185,7 @@ kn{
+@@ -181,11 +181,11 @@ kn{
+         MF{"ಸೇಂಟ್ ಮಾರ್ಟಿನ್"}
+         MG{"ಮಡಗಾಸ್ಕರ್"}
+         MH{"ಮಾರ್ಷಲ್ ದ್ವೀಪಗಳು"}
+-        MK{"ಮ್ಯಾಸಿಡೋನಿಯಾ"}
++        MK{"ಮ್ಯಾಸಿಡೋನಿಯ (FYROM)"}
          ML{"ಮಾಲಿ"}
          MM{"ಮಯನ್ಮಾರ್ (ಬರ್ಮಾ)"}
          MN{"ಮೊಂಗೋಲಿಯಾ"}
@@ -2403,10 +8018,28 @@
          UN{"ಯುಎನ್"}
          US{"ಯು.ಎಸ್"}
      }
+@@ -306,8 +303,6 @@ kn{
+         CG{"ಕಾಂಗೋ (ಗಣರಾಜ್ಯ)"}
+         CI{"ಐವರಿ ಕೋಸ್ಟ್"}
+         CZ{"ಝೆಕ್ ರಿಪಬ್ಲಿಕ್"}
+-        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}
+-        MK{"ಮ್ಯಾಸಿಡೋನಿಯ (FYROM)"}
+         TL{"ಪೂರ್ವ ಟಿಮೋರ್"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/ko.txt b/source/data/region/ko.txt
-index 6004f89..08e325a 100644
+index 34f2c381..70a07d00 100644
 --- a/source/data/region/ko.txt
 +++ b/source/data/region/ko.txt
+@@ -108,7 +108,7 @@ ko{
+         EU{"유럽 연합"}
+         FI{"핀란드"}
+         FJ{"피지"}
+-        FK{"포클랜드 제도"}
++        FK{"포클랜드 제도(말비나스 군도)"}
+         FM{"미크로네시아"}
+         FO{"페로 제도"}
+         FR{"프랑스"}
 @@ -131,7 +131,7 @@ ko{
          GU{"괌"}
          GW{"기니비사우"}
@@ -2416,7 +8049,12 @@
          HM{"허드 맥도널드 제도"}
          HN{"온두라스"}
          HR{"크로아티아"}
-@@ -185,7 +185,7 @@ ko{
+@@ -181,11 +181,11 @@ ko{
+         MF{"생마르탱"}
+         MG{"마다가스카르"}
+         MH{"마셜 제도"}
+-        MK{"마케도니아"}
++        MK{"마케도니아(FYROM)"}
          ML{"말리"}
          MM{"미얀마"}
          MN{"몽골"}
@@ -2444,11 +8082,38 @@
          UN{"유엔"}
          US{"미국"}
      }
+@@ -305,8 +302,6 @@ ko{
+         CD{"콩고민주공화국"}
+         CG{"콩고 공화국"}
+         CI{"아이보리 코스트"}
+-        FK{"포클랜드 제도(말비나스 군도)"}
+-        MK{"마케도니아(FYROM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/ksh.txt b/source/data/region/ksh.txt
-index b29838f..9fbaeb3 100644
+index d4453bdf..49a12830 100644
 --- a/source/data/region/ksh.txt
 +++ b/source/data/region/ksh.txt
-@@ -294,8 +294,6 @@ ksh{
+@@ -108,7 +108,7 @@ ksh{
+         EU{"de Europähjesche Unijon"}
+         FI{"Finnland"}
+         FJ{"de Fidschi-Endelle"}
+-        FK{"de Falkland-Enselle"}
++        FK{"de malleviinesche Enselle"}
+         FM{"Mikroneesije"}
+         FO{"de Färrör-Enselle"}
+         FR{"Frankrisch"}
+@@ -181,7 +181,7 @@ ksh{
+         MF{"de Zint-Määtes-Ensel"}
+         MG{"Maddajaska"}
+         MH{"de Machschall-Enselle"}
+-        MK{"Mazedoonije"}
++        MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}
+         ML{"Maali"}
+         MM{"Birma"}
+         MN{"Mongjolei"}
+@@ -294,16 +294,12 @@ ksh{
      }
      Countries%short{
          GB{"Jruußbrettannije"}
@@ -2457,10 +8122,27 @@
          US{"USA"}
      }
      Countries%variant{
+         CD{"de Demmokraatesche Republik Konggo"}
+         CG{"de Republik Konggo"}
+         CI{"de Älfebeijnköß"}
+-        FK{"de malleviinesche Enselle"}
+-        MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/ky.txt b/source/data/region/ky.txt
-index e8349bc..8c442e6 100644
+index 34d16558..e7679d43 100644
 --- a/source/data/region/ky.txt
 +++ b/source/data/region/ky.txt
+@@ -108,7 +108,7 @@ ky{
+         EU{"Европа Биримдиги"}
+         FI{"Финляндия"}
+         FJ{"Фиджи"}
+-        FK{"Фолклэнд аралдары"}
++        FK{"Фолклэнд (Малвина) аралдары"}
+         FM{"Микронезия"}
+         FO{"Фарер аралдары"}
+         FR{"Франция"}
 @@ -131,7 +131,7 @@ ky{
          GU{"Гуам"}
          GW{"Гвинея-Бисау"}
@@ -2470,7 +8152,12 @@
          HM{"Херд жана Макдоналд аралдары"}
          HN{"Гондурас"}
          HR{"Хорватия"}
-@@ -185,7 +185,7 @@ ky{
+@@ -181,11 +181,11 @@ ky{
+         MF{"Сент-Мартин"}
+         MG{"Мадагаскар"}
+         MH{"Маршалл аралдары"}
+-        MK{"Македония"}
++        MK{"Македония (Мур. Югосл.)"}
          ML{"Мали"}
          MM{"Мьянма (Бирма)"}
          MN{"Монголия"}
@@ -2498,8 +8185,17 @@
          US{"АКШ"}
      }
      Countries%variant{
+@@ -305,8 +302,6 @@ ky{
+         CG{"Конго (Республикасы)"}
+         CI{"Кот-д’Ивуар (вариант)"}
+         CZ{"Чех Республикасы"}
+-        FK{"Фолклэнд (Малвина) аралдары"}
+-        MK{"Македония (Мур. Югосл.)"}
+         TL{"Чыгыш Тимор"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/lb.txt b/source/data/region/lb.txt
-index 946e8d0..1e1fab6 100644
+index a4ba84d2..5d7b2633 100644
 --- a/source/data/region/lb.txt
 +++ b/source/data/region/lb.txt
 @@ -131,7 +131,7 @@ lb{
@@ -2511,7 +8207,12 @@
          HM{"Heard- a McDonald-Inselen"}
          HN{"Honduras"}
          HR{"Kroatien"}
-@@ -185,7 +185,7 @@ lb{
+@@ -181,11 +181,11 @@ lb{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallinselen"}
+-        MK{"Mazedonien"}
++        MK{"Mazedonien (EJR)"}
          ML{"Mali"}
          MM{"Myanmar"}
          MN{"Mongolei"}
@@ -2529,7 +8230,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -294,9 +294,6 @@ lb{
+@@ -294,16 +294,12 @@ lb{
      }
      Countries%short{
          GB{"GB"}
@@ -2539,10 +8240,26 @@
          US{"US"}
      }
      Countries%variant{
+         CD{"Kongo (Demokratesch Republik)"}
+         CG{"Kongo (Republik)"}
+         CI{"Elfebeeküst"}
+-        MK{"Mazedonien (EJR)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/lo.txt b/source/data/region/lo.txt
-index 2eb9780..49a4593 100644
+index eea0e487..9fed3a76 100644
 --- a/source/data/region/lo.txt
 +++ b/source/data/region/lo.txt
+@@ -107,7 +107,7 @@ lo{
+         EU{"ສະຫະພາບຢູໂຣບ"}
+         FI{"ຟິນແລນ"}
+         FJ{"ຟິຈິ"}
+-        FK{"ຫມູ່ເກາະຟອກແລນ"}
++        FK{"ໝູ່ເກາະຟອກແລນ (ອິສລາສ ມາວິນນາສ)"}
+         FM{"ໄມໂຄຣນີເຊຍ"}
+         FO{"ຫມູ່ເກາະແຟໂຣ"}
+         FR{"ຝຣັ່ງ"}
 @@ -130,7 +130,7 @@ lo{
          GU{"ກວາມ"}
          GW{"ກິນີ-ບິສເຊົາ"}
@@ -2552,7 +8269,12 @@
          HM{"ໝູ່ເກາະເຮີດ & ແມັກໂດນອລ"}
          HN{"ຮອນດູຣັສ"}
          HR{"ໂຄຣເອເທຍ"}
-@@ -184,7 +184,7 @@ lo{
+@@ -180,11 +180,11 @@ lo{
+         MF{"ເຊນ ມາທິນ"}
+         MG{"ມາດາກາສກາ"}
+         MH{"ຫມູ່ເກາະມາແຊວ"}
+-        MK{"ແມຊິໂດເນຍ"}
++        MK{"ແມຊິໂດເນຍ (FYROM)"}
          ML{"ມາລີ"}
          MM{"ມຽນມາ (ເບີມາ)"}
          MN{"ມອງໂກເລຍ"}
@@ -2580,10 +8302,28 @@
          UN{"ຢູເອັນ"}
          US{"ສະຫະລັດຯ"}
      }
+@@ -305,8 +302,6 @@ lo{
+         CG{"ສາທາລະນະລັດຄອງໂກ"}
+         CI{"ໄອໂວຣີ ໂຄທ"}
+         CZ{"ສາທາລະນະລັດເຊັກ"}
+-        FK{"ໝູ່ເກາະຟອກແລນ (ອິສລາສ ມາວິນນາສ)"}
+-        MK{"ແມຊິໂດເນຍ (FYROM)"}
+         TL{"ທິມໍ ຕາເວັນອອກ"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/lt.txt b/source/data/region/lt.txt
-index 558b3c7..b90be67 100644
+index f097343f..13a6f51a 100644
 --- a/source/data/region/lt.txt
 +++ b/source/data/region/lt.txt
+@@ -108,7 +108,7 @@ lt{
+         EU{"Europos Sąjunga"}
+         FI{"Suomija"}
+         FJ{"Fidžis"}
+-        FK{"Folklando Salos"}
++        FK{"Folklando (Malvinų) Salos"}
+         FM{"Mikronezija"}
+         FO{"Farerų Salos"}
+         FR{"Prancūzija"}
 @@ -131,7 +131,7 @@ lt{
          GU{"Guamas"}
          GW{"Bisau Gvinėja"}
@@ -2593,7 +8333,12 @@
          HM{"Herdo ir Makdonaldo Salos"}
          HN{"Hondūras"}
          HR{"Kroatija"}
-@@ -185,7 +185,7 @@ lt{
+@@ -181,11 +181,11 @@ lt{
+         MF{"Sen Martenas"}
+         MG{"Madagaskaras"}
+         MH{"Maršalo Salos"}
+-        MK{"Makedonija"}
++        MK{"Makedonijos Respublika"}
          ML{"Malis"}
          MM{"Mianmaras (Birma)"}
          MN{"Mongolija"}
@@ -2621,10 +8366,28 @@
          UN{"JT"}
          US{"JAV"}
      }
+@@ -305,8 +302,6 @@ lt{
+         CD{"Kongo Demokratinė Respublika"}
+         CG{"Kongo Respublika"}
+         CI{"Dramblio Kaulo Kranto Respublika"}
+-        FK{"Folklando (Malvinų) Salos"}
+-        MK{"Makedonijos Respublika"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/lv.txt b/source/data/region/lv.txt
-index 39171af..bb5263e 100644
+index a32c9f66..f04385ed 100644
 --- a/source/data/region/lv.txt
 +++ b/source/data/region/lv.txt
+@@ -108,7 +108,7 @@ lv{
+         EU{"Eiropas Savienība"}
+         FI{"Somija"}
+         FJ{"Fidži"}
+-        FK{"Folklenda salas"}
++        FK{"Folklenda (Malvinu) salas"}
+         FM{"Mikronēzija"}
+         FO{"Fēru salas"}
+         FR{"Francija"}
 @@ -131,7 +131,7 @@ lv{
          GU{"Guama"}
          GW{"Gvineja-Bisava"}
@@ -2634,7 +8397,12 @@
          HM{"Hērda sala un Makdonalda salas"}
          HN{"Hondurasa"}
          HR{"Horvātija"}
-@@ -185,7 +185,7 @@ lv{
+@@ -181,11 +181,11 @@ lv{
+         MF{"Senmartēna"}
+         MG{"Madagaskara"}
+         MH{"Māršala salas"}
+-        MK{"Maķedonija"}
++        MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}
          ML{"Mali"}
          MM{"Mjanma (Birma)"}
          MN{"Mongolija"}
@@ -2653,10 +8421,28 @@
          UN{"ANO"}
          US{"ASV"}
      }
+@@ -306,8 +303,6 @@ lv{
+         CG{"Kongo (Republika)"}
+         CI{"Ziloņkaula krasts"}
+         CZ{"Čehijas Republika"}
+-        FK{"Folklenda (Malvinu) salas"}
+-        MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/mk.txt b/source/data/region/mk.txt
-index 181000f..bacdcbe 100644
+index f7737302..d9071fde 100644
 --- a/source/data/region/mk.txt
 +++ b/source/data/region/mk.txt
+@@ -108,7 +108,7 @@ mk{
+         EU{"Европска унија"}
+         FI{"Финска"}
+         FJ{"Фиџи"}
+-        FK{"Фолкландски Острови"}
++        FK{"Фолкландски Острови (Малвински Острови)"}
+         FM{"Микронезија"}
+         FO{"Фарски Острови"}
+         FR{"Франција"}
 @@ -131,7 +131,7 @@ mk{
          GU{"Гуам"}
          GW{"Гвинеја-Бисау"}
@@ -2666,7 +8452,12 @@
          HM{"Остров Херд и Острови Мекдоналд"}
          HN{"Хондурас"}
          HR{"Хрватска"}
-@@ -185,7 +185,7 @@ mk{
+@@ -181,11 +181,11 @@ mk{
+         MF{"Сент Мартин"}
+         MG{"Мадагаскар"}
+         MH{"Маршалски Острови"}
+-        MK{"Македонија"}
++        MK{"Република Македонија"}
          ML{"Мали"}
          MM{"Мјанмар (Бурма)"}
          MN{"Монголија"}
@@ -2694,10 +8485,28 @@
          UN{"ОН"}
          US{"САД"}
      }
+@@ -306,8 +303,6 @@ mk{
+         CG{"Конго (Република)"}
+         CI{"Брег на Слоновата Коска"}
+         CZ{"Република Чешка"}
+-        FK{"Фолкландски Острови (Малвински Острови)"}
+-        MK{"Република Македонија"}
+         TL{"Источен Тимор"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/ml.txt b/source/data/region/ml.txt
-index ad121ef..893fabf 100644
+index 3c98538a..c632178f 100644
 --- a/source/data/region/ml.txt
 +++ b/source/data/region/ml.txt
+@@ -108,7 +108,7 @@ ml{
+         EU{"യൂറോപ്യൻ യൂണിയൻ"}
+         FI{"ഫിൻലാൻഡ്"}
+         FJ{"ഫിജി"}
+-        FK{"ഫാക്ക്‌ലാന്റ് ദ്വീപുകൾ"}
++        FK{"ഫോക്ക്‌ലാൻഡ് ദ്വീപുകൾ (ഐലാസ് മാൽവിനാസ്)"}
+         FM{"മൈക്രോനേഷ്യ"}
+         FO{"ഫറോ ദ്വീപുകൾ"}
+         FR{"ഫ്രാൻസ്"}
 @@ -131,7 +131,7 @@ ml{
          GU{"ഗ്വാം"}
          GW{"ഗിനിയ-ബിസൗ"}
@@ -2707,7 +8516,12 @@
          HM{"ഹിയേർഡും മക്‌ഡൊണാൾഡ് ദ്വീപുകളും"}
          HN{"ഹോണ്ടുറാസ്"}
          HR{"ക്രൊയേഷ്യ"}
-@@ -185,7 +185,7 @@ ml{
+@@ -181,11 +181,11 @@ ml{
+         MF{"സെൻറ് മാർട്ടിൻ"}
+         MG{"മഡഗാസ്കർ"}
+         MH{"മാർഷൽ‍‍ ദ്വീപുകൾ"}
+-        MK{"മാസിഡോണിയ"}
++        MK{"മാസിഡോണിയ (FYROM)"}
          ML{"മാലി"}
          MM{"മ്യാൻമാർ (ബർമ്മ)"}
          MN{"മംഗോളിയ"}
@@ -2735,10 +8549,28 @@
          UN{"യുഎൻ"}
          US{"യു.എസ്"}
      }
+@@ -306,8 +303,6 @@ ml{
+         CG{"കോംഗോ (റിപ്പബ്ലിക്ക്)"}
+         CI{"ഐവറി കോസ്റ്റ്"}
+         CZ{"ചെക്ക് റിപ്പബ്ലിക്"}
+-        FK{"ഫോക്ക്‌ലാൻഡ് ദ്വീപുകൾ (ഐലാസ് മാൽവിനാസ്)"}
+-        MK{"മാസിഡോണിയ (FYROM)"}
+         TL{"കിഴക്കൻ തിമോർ"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/mn.txt b/source/data/region/mn.txt
-index 8c35524..6b42784 100644
+index bc8fa68d..63c3c886 100644
 --- a/source/data/region/mn.txt
 +++ b/source/data/region/mn.txt
+@@ -108,7 +108,7 @@ mn{
+         EU{"Европын Холбоо"}
+         FI{"Финланд"}
+         FJ{"Фижи"}
+-        FK{"Фолькландын Арлууд"}
++        FK{"Фолькландын Арлууд (Ислас Мальвинас)"}
+         FM{"Микронези"}
+         FO{"Фароэ Арлууд"}
+         FR{"Франц"}
 @@ -131,7 +131,7 @@ mn{
          GU{"Гуам"}
          GW{"Гвиней-Бисау"}
@@ -2748,7 +8580,12 @@
          HM{"Хэрд болон Макдоналд арлууд"}
          HN{"Гондурас"}
          HR{"Хорват"}
-@@ -185,7 +185,7 @@ mn{
+@@ -181,11 +181,11 @@ mn{
+         MF{"Сент-Мартин"}
+         MG{"Мадагаскар"}
+         MH{"Маршаллын арлууд"}
+-        MK{"Македон"}
++        MK{"Македон (Хуучин Югославын бүрэлдэхүүний Македон)"}
          ML{"Мали"}
          MM{"Мьянмар (Бурма)"}
          MN{"Монгол"}
@@ -2776,10 +8613,28 @@
          UN{"НҮБ"}
          US{"АНУ"}
      }
+@@ -306,8 +303,6 @@ mn{
+         CG{"Конго (Бүгд Найрамдах улс)"}
+         CI{"Зааны ясан эрэг"}
+         CZ{"Бүгд Найрамдах Чех Улс"}
+-        FK{"Фолькландын Арлууд (Ислас Мальвинас)"}
+-        MK{"Македон (Хуучин Югославын бүрэлдэхүүний Македон)"}
+         TL{"Зүүн Тимор"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/mr.txt b/source/data/region/mr.txt
-index 8c95b79..cc0fe8a 100644
+index 904fcf75..c8d4bc4b 100644
 --- a/source/data/region/mr.txt
 +++ b/source/data/region/mr.txt
+@@ -108,7 +108,7 @@ mr{
+         EU{"युरोपीय संघ"}
+         FI{"फिनलंड"}
+         FJ{"फिजी"}
+-        FK{"फॉकलंड बेटे"}
++        FK{"फॉकलंड बेटे (इस्लास मालविनास)"}
+         FM{"मायक्रोनेशिया"}
+         FO{"फेरो बेटे"}
+         FR{"फ्रान्स"}
 @@ -131,7 +131,7 @@ mr{
          GU{"गुआम"}
          GW{"गिनी-बिसाउ"}
@@ -2789,7 +8644,12 @@
          HM{"हर्ड आणि मॅक्डोनाल्ड बेटे"}
          HN{"होंडुरास"}
          HR{"क्रोएशिया"}
-@@ -185,7 +185,7 @@ mr{
+@@ -181,11 +181,11 @@ mr{
+         MF{"सेंट मार्टिन"}
+         MG{"मादागास्कर"}
+         MH{"मार्शल बेटे"}
+-        MK{"मॅसेडोनिया"}
++        MK{"मॅसेडोनिया (FYROM)"}
          ML{"माली"}
          MM{"म्यानमार (बर्मा)"}
          MN{"मंगोलिया"}
@@ -2817,10 +8677,28 @@
          UN{"यूएन"}
          US{"यू.एस."}
      }
+@@ -305,8 +302,6 @@ mr{
+         CD{"काँगो (डीआरसी)"}
+         CG{"काँगो (प्रजासत्ताक)"}
+         CZ{"झेक प्रजासत्ताक"}
+-        FK{"फॉकलंड बेटे (इस्लास मालविनास)"}
+-        MK{"मॅसेडोनिया (FYROM)"}
+         TL{"पूर्व तिमोर"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/ms.txt b/source/data/region/ms.txt
-index 614ba00..808c17d 100644
+index e6881783..2a08d15d 100644
 --- a/source/data/region/ms.txt
 +++ b/source/data/region/ms.txt
+@@ -108,7 +108,7 @@ ms{
+         EU{"Kesatuan Eropah"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Kepulauan Falkland"}
++        FK{"Kepulauan Falkland (Islas Malvinas)"}
+         FM{"Micronesia"}
+         FO{"Kepulauan Faroe"}
+         FR{"Perancis"}
 @@ -131,7 +131,7 @@ ms{
          GU{"Guam"}
          GW{"Guinea Bissau"}
@@ -2830,7 +8708,12 @@
          HM{"Kepulauan Heard & McDonald"}
          HN{"Honduras"}
          HR{"Croatia"}
-@@ -185,7 +185,7 @@ ms{
+@@ -181,11 +181,11 @@ ms{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Kepulauan Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -2858,10 +8741,28 @@
          UN{"PBB"}
          US{"A.S"}
      }
+@@ -306,8 +303,6 @@ ms{
+         CG{"Congo (Republik)"}
+         CI{"Ivory Coast"}
+         CZ{"Republik Czech"}
+-        FK{"Kepulauan Falkland (Islas Malvinas)"}
+-        MK{"Macedonia (FYROM)"}
+         TL{"Timor Timur"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/mt.txt b/source/data/region/mt.txt
-index 6f72145..0a676bc 100644
+index ec5cf693..a867c5f1 100644
 --- a/source/data/region/mt.txt
 +++ b/source/data/region/mt.txt
+@@ -106,7 +106,7 @@ mt{
+         EU{"Unjoni Ewropea"}
+         FI{"il-Finlandja"}
+         FJ{"Fiġi"}
+-        FK{"il-Gżejjer Falkland"}
++        FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}
+         FM{"Mikroneżja"}
+         FO{"il-Gżejjer Faeroe"}
+         FR{"Franza"}
 @@ -129,10 +129,7 @@ mt{
          GU{"Guam"}
          GW{"il-Guinea-Bissau"}
@@ -2895,7 +8796,7 @@
          PT{"il-Portugall"}
          PW{"Palau"}
          PY{"il-Paragwaj"}
-@@ -297,9 +291,6 @@ mt{
+@@ -297,15 +291,11 @@ mt{
      }
      Countries%short{
          GB{"UK"}
@@ -2905,10 +8806,25 @@
          US{"US"}
      }
      Countries%variant{
+         CD{"Kongo (RDK)"}
+         CG{"ir-Repubblika tal-Kongo"}
+-        FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}
+         TL{"Timor tal-Lvant"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/my.txt b/source/data/region/my.txt
-index e31c1ff..06f6566 100644
+index c994e662..4d13be51 100644
 --- a/source/data/region/my.txt
 +++ b/source/data/region/my.txt
+@@ -108,7 +108,7 @@ my{
+         EU{"ဥရောပသမဂ္ဂ"}
+         FI{"ဖင်လန်"}
+         FJ{"ဖီဂျီ"}
+-        FK{"ဖော့ကလန် ကျွန်းစု"}
++        FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}
+         FM{"မိုင်ခရိုနီရှား"}
+         FO{"ဖာရိုး ကျွန်းစုများ"}
+         FR{"ပြင်သစ်"}
 @@ -131,7 +131,7 @@ my{
          GU{"ဂူအမ်"}
          GW{"ဂီနီ-ဘီစော"}
@@ -2918,7 +8834,12 @@
          HM{"ဟတ်ကျွန်းနှင့်မက်ဒေါနယ်ကျွန်းစု"}
          HN{"ဟွန်ဒူးရပ်စ်"}
          HR{"ခရိုအေးရှား"}
-@@ -185,7 +185,7 @@ my{
+@@ -181,11 +181,11 @@ my{
+         MF{"စိန့်မာတင်"}
+         MG{"မဒါဂတ်စကား"}
+         MH{"မာရှယ် ကျွန်းစု"}
+-        MK{"မက်စီဒိုးနီးယား"}
++        MK{"မက်စီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်စီဒိုးနီးယားပြည်ထောင်စု)"}
          ML{"မာလီ"}
          MM{"မြန်မာ"}
          MN{"မွန်ဂိုးလီးယား"}
@@ -2946,10 +8867,28 @@
          UN{"ကုလသမဂ္ဂ"}
          US{"ယူအက်စ်"}
      }
+@@ -306,8 +303,6 @@ my{
+         CG{"ကွန်ဂို သမ္မတနိုင်ငံ"}
+         CI{"အိုင်ဗရီကို့စ်"}
+         CZ{"ချက် ပြည်ထောင်စု"}
+-        FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}
+-        MK{"မက်စီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်စီဒိုးနီးယားပြည်ထောင်စု)"}
+     }
+     Version{"2.1.33.28"}
+ }
 diff --git a/source/data/region/mzn.txt b/source/data/region/mzn.txt
-index 8a76bf5..b2ff11a 100644
+index 5f08909e..fd2276ee 100644
 --- a/source/data/region/mzn.txt
 +++ b/source/data/region/mzn.txt
+@@ -108,7 +108,7 @@ mzn{
+         EU{"اروپا اتحادیه"}
+         FI{"فنلاند"}
+         FJ{"فیجی"}
+-        FK{"فالکلند جزیره‌ئون"}
++        FK{"فالکلند (مالویناس)"}
+         FM{"میکرونزی"}
+         FO{"فارو جزایر"}
+         FR{"فرانسه"}
 @@ -131,7 +131,7 @@ mzn{
          GU{"گوئام"}
          GW{"گینه بیسائو"}
@@ -2959,7 +8898,12 @@
          HM{"هارد و مک‌دونالد جزایر"}
          HN{"هندوراس"}
          HR{"کرواسی"}
-@@ -185,7 +185,7 @@ mzn{
+@@ -181,11 +181,11 @@ mzn{
+         MF{"سنت مارتین"}
+         MG{"ماداگاسکار"}
+         MH{"مارشال جزایر"}
+-        MK{"مقدونیه"}
++        MK{"مقدونیه جمهوری"}
          ML{"مالی"}
          MM{"میانمار"}
          MN{"مغولستون"}
@@ -2977,7 +8921,7 @@
          PT{"پرتغال"}
          PW{"پالائو"}
          PY{"پاراگوئه"}
-@@ -294,9 +294,6 @@ mzn{
+@@ -294,17 +294,12 @@ mzn{
      }
      Countries%short{
          GB{"بریتانیا"}
@@ -2987,10 +8931,27 @@
          US{"آمریکا متحده ایالات"}
      }
      Countries%variant{
+         CD{"کنگو (دموکراتیک جمهوری)"}
+         CG{"کنگو (جمهوری)"}
+         CI{"عاج ساحل"}
+-        FK{"فالکلند (مالویناس)"}
+-        MK{"مقدونیه جمهوری"}
+         TL{"شرقی تیمور"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/nb.txt b/source/data/region/nb.txt
-index 550c2f0..965094a 100644
+index 03a6909a..8b59b81e 100644
 --- a/source/data/region/nb.txt
 +++ b/source/data/region/nb.txt
+@@ -108,7 +108,7 @@ nb{
+         EU{"EU"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Falklandsøyene"}
++        FK{"Falklandsøyene (Islas Malvinas)"}
+         FM{"Mikronesiaføderasjonen"}
+         FO{"Færøyene"}
+         FR{"Frankrike"}
 @@ -131,7 +131,7 @@ nb{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -3000,7 +8961,12 @@
          HM{"Heard- og McDonaldøyene"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -185,7 +185,7 @@ nb{
+@@ -181,11 +181,11 @@ nb{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalløyene"}
+-        MK{"Makedonia"}
++        MK{"Den tidligere jugoslaviske republikk Makedonia"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -3028,10 +8994,28 @@
          UN{"FN"}
          US{"USA"}
      }
+@@ -305,8 +302,6 @@ nb{
+         CD{"Den demokratiske republikken Kongo"}
+         CG{"Republikken Kongo"}
+         CZ{"Den tsjekkiske republikk"}
+-        FK{"Falklandsøyene (Islas Malvinas)"}
+-        MK{"Den tidligere jugoslaviske republikk Makedonia"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/ne.txt b/source/data/region/ne.txt
-index cda2c5f..9298b2d 100644
+index d30a6eef..50420dce 100644
 --- a/source/data/region/ne.txt
 +++ b/source/data/region/ne.txt
+@@ -108,7 +108,7 @@ ne{
+         EU{"युरोपियन युनियन"}
+         FI{"फिन्ल्याण्ड"}
+         FJ{"फिजी"}
+-        FK{"फकल्याण्ड टापुहरु"}
++        FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}
+         FM{"माइक्रोनेसिया"}
+         FO{"फारो टापुहरू"}
+         FR{"फ्रान्स"}
 @@ -131,7 +131,7 @@ ne{
          GU{"गुवाम"}
          GW{"गिनी-बिसाउ"}
@@ -3041,7 +9025,12 @@
          HM{"हर्ड टापु र म्याकडोनाल्ड टापुहरु"}
          HN{"हन्डुरास"}
          HR{"क्रोएशिया"}
-@@ -185,7 +185,7 @@ ne{
+@@ -181,11 +181,11 @@ ne{
+         MF{"सेन्ट मार्टिन"}
+         MG{"मडागास्कर"}
+         MH{"मार्शल टापुहरु"}
+-        MK{"म्याकेडोनिया"}
++        MK{"म्याकेडोनिया (फाइरम)"}
          ML{"माली"}
          MM{"म्यान्मार (बर्मा)"}
          MN{"मङ्गोलिया"}
@@ -3069,10 +9058,28 @@
          UN{"यूएन"}
          US{"अमेरिका"}
      }
+@@ -305,8 +302,6 @@ ne{
+         CD{"कङ्गो (डीआर्‌सी)"}
+         CG{"कङ्गो (गणतन्त्र)"}
+         CZ{"चेक गणतन्त्र"}
+-        FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}
+-        MK{"म्याकेडोनिया (फाइरम)"}
+         TL{"पृर्वी टीमोर"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/nl.txt b/source/data/region/nl.txt
-index fd61a14..dd38db3 100644
+index b1619856..dc6f4133 100644
 --- a/source/data/region/nl.txt
 +++ b/source/data/region/nl.txt
+@@ -108,7 +108,7 @@ nl{
+         EU{"Europese Unie"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Falklandeilanden"}
++        FK{"Falklandeilanden (Islas Malvinas)"}
+         FM{"Micronesia"}
+         FO{"Faeröer"}
+         FR{"Frankrijk"}
 @@ -131,7 +131,7 @@ nl{
          GU{"Guam"}
          GW{"Guinee-Bissau"}
@@ -3082,7 +9089,12 @@
          HM{"Heard en McDonaldeilanden"}
          HN{"Honduras"}
          HR{"Kroatië"}
-@@ -185,7 +185,7 @@ nl{
+@@ -181,11 +181,11 @@ nl{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalleilanden"}
+-        MK{"Macedonië"}
++        MK{"Macedonië (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Birma)"}
          MN{"Mongolië"}
@@ -3110,10 +9122,28 @@
          UN{"vn"}
          US{"VS"}
      }
+@@ -305,8 +302,6 @@ nl{
+         CD{"Congo (DRC)"}
+         CG{"Congo (Republiek)"}
+         CZ{"Tsjechië"}
+-        FK{"Falklandeilanden (Islas Malvinas)"}
+-        MK{"Macedonië (FYROM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/nn.txt b/source/data/region/nn.txt
-index e6fcc18..acf908d 100644
+index 68461b9f..a3269b62 100644
 --- a/source/data/region/nn.txt
 +++ b/source/data/region/nn.txt
+@@ -107,7 +107,7 @@ nn{
+         EU{"Den europeiske unionen"}
+         FI{"Finland"}
+         FJ{"Fiji"}
+-        FK{"Falklandsøyane"}
++        FK{"Falklandsøyane (Islas Malvinas)"}
+         FM{"Mikronesiaføderasjonen"}
+         FO{"Færøyane"}
+         FR{"Frankrike"}
 @@ -130,7 +130,7 @@ nn{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -3123,7 +9153,12 @@
          HM{"Heard- og McDonaldsøyane"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -184,7 +184,7 @@ nn{
+@@ -180,11 +180,11 @@ nn{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshalløyane"}
+-        MK{"Makedonia"}
++        MK{"Den tidlegare jugoslaviske republikken Makedonia"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -3132,7 +9167,7 @@
          MP{"Nord-Marianane"}
          MQ{"Martinique"}
          MR{"Mauritania"}
-@@ -293,8 +293,6 @@ nn{
+@@ -293,15 +293,11 @@ nn{
      }
      Countries%short{
          GB{"Storbritannia"}
@@ -3141,10 +9176,26 @@
          US{"USA"}
      }
      Countries%variant{
+         CD{"Den demokratiske republikken Kongo"}
+         CG{"Republikken Kongo"}
+-        FK{"Falklandsøyane (Islas Malvinas)"}
+-        MK{"Den tidlegare jugoslaviske republikken Makedonia"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/pa.txt b/source/data/region/pa.txt
-index dd0f8c6..3994d99 100644
+index e92483b5..b6f6310f 100644
 --- a/source/data/region/pa.txt
 +++ b/source/data/region/pa.txt
+@@ -108,7 +108,7 @@ pa{
+         EU{"ਯੂਰਪੀ ਸੰਘ"}
+         FI{"ਫਿਨਲੈਂਡ"}
+         FJ{"ਫ਼ਿਜੀ"}
+-        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ"}
++        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ (ਆਈਲਾਸ ਮਾਲਵਿਨਾਸ)"}
+         FM{"ਮਾਇਕ੍ਰੋਨੇਸ਼ੀਆ"}
+         FO{"ਫੈਰੋ ਟਾਪੂ"}
+         FR{"ਫ਼ਰਾਂਸ"}
 @@ -131,7 +131,7 @@ pa{
          GU{"ਗੁਆਮ"}
          GW{"ਗਿਨੀ-ਬਿਸਾਉ"}
@@ -3154,7 +9205,12 @@
          HM{"ਹਰਡ ਤੇ ਮੈਕਡੋਨਾਲਡ ਟਾਪੂ"}
          HN{"ਹੋਂਡੁਰਸ"}
          HR{"ਕਰੋਏਸ਼ੀਆ"}
-@@ -185,7 +185,7 @@ pa{
+@@ -181,11 +181,11 @@ pa{
+         MF{"ਸੇਂਟ ਮਾਰਟਿਨ"}
+         MG{"ਮੈਡਾਗਾਸਕਰ"}
+         MH{"ਮਾਰਸ਼ਲ ਟਾਪੂ"}
+-        MK{"ਮੈਕਡੋਨੀਆ"}
++        MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}
          ML{"ਮਾਲੀ"}
          MM{"ਮਿਆਂਮਾਰ (ਬਰਮਾ)"}
          MN{"ਮੰਗੋਲੀਆ"}
@@ -3182,10 +9238,28 @@
          UN{"ਯੂ.ਐੱਨ."}
          US{"ਯੂ.ਐੱਸ."}
      }
+@@ -306,8 +303,6 @@ pa{
+         CG{"ਕਾਂਗੋ ਗਣਰਾਜ"}
+         CI{"ਆਇਵਰੀ ਕੋਸਟ"}
+         CZ{"ਚੈੱਕ ਗਣਰਾਜ"}
+-        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ (ਆਈਲਾਸ ਮਾਲਵਿਨਾਸ)"}
+-        MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}
+         TL{"ਪੂਰਬ ਤਿਮੋਰ"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/pl.txt b/source/data/region/pl.txt
-index a6aa7dc..09b884e 100644
+index 72d51259..4387d459 100644
 --- a/source/data/region/pl.txt
 +++ b/source/data/region/pl.txt
+@@ -108,7 +108,7 @@ pl{
+         EU{"Unia Europejska"}
+         FI{"Finlandia"}
+         FJ{"Fidżi"}
+-        FK{"Falklandy"}
++        FK{"Falklandy (Malwiny)"}
+         FM{"Mikronezja"}
+         FO{"Wyspy Owcze"}
+         FR{"Francja"}
 @@ -131,7 +131,7 @@ pl{
          GU{"Guam"}
          GW{"Gwinea Bissau"}
@@ -3195,7 +9269,12 @@
          HM{"Wyspy Heard i McDonalda"}
          HN{"Honduras"}
          HR{"Chorwacja"}
-@@ -185,7 +185,7 @@ pl{
+@@ -181,11 +181,11 @@ pl{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Wyspy Marshalla"}
+-        MK{"Macedonia"}
++        MK{"Była Jugosłowiańska Republika Macedonii"}
          ML{"Mali"}
          MM{"Mjanma (Birma)"}
          MN{"Mongolia"}
@@ -3223,10 +9302,28 @@
          UN{"ONZ"}
          US{"USA"}
      }
+@@ -305,8 +302,6 @@ pl{
+         CG{"Republika Konga"}
+         CI{"Wybrzeże Kości Słoniowej"}
+         CZ{"Republika Czeska"}
+-        FK{"Falklandy (Malwiny)"}
+-        MK{"Była Jugosłowiańska Republika Macedonii"}
+         TL{"Timor-Leste"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/pt.txt b/source/data/region/pt.txt
-index bdb57b0..38522fb 100644
+index d1f742c7..d465f0fe 100644
 --- a/source/data/region/pt.txt
 +++ b/source/data/region/pt.txt
+@@ -108,7 +108,7 @@ pt{
+         EU{"União Europeia"}
+         FI{"Finlândia"}
+         FJ{"Fiji"}
+-        FK{"Ilhas Malvinas"}
++        FK{"Ilhas Falkland (Ilhas Malvinas)"}
+         FM{"Micronésia"}
+         FO{"Ilhas Faroe"}
+         FR{"França"}
 @@ -131,7 +131,7 @@ pt{
          GU{"Guam"}
          GW{"Guiné-Bissau"}
@@ -3236,7 +9333,12 @@
          HM{"Ilhas Heard e McDonald"}
          HN{"Honduras"}
          HR{"Croácia"}
-@@ -185,7 +185,7 @@ pt{
+@@ -181,11 +181,11 @@ pt{
+         MF{"São Martinho"}
+         MG{"Madagascar"}
+         MH{"Ilhas Marshall"}
+-        MK{"Macedônia"}
++        MK{"Macedônia (ARIM)"}
          ML{"Mali"}
          MM{"Mianmar (Birmânia)"}
          MN{"Mongólia"}
@@ -3264,10 +9366,59 @@
          UN{"NU"}
          US{"EUA"}
      }
+@@ -305,8 +302,6 @@ pt{
+         CD{"República Democrática do Congo"}
+         CG{"Congo"}
+         CZ{"República Tcheca"}
+-        FK{"Ilhas Falkland (Ilhas Malvinas)"}
+-        MK{"Macedônia (ARIM)"}
+         TL{"República Democrática de Timor-Leste"}
+     }
+     Version{"2.1.32.59"}
+diff --git a/source/data/region/pt_PT.txt b/source/data/region/pt_PT.txt
+index 25c51a36..cd1fce82 100644
+--- a/source/data/region/pt_PT.txt
++++ b/source/data/region/pt_PT.txt
+@@ -26,7 +26,7 @@ pt_PT{
+         DJ{"Jibuti"}
+         DM{"Domínica"}
+         EE{"Estónia"}
+-        FK{"Ilhas Falkland"}
++        FK{"Ilhas Malvinas"}
+         FO{"Ilhas Faroé"}
+         GL{"Gronelândia"}
+         GU{"Guame"}
+@@ -39,7 +39,7 @@ pt_PT{
+         LV{"Letónia"}
+         MC{"Mónaco"}
+         MG{"Madagáscar"}
+-        MK{"Macedónia"}
++        MK{"Macedónia (ARJM)"}
+         MS{"Monserrate"}
+         MU{"Maurícia"}
+         MW{"Maláui"}
+@@ -71,8 +71,6 @@ pt_PT{
+     }
+     Countries%variant{
+         CG{"República do Congo"}
+-        FK{"Ilhas Malvinas"}
+-        MK{"Macedónia (ARJM)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/ro.txt b/source/data/region/ro.txt
-index 58afc40..add8ce6 100644
+index f7d3d79b..a84968f5 100644
 --- a/source/data/region/ro.txt
 +++ b/source/data/region/ro.txt
+@@ -108,7 +108,7 @@ ro{
+         EU{"Uniunea Europeană"}
+         FI{"Finlanda"}
+         FJ{"Fiji"}
+-        FK{"Insulele Falkland"}
++        FK{"Insulele Falkland (Insulele Malvine)"}
+         FM{"Micronezia"}
+         FO{"Insulele Feroe"}
+         FR{"Franța"}
 @@ -131,7 +131,7 @@ ro{
          GU{"Guam"}
          GW{"Guineea-Bissau"}
@@ -3277,7 +9428,12 @@
          HM{"Insula Heard și Insulele McDonald"}
          HN{"Honduras"}
          HR{"Croația"}
-@@ -185,7 +185,7 @@ ro{
+@@ -181,11 +181,11 @@ ro{
+         MF{"Sfântul Martin"}
+         MG{"Madagascar"}
+         MH{"Insulele Marshall"}
+-        MK{"Republica Macedonia"}
++        MK{"Republica Macedonia (FRIM)"}
          ML{"Mali"}
          MM{"Myanmar (Birmania)"}
          MN{"Mongolia"}
@@ -3305,10 +9461,28 @@
          UN{"NU"}
          US{"S.U.A."}
      }
+@@ -306,8 +303,6 @@ ro{
+         CG{"Congo (Republica)"}
+         CI{"Coasta de Fildeș"}
+         CZ{"Republica Cehă"}
+-        FK{"Insulele Falkland (Insulele Malvine)"}
+-        MK{"Republica Macedonia (FRIM)"}
+     }
+     Version{"2.1.32.60"}
+ }
 diff --git a/source/data/region/ru.txt b/source/data/region/ru.txt
-index f3ec826..ba2439b 100644
+index c7505bf8..c52931ab 100644
 --- a/source/data/region/ru.txt
 +++ b/source/data/region/ru.txt
+@@ -108,7 +108,7 @@ ru{
+         EU{"Европейский союз"}
+         FI{"Финляндия"}
+         FJ{"Фиджи"}
+-        FK{"Фолклендские о-ва"}
++        FK{"Фолклендские (Мальвинские) о-ва"}
+         FM{"Федеративные Штаты Микронезии"}
+         FO{"Фарерские о-ва"}
+         FR{"Франция"}
 @@ -131,7 +131,7 @@ ru{
          GU{"Гуам"}
          GW{"Гвинея-Бисау"}
@@ -3318,7 +9492,12 @@
          HM{"о-ва Херд и Макдональд"}
          HN{"Гондурас"}
          HR{"Хорватия"}
-@@ -185,7 +185,7 @@ ru{
+@@ -181,11 +181,11 @@ ru{
+         MF{"Сен-Мартен"}
+         MG{"Мадагаскар"}
+         MH{"Маршалловы Острова"}
+-        MK{"Македония"}
++        MK{"Македония (БЮРМ)"}
          ML{"Мали"}
          MM{"Мьянма (Бирма)"}
          MN{"Монголия"}
@@ -3346,8 +9525,17 @@
          UN{"ООН"}
          US{"США"}
      }
+@@ -305,8 +302,6 @@ ru{
+         CD{"Конго (ДРК)"}
+         CG{"Республика Конго"}
+         CI{"Берег Слоновой Кости"}
+-        FK{"Фолклендские (Мальвинские) о-ва"}
+-        MK{"Македония (БЮРМ)"}
+         TL{"Тимор-Лесте"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/se.txt b/source/data/region/se.txt
-index 677f911..e98cfd4 100644
+index 569f8b0e..31555ca8 100644
 --- a/source/data/region/se.txt
 +++ b/source/data/region/se.txt
 @@ -289,9 +289,6 @@ se{
@@ -3359,11 +9547,20 @@
 -        PS{"Palestina"}
          US{"USA"}
      }
-     Version{"2.1.27.98"}
+     Version{"2.1.31.33"}
 diff --git a/source/data/region/si.txt b/source/data/region/si.txt
-index 80e4305..24e61f3 100644
+index bf34cfdf..224fb7d9 100644
 --- a/source/data/region/si.txt
 +++ b/source/data/region/si.txt
+@@ -108,7 +108,7 @@ si{
+         EU{"යුරෝපා සංගමය"}
+         FI{"ෆින්ලන්තය"}
+         FJ{"ෆීජී"}
+-        FK{"ෆෝක්ලන්ත දූපත්"}
++        FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}
+         FM{"මයික්‍රොනීසියාව"}
+         FO{"ෆැරෝ දූපත්"}
+         FR{"ප්‍රංශය"}
 @@ -131,7 +131,7 @@ si{
          GU{"ගුවාම්"}
          GW{"ගිනි බිසව්"}
@@ -3373,7 +9570,12 @@
          HM{"හර්ඩ් දූපත සහ මැක්ඩොනල්ඩ් දූපත්"}
          HN{"හොන්ඩුරාස්"}
          HR{"ක්‍රොඒෂියාව"}
-@@ -185,7 +185,7 @@ si{
+@@ -181,11 +181,11 @@ si{
+         MF{"ශාන්ත මාර්ටින්"}
+         MG{"මැඩගස්කරය"}
+         MH{"මාෂල් දූපත්"}
+-        MK{"මැසිඩෝනියාව"}
++        MK{"මැසිඩෝනියාව (FYROM)"}
          ML{"මාලි"}
          MM{"මියන්මාරය (බුරුමය)"}
          MN{"මොන්ගෝලියාව"}
@@ -3401,8 +9603,17 @@
          UN{"එක්සත් ජාතීන්"}
          US{"එ.ජ"}
      }
+@@ -306,8 +303,6 @@ si{
+         CG{"කොංගෝ (ජනරජය)"}
+         CI{"අයිවරි කෝස්ට්"}
+         CZ{"චෙක් ජනරජය"}
+-        FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}
+-        MK{"මැසිඩෝනියාව (FYROM)"}
+         TL{"නැගෙනහිර ටිමෝරය"}
+     }
+     Version{"2.1.33.28"}
 diff --git a/source/data/region/sk.txt b/source/data/region/sk.txt
-index d9054dd..27b6599 100644
+index a2ef83e2..1dbba61a 100644
 --- a/source/data/region/sk.txt
 +++ b/source/data/region/sk.txt
 @@ -131,7 +131,7 @@ sk{
@@ -3414,7 +9625,12 @@
          HM{"Heardov ostrov a Macdonaldove ostrovy"}
          HN{"Honduras"}
          HR{"Chorvátsko"}
-@@ -185,7 +185,7 @@ sk{
+@@ -181,11 +181,11 @@ sk{
+         MF{"Svätý Martin (fr.)"}
+         MG{"Madagaskar"}
+         MH{"Marshallove ostrovy"}
+-        MK{"Macedónsko"}
++        MK{"Macedónsko (BJRM)"}
          ML{"Mali"}
          MM{"Mjanmarsko"}
          MN{"Mongolsko"}
@@ -3432,7 +9648,7 @@
          PT{"Portugalsko"}
          PW{"Palau"}
          PY{"Paraguaj"}
-@@ -295,9 +295,6 @@ sk{
+@@ -295,15 +295,11 @@ sk{
      }
      Countries%short{
          GB{"UK"}
@@ -3442,10 +9658,25 @@
          UN{"OSN"}
          US{"USA"}
      }
+     Countries%variant{
+         CZ{"Česká republika"}
+-        MK{"Macedónsko (BJRM)"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/sl.txt b/source/data/region/sl.txt
-index 21dfb62..63015b5 100644
+index a842340d..97995a6f 100644
 --- a/source/data/region/sl.txt
 +++ b/source/data/region/sl.txt
+@@ -108,7 +108,7 @@ sl{
+         EU{"Evropska unija"}
+         FI{"Finska"}
+         FJ{"Fidži"}
+-        FK{"Falklandski otoki"}
++        FK{"Falklandski otoki (Malvini)"}
+         FM{"Mikronezija"}
+         FO{"Ferski otoki"}
+         FR{"Francija"}
 @@ -131,7 +131,7 @@ sl{
          GU{"Guam"}
          GW{"Gvineja Bissau"}
@@ -3455,7 +9686,12 @@
          HM{"Heardov otok in McDonaldovi otoki"}
          HN{"Honduras"}
          HR{"Hrvaška"}
-@@ -185,7 +185,7 @@ sl{
+@@ -181,11 +181,11 @@ sl{
+         MF{"Saint Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallovi otoki"}
+-        MK{"Makedonija"}
++        MK{"Makedonija (FYROM)"}
          ML{"Mali"}
          MM{"Mjanmar (Burma)"}
          MN{"Mongolija"}
@@ -3483,10 +9719,28 @@
          UN{"Združeni narodi"}
          US{"ZDA"}
      }
+@@ -305,8 +302,6 @@ sl{
+         CD{"Kongo (Demokratična republika Kongo)"}
+         CG{"Kongo (Republika)"}
+         CI{"Côte d’Ivoire"}
+-        FK{"Falklandski otoki (Malvini)"}
+-        MK{"Makedonija (FYROM)"}
+         TL{"Vzhodni Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/smn.txt b/source/data/region/smn.txt
-index f323c31..8b34b7e 100644
+index 49ec2d9f..0d94f997 100644
 --- a/source/data/region/smn.txt
 +++ b/source/data/region/smn.txt
+@@ -73,7 +73,7 @@ smn{
+         ET{"Etiopia"}
+         FI{"Suomâ"}
+         FJ{"Fidži"}
+-        FK{"Falklandsuolluuh"}
++        FK{"Falklandsuolluuh (Malvinassuolluuh)"}
+         FM{"Mikronesia littoväldi"}
+         FO{"Färsuolluuh"}
+         FR{"Ranska"}
 @@ -96,7 +96,7 @@ smn{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -3496,7 +9750,11 @@
          HM{"Heard já McDonaldsuolluuh"}
          HN{"Honduras"}
          HR{"Kroatia"}
-@@ -149,7 +149,7 @@ smn{
+@@ -146,10 +146,11 @@ smn{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallsuolluuh"}
++        MK{"OJT Makedonia"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -3505,7 +9763,7 @@
          MP{"Tave-Marianeh"}
          MQ{"Martinique"}
          MR{"Mauritania"}
-@@ -255,8 +255,6 @@ smn{
+@@ -255,15 +256,11 @@ smn{
      }
      Countries%short{
          GB{"OK"}
@@ -3514,10 +9772,26 @@
          US{"USA"}
      }
      Countries%variant{
+         CD{"Kongo demokraattisâš täsiväldi"}
+         CG{"Kongo täsiväldi"}
+-        FK{"Falklandsuolluuh (Malvinassuolluuh)"}
+-        MK{"OJT Makedonia"}
+     }
+     Version{"2.1.31.33"}
+ }
 diff --git a/source/data/region/sq.txt b/source/data/region/sq.txt
-index 286adec..38f4b89 100644
+index 3ba4e807..94ef5e9c 100644
 --- a/source/data/region/sq.txt
 +++ b/source/data/region/sq.txt
+@@ -108,7 +108,7 @@ sq{
+         EU{"Bashkimi Europian"}
+         FI{"Finlandë"}
+         FJ{"Fixhi"}
+-        FK{"Ishujt Falkland"}
++        FK{"Ishujt Falkland (Malvine)"}
+         FM{"Mikronezi"}
+         FO{"Ishujt Faroe"}
+         FR{"Francë"}
 @@ -131,7 +131,7 @@ sq{
          GU{"Guam"}
          GW{"Guine-Bisau"}
@@ -3527,7 +9801,12 @@
          HM{"Ishulli Hërd dhe Ishujt Mekdonald"}
          HN{"Honduras"}
          HR{"Kroaci"}
-@@ -185,7 +185,7 @@ sq{
+@@ -181,11 +181,11 @@ sq{
+         MF{"Shën-Martin"}
+         MG{"Madagaskar"}
+         MH{"Ishujt Marshall"}
+-        MK{"Maqedoni"}
++        MK{"Maqedoni (IRJM)"}
          ML{"Mali"}
          MM{"Mianmar (Burma)"}
          MN{"Mongoli"}
@@ -3555,10 +9834,28 @@
          UN{"kombet e bashkuara"}
          US{"SHBA"}
      }
+@@ -306,8 +303,6 @@ sq{
+         CG{"Kongo (Republika)"}
+         CI{"Bregu i Fildishtë"}
+         CZ{"Republika Çeke"}
+-        FK{"Ishujt Falkland (Malvine)"}
+-        MK{"Maqedoni (IRJM)"}
+         TL{"Timori Lindor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/sr.txt b/source/data/region/sr.txt
-index d57934a..2b31d23 100644
+index 5fdfce49..5c3ef2e9 100644
 --- a/source/data/region/sr.txt
 +++ b/source/data/region/sr.txt
+@@ -108,7 +108,7 @@ sr{
+         EU{"Европска Унија"}
+         FI{"Финска"}
+         FJ{"Фиџи"}
+-        FK{"Фокландска Острва"}
++        FK{"Фокландска (Малвинска) острва"}
+         FM{"Микронезија"}
+         FO{"Фарска Острва"}
+         FR{"Француска"}
 @@ -131,7 +131,7 @@ sr{
          GU{"Гуам"}
          GW{"Гвинеја-Бисао"}
@@ -3568,7 +9865,12 @@
          HM{"Острво Херд и Мекдоналдова острва"}
          HN{"Хондурас"}
          HR{"Хрватска"}
-@@ -185,7 +185,7 @@ sr{
+@@ -181,11 +181,11 @@ sr{
+         MF{"Свети Мартин (Француска)"}
+         MG{"Мадагаскар"}
+         MH{"Маршалска Острва"}
+-        MK{"Македонија"}
++        MK{"Македонија (БЈРМ)"}
          ML{"Мали"}
          MM{"Мијанмар (Бурма)"}
          MN{"Монголија"}
@@ -3586,7 +9888,7 @@
          PT{"Португалија"}
          PW{"Палау"}
          PY{"Парагвај"}
-@@ -295,9 +295,6 @@ sr{
+@@ -295,17 +295,12 @@ sr{
      }
      Countries%short{
          GB{"УК"}
@@ -3596,10 +9898,90 @@
          UN{"УН"}
          US{"САД"}
      }
+     Countries%variant{
+         CD{"Конго (ДРК)"}
+         CG{"Конго (Република)"}
+-        FK{"Фокландска (Малвинска) острва"}
+-        MK{"Македонија (БЈРМ)"}
+     }
+     Version{"2.1.32.73"}
+ }
+diff --git a/source/data/region/sr_Cyrl_BA.txt b/source/data/region/sr_Cyrl_BA.txt
+index e97b576e..b98c3f04 100644
+--- a/source/data/region/sr_Cyrl_BA.txt
++++ b/source/data/region/sr_Cyrl_BA.txt
+@@ -9,6 +9,7 @@ sr_Cyrl_BA{
+         CZ{"Чешка Република"}
+         DE{"Њемачка"}
+         KN{"Свети Китс и Невис"}
++        MK{"БЈР Македонија"}
+         MO{"САР Макао"}
+         PM{"Свети Пјер и Микелон"}
+         RE{"Реунион"}
+@@ -18,8 +19,5 @@ sr_Cyrl_BA{
+         VG{"Британска Дјевичанска Острва"}
+         VI{"Америчка Дјевичанска Острва"}
+     }
+-    Countries%variant{
+-        MK{"БЈР Македонија"}
+-    }
+     Version{"2.1.31.33"}
+ }
+diff --git a/source/data/region/sr_Cyrl_ME.txt b/source/data/region/sr_Cyrl_ME.txt
+index 37a09d05..46bdb6b5 100644
+--- a/source/data/region/sr_Cyrl_ME.txt
++++ b/source/data/region/sr_Cyrl_ME.txt
+@@ -8,6 +8,7 @@ sr_Cyrl_ME{
+         CZ{"Чешка Република"}
+         DE{"Њемачка"}
+         KN{"Свети Китс и Невис"}
++        MK{"БЈР Македонија"}
+         PM{"Свети Пјер и Микелон"}
+         RE{"Реунион"}
+         TL{"Тимор-Лесте (Источни Тимор)"}
+@@ -16,8 +17,5 @@ sr_Cyrl_ME{
+         VG{"Британска Дјевичанска Острва"}
+         VI{"Америчка Дјевичанска Острва"}
+     }
+-    Countries%variant{
+-        MK{"БЈР Македонија"}
+-    }
+     Version{"2.1.31.33"}
+ }
+diff --git a/source/data/region/sr_Cyrl_XK.txt b/source/data/region/sr_Cyrl_XK.txt
+index 65894d3a..4b10753c 100644
+--- a/source/data/region/sr_Cyrl_XK.txt
++++ b/source/data/region/sr_Cyrl_XK.txt
+@@ -8,6 +8,7 @@ sr_Cyrl_XK{
+         CZ{"Чешка Република"}
+         HK{"САР Хонгконг"}
+         KN{"Свети Китс и Невис"}
++        MK{"БЈР Македонија"}
+         MO{"САР Макао"}
+         PM{"Свети Пјер и Микелон"}
+         RE{"Реунион"}
+@@ -15,8 +16,5 @@ sr_Cyrl_XK{
+         UM{"Мања удаљена острва САД"}
+         VC{"Свети Винсент и Гренадини"}
+     }
+-    Countries%variant{
+-        MK{"БЈР Македонија"}
+-    }
+     Version{"2.1.31.33"}
+ }
 diff --git a/source/data/region/sr_Latn.txt b/source/data/region/sr_Latn.txt
-index ea18fcf..83de120 100644
+index 654a6242..b6da1e24 100644
 --- a/source/data/region/sr_Latn.txt
 +++ b/source/data/region/sr_Latn.txt
+@@ -109,7 +109,7 @@ sr_Latn{
+         EU{"Evropska Unija"}
+         FI{"Finska"}
+         FJ{"Fidži"}
+-        FK{"Foklandska Ostrva"}
++        FK{"Foklandska (Malvinska) ostrva"}
+         FM{"Mikronezija"}
+         FO{"Farska Ostrva"}
+         FR{"Francuska"}
 @@ -132,7 +132,7 @@ sr_Latn{
          GU{"Guam"}
          GW{"Gvineja-Bisao"}
@@ -3609,7 +9991,12 @@
          HM{"Ostrvo Herd i Mekdonaldova ostrva"}
          HN{"Honduras"}
          HR{"Hrvatska"}
-@@ -186,7 +186,7 @@ sr_Latn{
+@@ -182,11 +182,11 @@ sr_Latn{
+         MF{"Sveti Martin (Francuska)"}
+         MG{"Madagaskar"}
+         MH{"Maršalska Ostrva"}
+-        MK{"Makedonija"}
++        MK{"Makedonija (BJRM)"}
          ML{"Mali"}
          MM{"Mijanmar (Burma)"}
          MN{"Mongolija"}
@@ -3627,7 +10014,7 @@
          PT{"Portugalija"}
          PW{"Palau"}
          PY{"Paragvaj"}
-@@ -296,9 +296,6 @@ sr_Latn{
+@@ -296,17 +296,12 @@ sr_Latn{
      }
      Countries%short{
          GB{"UK"}
@@ -3637,8 +10024,79 @@
          UN{"UN"}
          US{"SAD"}
      }
+     Countries%variant{
+         CD{"Kongo (DRK)"}
+         CG{"Kongo (Republika)"}
+-        FK{"Foklandska (Malvinska) ostrva"}
+-        MK{"Makedonija (BJRM)"}
+     }
+     Version{"2.1.32.73"}
+ }
+diff --git a/source/data/region/sr_Latn_BA.txt b/source/data/region/sr_Latn_BA.txt
+index 55d76ecc..7da7983f 100644
+--- a/source/data/region/sr_Latn_BA.txt
++++ b/source/data/region/sr_Latn_BA.txt
+@@ -9,6 +9,7 @@ sr_Latn_BA{
+         CZ{"Češka Republika"}
+         DE{"Njemačka"}
+         KN{"Sveti Kits i Nevis"}
++        MK{"BJR Makedonija"}
+         MO{"SAR Makao"}
+         PM{"Sveti Pjer i Mikelon"}
+         RE{"Reunion"}
+@@ -18,8 +19,5 @@ sr_Latn_BA{
+         VG{"Britanska Djevičanska Ostrva"}
+         VI{"Američka Djevičanska Ostrva"}
+     }
+-    Countries%variant{
+-        MK{"BJR Makedonija"}
+-    }
+     Version{"2.1.31.33"}
+ }
+diff --git a/source/data/region/sr_Latn_ME.txt b/source/data/region/sr_Latn_ME.txt
+index 2fdc9e7d..b3f49f14 100644
+--- a/source/data/region/sr_Latn_ME.txt
++++ b/source/data/region/sr_Latn_ME.txt
+@@ -8,6 +8,7 @@ sr_Latn_ME{
+         CZ{"Češka Republika"}
+         DE{"Njemačka"}
+         KN{"Sveti Kits i Nevis"}
++        MK{"BJR Makedonija"}
+         PM{"Sveti Pjer i Mikelon"}
+         RE{"Reunion"}
+         TL{"Timor-Leste (Istočni Timor)"}
+@@ -16,8 +17,5 @@ sr_Latn_ME{
+         VG{"Britanska Djevičanska Ostrva"}
+         VI{"Američka Djevičanska Ostrva"}
+     }
+-    Countries%variant{
+-        MK{"BJR Makedonija"}
+-    }
+     Version{"2.1.31.33"}
+ }
+diff --git a/source/data/region/sr_Latn_XK.txt b/source/data/region/sr_Latn_XK.txt
+index 53660718..88d77f1e 100644
+--- a/source/data/region/sr_Latn_XK.txt
++++ b/source/data/region/sr_Latn_XK.txt
+@@ -8,6 +8,7 @@ sr_Latn_XK{
+         CZ{"Češka Republika"}
+         HK{"SAR Hongkong"}
+         KN{"Sveti Kits i Nevis"}
++        MK{"BJR Makedonija"}
+         MO{"SAR Makao"}
+         PM{"Sveti Pjer i Mikelon"}
+         RE{"Reunion"}
+@@ -15,8 +16,5 @@ sr_Latn_XK{
+         UM{"Manja udaljena ostrva SAD"}
+         VC{"Sveti Vinsent i Grenadini"}
+     }
+-    Countries%variant{
+-        MK{"BJR Makedonija"}
+-    }
+     Version{"2.1.31.33"}
+ }
 diff --git a/source/data/region/sv.txt b/source/data/region/sv.txt
-index 48e4b60..58e4434 100644
+index 003ebc6e..154b4c99 100644
 --- a/source/data/region/sv.txt
 +++ b/source/data/region/sv.txt
 @@ -131,7 +131,7 @@ sv{
@@ -3650,7 +10108,12 @@
          HM{"Heardön och McDonaldöarna"}
          HN{"Honduras"}
          HR{"Kroatien"}
-@@ -185,7 +185,7 @@ sv{
+@@ -181,11 +181,11 @@ sv{
+         MF{"Saint-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshallöarna"}
+-        MK{"Makedonien"}
++        MK{"f.d. jugoslaviska republiken Makedonien"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongoliet"}
@@ -3668,7 +10131,7 @@
          PT{"Portugal"}
          PW{"Palau"}
          PY{"Paraguay"}
-@@ -295,9 +295,6 @@ sv{
+@@ -295,16 +295,12 @@ sv{
      }
      Countries%short{
          GB{"Storbritannien"}
@@ -3678,10 +10141,26 @@
          UN{"FN"}
          US{"USA"}
      }
+     Countries%variant{
+         CD{"Demokratiska republiken Kongo"}
+         CG{"Republiken Kongo"}
+-        MK{"f.d. jugoslaviska republiken Makedonien"}
+     }
+     Version{"2.1.32.59"}
+ }
 diff --git a/source/data/region/sw.txt b/source/data/region/sw.txt
-index 62adcc9..08330e7 100644
+index 0e65b535..c3603da0 100644
 --- a/source/data/region/sw.txt
 +++ b/source/data/region/sw.txt
+@@ -108,7 +108,7 @@ sw{
+         EU{"Umoja wa Ulaya"}
+         FI{"Ufini"}
+         FJ{"Fiji"}
+-        FK{"Visiwa vya Falkland"}
++        FK{"Visiwa vya Falkland (Islas Malvinas)"}
+         FM{"Mikronesia"}
+         FO{"Visiwa vya Faroe"}
+         FR{"Ufaransa"}
 @@ -131,7 +131,7 @@ sw{
          GU{"Guam"}
          GW{"Ginebisau"}
@@ -3691,7 +10170,12 @@
          HM{"Kisiwa cha Heard na Visiwa vya McDonald"}
          HN{"Hondurasi"}
          HR{"Korasia"}
-@@ -185,7 +185,7 @@ sw{
+@@ -181,11 +181,11 @@ sw{
+         MF{"Saint Martin"}
+         MG{"Madagaska"}
+         MH{"Visiwa vya Marshall"}
+-        MK{"Macedonia"}
++        MK{"Masedonia (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Burma)"}
          MN{"Mongolia"}
@@ -3719,10 +10203,28 @@
          UN{"umoja wa mataifa"}
          US{"US"}
      }
+@@ -306,8 +303,6 @@ sw{
+         CG{"Jamhuri ya Kongo"}
+         CI{"Ivory Coast"}
+         CZ{"Jamhuri ya Cheki"}
+-        FK{"Visiwa vya Falkland (Islas Malvinas)"}
+-        MK{"Masedonia (FYROM)"}
+         TL{"Timor ya Mashariki"}
+     }
+     Version{"2.1.33.73"}
 diff --git a/source/data/region/ta.txt b/source/data/region/ta.txt
-index 329e0c0..cddce79 100644
+index 22c55e21..8ffcd1cb 100644
 --- a/source/data/region/ta.txt
 +++ b/source/data/region/ta.txt
+@@ -108,7 +108,7 @@ ta{
+         EU{"ஐரோப்பிய யூனியன்"}
+         FI{"பின்லாந்து"}
+         FJ{"ஃபிஜி"}
+-        FK{"ஃபாக்லாந்து தீவுகள்"}
++        FK{"ஃபாக்லாந்து தீவுகள் (இஸ்லாஸ் மால்வினஸ்)"}
+         FM{"மைக்ரோனேஷியா"}
+         FO{"ஃபாரோ தீவுகள்"}
+         FR{"பிரான்ஸ்"}
 @@ -131,7 +131,7 @@ ta{
          GU{"குவாம்"}
          GW{"கினியா-பிஸ்ஸாவ்"}
@@ -3732,7 +10234,12 @@
          HM{"ஹேர்ட் மற்றும் மெக்டொனால்டு தீவுகள்"}
          HN{"ஹோண்டூராஸ்"}
          HR{"குரேஷியா"}
-@@ -185,7 +185,7 @@ ta{
+@@ -181,11 +181,11 @@ ta{
+         MF{"செயின்ட் மார்ட்டீன்"}
+         MG{"மடகாஸ்கர்"}
+         MH{"மார்ஷல் தீவுகள்"}
+-        MK{"மாசிடோனியா"}
++        MK{"மாசிடோனியா (ஃபைரோம்)"}
          ML{"மாலி"}
          MM{"மியான்மார் (பர்மா)"}
          MN{"மங்கோலியா"}
@@ -3760,10 +10267,28 @@
          UN{"ஐநா"}
          US{"யூஎஸ்"}
      }
+@@ -306,8 +303,6 @@ ta{
+         CG{"காங்கோ (குடியரசு)"}
+         CI{"ஐவரி கோஸ்ட்"}
+         CZ{"செக் குடியரசு"}
+-        FK{"ஃபாக்லாந்து தீவுகள் (இஸ்லாஸ் மால்வினஸ்)"}
+-        MK{"மாசிடோனியா (ஃபைரோம்)"}
+         TL{"கிழக்கு தைமூர்"}
+     }
+     Version{"2.1.32.4"}
 diff --git a/source/data/region/te.txt b/source/data/region/te.txt
-index e154bf6..d5b3718 100644
+index f5e4d6ad..944adda9 100644
 --- a/source/data/region/te.txt
 +++ b/source/data/region/te.txt
+@@ -108,7 +108,7 @@ te{
+         EU{"యూరోపియన్ యూనియన్"}
+         FI{"ఫిన్లాండ్"}
+         FJ{"ఫిజీ"}
+-        FK{"ఫాక్‌ల్యాండ్ దీవులు"}
++        FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}
+         FM{"మైక్రోనేషియా"}
+         FO{"ఫారో దీవులు"}
+         FR{"ఫ్రాన్స్‌"}
 @@ -131,7 +131,7 @@ te{
          GU{"గ్వామ్"}
          GW{"గినియా-బిస్సావ్"}
@@ -3773,7 +10298,12 @@
          HM{"హెర్డ్ & మెక్ డొనాల్డ్ దీవులు"}
          HN{"హోండురాస్"}
          HR{"క్రోయేషియా"}
-@@ -185,7 +185,7 @@ te{
+@@ -181,11 +181,11 @@ te{
+         MF{"సెంట్ మార్టిన్"}
+         MG{"మడగాస్కర్"}
+         MH{"మార్షల్ దీవులు"}
+-        MK{"మేసిడోనియా"}
++        MK{"మేసిడోనియా (FYROM)"}
          ML{"మాలి"}
          MM{"మయన్మార్ (బర్మా)"}
          MN{"మంగోలియా"}
@@ -3801,10 +10331,28 @@
          UN{"యుఎన్"}
          US{"యు.ఎస్."}
      }
+@@ -306,8 +303,6 @@ te{
+         CG{"కాంగో (రిపబ్లిక్)"}
+         CI{"ఐవరీ కోస్ట్"}
+         CZ{"చెక్ రిపబ్లిక్"}
+-        FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}
+-        MK{"మేసిడోనియా (FYROM)"}
+         TL{"తూర్పు తైమూర్"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/th.txt b/source/data/region/th.txt
-index 647b2d0..b3e52bf 100644
+index 60d54588..2c37b553 100644
 --- a/source/data/region/th.txt
 +++ b/source/data/region/th.txt
+@@ -108,7 +108,7 @@ th{
+         EU{"สหภาพยุโรป"}
+         FI{"ฟินแลนด์"}
+         FJ{"ฟิจิ"}
+-        FK{"หมู่เกาะฟอล์กแลนด์"}
++        FK{"หมู่เกาะฟอล์กแลนด์ (อิสลาส มาลวินาส)"}
+         FM{"ไมโครนีเซีย"}
+         FO{"หมู่เกาะแฟโร"}
+         FR{"ฝรั่งเศส"}
 @@ -131,7 +131,7 @@ th{
          GU{"กวม"}
          GW{"กินี-บิสเซา"}
@@ -3814,7 +10362,12 @@
          HM{"เกาะเฮิร์ดและหมู่เกาะแมกดอนัลด์"}
          HN{"ฮอนดูรัส"}
          HR{"โครเอเชีย"}
-@@ -185,7 +185,7 @@ th{
+@@ -181,11 +181,11 @@ th{
+         MF{"เซนต์มาติน"}
+         MG{"มาดากัสการ์"}
+         MH{"หมู่เกาะมาร์แชลล์"}
+-        MK{"มาซิโดเนีย"}
++        MK{"มาซิโดเนีย (FYROM)"}
          ML{"มาลี"}
          MM{"เมียนมาร์ (พม่า)"}
          MN{"มองโกเลีย"}
@@ -3842,8 +10395,17 @@
          UN{"สหประชาชาติ"}
          US{"สหรัฐฯ"}
      }
+@@ -306,8 +303,6 @@ th{
+         CG{"คองโก (สาธารณรัฐ)"}
+         CI{"ไอวอรี่โคสต์"}
+         CZ{"สาธารณรัฐเช็ก"}
+-        FK{"หมู่เกาะฟอล์กแลนด์ (อิสลาส มาลวินาส)"}
+-        MK{"มาซิโดเนีย (FYROM)"}
+         TL{"ติมอร์ตะวันออก"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/to.txt b/source/data/region/to.txt
-index 892a837..3f4042c 100644
+index 94477ca4..f3e2a0e2 100644
 --- a/source/data/region/to.txt
 +++ b/source/data/region/to.txt
 @@ -131,7 +131,7 @@ to{
@@ -3855,7 +10417,12 @@
          HM{"ʻOtumotu Heati mo Makitonali"}
          HN{"Honitulasi"}
          HR{"Kuloisia"}
-@@ -185,7 +185,7 @@ to{
+@@ -181,11 +181,11 @@ to{
+         MF{"Sā Mātini (fakafalanisē)"}
+         MG{"Matakasika"}
+         MH{"ʻOtumotu Māsolo"}
+-        MK{"Masetōnia"}
++        MK{"Masetōnia (FYROM)"}
          ML{"Māli"}
          MM{"Pema"}
          MN{"Mongokōlia"}
@@ -3873,7 +10440,7 @@
          PT{"Potukali"}
          PW{"Palau"}
          PY{"Palakuai"}
-@@ -294,9 +294,6 @@ to{
+@@ -294,16 +294,12 @@ to{
      }
      Countries%short{
          GB{"Pilitānia"}
@@ -3883,10 +10450,26 @@
          US{"ʻAmelika"}
      }
      Countries%variant{
+         CD{"Kongo (LTK)"}
+         CG{"Kongo (Lipapilika)"}
+         CZ{"Lipapilika Seki"}
+-        MK{"Masetōnia (FYROM)"}
+     }
+     Version{"2.1.31.74"}
+ }
 diff --git a/source/data/region/tr.txt b/source/data/region/tr.txt
-index 910bd96..822189f 100644
+index 96c613ad..1c771e9d 100644
 --- a/source/data/region/tr.txt
 +++ b/source/data/region/tr.txt
+@@ -108,7 +108,7 @@ tr{
+         EU{"Avrupa Birliği"}
+         FI{"Finlandiya"}
+         FJ{"Fiji"}
+-        FK{"Falkland Adaları"}
++        FK{"Falkland Adaları (Malvinas Adaları)"}
+         FM{"Mikronezya"}
+         FO{"Faroe Adaları"}
+         FR{"Fransa"}
 @@ -131,7 +131,7 @@ tr{
          GU{"Guam"}
          GW{"Gine-Bissau"}
@@ -3924,10 +10507,27 @@
          UN{"BM"}
          US{"ABD"}
      }
+@@ -305,7 +302,6 @@ tr{
+         CD{"Kongo Demokratik Cumhuriyeti"}
+         CG{"Kongo Cumhuriyeti"}
+         CZ{"Çek Cumhuriyeti"}
+-        FK{"Falkland Adaları (Malvinas Adaları)"}
+         TL{"Doğu Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/ug.txt b/source/data/region/ug.txt
-index 0611c0c..25c753d 100644
+index feabfdcc..d9604088 100644
 --- a/source/data/region/ug.txt
 +++ b/source/data/region/ug.txt
+@@ -108,7 +108,7 @@ ug{
+         EU{"ياۋروپا ئىتتىپاقى"}
+         FI{"فىنلاندىيە"}
+         FJ{"فىجى"}
+-        FK{"فالكلاند ئاراللىرى"}
++        FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}
+         FM{"مىكرونېزىيە"}
+         FO{"فارو ئاراللىرى"}
+         FR{"فىرانسىيە"}
 @@ -131,7 +131,7 @@ ug{
          GU{"گۇئام"}
          GW{"گىۋىنىيە بىسسائۇ"}
@@ -3937,7 +10537,12 @@
          HM{"ھېرد ئارىلى ۋە ماكدونالد ئاراللىرى"}
          HN{"ھوندۇراس"}
          HR{"كىرودىيە"}
-@@ -185,7 +185,7 @@ ug{
+@@ -181,11 +181,11 @@ ug{
+         MF{"ساينت مارتىن"}
+         MG{"ماداغاسقار"}
+         MH{"مارشال ئاراللىرى"}
+-        MK{"ماكېدونىيە"}
++        MK{"ماكېدونىيە (س ي م ج)"}
          ML{"مالى"}
          MM{"بىرما"}
          MN{"موڭغۇلىيە"}
@@ -3955,7 +10560,7 @@
          PT{"پورتۇگالىيە"}
          PW{"پالائۇ"}
          PY{"پاراگۋاي"}
-@@ -294,9 +294,6 @@ ug{
+@@ -294,17 +294,12 @@ ug{
      }
      Countries%short{
          GB{"ئەنگلىيە"}
@@ -3965,19 +10570,27 @@
          US{"ئا ق ش"}
      }
      Countries%variant{
+         CD{"كونگو (ك د ج)"}
+         CG{"كونگو (جۇمھۇرىيىتى)"}
+         CI{"پىل چىشى قىرغىقى"}
+-        FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}
+-        MK{"ماكېدونىيە (س ي م ج)"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/uk.txt b/source/data/region/uk.txt
-index 126fa0e..c8f4b3a 100644
+index f72ceb5d..d0cad46a 100644
 --- a/source/data/region/uk.txt
 +++ b/source/data/region/uk.txt
-@@ -109,7 +109,7 @@ uk{
+@@ -108,7 +108,7 @@ uk{
+         EU{"Європейський Союз"}
          FI{"Фінляндія"}
          FJ{"Фіджі"}
-         FK{"Фолклендські острови"}
--        FM{"Мікронезія"}
-+        FM{"Мікронезія Федеративні Штати"}
+-        FK{"Фолклендські острови"}
++        FK{"Фолклендські (Мальвінські) острови"}
+         FM{"Мікронезія"}
          FO{"Фарерські Острови"}
          FR{"Франція"}
-         GA{"Габон"}
 @@ -131,7 +131,7 @@ uk{
          GU{"Гуам"}
          GW{"Гвінея-Бісау"}
@@ -3987,7 +10600,12 @@
          HM{"Острови Херд і Мак-Дональд"}
          HN{"Гондурас"}
          HR{"Хорватія"}
-@@ -185,7 +185,7 @@ uk{
+@@ -181,11 +181,11 @@ uk{
+         MF{"Сен-Мартен"}
+         MG{"Мадагаскар"}
+         MH{"Маршаллові Острови"}
+-        MK{"Македонія"}
++        MK{"Македонія (КЮРМ)"}
          ML{"Малі"}
          MM{"Мʼянма (Бірма)"}
          MN{"Монголія"}
@@ -4015,10 +10633,29 @@
          UN{"ООН"}
          US{"США"}
      }
+@@ -306,9 +303,7 @@ uk{
+         CG{"Конго (Республіка)"}
+         CI{"Берег Слонової Кістки"}
+         CZ{"Чеська Республіка"}
+-        FK{"Фолклендські (Мальвінські) острови"}
+         FM{"Федеративні Штати Мікронезії"}
+-        MK{"Македонія (КЮРМ)"}
+         TL{"Східний Тимор"}
+     }
+     Version{"2.1.32.60"}
 diff --git a/source/data/region/ur.txt b/source/data/region/ur.txt
-index 3478cde..06b05f3 100644
+index 259e31aa..26c35697 100644
 --- a/source/data/region/ur.txt
 +++ b/source/data/region/ur.txt
+@@ -108,7 +108,7 @@ ur{
+         EU{"یوروپی یونین"}
+         FI{"فن لینڈ"}
+         FJ{"فجی"}
+-        FK{"فاکلینڈ جزائر"}
++        FK{"فاکلینڈ جزائر (مالویناس)"}
+         FM{"مائکرونیشیا"}
+         FO{"جزائر فارو"}
+         FR{"فرانس"}
 @@ -131,7 +131,7 @@ ur{
          GU{"گوام"}
          GW{"گنی بساؤ"}
@@ -4028,7 +10665,12 @@
          HM{"ہیرڈ جزیرہ و میکڈولینڈ جزائر"}
          HN{"ہونڈاروس"}
          HR{"کروشیا"}
-@@ -185,7 +185,7 @@ ur{
+@@ -181,11 +181,11 @@ ur{
+         MF{"سینٹ مارٹن"}
+         MG{"مڈغاسکر"}
+         MH{"مارشل آئلینڈز"}
+-        MK{"مقدونیہ"}
++        MK{"مقدونیہ (FYROM)"}
          ML{"مالی"}
          MM{"میانمار (برما)"}
          MN{"منگولیا"}
@@ -4056,10 +10698,50 @@
          UN{"اقوام متحدہ"}
          US{"امریکا"}
      }
+@@ -306,8 +303,6 @@ ur{
+         CG{"کانگو (جمہوریہ)"}
+         CI{"آئیوری کوسٹ"}
+         CZ{"چیک جمہوریہ"}
+-        FK{"فاکلینڈ جزائر (مالویناس)"}
+-        MK{"مقدونیہ (FYROM)"}
+         TL{"مشرقی تیمور"}
+     }
+     Version{"2.1.32.59"}
+diff --git a/source/data/region/ur_IN.txt b/source/data/region/ur_IN.txt
+index 1b207c8d..a1ef7c79 100644
+--- a/source/data/region/ur_IN.txt
++++ b/source/data/region/ur_IN.txt
+@@ -9,7 +9,7 @@ ur_IN{
+         CK{"جزائر کک"}
+         CP{"جزیرہ کلپرٹن"}
+         DG{"ڈیگو گارشیا"}
+-        FK{"جزائر فاکلینڈ"}
++        FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}
+         FO{"جزائر فیرو"}
+         GF{"فرانسیسی گیانا"}
+         HM{"جزائر ہرڈ و مکڈونلڈ"}
+@@ -26,8 +26,5 @@ ur_IN{
+         VG{"برطانوی جزائر ورجن"}
+         VI{"امریکی جزائر ورجن"}
+     }
+-    Countries%variant{
+-        FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}
+-    }
+     Version{"2.1.31.33"}
+ }
 diff --git a/source/data/region/uz.txt b/source/data/region/uz.txt
-index fdb3580..cc57696 100644
+index fe9c4e24..f8c56b6a 100644
 --- a/source/data/region/uz.txt
 +++ b/source/data/region/uz.txt
+@@ -108,7 +108,7 @@ uz{
+         EU{"Yevropa Ittifoqi"}
+         FI{"Finlandiya"}
+         FJ{"Fiji"}
+-        FK{"Folklend orollari"}
++        FK{"Folklend (Malvin) orollari"}
+         FM{"Mikroneziya"}
+         FO{"Farer orollari"}
+         FR{"Fransiya"}
 @@ -131,7 +131,7 @@ uz{
          GU{"Guam"}
          GW{"Gvineya-Bisau"}
@@ -4069,7 +10751,12 @@
          HM{"Xerd va Makdonald orollari"}
          HN{"Gonduras"}
          HR{"Xorvatiya"}
-@@ -185,7 +185,7 @@ uz{
+@@ -181,11 +181,11 @@ uz{
+         MF{"Sent-Martin"}
+         MG{"Madagaskar"}
+         MH{"Marshall orollari"}
+-        MK{"Makedoniya"}
++        MK{"Makedoniya (SYRM)"}
          ML{"Mali"}
          MM{"Myanma (Birma)"}
          MN{"Mongoliya"}
@@ -4097,10 +10784,28 @@
          UN{"BMT"}
          US{"AQSH"}
      }
+@@ -306,8 +303,6 @@ uz{
+         CG{"Kongo (Respublika)"}
+         CI{"Fil suyagi qirg‘og‘i"}
+         CZ{"Chexiya Respublikasi"}
+-        FK{"Folklend (Malvin) orollari"}
+-        MK{"Makedoniya (SYRM)"}
+         TL{"Sharqiy Timor"}
+     }
+     Version{"2.1.32.60"}
 diff --git a/source/data/region/uz_Cyrl.txt b/source/data/region/uz_Cyrl.txt
-index 010dd64..6c9addc 100644
+index af3ad0c0..fc03e14d 100644
 --- a/source/data/region/uz_Cyrl.txt
 +++ b/source/data/region/uz_Cyrl.txt
+@@ -109,7 +109,7 @@ uz_Cyrl{
+         EU{"Европа Иттифоқи"}
+         FI{"Финляндия"}
+         FJ{"Фижи"}
+-        FK{"Фолкленд ороллари"}
++        FK{"Фолкленд (Малвин) ороллари"}
+         FM{"Микронезия"}
+         FO{"Фарер ороллари"}
+         FR{"Франция"}
 @@ -132,7 +132,7 @@ uz_Cyrl{
          GU{"Гуам"}
          GW{"Гвинея-Бисау"}
@@ -4110,7 +10815,12 @@
          HM{"Херд ва Макдоналд ороллари"}
          HN{"Гондурас"}
          HR{"Хорватия"}
-@@ -186,7 +186,7 @@ uz_Cyrl{
+@@ -182,11 +182,11 @@ uz_Cyrl{
+         MF{"Сент-Мартин"}
+         MG{"Мадагаскар"}
+         MH{"Маршал ороллари"}
+-        MK{"Македония"}
++        MK{"Македония (СЮРМ)"}
          ML{"Мали"}
          MM{"Мьянма (Бирма)"}
          MN{"Монголия"}
@@ -4138,10 +10848,28 @@
          US{"АҚШ"}
      }
      Countries%variant{
+@@ -305,8 +302,6 @@ uz_Cyrl{
+         CG{"Конго (Республика)"}
+         CI{"Фил Суяги Қирғоғи"}
+         CZ{"Чехия Республикаси"}
+-        FK{"Фолкленд (Малвин) ороллари"}
+-        MK{"Македония (СЮРМ)"}
+         TL{"Шарқий Тимор"}
+     }
+     Version{"2.1.31.86"}
 diff --git a/source/data/region/vi.txt b/source/data/region/vi.txt
-index e530406..5a932f8 100644
+index 9da3617a..402adcd8 100644
 --- a/source/data/region/vi.txt
 +++ b/source/data/region/vi.txt
+@@ -108,7 +108,7 @@ vi{
+         EU{"Liên Minh Châu Âu"}
+         FI{"Phần Lan"}
+         FJ{"Fiji"}
+-        FK{"Quần đảo Falkland"}
++        FK{"Quần đảo Falkland (Islas Malvinas)"}
+         FM{"Micronesia"}
+         FO{"Quần đảo Faroe"}
+         FR{"Pháp"}
 @@ -131,7 +131,7 @@ vi{
          GU{"Guam"}
          GW{"Guinea-Bissau"}
@@ -4151,7 +10879,12 @@
          HM{"Quần đảo Heard và McDonald"}
          HN{"Honduras"}
          HR{"Croatia"}
-@@ -185,7 +185,7 @@ vi{
+@@ -181,11 +181,11 @@ vi{
+         MF{"St. Martin"}
+         MG{"Madagascar"}
+         MH{"Quần đảo Marshall"}
+-        MK{"Macedonia"}
++        MK{"Macedonia (FYROM)"}
          ML{"Mali"}
          MM{"Myanmar (Miến Điện)"}
          MN{"Mông Cổ"}
@@ -4179,10 +10912,28 @@
          UN{"Liên hiệp quốc"}
          US{"Hoa Kỳ"}
      }
+@@ -306,8 +303,6 @@ vi{
+         CG{"Cộng hòa Congo"}
+         CI{"Bờ Biển Ngà"}
+         CZ{"Cộng hòa Séc"}
+-        FK{"Quần đảo Falkland (Islas Malvinas)"}
+-        MK{"Macedonia (FYROM)"}
+         TL{"Đông Timor"}
+     }
+     Version{"2.1.32.59"}
 diff --git a/source/data/region/wae.txt b/source/data/region/wae.txt
-index 74e057d..40a13bf 100644
+index 6e47d12b..c3fed925 100644
 --- a/source/data/region/wae.txt
 +++ b/source/data/region/wae.txt
+@@ -106,7 +106,7 @@ wae{
+         EU{"Europäiši Unio"}
+         FI{"Finnland"}
+         FJ{"Fidši"}
+-        FK{"Falklandinslä"}
++        FK{"Falklandinslä (Malwine)"}
+         FM{"Mikronesie"}
+         FO{"Färöe"}
+         FR{"Frankrič"}
 @@ -129,7 +129,7 @@ wae{
          GU{"Guam"}
          GW{"Ginea Bissau"}
@@ -4192,7 +10943,12 @@
          HM{"Heard- und McDonald-Inslä"}
          HN{"Honduras"}
          HR{"Kroatie"}
-@@ -183,7 +183,7 @@ wae{
+@@ -179,11 +179,11 @@ wae{
+         MF{"St. Martin"}
+         MG{"Madagaskar"}
+         MH{"Maršalinslä"}
+-        MK{"Mazedonie"}
++        MK{"Mazedonie (EJR)"}
          ML{"Mali"}
          MM{"Burma"}
          MN{"Mongolei"}
@@ -4201,7 +10957,7 @@
          MP{"Nördliči Mariane"}
          MQ{"Martinique"}
          MR{"Mauretanie"}
-@@ -287,10 +287,6 @@ wae{
+@@ -287,16 +287,10 @@ wae{
          ZW{"Simbabwe"}
          ZZ{"Unbekannti Regio"}
      }
@@ -4212,10 +10968,25 @@
      Countries%variant{
          CD{"Kongo (Demokratiši Rebublik)"}
          CG{"Kongo (Rebublik)"}
+         CI{"Côte d’Ivoire"}
+-        FK{"Falklandinslä (Malwine)"}
+-        MK{"Mazedonie (EJR)"}
+         TL{"Wešttimor"}
+     }
+     Version{"2.1.31.33"}
 diff --git a/source/data/region/yue.txt b/source/data/region/yue.txt
-index a82634b..fb97921 100644
+index 3ee3dab7..0161a3a2 100644
 --- a/source/data/region/yue.txt
 +++ b/source/data/region/yue.txt
+@@ -108,7 +108,7 @@ yue{
+         EU{"歐盟"}
+         FI{"芬蘭"}
+         FJ{"斐濟"}
+-        FK{"福克蘭群島"}
++        FK{"福克蘭群島 (馬爾維納斯群島)"}
+         FM{"密克羅尼西亞群島"}
+         FO{"法羅群島"}
+         FR{"法國"}
 @@ -131,7 +131,7 @@ yue{
          GU{"關島"}
          GW{"幾內亞比索"}
@@ -4225,7 +10996,12 @@
          HM{"赫德島同麥克唐納群島"}
          HN{"宏都拉斯"}
          HR{"克羅埃西亞"}
-@@ -185,7 +185,7 @@ yue{
+@@ -181,11 +181,11 @@ yue{
+         MF{"法屬聖馬丁"}
+         MG{"馬達加斯加"}
+         MH{"馬紹爾群島"}
+-        MK{"馬其頓"}
++        MK{"前南斯拉夫馬其頓共和國"}
          ML{"馬利"}
          MM{"緬甸"}
          MN{"蒙古"}
@@ -4243,7 +11019,7 @@
          PT{"葡萄牙"}
          PW{"帛琉"}
          PY{"巴拉圭"}
-@@ -294,9 +294,6 @@ yue{
+@@ -294,17 +294,12 @@ yue{
      }
      Countries%short{
          GB{"英國"}
@@ -4253,10 +11029,27 @@
          US{"美國"}
      }
      Countries%variant{
+         CD{"剛果民主共和國"}
+         CG{"剛果共和國"}
+         CZ{"捷克共和國"}
+-        FK{"福克蘭群島 (馬爾維納斯群島)"}
+-        MK{"前南斯拉夫馬其頓共和國"}
+     }
+     Version{"2.1.31.86"}
+ }
 diff --git a/source/data/region/zh.txt b/source/data/region/zh.txt
-index 96c2558..8ae57e3 100644
+index 8cfc9381..c2fb0220 100644
 --- a/source/data/region/zh.txt
 +++ b/source/data/region/zh.txt
+@@ -108,7 +108,7 @@ zh{
+         EU{"欧盟"}
+         FI{"芬兰"}
+         FJ{"斐济"}
+-        FK{"福克兰群岛"}
++        FK{"福克兰群岛(马尔维纳斯群岛)"}
+         FM{"密克罗尼西亚"}
+         FO{"法罗群岛"}
+         FR{"法国"}
 @@ -131,7 +131,7 @@ zh{
          GU{"关岛"}
          GW{"几内亚比绍"}
@@ -4266,7 +11059,12 @@
          HM{"赫德岛和麦克唐纳群岛"}
          HN{"洪都拉斯"}
          HR{"克罗地亚"}
-@@ -185,7 +185,7 @@ zh{
+@@ -181,11 +181,11 @@ zh{
+         MF{"圣马丁岛"}
+         MG{"马达加斯加"}
+         MH{"马绍尔群岛"}
+-        MK{"马其顿"}
++        MK{"马其顿(前南斯拉夫马其顿共和国)"}
          ML{"马里"}
          MM{"缅甸"}
          MN{"蒙古"}
@@ -4294,10 +11092,28 @@
          UN{"联合国"}
          US{"美国"}
      }
+@@ -306,8 +303,6 @@ zh{
+         CG{"刚果共和国"}
+         CI{"象牙海岸"}
+         CZ{"捷克共和国"}
+-        FK{"福克兰群岛(马尔维纳斯群岛)"}
+-        MK{"马其顿(前南斯拉夫马其顿共和国)"}
+     }
+     Version{"2.1.33.94"}
+ }
 diff --git a/source/data/region/zh_Hant.txt b/source/data/region/zh_Hant.txt
-index 2084fa2..d6ec460 100644
+index 4692359e..d7e63aa8 100644
 --- a/source/data/region/zh_Hant.txt
 +++ b/source/data/region/zh_Hant.txt
+@@ -109,7 +109,7 @@ zh_Hant{
+         EU{"歐盟"}
+         FI{"芬蘭"}
+         FJ{"斐濟"}
+-        FK{"福克蘭群島"}
++        FK{"福克蘭群島(馬爾維納斯群島)"}
+         FM{"密克羅尼西亞群島"}
+         FO{"法羅群島"}
+         FR{"法國"}
 @@ -132,7 +132,7 @@ zh_Hant{
          GU{"關島"}
          GW{"幾內亞比索"}
@@ -4307,7 +11123,12 @@
          HM{"赫德島和麥克唐納群島"}
          HN{"宏都拉斯"}
          HR{"克羅埃西亞"}
-@@ -186,7 +186,7 @@ zh_Hant{
+@@ -182,11 +182,11 @@ zh_Hant{
+         MF{"法屬聖馬丁"}
+         MG{"馬達加斯加"}
+         MH{"馬紹爾群島"}
+-        MK{"馬其頓"}
++        MK{"前南斯拉夫馬其頓共和國"}
          ML{"馬利"}
          MM{"緬甸"}
          MN{"蒙古"}
@@ -4335,10 +11156,28 @@
          UN{"聯合國"}
          US{"美國"}
      }
+@@ -306,8 +303,6 @@ zh_Hant{
+         CD{"剛果民主共和國"}
+         CG{"剛果共和國"}
+         CZ{"捷克共和國"}
+-        FK{"福克蘭群島(馬爾維納斯群島)"}
+-        MK{"前南斯拉夫馬其頓共和國"}
+     }
+     Version{"2.1.33.94"}
+ }
 diff --git a/source/data/region/zu.txt b/source/data/region/zu.txt
-index fa87b1f..150f0db 100644
+index 9e34d123..5d2bd29d 100644
 --- a/source/data/region/zu.txt
 +++ b/source/data/region/zu.txt
+@@ -108,7 +108,7 @@ zu{
+         EU{"i-European Union"}
+         FI{"i-Finland"}
+         FJ{"i-Fiji"}
+-        FK{"i-Falkland Islands"}
++        FK{"i-Falkland Islands (Islas Malvinas)"}
+         FM{"i-Micronesia"}
+         FO{"i-Faroe Islands"}
+         FR{"i-France"}
 @@ -131,7 +131,7 @@ zu{
          GU{"i-Guam"}
          GW{"i-Guinea-Bissau"}
@@ -4348,7 +11187,12 @@
          HM{"i-Heard Island ne-McDonald Islands"}
          HN{"i-Honduras"}
          HR{"i-Croatia"}
-@@ -185,7 +185,7 @@ zu{
+@@ -181,11 +181,11 @@ zu{
+         MF{"i-Saint Martin"}
+         MG{"i-Madagascar"}
+         MH{"i-Marshall Islands"}
+-        MK{"i-Macedonia"}
++        MK{"i-Macedonia (FYROM)"}
          ML{"iMali"}
          MM{"i-Myanmar (Burma)"}
          MN{"i-Mongolia"}
@@ -4376,11 +11220,34 @@
          UN{"ifulegi"}
          US{"i-U.S"}
      }
+@@ -306,8 +303,6 @@ zu{
+         CG{"i-Congo (Republic)"}
+         CI{"i-Ivory Coast"}
+         CZ{"i-Czech Republic"}
+-        FK{"i-Falkland Islands (Islas Malvinas)"}
+-        MK{"i-Macedonia (FYROM)"}
+         TL{"i-East Timor"}
+     }
+     Version{"2.1.31.74"}
+diff --git a/source/data/translit/Hani_Latn.txt b/source/data/translit/Hani_Latn.txt
+index 8cd8fc53..7e7210da 100644
+--- a/source/data/translit/Hani_Latn.txt
++++ b/source/data/translit/Hani_Latn.txt
+@@ -13,6 +13,9 @@
+ 藏 } \u0020? 文 →zàng;# 藏 is zàng (not cáng) if followed by 文 wén: 藏文 language Zàngwén = Tibetan
+ 重 } \u0020? 庆 →chóng;# 重 is chóng (not zhòng) if followed by 庆 qìng: 重庆 city Chóngqìng
+ 沈 } \u0020? 阳 →shěn;# 沈 is shěn (not chén) if followed by 阳 yáng: 沈阳 city Shěnyáng
++# Google patch: change of three rules based on issue description in CLDR ticket 9925:
++# http://unicode.org/cldr/trac/ticket/9925. The changes are in the premises of the rules that
++# map to 'dūn', to 'duì', and to gǔ, respectively.
+ # START AUTOGENERATED Han-Latin.xml ( Unihan kMandarin)
+ [锕阿𠼞𥥩𨉚]→ā;
+ [嗄]→á;
 diff --git a/source/data/zone/ko.txt b/source/data/zone/ko.txt
-index 0da4bf2..49e4f14 100644
+index abd09d3e..9560017c 100644
 --- a/source/data/zone/ko.txt
 +++ b/source/data/zone/ko.txt
-@@ -1626,9 +1626,9 @@ ko{
+@@ -1629,9 +1629,9 @@ ko{
              ls{"서부 카자흐스탄 시간"}
          }
          "meta:Korea"{
@@ -4393,37 +11260,3 @@
          }
          "meta:Kosrae"{
              ls{"코스라에섬 시간"}
-diff --git a/source/data/zone/zh.txt b/source/data/zone/zh.txt
-index 0181098..87eeaf3 100644
---- a/source/data/zone/zh.txt
-+++ b/source/data/zone/zh.txt
-@@ -833,6 +833,12 @@ zh{
-         }
-         "Asia:Taipei"{
-             ec{"台北"}
-+            ld{"台北夏令时间"}
-+            lg{"台北时间"}
-+            ls{"台北标准时间"}
-+            sd{"台北"}
-+            sg{"台北"}
-+            ss{"台北"}
-         }
-         "Asia:Tashkent"{
-             ec{"塔什干"}
-diff --git a/source/data/zone/zh_Hant.txt b/source/data/zone/zh_Hant.txt
-index 5e6dade..06f45b1 100644
---- a/source/data/zone/zh_Hant.txt
-+++ b/source/data/zone/zh_Hant.txt
-@@ -834,6 +834,12 @@ zh_Hant{
-         }
-         "Asia:Taipei"{
-             ec{"台北"}
-+            ld{"台北夏令時間"}
-+            lg{"台北時間"}
-+            ls{"台北標準時間"}
-+            sd{"台北"}
-+            sg{"台北"}
-+            ss{"台北"}
-         }
-         "Asia:Tashkent"{
-             ec{"塔什干"}
diff --git a/patches/msvc4229.patch b/patches/msvc4229.patch
new file mode 100644
index 0000000..4c9eed4
--- /dev/null
+++ b/patches/msvc4229.patch
@@ -0,0 +1,13 @@
+diff --git a/source/common/unicode/uclean.h b/source/common/unicode/uclean.h
+index 5beb1f7c..f83dd5ef 100644
+--- a/source/common/unicode/uclean.h
++++ b/source/common/unicode/uclean.h
+@@ -149,7 +149,7 @@ typedef void  U_CALLCONV UMemFreeFn (const void *context, void *mem);
+  *  @system
+  */  
+ U_STABLE void U_EXPORT2 
+-u_setMemoryFunctions(const void *context, UMemAllocFn * U_CALLCONV a, UMemReallocFn * U_CALLCONV r, UMemFreeFn * U_CALLCONV f, 
++u_setMemoryFunctions(const void *context, UMemAllocFn * a, UMemReallocFn * r, UMemFreeFn * f, 
+                     UErrorCode *status);
+ 
+ U_CDECL_END
diff --git a/patches/scriptset.patch b/patches/scriptset.patch
deleted file mode 100644
index 6fcd5b0..0000000
--- a/patches/scriptset.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/source/i18n/scriptset.cpp b/source/i18n/scriptset.cpp
-index 5a42535..ff853b8 100644
---- a/source/i18n/scriptset.cpp
-+++ b/source/i18n/scriptset.cpp
-@@ -258,7 +258,7 @@ void ScriptSet::setScriptExtensions(UChar32 codePoint, UErrorCode& status) {
- 
-     while (TRUE) {
-         script_count = uscript_getScriptExtensions(
--            codePoint, scripts.getAlias(), FIRST_GUESS_SCRIPT_CAPACITY, &internalStatus);
-+            codePoint, scripts.getAlias(), scripts.getCapacity(), &internalStatus);
-         if (internalStatus == U_BUFFER_OVERFLOW_ERROR) {
-             // Need to allocate more space
-             if (scripts.resize(script_count) == NULL) {
diff --git a/patches/string_literal_charptr.patch b/patches/string_literal_charptr.patch
new file mode 100644
index 0000000..f9e29d7
--- /dev/null
+++ b/patches/string_literal_charptr.patch
@@ -0,0 +1,22 @@
+diff --git a/source/common/putil.cpp b/source/common/putil.cpp
+index 023186c8..9af0bb3c 100644
+--- a/source/common/putil.cpp
++++ b/source/common/putil.cpp
+@@ -1228,7 +1228,7 @@ UInitOnce gTimeZoneFilesInitOnce = U_INITONCE_INITIALIZER;
+ static CharString *gTimeZoneFilesDirectory = NULL;
+ 
+ #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API
+- static char *gCorrectedPOSIXLocale = NULL; /* Sometimes heap allocated */
++ static const char *gCorrectedPOSIXLocale = NULL; /* Sometimes heap allocated */
+  static bool gCorrectedPOSIXLocaleHeapAllocated = false;
+ #endif
+ 
+@@ -1251,7 +1251,7 @@ static UBool U_CALLCONV putil_cleanup(void)
+ 
+ #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API
+     if (gCorrectedPOSIXLocale && gCorrectedPOSIXLocaleHeapAllocated) {
+-        uprv_free(gCorrectedPOSIXLocale);
++        uprv_free(const_cast<char *>(gCorrectedPOSIXLocale));
+         gCorrectedPOSIXLocale = NULL;
+         gCorrectedPOSIXLocaleHeapAllocated = false;
+     }
diff --git a/patches/uspoof.patch b/patches/uspoof.patch
deleted file mode 100644
index 0ab6597..0000000
--- a/patches/uspoof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: source/i18n/uspoof.cpp
-===================================================================
---- source/i18n/uspoof.cpp	(revision 39492)
-+++ source/i18n/uspoof.cpp	(revision 39493)
-@@ -646,13 +646,6 @@
-         return dest;
-     }
- 
--    // Check that at least one of the CONFUSABLE flags is turned on.  If not,
--    // return an error.
--    if ((This->fChecks & USPOOF_CONFUSABLE) == 0) {
--        *status = U_ILLEGAL_ARGUMENT_ERROR;
--        return dest;
--    }
--
-     UnicodeString nfdId;
-     gNfdNormalizer->normalize(id, nfdId, *status);
- 
diff --git a/patches/utf32.patch b/patches/utf32.patch
index 73fd488..b3ef1d3 100644
--- a/patches/utf32.patch
+++ b/patches/utf32.patch
@@ -39,10 +39,10 @@
  #if !UCONFIG_ONLY_HTML_CONVERSION
    { "utf7", UCNV_UTF7 },
  #endif
-diff --git a/source/common/ucnv_u32.c b/source/common/ucnv_u32.c
+diff --git a/source/common/ucnv_u32.cpp b/source/common/ucnv_u32.cpp
 index b0a0fe2..5a4d6fc 100644
---- a/source/common/ucnv_u32.c
-+++ b/source/common/ucnv_u32.c
+--- a/source/common/ucnv_u32.cpp
++++ b/source/common/ucnv_u32.cpp
 @@ -18,7 +18,7 @@
  
  #include "unicode/utypes.h"
diff --git a/patches/vscomp.patch b/patches/vscomp.patch
index 0d5fffa..d7b00f2 100644
--- a/patches/vscomp.patch
+++ b/patches/vscomp.patch
@@ -1,20 +1,20 @@
-diff --git a/source/common/locmap.c b/source/common/locmap.c
-index c03cd5c..d564380 100644
---- a/source/common/locmap.c
-+++ b/source/common/locmap.c
-@@ -31,6 +31,7 @@
- #include "cstring.h"
+diff --git a/source/common/locmap.cpp b/source/common/locmap.cpp
+index dd44c08a..545521fe 100644
+--- a/source/common/locmap.cpp
++++ b/source/common/locmap.cpp
+@@ -32,6 +32,7 @@
  #include "cmemory.h"
+ #include "unicode/uloc.h"
  
 +#if 0
  #if U_PLATFORM == U_PF_WINDOWS && defined(_MSC_VER) && (_MSC_VER >= 1500)
  /*
   * TODO: It seems like we should widen this to
-@@ -42,6 +43,7 @@
-  */
- #define USE_WINDOWS_LOCALE_API
+@@ -45,6 +46,7 @@
+ #include <windows.h>
+ #include <winnls.h>
  #endif
 +#endif
  
- #ifdef USE_WINDOWS_LOCALE_API
- #include <windows.h>
+ /*
+  * Note:
diff --git a/patches/wordbrk.patch b/patches/wordbrk.patch
index 0bf6b03..8970554 100644
--- a/patches/wordbrk.patch
+++ b/patches/wordbrk.patch
@@ -1,8 +1,8 @@
 diff --git a/source/data/brkitr/rules/word.txt b/source/data/brkitr/rules/word.txt
-index aa7c47c..9c93dd5 100644
+index 742d8f8f..83dd490e 100644
 --- a/source/data/brkitr/rules/word.txt
 +++ b/source/data/brkitr/rules/word.txt
-@@ -39,10 +39,16 @@ $Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
+@@ -40,10 +40,16 @@ $Hebrew_Letter      = [\p{Word_Break = Hebrew_Letter}];
  $ALetter            = [\p{Word_Break = ALetter}];
  $Single_Quote       = [\p{Word_Break = Single_Quote}];
  $Double_Quote       = [\p{Word_Break = Double_Quote}];
@@ -20,5 +20,5 @@
 +$MidNum       = [\p{Word_Break = MidNum}[\u002E \uFF0E]];
 +$Numeric      = [\p{Word_Break = Numeric}[\uff10-\uff19]]; #includes fullwidth digits
  $ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
- $E_Base             = [\p{Word_Break = EB}\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+ $E_Base             = [\p{Word_Break = EB}];
  $E_Modifier         = [\p{Word_Break = EM}];
diff --git a/patches/wpo.patch b/patches/wpo.patch
index e4e4d99..5ed3c3c 100644
--- a/patches/wpo.patch
+++ b/patches/wpo.patch
@@ -1,11 +1,12 @@
 diff --git a/source/common/ucmndata.h b/source/common/ucmndata.h
-index 9e87fad..206ddbf 100644
+index cc126d53..646bfa18 100644
 --- a/source/common/ucmndata.h
 +++ b/source/common/ucmndata.h
-@@ -46,6 +46,20 @@ typedef struct  {
+@@ -45,6 +45,20 @@ typedef struct  {
+     UDataInfo   info;
  } DataHeader;
  
- typedef struct {
++typedef struct {
 +    DataHeader hdr;
 +    char padding[8];
 +    uint32_t count, reserved;
@@ -19,25 +20,24 @@
 +                                   /*        pointerTOC to OffsetTOC.     */
 +} ICU_Data_Header;
 +
-+typedef struct {
+ typedef struct {
      uint32_t nameOffset;
      uint32_t dataOffset;
- } UDataOffsetTOCEntry;
 diff --git a/source/common/udata.cpp b/source/common/udata.cpp
-index ec72a0c..9460746 100644
+index 29074a64..21dfd0f2 100644
 --- a/source/common/udata.cpp
 +++ b/source/common/udata.cpp
-@@ -624,7 +624,7 @@ U_NAMESPACE_END
-  *      our common data.                                                *
+@@ -629,7 +629,7 @@ U_NAMESPACE_END
   *                                                                      *
   *----------------------------------------------------------------------*/
+ #if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
 -extern "C" const DataHeader U_DATA_API U_ICUDATA_ENTRY_POINT;
 +extern "C" const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT;
+ #endif
  
  /*
-  * This would be a good place for weak-linkage declarations of
-@@ -674,7 +674,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
-             }
+@@ -681,7 +681,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
+ #if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
              int32_t i;
              for(i = 0; i < commonDataIndex; ++i) {
 -                if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT) {
@@ -45,19 +45,19 @@
                      /* The linked-in data is already in the list. */
                      return NULL;
                  }
-@@ -694,7 +694,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
-             setCommonICUDataPointer(uprv_getICUData_conversion(), FALSE, pErrorCode);
+@@ -703,7 +703,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
          }
          */
+ #if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
 -        setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT, FALSE, pErrorCode);
 +        setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT.hdr, FALSE, pErrorCode);
          {
              Mutex lock;
              return gCommonICUDataArray[commonDataIndex];
-diff --git a/source/stubdata/stubdata.c b/source/stubdata/stubdata.c
-index 6493ac4..ba644b2 100644
---- a/source/stubdata/stubdata.c
-+++ b/source/stubdata/stubdata.c
+diff --git a/source/stubdata/stubdata.cpp b/source/stubdata/stubdata.cpp
+index 0fcab4fa..f2efd3c3 100644
+--- a/source/stubdata/stubdata.cpp
++++ b/source/stubdata/stubdata.cpp
 @@ -22,45 +22,34 @@
  #include "unicode/utypes.h"
  #include "unicode/udata.h"
@@ -81,7 +81,7 @@
 -                                   /*        pointerTOC to OffsetTOC.     */
 -} ICU_Data_Header;
 -
- U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = {
+ extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = {
 -    32,          /* headerSize */
 -    0xda,        /* magic1,  (see struct MappedData in udata.c)  */
 -    0x27,        /* magic2     */
diff --git a/readme.html b/readme.html
index 2c531e5..a497674 100644
--- a/readme.html
+++ b/readme.html
@@ -3,7 +3,7 @@
 
 <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
   <head>
-    <title>ReadMe for ICU 58.1</title>
+    <title>ReadMe for ICU 59.1</title>
     <meta name="COPYRIGHT" content=
     "Copyright (C) 2016 and later: Unicode, Inc. and others. License &amp; terms of use: http://www.unicode.org/copyright.html"/>
     <!-- meta name="COPYRIGHT" content=
@@ -32,7 +32,7 @@
       International Components for Unicode<br/>
       <span class="only-rc">Release Candidate</span>
       <span class="only-milestone">(Milestone Release)</span>
-      <abbr title="International Components for Unicode">ICU</abbr> 58.1 ReadMe
+      <abbr title="International Components for Unicode">ICU</abbr> 59.1 ReadMe
     </h1>
 
     <!-- Shouldn't need to comment/uncomment this paragraph, just change the body class -->
@@ -44,7 +44,7 @@
     <p class="note only-rc">This is a release candidate version of ICU4C.
       It is not recommended for production use.</p>
 
-    <p>Last updated: 2016-Oct-13<br/>
+    <p>Last updated: 2017-Apr-12<br/>
       Copyright &copy; 2016 and later: Unicode, Inc. and others. License &amp; terms of use:
       <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
       Copyright &copy; 1997-2016 International Business Machines Corporation and others.
@@ -59,9 +59,7 @@
 
       <li><a href="#GettingStarted">Getting Started</a></li>
 
-      <li><a href="#News">What Is New In This release?</a></li>
-
-      <li><a href="#RecentPreviousChanges">Changes in recent previous releases</a></li>
+      <li><a href="#News">What Is New In This Release?</a></li>
 
       <li><a href="#Download">How To Download the Source Code</a></li>
 
@@ -230,148 +228,24 @@
     </table>
 
     <p><strong>Important:</strong> Please make sure you understand the <a href=
-    "http://source.icu-project.org/repos/icu/icu/trunk/LICENSE">Copyright and License Information</a>.</p>
+    "http://source.icu-project.org/repos/icu/trunk/icu4c/LICENSE">Copyright and License Information</a>.</p>
 
-    <h2><a name="News" href="#News" id="News">What is new in this
-    release?</a></h2>
 
-    <h3>New License</h3>
-    <p>This is the first release of ICU since the project
-    	<a href="http://blog.unicode.org/2016/05/icu-joins-unicode-consortium.html">joined
-    	the Unicode Consortium</a>. The license has changed to the
-    	<a href="http://www.unicode.org/copyright.html#License">Unicode license</a>
-    	(which is similar to the ICU 1.8.1-57 license).</p>
+    <h2><a name="News" href="#News" id="News">What Is New In This Release?</a></h2>
 
-    <h3>Layout Engine Removed</h3>
-    <p>The LayoutEngine was deprecated in ICU 54 and has now been removed.
-    see <a href='http://userguide.icu-project.org/layoutengine'>the
-    User's Guide</a> for more details and migration recommendations.
-    </p>
-    <p>
-      Note that the ParagraphLayout (layoutex) library is not deprecated.
-      There is a new option, <tt>--enable-layoutex</tt> which will build
-      the ParagraphLayout library using <a href="http://harfbuzz.org">HarfBuzz</a>
-      instead of ICU as the layout engine. See <a href="http://userguide.icu-project.org/layoutengine">
-        the users' guide</a> for more information about how to build.
-    </p>
-    <p>
-      The options <tt>--disable-layout</tt>
-      or <tt>--with-layout=false</tt> are being retained for
-      compatibility, but have no effect.
-    </p>
+    <p>See the <a href="http://site.icu-project.org/download/59">ICU 59 download page</a>
+    for an overview of this release, important changes, new features, bug fixes, known issues,
+    changes to supported platforms and build environments,
+    and migration issues for existing applications migrating from previous ICU releases.</p>
 
-    <h3>Changes in CLDR 30 data</h3>
-    <ul>
-    	<li>For some combinations of numbering system (arab, arabext, latn) and/or locale
-    		(ar, fa, he), there were changes to the bidirectional control characters used
-    		with certain symbols (percent, minus, plus), and changes to number patterns
-    		(currency and/or percent, including addition of bidirectional control
-    		characters in some cases).</li>
-    	<li>The bidirectional controls used for such purposes now include U+061C ARABIC
-    		LETTER MARK (ALM), which requires use of the bidirectional algorithm from
-    		Unicode 6.3 or later.</li>
-    	<li>The time separator for Norwegian locales (nb, nn) was changed to be ‘:’
-    		throughout.</li>
-    	<li>For more information on CLDR 30 changes, see
-    		<a href="http://cldr.unicode.org/index/downloads/cldr-30">CLDR 30 download
-    		page</a>.</li>
-    </ul>
+    <p>See the <a href="APIChangeReport.html">API Change Report</a> for a complete list of
+    APIs added, removed, or changed in this release.</p>
 
-    <h3>Windows build changes</h3>
-    <p>Windows builds using Visual Studio now require Visual Studio 2015; otherwise you can
-    	use cygwin or similar to build for Windows.</p>
+    <p><a name="RecentPreviousChanges" id="RecentPreviousChanges"></a>For
+    changes in previous releases, see the
+    main <a href="http://site.icu-project.org/download">ICU download page</a>
+    with its version-specific subpages.</p>
 
-    <h3>API Changes</h3>
-    <p>See the <a href="APIChangeReport.html">API Change Report</a> for a complete
-      list of APIs added, removed, or changed in this release.</p>
-
-    <!-- standing item -->
-    <h3>Full release notes and the latest updates</h3>
-    <p>The previous list concentrates on <em>changes that affect existing
-    applications migrating from previous ICU releases</em>.
-    For more news about this release, as well as late-breaking news, see the
-    <a href="http://site.icu-project.org/download/57">ICU download page</a>.</p>
-
-    <h3>Upcoming changes</h3>
-    <p>Please note the following changes planned for an upcoming ICU4C release (likely ICU 59):</p>
-    <ul>
-    	<li>Compiler support for C++11 will be required.</li>
-    	<li>Support for Windows XP will be removed.</li>
-    </ul>
-
-    <h2><a name="RecentPreviousChanges" href="#RecentPreviousChanges" id="RecentPreviousChanges">Changes in recent
-    previous releases</a></h2>
-
-    <!-- ICU 57 items -->
-    <h3>ICU 57: Changes related to new CLDR data and specifications</h3>
-    <ul>
-    	<li>Time formats may include the new day period characters b, B, and
-    	these may produced in response to the new skeleton character C used
-    	with DateTimePatternGenerator.</li>
-    	<li>In day period rules, the use of "after" has been deprecated.</li>
-    	<li>The measurement unit "proportion-karat" has been renamed to
-    	"concentr-karat".</li>
-    </ul>
-
-    <!-- ICU 56 items -->
-    <h3>ICU 56: COLON withdrawn as date/time pattern character</h3>
-    <p>In ICU 55, COLON was introduced as a date/time pattern character
-      to be replaced by the value of the timeSeparator for the number
-      system being used; a corresponding new UDateFormatField
-      UDAT_TIME_SEPARATOR_FIELD was added. Use of COLON caused some
-      backwards compatibility problems, so it is being withdrawn as a
-      pattern character. However, UDAT_TIME_SEPARATOR_FIELD remains
-      as does the mechanism for replacing a pattern character with the
-      value of the timeSeparator; a new pattern character may be
-      assigned in the future.</p>
-
-    <h3>ICU 56: ICU Plugins are disabled by default</h3>
-    <p>ICU Plugins are now disabled by default. They may be enabled
-      with the configure option
-      <tt>--enable-plugins</tt> or by means of
-      <tt>#define UCONFIG_ENABLE_PLUGINS</tt>.
-	</p>
-
-    <h3>ICU 55: Deprecations in PluralRules (plurrule.h)</h3>
-    <p>The following PluralRules methods never had an implementation
-      but were inadvertently marked @stable; they have now been
-      deprecated. [#<a href="http://bugs.icu-project.org/trac/ticket/10759">10759</a>]</p>
-    <ul>
-      <li><tt>double icu::PluralRules::getUniqueKeywordValue(const UnicodeString&amp;)</tt></li>
-      <li><tt>int32_t icu::PluralRules::getAllKeywordValues(const UnicodeString&amp;, double*, int32_t, UErrorCode&amp;)</tt></li>
-    </ul>
-
-    <h3>ICU 55: Deprecate uidna.h functions for IDNA2003 support</h3>
-    <p>The IDNA2003 API has been deprecated; use the API for IDNA2008 / UTS #46 instead via
-      uidna_openUTS46() or class IDNA [#<a href="http://bugs.icu-project.org/trac/ticket/8477">8477</a>].
-      This applies to the following:</p>
-    <ul>
-      <li><tt>enum  value UIDNA_ALLOW_UNASSIGNED</tt></li>
-      <li><tt>uidna_IDNToASCII</tt></li>
-      <li><tt>uidna_IDNToUnicode</tt></li>
-      <li><tt>uidna_compare</tt></li>
-      <li><tt>uidna_toASCII</tt></li>
-      <li><tt>uidna_toUnicode</tt></li>
-    </ul>
-
-    <h3>ICU 54: Deprecation of Collation Short Strings</h3>
-    <p>The collation short naming scheme and its API functions are deprecated.
-    Use ucol_open() with language tag collation keywords instead (see <a href="http://userguide.icu-project.org/collation/api">Collation API Details</a>). For example, <code>ucol_open("de-u-co-phonebk-ka-shifted", &amp;errorCode)</code>
-     for German Phonebook order with "ignore punctuation" mode.</p>
-
-    <h3>ICU 54: Deprecation of UCOL_TAILORINGS_VERSION</h3>
-    <p>This was originally intended to be the version of collation tailorings,
-    but that information is actually in the tailorings data and this
-    constant has always been (and now will continue to be) 1.</p>
-
-    <!-- ICU 53 items -->
-    <h3>ICU 53: Deprecation of TimeUnitFormat</h3>
-    <p>The TimeUnitFormat and its methods were actually deprecated in ICU 53 and the
-    class as a whole was tagged as deprecated in that release, but the status tags for
-    the individual methods did not correctly indicate the deprecated status; they
-    do as of ICU 54. Use the MeasureFormat class and its methods instead.</p>
-
-    <!-- end of What's New items -->
 
     <h2><a name="Download" href="#Download" id="Download">How To Download the
     Source Code</a></h2>
@@ -505,12 +379,31 @@
             <li><b>brkitr/</b> Data files for character, word, sentence, title
             casing and line boundary analysis.</li>
 
+            <li><b>coll/</b> Data for collation tailorings. The makefile
+            <b>colfiles.mk</b> contains the list of resource bundle files.</li>
+
             <li><b>locales/</b> These .txt files contain ICU language and
             culture-specific localization data. Two special bundles are
             <b>root</b>, which is the fallback data and parent of other bundles,
             and <b>index</b>, which contains a list of installed bundles. The
             makefile <b>resfiles.mk</b> contains the list of resource bundle
-            files.</li>
+            files. Some of the locale data is split out into the type-specific
+            directories curr, lang, region, unit, and zone, described below.</li>
+
+            <li><b>curr/</b> Locale data for currency symbols and names (including
+            plural forms), with its own makefile <b>resfiles.mk</b>.</li>
+
+            <li><b>lang/</b> Locale data for names of languages, scripts, and locale
+            key names and values, with its own makefile <b>resfiles.mk</b>.</li>
+
+            <li><b>region/</b> Locale data for names of regions, with its own
+            makefile <b>resfiles.mk</b>.</li>
+
+            <li><b>unit/</b> Locale data for measurement unit patterns and names, 
+            with its own makefile <b>resfiles.mk</b>.</li>
+
+            <li><b>zone/</b> Locale data for time zone names, with its own
+            makefile <b>resfiles.mk</b>.</li>
 
             <li><b>mappings/</b> Here are the code page converter tables. These
             .ucm files contain mappings to and from Unicode. These are compiled
@@ -532,9 +425,9 @@
             information.</li>
 
             <li><b>misc/</b> The misc directory contains other data files which
-            did not fit into the above categories. Currently it only contains
-            time zone information, and a name preperation file for <a href=
-            "http://www.ietf.org/rfc/rfc3490.txt">IDNA</a>.</li>
+            did not fit into the above categories, including time zone
+            information, region-specific data, and other data derived from CLDR
+            supplemental data.</li>
 
             <li><b>out/</b> This directory contains the assembled memory mapped
             files.</li>
@@ -779,7 +672,7 @@
         source file tree clean and have build output files written to
         a different location. This is called an "out-of-source build".
         Simply invoke the configure script from the target location:
-<pre>~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk
+<pre>~/icu$ svn export http://source.icu-project.org/repos/icu/trunk/icu4c
 ~/icu$ mkdir trunk-dev
 ~/icu$ cd trunk-dev
 ~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux
@@ -851,7 +744,9 @@
     <ul>
       <li>Microsoft Windows</li>
 
-      <li>Microsoft Visual C++ (see the ICU download page for the currently compatible version)</li>
+      <li>Microsoft Visual C++ (part of <a href="https://www.visualstudio.com/">Visual Studio</a>) (see the ICU download page for the currently compatible version)</li>
+      
+      <li><i><b>Optional:</b></i> A version of the <a href="https://developer.microsoft.com/windows/downloads">Windows 10 SDK</a> (if you want to build the UWP projects)</li>
     </ul>
         <p class="note"><a href="#HowToBuildCygwin">Cygwin</a> is required if using a version of MSVC other than the one
         compatible with the supplied project files or if other compilers are used to build ICU. (e.g. GCC)</p>
@@ -874,6 +769,11 @@
       "#HowToBuildWindowsCommandLine">command line note below</a> if you want to
       build from the command line instead.</li>
 
+      <li>You may need to re-target the UWP projects to the version of the SDK that you have installed. In Visual Studio you can
+      right-click on the UWP projects and select the option 'Retarget SDK Version'. Note: You do not need to have a copy of 
+      the Windows 10 SDK installed in order to build the non-UWP projects in Visual Studio. If the SDK is not installed then the
+      UWP projects will simply not be loaded.</li>
+
       <li>Set the active platform to "Win32" or "x64" (See <a href="#HowToBuildWindowsPlatform">Windows platform note</a> below)
       and configuration to "Debug" or "Release" (See <a href="#HowToBuildWindowsConfig">Windows configuration note</a> below).</li>
 
@@ -932,9 +832,11 @@
     "HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line
     Note:</strong></a> You can build ICU from the command line. Assuming that you
     have properly installed Microsoft Visual C++ to support command line
-    execution, you can run the following command, 'devenv.com
-    <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Win32|Release"'. You can also
-    use Cygwin with this compiler to build ICU, and you can refer to the <a href=
+    execution, you can run the following command to build the 32-bit Release version:
+    <code>'devenv.com <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Release|Win32"'</code>.
+    Or to build the 64-bit Release version from the command line: 
+    <code>'devenv.com <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Release|x64"'</code>.
+    <br />You can also use Cygwin with this compiler to build ICU, and you can refer to the <a href=
     "#HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a>
     section for more details.</p>
 
@@ -981,7 +883,7 @@
     <ul>
       <li>Microsoft Windows</li>
 
-      <li>Microsoft Visual C++ (when gcc isn't used).</li>
+      <li>Microsoft Visual C++ (from Visual Studio 2015 or newer, when gcc isn't used).</li>
 
       <li>
         Cygwin with the following installed:
@@ -1016,11 +918,11 @@
       Visual C++ compiler will not work with a bash command prompt.</li>
 
       <li>If the computer isn't set up to use Visual C++ from the command line,
-      you need to run vcvars32.bat.<br />For example:<br />"<tt>C:\Program Files\Microsoft
-      Visual Studio 8\VC\bin\vcvars32.bat</tt>" can be used for 32-bit builds
-      <strong>or</strong> <br />"<tt>C:\Program Files (x86)\Microsoft Visual Studio
-      8\VC\bin\amd64\vcvarsamd64.bat</tt>" can be used for 64-bit builds on
-      Windows x64.</li>
+      you need to run vcvars32.bat.<br />For example:<br />
+      "<tt>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat</tt>"
+      can be used for 32-bit builds <strong>or</strong> <br />
+      "<tt>C:\Program Files (x86)\Microsoft Visual Studio 14\VC\bin\x86_amd64\vcvarsx86_amd64.bat</tt>"
+      can be used for 64-bit builds on Windows x64.</li>
 
       <li>Unzip the icu-XXXX.zip file into any convenient location. Using command
       line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use
@@ -1229,9 +1131,9 @@
       configure option.</li>
 
       <li>The latest versions of z/OS use <a
-      href="http://www.ibm.com/support/docview.wss?uid=swg2120240">XPLINK
+      href="https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.cbcux01/oebind6.htm">XPLINK
       version (C128) of the C++ standard library</a> by default. You may see <a
-      href="http://www.ibm.com/support/docview.wss?uid=swg21376279">an
+      href="https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.cbcux01/oebind5.htm">an
       error</a> when running with XPLINK disabled. To avoid this error,
       set the following environment variable or similar:
 
@@ -1405,7 +1307,7 @@
       <li>Test ICU. <pre><samp>gmake check</samp></pre>
         (The <tt> QIBM_MULTI_THREADED=Y</tt> flag will be automatically applied to intltest -
           you can look at the <a href=
-      "http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/apis/concept4.htm">
+      "https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzahw/rzahwceeco.htm">
       iSeries Information Center</a> for more details regarding the running of multiple threads
       on IBM i.)</li>
     </ol>
@@ -1657,7 +1559,7 @@
     <p>In order to avoid synchronization and threading issues, developers are
     <strong>suggested</strong> to strictly follow the compiling and linking
     guidelines for multithreaded applications, specified in the following
-    document from Sun Microsystems. Most notably, pay strict attention to the
+    SUn Solaris document available from Oracle. Most notably, pay strict attention to the
     following statements from Sun:</p>
 
     <blockquote>
@@ -1671,10 +1573,15 @@
     <p>Failure to do this may cause spurious lock conflicts, recursive mutex
     failure, and deadlock.</p>
 
-    <p>Source: "<i>Solaris Multithreaded Programming Guide, Compiling and
-    Debugging</i>", Sun Microsystems, Inc., Apr 2004<br />
+    <p>Source: "<i>Multithreaded Programming Guide, Compiling and
+    Debugging</i>", Sun Microsystems, 2002 <br />
      <a href=
-    "http://docs.sun.com/app/docs/doc/816-5137/6mba5vpke?a=view">http://docs.sun.com/app/docs/doc/816-5137/6mba5vpke?a=view</a></p>
+    "https://docs.oracle.com/cd/E19683-01/806-6867/compile-74765/index.html">https://docs.oracle.com/cd/E19683-01/806-6867/compile-74765/index.html</a></p>
+
+    <p>Note, a version of that chapter from a 2008 document update covering both Solaris 9
+    and Solaris 10 is available here:<br />
+     <a href=
+    "http://docs.oracle.com/cd/E19253-01/816-5137/compile-94179/index.html">http://docs.oracle.com/cd/E19253-01/816-5137/compile-94179/index.html</a></p>
 
     <h3><a name="ImportantNotesWindows" href="#ImportantNotesWindows" id=
     "ImportantNotesWindows">Windows Platform</a></h3>
diff --git a/scripts/update.sh b/scripts/update.sh
index a6f2399..a4ed28b 100755
--- a/scripts/update.sh
+++ b/scripts/update.sh
@@ -13,7 +13,7 @@
 fi
 
 version="$1"
-repoprefix="http://source.icu-project.org/repos/icu/icu/tags/release-"
+repoprefix="http://source.icu-project.org/repos/icu/tags/release-"
 repo="${repoprefix}${version}/icu4c"
 treeroot="$(dirname "$0")/.."
 
diff --git a/source/Doxyfile.in b/source/Doxyfile.in
index fde6125..df543e8 100644
--- a/source/Doxyfile.in
+++ b/source/Doxyfile.in
@@ -194,7 +194,7 @@
 SEARCH_INCLUDES        = YES
 INCLUDE_PATH           = 
 INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END=  U_NO_THROW=\ "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_HAVE_STD_STRING=1 U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE= U_FINAL= UCONFIG_ENABLE_PLUGINS=1
+PREDEFINED             = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END=  U_NO_THROW=\  "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE=override U_FINAL=final UCONFIG_ENABLE_PLUGINS=1 U_CHAR16_IS_TYPEDEF=0 U_CPLUSPLUS_VERSION=11 U_HAVE_RVALUE_REFERENCES=1 U_WCHAR_IS_UTF16
 EXPAND_AS_DEFINED      = 
 SKIP_FUNCTION_MACROS   = YES
 #---------------------------------------------------------------------------
diff --git a/source/Makefile.in b/source/Makefile.in
index bd5b117..f4bab77 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -140,6 +140,10 @@
 
 ## Recursive targets
 all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive check-exhaustive-recursive: $(LIBDIR) $(BINDIR)
+ifneq ($(NEED_ESCAPING),)
+	@echo "building tools/escapesrc (Needed for this platform with NEED_ESCAPING)"
+	@(cd tools/escapesrc && $(MAKE) RECURSIVE=YES $$local_target) || exit
+endif
 	@dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \
@@ -323,9 +327,10 @@
 	-$(RMV) $@
 	$(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@
 	chmod u+w $@
+	@echo "# Following from icu/icu4c/source/config/Makefile.inc" >> $@
+	LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
 	@echo "# Following from @platform_make_fragment@" >> $@
-	LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
-	LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
+	LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
 	cat $(top_srcdir)/config/icu-config-bottom >> $@
 	chmod u-w $@
 
diff --git a/source/common/Makefile.in b/source/common/Makefile.in
index 59ffb73..10fa8de 100644
--- a/source/common/Makefile.in
+++ b/source/common/Makefile.in
@@ -94,6 +94,7 @@
 bytestrie.o bytestrieiterator.o \
 ucharstrie.o ucharstriebuilder.o ucharstrieiterator.o \
 dictionarydata.o \
+edits.o \
 appendable.o ustr_cnv.o unistr_cnv.o unistr.o unistr_case.o unistr_props.o \
 utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o utext.o \
 unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
diff --git a/source/common/appendable.cpp b/source/common/appendable.cpp
index 1a597b5..fca3c1e 100644
--- a/source/common/appendable.cpp
+++ b/source/common/appendable.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  appendable.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/bmpset.cpp b/source/common/bmpset.cpp
index ebcd0d2..08f9bed 100644
--- a/source/common/bmpset.cpp
+++ b/source/common/bmpset.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  bmpset.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/bmpset.h b/source/common/bmpset.h
index 8975cd6..87375d2 100644
--- a/source/common/bmpset.h
+++ b/source/common/bmpset.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  bmpset.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/brkeng.cpp b/source/common/brkeng.cpp
index cf14483..a590060 100644
--- a/source/common/brkeng.cpp
+++ b/source/common/brkeng.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ************************************************************************************
diff --git a/source/common/brkeng.h b/source/common/brkeng.h
index 163cbbe..0335d11 100644
--- a/source/common/brkeng.h
+++ b/source/common/brkeng.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  ************************************************************************************
diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp
index 029ec5e..f8e4d98 100644
--- a/source/common/brkiter.cpp
+++ b/source/common/brkiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/bytestream.cpp b/source/common/bytestream.cpp
index 5a5c2e4..bfd7bde 100644
--- a/source/common/bytestream.cpp
+++ b/source/common/bytestream.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 // Copyright (C) 2009-2011, International Business Machines
 // Corporation and others. All Rights Reserved.
diff --git a/source/common/bytestrie.cpp b/source/common/bytestrie.cpp
index 093cd8d..c4d498c 100644
--- a/source/common/bytestrie.cpp
+++ b/source/common/bytestrie.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bytestrie.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/bytestriebuilder.cpp b/source/common/bytestriebuilder.cpp
index 913d85a..581505e 100644
--- a/source/common/bytestriebuilder.cpp
+++ b/source/common/bytestriebuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bytestriebuilder.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/bytestrieiterator.cpp b/source/common/bytestrieiterator.cpp
index 4d04247..e64961a 100644
--- a/source/common/bytestrieiterator.cpp
+++ b/source/common/bytestrieiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bytestrieiterator.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/caniter.cpp b/source/common/caniter.cpp
index 2479350..aee9f4e 100644
--- a/source/common/caniter.cpp
+++ b/source/common/caniter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
@@ -311,12 +311,12 @@
 
         // see what the permutations of the characters before and after this one are
         //Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
-        permute(subPermuteString.replace(i, U16_LENGTH(cp), NULL, 0), skipZeros, &subpermute, status);
+        permute(subPermuteString.remove(i, U16_LENGTH(cp)), skipZeros, &subpermute, status);
         /* Test for buffer overflows */
         if(U_FAILURE(status)) {
             return;
         }
-        // The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents 
+        // The upper remove is destructive. The question is do we have to make a copy, or we don't care about the contents 
         // of source at this point.
 
         // prefix this character to all of them
diff --git a/source/common/chariter.cpp b/source/common/chariter.cpp
index 625ac49..887119a 100644
--- a/source/common/chariter.cpp
+++ b/source/common/chariter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/charstr.cpp b/source/common/charstr.cpp
index c792181..8bacd20 100644
--- a/source/common/charstr.cpp
+++ b/source/common/charstr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  charstr.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -15,6 +15,7 @@
 */
 
 #include "unicode/utypes.h"
+#include "unicode/putil.h"
 #include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
diff --git a/source/common/charstr.h b/source/common/charstr.h
index 9758c5c..3cfdf6a 100644
--- a/source/common/charstr.h
+++ b/source/common/charstr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/cmemory.c b/source/common/cmemory.cpp
similarity index 98%
rename from source/common/cmemory.c
rename to source/common/cmemory.cpp
index b40994a..2176c92 100644
--- a/source/common/cmemory.c
+++ b/source/common/cmemory.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/cmemory.h b/source/common/cmemory.h
index a1211bd..665a822 100644
--- a/source/common/cmemory.h
+++ b/source/common/cmemory.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/cpputils.h b/source/common/cpputils.h
index 57af69a..307e570 100644
--- a/source/common/cpputils.h
+++ b/source/common/cpputils.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  cpputils.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 */
diff --git a/source/common/cstr.cpp b/source/common/cstr.cpp
index a0006df..24654f8 100644
--- a/source/common/cstr.cpp
+++ b/source/common/cstr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/cstr.h b/source/common/cstr.h
index 93b2e54..c33f487 100644
--- a/source/common/cstr.h
+++ b/source/common/cstr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/cstring.c b/source/common/cstring.cpp
similarity index 98%
rename from source/common/cstring.c
rename to source/common/cstring.cpp
index eb6e021..06275c4 100644
--- a/source/common/cstring.c
+++ b/source/common/cstring.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/cstring.h b/source/common/cstring.h
index 238cb31..2232efc 100644
--- a/source/common/cstring.h
+++ b/source/common/cstring.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/cwchar.c b/source/common/cwchar.cpp
similarity index 92%
rename from source/common/cwchar.c
rename to source/common/cwchar.cpp
index 4c469ce..20c7d71 100644
--- a/source/common/cwchar.c
+++ b/source/common/cwchar.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  cwchar.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/cwchar.h b/source/common/cwchar.h
index c8c3497..8fd041a 100644
--- a/source/common/cwchar.h
+++ b/source/common/cwchar.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  cwchar.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/dictbe.cpp b/source/common/dictbe.cpp
index 80c27c0..f06811d 100644
--- a/source/common/dictbe.cpp
+++ b/source/common/dictbe.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
@@ -1385,12 +1385,25 @@
     // Now that we're done, convert positions in t_boundary[] (indices in 
     // the normalized input string) back to indices in the original input UText
     // while reversing t_boundary and pushing values to foundBreaks.
+    int32_t prevCPPos = -1;
+    int32_t prevUTextPos = -1;
     for (int32_t i = numBreaks-1; i >= 0; i--) {
         int32_t cpPos = t_boundary.elementAti(i);
+        U_ASSERT(cpPos > prevCPPos);
         int32_t utextPos =  inputMap.isValid() ? inputMap->elementAti(cpPos) : cpPos + rangeStart;
-        // Boundaries are added to foundBreaks output in ascending order.
-        U_ASSERT(foundBreaks.size() == 0 ||foundBreaks.peeki() < utextPos);
-        foundBreaks.push(utextPos, status);
+        U_ASSERT(utextPos >= prevUTextPos);
+        if (utextPos > prevUTextPos) {
+            // Boundaries are added to foundBreaks output in ascending order.
+            U_ASSERT(foundBreaks.size() == 0 || foundBreaks.peeki() < utextPos);
+            foundBreaks.push(utextPos, status);
+        } else {
+            // Normalization expanded the input text, the dictionary found a boundary
+            // within the expansion, giving two boundaries with the same index in the
+            // original text. Ignore the second. See ticket #12918.
+            --numBreaks;
+        }
+        prevCPPos = cpPos;
+        prevUTextPos = utextPos;
     }
 
     // inString goes out of scope
diff --git a/source/common/dictbe.h b/source/common/dictbe.h
index 9390e92..242f475 100644
--- a/source/common/dictbe.h
+++ b/source/common/dictbe.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/dictionarydata.cpp b/source/common/dictionarydata.cpp
index 00f6636..6e2dbee 100644
--- a/source/common/dictionarydata.cpp
+++ b/source/common/dictionarydata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/dictionarydata.h b/source/common/dictionarydata.h
index 6f8852c..73b7d67 100644
--- a/source/common/dictionarydata.h
+++ b/source/common/dictionarydata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/dtintrv.cpp b/source/common/dtintrv.cpp
index f3313d5..80bb5d6 100644
--- a/source/common/dtintrv.cpp
+++ b/source/common/dtintrv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*******************************************************************************
 * Copyright (C) 2008, International Business Machines Corporation and
diff --git a/source/common/edits.cpp b/source/common/edits.cpp
new file mode 100644
index 0000000..58a70d5
--- /dev/null
+++ b/source/common/edits.cpp
@@ -0,0 +1,346 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// edits.cpp
+// created: 2017feb08 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/edits.h"
+#include "cmemory.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+namespace {
+
+// 0000uuuuuuuuuuuu records u+1 unchanged text units.
+const int32_t MAX_UNCHANGED_LENGTH = 0x1000;
+const int32_t MAX_UNCHANGED = MAX_UNCHANGED_LENGTH - 1;
+
+// 0wwwcccccccccccc with w=1..6 records ccc+1 replacements of w:w text units.
+// No length change.
+const int32_t MAX_SHORT_WIDTH = 6;
+const int32_t MAX_SHORT_CHANGE_LENGTH = 0xfff;
+const int32_t MAX_SHORT_CHANGE = 0x6fff;
+
+// 0111mmmmmmnnnnnn records a replacement of m text units with n.
+// m or n = 61: actual length follows in the next edits array unit.
+// m or n = 62..63: actual length follows in the next two edits array units.
+// Bit 30 of the actual length is in the head unit.
+// Trailing units have bit 15 set.
+const int32_t LENGTH_IN_1TRAIL = 61;
+const int32_t LENGTH_IN_2TRAIL = 62;
+
+}  // namespace
+
+Edits::~Edits() {
+    if(array != stackArray) {
+        uprv_free(array);
+    }
+}
+
+void Edits::reset() {
+    length = delta = 0;
+}
+
+void Edits::addUnchanged(int32_t unchangedLength) {
+    if(U_FAILURE(errorCode) || unchangedLength == 0) { return; }
+    if(unchangedLength < 0) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    // Merge into previous unchanged-text record, if any.
+    int32_t last = lastUnit();
+    if(last < MAX_UNCHANGED) {
+        int32_t remaining = MAX_UNCHANGED - last;
+        if (remaining >= unchangedLength) {
+            setLastUnit(last + unchangedLength);
+            return;
+        }
+        setLastUnit(MAX_UNCHANGED);
+        unchangedLength -= remaining;
+    }
+    // Split large lengths into multiple units.
+    while(unchangedLength >= MAX_UNCHANGED_LENGTH) {
+        append(MAX_UNCHANGED);
+        unchangedLength -= MAX_UNCHANGED_LENGTH;
+    }
+    // Write a small (remaining) length.
+    if(unchangedLength > 0) {
+        append(unchangedLength - 1);
+    }
+}
+
+void Edits::addReplace(int32_t oldLength, int32_t newLength) {
+    if(U_FAILURE(errorCode)) { return; }
+    if(oldLength == newLength && 0 < oldLength && oldLength <= MAX_SHORT_WIDTH) {
+        // Replacement of short oldLength text units by same-length new text.
+        // Merge into previous short-replacement record, if any.
+        int32_t last = lastUnit();
+        if(MAX_UNCHANGED < last && last < MAX_SHORT_CHANGE &&
+                (last >> 12) == oldLength && (last & 0xfff) < MAX_SHORT_CHANGE_LENGTH) {
+            setLastUnit(last + 1);
+            return;
+        }
+        append(oldLength << 12);
+        return;
+    }
+
+    if(oldLength < 0 || newLength < 0) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (oldLength == 0 && newLength == 0) {
+        return;
+    }
+    int32_t newDelta = newLength - oldLength;
+    if (newDelta != 0) {
+        if ((newDelta > 0 && delta >= 0 && newDelta > (INT32_MAX - delta)) ||
+                (newDelta < 0 && delta < 0 && newDelta < (INT32_MIN - delta))) {
+            // Integer overflow or underflow.
+            errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+            return;
+        }
+        delta += newDelta;
+    }
+
+    int32_t head = 0x7000;
+    if (oldLength < LENGTH_IN_1TRAIL && newLength < LENGTH_IN_1TRAIL) {
+        head |= oldLength << 6;
+        head |= newLength;
+        append(head);
+    } else if ((capacity - length) >= 5 || growArray()) {
+        int32_t limit = length + 1;
+        if(oldLength < LENGTH_IN_1TRAIL) {
+            head |= oldLength << 6;
+        } else if(oldLength <= 0x7fff) {
+            head |= LENGTH_IN_1TRAIL << 6;
+            array[limit++] = (uint16_t)(0x8000 | oldLength);
+        } else {
+            head |= (LENGTH_IN_2TRAIL + (oldLength >> 30)) << 6;
+            array[limit++] = (uint16_t)(0x8000 | (oldLength >> 15));
+            array[limit++] = (uint16_t)(0x8000 | oldLength);
+        }
+        if(newLength < LENGTH_IN_1TRAIL) {
+            head |= newLength;
+        } else if(newLength <= 0x7fff) {
+            head |= LENGTH_IN_1TRAIL;
+            array[limit++] = (uint16_t)(0x8000 | newLength);
+        } else {
+            head |= LENGTH_IN_2TRAIL + (newLength >> 30);
+            array[limit++] = (uint16_t)(0x8000 | (newLength >> 15));
+            array[limit++] = (uint16_t)(0x8000 | newLength);
+        }
+        array[length] = (uint16_t)head;
+        length = limit;
+    }
+}
+
+void Edits::append(int32_t r) {
+    if(length < capacity || growArray()) {
+        array[length++] = (uint16_t)r;
+    }
+}
+
+UBool Edits::growArray() {
+    int32_t newCapacity;
+    if (array == stackArray) {
+        newCapacity = 2000;
+    } else if (capacity == INT32_MAX) {
+        // Not U_BUFFER_OVERFLOW_ERROR because that could be confused on a string transform API
+        // with a result-string-buffer overflow.
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return FALSE;
+    } else if (capacity >= (INT32_MAX / 2)) {
+        newCapacity = INT32_MAX;
+    } else {
+        newCapacity = 2 * capacity;
+    }
+    // Grow by at least 5 units so that a maximal change record will fit.
+    if ((newCapacity - capacity) < 5) {
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return FALSE;
+    }
+    uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)newCapacity * 2);
+    if (newArray == NULL) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return FALSE;
+    }
+    uprv_memcpy(newArray, array, (size_t)length * 2);
+    if (array != stackArray) {
+        uprv_free(array);
+    }
+    array = newArray;
+    capacity = newCapacity;
+    return TRUE;
+}
+
+UBool Edits::copyErrorTo(UErrorCode &outErrorCode) {
+    if (U_FAILURE(outErrorCode)) { return TRUE; }
+    if (U_SUCCESS(errorCode)) { return FALSE; }
+    outErrorCode = errorCode;
+    return TRUE;
+}
+
+UBool Edits::hasChanges() const {
+    if (delta != 0) {
+        return TRUE;
+    }
+    for (int32_t i = 0; i < length; ++i) {
+        if (array[i] > MAX_UNCHANGED) {
+            return TRUE;
+        }
+    }
+    return FALSE;
+}
+
+Edits::Iterator::Iterator(const uint16_t *a, int32_t len, UBool oc, UBool crs) :
+        array(a), index(0), length(len), remaining(0),
+        onlyChanges_(oc), coarse(crs),
+        changed(FALSE), oldLength_(0), newLength_(0),
+        srcIndex(0), replIndex(0), destIndex(0) {}
+
+int32_t Edits::Iterator::readLength(int32_t head) {
+    if (head < LENGTH_IN_1TRAIL) {
+        return head;
+    } else if (head < LENGTH_IN_2TRAIL) {
+        U_ASSERT(index < length);
+        U_ASSERT(array[index] >= 0x8000);
+        return array[index++] & 0x7fff;
+    } else {
+        U_ASSERT((index + 2) <= length);
+        U_ASSERT(array[index] >= 0x8000);
+        U_ASSERT(array[index + 1] >= 0x8000);
+        int32_t len = ((head & 1) << 30) |
+                ((int32_t)(array[index] & 0x7fff) << 15) |
+                (array[index + 1] & 0x7fff);
+        index += 2;
+        return len;
+    }
+}
+
+void Edits::Iterator::updateIndexes() {
+    srcIndex += oldLength_;
+    if (changed) {
+        replIndex += newLength_;
+    }
+    destIndex += newLength_;
+}
+
+UBool Edits::Iterator::noNext() {
+    // No change beyond the string.
+    changed = FALSE;
+    oldLength_ = newLength_ = 0;
+    return FALSE;
+}
+
+UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return FALSE; }
+    // We have an errorCode in case we need to start guarding against integer overflows.
+    // It is also convenient for caller loops if we bail out when an error was set elsewhere.
+    updateIndexes();
+    if (remaining > 0) {
+        // Fine-grained iterator: Continue a sequence of equal-length changes.
+        --remaining;
+        return TRUE;
+    }
+    if (index >= length) {
+        return noNext();
+    }
+    int32_t u = array[index++];
+    if (u <= MAX_UNCHANGED) {
+        // Combine adjacent unchanged ranges.
+        changed = FALSE;
+        oldLength_ = u + 1;
+        while (index < length && (u = array[index]) <= MAX_UNCHANGED) {
+            ++index;
+            oldLength_ += u + 1;
+        }
+        newLength_ = oldLength_;
+        if (onlyChanges) {
+            updateIndexes();
+            if (index >= length) {
+                return noNext();
+            }
+            // already fetched u > MAX_UNCHANGED at index
+            ++index;
+        } else {
+            return TRUE;
+        }
+    }
+    changed = TRUE;
+    if (u <= MAX_SHORT_CHANGE) {
+        if (coarse) {
+            int32_t w = u >> 12;
+            int32_t len = (u & 0xfff) + 1;
+            oldLength_ = newLength_ = len * w;
+        } else {
+            // Split a sequence of equal-length changes that was compressed into one unit.
+            oldLength_ = newLength_ = u >> 12;
+            remaining = u & 0xfff;
+            return TRUE;
+        }
+    } else {
+        U_ASSERT(u <= 0x7fff);
+        oldLength_ = readLength((u >> 6) & 0x3f);
+        newLength_ = readLength(u & 0x3f);
+        if (!coarse) {
+            return TRUE;
+        }
+    }
+    // Combine adjacent changes.
+    while (index < length && (u = array[index]) > MAX_UNCHANGED) {
+        ++index;
+        if (u <= MAX_SHORT_CHANGE) {
+            int32_t w = u >> 12;
+            int32_t len = (u & 0xfff) + 1;
+            len = len * w;
+            oldLength_ += len;
+            newLength_ += len;
+        } else {
+            U_ASSERT(u <= 0x7fff);
+            int32_t oldLen = readLength((u >> 6) & 0x3f);
+            int32_t newLen = readLength(u & 0x3f);
+            oldLength_ += oldLen;
+            newLength_ += newLen;
+        }
+    }
+    return TRUE;
+}
+
+UBool Edits::Iterator::findSourceIndex(int32_t i, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode) || i < 0) { return FALSE; }
+    if (i < srcIndex) {
+        // Reset the iterator to the start.
+        index = remaining = oldLength_ = newLength_ = srcIndex = replIndex = destIndex = 0;
+    } else if (i < (srcIndex + oldLength_)) {
+        // The index is in the current span.
+        return TRUE;
+    }
+    while (next(FALSE, errorCode)) {
+        if (i < (srcIndex + oldLength_)) {
+            // The index is in the current span.
+            return TRUE;
+        }
+        if (remaining > 0) {
+            // Is the index in one of the remaining compressed edits?
+            // srcIndex is the start of the current span, before the remaining ones.
+            int32_t len = (remaining + 1) * oldLength_;
+            if (i < (srcIndex + len)) {
+                int32_t n = (i - srcIndex) / oldLength_;  // 1 <= n <= remaining
+                len = n * oldLength_;
+                srcIndex += len;
+                replIndex += len;
+                destIndex += len;
+                remaining -= n;
+                return TRUE;
+            }
+            // Make next() skip all of these edits at once.
+            oldLength_ = newLength_ = len;
+            remaining = 0;
+        }
+    }
+    return FALSE;
+}
+
+U_NAMESPACE_END
diff --git a/source/common/errorcode.cpp b/source/common/errorcode.cpp
index bc7807d..e7ac43b 100644
--- a/source/common/errorcode.cpp
+++ b/source/common/errorcode.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  errorcode.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/filteredbrk.cpp b/source/common/filteredbrk.cpp
index acba959..1ab1ca6 100644
--- a/source/common/filteredbrk.cpp
+++ b/source/common/filteredbrk.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -702,4 +702,4 @@
 
 U_NAMESPACE_END
 
-#endif //#if !UCONFIG_NO_BREAK_ITERATION && U_HAVE_STD_STRING && !UCONFIG_NO_FILTERED_BREAK_ITERATION
+#endif //#if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION
diff --git a/source/common/filterednormalizer2.cpp b/source/common/filterednormalizer2.cpp
index fb6e831..28e5f6c 100644
--- a/source/common/filterednormalizer2.cpp
+++ b/source/common/filterednormalizer2.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  filterednormalizer2.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/hash.h b/source/common/hash.h
index ac7d22f..b411a43 100644
--- a/source/common/hash.h
+++ b/source/common/hash.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/icudataver.c b/source/common/icudataver.cpp
similarity index 93%
rename from source/common/icudataver.c
rename to source/common/icudataver.cpp
index 681a187..d314411 100644
--- a/source/common/icudataver.c
+++ b/source/common/icudataver.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/icuplug.cpp b/source/common/icuplug.cpp
index ec889f7..c6439cc 100644
--- a/source/common/icuplug.cpp
+++ b/source/common/icuplug.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/icuplugimp.h b/source/common/icuplugimp.h
index acbbcaf..3cad8f8 100644
--- a/source/common/icuplugimp.h
+++ b/source/common/icuplugimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/listformatter.cpp b/source/common/listformatter.cpp
index 9225c22..d105654 100644
--- a/source/common/listformatter.cpp
+++ b/source/common/listformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  listformatter.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -25,6 +25,7 @@
 #include "charstr.h"
 #include "ucln_cmn.h"
 #include "uresimp.h"
+#include "resource.h"
 
 U_NAMESPACE_BEGIN
 
@@ -78,17 +79,6 @@
 
 U_CDECL_END
 
-static ListFormatInternal* loadListFormatInternal(
-        const Locale& locale,
-        const char* style,
-        UErrorCode& errorCode);
-
-static void getStringByKey(
-        const UResourceBundle* rb,
-        const char* key,
-        UnicodeString& result,
-        UErrorCode& errorCode);
-
 ListFormatter::ListFormatter(const ListFormatter& other) :
         owned(other.owned), data(other.data) {
     if (other.owned != NULL) {
@@ -171,30 +161,107 @@
     return result;
 }
 
-static ListFormatInternal* loadListFormatInternal(
+static const UChar solidus = 0x2F;
+static const UChar aliasPrefix[] = { 0x6C,0x69,0x73,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2F }; // "listPattern/"
+enum {
+    kAliasPrefixLen = UPRV_LENGTHOF(aliasPrefix),
+    kStyleLenMax = 24 // longest currently is 14
+};
+
+struct ListFormatter::ListPatternsSink : public ResourceSink {
+    UnicodeString two, start, middle, end;
+#if ((U_PLATFORM == U_PF_AIX) || (U_PLATFORM == U_PF_OS390)) && (U_CPLUSPLUS_VERSION < 11)
+    char aliasedStyle[kStyleLenMax+1];
+    ListPatternsSink() {
+      uprv_memset(aliasedStyle, 0, kStyleLenMax+1);
+    }
+#else
+    char aliasedStyle[kStyleLenMax+1] = {0};
+
+    ListPatternsSink() {}
+#endif
+    virtual ~ListPatternsSink();
+
+    void setAliasedStyle(UnicodeString alias) {
+        int32_t startIndex = alias.indexOf(aliasPrefix, kAliasPrefixLen, 0);
+        if (startIndex < 0) {
+            return;
+        }
+        startIndex += kAliasPrefixLen;
+        int32_t endIndex = alias.indexOf(solidus, startIndex);
+        if (endIndex < 0) {
+            endIndex = alias.length();
+        }
+        alias.extract(startIndex, endIndex-startIndex, aliasedStyle, kStyleLenMax+1, US_INV);
+        aliasedStyle[kStyleLenMax] = 0;
+    }
+
+    void handleValueForPattern(ResourceValue &value, UnicodeString &pattern, UErrorCode &errorCode) {
+        if (pattern.isEmpty()) {
+            if (value.getType() == URES_ALIAS) {
+                if (aliasedStyle[0] == 0) {
+                    setAliasedStyle(value.getAliasUnicodeString(errorCode));
+                }
+            } else {
+                pattern = value.getUnicodeString(errorCode);
+            }
+        }
+    }
+
+    virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/,
+            UErrorCode &errorCode) {
+        aliasedStyle[0] = 0;
+        if (value.getType() == URES_ALIAS) {
+            setAliasedStyle(value.getAliasUnicodeString(errorCode));
+            return;
+        }
+        ResourceTable listPatterns = value.getTable(errorCode);
+        for (int i = 0; U_SUCCESS(errorCode) && listPatterns.getKeyAndValue(i, key, value); ++i) {
+            if (uprv_strcmp(key, "2") == 0) {
+                handleValueForPattern(value, two, errorCode);
+            } else if (uprv_strcmp(key, "end") == 0) {
+                handleValueForPattern(value, end, errorCode);
+            } else if (uprv_strcmp(key, "middle") == 0) {
+                handleValueForPattern(value, middle, errorCode);
+            } else if (uprv_strcmp(key, "start") == 0) {
+                handleValueForPattern(value, start, errorCode);
+            }
+        }
+    }
+};
+
+// Virtual destructors must be defined out of line.
+ListFormatter::ListPatternsSink::~ListPatternsSink() {}
+
+ListFormatInternal* ListFormatter::loadListFormatInternal(
         const Locale& locale, const char * style, UErrorCode& errorCode) {
     UResourceBundle* rb = ures_open(NULL, locale.getName(), &errorCode);
-    if (U_FAILURE(errorCode)) {
-        ures_close(rb);
-        return NULL;
-    }
     rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
-    rb = ures_getByKeyWithFallback(rb, style, rb, &errorCode);
-
     if (U_FAILURE(errorCode)) {
         ures_close(rb);
         return NULL;
     }
-    UnicodeString two, start, middle, end;
-    getStringByKey(rb, "2", two, errorCode);
-    getStringByKey(rb, "start", start, errorCode);
-    getStringByKey(rb, "middle", middle, errorCode);
-    getStringByKey(rb, "end", end, errorCode);
+    ListFormatter::ListPatternsSink sink;
+    char currentStyle[kStyleLenMax+1];
+    uprv_strncpy(currentStyle, style, kStyleLenMax);
+    currentStyle[kStyleLenMax] = 0;
+
+    for (;;) {
+        ures_getAllItemsWithFallback(rb, currentStyle, sink, errorCode);
+        if (U_FAILURE(errorCode) || sink.aliasedStyle[0] == 0 || uprv_strcmp(currentStyle, sink.aliasedStyle) == 0) {
+            break;
+        }
+        uprv_strcpy(currentStyle, sink.aliasedStyle);
+    }
     ures_close(rb);
     if (U_FAILURE(errorCode)) {
         return NULL;
     }
-    ListFormatInternal* result = new ListFormatInternal(two, start, middle, end, errorCode);
+    if (sink.two.isEmpty() || sink.start.isEmpty() || sink.middle.isEmpty() || sink.end.isEmpty()) {
+        errorCode = U_MISSING_RESOURCE_ERROR;
+        return NULL;
+    }
+    ListFormatInternal* result = new ListFormatInternal(sink.two, sink.start, sink.middle, sink.end, errorCode);
     if (result == NULL) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
         return NULL;
@@ -206,15 +273,6 @@
     return result;
 }
 
-static void getStringByKey(const UResourceBundle* rb, const char* key, UnicodeString& result, UErrorCode& errorCode) {
-    int32_t len;
-    const UChar* ustr = ures_getStringByKeyWithFallback(rb, key, &len, &errorCode);
-    if (U_FAILURE(errorCode)) {
-      return;
-    }
-    result.setTo(ustr, len);
-}
-
 ListFormatter* ListFormatter::createInstance(UErrorCode& errorCode) {
     Locale locale;  // The default locale.
     return createInstance(locale, errorCode);
diff --git a/source/common/loadednormalizer2impl.cpp b/source/common/loadednormalizer2impl.cpp
index bd61818..bd37b95 100644
--- a/source/common/loadednormalizer2impl.cpp
+++ b/source/common/loadednormalizer2impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -232,6 +232,7 @@
             }
         }
         if(allModes==NULL) {
+            ucln_common_registerCleanup(UCLN_COMMON_LOADED_NORMALIZER2, uprv_loaded_normalizer2_cleanup);
             LocalPointer<Norm2AllModes> localAllModes(
                 Norm2AllModes::createInstance(packageName, name, errorCode));
             if(U_SUCCESS(errorCode)) {
diff --git a/source/common/localsvc.h b/source/common/localsvc.h
index 6b0624f..60d447c 100644
--- a/source/common/localsvc.h
+++ b/source/common/localsvc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/common/locavailable.cpp b/source/common/locavailable.cpp
index 6016fde..f054db3 100644
--- a/source/common/locavailable.cpp
+++ b/source/common/locavailable.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  locavailable.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/locbased.cpp b/source/common/locbased.cpp
index f2f56ad..ff378b4 100644
--- a/source/common/locbased.cpp
+++ b/source/common/locbased.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/locbased.h b/source/common/locbased.h
index ab8628b..06133be 100644
--- a/source/common/locbased.h
+++ b/source/common/locbased.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/locdispnames.cpp b/source/common/locdispnames.cpp
index d60920c..1aa3ca7 100644
--- a/source/common/locdispnames.cpp
+++ b/source/common/locdispnames.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  locdispnames.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/locdspnm.cpp b/source/common/locdspnm.cpp
index a17478c..39934dc 100644
--- a/source/common/locdspnm.cpp
+++ b/source/common/locdspnm.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -13,6 +13,7 @@
 
 #include "unicode/locdspnm.h"
 #include "unicode/simpleformatter.h"
+#include "unicode/ucasemap.h"
 #include "unicode/ures.h"
 #include "unicode/udisplaycontext.h"
 #include "unicode/brkiter.h"
diff --git a/source/common/locid.cpp b/source/common/locid.cpp
index d2781db..36508ac 100644
--- a/source/common/locid.cpp
+++ b/source/common/locid.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
@@ -33,6 +33,7 @@
 
 
 #include "unicode/locid.h"
+#include "unicode/strenum.h"
 #include "unicode/uloc.h"
 #include "putilimp.h"
 #include "mutex.h"
diff --git a/source/common/loclikely.cpp b/source/common/loclikely.cpp
index c13b37e..cdd6f78 100644
--- a/source/common/loclikely.cpp
+++ b/source/common/loclikely.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  loclikely.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -22,6 +22,7 @@
 #include "unicode/utypes.h"
 #include "unicode/locid.h"
 #include "unicode/putil.h"
+#include "unicode/uchar.h"
 #include "unicode/uloc.h"
 #include "unicode/ures.h"
 #include "unicode/uscript.h"
diff --git a/source/common/locmap.c b/source/common/locmap.cpp
similarity index 83%
rename from source/common/locmap.c
rename to source/common/locmap.cpp
index d564380..545521f 100644
--- a/source/common/locmap.c
+++ b/source/common/locmap.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
@@ -30,6 +30,7 @@
 #include "locmap.h"
 #include "cstring.h"
 #include "cmemory.h"
+#include "unicode/uloc.h"
 
 #if 0
 #if U_PLATFORM == U_PF_WINDOWS && defined(_MSC_VER) && (_MSC_VER >= 1500)
@@ -41,22 +42,19 @@
  * We might need to #include some Windows header and test for some version macro from there.
  * Or call some Windows function and see what it returns.
  */
-#define USE_WINDOWS_LOCALE_API
-#endif
-#endif
-
-#ifdef USE_WINDOWS_LOCALE_API
+#define USE_WINDOWS_LCID_MAPPING_API
 #include <windows.h>
 #include <winnls.h>
 #endif
+#endif
 
 /*
  * Note:
  * The mapping from Win32 locale ID numbers to POSIX locale strings should
  * be the faster one.
  *
- * Many LCID values come from winnt.h
- * Some also come from http://www.microsoft.com/globaldev/reference/lcid-all.mspx
+ * Windows LCIDs are defined at https://msdn.microsoft.com/en-us/library/cc233965.aspx
+ * [MS-LCID] Windows Language Code Identifier (LCID) Reference
  */
 
 /*
@@ -128,7 +126,9 @@
 // Keep static locale variables inside the function so that
 // it can be created properly during static init.
 //
-// Note: This table should be updated periodically. Check the National Lanaguage Support API Reference Website.
+// Note: This table should be updated periodically. Check the [MS-LCID] Windows Language Code Identifier 
+//       (LCID) Reference defined at https://msdn.microsoft.com/en-us/library/cc233965.aspx
+//
 //       Microsoft is moving away from LCID in favor of locale name as of Vista.  This table needs to be
 //       maintained for support of older Windows version.
 //       Update: Windows 7 (091130)
@@ -140,6 +140,9 @@
 ////////////////////////////////////////////
 */
 
+// TODO: For Windows ideally this table would be a list of exceptions rather than a complete list as 
+// LocaleNameToLCID and LCIDToLocaleName provide 90% of these.
+
 ILCID_POSIX_ELEMENT_ARRAY(0x0436, af, af_ZA)
 
 ILCID_POSIX_SUBTABLE(ar) {
@@ -215,6 +218,7 @@
 ILCID_POSIX_ELEMENT_ARRAY(0x0483, co, co_FR)
 ILCID_POSIX_ELEMENT_ARRAY(0x045c, chr,chr_US)
 
+// ICU has chosen different names for these.
 ILCID_POSIX_SUBTABLE(ckb) {
     {0x92,   "ckb"},
     {0x7c92, "ckb_Arab"},
@@ -227,6 +231,7 @@
 ILCID_POSIX_ELEMENT_ARRAY(0x0452, cy, cy_GB)
 ILCID_POSIX_ELEMENT_ARRAY(0x0406, da, da_DK)
 
+// Windows doesn't know POSIX or BCP47 Unicode phonebook sort names
 ILCID_POSIX_SUBTABLE(de) {
     {0x07,   "de"},
     {0x0c07, "de_AT"},
@@ -241,6 +246,7 @@
 ILCID_POSIX_ELEMENT_ARRAY(0x0465, dv, dv_MV)
 ILCID_POSIX_ELEMENT_ARRAY(0x0408, el, el_GR)
 
+// Windows uses an empty string for 'invariant'
 ILCID_POSIX_SUBTABLE(en) {
     {0x09,   "en"},
     {0x0c09, "en_AU"},
@@ -258,22 +264,23 @@
     {0x4809, "en_SG"},
     {0x2C09, "en_TT"},
     {0x0409, "en_US"},
-    {0x007f, "en_US_POSIX"}, /* duplicate for roundtripping */
-    {0x2409, "en_VI"},  /* Virgin Islands AKA Caribbean Islands (en_CB). */
+    {0x007f, "en_US_POSIX"}, /* duplicate for round-tripping */
+    {0x2409, "en_VI"},  /* Virgin Islands AKA Caribbean Islands (en_CB). On Windows8+ This is 0x1000 or dynamically assigned */
     {0x1c09, "en_ZA"},
     {0x3009, "en_ZW"},
     {0x2409, "en_029"},
-    {0x0409, "en_AS"},  /* Alias for en_US. Leave last. */
-    {0x0409, "en_GU"},  /* Alias for en_US. Leave last. */
-    {0x0409, "en_MH"},  /* Alias for en_US. Leave last. */
-    {0x0409, "en_MP"},  /* Alias for en_US. Leave last. */
-    {0x0409, "en_UM"}   /* Alias for en_US. Leave last. */
+    {0x0409, "en_AS"},  /* Alias for en_US. Leave last.  On Windows8+ This is 0x1000 or dynamically assigned */
+    {0x0409, "en_GU"},  /* Alias for en_US. Leave last.  On Windows8+ This is 0x1000 or dynamically assigned */
+    {0x0409, "en_MH"},  /* Alias for en_US. Leave last.  On Windows8+ This is 0x1000 or dynamically assigned */
+    {0x0409, "en_MP"},  /* Alias for en_US. Leave last.  On Windows8+ This is 0x1000 or dynamically assigned */
+    {0x0409, "en_UM"}   /* Alias for en_US. Leave last.  On Windows8+ This is 0x1000 or dynamically assigned */
 };
 
 ILCID_POSIX_SUBTABLE(en_US_POSIX) {
     {0x007f, "en_US_POSIX"} /* duplicate for roundtripping */
 };
 
+// Windows doesn't know POSIX or BCP47 Unicode traditional sort names
 ILCID_POSIX_SUBTABLE(es) {
     {0x0a,   "es"},
     {0x2c0a, "es_AR"},
@@ -299,7 +306,7 @@
     {0x200a, "es_VE"},
     {0x580a, "es_419"},
     {0x040a, "es_ES@collation=traditional"},
-    {0x040a, "es@collation=traditional"}
+    {0x040a, "es@collation=traditional"}        // Windows will treat this as es-ES@collation=traditional
 };
 
 ILCID_POSIX_ELEMENT_ARRAY(0x0425, et, et_EE)
@@ -312,6 +319,7 @@
     {0x048c, "fa_AF"}   /* Persian/Dari (Afghanistan) */
 };
 
+
 /* duplicate for roundtripping */
 ILCID_POSIX_SUBTABLE(fa_AF) {
     {0x8c,   "fa_AF"},  /* Persian/Dari (Afghanistan) */
@@ -503,8 +511,9 @@
 };
 
 /* The "no" locale split into nb and nn.  By default in ICU, "no" is nb.*/
+// TODO: Not all of these are needed on Windows, but I don't know how ICU treats preferred ones here.
 ILCID_POSIX_SUBTABLE(no) {
-    {0x14,   "no"},     /* really nb_NO */
+    {0x14,   "no"},     /* really nb_NO - actually Windows differentiates between neutral (no region) and specific (with region) */ 
     {0x7c14, "nb"},     /* really nb */
     {0x0414, "nb_NO"},  /* really nb_NO. Keep first in the 414 list. */
     {0x0414, "no_NO"},  /* really nb_NO */
@@ -593,6 +602,9 @@
     {0x0818, "ro_MD"}
 };
 
+// TODO: This is almost certainly 'wrong'.  0 in Windows is a synonym for LOCALE_USER_DEFAULT.
+// More likely this is a similar concept to the Windows 0x7f Invariant locale ""
+// (Except that it's not invariant in ICU)
 ILCID_POSIX_SUBTABLE(root) {
     {0x00,   "root"}
 };
@@ -732,6 +744,8 @@
 ILCID_POSIX_ELEMENT_ARRAY(0x043d, yi, yi)
 ILCID_POSIX_ELEMENT_ARRAY(0x046a, yo, yo_NG)
 
+// Windows & ICU tend to different names for some of these
+// TODO: Windows probably does not need all of these entries, but I don't know how the precedence works.
 ILCID_POSIX_SUBTABLE(zh) {
     {0x0004, "zh_Hans"},
     {0x7804, "zh"},
@@ -755,6 +769,7 @@
     {0x20804,"zh_Hans@collation=stroke"},
     {0x20804,"zh_Hans_CN@collation=stroke"},
     {0x20804,"zh_CN@collation=stroke"}
+    // TODO: Alternate collations for other LCIDs are missing, eg: 0x50804
 };
 
 ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA)
@@ -993,7 +1008,7 @@
 //
 /////////////////////////////////////
 */
-#ifdef USE_WINDOWS_LOCALE_API
+#ifdef USE_WINDOWS_LCID_MAPPING_API
 /*
  * Various language tags needs to be changed:
  * quz -> qu
@@ -1019,43 +1034,56 @@
     UBool bLookup = TRUE;
     const char *pPosixID = NULL;
 
-#ifdef USE_WINDOWS_LOCALE_API
+#ifdef USE_WINDOWS_LCID_MAPPING_API
     // Note: Windows primary lang ID 0x92 in LCID is used for Central Kurdish and
     // GetLocaleInfo() maps such LCID to "ku". However, CLDR uses "ku" for
     // Northern Kurdish and "ckb" for Central Kurdish. For this reason, we cannot
     // use the Windows API to resolve locale ID for this specific case.
-    if (hostid & 0x3FF != 0x92) {
+    if ((hostid & 0x3FF) != 0x92) {
         int32_t tmpLen = 0;
-        char locName[157];  /* ULOC_FULLNAME_CAPACITY */
+        UChar windowsLocaleName[LOCALE_NAME_MAX_LENGTH];  // ULOC_FULLNAME_CAPACITY > LOCALE_NAME_MAX_LENGTH
+        char locName[LOCALE_NAME_MAX_LENGTH];             // ICU name can't be longer than Windows name
 
-        tmpLen = GetLocaleInfoA(hostid, LOCALE_SNAME, (LPSTR)locName, UPRV_LENGTHOF(locName));
+        // Note: LOCALE_ALLOW_NEUTRAL_NAMES was enabled in Windows7+, prior versions did not handle neutral (no-region) locale names.
+        tmpLen = LCIDToLocaleName(hostid, (PWSTR)windowsLocaleName, UPRV_LENGTHOF(windowsLocaleName), LOCALE_ALLOW_NEUTRAL_NAMES);
         if (tmpLen > 1) {
-            /* Windows locale name may contain sorting variant, such as "es-ES_tradnl".
-            In such case, we need special mapping data found in the hardcoded table
-            in this source file. */
-            char *p = uprv_strchr(locName, '_');
-            if (p) {
-                /* Keep the base locale, without variant */
-                *p = 0;
-                tmpLen = uprv_strlen(locName);
-            }
-            else {
-                /* No hardcoded table lookup necessary */
-                bLookup = FALSE;
-            }
-            /* Change the tag separator from '-' to '_' */
-            p = locName;
-            while (*p) {
-                if (*p == '-') {
-                    *p = '_';
+            int32_t i = 0;
+            // Only need to look up in table if have _, eg for de-de_phoneb type alternate sort.
+            bLookup = FALSE;
+            for (i = 0; i < UPRV_LENGTHOF(locName); i++)
+            {
+                locName[i] = (char)(windowsLocaleName[i]);
+
+                // Windows locale name may contain sorting variant, such as "es-ES_tradnl".
+                // In such cases, we need special mapping data found in the hardcoded table
+                // in this source file.
+                if (windowsLocaleName[i] == L'_')
+                {
+                    // Keep the base locale, without variant
+                    // TODO: Should these be mapped from _phoneb to @collation=phonebook, etc.?
+                    locName[i] = '\0';
+                    tmpLen = i;
+                    bLookup = TRUE;
+                    break;
                 }
-                p++;
+                else if (windowsLocaleName[i] == L'-')
+                {
+                    // Windows names use -, ICU uses _
+                    locName[i] = '_';
+                }
+                else if (windowsLocaleName[i] == L'\0')
+                {
+                    // No point in doing more work than necessary
+                    break;
+                }
             }
+            // TODO: Need to understand this better, why isn't it an alias?
             FIX_LANGUAGE_ID_TAG(locName, tmpLen);
             pPosixID = locName;
         }
     }
-#endif
+#endif // USE_WINDOWS_LCID_MAPPING_API
+
     if (bLookup) {
         const char *pCandidate = NULL;
         langID = LANGUAGE_LCID(hostid);
@@ -1103,15 +1131,101 @@
 // POSIX --> LCID
 // This should only be called from uloc_getLCID.
 // The locale ID must be in canonical form.
-// langID is separate so that this file doesn't depend on the uloc_* API.
 //
 /////////////////////////////////////
 */
+U_CAPI uint32_t
+uprv_convertToLCIDPlatform(const char* localeID)
+{
+    // The purpose of this function is to leverage native platform name->lcid
+    // conversion functionality when available.
+#ifdef USE_WINDOWS_LCID_MAPPING_API
+    DWORD nameLCIDFlags = 0;
+    UErrorCode myStatus = U_ZERO_ERROR;
+
+    // First check for a Windows name->LCID match, fall through to catch
+    // ICU special cases, but Windows may know it already.
+#if LOCALE_ALLOW_NEUTRAL_NAMES
+    nameLCIDFlags = LOCALE_ALLOW_NEUTRAL_NAMES;
+#endif /* LOCALE_ALLOW_NEUTRAL_NAMES */
+
+    int32_t len;
+    char collVal[ULOC_KEYWORDS_CAPACITY] = {};
+    char baseName[ULOC_FULLNAME_CAPACITY] = {};
+    const char * mylocaleID = localeID;
+
+    // Check any for keywords.
+    if (uprv_strchr(localeID, '@'))
+    {
+        len = uloc_getKeywordValue(localeID, "collation", collVal, UPRV_LENGTHOF(collVal) - 1, &myStatus);
+        if (U_SUCCESS(myStatus) && len > 0)
+        {
+            // If it contains the keyword collation, return 0 so that the LCID lookup table will be used.
+            return 0;
+        }
+        else
+        {
+            // If the locale ID contains keywords other than collation, just use the base name.
+            len = uloc_getBaseName(localeID, baseName, UPRV_LENGTHOF(baseName) - 1, &myStatus);
+
+            if (U_SUCCESS(myStatus) && len > 0)
+            {
+                baseName[len] = 0;
+                mylocaleID = baseName;
+            }
+        }
+    }
+
+    char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+    // this will change it from de_DE@collation=phonebook to de-DE-u-co-phonebk form
+    int32_t bcp47Len = uloc_toLanguageTag(mylocaleID, asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &myStatus);
+
+    if (U_SUCCESS(myStatus))
+    {
+        // Need it to be UTF-16, not 8-bit
+        wchar_t bcp47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+        int32_t i;
+        for (i = 0; i < UPRV_LENGTHOF(bcp47Tag); i++)
+        {
+            if (asciiBCP47Tag[i] == '\0')
+            {
+                break;
+            }
+            else
+            {
+                // Copy the character
+                bcp47Tag[i] = static_cast<wchar_t>(asciiBCP47Tag[i]);
+            }
+        }
+
+        if (i < (UPRV_LENGTHOF(bcp47Tag) - 1))
+        {
+            // Ensure it's null terminated
+            bcp47Tag[i] = L'\0';
+            LCID lcid = LocaleNameToLCID(bcp47Tag, nameLCIDFlags);
+            if (lcid > 0)
+            {
+                // Found LCID from windows, return that one, unless its completely ambiguous
+                // LOCALE_USER_DEFAULT and transients are OK because they will round trip
+                // for this process.
+                if (lcid != LOCALE_CUSTOM_UNSPECIFIED)
+                {
+                    return lcid;
+                }
+            }
+        }
+    }
+#endif /* USE_WINDOWS_LCID_MAPPING_API */
+
+    // No found, or not implemented on platforms without native name->lcid conversion
+    return 0;
+}
 
 U_CAPI uint32_t
 uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status)
 {
-
+    // This function does the table lookup when native platform name->lcid conversion isn't available,
+    // or for locales that don't follow patterns the platform expects.
     uint32_t   low    = 0;
     uint32_t   high   = gLocaleCount;
     uint32_t   mid;
@@ -1174,4 +1288,3 @@
     *status = U_ILLEGAL_ARGUMENT_ERROR;
     return 0;   /* return international (root) */
 }
-
diff --git a/source/common/locmap.h b/source/common/locmap.h
index 4e14fe5..bef6295 100644
--- a/source/common/locmap.h
+++ b/source/common/locmap.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -32,7 +32,8 @@
 
 U_CAPI int32_t uprv_convertToPosix(uint32_t hostid, char* posixID, int32_t posixIDCapacity, UErrorCode* status);
 
-/* Don't call this function directly. Use uloc_getLCID instead. */
+/* Don't call these functions directly. Use uloc_getLCID instead. */
+U_CAPI uint32_t uprv_convertToLCIDPlatform(const char *localeID);   // Leverage platform conversion if possible
 U_CAPI uint32_t uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status);
 
 #endif /* LOCMAP_H */
diff --git a/source/common/locresdata.cpp b/source/common/locresdata.cpp
index ee60639..258b707 100644
--- a/source/common/locresdata.cpp
+++ b/source/common/locresdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  loclikely.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/locutil.cpp b/source/common/locutil.cpp
index a27edf1..5f0bd52 100644
--- a/source/common/locutil.cpp
+++ b/source/common/locutil.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/common/locutil.h b/source/common/locutil.h
index 64f7dcc..31bfffd 100644
--- a/source/common/locutil.h
+++ b/source/common/locutil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/messageimpl.h b/source/common/messageimpl.h
index 980f777..dc7a6ed 100644
--- a/source/common/messageimpl.h
+++ b/source/common/messageimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  messageimpl.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/messagepattern.cpp b/source/common/messagepattern.cpp
index 31d5bb7..f223d06 100644
--- a/source/common/messagepattern.cpp
+++ b/source/common/messagepattern.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  messagepattern.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/msvcres.h b/source/common/msvcres.h
index ac23b97..0cace85 100644
--- a/source/common/msvcres.h
+++ b/source/common/msvcres.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //{{NO_DEPENDENCIES}}
 // Copyright (c) 2003-2010 International Business Machines
diff --git a/source/common/mutex.h b/source/common/mutex.h
index 525628b..bb45e7d 100644
--- a/source/common/mutex.h
+++ b/source/common/mutex.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/norm2_nfc_data.h b/source/common/norm2_nfc_data.h
index 4ddba0f..9295404 100644
--- a/source/common/norm2_nfc_data.h
+++ b/source/common/norm2_nfc_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 1999-2016, International Business Machines
diff --git a/source/common/norm2allmodes.h b/source/common/norm2allmodes.h
index 943e83d..9516817 100644
--- a/source/common/norm2allmodes.h
+++ b/source/common/norm2allmodes.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/normalizer2.cpp b/source/common/normalizer2.cpp
index 33d9417..77f6e27 100644
--- a/source/common/normalizer2.cpp
+++ b/source/common/normalizer2.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  normalizer2.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/normalizer2impl.cpp b/source/common/normalizer2impl.cpp
index be0240e..67f4c1c 100644
--- a/source/common/normalizer2impl.cpp
+++ b/source/common/normalizer2impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  normalizer2impl.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/normalizer2impl.h b/source/common/normalizer2impl.h
index a6bf967..946abee 100644
--- a/source/common/normalizer2impl.h
+++ b/source/common/normalizer2impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  normalizer2impl.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -176,7 +176,7 @@
         lastCC=0;
     }
     void copyReorderableSuffixTo(UnicodeString &s) const {
-        s.setTo(reorderStart, (int32_t)(limit-reorderStart));
+        s.setTo(ConstChar16Ptr(reorderStart), (int32_t)(limit-reorderStart));
     }
 private:
     /*
diff --git a/source/common/normlzr.cpp b/source/common/normlzr.cpp
index 19c09f0..607660c 100644
--- a/source/common/normlzr.cpp
+++ b/source/common/normlzr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *************************************************************************
@@ -23,6 +23,12 @@
 #include "normalizer2impl.h"
 #include "uprops.h"  // for uniset_getUnicode32Instance()
 
+#if defined(_ARM64_) && defined(move32)
+ // System can define move32 intrinsics, but the char iters define move32 method
+ // using same undef trick in headers, so undef here to re-enable the method.
+#undef move32
+#endif
+
 U_NAMESPACE_BEGIN
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(Normalizer)
@@ -40,7 +46,7 @@
     init();
 }
 
-Normalizer::Normalizer(const UChar *str, int32_t length, UNormalizationMode mode) :
+Normalizer::Normalizer(ConstChar16Ptr str, int32_t length, UNormalizationMode mode) :
     UObject(), fFilteredNorm2(NULL), fNorm2(NULL), fUMode(mode), fOptions(0),
     text(new UCharCharacterIterator(str, length)),
     currentIndex(0), nextIndex(0),
@@ -435,7 +441,7 @@
 }
 
 void
-Normalizer::setText(const UChar* newText,
+Normalizer::setText(ConstChar16Ptr newText,
                     int32_t length,
                     UErrorCode &status)
 {
diff --git a/source/common/parsepos.cpp b/source/common/parsepos.cpp
index af6ac6c..56c6c78 100644
--- a/source/common/parsepos.cpp
+++ b/source/common/parsepos.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/patternprops.cpp b/source/common/patternprops.cpp
index 30c3f68..01e33ce 100644
--- a/source/common/patternprops.cpp
+++ b/source/common/patternprops.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  patternprops.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/patternprops.h b/source/common/patternprops.h
index f309c2d..a42eb3c 100644
--- a/source/common/patternprops.h
+++ b/source/common/patternprops.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  patternprops.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/pluralmap.cpp b/source/common/pluralmap.cpp
index fc5f8fc..ec87f01 100644
--- a/source/common/pluralmap.cpp
+++ b/source/common/pluralmap.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines Corporation and
diff --git a/source/common/pluralmap.h b/source/common/pluralmap.h
index 76e95c5..db64409 100644
--- a/source/common/pluralmap.h
+++ b/source/common/pluralmap.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/propname.cpp b/source/common/propname.cpp
index 4107869..a12eb7d 100644
--- a/source/common/propname.cpp
+++ b/source/common/propname.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/propname.h b/source/common/propname.h
index c93d3d7..1a8ced5 100644
--- a/source/common/propname.h
+++ b/source/common/propname.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/propname_data.h b/source/common/propname_data.h
index 4863b26..c15b2a4 100644
--- a/source/common/propname_data.h
+++ b/source/common/propname_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 // Copyright (C) 1999-2016, International Business Machines
diff --git a/source/common/propsvec.c b/source/common/propsvec.cpp
similarity index 98%
rename from source/common/propsvec.c
rename to source/common/propsvec.cpp
index ed4d899..056fcda 100644
--- a/source/common/propsvec.c
+++ b/source/common/propsvec.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  propsvec.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -499,6 +499,8 @@
                              UChar32 start, UChar32 end,
                              int32_t rowIndex, uint32_t *row, int32_t columns,
                              UErrorCode *pErrorCode) {
+    (void)row;
+    (void)columns;
     UPVecToUTrie2Context *toUTrie2=(UPVecToUTrie2Context *)context;
     if(start<UPVEC_FIRST_SPECIAL_CP) {
         utrie2_setRange32(toUTrie2->trie, start, end, (uint32_t)rowIndex, TRUE, pErrorCode);
diff --git a/source/common/propsvec.h b/source/common/propsvec.h
index b34e4ee..3908061 100644
--- a/source/common/propsvec.h
+++ b/source/common/propsvec.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  propsvec.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/punycode.cpp b/source/common/punycode.cpp
index 1d2ccb3..90fe1ec 100644
--- a/source/common/punycode.cpp
+++ b/source/common/punycode.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  punycode.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/punycode.h b/source/common/punycode.h
index ff23eb0..5d8a243 100644
--- a/source/common/punycode.h
+++ b/source/common/punycode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  punycode.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/putil.cpp b/source/common/putil.cpp
index 03f6548..9af0bb3 100644
--- a/source/common/putil.cpp
+++ b/source/common/putil.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -43,8 +43,24 @@
 // Must be before any other #includes.
 #include "uposixdefs.h"
 
-/* include ICU headers */
-#include "unicode/utypes.h"
+// First, the platform type. Need this for U_PLATFORM.
+#include "unicode/platform.h"
+
+#if U_PLATFORM == U_PF_MINGW && defined __STRICT_ANSI__
+/* tzset isn't defined in strict ANSI on MinGW. */
+#undef __STRICT_ANSI__
+#endif
+
+/*
+ * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
+ */
+#include <time.h>
+
+#if !U_PLATFORM_USES_ONLY_WIN32_API
+#include <sys/time.h>
+#endif
+
+/* include the rest of the ICU headers */
 #include "unicode/putil.h"
 #include "unicode/ustring.h"
 #include "putilimp.h"
@@ -76,14 +92,29 @@
      * Should Cygwin be included as well (U_PLATFORM_HAS_WIN32_API)
      * to use native APIs as much as possible?
      */
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
 #   define NOIME
 #   define NOMCX
 #   include <windows.h>
+#   include "unicode\uloc.h"
+#if U_PLATFORM_HAS_WINUWP_API == 0
 #   include "wintz.h"
+#else // U_PLATFORM_HAS_WINUWP_API
+typedef PVOID LPMSG; // TODO: figure out how to get rid of this typedef
+#include <Windows.Globalization.h>
+#include <windows.system.userprofile.h>
+#include <wrl\wrappers\corewrappers.h>
+#include <wrl\client.h>
+
+using namespace ABI::Windows::Foundation;
+using namespace Microsoft::WRL;
+using namespace Microsoft::WRL::Wrappers;
+#endif
 #elif U_PLATFORM == U_PF_OS400
 #   include <float.h>
 #   include <qusec.h>       /* error code structure */
@@ -104,20 +135,6 @@
 #   include <sys/neutrino.h>
 #endif
 
-#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
-/* tzset isn't defined in strict ANSI on Cygwin and MinGW. */
-#undef __STRICT_ANSI__
-#endif
-
-/*
- * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
- */
-#include <time.h>
-
-#if !U_PLATFORM_USES_ONLY_WIN32_API
-#include <sys/time.h>
-#endif
-
 /*
  * Only include langinfo.h if we have a way to get the codeset. If we later
  * depend on more feature, we can test on U_HAVE_NL_LANGINFO.
@@ -651,7 +668,7 @@
 /* Note that U_TZNAME does *not* have to be tzname, but if it is,
    some platforms need to have it declared here. */
 
-#if defined(U_TZNAME) && (U_PLATFORM == U_PF_IRIX || U_PLATFORM_IS_DARWIN_BASED || (U_PLATFORM == U_PF_CYGWIN && !U_PLATFORM_USES_ONLY_WIN32_API))
+#if defined(U_TZNAME) && (U_PLATFORM == U_PF_IRIX || U_PLATFORM_IS_DARWIN_BASED)
 /* RS6000 and others reject char **tzname.  */
 extern U_IMPORT char *U_TZNAME[];
 #endif
@@ -1008,16 +1025,65 @@
 #endif
 }
 
+// With the Universal Windows Platform we can just ask Windows for the name
+#if U_PLATFORM_HAS_WINUWP_API
+U_CAPI const char* U_EXPORT2
+uprv_getWindowsTimeZone()
+{
+    // Get default Windows timezone.   
+    ComPtr<IInspectable> calendar;
+    HRESULT hr = RoActivateInstance(
+        HStringReference(RuntimeClass_Windows_Globalization_Calendar).Get(),
+        &calendar);
+    if (SUCCEEDED(hr))
+    {
+        ComPtr<ABI::Windows::Globalization::ITimeZoneOnCalendar> timezone;
+        hr = calendar.As(&timezone);
+        if (SUCCEEDED(hr))
+        {
+            HString timezoneString;
+            hr = timezone->GetTimeZone(timezoneString.GetAddressOf());
+            if (SUCCEEDED(hr))
+            {
+                int32_t length = wcslen(timezoneString.GetRawBuffer(NULL));
+                char* asciiId = (char*)uprv_calloc(length + 1, sizeof(char));
+                if (asciiId != nullptr)
+                {
+                    u_UCharsToChars((UChar*)timezoneString.GetRawBuffer(NULL), asciiId, length);
+                    return asciiId;
+                }
+            }
+        }
+    }
+
+    // Failed
+    return nullptr;
+}
+#endif
+
 U_CAPI const char* U_EXPORT2
 uprv_tzname(int n)
 {
     const char *tzid = NULL;
 #if U_PLATFORM_USES_ONLY_WIN32_API
+#if U_PLATFORM_HAS_WINUWP_API > 0
+    tzid = uprv_getWindowsTimeZone();
+#else
     tzid = uprv_detectWindowsTimeZone();
+#endif
 
     if (tzid != NULL) {
         return tzid;
     }
+
+#ifndef U_TZNAME
+    // The return value is free'd in timezone.cpp on Windows because
+    // the other code path returns a pointer to a heap location.
+    // If we don't have a name already, then tzname wouldn't be any
+    // better, so just fall back.
+    return uprv_strdup("Etc/UTC");
+#endif // !U_TZNAME
+
 #else
 
 /*#if U_PLATFORM_IS_DARWIN_BASED
@@ -1162,7 +1228,8 @@
 static CharString *gTimeZoneFilesDirectory = NULL;
 
 #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API
- static char *gCorrectedPOSIXLocale = NULL; /* Heap allocated */
+ static const char *gCorrectedPOSIXLocale = NULL; /* Sometimes heap allocated */
+ static bool gCorrectedPOSIXLocaleHeapAllocated = false;
 #endif
 
 static UBool U_CALLCONV putil_cleanup(void)
@@ -1183,9 +1250,10 @@
 #endif
 
 #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API
-    if (gCorrectedPOSIXLocale) {
-        uprv_free(gCorrectedPOSIXLocale);
+    if (gCorrectedPOSIXLocale && gCorrectedPOSIXLocaleHeapAllocated) {
+        uprv_free(const_cast<char *>(gCorrectedPOSIXLocale));
         gCorrectedPOSIXLocale = NULL;
+        gCorrectedPOSIXLocaleHeapAllocated = false;
     }
 #endif
     return TRUE;
@@ -1297,7 +1365,9 @@
     */
 #   if !defined(ICU_NO_USER_DATA_OVERRIDE) && !UCONFIG_NO_FILE_IO
     /* First try to get the environment variable */
-    path=getenv("ICU_DATA");
+#       if U_PLATFORM_HAS_WINUWP_API == 0  // Windows UWP does not support getenv
+        path=getenv("ICU_DATA");
+#       endif
 #   endif
 
     /* ICU_DATA_DIR may be set as a compile option.
@@ -1326,9 +1396,35 @@
     }
 #endif
 
+#if defined(ICU_DATA_DIR_WINDOWS) && U_PLATFORM_HAS_WINUWP_API != 0
+    // Use data from the %windir%\globalization\icu directory
+    // This is only available if ICU is built as a system component
+    char datadir_path_buffer[MAX_PATH];
+    UINT length = GetWindowsDirectoryA(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer));
+    if (length > 0 && length < (UPRV_LENGTHOF(datadir_path_buffer) - sizeof(ICU_DATA_DIR_WINDOWS) - 1))
+    {
+        if (datadir_path_buffer[length - 1] != '\\')
+        {
+            datadir_path_buffer[length++] = '\\';
+            datadir_path_buffer[length] = '\0';
+        }
+
+        if ((length + 1 + sizeof(ICU_DATA_DIR_WINDOWS)) < UPRV_LENGTHOF(datadir_path_buffer))
+        {
+            uprv_strcat(datadir_path_buffer, ICU_DATA_DIR_WINDOWS);
+            path = datadir_path_buffer;
+        }
+    }
+#endif
+
     if(path==NULL) {
         /* It looks really bad, set it to something. */
+#if U_PLATFORM_HAS_WIN32_API
+        // Windows UWP will require icudtl.dat file in same directory as icuuc.dll
+        path = ".\\";
+#else
         path = "";
+#endif
     }
 
     u_setDataDirectory(path);
@@ -1366,7 +1462,12 @@
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
+#if U_PLATFORM_HAS_WINUWP_API == 0
     const char *dir = getenv("ICU_TIMEZONE_FILES_DIR");
+#else
+    // TODO: UWP does not support alternate timezone data directories at this time
+    const char *dir = "";
+#endif // U_PLATFORM_HAS_WINUWP_API
 #if defined(U_TIMEZONE_FILES_DIR)
     if (dir == NULL) {
         dir = TO_STRING(U_TIMEZONE_FILES_DIR);
@@ -1603,6 +1704,7 @@
 
     if (gCorrectedPOSIXLocale == NULL) {
         gCorrectedPOSIXLocale = correctedPOSIXLocale;
+        gCorrectedPOSIXLocaleHeapAllocated = true;
         ucln_common_registerCleanup(UCLN_COMMON_PUTIL, putil_cleanup);
         correctedPOSIXLocale = NULL;
     }
@@ -1618,25 +1720,115 @@
     UErrorCode status = U_ZERO_ERROR;
     char *correctedPOSIXLocale = 0;
 
+    // If we have already figured this out just use the cached value
     if (gCorrectedPOSIXLocale != NULL) {
         return gCorrectedPOSIXLocale;
     }
 
-    LCID id = GetThreadLocale();
-    correctedPOSIXLocale = static_cast<char *>(uprv_malloc(POSIX_LOCALE_CAPACITY + 1));
-    if (correctedPOSIXLocale) {
-        int32_t posixLen = uprv_convertToPosix(id, correctedPOSIXLocale, POSIX_LOCALE_CAPACITY, &status);
-        if (U_SUCCESS(status)) {
-            *(correctedPOSIXLocale + posixLen) = 0;
-            gCorrectedPOSIXLocale = correctedPOSIXLocale;
-            ucln_common_registerCleanup(UCLN_COMMON_PUTIL, putil_cleanup);
-        } else {
-            uprv_free(correctedPOSIXLocale);
+    // No cached value, need to determine the current value
+    static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH];
+#if U_PLATFORM_HAS_WINUWP_API == 0 
+    // If not a Universal Windows App, we'll need user default language.
+    // Vista and above should use Locale Names instead of LCIDs
+    int length = GetUserDefaultLocaleName(windowsLocale, UPRV_LENGTHOF(windowsLocale));
+#else
+    // In a UWP app, we want the top language that the application and user agreed upon
+    ComPtr<ABI::Windows::Foundation::Collections::IVectorView<HSTRING>> languageList;
+
+    ComPtr<ABI::Windows::Globalization::IApplicationLanguagesStatics> applicationLanguagesStatics;
+    HRESULT hr = GetActivationFactory(
+        HStringReference(RuntimeClass_Windows_Globalization_ApplicationLanguages).Get(),
+        &applicationLanguagesStatics);
+    if (SUCCEEDED(hr))
+    {
+        hr = applicationLanguagesStatics->get_Languages(&languageList);
+    }
+
+    if (FAILED(hr))
+    {
+        // If there is no application context, then use the top language from the user language profile
+        ComPtr<ABI::Windows::System::UserProfile::IGlobalizationPreferencesStatics> globalizationPreferencesStatics;
+        hr = GetActivationFactory(
+            HStringReference(RuntimeClass_Windows_System_UserProfile_GlobalizationPreferences).Get(),
+            &globalizationPreferencesStatics);
+        if (SUCCEEDED(hr))
+        {
+            hr = globalizationPreferencesStatics->get_Languages(&languageList);
         }
     }
 
+    // We have a list of languages, ICU knows one, so use the top one for our locale
+    HString topLanguage;
+    if (SUCCEEDED(hr))
+    {
+        hr = languageList->GetAt(0, topLanguage.GetAddressOf());
+    }
+
+    if (FAILED(hr))
+    {
+        // Unexpected, use en-US by default
+        if (gCorrectedPOSIXLocale == NULL) {
+            gCorrectedPOSIXLocale = "en_US";
+        }
+
+        return gCorrectedPOSIXLocale;
+    }
+
+    // ResolveLocaleName will get a likely subtags form consistent with Windows behavior.
+    int length = ResolveLocaleName(topLanguage.GetRawBuffer(NULL), windowsLocale, UPRV_LENGTHOF(windowsLocale));
+#endif
+    // Now we should have a Windows locale name that needs converted to the POSIX style,
+    if (length > 0)
+    {
+        // First we need to go from UTF-16 to char (and also convert from _ to - while we're at it.)
+        char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH];
+
+        int32_t i;
+        for (i = 0; i < UPRV_LENGTHOF(modifiedWindowsLocale); i++)
+        {
+            if (windowsLocale[i] == '_')
+            {
+                modifiedWindowsLocale[i] = '-';
+            }
+            else
+            {
+                modifiedWindowsLocale[i] = static_cast<char>(windowsLocale[i]);
+            }
+
+            if (modifiedWindowsLocale[i] == '\0')
+            {
+                break;
+            }
+        }
+
+        if (i >= UPRV_LENGTHOF(modifiedWindowsLocale))
+        {
+            // Ran out of room, can't really happen, maybe we'll be lucky about a matching
+            // locale when tags are dropped
+            modifiedWindowsLocale[UPRV_LENGTHOF(modifiedWindowsLocale) - 1] = '\0';
+        }
+
+        // Now normalize the resulting name
+        if (correctedPOSIXLocale)
+        {
+            int32_t posixLen = uloc_canonicalize(modifiedWindowsLocale, correctedPOSIXLocale, POSIX_LOCALE_CAPACITY, &status);
+            if (U_SUCCESS(status))
+            {
+                *(correctedPOSIXLocale + posixLen) = 0;
+                gCorrectedPOSIXLocale = correctedPOSIXLocale;
+                gCorrectedPOSIXLocaleHeapAllocated = true;
+                ucln_common_registerCleanup(UCLN_COMMON_PUTIL, putil_cleanup);
+            }
+            else
+            {
+                uprv_free(correctedPOSIXLocale);
+            }
+        }
+    }
+
+    // If unable to find a locale we can agree upon, use en-US by default
     if (gCorrectedPOSIXLocale == NULL) {
-        return "en_US";
+        gCorrectedPOSIXLocale = "en_US";
     }
     return gCorrectedPOSIXLocale;
 
@@ -1923,8 +2115,34 @@
 
 #elif U_PLATFORM_USES_ONLY_WIN32_API
     static char codepage[64];
-    sprintf(codepage, "windows-%d", GetACP());
-    return codepage;
+    DWORD codepageNumber = 0;
+
+#if U_PLATFORM_HAS_WINUWP_API > 0
+    // UWP doesn't have a direct API to get the default ACP as Microsoft would rather
+    // have folks use Unicode than a "system" code page, however this is the same
+    // codepage as the system default locale codepage.  (FWIW, the system locale is
+    // ONLY used for codepage, it should never be used for anything else)
+    GetLocaleInfoEx(LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER,
+        (LPWSTR)&codepageNumber, sizeof(codepageNumber) / sizeof(WCHAR));
+#else
+    // Win32 apps can call GetACP
+    codepageNumber = GetACP();
+#endif
+    // Special case for UTF-8
+    if (codepageNumber == 65001)
+    { 
+        return "UTF-8";
+    }
+    // Windows codepages can look like windows-1252, so format the found number
+    // the numbers are eclectic, however all valid system code pages, besides UTF-8
+    // are between 3 and 19999
+    if (codepageNumber > 0 && codepageNumber < 20000)
+    {
+        sprintf(codepage, "windows-%ld", codepageNumber);
+        return codepage;
+    }
+    // If the codepage number call failed then return UTF-8
+    return "UTF-8";
 
 #elif U_POSIX_LOCALE
     static char codesetName[100];
diff --git a/source/common/putilimp.h b/source/common/putilimp.h
index 05f7391..e547322 100644
--- a/source/common/putilimp.h
+++ b/source/common/putilimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -87,7 +87,7 @@
 
 #ifdef U_HAVE_NL_LANGINFO_CODESET
     /* Use the predefined value. */
-#elif U_PLATFORM_HAS_WIN32_API || U_PLATFORM == U_PF_ANDROID || U_PLATFORM == U_PF_QNX
+#elif U_PLATFORM_USES_ONLY_WIN32_API || U_PLATFORM == U_PF_ANDROID || U_PLATFORM == U_PF_QNX
 #   define U_HAVE_NL_LANGINFO_CODESET 0
 #else
 #   define U_HAVE_NL_LANGINFO_CODESET 1
@@ -106,7 +106,10 @@
 #ifdef U_TZSET
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
+    // UWP doesn't support tzset or environment variables for tz
+#if U_PLATFORM_HAS_WINUWP_API == 0
 #   define U_TZSET _tzset
+#endif
 #elif U_PLATFORM == U_PF_OS400
    /* not defined */
 #else
@@ -141,7 +144,10 @@
 #ifdef U_TZNAME
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
+    /* not usable on all windows platforms */
+#if U_PLATFORM_HAS_WINUWP_API == 0
 #   define U_TZNAME _tzname
+#endif
 #elif U_PLATFORM == U_PF_OS400
    /* not defined */
 #else
diff --git a/source/common/rbbi.cpp b/source/common/rbbi.cpp
index 2680bf2..e4c91ba 100644
--- a/source/common/rbbi.cpp
+++ b/source/common/rbbi.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/common/rbbidata.cpp b/source/common/rbbidata.cpp
index 26e11ac..63ed15f 100644
--- a/source/common/rbbidata.cpp
+++ b/source/common/rbbidata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/common/rbbidata.h b/source/common/rbbidata.h
index 1d6f37d..8011baf 100644
--- a/source/common/rbbidata.h
+++ b/source/common/rbbidata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  rbbidata.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/rbbinode.cpp b/source/common/rbbinode.cpp
index 123c21e..69d8415 100644
--- a/source/common/rbbinode.cpp
+++ b/source/common/rbbinode.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/common/rbbinode.h b/source/common/rbbinode.h
index 74096cc..f352596 100644
--- a/source/common/rbbinode.h
+++ b/source/common/rbbinode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/common/rbbirb.cpp b/source/common/rbbirb.cpp
index 3d9fe6f..f4fa13c 100644
--- a/source/common/rbbirb.cpp
+++ b/source/common/rbbirb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  file:  rbbirb.cpp
diff --git a/source/common/rbbirb.h b/source/common/rbbirb.h
index e4f736c..d58a136 100644
--- a/source/common/rbbirb.h
+++ b/source/common/rbbirb.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  rbbirb.h
diff --git a/source/common/rbbirpt.h b/source/common/rbbirpt.h
index b5bc8f7..586953c 100644
--- a/source/common/rbbirpt.h
+++ b/source/common/rbbirpt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //---------------------------------------------------------------------------------
 //
diff --git a/source/common/rbbiscan.cpp b/source/common/rbbiscan.cpp
index df30f2c..e68e052 100644
--- a/source/common/rbbiscan.cpp
+++ b/source/common/rbbiscan.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  file:  rbbiscan.cpp
@@ -1179,13 +1179,12 @@
     if (U_FAILURE(*fRB->fStatus)) {
         return NULL;
     }
-    fNodeStackPtr++;
-    if (fNodeStackPtr >= kStackSize) {
-        error(U_BRK_INTERNAL_ERROR);
+    if (fNodeStackPtr >= kStackSize - 1) {
+        error(U_BRK_RULE_SYNTAX);
         RBBIDebugPuts("RBBIRuleScanner::pushNewNode - stack overflow.");
-        *fRB->fStatus = U_BRK_INTERNAL_ERROR;
         return NULL;
     }
+    fNodeStackPtr++;
     fNodeStack[fNodeStackPtr] = new RBBINode(t);
     if (fNodeStack[fNodeStackPtr] == NULL) {
         *fRB->fStatus = U_MEMORY_ALLOCATION_ERROR;
diff --git a/source/common/rbbiscan.h b/source/common/rbbiscan.h
index 6f3267e..8bec823 100644
--- a/source/common/rbbiscan.h
+++ b/source/common/rbbiscan.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  rbbiscan.h
diff --git a/source/common/rbbisetb.cpp b/source/common/rbbisetb.cpp
index ebdf8b7..f55388a 100644
--- a/source/common/rbbisetb.cpp
+++ b/source/common/rbbisetb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  rbbisetb.cpp
diff --git a/source/common/rbbisetb.h b/source/common/rbbisetb.h
index 89bfb98..a7d1e7a 100644
--- a/source/common/rbbisetb.h
+++ b/source/common/rbbisetb.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  rbbisetb.h
diff --git a/source/common/rbbistbl.cpp b/source/common/rbbistbl.cpp
index d937edb..5303f76 100644
--- a/source/common/rbbistbl.cpp
+++ b/source/common/rbbistbl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  file:  rbbistbl.cpp    Implementation of the ICU RBBISymbolTable class
diff --git a/source/common/rbbitblb.cpp b/source/common/rbbitblb.cpp
index 2738c75..0f1a901 100644
--- a/source/common/rbbitblb.cpp
+++ b/source/common/rbbitblb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/rbbitblb.h b/source/common/rbbitblb.h
index d71a024..1041501 100644
--- a/source/common/rbbitblb.h
+++ b/source/common/rbbitblb.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  rbbitblb.h
diff --git a/source/common/resbund.cpp b/source/common/resbund.cpp
index 7bd6b32..512bd53 100644
--- a/source/common/resbund.cpp
+++ b/source/common/resbund.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/resbund_cnv.cpp b/source/common/resbund_cnv.cpp
index 65c32b5..45c0b39 100644
--- a/source/common/resbund_cnv.cpp
+++ b/source/common/resbund_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  resbund_cnv.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/resource.cpp b/source/common/resource.cpp
index 62b3aa4..3d41a16 100644
--- a/source/common/resource.cpp
+++ b/source/common/resource.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/resource.h b/source/common/resource.h
index 43c3309..3dbff78 100644
--- a/source/common/resource.h
+++ b/source/common/resource.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/ruleiter.cpp b/source/common/ruleiter.cpp
index 6e27b4d..41eea23 100644
--- a/source/common/ruleiter.cpp
+++ b/source/common/ruleiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ruleiter.h b/source/common/ruleiter.h
index 1221396..4e1be53 100644
--- a/source/common/ruleiter.h
+++ b/source/common/ruleiter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/schriter.cpp b/source/common/schriter.cpp
index cc41366..f852800 100644
--- a/source/common/schriter.cpp
+++ b/source/common/schriter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/serv.cpp b/source/common/serv.cpp
index c650ef3..de29c64 100644
--- a/source/common/serv.cpp
+++ b/source/common/serv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
 *******************************************************************************
diff --git a/source/common/serv.h b/source/common/serv.h
index 679c443..e1f69cd 100644
--- a/source/common/serv.h
+++ b/source/common/serv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servlk.cpp b/source/common/servlk.cpp
index 319d7b8..538982c 100644
--- a/source/common/servlk.cpp
+++ b/source/common/servlk.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servlkf.cpp b/source/common/servlkf.cpp
index 114d643..84f2347 100644
--- a/source/common/servlkf.cpp
+++ b/source/common/servlkf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servloc.h b/source/common/servloc.h
index 7faec51..ccf6433 100644
--- a/source/common/servloc.h
+++ b/source/common/servloc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servls.cpp b/source/common/servls.cpp
index 71c6c44..f4579d0 100644
--- a/source/common/servls.cpp
+++ b/source/common/servls.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servnotf.cpp b/source/common/servnotf.cpp
index 69a81da..dc77c7b 100644
--- a/source/common/servnotf.cpp
+++ b/source/common/servnotf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servnotf.h b/source/common/servnotf.h
index 05606ff..dba7a0f 100644
--- a/source/common/servnotf.h
+++ b/source/common/servnotf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servrbf.cpp b/source/common/servrbf.cpp
index 299695e..94279ab 100644
--- a/source/common/servrbf.cpp
+++ b/source/common/servrbf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/servslkf.cpp b/source/common/servslkf.cpp
index 4cf66b9..09154d1 100644
--- a/source/common/servslkf.cpp
+++ b/source/common/servslkf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  *******************************************************************************
diff --git a/source/common/sharedobject.cpp b/source/common/sharedobject.cpp
index 8e5095e..37aa458 100644
--- a/source/common/sharedobject.cpp
+++ b/source/common/sharedobject.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/sharedobject.h b/source/common/sharedobject.h
index 0e53cfb..d132651 100644
--- a/source/common/sharedobject.h
+++ b/source/common/sharedobject.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/simpleformatter.cpp b/source/common/simpleformatter.cpp
index eaeb60d..f866e0a 100644
--- a/source/common/simpleformatter.cpp
+++ b/source/common/simpleformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/sprpimpl.h b/source/common/sprpimpl.h
index 6e0bad0..12f18a5 100644
--- a/source/common/sprpimpl.h
+++ b/source/common/sprpimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -8,7 +8,7 @@
  *
  *******************************************************************************
  *   file name:  sprpimpl.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/stringpiece.cpp b/source/common/stringpiece.cpp
index b032b47..d4f7f31 100644
--- a/source/common/stringpiece.cpp
+++ b/source/common/stringpiece.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 // Copyright (C) 2009-2013, International Business Machines
 // Corporation and others. All Rights Reserved.
diff --git a/source/common/stringtriebuilder.cpp b/source/common/stringtriebuilder.cpp
index 075d7c4..cf5b7b7 100644
--- a/source/common/stringtriebuilder.cpp
+++ b/source/common/stringtriebuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  stringtriebuilder.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uarrsort.c b/source/common/uarrsort.cpp
similarity index 98%
rename from source/common/uarrsort.c
rename to source/common/uarrsort.cpp
index bb1b5bd..03c4d4e 100644
--- a/source/common/uarrsort.c
+++ b/source/common/uarrsort.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uarrsort.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -38,16 +38,19 @@
 
 U_CAPI int32_t U_EXPORT2
 uprv_uint16Comparator(const void *context, const void *left, const void *right) {
+    (void)context;
     return (int32_t)*(const uint16_t *)left - (int32_t)*(const uint16_t *)right;
 }
 
 U_CAPI int32_t U_EXPORT2
 uprv_int32Comparator(const void *context, const void *left, const void *right) {
+    (void)context;
     return *(const int32_t *)left - *(const int32_t *)right;
 }
 
 U_CAPI int32_t U_EXPORT2
 uprv_uint32Comparator(const void *context, const void *left, const void *right) {
+    (void)context;
     uint32_t l=*(const uint32_t *)left, r=*(const uint32_t *)right;
 
     /* compare directly because (l-r) would overflow the int32_t result */
diff --git a/source/common/uarrsort.h b/source/common/uarrsort.h
index 8b25cc5..a55dca5 100644
--- a/source/common/uarrsort.h
+++ b/source/common/uarrsort.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uarrsort.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uassert.h b/source/common/uassert.h
index 5a048a5..fd6b6c4 100644
--- a/source/common/uassert.h
+++ b/source/common/uassert.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ubidi.c b/source/common/ubidi.cpp
similarity index 96%
rename from source/common/ubidi.c
rename to source/common/ubidi.cpp
index 3c94978..8e2fc36 100644
--- a/source/common/ubidi.c
+++ b/source/common/ubidi.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ubidi.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -447,12 +447,12 @@
     UBool removeBiDiControls = (UBool)(pBiDi->reorderingOptions &
                                        UBIDI_OPTION_REMOVE_CONTROLS);
 
-    typedef enum {
+    enum State {
          NOT_SEEKING_STRONG,            /* 0: not contextual paraLevel, not after FSI */
          SEEKING_STRONG_FOR_PARA,       /* 1: looking for first strong char in para */
          SEEKING_STRONG_FOR_FSI,        /* 2: looking for first strong after FSI */
          LOOKING_FOR_PDI                /* 3: found strong after FSI, looking for PDI */
-    } State;
+    };
     State state;
     DirProp lastStrong=ON;              /* for default level & inverse BiDi */
     /* The following stacks are used to manage isolate sequences. Those
@@ -466,7 +466,7 @@
     int32_t isolateStartStack[UBIDI_MAX_EXPLICIT_LEVEL+1];
     /* The following stack contains the last known state before
        encountering the initiator of an isolate sequence */
-    int8_t  previousStateStack[UBIDI_MAX_EXPLICIT_LEVEL+1];
+    State  previousStateStack[UBIDI_MAX_EXPLICIT_LEVEL+1];
     int32_t stackLast=-1;
 
     if(pBiDi->reorderingOptions & UBIDI_OPTION_STREAMING)
@@ -677,7 +677,9 @@
     bd->isoRuns[0].start=0;
     bd->isoRuns[0].limit=0;
     bd->isoRuns[0].level=GET_PARALEVEL(pBiDi, 0);
-    bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=bd->isoRuns[0].contextDir=GET_PARALEVEL(pBiDi, 0)&1;
+    UBiDiLevel t = GET_PARALEVEL(pBiDi, 0) & 1;
+    bd->isoRuns[0].lastStrong = bd->isoRuns[0].lastBase = t;
+    bd->isoRuns[0].contextDir = (UBiDiDirection)t;
     bd->isoRuns[0].contextPos=0;
     if(pBiDi->openingsMemory) {
         bd->openings=pBiDi->openingsMemory;
@@ -696,7 +698,8 @@
     bd->isoRunLast=0;
     bd->isoRuns[0].limit=0;
     bd->isoRuns[0].level=level;
-    bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=bd->isoRuns[0].contextDir=level&1;
+    bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=level&1;
+    bd->isoRuns[0].contextDir=(UBiDiDirection)(level&1);
     bd->isoRuns[0].contextPos=0;
 }
 
@@ -712,8 +715,9 @@
         contextLevel=embeddingLevel;
     pLastIsoRun->limit=pLastIsoRun->start;
     pLastIsoRun->level=embeddingLevel;
-    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=pLastIsoRun->contextDir=contextLevel&1;
-    pLastIsoRun->contextPos=lastCcPos;
+    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=contextLevel&1;
+    pLastIsoRun->contextDir=(UBiDiDirection)(contextLevel&1);
+    pLastIsoRun->contextPos=(UBiDiDirection)lastCcPos;
 }
 
 /* LRI or RLI */
@@ -727,7 +731,8 @@
     pLastIsoRun++;
     pLastIsoRun->start=pLastIsoRun->limit=lastLimit;
     pLastIsoRun->level=level;
-    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=pLastIsoRun->contextDir=level&1;
+    pLastIsoRun->lastStrong=pLastIsoRun->lastBase=level&1;
+    pLastIsoRun->contextDir=(UBiDiDirection)(level&1);
     pLastIsoRun->contextPos=0;
 }
 
@@ -801,7 +806,7 @@
     UBool stable;
     DirProp newProp;
     pOpening=&bd->openings[openIdx];
-    direction=pLastIsoRun->level&1;
+    direction=(UBiDiDirection)(pLastIsoRun->level&1);
     stable=TRUE;            /* assume stable until proved otherwise */
 
     /* The stable flag is set when brackets are paired and their
@@ -894,7 +899,7 @@
                 break;
             }
             pLastIsoRun->lastBase=ON;
-            pLastIsoRun->contextDir=newProp;
+            pLastIsoRun->contextDir=(UBiDiDirection)newProp;
             pLastIsoRun->contextPos=position;
             level=bd->pBiDi->levels[position];
             if(level&UBIDI_LEVEL_OVERRIDE) {    /* X4, X5 */
@@ -942,14 +947,14 @@
             dirProps[position]=newProp;
         pLastIsoRun->lastBase=newProp;
         pLastIsoRun->lastStrong=newProp;
-        pLastIsoRun->contextDir=newProp;
+        pLastIsoRun->contextDir=(UBiDiDirection)newProp;
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp<=R || dirProp==AL) {
         newProp=DIR_FROM_STRONG(dirProp);
         pLastIsoRun->lastBase=dirProp;
         pLastIsoRun->lastStrong=dirProp;
-        pLastIsoRun->contextDir=newProp;
+        pLastIsoRun->contextDir=(UBiDiDirection)newProp;
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp==EN) {
@@ -958,7 +963,7 @@
             newProp=L;                  /* W7 */
             if(!bd->isNumbersSpecial)
                 dirProps[position]=ENL;
-            pLastIsoRun->contextDir=L;
+            pLastIsoRun->contextDir=(UBiDiDirection)L;
             pLastIsoRun->contextPos=position;
         }
         else {
@@ -967,14 +972,14 @@
                 dirProps[position]=AN;  /* W2 */
             else
                 dirProps[position]=ENR;
-            pLastIsoRun->contextDir=R;
+            pLastIsoRun->contextDir=(UBiDiDirection)R;
             pLastIsoRun->contextPos=position;
         }
     }
     else if(dirProp==AN) {
         newProp=R;                      /* N0 */
         pLastIsoRun->lastBase=AN;
-        pLastIsoRun->contextDir=R;
+        pLastIsoRun->contextDir=(UBiDiDirection)R;
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp==NSM) {
@@ -1313,7 +1318,7 @@
                 previousLevel=embeddingLevel;
                 levels[i]=embeddingLevel;
                 if(!bracketProcessChar(&bracketData, i))
-                    return -1;
+                    return (UBiDiDirection)-1;
                 /* the dirProp may have been changed in bracketProcessChar() */
                 flags|=DIRPROP_FLAG(dirProps[i]);
                 break;
@@ -1343,18 +1348,20 @@
 static UBiDiDirection
 checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
     DirProp *dirProps=pBiDi->dirProps;
-    DirProp dirProp;
     UBiDiLevel *levels=pBiDi->levels;
     int32_t isolateCount=0;
 
-    int32_t i, length=pBiDi->length;
+    int32_t length=pBiDi->length;
     Flags flags=0;  /* collect all directionalities in the text */
-    UBiDiLevel level;
     pBiDi->isolateCount=0;
 
-    for(i=0; i<length; ++i) {
-        level=levels[i];
-        dirProp=dirProps[i];
+    int32_t currentParaIndex = 0;
+    int32_t currentParaLimit = pBiDi->paras[0].limit;
+    int32_t currentParaLevel = pBiDi->paraLevel;
+
+    for(int32_t i=0; i<length; ++i) {
+        UBiDiLevel level=levels[i];
+        DirProp dirProp=dirProps[i];
         if(dirProp==LRI || dirProp==RLI) {
             isolateCount++;
             if(isolateCount>pBiDi->isolateCount)
@@ -1364,21 +1371,41 @@
             isolateCount--;
         else if(dirProp==B)
             isolateCount=0;
-        if(level&UBIDI_LEVEL_OVERRIDE) {
+
+        // optimized version of  int32_t currentParaLevel = GET_PARALEVEL(pBiDi, i);
+        if (pBiDi->defaultParaLevel != 0 &&
+                i == currentParaLimit && (currentParaIndex + 1) < pBiDi->paraCount) {
+            currentParaLevel = pBiDi->paras[++currentParaIndex].level;
+            currentParaLimit = pBiDi->paras[currentParaIndex].limit;
+        }
+
+        UBiDiLevel overrideFlag = level & UBIDI_LEVEL_OVERRIDE;
+        level &= ~UBIDI_LEVEL_OVERRIDE;
+        if (level < currentParaLevel || UBIDI_MAX_EXPLICIT_LEVEL < level) {
+            if (level == 0) {
+                if (dirProp == B) {
+                    // Paragraph separators are ok with explicit level 0.
+                    // Prevents reordering of paragraphs.
+                } else {
+                    // Treat explicit level 0 as a wildcard for the paragraph level.
+                    // Avoid making the caller guess what the paragraph level would be.
+                    level = (UBiDiLevel)currentParaLevel;
+                    levels[i] = level | overrideFlag;
+                }
+            } else {
+                // 1 <= level < currentParaLevel or UBIDI_MAX_EXPLICIT_LEVEL < level
+                /* level out of bounds */
+                *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+                return UBIDI_LTR;
+            }
+        }
+        if (overrideFlag != 0) {
             /* keep the override flag in levels[i] but adjust the flags */
-            level&=~UBIDI_LEVEL_OVERRIDE;     /* make the range check below simpler */
             flags|=DIRPROP_FLAG_O(level);
         } else {
             /* set the flags */
             flags|=DIRPROP_FLAG_E(level)|DIRPROP_FLAG(dirProp);
         }
-        if((level<GET_PARALEVEL(pBiDi, i) &&
-            !((0==level)&&(dirProp==B))) ||
-           (UBIDI_MAX_EXPLICIT_LEVEL<level)) {
-            /* level out of bounds */
-            *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-            return UBIDI_LTR;
-        }
     }
     if(flags&MASK_EMBEDDING)
         flags|=DIRPROP_FLAG_LR(pBiDi->paraLevel);
@@ -1772,7 +1799,7 @@
 
     if (pInsertPoints->capacity == 0)
     {
-        pInsertPoints->points=uprv_malloc(sizeof(Point)*FIRSTALLOC);
+        pInsertPoints->points=static_cast<Point *>(uprv_malloc(sizeof(Point)*FIRSTALLOC));
         if (pInsertPoints->points == NULL)
         {
             pInsertPoints->errorCode=U_MEMORY_ALLOCATION_ERROR;
@@ -1782,9 +1809,9 @@
     }
     if (pInsertPoints->size >= pInsertPoints->capacity) /* no room for new point */
     {
-        void * savePoints=pInsertPoints->points;
-        pInsertPoints->points=uprv_realloc(pInsertPoints->points,
-                                           pInsertPoints->capacity*2*sizeof(Point));
+        Point * savePoints=pInsertPoints->points;
+        pInsertPoints->points=static_cast<Point *>(uprv_realloc(pInsertPoints->points,
+                                           pInsertPoints->capacity*2*sizeof(Point)));
         if (pInsertPoints->points == NULL)
         {
             pInsertPoints->points=savePoints;
@@ -2342,7 +2369,7 @@
 static void
 setParaRunsOnly(UBiDi *pBiDi, const UChar *text, int32_t length,
                 UBiDiLevel paraLevel, UErrorCode *pErrorCode) {
-    void *runsOnlyMemory = NULL;
+    int32_t *runsOnlyMemory = NULL;
     int32_t *visualMap;
     UChar *visualText;
     int32_t saveLength, saveTrailingWSStart;
@@ -2363,7 +2390,7 @@
         goto cleanup3;
     }
     /* obtain memory for mapping table and visual text */
-    runsOnlyMemory=uprv_malloc(length*(sizeof(int32_t)+sizeof(UChar)+sizeof(UBiDiLevel)));
+    runsOnlyMemory=static_cast<int32_t *>(uprv_malloc(length*(sizeof(int32_t)+sizeof(UChar)+sizeof(UBiDiLevel))));
     if(runsOnlyMemory==NULL) {
         *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
         goto cleanup3;
@@ -2558,7 +2585,7 @@
     pBiDi->text=text;
     pBiDi->length=pBiDi->originalLength=pBiDi->resultLength=length;
     pBiDi->paraLevel=paraLevel;
-    pBiDi->direction=paraLevel&1;
+    pBiDi->direction=(UBiDiDirection)(paraLevel&1);
     pBiDi->paraCount=1;
 
     pBiDi->dirProps=NULL;
@@ -3009,7 +3036,7 @@
         dir = ubidi_getClass(pBiDi->bdp, c);
     }
     if(dir >= U_CHAR_DIRECTION_COUNT) {
-        dir = ON;
+        dir = (UCharDirection)ON;
     }
     return dir;
 }
diff --git a/source/common/ubidi_props.c b/source/common/ubidi_props.cpp
similarity index 98%
rename from source/common/ubidi_props.c
rename to source/common/ubidi_props.cpp
index 7c7a6ce..103e21c 100644
--- a/source/common/ubidi_props.c
+++ b/source/common/ubidi_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ubidi_props.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -55,6 +55,8 @@
 
 static UBool U_CALLCONV
 _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
+    (void)end;
+    (void)value;
     /* add the start code point to the USet */
     const USetAdder *sa=(const USetAdder *)context;
     sa->add(sa->set, start);
diff --git a/source/common/ubidi_props.h b/source/common/ubidi_props.h
index 4312230..69e8853 100644
--- a/source/common/ubidi_props.h
+++ b/source/common/ubidi_props.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ubidi_props.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ubidi_props_data.h b/source/common/ubidi_props_data.h
index 685d2b1..8d6856d 100644
--- a/source/common/ubidi_props_data.h
+++ b/source/common/ubidi_props_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 // Copyright (C) 1999-2016, International Business Machines
@@ -13,35 +13,35 @@
 
 static const UVersionInfo ubidi_props_dataVersion={9,0,0,0};
 
-static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x5df0,0x5a78,0x1a,0x620,0x8c0,0x10ac0,0x10af0,0,0,0,0,0,0,0,0x5802b6};
+static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6060,0x5ce8,0x1a,0x620,0x8c0,0x10ac0,0x10af0,0,0,0,0,0,0,0,0x5802b6};
 
-static const uint16_t ubidi_props_trieIndex[11572]={
+static const uint16_t ubidi_props_trieIndex[11884]={
 0x36a,0x372,0x37a,0x382,0x39a,0x3a2,0x3aa,0x3b2,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x38a,0x392,
 0x38a,0x392,0x38a,0x392,0x3b8,0x3c0,0x3c8,0x3d0,0x3d8,0x3e0,0x3dc,0x3e4,0x3ec,0x3f4,0x3ef,0x3f7,
 0x38a,0x392,0x38a,0x392,0x3ff,0x407,0x38a,0x392,0x38a,0x392,0x38a,0x392,0x40d,0x415,0x41d,0x425,
 0x42d,0x435,0x43d,0x445,0x44b,0x453,0x45b,0x463,0x46b,0x473,0x479,0x481,0x489,0x491,0x499,0x4a1,
-0x4ad,0x4a9,0x4b5,0x41f,0x41f,0x4c5,0x4cd,0x4bd,0x4d5,0x4d7,0x4df,0x4e7,0x4ef,0x4f0,0x4f8,0x500,
-0x508,0x4f0,0x510,0x515,0x508,0x4f0,0x51d,0x525,0x4ef,0x52a,0x532,0x4e7,0x537,0x38a,0x53f,0x543,
-0x54b,0x54c,0x554,0x55c,0x4ef,0x564,0x56c,0x4e7,0x4ef,0x38a,0x4f8,0x4e7,0x38a,0x38a,0x572,0x38a,
-0x38a,0x578,0x580,0x38a,0x38a,0x584,0x58c,0x38a,0x590,0x597,0x38a,0x59f,0x5a7,0x5ae,0x536,0x38a,
-0x38a,0x5b6,0x5be,0x5c6,0x5ce,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x5d6,0x38a,0x5de,0x38a,0x38a,0x38a,
-0x5e6,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x5ee,0x38a,0x38a,0x38a,0x5f6,0x5f6,0x4fc,0x4fc,0x38a,0x5fc,0x604,0x5de,
-0x61a,0x60c,0x60c,0x622,0x629,0x612,0x38a,0x38a,0x38a,0x631,0x639,0x38a,0x38a,0x38a,0x63b,0x643,
-0x64b,0x38a,0x652,0x65a,0x38a,0x662,0x38a,0x38a,0x66a,0x66d,0x537,0x675,0x401,0x67d,0x38a,0x684,
-0x38a,0x689,0x38a,0x38a,0x38a,0x38a,0x68f,0x697,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0x69f,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x6a7,0x6af,0x6b3,
-0x6cb,0x6d1,0x6bb,0x6c3,0x6d9,0x6e1,0x6e5,0x5b1,0x6ed,0x6f5,0x6fd,0x38a,0x705,0x643,0x643,0x643,
-0x715,0x71d,0x725,0x72d,0x732,0x73a,0x742,0x70d,0x74a,0x752,0x38a,0x758,0x75f,0x643,0x643,0x765,
-0x643,0x562,0x76a,0x643,0x772,0x38a,0x38a,0x640,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,
-0x643,0x643,0x643,0x643,0x643,0x77a,0x643,0x643,0x643,0x643,0x643,0x780,0x643,0x643,0x788,0x790,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x643,0x643,0x7a0,0x7a7,0x7af,0x798,
-0x7bf,0x7c7,0x7cf,0x7d6,0x7de,0x7e6,0x7ed,0x7b7,0x643,0x643,0x643,0x7f5,0x7fb,0x801,0x809,0x80e,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x815,0x38a,0x38a,0x38a,0x81d,0x38a,0x38a,0x38a,0x3d8,
-0x825,0x82d,0x834,0x38a,0x83c,0x643,0x643,0x646,0x643,0x643,0x643,0x643,0x643,0x643,0x843,0x849,
-0x859,0x851,0x38a,0x38a,0x861,0x5e6,0x38a,0x3b1,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x81c,
-0x3bf,0x38a,0x838,0x869,0x38a,0x871,0x80e,0x38a,0x38a,0x38a,0x38a,0x879,0x38a,0x38a,0x63b,0x3b0,
+0x4ad,0x4a9,0x4b5,0x4bd,0x41f,0x4cd,0x4d5,0x4c5,0x4dd,0x4df,0x4e7,0x4ef,0x4f7,0x4f8,0x500,0x508,
+0x510,0x4f8,0x518,0x51d,0x510,0x4f8,0x525,0x52d,0x4f7,0x535,0x53d,0x4ef,0x542,0x38a,0x54a,0x54e,
+0x556,0x557,0x55f,0x567,0x4f7,0x56f,0x577,0x4ef,0x57f,0x581,0x500,0x4ef,0x38a,0x38a,0x589,0x38a,
+0x38a,0x58f,0x597,0x38a,0x38a,0x59b,0x5a3,0x38a,0x5a7,0x5ae,0x38a,0x5b6,0x5be,0x5c5,0x541,0x38a,
+0x38a,0x5cd,0x5d5,0x5dd,0x5e5,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x5ed,0x38a,0x5f5,0x38a,0x38a,0x38a,
+0x5fd,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x605,0x38a,0x38a,0x38a,0x60d,0x60d,0x504,0x504,0x38a,0x613,0x61b,0x5f5,
+0x631,0x623,0x623,0x639,0x640,0x629,0x38a,0x38a,0x38a,0x648,0x650,0x38a,0x38a,0x38a,0x652,0x65a,
+0x662,0x38a,0x669,0x671,0x38a,0x679,0x38a,0x38a,0x681,0x684,0x542,0x68c,0x401,0x694,0x38a,0x69b,
+0x38a,0x6a0,0x38a,0x38a,0x38a,0x38a,0x6a6,0x6ae,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0x6b6,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x6be,0x6c6,0x6ca,
+0x6e2,0x6e8,0x6d2,0x6da,0x6f0,0x6f8,0x6fc,0x5c8,0x704,0x70c,0x714,0x38a,0x71c,0x65a,0x65a,0x65a,
+0x72c,0x734,0x73c,0x744,0x749,0x751,0x759,0x724,0x761,0x769,0x38a,0x76f,0x776,0x65a,0x65a,0x65a,
+0x65a,0x56d,0x77c,0x65a,0x784,0x38a,0x38a,0x657,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x78c,0x65a,0x65a,0x65a,0x65a,0x65a,0x792,0x65a,0x65a,0x79a,0x7a2,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x65a,0x65a,0x65a,0x65a,0x7b2,0x7b9,0x7c1,0x7aa,
+0x7d1,0x7d9,0x7e1,0x7e8,0x7f0,0x7f8,0x7ff,0x7c9,0x65a,0x65a,0x65a,0x807,0x80d,0x813,0x81b,0x820,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x827,0x38a,0x38a,0x38a,0x82f,0x38a,0x38a,0x38a,0x3d8,
+0x837,0x83f,0x76c,0x38a,0x842,0x65a,0x65a,0x65d,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x849,0x84f,
+0x85f,0x857,0x38a,0x38a,0x867,0x5fd,0x38a,0x3b1,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x65a,0x82e,
+0x3bf,0x38a,0x86f,0x877,0x38a,0x87f,0x820,0x38a,0x38a,0x38a,0x38a,0x887,0x38a,0x38a,0x652,0x3b0,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
@@ -54,7 +54,7 @@
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x65a,0x65a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
@@ -98,10 +98,10 @@
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x838,0x643,0x562,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x880,0x38a,0x38a,0x885,0x54c,0x38a,0x38a,0x592,0x643,0x63a,0x38a,0x38a,0x88d,0x38a,0x38a,0x38a,
-0x895,0x89c,0x60c,0x8a4,0x38a,0x38a,0x8ab,0x8b3,0x38a,0x8ba,0x8c1,0x38a,0x4d5,0x8c6,0x38a,0x4ee,
-0x38a,0x8ce,0x8d6,0x4f0,0x38a,0x8da,0x4ef,0x8e2,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8e9,
+0x38a,0x38a,0x38a,0x38a,0x86f,0x65a,0x56d,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x88e,0x38a,0x38a,0x893,0x557,0x38a,0x38a,0x5a9,0x65a,0x651,0x38a,0x38a,0x89b,0x38a,0x38a,0x38a,
+0x8a3,0x8aa,0x623,0x8b2,0x38a,0x38a,0x8b9,0x8c1,0x38a,0x8c8,0x8cf,0x38a,0x4dd,0x8d4,0x38a,0x4f6,
+0x38a,0x8dc,0x8e4,0x4f8,0x38a,0x8e8,0x4f7,0x8f0,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8f7,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
@@ -141,100 +141,100 @@
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x8fd,0x8f1,0x8f5,0x489,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x905,0x489,0x489,0x489,0x489,0x90d,0x911,
-0x919,0x921,0x925,0x92d,0x489,0x489,0x489,0x931,0x939,0x37a,0x941,0x949,0x38a,0x38a,0x38a,0x951,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x90b,0x8ff,0x903,0x489,0x489,0x489,0x489,0x489,
+0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x913,0x489,0x489,0x489,0x489,0x91b,0x91f,
+0x927,0x92f,0x933,0x93b,0x489,0x489,0x489,0x93f,0x947,0x37a,0x94f,0x957,0x38a,0x38a,0x38a,0x95f,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0xe28,0xe28,0xe68,0xea8,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xee0,0xf20,0xf60,0xf70,0xfb0,0xfbc,
 0xe28,0xe28,0xffc,0xe28,0xe28,0xe28,0x1034,0x1074,0x10b4,0x10f4,0x112c,0x116c,0x11ac,0x11e4,0x1224,0x1264,
-0xa40,0xa80,0xac0,0xafa,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb23,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb60,0x1a0,0x1a0,0xb95,0xbd5,0xc15,0xc55,0xc95,0xcd5,
+0xa40,0xa80,0xac0,0xafa,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb25,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb62,0x1a0,0x1a0,0xb97,0xbd7,0xc17,0xc57,0xc97,0xcd7,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
-0xd55,0xd65,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0xd57,0xd67,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd15,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x959,0x38a,0x643,0x643,0x961,0x5e6,0x38a,0x4e8,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x969,0x38a,0x38a,0x38a,0x970,0x38a,0x38a,0x38a,0x38a,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd17,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x967,0x38a,0x65a,0x65a,0x96f,0x5fd,0x38a,0x4f0,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x977,0x38a,0x38a,0x38a,0x97e,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x978,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x980,0x984,0x41f,0x41f,0x41f,0x41f,0x994,0x98c,0x41f,0x99c,0x41f,0x41f,0x9a4,0x9aa,0x41f,0x41f,
+0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x986,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
+0x98e,0x992,0x41f,0x41f,0x41f,0x41f,0x9a2,0x99a,0x41f,0x9aa,0x41f,0x41f,0x9b2,0x9b8,0x41f,0x41f,
 0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x9b2,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x4ef,0x8ad,0x9ba,0x9c1,0x401,0x9c4,0x38a,0x38a,0x4d5,0x9cc,0x38a,0x9d2,0x401,0x9d7,0x5f8,0x38a,
-0x38a,0x9df,0x38a,0x38a,0x38a,0x38a,0x81d,0x9e7,0x401,0x4f0,0x54b,0x9ee,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x8ad,0x9f6,0x38a,0x38a,0x9fa,0xa02,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa06,0xa0e,0x38a,
-0x38a,0xa16,0x54b,0x832,0x38a,0xa1e,0x38a,0x38a,0x5d6,0xa26,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa2a,0x38a,0x38a,0xa32,0xa38,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa3e,0x38a,0xa44,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa4a,
+0x41f,0x41f,0x41f,0x9c0,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
+0x4f7,0x8bb,0x9c8,0x9cf,0x401,0x9d2,0x38a,0x38a,0x4dd,0x9da,0x38a,0x9e0,0x401,0x9e5,0x60f,0x38a,
+0x38a,0x9ed,0x38a,0x38a,0x38a,0x38a,0x82f,0x9f5,0x401,0x4f8,0x556,0x9fc,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x8bb,0xa04,0x38a,0x38a,0xa08,0xa10,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa14,0xa1c,0x38a,
+0x38a,0xa24,0x556,0xa2c,0x38a,0xa32,0x38a,0x38a,0x5ed,0xa3a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa42,0xa46,0xa4e,0x38a,0xa55,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa5c,0x38a,0x38a,0xa64,0xa6a,
+0x38a,0x38a,0x38a,0xa70,0xa78,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa7c,0x38a,0xa82,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x509,0xa52,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0xa88,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0xa59,0xa61,0xa67,0x38a,0x38a,0x643,0x643,0xa6f,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x767,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x511,0xa90,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xa71,0x38a,0xa78,0x38a,0xa74,
-0x38a,0xa7b,0x38a,0xa83,0xa87,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0xa8f,0x3d8,0xa96,0xa9d,0xaa5,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0xa97,0xa9f,0xaa5,0x38a,0x38a,0x65a,0x65a,0xaad,0x38a,0x38a,0x38a,0x38a,0x38a,0x65a,
+0x65a,0xab5,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xabb,0x38a,0xac2,
+0x38a,0xabe,0x38a,0xac5,0x38a,0xacd,0xad1,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x3d8,0xad9,0x3d8,0xae0,0xae7,0xaef,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0xaad,0xab5,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xaf7,0xaff,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0x38a,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0xabd,0x41f,0xac5,0xac5,0xacc,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0xb07,0x41f,0xb0f,
+0xb0f,0xb16,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
 0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0xad4,0x41f,0x41f,0x41f,
-0x41f,0x41f,0x41f,0x41f,0x41f,0x643,0xadc,0x643,0x643,0x646,0xae1,0xae5,0x843,0xaed,0x38a,0x38a,
-0xaf3,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x643,0x643,0x643,
-0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,
-0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x643,0x768,0xafb,0x643,0x643,0x643,
-0x646,0x643,0x643,0x830,0x38a,0xadc,0x643,0xb03,0x643,0xb0b,0x845,0x38a,0x38a,0xb1b,0xb23,0xb2b,
-0x38a,0x844,0x38a,0x5e6,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0xb1e,0x41f,
+0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x41f,0x65a,0xb26,0x65a,0x65a,0x65d,0xb2b,0xb2f,0x849,0xb37,
+0x38a,0x38a,0xb3d,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x76d,0x38a,0x38a,0x38a,0x38a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
+0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0xb45,0xb4d,0x65a,
+0x65a,0x65a,0x65d,0x65a,0x65a,0xb45,0x38a,0xb26,0x65a,0xb55,0x65a,0xb5d,0x84b,0x38a,0x38a,0xb26,
+0xb61,0xb69,0x65f,0x65c,0x38a,0xb71,0x56d,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0xb13,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xb79,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
 0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
-0x38a,0x38a,0x38a,0x38a,0xb13,0xb3b,0xb33,0xb33,0xb33,0xb3c,0xb3c,0xb3c,0xb3c,0x3d8,0x3d8,0x3d8,
-0x3d8,0x3d8,0x3d8,0x3d8,0xb44,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,
-0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,
-0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,
-0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,
-0xb3c,0xb3c,0xb3c,0xb3c,0xb3c,0x369,0x369,0x369,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,0xb79,0xb89,0xb81,0xb81,0xb81,0xb8a,0xb8a,0xb8a,0xb8a,0x3d8,
+0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0xb92,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,
+0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,
+0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,
+0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,
+0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0xb8a,0x369,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
 0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
 0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4,4,4,0xa,0xa,
 0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,2,2,2,2,
@@ -319,6 +319,8 @@
 1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41,
 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,1,1,1,0xb1,0xb1,0xb1,
+1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,
@@ -346,400 +348,417 @@
 0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,
 0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,4,0,0,0,0,0,0,0,0,0x11,0x11,
+0x11,0x11,0x11,0x11,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,
+0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
-0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,
-0,0,0,0,0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
 0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4,0,0xb1,0,0,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,
-0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0,0,0,0,0xa,0,0,0,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
-0xb1,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,
-6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,
-0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,
-2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,
-9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,
-0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,3,3,
-0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,
-0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,
-0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,
-0,0,4,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
-0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,
-0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,
-0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,
-0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,
-0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,
-0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
-0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,
-0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,
-0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0xa,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,
-0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,
-0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,
-0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,
-0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0x100a,
-0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,
-0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
-0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,
-0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
-0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
+0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0xa,0,0,0,0,0,0xa,0xa,0,0,0,0,
-0,0xa,0xa,0xa,9,0xa,0xa,0xa,0xa,0,0,0,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa,
-0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,0,0,0,0,
+0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x11,0xb1,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0xb1,0,0,0,0,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
-0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,
-0xb1,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,
-0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,1,1,1,1,1,1,1,1,3,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,
-0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa,
-0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3,
-6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa,
-0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a,
-0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,
-0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0xb1,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xa,
-1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1,
-0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81,
-0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,
-0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xa0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,
-0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x11,
+0x11,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,
+0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
+0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x310a,
+0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,4,0,0xb1,0,0,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,
+0xb1,0xb1,0x12,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,
+0xa,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0xb1,0,0,0,
+0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x11,0x11,
+0x11,0x11,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,
+0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2,
+2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,9,9,9,9,
+9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,
+4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+2,2,2,2,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,0,0,4,0,
+0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0,
+0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
+0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,
+0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,
+0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,
+0x100a,0x100a,0x100a,0xa,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,
+0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,
+0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0xa,
+0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,
+0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,
+0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,
+0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,
+0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,
+0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,
+0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,
+0xf20a,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,
+0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,
+0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,
+0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,
+0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,
+0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,
+0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,
+0x100a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,
+0xf00a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xa,0xa,0x300a,0xf00a,
+0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xa,0,0,0,
+0,0,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,9,0xa,0xa,0xa,
+0xa,0,0,0,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0,0,0,
+0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
+0,0,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,0,0,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,
+0,0xb1,0,0,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
+1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0,
+0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,
+0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4,
+4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,
+2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,
+0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,4,4,0xa,0xa,
+0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,
+1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1,
+1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,
+1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,
+0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,
+0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,
+0,0xb1,0xb1,0,0,0xa0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,0,0,0,0,
+0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1,
+0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
 0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,
 0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11,0x11,0x11,0,
+0,0x11,0x11,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11,0x11,
+0x11,0,0,0x11,0x11,0x11,0x11,0,0,0,0,0,0,0,0,0x11,
+0,0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11,0x11,0x11,0,
+0,0x11,0x11,0x11,0,0,0,0,0,0,0,0,0,0,0x11,0x11,
+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0,0x11,0x11,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x11,0x11,0x11,0x11,0x11,0x11,0,0,0,0x11,0,0x11,0x11,0,0x11,
+0x11,0x11,0x11,0x11,0x11,0x11,0,0x11,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,
-0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,
-0xb1,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,
-0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb2,0xb2,0xb2,0xb2,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,
-1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0xb2,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,
+0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
+0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,
 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,0xa,
-0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,
+2,2,2,2,2,2,2,0xa,0xa,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x12,0x12,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xb2,0xb2,0xb2,0xb2,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,
+0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0,0,0,0
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0
 };
 
 static const uint32_t ubidi_props_mirrors[26]={
@@ -809,13 +828,13 @@
     ubidi_props_trieIndex+3496,
     NULL,
     3496,
-    8076,
+    8388,
     0x1a0,
     0xe28,
     0x0,
     0x0,
     0x110000,
-    0x2d30,
+    0x2e68,
     NULL, 0, FALSE, FALSE, 0, NULL
   },
   { 2,2,0,0 }
diff --git a/source/common/ubidiimp.h b/source/common/ubidiimp.h
index a62d8b2..fd64fac 100644
--- a/source/common/ubidiimp.h
+++ b/source/common/ubidiimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ubidiimp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ubidiln.c b/source/common/ubidiln.cpp
similarity index 99%
rename from source/common/ubidiln.c
rename to source/common/ubidiln.cpp
index 688ca4c..71c581f 100644
--- a/source/common/ubidiln.c
+++ b/source/common/ubidiln.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ubidiln.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ubiditransform.c b/source/common/ubiditransform.cpp
similarity index 98%
rename from source/common/ubiditransform.c
rename to source/common/ubiditransform.cpp
index 5f83a2b..fd7b90f 100644
--- a/source/common/ubiditransform.c
+++ b/source/common/ubiditransform.cpp
@@ -1,12 +1,12 @@
 /*
 ******************************************************************************
 *
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html
 *
 ******************************************************************************
 *   file name:  ubiditransform.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -165,6 +165,7 @@
 static UBool
 action_setInverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode)
 {
+    (void)pErrorCode;
     ubidi_setInverse(pTransform->pBidi, TRUE);
     ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_INVERSE_LIKE_DIRECT);
     return FALSE;
@@ -183,6 +184,7 @@
 static UBool
 action_setRunsOnly(UBiDiTransform *pTransform, UErrorCode *pErrorCode)
 {
+    (void)pErrorCode;
     ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_RUNS_ONLY);
     return FALSE;
 }
diff --git a/source/common/ubidiwrt.c b/source/common/ubidiwrt.cpp
similarity index 99%
rename from source/common/ubidiwrt.c
rename to source/common/ubidiwrt.cpp
index 1d0c36a..a89099d 100644
--- a/source/common/ubidiwrt.c
+++ b/source/common/ubidiwrt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ubidiwrt.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ubrk.cpp b/source/common/ubrk.cpp
index b02c966..f8bdf5a 100644
--- a/source/common/ubrk.cpp
+++ b/source/common/ubrk.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -20,6 +20,7 @@
 #include "unicode/rbbi.h"
 #include "rbbirb.h"
 #include "uassert.h"
+#include "cmemory.h"
 
 U_NAMESPACE_USE
 
@@ -119,7 +120,28 @@
 }
 
 
-
+U_CAPI UBreakIterator* U_EXPORT2
+ubrk_openBinaryRules(const uint8_t *binaryRules, int32_t rulesLength,
+                     const UChar *  text, int32_t textLength,
+                     UErrorCode *   status)
+{
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    if (rulesLength < 0) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return NULL;
+    }
+    LocalPointer<RuleBasedBreakIterator> lpRBBI(new RuleBasedBreakIterator(binaryRules, rulesLength, *status), *status);
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    UBreakIterator *uBI = reinterpret_cast<UBreakIterator *>(lpRBBI.orphan());
+    if (text != NULL) {
+        ubrk_setText(uBI, text, textLength, status);
+    }
+    return uBI;
+}
 
 
 U_CAPI UBreakIterator * U_EXPORT2
@@ -288,7 +310,8 @@
 }
 
 
-void ubrk_refreshUText(UBreakIterator *bi,
+U_CAPI void U_EXPORT2
+ubrk_refreshUText(UBreakIterator *bi,
                        UText          *text,
                        UErrorCode     *status)
 {
@@ -296,6 +319,39 @@
     bii->refreshInputText(text, *status);
 }
 
+U_CAPI int32_t U_EXPORT2
+ubrk_getBinaryRules(UBreakIterator *bi,
+                    uint8_t *       binaryRules, int32_t rulesCapacity,
+                    UErrorCode *    status)
+{
+    if (U_FAILURE(*status)) {
+        return 0;
+    }
+    if ((binaryRules == NULL && rulesCapacity > 0) || rulesCapacity < 0) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+    RuleBasedBreakIterator* rbbi;
+    if ((rbbi = dynamic_cast<RuleBasedBreakIterator*>(reinterpret_cast<BreakIterator*>(bi))) == NULL) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+    uint32_t rulesLength;
+    const uint8_t * returnedRules = rbbi->getBinaryRules(rulesLength);
+    if (rulesLength > INT32_MAX) {
+        *status = U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+    if (binaryRules != NULL) { // if not preflighting
+        // Here we know rulesLength <= INT32_MAX and rulesCapacity >= 0, can cast safely
+        if ((int32_t)rulesLength > rulesCapacity) {
+            *status = U_BUFFER_OVERFLOW_ERROR;
+        } else {
+            uprv_memcpy(binaryRules, returnedRules, rulesLength);
+        }
+    }
+    return (int32_t)rulesLength;
+}
 
 
 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/source/common/ubrkimpl.h b/source/common/ubrkimpl.h
index 36ca668..8197f66 100644
--- a/source/common/ubrkimpl.h
+++ b/source/common/ubrkimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ucase.cpp b/source/common/ucase.cpp
index 97ded9e..706d728 100644
--- a/source/common/ucase.cpp
+++ b/source/common/ucase.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucase.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -46,13 +46,6 @@
 #define INCLUDED_FROM_UCASE_CPP
 #include "ucase_props_data.h"
 
-/* UCaseProps singleton ----------------------------------------------------- */
-
-U_CAPI const UCaseProps * U_EXPORT2
-ucase_getSingleton() {
-    return &ucase_props_singleton;
-}
-
 /* set of property starts for UnicodeSet ------------------------------------ */
 
 static UBool U_CALLCONV
@@ -64,13 +57,13 @@
 }
 
 U_CFUNC void U_EXPORT2
-ucase_addPropertyStarts(const UCaseProps *csp, const USetAdder *sa, UErrorCode *pErrorCode) {
+ucase_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode) {
     if(U_FAILURE(*pErrorCode)) {
         return;
     }
 
     /* add the start code point of each same-value range of the trie */
-    utrie2_enum(&csp->trie, NULL, _enumPropertyStartsRange, sa);
+    utrie2_enum(&ucase_props_singleton.trie, NULL, _enumPropertyStartsRange, sa);
 
     /* add code points with hardcoded properties, plus the ones following them */
 
@@ -133,14 +126,14 @@
 /* simple case mappings ----------------------------------------------------- */
 
 U_CAPI UChar32 U_EXPORT2
-ucase_tolower(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_tolower(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)>=UCASE_UPPER) {
             c+=UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         uint16_t excWord=*pe++;
         if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
             GET_SLOT_VALUE(excWord, UCASE_EXC_LOWER, pe, c);
@@ -150,14 +143,14 @@
 }
 
 U_CAPI UChar32 U_EXPORT2
-ucase_toupper(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_toupper(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)==UCASE_LOWER) {
             c+=UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         uint16_t excWord=*pe++;
         if(HAS_SLOT(excWord, UCASE_EXC_UPPER)) {
             GET_SLOT_VALUE(excWord, UCASE_EXC_UPPER, pe, c);
@@ -167,14 +160,14 @@
 }
 
 U_CAPI UChar32 U_EXPORT2
-ucase_totitle(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_totitle(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)==UCASE_LOWER) {
             c+=UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         uint16_t excWord=*pe++;
         int32_t idx;
         if(HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
@@ -198,7 +191,7 @@
 
 
 U_CFUNC void U_EXPORT2
-ucase_addCaseClosure(const UCaseProps *csp, UChar32 c, const USetAdder *sa) {
+ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
     uint16_t props;
 
     /*
@@ -229,7 +222,7 @@
         break;
     }
 
-    props=UTRIE2_GET16(&csp->trie, c);
+    props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)!=UCASE_NONE) {
             /* add the one simple case mapping, no matter what type it is */
@@ -243,7 +236,7 @@
          * c has exceptions, so there may be multiple simple and/or
          * full case mappings. Add them all.
          */
-        const uint16_t *pe0, *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe0, *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         const UChar *closure;
         uint16_t excWord=*pe++;
         int32_t idx, closureLength, fullLength, length;
@@ -338,10 +331,10 @@
 }
 
 U_CFUNC UBool U_EXPORT2
-ucase_addStringCaseClosure(const UCaseProps *csp, const UChar *s, int32_t length, const USetAdder *sa) {
+ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) {
     int32_t i, start, limit, result, unfoldRows, unfoldRowWidth, unfoldStringWidth;
 
-    if(csp->unfold==NULL || s==NULL) {
+    if(ucase_props_singleton.unfold==NULL || s==NULL) {
         return FALSE; /* no reverse case folding data, or no string */
     }
     if(length<=1) {
@@ -355,7 +348,7 @@
         return FALSE;
     }
 
-    const uint16_t *unfold=csp->unfold;
+    const uint16_t *unfold=ucase_props_singleton.unfold;
     unfoldRows=unfold[UCASE_UNFOLD_ROWS];
     unfoldRowWidth=unfold[UCASE_UNFOLD_ROW_WIDTH];
     unfoldStringWidth=unfold[UCASE_UNFOLD_STRING_WIDTH];
@@ -381,7 +374,7 @@
             for(i=unfoldStringWidth; i<unfoldRowWidth && p[i]!=0;) {
                 U16_NEXT_UNSAFE(p, i, c);
                 sa->add(sa->set, c);
-                ucase_addCaseClosure(csp, c, sa);
+                ucase_addCaseClosure(c, sa);
             }
             return TRUE;
         } else if(result<0) {
@@ -430,38 +423,38 @@
 
 /** @return UCASE_NONE, UCASE_LOWER, UCASE_UPPER, UCASE_TITLE */
 U_CAPI int32_t U_EXPORT2
-ucase_getType(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_getType(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     return UCASE_GET_TYPE(props);
 }
 
 /** @return same as ucase_getType() and set bit 2 if c is case-ignorable */
 U_CAPI int32_t U_EXPORT2
-ucase_getTypeOrIgnorable(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_getTypeOrIgnorable(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     return UCASE_GET_TYPE_AND_IGNORABLE(props);
 }
 
 /** @return UCASE_NO_DOT, UCASE_SOFT_DOTTED, UCASE_ABOVE, UCASE_OTHER_ACCENT */
 static inline int32_t
-getDotType(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+getDotType(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         return props&UCASE_DOT_MASK;
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         return (*pe>>UCASE_EXC_DOT_SHIFT)&UCASE_DOT_MASK;
     }
 }
 
 U_CAPI UBool U_EXPORT2
-ucase_isSoftDotted(const UCaseProps *csp, UChar32 c) {
-    return (UBool)(getDotType(csp, c)==UCASE_SOFT_DOTTED);
+ucase_isSoftDotted(UChar32 c) {
+    return (UBool)(getDotType(c)==UCASE_SOFT_DOTTED);
 }
 
 U_CAPI UBool U_EXPORT2
-ucase_isCaseSensitive(const UCaseProps *csp, UChar32 c) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_isCaseSensitive(UChar32 c) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     return (UBool)((props&UCASE_SENSITIVE)!=0);
 }
 
@@ -545,12 +538,10 @@
  *     zero or more case-ignorable characters.
  */
 
-#define is_a(c) ((c)=='a' || (c)=='A')
 #define is_d(c) ((c)=='d' || (c)=='D')
 #define is_e(c) ((c)=='e' || (c)=='E')
 #define is_i(c) ((c)=='i' || (c)=='I')
 #define is_l(c) ((c)=='l' || (c)=='L')
-#define is_n(c) ((c)=='n' || (c)=='N')
 #define is_r(c) ((c)=='r' || (c)=='R')
 #define is_t(c) ((c)=='t' || (c)=='T')
 #define is_u(c) ((c)=='u' || (c)=='U')
@@ -565,16 +556,7 @@
  * Accepts both 2- and 3-letter codes and accepts case variants.
  */
 U_CFUNC int32_t
-ucase_getCaseLocale(const char *locale, int32_t *locCache) {
-    int32_t result;
-    char c;
-
-    if(locCache!=NULL && (result=*locCache)!=UCASE_LOC_UNKNOWN) {
-        return result;
-    }
-
-    result=UCASE_LOC_ROOT;
-
+ucase_getCaseLocale(const char *locale) {
     /*
      * This function used to use uloc_getLanguage(), but the current code
      * removes the dependency of this low-level code on uloc implementation code
@@ -584,44 +566,12 @@
      * Because this code does not want to depend on uloc, the caller must
      * pass in a non-NULL locale, i.e., may need to call uloc_getDefault().
      */
-    c=*locale++;
-    if(is_t(c)) {
-        /* tr or tur? */
-        c=*locale++;
-        if(is_u(c)) {
-            c=*locale++;
-        }
-        if(is_r(c)) {
-            c=*locale;
-            if(is_sep(c)) {
-                result=UCASE_LOC_TURKISH;
-            }
-        }
-    } else if(is_a(c)) {
-        /* az or aze? */
-        c=*locale++;
-        if(is_z(c)) {
-            c=*locale++;
-            if(is_e(c)) {
-                c=*locale;
-            }
-            if(is_sep(c)) {
-                result=UCASE_LOC_TURKISH;
-            }
-        }
-    } else if(is_l(c)) {
-        /* lt or lit? */
-        c=*locale++;
-        if(is_i(c)) {
-            c=*locale++;
-        }
-        if(is_t(c)) {
-            c=*locale;
-            if(is_sep(c)) {
-                result=UCASE_LOC_LITHUANIAN;
-            }
-        }
-    } else if(is_e(c)) {
+    char c=*locale++;
+    // Fastpath for English "en" which is often used for default (=root locale) case mappings,
+    // and for Chinese "zh": Very common but no special case mapping behavior.
+    // Then check lowercase vs. uppercase to reduce the number of comparisons
+    // for other locales without special behavior.
+    if(c=='e') {
         /* el or ell? */
         c=*locale++;
         if(is_l(c)) {
@@ -630,27 +580,135 @@
                 c=*locale;
             }
             if(is_sep(c)) {
-                result=UCASE_LOC_GREEK;
+                return UCASE_LOC_GREEK;
             }
         }
-    } else if(is_n(c)) {
-        /* nl or nld? */
-        c=*locale++;
-        if(is_l(c)) {
+        // en, es, ... -> root
+    } else if(c=='z') {
+        return UCASE_LOC_ROOT;
+#if U_CHARSET_FAMILY==U_ASCII_FAMILY
+    } else if(c>='a') {  // ASCII a-z = 0x61..0x7a, after A-Z
+#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+    } else if(c<='z') {  // EBCDIC a-z = 0x81..0xa9 with two gaps, before A-Z
+#else
+#   error Unknown charset family!
+#endif
+        // lowercase c
+        if(c=='t') {
+            /* tr or tur? */
             c=*locale++;
-            if(is_d(c)) {
-                c=*locale;
+            if(is_u(c)) {
+                c=*locale++;
             }
-            if(is_sep(c)) {
-                result=UCASE_LOC_DUTCH;
+            if(is_r(c)) {
+                c=*locale;
+                if(is_sep(c)) {
+                    return UCASE_LOC_TURKISH;
+                }
+            }
+        } else if(c=='a') {
+            /* az or aze? */
+            c=*locale++;
+            if(is_z(c)) {
+                c=*locale++;
+                if(is_e(c)) {
+                    c=*locale;
+                }
+                if(is_sep(c)) {
+                    return UCASE_LOC_TURKISH;
+                }
+            }
+        } else if(c=='l') {
+            /* lt or lit? */
+            c=*locale++;
+            if(is_i(c)) {
+                c=*locale++;
+            }
+            if(is_t(c)) {
+                c=*locale;
+                if(is_sep(c)) {
+                    return UCASE_LOC_LITHUANIAN;
+                }
+            }
+        } else if(c=='n') {
+            /* nl or nld? */
+            c=*locale++;
+            if(is_l(c)) {
+                c=*locale++;
+                if(is_d(c)) {
+                    c=*locale;
+                }
+                if(is_sep(c)) {
+                    return UCASE_LOC_DUTCH;
+                }
+            }
+        }
+    } else {
+        // uppercase c
+        // Same code as for lowercase c but also check for 'E'.
+        if(c=='T') {
+            /* tr or tur? */
+            c=*locale++;
+            if(is_u(c)) {
+                c=*locale++;
+            }
+            if(is_r(c)) {
+                c=*locale;
+                if(is_sep(c)) {
+                    return UCASE_LOC_TURKISH;
+                }
+            }
+        } else if(c=='A') {
+            /* az or aze? */
+            c=*locale++;
+            if(is_z(c)) {
+                c=*locale++;
+                if(is_e(c)) {
+                    c=*locale;
+                }
+                if(is_sep(c)) {
+                    return UCASE_LOC_TURKISH;
+                }
+            }
+        } else if(c=='L') {
+            /* lt or lit? */
+            c=*locale++;
+            if(is_i(c)) {
+                c=*locale++;
+            }
+            if(is_t(c)) {
+                c=*locale;
+                if(is_sep(c)) {
+                    return UCASE_LOC_LITHUANIAN;
+                }
+            }
+        } else if(c=='E') {
+            /* el or ell? */
+            c=*locale++;
+            if(is_l(c)) {
+                c=*locale++;
+                if(is_l(c)) {
+                    c=*locale;
+                }
+                if(is_sep(c)) {
+                    return UCASE_LOC_GREEK;
+                }
+            }
+        } else if(c=='N') {
+            /* nl or nld? */
+            c=*locale++;
+            if(is_l(c)) {
+                c=*locale++;
+                if(is_d(c)) {
+                    c=*locale;
+                }
+                if(is_sep(c)) {
+                    return UCASE_LOC_DUTCH;
+                }
             }
         }
     }
-
-    if(locCache!=NULL) {
-        *locCache=result;
-    }
-    return result;
+    return UCASE_LOC_ROOT;
 }
 
 /*
@@ -662,7 +720,7 @@
  * it is also cased or not.
  */
 static UBool
-isFollowedByCasedLetter(const UCaseProps *csp, UCaseContextIterator *iter, void *context, int8_t dir) {
+isFollowedByCasedLetter(UCaseContextIterator *iter, void *context, int8_t dir) {
     UChar32 c;
 
     if(iter==NULL) {
@@ -670,7 +728,7 @@
     }
 
     for(/* dir!=0 sets direction */; (c=iter(context, dir))>=0; dir=0) {
-        int32_t type=ucase_getTypeOrIgnorable(csp, c);
+        int32_t type=ucase_getTypeOrIgnorable(c);
         if(type&4) {
             /* case-ignorable, continue with the loop */
         } else if(type!=UCASE_NONE) {
@@ -685,7 +743,7 @@
 
 /* Is preceded by Soft_Dotted character with no intervening cc=230 ? */
 static UBool
-isPrecededBySoftDotted(const UCaseProps *csp, UCaseContextIterator *iter, void *context) {
+isPrecededBySoftDotted(UCaseContextIterator *iter, void *context) {
     UChar32 c;
     int32_t dotType;
     int8_t dir;
@@ -695,7 +753,7 @@
     }
 
     for(dir=-1; (c=iter(context, dir))>=0; dir=0) {
-        dotType=getDotType(csp, c);
+        dotType=getDotType(c);
         if(dotType==UCASE_SOFT_DOTTED) {
             return TRUE; /* preceded by TYPE_i */
         } else if(dotType!=UCASE_OTHER_ACCENT) {
@@ -742,7 +800,7 @@
 
 /* Is preceded by base character 'I' with no intervening cc=230 ? */
 static UBool
-isPrecededBy_I(const UCaseProps *csp, UCaseContextIterator *iter, void *context) {
+isPrecededBy_I(UCaseContextIterator *iter, void *context) {
     UChar32 c;
     int32_t dotType;
     int8_t dir;
@@ -755,7 +813,7 @@
         if(c==0x49) {
             return TRUE; /* preceded by I */
         }
-        dotType=getDotType(csp, c);
+        dotType=getDotType(c);
         if(dotType!=UCASE_OTHER_ACCENT) {
             return FALSE; /* preceded by different base character (not I), or intervening cc==230 */
         }
@@ -766,7 +824,7 @@
 
 /* Is followed by one or more cc==230 ? */
 static UBool
-isFollowedByMoreAbove(const UCaseProps *csp, UCaseContextIterator *iter, void *context) {
+isFollowedByMoreAbove(UCaseContextIterator *iter, void *context) {
     UChar32 c;
     int32_t dotType;
     int8_t dir;
@@ -776,7 +834,7 @@
     }
 
     for(dir=1; (c=iter(context, dir))>=0; dir=0) {
-        dotType=getDotType(csp, c);
+        dotType=getDotType(c);
         if(dotType==UCASE_ABOVE) {
             return TRUE; /* at least one cc==230 following */
         } else if(dotType!=UCASE_OTHER_ACCENT) {
@@ -789,7 +847,7 @@
 
 /* Is followed by a dot above (without cc==230 in between) ? */
 static UBool
-isFollowedByDotAbove(const UCaseProps *csp, UCaseContextIterator *iter, void *context) {
+isFollowedByDotAbove(UCaseContextIterator *iter, void *context) {
     UChar32 c;
     int32_t dotType;
     int8_t dir;
@@ -802,7 +860,7 @@
         if(c==0x307) {
             return TRUE;
         }
-        dotType=getDotType(csp, c);
+        dotType=getDotType(c);
         if(dotType!=UCASE_OTHER_ACCENT) {
             return FALSE; /* next base character or cc==230 in between */
         }
@@ -812,20 +870,20 @@
 }
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullLower(const UCaseProps *csp, UChar32 c,
+ucase_toFullLower(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache) {
+                  int32_t loc) {
     // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
     U_ASSERT(c >= 0);
     UChar32 result=c;
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)>=UCASE_UPPER) {
             result=c+UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props), *pe2;
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props), *pe2;
         uint16_t excWord=*pe++;
         int32_t full;
 
@@ -833,7 +891,6 @@
 
         if(excWord&UCASE_EXC_CONDITIONAL_SPECIAL) {
             /* use hardcoded conditions and mappings */
-            int32_t loc=ucase_getCaseLocale(locale, locCache);
 
             /*
              * Test for conditional mappings first
@@ -844,7 +901,7 @@
             if( loc==UCASE_LOC_LITHUANIAN &&
                     /* base characters, find accents above */
                     (((c==0x49 || c==0x4a || c==0x12e) &&
-                        isFollowedByMoreAbove(csp, iter, context)) ||
+                        isFollowedByMoreAbove(iter, context)) ||
                     /* precomposed with accent above, no need to find one */
                     (c==0xcc || c==0xcd || c==0x128))
             ) {
@@ -896,7 +953,7 @@
                     0130; 0069; 0130; 0130; az # LATIN CAPITAL LETTER I WITH DOT ABOVE
                  */
                 return 0x69;
-            } else if(loc==UCASE_LOC_TURKISH && c==0x307 && isPrecededBy_I(csp, iter, context)) {
+            } else if(loc==UCASE_LOC_TURKISH && c==0x307 && isPrecededBy_I(iter, context)) {
                 /*
                     # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i.
                     # This matches the behavior of the canonically equivalent I-dot_above
@@ -905,7 +962,7 @@
                     0307; ; 0307; 0307; az After_I; # COMBINING DOT ABOVE
                  */
                 return 0; /* remove the dot (continue without output) */
-            } else if(loc==UCASE_LOC_TURKISH && c==0x49 && !isFollowedByDotAbove(csp, iter, context)) {
+            } else if(loc==UCASE_LOC_TURKISH && c==0x49 && !isFollowedByDotAbove(iter, context)) {
                 /*
                     # When lowercasing, unless an I is before a dot_above, it turns into a dotless i.
 
@@ -922,8 +979,8 @@
                 *pString=iDot;
                 return 2;
             } else if(  c==0x3a3 &&
-                        !isFollowedByCasedLetter(csp, iter, context, 1) &&
-                        isFollowedByCasedLetter(csp, iter, context, -1) /* -1=preceded */
+                        !isFollowedByCasedLetter(iter, context, 1) &&
+                        isFollowedByCasedLetter(iter, context, -1) /* -1=preceded */
             ) {
                 /* greek capital sigma maps depending on surrounding cased letters (see SpecialCasing.txt) */
                 /*
@@ -957,21 +1014,21 @@
 
 /* internal */
 static int32_t
-toUpperOrTitle(const UCaseProps *csp, UChar32 c,
+toUpperOrTitle(UChar32 c,
                UCaseContextIterator *iter, void *context,
                const UChar **pString,
-               const char *locale, int32_t *locCache,
+               int32_t loc,
                UBool upperNotTitle) {
     // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
     U_ASSERT(c >= 0);
     UChar32 result=c;
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)==UCASE_LOWER) {
             result=c+UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props), *pe2;
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props), *pe2;
         uint16_t excWord=*pe++;
         int32_t full, idx;
 
@@ -979,8 +1036,6 @@
 
         if(excWord&UCASE_EXC_CONDITIONAL_SPECIAL) {
             /* use hardcoded conditions and mappings */
-            int32_t loc=ucase_getCaseLocale(locale, locCache);
-
             if(loc==UCASE_LOC_TURKISH && c==0x69) {
                 /*
                     # Turkish and Azeri
@@ -994,7 +1049,7 @@
                     0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
                 */
                 return 0x130;
-            } else if(loc==UCASE_LOC_LITHUANIAN && c==0x307 && isPrecededBySoftDotted(csp, iter, context)) {
+            } else if(loc==UCASE_LOC_LITHUANIAN && c==0x307 && isPrecededBySoftDotted(iter, context)) {
                 /*
                     # Lithuanian
 
@@ -1052,19 +1107,19 @@
 }
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullUpper(const UCaseProps *csp, UChar32 c,
+ucase_toFullUpper(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache) {
-    return toUpperOrTitle(csp, c, iter, context, pString, locale, locCache, TRUE);
+                  int32_t caseLocale) {
+    return toUpperOrTitle(c, iter, context, pString, caseLocale, TRUE);
 }
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullTitle(const UCaseProps *csp, UChar32 c,
+ucase_toFullTitle(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache) {
-    return toUpperOrTitle(csp, c, iter, context, pString, locale, locCache, FALSE);
+                  int32_t caseLocale) {
+    return toUpperOrTitle(c, iter, context, pString, caseLocale, FALSE);
 }
 
 /* case folding ------------------------------------------------------------- */
@@ -1110,14 +1165,14 @@
 
 /* return the simple case folding mapping for c */
 U_CAPI UChar32 U_EXPORT2
-ucase_fold(const UCaseProps *csp, UChar32 c, uint32_t options) {
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+ucase_fold(UChar32 c, uint32_t options) {
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)>=UCASE_UPPER) {
             c+=UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props);
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
         uint16_t excWord=*pe++;
         int32_t idx;
         if(excWord&UCASE_EXC_CONDITIONAL_FOLD) {
@@ -1170,19 +1225,19 @@
  */
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullFolding(const UCaseProps *csp, UChar32 c,
+ucase_toFullFolding(UChar32 c,
                     const UChar **pString,
                     uint32_t options) {
     // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
     U_ASSERT(c >= 0);
     UChar32 result=c;
-    uint16_t props=UTRIE2_GET16(&csp->trie, c);
+    uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!PROPS_HAS_EXCEPTION(props)) {
         if(UCASE_GET_TYPE(props)>=UCASE_UPPER) {
             result=c+UCASE_GET_DELTA(props);
         }
     } else {
-        const uint16_t *pe=GET_EXCEPTIONS(csp, props), *pe2;
+        const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props), *pe2;
         uint16_t excWord=*pe++;
         int32_t full, idx;
 
@@ -1244,66 +1299,59 @@
 
 /* case mapping properties API ---------------------------------------------- */
 
-#define GET_CASE_PROPS() &ucase_props_singleton
-
 /* public API (see uchar.h) */
 
 U_CAPI UBool U_EXPORT2
 u_isULowercase(UChar32 c) {
-    return (UBool)(UCASE_LOWER==ucase_getType(GET_CASE_PROPS(), c));
+    return (UBool)(UCASE_LOWER==ucase_getType(c));
 }
 
 U_CAPI UBool U_EXPORT2
 u_isUUppercase(UChar32 c) {
-    return (UBool)(UCASE_UPPER==ucase_getType(GET_CASE_PROPS(), c));
+    return (UBool)(UCASE_UPPER==ucase_getType(c));
 }
 
 /* Transforms the Unicode character to its lower case equivalent.*/
 U_CAPI UChar32 U_EXPORT2
 u_tolower(UChar32 c) {
-    return ucase_tolower(GET_CASE_PROPS(), c);
+    return ucase_tolower(c);
 }
     
 /* Transforms the Unicode character to its upper case equivalent.*/
 U_CAPI UChar32 U_EXPORT2
 u_toupper(UChar32 c) {
-    return ucase_toupper(GET_CASE_PROPS(), c);
+    return ucase_toupper(c);
 }
 
 /* Transforms the Unicode character to its title case equivalent.*/
 U_CAPI UChar32 U_EXPORT2
 u_totitle(UChar32 c) {
-    return ucase_totitle(GET_CASE_PROPS(), c);
+    return ucase_totitle(c);
 }
 
 /* return the simple case folding mapping for c */
 U_CAPI UChar32 U_EXPORT2
 u_foldCase(UChar32 c, uint32_t options) {
-    return ucase_fold(GET_CASE_PROPS(), c, options);
+    return ucase_fold(c, options);
 }
 
 U_CFUNC int32_t U_EXPORT2
 ucase_hasBinaryProperty(UChar32 c, UProperty which) {
     /* case mapping properties */
     const UChar *resultString;
-    int32_t locCache;
-    const UCaseProps *csp=GET_CASE_PROPS();
-    if(csp==NULL) {
-        return FALSE;
-    }
     switch(which) {
     case UCHAR_LOWERCASE:
-        return (UBool)(UCASE_LOWER==ucase_getType(csp, c));
+        return (UBool)(UCASE_LOWER==ucase_getType(c));
     case UCHAR_UPPERCASE:
-        return (UBool)(UCASE_UPPER==ucase_getType(csp, c));
+        return (UBool)(UCASE_UPPER==ucase_getType(c));
     case UCHAR_SOFT_DOTTED:
-        return ucase_isSoftDotted(csp, c);
+        return ucase_isSoftDotted(c);
     case UCHAR_CASE_SENSITIVE:
-        return ucase_isCaseSensitive(csp, c);
+        return ucase_isCaseSensitive(c);
     case UCHAR_CASED:
-        return (UBool)(UCASE_NONE!=ucase_getType(csp, c));
+        return (UBool)(UCASE_NONE!=ucase_getType(c));
     case UCHAR_CASE_IGNORABLE:
-        return (UBool)(ucase_getTypeOrIgnorable(csp, c)>>2);
+        return (UBool)(ucase_getTypeOrIgnorable(c)>>2);
     /*
      * Note: The following Changes_When_Xyz are defined as testing whether
      * the NFD form of the input changes when Xyz-case-mapped.
@@ -1317,21 +1365,17 @@
      * start sets for normalization and case mappings.
      */
     case UCHAR_CHANGES_WHEN_LOWERCASED:
-        locCache=UCASE_LOC_ROOT;
-        return (UBool)(ucase_toFullLower(csp, c, NULL, NULL, &resultString, "", &locCache)>=0);
+        return (UBool)(ucase_toFullLower(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0);
     case UCHAR_CHANGES_WHEN_UPPERCASED:
-        locCache=UCASE_LOC_ROOT;
-        return (UBool)(ucase_toFullUpper(csp, c, NULL, NULL, &resultString, "", &locCache)>=0);
+        return (UBool)(ucase_toFullUpper(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0);
     case UCHAR_CHANGES_WHEN_TITLECASED:
-        locCache=UCASE_LOC_ROOT;
-        return (UBool)(ucase_toFullTitle(csp, c, NULL, NULL, &resultString, "", &locCache)>=0);
+        return (UBool)(ucase_toFullTitle(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0);
     /* case UCHAR_CHANGES_WHEN_CASEFOLDED: -- in uprops.c */
     case UCHAR_CHANGES_WHEN_CASEMAPPED:
-        locCache=UCASE_LOC_ROOT;
         return (UBool)(
-            ucase_toFullLower(csp, c, NULL, NULL, &resultString, "", &locCache)>=0 ||
-            ucase_toFullUpper(csp, c, NULL, NULL, &resultString, "", &locCache)>=0 ||
-            ucase_toFullTitle(csp, c, NULL, NULL, &resultString, "", &locCache)>=0);
+            ucase_toFullLower(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0 ||
+            ucase_toFullUpper(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0 ||
+            ucase_toFullTitle(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0);
     default:
         return FALSE;
     }
diff --git a/source/common/ucase.h b/source/common/ucase.h
index 29ea71a..e15bae6 100644
--- a/source/common/ucase.h
+++ b/source/common/ucase.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucase.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -37,18 +37,8 @@
 
 /* library API -------------------------------------------------------------- */
 
-U_CDECL_BEGIN
-
-struct UCaseProps;
-typedef struct UCaseProps UCaseProps;
-
-U_CDECL_END
-
-U_CAPI const UCaseProps * U_EXPORT2
-ucase_getSingleton(void);
-
 U_CFUNC void U_EXPORT2
-ucase_addPropertyStarts(const UCaseProps *csp, const USetAdder *sa, UErrorCode *pErrorCode);
+ucase_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
 
 /**
  * Requires non-NULL locale ID but otherwise does the equivalent of
@@ -56,7 +46,7 @@
  * Accepts both 2- and 3-letter codes and accepts case variants.
  */
 U_CFUNC int32_t
-ucase_getCaseLocale(const char *locale, int32_t *locCache);
+ucase_getCaseLocale(const char *locale);
 
 /* Casing locale types for ucase_getCaseLocale */
 enum {
@@ -87,16 +77,16 @@
 /* single-code point functions */
 
 U_CAPI UChar32 U_EXPORT2
-ucase_tolower(const UCaseProps *csp, UChar32 c);
+ucase_tolower(UChar32 c);
 
 U_CAPI UChar32 U_EXPORT2
-ucase_toupper(const UCaseProps *csp, UChar32 c);
+ucase_toupper(UChar32 c);
 
 U_CAPI UChar32 U_EXPORT2
-ucase_totitle(const UCaseProps *csp, UChar32 c);
+ucase_totitle(UChar32 c);
 
 U_CAPI UChar32 U_EXPORT2
-ucase_fold(const UCaseProps *csp, UChar32 c, uint32_t options);
+ucase_fold(UChar32 c, uint32_t options);
 
 /**
  * Adds all simple case mappings and the full case folding for c to sa,
@@ -108,7 +98,7 @@
  * - for k include the Kelvin sign
  */
 U_CFUNC void U_EXPORT2
-ucase_addCaseClosure(const UCaseProps *csp, UChar32 c, const USetAdder *sa);
+ucase_addCaseClosure(UChar32 c, const USetAdder *sa);
 
 /**
  * Maps the string to single code points and adds the associated case closure
@@ -123,7 +113,7 @@
  * @return TRUE if the string was found
  */
 U_CFUNC UBool U_EXPORT2
-ucase_addStringCaseClosure(const UCaseProps *csp, const UChar *s, int32_t length, const USetAdder *sa);
+ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa);
 
 #ifdef __cplusplus
 U_NAMESPACE_BEGIN
@@ -157,17 +147,17 @@
 
 /** @return UCASE_NONE, UCASE_LOWER, UCASE_UPPER, UCASE_TITLE */
 U_CAPI int32_t U_EXPORT2
-ucase_getType(const UCaseProps *csp, UChar32 c);
+ucase_getType(UChar32 c);
 
 /** @return like ucase_getType() but also sets UCASE_IGNORABLE if c is case-ignorable */
 U_CAPI int32_t U_EXPORT2
-ucase_getTypeOrIgnorable(const UCaseProps *csp, UChar32 c);
+ucase_getTypeOrIgnorable(UChar32 c);
 
 U_CAPI UBool U_EXPORT2
-ucase_isSoftDotted(const UCaseProps *csp, UChar32 c);
+ucase_isSoftDotted(UChar32 c);
 
 U_CAPI UBool U_EXPORT2
-ucase_isCaseSensitive(const UCaseProps *csp, UChar32 c);
+ucase_isCaseSensitive(UChar32 c);
 
 /* string case mapping functions */
 
@@ -240,10 +230,7 @@
  * @param context Pointer to be passed into iter.
  * @param pString If the mapping result is a string, then the pointer is
  *                written to *pString.
- * @param locale Locale ID for locale-dependent mappings.
- * @param locCache Initialize to 0; may be used to cache the result of parsing
- *                 the locale ID for subsequent calls.
- *                 Can be NULL.
+ * @param caseLocale Case locale value from ucase_getCaseLocale().
  * @return Output code point or string length, see UCASE_MAX_STRING_LENGTH.
  *
  * @see UCaseContextIterator
@@ -251,25 +238,25 @@
  * @internal
  */
 U_CAPI int32_t U_EXPORT2
-ucase_toFullLower(const UCaseProps *csp, UChar32 c,
+ucase_toFullLower(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache);
+                  int32_t caseLocale);
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullUpper(const UCaseProps *csp, UChar32 c,
+ucase_toFullUpper(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache);
+                  int32_t caseLocale);
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullTitle(const UCaseProps *csp, UChar32 c,
+ucase_toFullTitle(UChar32 c,
                   UCaseContextIterator *iter, void *context,
                   const UChar **pString,
-                  const char *locale, int32_t *locCache);
+                  int32_t caseLocale);
 
 U_CAPI int32_t U_EXPORT2
-ucase_toFullFolding(const UCaseProps *csp, UChar32 c,
+ucase_toFullFolding(UChar32 c,
                     const UChar **pString,
                     uint32_t options);
 
@@ -283,10 +270,10 @@
  * @internal
  */
 typedef int32_t U_CALLCONV
-UCaseMapFull(const UCaseProps *csp, UChar32 c,
+UCaseMapFull(UChar32 c,
              UCaseContextIterator *iter, void *context,
              const UChar **pString,
-             const char *locale, int32_t *locCache);
+             int32_t caseLocale);
 
 U_CDECL_END
 
diff --git a/source/common/ucase_props_data.h b/source/common/ucase_props_data.h
index aa51bac..3663592 100644
--- a/source/common/ucase_props_data.h
+++ b/source/common/ucase_props_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 // Copyright (C) 1999-2016, International Business Machines
diff --git a/source/common/ucasemap.cpp b/source/common/ucasemap.cpp
index 4d59f7d..391140d 100644
--- a/source/common/ucasemap.cpp
+++ b/source/common/ucasemap.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucasemap.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -20,6 +20,8 @@
 
 #include "unicode/utypes.h"
 #include "unicode/brkiter.h"
+#include "unicode/casemap.h"
+#include "unicode/edits.h"
 #include "unicode/ubrk.h"
 #include "unicode/uloc.h"
 #include "unicode/ustring.h"
@@ -32,47 +34,69 @@
 #include "unicode/utf16.h"
 #include "cmemory.h"
 #include "cstring.h"
+#include "uassert.h"
 #include "ucase.h"
+#include "ucasemap_imp.h"
 #include "ustr_imp.h"
 
+U_NAMESPACE_BEGIN
+
+namespace {
+
+// TODO: share with UTF-16? inline in ucasemap_imp.h?
+int32_t checkOverflowAndEditsError(int32_t destIndex, int32_t destCapacity,
+                                   Edits *edits, UErrorCode &errorCode) {
+    if (U_SUCCESS(errorCode)) {
+        if (destIndex > destCapacity) {
+            errorCode = U_BUFFER_OVERFLOW_ERROR;
+        } else if (edits != NULL) {
+            edits->copyErrorTo(errorCode);
+        }
+    }
+    return destIndex;
+}
+
+}  // namespace
+
+U_NAMESPACE_END
+
 U_NAMESPACE_USE
 
 /* UCaseMap service object -------------------------------------------------- */
 
+UCaseMap::UCaseMap(const char *localeID, uint32_t opts, UErrorCode *pErrorCode) :
+#if !UCONFIG_NO_BREAK_ITERATION
+        iter(NULL),
+#endif
+        caseLocale(UCASE_LOC_UNKNOWN), options(opts) {
+    ucasemap_setLocale(this, localeID, pErrorCode);
+}
+
+UCaseMap::~UCaseMap() {
+#if !UCONFIG_NO_BREAK_ITERATION
+    delete iter;
+#endif
+}
+
 U_CAPI UCaseMap * U_EXPORT2
 ucasemap_open(const char *locale, uint32_t options, UErrorCode *pErrorCode) {
-    UCaseMap *csm;
-
     if(U_FAILURE(*pErrorCode)) {
         return NULL;
     }
-
-    csm=(UCaseMap *)uprv_malloc(sizeof(UCaseMap));
+    UCaseMap *csm = new UCaseMap(locale, options, pErrorCode);
     if(csm==NULL) {
+        *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
+        return NULL;
+    } else if (U_FAILURE(*pErrorCode)) {
+        delete csm;
         return NULL;
     }
-    uprv_memset(csm, 0, sizeof(UCaseMap));
-
-    csm->csp=ucase_getSingleton();
-    ucasemap_setLocale(csm, locale, pErrorCode);
-    if(U_FAILURE(*pErrorCode)) {
-        uprv_free(csm);
-        return NULL;
-    }
-
-    csm->options=options;
     return csm;
 }
 
 U_CAPI void U_EXPORT2
 ucasemap_close(UCaseMap *csm) {
-    if(csm!=NULL) {
-#if !UCONFIG_NO_BREAK_ITERATION
-        // Do not call ubrk_close() so that we do not depend on all of the BreakIterator code.
-        delete reinterpret_cast<BreakIterator *>(csm->iter);
-#endif
-        uprv_free(csm);
-    }
+    delete csm;
 }
 
 U_CAPI const char * U_EXPORT2
@@ -87,13 +111,16 @@
 
 U_CAPI void U_EXPORT2
 ucasemap_setLocale(UCaseMap *csm, const char *locale, UErrorCode *pErrorCode) {
-    int32_t length;
-
     if(U_FAILURE(*pErrorCode)) {
         return;
     }
+    if (locale != NULL && *locale == 0) {
+        csm->locale[0] = 0;
+        csm->caseLocale = UCASE_LOC_ROOT;
+        return;
+    }
 
-    length=uloc_getName(locale, csm->locale, (int32_t)sizeof(csm->locale), pErrorCode);
+    int32_t length=uloc_getName(locale, csm->locale, (int32_t)sizeof(csm->locale), pErrorCode);
     if(*pErrorCode==U_BUFFER_OVERFLOW_ERROR || length==sizeof(csm->locale)) {
         *pErrorCode=U_ZERO_ERROR;
         /* we only really need the language code for case mappings */
@@ -102,27 +129,32 @@
     if(length==sizeof(csm->locale)) {
         *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
     }
-    csm->locCache=0;
     if(U_SUCCESS(*pErrorCode)) {
-        ucase_getCaseLocale(csm->locale, &csm->locCache);
+        csm->caseLocale=UCASE_LOC_UNKNOWN;
+        csm->caseLocale = ucase_getCaseLocale(csm->locale);
     } else {
         csm->locale[0]=0;
+        csm->caseLocale = UCASE_LOC_ROOT;
     }
 }
 
 U_CAPI void U_EXPORT2
-ucasemap_setOptions(UCaseMap *csm, uint32_t options, UErrorCode * /*pErrorCode*/) {
+ucasemap_setOptions(UCaseMap *csm, uint32_t options, UErrorCode *pErrorCode) {
+    if(U_FAILURE(*pErrorCode)) {
+        return;
+    }
     csm->options=options;
 }
 
 /* UTF-8 string case mappings ----------------------------------------------- */
 
-/* TODO(markus): Move to a new, separate utf8case.c file. */
+/* TODO(markus): Move to a new, separate utf8case.cpp file. */
 
 /* append a full case mapping result, see UCASE_MAX_STRING_LENGTH */
 static inline int32_t
 appendResult(uint8_t *dest, int32_t destIndex, int32_t destCapacity,
-             int32_t result, const UChar *s) {
+             int32_t result, const UChar *s,
+             int32_t cpLength, uint32_t options, icu::Edits *edits) {
     UChar32 c;
     int32_t length;
     UErrorCode errorCode;
@@ -130,86 +162,126 @@
     /* decode the result */
     if(result<0) {
         /* (not) original code point */
+        if(edits!=NULL) {
+            edits->addUnchanged(cpLength);
+            if(options & UCASEMAP_OMIT_UNCHANGED_TEXT) {
+                return destIndex;
+            }
+        }
         c=~result;
-        length=U8_LENGTH(c);
-    } else if(result<=UCASE_MAX_STRING_LENGTH) {
-        c=U_SENTINEL;
-        length=result;
+        if(destIndex<destCapacity && c<=0x7f) {  // ASCII slightly-fastpath
+            dest[destIndex++]=(uint8_t)c;
+            return destIndex;
+        }
+        length=cpLength;
     } else {
-        c=result;
-        length=U8_LENGTH(c);
+        if(result<=UCASE_MAX_STRING_LENGTH) {
+            // string: "result" is the UTF-16 length
+            errorCode=U_ZERO_ERROR;
+            if(destIndex<destCapacity) {
+                u_strToUTF8((char *)(dest+destIndex), destCapacity-destIndex, &length,
+                            s, result, &errorCode);
+            } else {
+                u_strToUTF8(NULL, 0, &length, s, result, &errorCode);
+            }
+            if(U_FAILURE(errorCode) && errorCode != U_BUFFER_OVERFLOW_ERROR) {
+                return -1;
+            }
+            if(length>(INT32_MAX-destIndex)) {
+                return -1;  // integer overflow
+            }
+            if(edits!=NULL) {
+                edits->addReplace(cpLength, length);
+            }
+            // We might have an overflow, but we know the actual length.
+            return destIndex+length;
+        } else if(destIndex<destCapacity && result<=0x7f) {  // ASCII slightly-fastpath
+            dest[destIndex++]=(uint8_t)result;
+            if(edits!=NULL) {
+                edits->addReplace(cpLength, 1);
+            }
+            return destIndex;
+        } else {
+            c=result;
+            length=U8_LENGTH(c);
+            if(edits!=NULL) {
+                edits->addReplace(cpLength, length);
+            }
+        }
     }
+    // c>=0 single code point
     if(length>(INT32_MAX-destIndex)) {
         return -1;  // integer overflow
     }
 
     if(destIndex<destCapacity) {
         /* append the result */
-        if(c>=0) {
-            /* code point */
-            UBool isError=FALSE;
-            U8_APPEND(dest, destIndex, destCapacity, c, isError);
-            if(isError) {
-                /* overflow, nothing written */
-                destIndex+=length;
-            }
-        } else {
-            /* string */
-            int32_t destLength;
-            errorCode=U_ZERO_ERROR;
-            u_strToUTF8(
-                (char *)(dest+destIndex), destCapacity-destIndex, &destLength,
-                s, length,
-                &errorCode);
-            if(U_FAILURE(errorCode) && errorCode != U_BUFFER_OVERFLOW_ERROR) {
-                return -1;
-            }
-            if(destLength>(INT32_MAX-destIndex)) {
-                return -1;  // integer overflow
-            }
-            destIndex+=destLength;
-            /* we might have an overflow, but we know the actual length */
+        UBool isError=FALSE;
+        U8_APPEND(dest, destIndex, destCapacity, c, isError);
+        if(isError) {
+            /* overflow, nothing written */
+            destIndex+=length;
         }
     } else {
         /* preflight */
-        if(c>=0) {
-            destIndex+=length;
-        } else {
-            int32_t destLength;
-            errorCode=U_ZERO_ERROR;
-            u_strToUTF8(
-                NULL, 0, &destLength,
-                s, length,
-                &errorCode);
-            if(U_FAILURE(errorCode) && errorCode != U_BUFFER_OVERFLOW_ERROR) {
-                return -1;
-            }
-            if(destLength>(INT32_MAX-destIndex)) {
-                return -1;  // integer overflow
-            }
-            destIndex+=destLength;
-        }
+        destIndex+=length;
     }
     return destIndex;
 }
 
 static inline int32_t
-appendUChar(uint8_t *dest, int32_t destIndex, int32_t destCapacity, UChar c) {
-    int32_t length=U8_LENGTH(c);
-    if(length>(INT32_MAX-destIndex)) {
+appendASCII(uint8_t *dest, int32_t destIndex, int32_t destCapacity, uint8_t c) {
+    if(destIndex<destCapacity) {
+        dest[destIndex]=c;
+    } else if(destIndex==INT32_MAX) {
         return -1;  // integer overflow
     }
-    int32_t limit=destIndex+length;
+    return destIndex+1;
+}
+
+// See unicode/utf8.h U8_APPEND_UNSAFE().
+static inline uint8_t getTwoByteLead(UChar32 c) { return (uint8_t)((c >> 6) | 0xc0); }
+static inline uint8_t getTwoByteTrail(UChar32 c) { return (uint8_t)((c & 0x3f) | 0x80); }
+
+static inline int32_t
+appendTwoBytes(uint8_t *dest, int32_t destIndex, int32_t destCapacity, UChar32 c) {
+    U_ASSERT(0x370 <= c && c <= 0x3ff);  // 2-byte UTF-8, main Greek block
+    if(2>(INT32_MAX-destIndex)) {
+        return -1;  // integer overflow
+    }
+    int32_t limit=destIndex+2;
     if(limit<=destCapacity) {
-        U8_APPEND_UNSAFE(dest, destIndex, c);
+        dest+=destIndex;
+        dest[0]=getTwoByteLead(c);
+        dest[1]=getTwoByteTrail(c);
     }
     return limit;
 }
 
 static inline int32_t
-appendString(uint8_t *dest, int32_t destIndex, int32_t destCapacity,
-             const uint8_t *s, int32_t length) {
+appendTwoBytes(uint8_t *dest, int32_t destIndex, int32_t destCapacity, const char *s) {
+    if(2>(INT32_MAX-destIndex)) {
+        return -1;  // integer overflow
+    }
+    int32_t limit=destIndex+2;
+    if(limit<=destCapacity) {
+        dest+=destIndex;
+        dest[0]=(uint8_t)s[0];
+        dest[1]=(uint8_t)s[1];
+    }
+    return limit;
+}
+
+static inline int32_t
+appendUnchanged(uint8_t *dest, int32_t destIndex, int32_t destCapacity,
+                const uint8_t *s, int32_t length, uint32_t options, icu::Edits *edits) {
     if(length>0) {
+        if(edits!=NULL) {
+            edits->addUnchanged(length);
+            if(options & UCASEMAP_OMIT_UNCHANGED_TEXT) {
+                return destIndex;
+            }
+        }
         if(length>(INT32_MAX-destIndex)) {
             return -1;  // integer overflow
         }
@@ -258,93 +330,77 @@
  * context [0..srcLength[ into account.
  */
 static int32_t
-_caseMap(const UCaseMap *csm, UCaseMapFull *map,
+_caseMap(int32_t caseLocale, uint32_t options, UCaseMapFull *map,
          uint8_t *dest, int32_t destCapacity,
          const uint8_t *src, UCaseContext *csc,
          int32_t srcStart, int32_t srcLimit,
-         UErrorCode *pErrorCode) {
-    const UChar *s = NULL;
-    UChar32 c, c2 = 0;
-    int32_t srcIndex, destIndex;
-    int32_t locCache;
-
-    locCache=csm->locCache;
-
+         icu::Edits *edits,
+         UErrorCode &errorCode) {
     /* case mapping loop */
-    srcIndex=srcStart;
-    destIndex=0;
+    int32_t srcIndex=srcStart;
+    int32_t destIndex=0;
     while(srcIndex<srcLimit) {
-        csc->cpStart=srcIndex;
+        int32_t cpStart;
+        csc->cpStart=cpStart=srcIndex;
+        UChar32 c;
         U8_NEXT(src, srcIndex, srcLimit, c);
         csc->cpLimit=srcIndex;
         if(c<0) {
             // Malformed UTF-8.
-            destIndex=appendString(dest, destIndex, destCapacity, src+csc->cpStart, srcIndex-csc->cpStart);
+            destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                      src+cpStart, srcIndex-cpStart, options, edits);
             if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                 return 0;
             }
             continue;
         }
-        c=map(csm->csp, c, utf8_caseContextIterator, csc, &s, csm->locale, &locCache);
-        if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0x7f : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0x7f)) {
-            /* fast path version of appendResult() for ASCII results */
-            dest[destIndex++]=(uint8_t)c2;
-        } else {
-            destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
-            }
+        const UChar *s;
+        c=map(c, utf8_caseContextIterator, csc, &s, caseLocale);
+        destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                 srcIndex - cpStart, options, edits);
+        if (destIndex < 0) {
+            errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
         }
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
     return destIndex;
 }
 
 #if !UCONFIG_NO_BREAK_ITERATION
 
 U_CFUNC int32_t U_CALLCONV
-ucasemap_internalUTF8ToTitle(const UCaseMap *csm,
-         uint8_t *dest, int32_t destCapacity,
-         const uint8_t *src, int32_t srcLength,
-         UErrorCode *pErrorCode) {
-    const UChar *s;
-    UChar32 c;
-    int32_t prev, titleStart, titleLimit, idx, destIndex;
-    UBool isFirstIndex;
-
-    if(U_FAILURE(*pErrorCode)) {
+ucasemap_internalUTF8ToTitle(
+        int32_t caseLocale, uint32_t options, BreakIterator *iter,
+        uint8_t *dest, int32_t destCapacity,
+        const uint8_t *src, int32_t srcLength,
+        icu::Edits *edits,
+        UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) {
         return 0;
     }
 
-    // Use the C++ abstract base class to minimize dependencies.
-    // TODO: Change UCaseMap.iter to store a BreakIterator directly.
-    BreakIterator *bi=reinterpret_cast<BreakIterator *>(csm->iter);
-
     /* set up local variables */
-    int32_t locCache=csm->locCache;
     UCaseContext csc=UCASECONTEXT_INITIALIZER;
     csc.p=(void *)src;
     csc.limit=srcLength;
-    destIndex=0;
-    prev=0;
-    isFirstIndex=TRUE;
+    int32_t destIndex=0;
+    int32_t prev=0;
+    UBool isFirstIndex=TRUE;
 
     /* titlecasing loop */
     while(prev<srcLength) {
         /* find next index where to titlecase */
+        int32_t index;
         if(isFirstIndex) {
             isFirstIndex=FALSE;
-            idx=bi->first();
+            index=iter->first();
         } else {
-            idx=bi->next();
+            index=iter->next();
         }
-        if(idx==UBRK_DONE || idx>srcLength) {
-            idx=srcLength;
+        if(index==UBRK_DONE || index>srcLength) {
+            index=srcLength;
         }
 
         /*
@@ -360,29 +416,32 @@
          * b) first case letter (titlecase)         [titleStart..titleLimit[
          * c) subsequent characters (lowercase)                 [titleLimit..index[
          */
-        if(prev<idx) {
+        if(prev<index) {
             /* find and copy uncased characters [prev..titleStart[ */
-            titleStart=titleLimit=prev;
-            U8_NEXT(src, titleLimit, idx, c);
-            if((csm->options&U_TITLECASE_NO_BREAK_ADJUSTMENT)==0 && UCASE_NONE==ucase_getType(csm->csp, c)) {
+            int32_t titleStart=prev;
+            int32_t titleLimit=prev;
+            UChar32 c;
+            U8_NEXT(src, titleLimit, index, c);
+            if((options&U_TITLECASE_NO_BREAK_ADJUSTMENT)==0 && UCASE_NONE==ucase_getType(c)) {
                 /* Adjust the titlecasing index (titleStart) to the next cased character. */
                 for(;;) {
                     titleStart=titleLimit;
-                    if(titleLimit==idx) {
+                    if(titleLimit==index) {
                         /*
                          * only uncased characters in [prev..index[
                          * stop with titleStart==titleLimit==index
                          */
                         break;
                     }
-                    U8_NEXT(src, titleLimit, idx, c);
-                    if(UCASE_NONE!=ucase_getType(csm->csp, c)) {
+                    U8_NEXT(src, titleLimit, index, c);
+                    if(UCASE_NONE!=ucase_getType(c)) {
                         break; /* cased letter at [titleStart..titleLimit[ */
                     }
                 }
-                destIndex=appendString(dest, destIndex, destCapacity, src+prev, titleStart-prev);
+                destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                          src+prev, titleStart-prev, options, edits);
                 if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                     return 0;
                 }
             }
@@ -392,44 +451,69 @@
                 if(c>=0) {
                     csc.cpStart=titleStart;
                     csc.cpLimit=titleLimit;
-                    c=ucase_toFullTitle(csm->csp, c, utf8_caseContextIterator, &csc, &s, csm->locale, &locCache);
-                    destIndex=appendResult(dest, destIndex, destCapacity, c, s);
+                    const UChar *s;
+                    c=ucase_toFullTitle(c, utf8_caseContextIterator, &csc, &s, caseLocale);
+                    destIndex=appendResult(dest, destIndex, destCapacity, c, s,
+                                           titleLimit-titleStart, options, edits);
                 } else {
                     // Malformed UTF-8.
-                    destIndex=appendString(dest, destIndex, destCapacity, src+titleStart, titleLimit-titleStart);
+                    destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                              src+titleStart, titleLimit-titleStart, options, edits);
                 }
                 if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                     return 0;
                 }
 
                 /* Special case Dutch IJ titlecasing */
-                if (titleStart+1 < idx &&
-                        ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_DUTCH &&
-                        (src[titleStart] == 0x0049 || src[titleStart] == 0x0069) &&
-                        (src[titleStart+1] == 0x004A || src[titleStart+1] == 0x006A)) {
-                    destIndex=appendUChar(dest, destIndex, destCapacity, 0x004A);
-                    titleLimit++;
+                if (titleStart+1 < index &&
+                        caseLocale == UCASE_LOC_DUTCH &&
+                        (src[titleStart] == 0x0049 || src[titleStart] == 0x0069)) {
+                    if (src[titleStart+1] == 0x006A) {
+                        destIndex=appendASCII(dest, destIndex, destCapacity, 0x004A);
+                        if(destIndex<0) {
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            return 0;
+                        }
+                        if(edits!=NULL) {
+                            edits->addReplace(1, 1);
+                        }
+                        titleLimit++;
+                    } else if (src[titleStart+1] == 0x004A) {
+                        // Keep the capital J from getting lowercased.
+                        destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                                  src+titleStart+1, 1, options, edits);
+                        if(destIndex<0) {
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            return 0;
+                        }
+                        titleLimit++;
+                    }
                 }
+
                 /* lowercase [titleLimit..index[ */
-                if(titleLimit<idx) {
-                    if((csm->options&U_TITLECASE_NO_LOWERCASE)==0) {
+                if(titleLimit<index) {
+                    if((options&U_TITLECASE_NO_LOWERCASE)==0) {
                         /* Normal operation: Lowercase the rest of the word. */
                         destIndex+=
                             _caseMap(
-                                csm, ucase_toFullLower,
+                                caseLocale, options, ucase_toFullLower,
                                 dest+destIndex, destCapacity-destIndex,
                                 src, &csc,
-                                titleLimit, idx,
-                                pErrorCode);
-                        if(U_FAILURE(*pErrorCode)) {
+                                titleLimit, index,
+                                edits, errorCode);
+                        if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+                            errorCode=U_ZERO_ERROR;
+                        }
+                        if(U_FAILURE(errorCode)) {
                             return destIndex;
                         }
                     } else {
                         /* Optionally just copy the rest of the word unchanged. */
-                        destIndex=appendString(dest, destIndex, destCapacity, src+titleLimit, idx-titleLimit);
+                        destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                                  src+titleLimit, index-titleLimit, options, edits);
                         if(destIndex<0) {
-                            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                             return 0;
                         }
                     }
@@ -437,13 +521,10 @@
             }
         }
 
-        prev=idx;
+        prev=index;
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
-    return destIndex;
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 #endif
@@ -451,11 +532,11 @@
 U_NAMESPACE_BEGIN
 namespace GreekUpper {
 
-UBool isFollowedByCasedLetter(const UCaseProps *csp, const uint8_t *s, int32_t i, int32_t length) {
+UBool isFollowedByCasedLetter(const uint8_t *s, int32_t i, int32_t length) {
     while (i < length) {
         UChar32 c;
         U8_NEXT(s, i, length, c);
-        int32_t type = ucase_getTypeOrIgnorable(csp, c);
+        int32_t type = ucase_getTypeOrIgnorable(c);
         if ((type & UCASE_IGNORABLE) != 0) {
             // Case-ignorable, continue with the loop.
         } else if (type != UCASE_NONE) {
@@ -468,11 +549,11 @@
 }
 
 // Keep this consistent with the UTF-16 version in ustrcase.cpp and the Java version in CaseMap.java.
-int32_t toUpper(const UCaseMap *csm,
+int32_t toUpper(uint32_t options,
                 uint8_t *dest, int32_t destCapacity,
                 const uint8_t *src, int32_t srcLength,
-                UErrorCode *pErrorCode) {
-    int32_t locCache = UCASE_LOC_GREEK;
+                Edits *edits,
+                UErrorCode &errorCode) {
     int32_t destIndex=0;
     uint32_t state = 0;
     for (int32_t i = 0; i < srcLength;) {
@@ -480,7 +561,7 @@
         UChar32 c;
         U8_NEXT(src, nextIndex, srcLength, c);
         uint32_t nextState = 0;
-        int32_t type = ucase_getTypeOrIgnorable(csm->csp, c);
+        int32_t type = ucase_getTypeOrIgnorable(c);
         if ((type & UCASE_IGNORABLE) != 0) {
             // c is case-ignorable
             nextState |= (state & AFTER_CASED);
@@ -530,7 +611,7 @@
                     (data & HAS_ACCENT) != 0 &&
                     numYpogegrammeni == 0 &&
                     (state & AFTER_CASED) == 0 &&
-                    !isFollowedByCasedLetter(csm->csp, src, nextIndex, srcLength)) {
+                    !isFollowedByCasedLetter(src, nextIndex, srcLength)) {
                 // Keep disjunctive "or" with (only) a tonos.
                 // We use the same "word boundary" conditions as for the Final_Sigma test.
                 if (i == nextIndex) {
@@ -548,40 +629,75 @@
                     data &= ~HAS_EITHER_DIALYTIKA;
                 }
             }
-            destIndex=appendUChar(dest, destIndex, destCapacity, (UChar)upper);
-            if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x308);  // restore or add a dialytika
+
+            UBool change = TRUE;
+            if (edits != NULL) {
+                // Find out first whether we are changing the text.
+                U_ASSERT(0x370 <= upper && upper <= 0x3ff);  // 2-byte UTF-8, main Greek block
+                change = (i + 2) > nextIndex ||
+                        src[i] != getTwoByteLead(upper) || src[i + 1] != getTwoByteTrail(upper) ||
+                        numYpogegrammeni > 0;
+                int32_t i2 = i + 2;
+                if ((data & HAS_EITHER_DIALYTIKA) != 0) {
+                    change |= (i2 + 2) > nextIndex ||
+                            src[i2] != (uint8_t)u8"\u0308"[0] ||
+                            src[i2 + 1] != (uint8_t)u8"\u0308"[1];
+                    i2 += 2;
+                }
+                if (addTonos) {
+                    change |= (i2 + 2) > nextIndex ||
+                            src[i2] != (uint8_t)u8"\u0301"[0] ||
+                            src[i2 + 1] != (uint8_t)u8"\u0301"[1];
+                    i2 += 2;
+                }
+                int32_t oldLength = nextIndex - i;
+                int32_t newLength = (i2 - i) + numYpogegrammeni * 2;  // 2 bytes per U+0399
+                change |= oldLength != newLength;
+                if (change) {
+                    if (edits != NULL) {
+                        edits->addReplace(oldLength, newLength);
+                    }
+                } else {
+                    if (edits != NULL) {
+                        edits->addUnchanged(oldLength);
+                    }
+                    // Write unchanged text?
+                    change = (options & UCASEMAP_OMIT_UNCHANGED_TEXT) == 0;
+                }
             }
-            if (destIndex >= 0 && addTonos) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x301);
-            }
-            while (destIndex >= 0 && numYpogegrammeni > 0) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x399);
-                --numYpogegrammeni;
-            }
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
-            }
-        } else if(c>=0) {
-            const UChar *s;
-            UChar32 c2 = 0;
-            c=ucase_toFullUpper(csm->csp, c, NULL, NULL, &s, csm->locale, &locCache);
-            if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0x7f : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0x7f)) {
-                /* fast path version of appendResult() for ASCII results */
-                dest[destIndex++]=(uint8_t)c2;
-            } else {
-                destIndex=appendResult(dest, destIndex, destCapacity, c, s);
+
+            if (change) {
+                destIndex=appendTwoBytes(dest, destIndex, destCapacity, upper);
+                if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) {
+                    destIndex=appendTwoBytes(dest, destIndex, destCapacity, u8"\u0308");  // restore or add a dialytika
+                }
+                if (destIndex >= 0 && addTonos) {
+                    destIndex=appendTwoBytes(dest, destIndex, destCapacity, u8"\u0301");
+                }
+                while (destIndex >= 0 && numYpogegrammeni > 0) {
+                    destIndex=appendTwoBytes(dest, destIndex, destCapacity, u8"\u0399");
+                    --numYpogegrammeni;
+                }
                 if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                     return 0;
                 }
             }
+        } else if(c>=0) {
+            const UChar *s;
+            c=ucase_toFullUpper(c, NULL, NULL, &s, UCASE_LOC_GREEK);
+            destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                     nextIndex - i, options, edits);
+            if (destIndex < 0) {
+                errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+                return 0;
+            }
         } else {
             // Malformed UTF-8.
-            destIndex=appendString(dest, destIndex, destCapacity, src+i, nextIndex-i);
+            destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                      src+i, nextIndex-i, options, edits);
             if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                 return 0;
             }
         }
@@ -589,9 +705,6 @@
         state = nextState;
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
     return destIndex;
 }
 
@@ -599,102 +712,92 @@
 U_NAMESPACE_END
 
 static int32_t U_CALLCONV
-ucasemap_internalUTF8ToLower(const UCaseMap *csm,
+ucasemap_internalUTF8ToLower(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
                              uint8_t *dest, int32_t destCapacity,
                              const uint8_t *src, int32_t srcLength,
-                             UErrorCode *pErrorCode) {
+                             icu::Edits *edits,
+                             UErrorCode &errorCode) {
     UCaseContext csc=UCASECONTEXT_INITIALIZER;
     csc.p=(void *)src;
     csc.limit=srcLength;
-    return _caseMap(
-        csm, ucase_toFullLower,
+    int32_t destIndex = _caseMap(
+        caseLocale, options, ucase_toFullLower,
         dest, destCapacity,
         src, &csc, 0, srcLength,
-        pErrorCode);
+        edits, errorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 static int32_t U_CALLCONV
-ucasemap_internalUTF8ToUpper(const UCaseMap *csm,
+ucasemap_internalUTF8ToUpper(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
                              uint8_t *dest, int32_t destCapacity,
                              const uint8_t *src, int32_t srcLength,
-                             UErrorCode *pErrorCode) {
-    int32_t locCache = csm->locCache;
-    if (ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_GREEK) {
-        return GreekUpper::toUpper(csm, dest, destCapacity, src, srcLength, pErrorCode);
+                             icu::Edits *edits,
+                             UErrorCode &errorCode) {
+    int32_t destIndex;
+    if (caseLocale == UCASE_LOC_GREEK) {
+        destIndex = GreekUpper::toUpper(options, dest, destCapacity,
+                                        src, srcLength, edits, errorCode);
+    } else {
+        UCaseContext csc=UCASECONTEXT_INITIALIZER;
+        csc.p=(void *)src;
+        csc.limit=srcLength;
+        destIndex = _caseMap(
+            caseLocale, options, ucase_toFullUpper,
+            dest, destCapacity,
+            src, &csc, 0, srcLength,
+            edits, errorCode);
     }
-    UCaseContext csc=UCASECONTEXT_INITIALIZER;
-    csc.p=(void *)src;
-    csc.limit=srcLength;
-    return _caseMap(
-        csm, ucase_toFullUpper,
-        dest, destCapacity,
-        src, &csc, 0, srcLength,
-        pErrorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
-static int32_t
-utf8_foldCase(const UCaseProps *csp,
-              uint8_t *dest, int32_t destCapacity,
-              const uint8_t *src, int32_t srcLength,
-              uint32_t options,
-              UErrorCode *pErrorCode) {
-    int32_t srcIndex, destIndex;
-
-    const UChar *s;
-    UChar32 c, c2;
-    int32_t start;
-
+static int32_t U_CALLCONV
+ucasemap_internalUTF8Fold(int32_t /* caseLocale */, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
+                          uint8_t *dest, int32_t destCapacity,
+                          const uint8_t *src, int32_t srcLength,
+                          icu::Edits *edits,
+                          UErrorCode &errorCode) {
     /* case mapping loop */
-    srcIndex=destIndex=0;
-    while(srcIndex<srcLength) {
-        start=srcIndex;
+    int32_t srcIndex = 0;
+    int32_t destIndex = 0;
+    while (srcIndex < srcLength) {
+        int32_t cpStart = srcIndex;
+        UChar32 c;
         U8_NEXT(src, srcIndex, srcLength, c);
         if(c<0) {
             // Malformed UTF-8.
-            destIndex=appendString(dest, destIndex, destCapacity, src+start, srcIndex-start);
+            destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                      src+cpStart, srcIndex-cpStart, options, edits);
             if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                 return 0;
             }
             continue;
         }
-        c=ucase_toFullFolding(csp, c, &s, options);
-        if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0x7f : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0x7f)) {
-            /* fast path version of appendResult() for ASCII results */
-            dest[destIndex++]=(uint8_t)c2;
-        } else {
-            destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
-            }
+        const UChar *s;
+        c = ucase_toFullFolding(c, &s, options);
+        destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                 srcIndex - cpStart, options, edits);
+        if (destIndex < 0) {
+            errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
         }
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
-    return destIndex;
-}
-
-static int32_t U_CALLCONV
-ucasemap_internalUTF8Fold(const UCaseMap *csm,
-                          uint8_t *dest, int32_t destCapacity,
-                          const uint8_t *src, int32_t srcLength,
-                          UErrorCode *pErrorCode) {
-    return utf8_foldCase(csm->csp, dest, destCapacity, src, srcLength, csm->options, pErrorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 U_CFUNC int32_t
-ucasemap_mapUTF8(const UCaseMap *csm,
+ucasemap_mapUTF8(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
                  uint8_t *dest, int32_t destCapacity,
                  const uint8_t *src, int32_t srcLength,
                  UTF8CaseMapper *stringCaseMapper,
-                 UErrorCode *pErrorCode) {
+                 icu::Edits *edits,
+                 UErrorCode &errorCode) {
     int32_t destLength;
 
     /* check argument values */
-    if(U_FAILURE(*pErrorCode)) {
+    if(U_FAILURE(errorCode)) {
         return 0;
     }
     if( destCapacity<0 ||
@@ -702,7 +805,7 @@
         src==NULL ||
         srcLength<-1
     ) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
@@ -716,12 +819,16 @@
         ((src>=dest && src<(dest+destCapacity)) ||
          (dest>=src && dest<(src+srcLength)))
     ) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
-    destLength=stringCaseMapper(csm, dest, destCapacity, src, srcLength, pErrorCode);
-    return u_terminateChars((char *)dest, destCapacity, destLength, pErrorCode);
+    if(edits!=NULL) {
+        edits->reset();
+    }
+    destLength=stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR
+                                dest, destCapacity, src, srcLength, edits, errorCode);
+    return u_terminateChars((char *)dest, destCapacity, destLength, &errorCode);
 }
 
 /* public API functions */
@@ -731,10 +838,11 @@
                      char *dest, int32_t destCapacity,
                      const char *src, int32_t srcLength,
                      UErrorCode *pErrorCode) {
-    return ucasemap_mapUTF8(csm,
-                   (uint8_t *)dest, destCapacity,
-                   (const uint8_t *)src, srcLength,
-                   ucasemap_internalUTF8ToLower, pErrorCode);
+    return ucasemap_mapUTF8(
+        csm->caseLocale, csm->options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8ToLower, NULL, *pErrorCode);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -742,10 +850,11 @@
                      char *dest, int32_t destCapacity,
                      const char *src, int32_t srcLength,
                      UErrorCode *pErrorCode) {
-    return ucasemap_mapUTF8(csm,
-                   (uint8_t *)dest, destCapacity,
-                   (const uint8_t *)src, srcLength,
-                   ucasemap_internalUTF8ToUpper, pErrorCode);
+    return ucasemap_mapUTF8(
+        csm->caseLocale, csm->options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8ToUpper, NULL, *pErrorCode);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -753,8 +862,49 @@
                       char *dest, int32_t destCapacity,
                       const char *src, int32_t srcLength,
                       UErrorCode *pErrorCode) {
-    return ucasemap_mapUTF8(csm,
-                   (uint8_t *)dest, destCapacity,
-                   (const uint8_t *)src, srcLength,
-                   ucasemap_internalUTF8Fold, pErrorCode);
+    return ucasemap_mapUTF8(
+        UCASE_LOC_ROOT, csm->options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8Fold, NULL, *pErrorCode);
 }
+
+U_NAMESPACE_BEGIN
+
+int32_t CaseMap::utf8ToLower(
+        const char *locale, uint32_t options,
+        const char *src, int32_t srcLength,
+        char *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ucasemap_mapUTF8(
+        ustrcase_getCaseLocale(locale), options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8ToLower, edits, errorCode);
+}
+
+int32_t CaseMap::utf8ToUpper(
+        const char *locale, uint32_t options,
+        const char *src, int32_t srcLength,
+        char *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ucasemap_mapUTF8(
+        ustrcase_getCaseLocale(locale), options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8ToUpper, edits, errorCode);
+}
+
+int32_t CaseMap::utf8Fold(
+        uint32_t options,
+        const char *src, int32_t srcLength,
+        char *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ucasemap_mapUTF8(
+        UCASE_LOC_ROOT, options, UCASEMAP_BREAK_ITERATOR_NULL
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8Fold, edits, errorCode);
+}
+
+U_NAMESPACE_END
diff --git a/source/common/ucasemap_imp.h b/source/common/ucasemap_imp.h
new file mode 100644
index 0000000..7920422
--- /dev/null
+++ b/source/common/ucasemap_imp.h
@@ -0,0 +1,239 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucasemap_imp.h
+// created: 2017feb08 Markus W. Scherer
+
+#ifndef __UCASEMAP_IMP_H__
+#define __UCASEMAP_IMP_H__
+
+#include "unicode/utypes.h"
+#include "unicode/ucasemap.h"
+#include "ucase.h"
+
+#ifndef U_COMPARE_IGNORE_CASE
+/* see also unorm.h */
+/**
+ * Option bit for unorm_compare:
+ * Perform case-insensitive comparison.
+ */
+#define U_COMPARE_IGNORE_CASE       0x10000
+#endif
+
+/**
+ * Internal API, used by u_strcasecmp() etc.
+ * Compare strings case-insensitively,
+ * in code point order or code unit order.
+ */
+U_CFUNC int32_t
+u_strcmpFold(const UChar *s1, int32_t length1,
+             const UChar *s2, int32_t length2,
+             uint32_t options,
+             UErrorCode *pErrorCode);
+
+/**
+ * Interanl API, used for detecting length of
+ * shared prefix case-insensitively.
+ * @param s1            input string 1
+ * @param length1       length of string 1, or -1 (NULL terminated)
+ * @param s2            input string 2
+ * @param length2       length of string 2, or -1 (NULL terminated)
+ * @param options       compare options
+ * @param matchLen1     (output) length of partial prefix match in s1
+ * @param matchLen2     (output) length of partial prefix match in s2
+ * @param pErrorCode    receives error status
+ */
+U_CAPI void
+u_caseInsensitivePrefixMatch(const UChar *s1, int32_t length1,
+                             const UChar *s2, int32_t length2,
+                             uint32_t options,
+                             int32_t *matchLen1, int32_t *matchLen2,
+                             UErrorCode *pErrorCode);
+
+/**
+ * Are the Unicode properties loaded?
+ * This must be used before internal functions are called that do
+ * not perform this check.
+ * Generate a debug assertion failure if data is not loaded.
+ */
+U_CFUNC UBool
+uprv_haveProperties(UErrorCode *pErrorCode);
+
+#ifdef __cplusplus
+
+#include "unicode/unistr.h"  // for UStringCaseMapper
+
+/*
+ * Internal string casing functions implementing
+ * ustring.h/ustrcase.cpp and UnicodeString case mapping functions.
+ */
+
+struct UCaseMap : public icu::UMemory {
+    /** Implements most of ucasemap_open(). */
+    UCaseMap(const char *localeID, uint32_t opts, UErrorCode *pErrorCode);
+    ~UCaseMap();
+
+#if !UCONFIG_NO_BREAK_ITERATION
+    icu::BreakIterator *iter;  /* We adopt the iterator, so we own it. */
+#endif
+    char locale[32];
+    int32_t caseLocale;
+    uint32_t options;
+};
+
+#if UCONFIG_NO_BREAK_ITERATION
+#   define UCASEMAP_BREAK_ITERATOR_PARAM
+#   define UCASEMAP_BREAK_ITERATOR_UNUSED
+#   define UCASEMAP_BREAK_ITERATOR
+#   define UCASEMAP_BREAK_ITERATOR_NULL
+#else
+#   define UCASEMAP_BREAK_ITERATOR_PARAM icu::BreakIterator *iter,
+#   define UCASEMAP_BREAK_ITERATOR_UNUSED icu::BreakIterator *,
+#   define UCASEMAP_BREAK_ITERATOR iter,
+#   define UCASEMAP_BREAK_ITERATOR_NULL NULL,
+#endif
+
+U_CFUNC int32_t
+ustrcase_getCaseLocale(const char *locale);
+
+// TODO: swap src / dest if approved for new public api
+/** Implements UStringCaseMapper. */
+U_CFUNC int32_t U_CALLCONV
+ustrcase_internalToLower(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                         UChar *dest, int32_t destCapacity,
+                         const UChar *src, int32_t srcLength,
+                         icu::Edits *edits,
+                         UErrorCode &errorCode);
+
+/** Implements UStringCaseMapper. */
+U_CFUNC int32_t U_CALLCONV
+ustrcase_internalToUpper(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                         UChar *dest, int32_t destCapacity,
+                         const UChar *src, int32_t srcLength,
+                         icu::Edits *edits,
+                         UErrorCode &errorCode);
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+/** Implements UStringCaseMapper. */
+U_CFUNC int32_t U_CALLCONV
+ustrcase_internalToTitle(int32_t caseLocale, uint32_t options,
+                         icu::BreakIterator *iter,
+                         UChar *dest, int32_t destCapacity,
+                         const UChar *src, int32_t srcLength,
+                         icu::Edits *edits,
+                         UErrorCode &errorCode);
+
+#endif
+
+/** Implements UStringCaseMapper. */
+U_CFUNC int32_t U_CALLCONV
+ustrcase_internalFold(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                      UChar *dest, int32_t destCapacity,
+                      const UChar *src, int32_t srcLength,
+                      icu::Edits *edits,
+                      UErrorCode &errorCode);
+
+/**
+ * Common string case mapping implementation for ucasemap_toXyz() and UnicodeString::toXyz().
+ * Implements argument checking.
+ */
+U_CFUNC int32_t
+ustrcase_map(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+             UChar *dest, int32_t destCapacity,
+             const UChar *src, int32_t srcLength,
+             UStringCaseMapper *stringCaseMapper,
+             icu::Edits *edits,
+             UErrorCode &errorCode);
+
+/**
+ * Common string case mapping implementation for old-fashioned u_strToXyz() functions
+ * that allow the source string to overlap the destination buffer.
+ * Implements argument checking and internally works with an intermediate buffer if necessary.
+ */
+U_CFUNC int32_t
+ustrcase_mapWithOverlap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                        UChar *dest, int32_t destCapacity,
+                        const UChar *src, int32_t srcLength,
+                        UStringCaseMapper *stringCaseMapper,
+                        UErrorCode &errorCode);
+
+/**
+ * UTF-8 string case mapping function type, used by ucasemap_mapUTF8().
+ * UTF-8 version of UStringCaseMapper.
+ * All error checking must be done.
+ * The UCaseMap must be fully initialized, with locale and/or iter set as needed.
+ * src and dest must not overlap.
+ */
+typedef int32_t U_CALLCONV
+UTF8CaseMapper(int32_t caseLocale, uint32_t options,
+#if !UCONFIG_NO_BREAK_ITERATION
+               icu::BreakIterator *iter,
+#endif
+               uint8_t *dest, int32_t destCapacity,
+               const uint8_t *src, int32_t srcLength,
+               icu::Edits *edits,
+               UErrorCode &errorCode);
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+/** Implements UTF8CaseMapper. */
+U_CFUNC int32_t U_CALLCONV
+ucasemap_internalUTF8ToTitle(int32_t caseLocale, uint32_t options,
+        icu::BreakIterator *iter,
+        uint8_t *dest, int32_t destCapacity,
+        const uint8_t *src, int32_t srcLength,
+        icu::Edits *edits,
+        UErrorCode &errorCode);
+
+#endif
+
+/**
+ * Implements argument checking and buffer handling
+ * for UTF-8 string case mapping as a common function.
+ */
+U_CFUNC int32_t
+ucasemap_mapUTF8(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                 uint8_t *dest, int32_t destCapacity,
+                 const uint8_t *src, int32_t srcLength,
+                 UTF8CaseMapper *stringCaseMapper,
+                 icu::Edits *edits,
+                 UErrorCode &errorCode);
+
+U_NAMESPACE_BEGIN
+namespace GreekUpper {
+
+// Data bits.
+static const uint32_t UPPER_MASK = 0x3ff;
+static const uint32_t HAS_VOWEL = 0x1000;
+static const uint32_t HAS_YPOGEGRAMMENI = 0x2000;
+static const uint32_t HAS_ACCENT = 0x4000;
+static const uint32_t HAS_DIALYTIKA = 0x8000;
+// Further bits during data building and processing, not stored in the data map.
+static const uint32_t HAS_COMBINING_DIALYTIKA = 0x10000;
+static const uint32_t HAS_OTHER_GREEK_DIACRITIC = 0x20000;
+
+static const uint32_t HAS_VOWEL_AND_ACCENT = HAS_VOWEL | HAS_ACCENT;
+static const uint32_t HAS_VOWEL_AND_ACCENT_AND_DIALYTIKA =
+        HAS_VOWEL_AND_ACCENT | HAS_DIALYTIKA;
+static const uint32_t HAS_EITHER_DIALYTIKA = HAS_DIALYTIKA | HAS_COMBINING_DIALYTIKA;
+
+// State bits.
+static const uint32_t AFTER_CASED = 1;
+static const uint32_t AFTER_VOWEL_WITH_ACCENT = 2;
+
+uint32_t getLetterData(UChar32 c);
+
+/**
+ * Returns a non-zero value for each of the Greek combining diacritics
+ * listed in The Unicode Standard, version 8, chapter 7.2 Greek,
+ * plus some perispomeni look-alikes.
+ */
+uint32_t getDiacriticData(UChar32 c);
+
+}  // namespace GreekUpper
+U_NAMESPACE_END
+
+#endif  // __cplusplus
+
+#endif  // __UCASEMAP_IMP_H__
diff --git a/source/common/ucasemap_titlecase_brkiter.cpp b/source/common/ucasemap_titlecase_brkiter.cpp
index ab61e21..a253850 100644
--- a/source/common/ucasemap_titlecase_brkiter.cpp
+++ b/source/common/ucasemap_titlecase_brkiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucasemap_titlecase_brkiter.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -23,23 +23,59 @@
 
 #include "unicode/brkiter.h"
 #include "unicode/ubrk.h"
+#include "unicode/casemap.h"
 #include "unicode/ucasemap.h"
 #include "cmemory.h"
 #include "ucase.h"
-#include "ustr_imp.h"
+#include "ucasemap_imp.h"
+
+U_NAMESPACE_BEGIN
+
+int32_t CaseMap::utf8ToTitle(
+        const char *locale, uint32_t options, BreakIterator *iter,
+        const char *src, int32_t srcLength,
+        char *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return 0;
+    }
+    UText utext=UTEXT_INITIALIZER;
+    utext_openUTF8(&utext, src, srcLength, &errorCode);
+    LocalPointer<BreakIterator> ownedIter;
+    if(iter==NULL) {
+        iter=BreakIterator::createWordInstance(Locale(locale), errorCode);
+        ownedIter.adoptInstead(iter);
+    }
+    if(U_FAILURE(errorCode)) {
+        utext_close(&utext);
+        return 0;
+    }
+    iter->setText(&utext, errorCode);
+    int32_t length=ucasemap_mapUTF8(
+        ustrcase_getCaseLocale(locale), options, iter,
+        (uint8_t *)dest, destCapacity,
+        (const uint8_t *)src, srcLength,
+        ucasemap_internalUTF8ToTitle, edits, errorCode);
+    utext_close(&utext);
+    return length;
+}
+
+U_NAMESPACE_END
 
 U_NAMESPACE_USE
 
 U_CAPI const UBreakIterator * U_EXPORT2
 ucasemap_getBreakIterator(const UCaseMap *csm) {
-    return csm->iter;
+    return reinterpret_cast<UBreakIterator *>(csm->iter);
 }
 
 U_CAPI void U_EXPORT2
-ucasemap_setBreakIterator(UCaseMap *csm, UBreakIterator *iterToAdopt, UErrorCode * /*pErrorCode*/) {
-    // Do not call ubrk_close() so that we do not depend on all of the BreakIterator code.
-    delete reinterpret_cast<BreakIterator *>(csm->iter);
-    csm->iter=iterToAdopt;
+ucasemap_setBreakIterator(UCaseMap *csm, UBreakIterator *iterToAdopt, UErrorCode *pErrorCode) {
+    if(U_FAILURE(*pErrorCode)) {
+        return;
+    }
+    delete csm->iter;
+    csm->iter=reinterpret_cast<BreakIterator *>(iterToAdopt);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -47,21 +83,23 @@
                      char *dest, int32_t destCapacity,
                      const char *src, int32_t srcLength,
                      UErrorCode *pErrorCode) {
-    UText utext=UTEXT_INITIALIZER;
-    utext_openUTF8(&utext, (const char *)src, srcLength, pErrorCode);
-    if(U_FAILURE(*pErrorCode)) {
+    if (U_FAILURE(*pErrorCode)) {
         return 0;
     }
+    UText utext=UTEXT_INITIALIZER;
+    utext_openUTF8(&utext, (const char *)src, srcLength, pErrorCode);
     if(csm->iter==NULL) {
-        csm->iter=ubrk_open(UBRK_WORD, csm->locale,
-                            NULL, 0,
-                            pErrorCode);
+        csm->iter=BreakIterator::createWordInstance(Locale(csm->locale), *pErrorCode);
     }
-    ubrk_setUText(csm->iter, &utext, pErrorCode);
-    int32_t length=ucasemap_mapUTF8(csm,
-                   (uint8_t *)dest, destCapacity,
-                   (const uint8_t *)src, srcLength,
-                   ucasemap_internalUTF8ToTitle, pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    csm->iter->setText(&utext, *pErrorCode);
+    int32_t length=ucasemap_mapUTF8(
+            csm->caseLocale, csm->options, csm->iter,
+            (uint8_t *)dest, destCapacity,
+            (const uint8_t *)src, srcLength,
+            ucasemap_internalUTF8ToTitle, NULL, *pErrorCode);
     utext_close(&utext);
     return length;
 }
diff --git a/source/common/ucat.c b/source/common/ucat.cpp
similarity index 96%
rename from source/common/ucat.c
rename to source/common/ucat.cpp
index cfd8b53..dac56ee 100644
--- a/source/common/ucat.c
+++ b/source/common/ucat.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uchar.c b/source/common/uchar.cpp
similarity index 99%
rename from source/common/uchar.c
rename to source/common/uchar.cpp
index 496df86..6d96f34 100644
--- a/source/common/uchar.c
+++ b/source/common/uchar.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -68,6 +68,7 @@
 
 static uint32_t U_CALLCONV
 _enumTypeValue(const void *context, uint32_t value) {
+    (void)context;
     return GET_CATEGORY(value);
 }
 
@@ -654,6 +655,8 @@
     /* add the start code point to the USet */
     const USetAdder *sa=(const USetAdder *)context;
     sa->add(sa->set, start);
+    (void)end;
+    (void)value;
     return TRUE;
 }
 
diff --git a/source/common/uchar_props_data.h b/source/common/uchar_props_data.h
index 79ba55e..fd74402 100644
--- a/source/common/uchar_props_data.h
+++ b/source/common/uchar_props_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 // Copyright (C) 1999-2016, International Business Machines
@@ -1330,2199 +1330,2241 @@
     NULL, 0, FALSE, FALSE, 0, NULL
 };
 
-static const uint16_t propsVectorsTrie_index[28540]={
-0x4bb,0x4c3,0x4cb,0x4d3,0x4eb,0x4f3,0x4fb,0x503,0x50b,0x513,0x51b,0x523,0x52b,0x533,0x53b,0x543,
-0x54a,0x552,0x55a,0x562,0x565,0x56d,0x575,0x57d,0x585,0x58d,0x595,0x59d,0x5a5,0x5ad,0x5b5,0x5bd,
-0x5c5,0x5cd,0x5d4,0x5dc,0x5e4,0x5ec,0x5f4,0x5fc,0x604,0x60c,0x611,0x619,0x620,0x628,0x630,0x638,
-0x640,0x648,0x650,0x658,0x65f,0x667,0x66f,0x677,0x67f,0x687,0x68f,0x697,0x69f,0x6a7,0x6af,0x6b7,
-0x18ce,0xd31,0xe19,0x4db,0x4db,0xe89,0xe91,0x1a56,0x11bd,0x11d5,0x11c5,0x11cd,0x75c,0x762,0x76a,0x772,
-0x77a,0x780,0x788,0x790,0x798,0x79e,0x7a6,0x7ae,0x7b6,0x7bc,0x7c4,0x7cc,0x7d4,0x7dc,0x7e4,0x7eb,
-0x7f3,0x7f9,0x801,0x809,0x811,0x817,0x81f,0x827,0x82f,0x835,0x83d,0x845,0x84d,0x854,0x85c,0x864,
-0x86c,0x870,0x878,0x87f,0x887,0x88f,0x897,0x89f,0x14dd,0x14e5,0x8a7,0x8af,0x8b7,0x8bf,0x8c7,0x8ce,
-0x1543,0x1533,0x153b,0x1811,0x1819,0x11e5,0x8d6,0x11dd,0x1427,0x1427,0x1429,0x11f9,0x11fa,0x11ed,0x11ef,0x11f1,
-0x154b,0x154d,0x8de,0x154d,0x8e6,0x8eb,0x8f3,0x1552,0x8f9,0x154d,0x8ff,0x907,0xc09,0x155a,0x155a,0x90f,
-0x156a,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,0x156b,
-0x156b,0x156b,0x156b,0x1562,0x917,0x1573,0x1573,0x91f,0xb16,0xb1e,0xb26,0xb2e,0x1583,0x157b,0x927,0x92f,
-0x937,0x158d,0x1595,0x93f,0x158b,0x947,0x18d6,0xd39,0xb36,0xb3e,0xb46,0xb4b,0x1787,0xc3c,0xc43,0x16ef,
-0xbd9,0x18de,0xd41,0xd49,0xd51,0xd59,0xf41,0xf41,0x17d7,0x17dc,0xc75,0xc7d,0x184d,0x1855,0x197f,0xe21,
-0x185d,0xcc5,0xccd,0x1865,0x6bf,0x4db,0xf21,0xd61,0x170f,0x16f7,0x1707,0x16ff,0x179f,0x1797,0x175f,0xbe9,
-0x1202,0x1202,0x1202,0x1202,0x1205,0x1202,0x1202,0x120d,0x94f,0x1215,0x953,0x95b,0x1215,0x963,0x96b,0x973,
-0x1225,0x121d,0x122d,0x97b,0x983,0x98b,0x993,0x99b,0x1235,0x123d,0x1245,0x124d,0x9a3,0x1255,0x125c,0x1264,
-0x126c,0x1274,0x127c,0x1284,0x128c,0x1293,0x129b,0x12a3,0x12ab,0x12b3,0x12b6,0x12b8,0x159d,0x1682,0x1688,0x9ab,
-0x12c0,0x9b3,0x9bb,0x13da,0x13df,0x13e2,0x13ea,0x12c8,0x13f2,0x13f2,0x12d8,0x12d0,0x12e0,0x12e8,0x12f0,0x12f8,
-0x1300,0x1308,0x1310,0x1318,0x1690,0x16e7,0x1821,0x195f,0x1328,0x132f,0x1337,0x133f,0x1320,0x1347,0x1698,0x169f,
-0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x16a7,0x16aa,0x16a7,0x16a7,0x16b2,0x16b9,0x16bb,0x16c2,
-0x16ca,0x16ce,0x16ce,0x16d1,0x16ce,0x16ce,0x16d7,0x16ce,0x1717,0x17cf,0x1829,0xb53,0xb59,0xb5f,0xb67,0xb6c,
-0x1777,0xc19,0xc1d,0x17e4,0x1767,0x1767,0x1767,0xbf1,0x176f,0xc11,0x17b7,0xc65,0xbf9,0xc01,0xc01,0x186d,
-0x17a7,0x1831,0xc53,0xc55,0x9c3,0x15ad,0x15ad,0x9cb,0x15b5,0x15b5,0x15b5,0x15b5,0x15b5,0x15b5,0x9d3,0x6c3,
-0x140f,0x1431,0x9db,0x1439,0x9e3,0x1441,0x1449,0x1451,0x9eb,0x9f0,0x1459,0x1460,0x9f5,0x9fd,0x17c7,0xbe1,
-0xa05,0x14b7,0x14be,0x1468,0x14c6,0x14cd,0x1470,0xa0d,0x1489,0x1489,0x148b,0x1478,0x1480,0x1480,0x1481,0x14d5,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
-0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x1174,0x171f,0x171f,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,
-0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x1493,0x149a,0x117c,0x1182,
-0x15c5,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,
-0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,0x15cb,
-0x15cb,0x15cb,0x15cb,0x15cb,0xa15,0x15d3,0xa1d,0x18e6,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879,0x1879,
-0x1875,0xcd5,0x1889,0x1881,0x188b,0x18ee,0x18ee,0xd69,0x177f,0x17ec,0x1841,0x1845,0x1839,0xc85,0xc8b,0xc8e,
-0x17af,0xc5d,0x17f4,0xc96,0x1893,0x1896,0xcdd,0xd71,0x18a6,0x189e,0xce5,0xd79,0x18f6,0x18fa,0xd81,0xfe7,
-0x18ae,0xced,0xcf5,0x1902,0x1912,0x190a,0xd89,0xee4,0xe29,0xe31,0x1ac9,0xf9f,0x1b6e,0x1b6e,0x191a,0xd91,
-0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,
-0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,
-0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,
-0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,
-0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,
-0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,
-0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,
-0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,
-0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,
-0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,
-0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,
-0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,
-0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,
-0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,
-0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,
-0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,
-0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,
-0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,
-0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,
-0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,
-0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,
-0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0x152b,0x1525,0x1526,0x1527,0x1528,0x1529,0x152a,0xa25,0xd99,0xd9c,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,
-0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,
-0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x13fa,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,0x14a2,
-0x14a7,0x14af,0x16df,0x118a,0x17bf,0x17bf,0x118e,0x1195,0xa2d,0xa35,0xa3d,0x1367,0x136e,0x1376,0xa45,0x137e,
-0x13af,0x13af,0x1357,0x135f,0x1386,0x13a6,0x13a7,0x13b7,0x138e,0x134f,0xa4d,0x1396,0xa55,0x139e,0xa5d,0xa61,
-0xc6d,0x13bf,0xa69,0xa71,0x13c7,0x13cd,0x13d2,0xa79,0xa89,0x1417,0x141f,0x1402,0x1407,0xa91,0xa99,0xa81,
-0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,
-0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14ed,0x14f5,0x14f5,0x14f5,0x14f5,
-0x136c,0x136c,0x13ac,0x13ec,0x142c,0x146c,0x14ac,0x14ec,0x1528,0x1568,0x1594,0x15d4,0x1614,0x1654,0x1694,0x16d4,
-0x1714,0x1750,0x1790,0x17d0,0x1810,0x1844,0x1880,0x18c0,0x1900,0x1940,0x197c,0x19bc,0x19fc,0x1a3c,0x1a7c,0x1abc,
-0xa80,0xac0,0xb00,0xe4d,0xb40,0xa40,0xb80,0xa40,0xe73,0xa40,0xa40,0xa40,0xa40,0xbc0,0x12a9,0x12a9,
-0xeb3,0xef3,0xa40,0xa40,0xa40,0xa40,0xdd2,0xc00,0xa40,0xa40,0xc40,0xc80,0xcc0,0xe12,0xd92,0xd02,
-0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,0x11e9,
-0x11e9,0x11e9,0x11e9,0x11e9,0xf33,0x1229,0x1069,0x10a9,0x1269,0xf73,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfe9,
-0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,
-0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0xfa9,0x1029,
+static const uint16_t propsVectorsTrie_index[29136]={
+0x4cf,0x4d7,0x4df,0x4e7,0x4ff,0x507,0x50f,0x517,0x51f,0x527,0x52f,0x537,0x53f,0x547,0x54f,0x557,
+0x55e,0x566,0x56e,0x576,0x579,0x581,0x589,0x591,0x599,0x5a1,0x5a9,0x5b1,0x5b9,0x5c1,0x5c9,0x5d1,
+0x5d9,0x5e1,0x5e8,0x5f0,0x5f8,0x600,0x608,0x610,0x618,0x620,0x625,0x62d,0x634,0x63c,0x644,0x64c,
+0x654,0x65c,0x664,0x66c,0x673,0x67b,0x683,0x68b,0x693,0x69b,0x6a3,0x6ab,0x6b3,0x6bb,0x6c3,0x6cb,
+0x195d,0xda7,0xe8f,0x6d3,0x4ef,0xeff,0xf07,0x1aeb,0x124c,0x1264,0x1254,0x125c,0x7cf,0x7d5,0x7dd,0x7e5,
+0x7ed,0x7f3,0x7fb,0x803,0x80b,0x811,0x819,0x821,0x829,0x82f,0x837,0x83f,0x847,0x84f,0x857,0x85e,
+0x866,0x86c,0x874,0x87c,0x884,0x88a,0x892,0x89a,0x8a2,0x8ba,0x8aa,0x8b2,0x8c2,0x8c9,0x8d1,0x8d9,
+0x8e1,0x8e5,0x8ed,0x8f4,0x8fc,0x904,0x90c,0x914,0x156c,0x1574,0x91c,0x924,0x92c,0x934,0x93c,0x943,
+0x15d2,0x15c2,0x15ca,0x18a0,0x18a8,0x1274,0x94b,0x126c,0x14b6,0x14b6,0x14b8,0x1288,0x1289,0x127c,0x127e,0x1280,
+0x15da,0x15dc,0x953,0x15dc,0x95b,0x960,0x968,0x15e1,0x96e,0x15dc,0x974,0x97c,0xc7e,0x15e9,0x15e9,0x984,
+0x15f9,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,0x15fa,
+0x15fa,0x15fa,0x15fa,0x15f1,0x98c,0x1602,0x1602,0x994,0xb8b,0xb93,0xb9b,0xba3,0x1612,0x160a,0x99c,0x9a4,
+0x9ac,0x161c,0x1624,0x9b4,0x161a,0x9bc,0x1965,0xdaf,0xbab,0xbb3,0xbbb,0xbc0,0x1816,0xcb1,0xcb8,0x177e,
+0xc4e,0x196d,0xdb7,0xdbf,0xdc7,0xdcf,0xfb7,0xfb7,0x1866,0x186b,0xceb,0xcf3,0x18dc,0x18e4,0x1a0e,0xe97,
+0x18ec,0xd3b,0xd43,0x18f4,0x6db,0x4ef,0xf97,0xdd7,0x179e,0x1786,0x1796,0x178e,0x182e,0x1826,0x17ee,0xc5e,
+0x1291,0x1291,0x1291,0x1291,0x1294,0x1291,0x1291,0x129c,0x9c4,0x12a4,0x9c8,0x9d0,0x12a4,0x9d8,0x9e0,0x9e8,
+0x12b4,0x12ac,0x12bc,0x9f0,0x9f8,0xa00,0xa08,0xa10,0x12c4,0x12cc,0x12d4,0x12dc,0xa18,0x12e4,0x12eb,0x12f3,
+0x12fb,0x1303,0x130b,0x1313,0x131b,0x1322,0x132a,0x1332,0x133a,0x1342,0x1345,0x1347,0x162c,0x1711,0x1717,0xa20,
+0x134f,0xa28,0xa30,0x1469,0x146e,0x1471,0x1479,0x1357,0x1481,0x1481,0x1367,0x135f,0x136f,0x1377,0x137f,0x1387,
+0x138f,0x1397,0x139f,0x13a7,0x171f,0x1776,0x18b0,0x19ee,0x13b7,0x13be,0x13c6,0x13ce,0x13af,0x13d6,0x1727,0x172e,
+0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1634,0x1736,0x1739,0x1736,0x1736,0x1741,0x1748,0x174a,0x1751,
+0x1759,0x175d,0x175d,0x1760,0x175d,0x175d,0x1766,0x175d,0x17a6,0x185e,0x18b8,0xbc8,0xbce,0xbd4,0xbdc,0xbe1,
+0x1806,0xc8e,0xc92,0x1873,0x17f6,0x17f6,0x17f6,0xc66,0x17fe,0xc86,0x1846,0xcdb,0xc6e,0xc76,0xc76,0x18fc,
+0x1836,0x18c0,0xcc8,0xccb,0xa38,0x163c,0x163c,0xa40,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0xa48,0x6df,
+0x149e,0x14c0,0xa50,0x14c8,0xa58,0x14d0,0x14d8,0x14e0,0xa60,0xa65,0x14e8,0x14ef,0xa6a,0xa72,0x1856,0xc56,
+0xa7a,0x1546,0x154d,0x14f7,0x1555,0x155c,0x14ff,0xa82,0x1518,0x1518,0x151a,0x1507,0x150f,0x150f,0x1510,0x1564,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,
+0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x1201,0x17ae,0x17ae,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,
+0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1522,0x1529,0x1211,0x1209,
+0x1654,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,
+0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,0x165a,
+0x165a,0x165a,0x165a,0x165a,0xa8a,0x1662,0xa92,0x1975,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,0x1908,
+0x1904,0xd4b,0x1918,0x1910,0x191a,0x197d,0x197d,0xddf,0x180e,0x187b,0x18d0,0x18d4,0x18c8,0xcfb,0xd01,0xd04,
+0x183e,0xcd3,0x1883,0xd0c,0x1922,0x1925,0xd53,0xde7,0x1935,0x192d,0xd5b,0xdef,0x1985,0x1989,0xdf7,0x105d,
+0x193d,0xd63,0xd6b,0x1991,0x19a1,0x1999,0xdff,0xf5a,0xe9f,0xea7,0x1b5e,0x1015,0x1c03,0x1c03,0x19a9,0xe07,
+0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,
+0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,
+0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,
+0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,
+0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,
+0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,
+0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,
+0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,
+0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,
+0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,
+0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,
+0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,
+0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,
+0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,
+0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,
+0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,
+0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,
+0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,
+0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,
+0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,
+0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,
+0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0x15ba,0x15b4,0x15b5,0x15b6,0x15b7,0x15b8,0x15b9,0xa9a,0xe0f,0xe12,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,
+0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,0x158c,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,
+0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1489,0x1531,0x1531,0x1531,0x1531,0x1531,0x1531,0x1531,0x1531,
+0x1536,0x153e,0x176e,0x1219,0x184e,0x184e,0x121d,0x1224,0xaa2,0xaaa,0xab2,0x13f6,0x13fd,0x1405,0xaba,0x140d,
+0x143e,0x143e,0x13e6,0x13ee,0x1415,0x1435,0x1436,0x1446,0x141d,0x13de,0xac2,0x1425,0xaca,0x142d,0xad2,0xad6,
+0xce3,0x144e,0xade,0xae6,0x1456,0x145c,0x1461,0xaee,0xafe,0x14a6,0x14ae,0x1491,0x1496,0xb06,0xb0e,0xaf6,
+0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,
+0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x157c,0x1584,0x1584,0x1584,0x1584,
+0x13bc,0x13bc,0x13fc,0x143c,0x147c,0x14bc,0x14fc,0x153c,0x1578,0x15b8,0x15e4,0x1624,0x1664,0x16a4,0x16e4,0x1724,
+0x1764,0x17a0,0x17e0,0x1820,0x1860,0x1894,0x18d0,0x1910,0x1950,0x1990,0x19cc,0x1a0c,0x1a4c,0x1a8c,0x1acc,0x1b0c,
+0xa80,0xac0,0xb00,0xb3b,0xb7b,0xa40,0xbbb,0xa40,0xe65,0xa40,0xa40,0xa40,0xa40,0xbfb,0x12fb,0x12fb,
+0xea5,0xee5,0xa40,0xa40,0xa40,0xa40,0xc3b,0xc5b,0xa40,0xa40,0xc9b,0xcdb,0xd1b,0xe2d,0xded,0xd5d,
+0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,0x123b,
+0x123b,0x123b,0x123b,0x123b,0xf25,0x127b,0x10bb,0x10fb,0x12bb,0x1045,0x107b,0x107b,0x107b,0xf65,0xf85,0xfc5,
+0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,
+0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0xf85,0x1005,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
-0xd42,0xd52,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
-0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xcc2,
-0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,
-0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x1169,0x10e9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,
-0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9,0x1129,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0xb74,0xb7b,0xb83,0xb8b,0x1727,0x1727,0x1727,0xb93,0xb9b,0xb9e,0x1757,0x174f,0xbd1,0xcfd,0xd01,0xd05,
-0x4db,0x4db,0x4db,0x4db,0xd0d,0x18b6,0xd15,0xf39,0x15db,0xaa1,0xaa7,0xff7,0xba6,0x178f,0xc4b,0x4db,
-0x15f0,0x15e3,0x15e8,0x172f,0xbae,0xbb6,0x1142,0x1148,0x1ab1,0xf56,0x1aa1,0x6cb,0x4db,0x4db,0x4db,0x4db,
-0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0x1ad1,0xfa7,0xfaf,0xfb7,0x4db,0x4db,0x4db,0x4db,
-0xbbe,0xbc1,0xda4,0x1b19,0xfef,0x6d3,0x4db,0x1088,0xc9e,0xd1d,0x4db,0x4db,0x1a66,0xeec,0xef4,0x1b59,
-0xc25,0xc2c,0xc34,0x1922,0x1af9,0x4db,0x1ad9,0xfc7,0x192a,0xdac,0xdb4,0xdbc,0x1017,0x6db,0x4db,0x4db,
-0x1932,0x1932,0x6e3,0x4db,0x1b86,0x10a0,0x1b7e,0x10a8,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0xdc4,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x1987,0x1989,0xe39,0xe40,0x1942,0x193a,0xdcc,0xf19,0x1a5e,0xed4,0xedc,0xfbf,0x1a76,0x1a7a,0xf11,0x1037,
-0xf8a,0xf8f,0x6eb,0x4db,0x1090,0x1098,0x1ac1,0xf97,0xf6c,0xf72,0xf7a,0xf82,0x4db,0x4db,0x4db,0x4db,
-0x1bc6,0x1bbe,0x1132,0x113a,0x1b41,0x1b39,0x105e,0x4db,0x4db,0x4db,0x4db,0x4db,0x1b29,0x101f,0x1027,0x102f,
-0x1af1,0x1ae9,0xfd7,0x112a,0x1a82,0xf29,0x6f3,0x4db,0x106e,0x1076,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,
-0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x17fc,0x1801,0xca6,0xcad,0xcad,0xcad,
-0x1809,0x1809,0x1809,0xcb5,0x1b76,0x1b76,0x1b76,0x1b76,0x1b76,0x1b76,0x6fb,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,
-0x194a,0x194a,0x194c,0x194a,0x1954,0x194a,0x194a,0x194a,0x194a,0x194a,0x194a,0x1957,0x194a,0x194a,0x194a,0x194a,
-0x194a,0x703,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,0x1991,
-0x1991,0xe48,0xfdf,0x70b,0x4db,0x4db,0x70f,0xf31,0x1b11,0x1b09,0xfff,0x1007,0x717,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x1a6e,0x1a6e,0xefc,0xf01,0xf09,0x4db,0x4db,0x1114,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x1aa9,0x1aa9,0x1aa9,0xf49,0xf4e,0x71f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0x15f8,0xaaf,0x1608,0xab7,0x1609,0x1600,0x1611,0x1617,0x161f,0xabf,
-0x1747,0x1747,0x727,0x4db,0x4db,0x4db,0x4db,0x4db,0x1737,0x1737,0xbc9,0xcbd,0x4db,0x4db,0x4db,0x4db,
-0x1650,0x1657,0xac7,0x165a,0xacf,0xad7,0xadf,0x1654,0xae7,0xaef,0xaf7,0x1659,0x1661,0x1650,0x1657,0x1653,
-0x165a,0x1662,0x1651,0x1658,0x1654,0xafe,0x1627,0x162f,0x1636,0x163d,0x162a,0x1632,0x1639,0x1640,0xb06,0x1648,
-0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,0x1b9e,
-0x1b8e,0x1b91,0x1b8e,0x1b98,0x10e0,0x72f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x110c,0x737,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x73b,0x103f,0x1b31,0x1045,0x1b31,0x104d,0x1052,0x1056,0x1056,0x10b0,0x10b8,0x10c0,0x10c8,0x10d0,0x10c8,
-0x10d8,0x10c8,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,
-0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,
-0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,0x743,
-0x743,0x744,0xb0e,0x166a,0x166a,0x166a,0x74c,0x74c,0x74c,0x74c,0x173f,0x173f,0x173f,0x173f,0x173f,0x173f,
-0x173f,0x754,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,
-0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,
-0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,
-0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,0x74c,
-0x74c,0x74c,0x18be,0xd25,0x18c6,0x18c6,0xd29,0xe59,0xe61,0xe69,0xdd4,0xdda,0x196f,0xde2,0x1967,0xdea,
-0xdee,0xdf5,0xdfd,0xe04,0xe0c,0xe11,0xe11,0xe11,0xe11,0xe11,0x19c0,0x19c8,0x19c0,0x19ce,0x19d6,0x19a1,
-0x19de,0x19e6,0x19c0,0x19ee,0x19f6,0x19fd,0x1a05,0x19a9,0x19c0,0x1a08,0x19b1,0x19b8,0x1a10,0x1a16,0x1a92,0x1a99,
-0x1a8a,0x1a1e,0x1a26,0x1a2e,0x1a36,0x1b01,0x1a3e,0x1a46,0xe71,0xe79,0x1999,0x1999,0x1999,0xe81,0x1ab9,0x1ab9,
-0xf5e,0xf64,0xe50,0xe51,0xe51,0xe51,0xe51,0xe51,0xe51,0xe51,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0x1ae1,0xfcf,0x4db,0x1bb6,0x1bae,0x10e8,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0xe99,0xea1,0xea9,0xeb1,0xeb9,0xec1,0xec8,0xecc,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x1b51,0x1b49,0x1066,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x1b21,0x100f,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x10f0,0x10f5,0x10fd,
-0x1104,0x111c,0x1122,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,0x1b61,
-0x1b61,0x1b66,0x1b61,0x1b61,0x1b61,0x107e,0x1080,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1150,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,
-0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1bd6,0x1158,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,0x4db,
-0x4db,0x4db,0x4db,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x119d,0x1160,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1168,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,
-0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x11a5,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x116c,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,
-0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x1160,0x116c,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x11ad,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x1a4e,0x11b5,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1505,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x150d,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,
-0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x1515,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,
-0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x151d,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,
-0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1672,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,
-0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,
-0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1ba6,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,
-0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x1bce,0x4ba,0x4ba,0x4ba,0x273,0x273,0x273,0x273,
-0x273,0x273,0x273,0x273,0x273,0x276,0x27f,0x279,0x279,0x27c,0x273,0x273,0x273,0x273,0x273,0x273,
-0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x7a1,0x79b,0x780,0x777,
-0x76e,0x76b,0x762,0x77d,0x768,0x774,0x777,0x792,0x789,0x77a,0x79e,0x771,0x75f,0x75f,0x75f,0x75f,
-0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x786,0x783,0x78c,0x78c,0x78c,0x79b,0x762,0x7ad,0x7ad,0x7ad,
-0x7ad,0x7ad,0x7ad,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,
-0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x768,0x76e,0x774,0x798,0x75c,0x795,0x7aa,0x7aa,0x7aa,
-0x7aa,0x7aa,0x7aa,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,
-0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x768,0x78f,0x765,0x78c,0x273,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x282,0x282,0x282,0x282,
-0x282,0x291,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,
-0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x285,0x5fa,0x7b6,0x7b9,
-0x600,0x7b9,0x7b3,0x5f7,0x5ee,0x28b,0x60c,0x28e,0x7bc,0x5e5,0x603,0x7b0,0x5fd,0x609,0x5eb,0x5eb,
-0x5f1,0x288,0x5f7,0x5f4,0x5ee,0x5eb,0x60c,0x28e,0x5e8,0x5e8,0x5e8,0x5fa,0x297,0x297,0x297,0x297,
-0x297,0x297,0x615,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x615,0x297,0x297,0x297,
-0x297,0x297,0x297,0x606,0x615,0x297,0x297,0x297,0x297,0x297,0x615,0x60f,0x612,0x612,0x294,0x294,
-0x294,0x294,0x60f,0x294,0x612,0x612,0x612,0x294,0x612,0x612,0x294,0x294,0x60f,0x294,0x612,0x612,
-0x294,0x294,0x294,0x606,0x60f,0x612,0x612,0x294,0x612,0x294,0x60f,0x294,0x2a3,0x61b,0x2a3,0x29a,
-0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a0,0x618,0x2a3,0x61b,
-0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,
-0x2a3,0x29a,0x621,0x618,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x618,0x624,0x61e,
-0x2a3,0x29a,0x2a3,0x29a,0x618,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x624,0x61e,0x621,0x618,0x2a3,
-0x61b,0x2a3,0x29a,0x2a3,0x61b,0x627,0x621,0x618,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x621,0x618,
-0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,
-0x2a3,0x29a,0x621,0x618,0x2a3,0x29a,0x2a3,0x61b,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,
-0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x2a3,0x29a,0x2a3,0x29a,0x2a3,0x29a,0x29d,0x2a6,0x2b2,0x2b2,0x2a6,
-0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2b2,0x2b2,0x2a6,0x2a6,0x2b2,0x2b2,0x2b2,0x2b2,0x2a6,0x2b2,
-0x2b2,0x2a6,0x2b2,0x2b2,0x2b2,0x2a6,0x2a6,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2b5,0x2a9,0x2b2,0x2a6,
-0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2b2,0x2a6,0x2a6,0x2b2,0x2a6,0x2b2,0x2b5,0x2a9,0x2b2,0x2b2,0x2b2,
-0x2a6,0x2b2,0x2a6,0x2b2,0x2b2,0x2a6,0x2a6,0x2af,0x2b2,0x2a6,0x2a6,0x2a6,0x2af,0x2af,0x2af,0x2af,
-0x2b8,0x2b8,0x2ac,0x2b8,0x2b8,0x2ac,0x2b8,0x2b8,0x2ac,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5,
-0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2b5,0x62a,0x2a6,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,
-0x2b2,0x2a6,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2a9,0x2b8,0x2b8,0x2ac,
-0x2b5,0x2a9,0x990,0x990,0x993,0x98d,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,
-0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,0x2b5,0x2a9,
-0x993,0x98d,0x993,0x98d,0x990,0x98a,0x993,0x98d,0xb4f,0xc51,0x990,0x98a,0x990,0x98a,0x993,0x98d,
-0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0x993,0x98d,0xc51,0xc51,0xc51,0xd4a,
-0xd4a,0xd4a,0xd4d,0xd4d,0xd4a,0xd4d,0xd4d,0xd4a,0xd4a,0xd4d,0xe8e,0xe91,0xe91,0xe91,0xe91,0xe8e,
-0xe91,0xe8e,0xe91,0xe8e,0xe91,0xe8e,0xe91,0xe8e,0x2bb,0x62d,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x62d,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2be,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x996,0x996,0x996,
-0x996,0x996,0xc54,0xc54,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2cd,0x2cd,0x2cd,
-0x2cd,0x2cd,0x2cd,0x2cd,0x2ca,0x2ca,0x2c1,0x2c1,0x633,0x2c1,0x2cd,0x636,0x2d0,0x636,0x636,0x636,
-0x2d0,0x636,0x2cd,0x2cd,0x639,0x2d3,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c7,0x630,0x630,0x630,0x630,
-0x2c4,0x630,0x2c1,0xac8,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x99f,0x99f,
-0x99c,0x999,0x99c,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,0xc57,
-0xc57,0xc57,0xc57,0xc57,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
-0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
-0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
-0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,0x63c,
-0x63c,0x63c,0x63c,0x63c,0x63f,0x63f,0x8f4,0x63f,0x63f,0x8f7,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,
-0xacb,0xacb,0xacb,0xc09,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xe55,0xe55,0xe55,0xe55,
-0xe58,0xd1d,0xd1d,0xd1d,0x642,0x642,0xace,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xc4e,0xc4e,0xc4e,0xc4e,0xf3c,0xf39,0xf3c,0xf39,0x2e2,0x2eb,0xf3c,0xf39,9,9,0x2f1,0xe94,
-0xe94,0xe94,0x2d9,0x1491,9,9,9,9,0x2ee,0x2dc,0x300,0x2df,0x300,0x300,0x300,9,
-0x300,9,0x300,0x300,0x2f7,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x648,
-0x648,0x648,0x648,0x648,0x648,0x648,9,0x648,0x648,0x648,0x648,0x648,0x648,0x648,0x300,0x300,
-0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x645,
-0x645,0x645,0x645,0x645,0x645,0x645,0x2f4,0x645,0x645,0x645,0x645,0x645,0x645,0x645,0x2f7,0x2f7,
-0x2f7,0x2f7,0x2f7,0xf3c,0x303,0x303,0x306,0x300,0x300,0x303,0x2fa,0x9a2,0xb58,0xb55,0x2fd,0x9a2,
-0x2fd,0x9a2,0x2fd,0x9a2,0x2fd,0x9a2,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5,0x2e8,0x2e5,
-0x2e8,0x2e5,0x2e8,0x2e5,0x303,0x303,0x2fa,0x2f4,0xb07,0xb04,0xb52,0xc5d,0xc5a,0xc60,0xc5d,0xc5a,
-0xd50,0xd53,0xd53,0xd53,0x9b1,0x654,0x312,0x315,0x312,0x312,0x312,0x315,0x312,0x312,0x312,0x312,
-0x315,0x9b1,0x315,0x312,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x654,0x651,0x651,
-0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,0x651,
-0x651,0x651,0x651,0x651,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64e,0x64b,0x64b,
-0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,0x64b,
-0x9ab,0x64e,0x30c,0x30f,0x30c,0x30c,0x30c,0x30f,0x30c,0x30c,0x30c,0x30c,0x30f,0x9ab,0x30f,0x30c,
-0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,
-0x312,0x30c,0x312,0x30c,0x312,0x30c,0x315,0x30f,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,
-0x312,0x30c,0x309,0x900,0x903,0x8e5,0x8e5,0x10e6,0x9a5,0x9a5,0xb5e,0xb5b,0x9ae,0x9a8,0x9ae,0x9a8,
-0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,
-0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,
-0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,0x312,0x30c,
-0x312,0x315,0x30f,0x312,0x30c,0xb5e,0xb5b,0x312,0x30c,0xb5e,0xb5b,0x312,0x30c,0xb5e,0xb5b,0xe97,
-0x315,0x30f,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x315,0x30f,0x315,0x30f,
-0x312,0x30c,0x315,0x30f,0x315,0x30f,0x315,0x30f,0x312,0x30c,0x315,0x30f,0x9b1,0x9ab,0x315,0x30f,
-0x315,0x30f,0x315,0x30f,0x315,0x30f,0xd59,0xd56,0x315,0x30f,0xe9a,0xe97,0xe9a,0xe97,0xe9a,0xe97,
-0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,0xbca,0xbc7,
-0xec7,0xec4,0xec7,0xec4,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,
-0xfba,0xfb7,0xfba,0xfb7,0x111f,0x111c,0x12f9,0x12f6,0x14ca,0x14c7,0x14ca,0x14c7,0x14ca,0x14c7,0x14ca,0x14c7,
-0xc,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,
-0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0x324,0xc,0xc,0x327,0x318,0x318,
-0x318,0x31b,0x318,0x318,0xc,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,
-0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,
-0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x321,0xc,0x86a,0x9b4,0xc,0xc,0x1494,0x1494,0x13ad,
-0xf,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,
-0x924,0x924,0xd5c,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,
-0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0xe9d,0x32a,0x32a,0x32a,0x336,0x32a,
-0x32d,0x32a,0x32a,0x339,0x927,0xd5f,0xd62,0xd5f,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,
-0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0x33c,0xf,0xf,0xf,0xf,0xf,
-0x33c,0x33c,0x33c,0x333,0x330,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
-0xc63,0xc63,0xc63,0xc63,0x13b0,0x1497,0xf45,0xf45,0xf45,0xf42,0xf42,0xd6b,0x870,0xc72,0xc6f,0xc6f,
-0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xf3f,0xf3f,0xf3f,0xf3f,0xf3f,0x86d,0x148b,0x12,0xd68,0x873,
-0x12c0,0x357,0x35a,0x35a,0x35a,0x35a,0x35a,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0xf48,0xf48,0xf48,0xf48,0xf48,
-0x876,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
-0x8eb,0x8eb,0x8eb,0xafe,0xafe,0xafe,0xc66,0xc6c,0xc69,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0x12bd,
-0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x351,0x34e,0x34b,0x348,0xb61,0xb61,
-0x8e8,0x357,0x357,0x363,0x357,0x35d,0x35d,0x35d,0x35d,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x9ba,0x9ba,0x357,0x357,0x357,0x357,0x357,0x9ba,0x35a,0x357,0x35a,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x9ba,0x357,0x357,0x357,0x35a,
-0x366,0x357,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x33f,0x348,0x345,0x345,0x342,0x342,0x342,
-0x342,0x360,0x360,0x342,0x342,0x348,0x345,0x345,0x345,0x342,0xc75,0xc75,0x354,0x354,0x354,0x354,
-0x354,0x354,0x354,0x354,0x354,0x354,0x9ba,0x9ba,0x9ba,0x9b7,0x9b7,0xc75,0x9d2,0x9d2,0x9d2,0x9cc,
-0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9c9,0x9cc,0x9c9,0x15,0x9bd,0x9cf,0x9c0,0x9cf,0x9cf,
-0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,
-0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0xc78,0xc78,0xc78,0x9c6,0x9c6,0x9c6,0x9c6,
-0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c3,0x9c3,0x9c3,0x9c3,
-0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x15,0x15,0xc78,0xc78,0xc78,0xdcb,0xdcb,0xdcb,0xdcb,
-0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,
-0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xdcb,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,
-0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0xfcc,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0xb64,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xedf,0xedf,0xedf,0xedf,
-0xedf,0xedf,0xedf,0xedf,0xedf,0xedf,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,
-0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,
-0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xee2,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,0xed6,
-0xee5,0xee5,0xed9,0xed9,0xedc,0xeeb,0xee8,0x111,0x111,0x111,0x111,0x111,0x17d3,0x17d3,0x17d3,0x17d3,
-0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xada,0xada,0xadd,0xadd,
-0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0x75,0x75,0x75,0x75,0x1551,0x1551,0x1551,0x1551,
-0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x154e,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1fe,0x1fe,0x1fe,0x1fe,
-0x1fe,0x1fe,0x1fe,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0x160b,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x20a,0x20a,0x20a,0x20a,
-0x20a,0x20a,0x20a,0x20a,0x20a,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x120f,0x120f,0x120f,0x120f,
-0x120f,0x120f,0x120f,0x120f,0x120f,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0x17d,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1e0,0x1e0,0x1e0,0x1e0,
-0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1467,0x1467,0x1467,0x1467,
-0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x173d,0x173d,0x173d,0x173d,
-0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x186,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x15f6,0x15f6,0x15f6,0x15f6,
-0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x1f8,0x1f8,0x1f8,0x1f8,0x15fc,0x15fc,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1548,0x1548,0x1548,0x1548,
-0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1632,0x1632,0x1632,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x16aa,0x16aa,0x16aa,0x16aa,
-0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xdc2,0xdc2,0xdbf,0xdbf,
-0xdbf,0xdc2,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x234,0x1755,0x1755,0x1755,
-0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x17d6,0x17d6,0x240,0x17d6,
-0x17d6,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x240,0x240,0x240,0x240,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x921,0x921,3,3,3,3,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-3,3,3,3,3,3,3,3,3,3,3,3,3,3,0x921,0x921,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-0x149d,0x37e,0x38d,0x38d,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x1b,0x1b,0x393,
-0x393,0x1b,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
-0x393,0x1b,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x1b,0x393,0x1b,0x1b,0x1b,0x393,0x393,
-0x393,0x393,0x1b,0x1b,0x381,0xc7e,0x37e,0x38d,0x38d,0x37e,0x37e,0x37e,0x37e,0x1b,0x1b,0x38d,
-0x38d,0x1b,0x1b,0x390,0x390,0x384,0xd71,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x37e,
-0x1b,0x1b,0x1b,0x1b,0x396,0x396,0x1b,0x396,0x393,0x393,0x37e,0x37e,0x1b,0x1b,0x90c,0x90c,
-0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x393,0x393,0x38a,0x38a,0x387,0x387,0x387,0x387,
-0x387,0x38a,0x387,0x10f5,0x1b,0x1b,0x1b,0x1b,0x1e,0xc81,0x399,0xc84,0x1e,0x3a5,0x3a5,0x3a5,
-0x3a5,0x3a5,0x3a5,0x1e,0x1e,0x1e,0x1e,0x3a5,0x3a5,0x1e,0x1e,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,
-0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x1e,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,
-0x3a5,0x1e,0x3a5,0x3a8,0x1e,0x3a5,0x3a8,0x1e,0x3a5,0x3a5,0x1e,0x1e,0x39c,0x1e,0x3a2,0x3a2,
-0x3a2,0x399,0x399,0x1e,0x1e,0x1e,0x1e,0x399,0x399,0x1e,0x1e,0x399,0x399,0x39f,0x1e,0x1e,
-0x1e,0xf51,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3a8,0x3a8,0x3a8,0x3a5,0x1e,0x3a8,0x1e,
-0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,
-0x399,0x399,0x3a5,0x3a5,0x3a5,0xf51,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
-0x21,0x3ab,0x3ab,0x3b4,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0xc8d,0x3b7,0x21,0x3b7,
-0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,
-0x3b7,0x21,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x21,0x3b7,0x3b7,0x3b7,
-0x3b7,0x3b7,0x21,0x21,0x3ae,0x3b7,0x3b4,0x3b4,0x3b4,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x21,0x3ab,
-0x3ab,0x3b4,0x21,0x3b4,0x3b4,0x3b1,0x21,0x21,0x3b7,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
-0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x3b7,0xc8d,0xc87,0xc87,0x21,0x21,0x912,0x912,
-0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x13b3,0xc8a,0x21,0x21,0x21,0x21,0x21,0x21,
-0x21,0x16b9,0x21,0x21,0x21,0x21,0x21,0x21,0x24,0x3ba,0x3c9,0x3c9,0x24,0x3cf,0x3cf,0x3cf,
-0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x24,0x3cf,0x3cf,0x24,0x24,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,
-0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,
-0x3cf,0x24,0x3cf,0x3cf,0x24,0xc90,0x3cf,0x3cf,0x3cf,0x3cf,0x24,0x24,0x3bd,0x3cf,0x3ba,0x3ba,
-0x3c9,0x3ba,0x3ba,0x3ba,0xf54,0x24,0x24,0x3c9,0x3cc,0x24,0x24,0x3cc,0x3cc,0x3c0,0x24,0x24,
-0x24,0x24,0x24,0x24,0x24,0x24,0x3ba,0x3ba,0x24,0x24,0x24,0x24,0x3d2,0x3d2,0x24,0x3cf,
-0x3cf,0x3cf,0xf54,0xf54,0x24,0x24,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,
-0x3c3,0xc90,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
-0x27,0x27,0x3d5,0x3e1,0x27,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1,
-0x3e1,0x27,0x3e1,0x3e1,0x3e4,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1,0x27,0x3e1,0x27,0x3e1,0x3e1,
-0x27,0x27,0x27,0x3e1,0x3e1,0x27,0x27,0x27,0x3e1,0x3e1,0x91b,0x27,0x27,0x27,0x3e1,0x3e1,
-0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x91b,0xd74,0x3e1,0x3e1,0x3e1,0x27,0x27,0x27,0x27,0x3d5,0x3db,
-0x3d5,0x3db,0x3db,0x27,0x27,0x27,0x3db,0x3db,0x3db,0x27,0x3de,0x3de,0x3de,0x3d8,0x27,0x27,
-0xf57,0x27,0x27,0x27,0x27,0x27,0x27,0x3d5,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
-0x27,0x27,0xe8b,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x915,0x915,0x915,0xc93,
-0xc93,0xc93,0xc93,0xc93,0xc93,0xc96,0xc93,0x27,0x27,0x27,0x27,0x27,0x14a0,0x3f3,0x3f3,0x3f3,
-0x2a,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6,
-0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x3f6,0x3f6,
-0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x14a3,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x2a,0x2a,
-0x2a,0xf60,0x3e7,0x3e7,0x3e7,0x3f3,0x3f3,0x3f3,0x3f3,0x2a,0x3e7,0x3e7,0x3ea,0x2a,0x3e7,0x3e7,
-0x3e7,0x3ed,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x3e7,0x3e7,0x2a,0xf60,0xf60,0x16bc,0x2a,
-0x2a,0x2a,0x2a,0x2a,0x3f6,0x3f6,0xf5a,0xf5a,0x2a,0x2a,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,0x3f0,
-0x3f0,0x3f0,0x3f0,0x3f0,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0xf5d,0xf5d,0xf5d,0xf5d,
-0xf5d,0xf5d,0xf5d,0xf5d,0x1779,0x14a6,0x402,0x402,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408,
-0x408,0x2d,0x408,0x408,0x408,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,
-0x408,0x408,0x408,0x408,0x408,0x2d,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,
-0x2d,0x408,0x408,0x408,0x408,0x408,0x2d,0x2d,0xc99,0xc9c,0x402,0x3f9,0x405,0x402,0x3f9,0x402,
-0x402,0x2d,0x3f9,0x405,0x405,0x2d,0x405,0x405,0x3f9,0x3fc,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
-0x2d,0x3f9,0x3f9,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x408,0x2d,0x408,0x408,0xea3,0xea3,
-0x2d,0x2d,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x3ff,0x2d,0xea6,0xea6,0x2d,
-0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x30,0x14a9,0x414,0x414,
-0x30,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x30,0x41a,0x41a,0x41a,0x30,0x41a,0x41a,
-0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x12cf,0x41a,0x41a,
-0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x12cf,0x30,
-0x30,0xf6c,0x40b,0x414,0x414,0x40b,0x40b,0x40b,0xf63,0x30,0x414,0x414,0x414,0x30,0x417,0x417,
-0x417,0x40e,0x12d2,0x177c,0x30,0x30,0x30,0x30,0x177f,0x177f,0x177f,0x40b,0x177c,0x177c,0x177c,0x177c,
-0x177c,0x177c,0x177c,0x16bf,0x41a,0x41a,0xf63,0xf63,0x30,0x30,0x411,0x411,0x411,0x411,0x411,0x411,
-0x411,0x411,0x411,0x411,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0x177c,0x177c,0x177c,0xf69,0xf6c,0xf6c,
-0xf6c,0xf6c,0xf6c,0xf6c,0x33,0x33,0x9e4,0x9e4,0x33,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x33,0x33,0x9ea,0x9ea,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,
-0x9ea,0x9ea,0x33,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x9ea,0x33,0x33,
-0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x33,0x33,0x33,0x9de,0x33,0x33,0x33,0x33,0x9db,
-0x9e4,0x9e4,0x9db,0x9db,0x9db,0x33,0x9db,0x33,0x9e4,0x9e4,0x9e7,0x9e4,0x9e7,0x9e7,0x9e7,0x9db,
-0x33,0x33,0x33,0x33,0x33,0x33,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,
-0x33,0x33,0x9e4,0x9e4,0x9e1,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
-0x36,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,
-0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,0x435,
-0x435,0x420,0x435,0x432,0x420,0x420,0x420,0x420,0x420,0x420,0x426,0x36,0x36,0x36,0x36,0x41d,
-0x43b,0x43b,0x43b,0x43b,0x43b,0x435,0x438,0x423,0x423,0x423,0x423,0x423,0x423,0x420,0x423,0x429,
-0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42f,0x42c,0x42c,0x36,0x36,0x36,0x36,
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x44a,0x44a,0x39,
-0x44a,0x39,0x39,0x44a,0x44a,0x39,0x44a,0x39,0x39,0x44a,0x39,0x39,0x39,0x39,0x39,0x39,
-0x44a,0x44a,0x44a,0x44a,0x39,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x39,0x44a,0x44a,0x44a,
-0x39,0x44a,0x39,0x44a,0x39,0x39,0x44a,0x44a,0x39,0x44a,0x44a,0x44a,0x44a,0x43e,0x44a,0x447,
-0x43e,0x43e,0x43e,0x43e,0x43e,0x43e,0x39,0x43e,0x43e,0x44a,0x39,0x39,0x453,0x453,0x453,0x453,
-0x453,0x39,0x450,0x39,0x441,0x441,0x441,0x441,0x441,0x43e,0x39,0x39,0x444,0x444,0x444,0x444,
-0x444,0x444,0x444,0x444,0x444,0x444,0x39,0x39,0x44d,0x44d,0x13b6,0x13b6,0x39,0x39,0x39,0x39,
-0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
-0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x95d,0x95d,0x95d,0x960,
-0x95d,0x95d,0x95d,0x95d,0x3c,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,
-0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x960,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
-0x95d,0x95d,0x95d,0x95d,0x95d,0x960,0x9f9,0xf78,0xf78,0x3c,0x3c,0x3c,0x3c,0x92a,0x92a,0x92d,
-0x92a,0x92d,0x92d,0x936,0x92d,0x936,0x92a,0x92a,0x92a,0x92a,0x92a,0x957,0x92a,0x92d,0x930,0x930,
-0x933,0x93c,0x930,0x930,0x95d,0x95d,0x95d,0x95d,0x12db,0x12d5,0x12d5,0x12d5,0x92a,0x92a,0x92a,0x92d,
-0x92a,0x92a,0x9ed,0x92a,0x3c,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a,
-0x92a,0x92a,0x92a,0x92d,0x92a,0x92a,0x92a,0x92a,0x92d,0x92a,0x9ed,0x9ed,0x9ed,0x92a,0x92a,0x92a,
-0x92a,0x92a,0x92a,0x92a,0x9ed,0x92d,0x9ed,0x9ed,0x9ed,0x3c,0x9f6,0x9f6,0x9f3,0x9f3,0x9f3,0x9f3,
-0x9f3,0x9f3,0x9f0,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x3c,0xf6f,0x9f3,0xd77,0xd77,0xf72,0xf75,
-0xf6f,0x10f8,0x10f8,0x10f8,0x10f8,0x12d8,0x12d8,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
-0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
-0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x459,0x459,0x459,0x459,0x459,0x459,0x3f,0x13bc,
-0x3f,0x3f,0x3f,0x3f,0x3f,0x13bc,0x3f,0x3f,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,
-0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,
-0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42,
-0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,
-0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0x42,0xa23,0xa23,
-0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42,0xa23,0x42,0xa23,0xa23,
-0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xd86,0xa23,0x42,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x42,0x42,0x12de,0x12de,0xd80,0xd83,0xa1d,0xa26,0xa1a,
-0xa1a,0xa1a,0xa1a,0xa26,0xa26,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa17,0xa17,
-0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x42,0x42,0x42,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0x16c5,0x45,0x45,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x45,0x45,0xa3b,0xa3e,0xa3e,0xa3e,
-0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
-0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa38,0xa35,0x48,0x48,0x48,0xa44,0xa44,0xa44,0xa44,
-0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa41,0xa41,0xa41,0xa44,0xa44,0xa44,0x14af,0x14af,0x14af,
-0x14af,0x14af,0x14af,0x14af,0x14af,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xa65,0xa65,0xa65,0xa65,
-0xa65,0xa65,0xa47,0xa65,0xa65,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4a,0xa4d,0xa4a,
-0xa5c,0xa5c,0xa5f,0xa68,0xa56,0xa53,0xa5c,0xa59,0xa68,0xc9f,0x4e,0x4e,0xa62,0xa62,0xa62,0xa62,
-0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xca2,0xca2,0xca2,0xca2,
-0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xa77,0xa77,0xaf5,0xaf8,
-0xa7d,0xaf2,0xa7a,0xa77,0xa80,0xa8f,0xa83,0xa92,0xa92,0xa92,0xa6e,0x51,0xa86,0xa86,0xa86,0xa86,
-0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0x51,0x51,0x51,0x51,0x51,0x51,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xa89,0xa71,0xf99,0x51,0x51,0x51,0x51,0x51,0x114c,0x114c,0x114c,0x114c,
-0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477,
-0x477,0x477,0x54,0x54,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x54,0x54,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x54,0x47a,0x54,0x47a,0x54,0x47a,0x54,0x47a,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x54,0x54,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477,
-0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x471,0x477,0x471,0x471,0x46e,0x477,0x477,
-0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x46e,0x46e,0x46e,0x477,0x477,0x477,0x477,
-0x54,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x54,0x46e,0x46e,0x46e,0x477,0x477,0x477,0x477,
-0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x46e,0x46e,0x46e,0x54,0x54,0x477,0x477,
-0x477,0x54,0x477,0x477,0x47a,0x47a,0x47a,0x47a,0x47a,0x474,0x471,0x54,0xb6a,0xb6d,0xb6d,0xb6d,
-0xfa2,0x57,0x148e,0x148e,0x148e,0x148e,0x483,0x483,0x483,0x483,0x483,0x483,0x4ce,0xb7f,0x5a,0x5a,
-0x68a,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4d4,0x4e6,0x4d4,0x4e0,0x4da,0x68d,0x4cb,0x687,0x687,0x687,
-0x687,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4d1,0x4e3,0x4d1,0x4dd,0x4d7,0x5a,0xd8f,0xd8f,0xd8f,0xd8f,
-0xd8f,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x5a,0x5a,0x5a,0x4ec,0x4ec,0x4ec,0x4ec,
-0x4ec,0x4ec,0x4ec,0x4e9,0x4ef,0x702,0x4ec,0x966,0x987,0xaa1,0xaa1,0xaa1,0xb82,0xb82,0xd92,0xd92,
-0xd92,0xd92,0x1110,0x1113,0x1113,0x12e4,0x1488,0x14b2,0x14b5,0x14b5,0x16c8,0x5d,0x5d,0x5d,0x5d,0x5d,
-0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x4f5,0x4f5,0x4f5,0x4f5,
-0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f5,0x4f2,0x4f2,0x4f2,0x4f2,0x4f5,0xaa4,0xaa4,
-0xb85,0xb8b,0xb8b,0xb88,0xb88,0xb88,0xb88,0xd95,0xea9,0xea9,0xea9,0xea9,0x10e3,0x60,0x60,0x60,
-0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x525,0x525,0x525,0xaad,
-0xeb2,0xfa8,0xfa8,0xfa8,0xfa8,0x123f,0x16cb,0x16cb,0x63,0x63,0x63,0x63,0x6b4,0x6b4,0x6b4,0x6b4,
-0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x6b7,0x531,0x531,0x52e,0x52e,0x52e,0x52e,0xeb8,0xeb8,0xeb8,0xeb5,
-0xeb5,0xeb5,0xeb5,0xeb5,0x1119,0x1365,0x1365,0x1365,0x1365,0x12e7,0x12e7,0x12e7,0x1368,0x12ea,0x12ea,0x1368,
-0x14b8,0x14b8,0x14b8,0x14b8,0x14bb,0x14bb,0x14bb,0x1782,0x1782,0x1782,0x1782,0x66,0x558,0x558,0x558,0x558,
-0x558,0xab6,0xab6,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
-0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x55b,0x55b,0x55b,0x55b,
-0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
-0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0x6f,0xad1,0xad1,0xad1,0xad1,0xad4,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad4,
-0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x78,0x7e9,0x7e3,0x7e9,
-0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,
-0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e3,0x7e3,0x7e3,0x7e9,
-0x7e3,0x7e9,0x7e3,0x7e9,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e9,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,
-0x7e6,0xc2d,0xc2d,0x78,0x78,0x8fd,0x8fd,0x8c7,0x8c7,0x7ec,0x7ef,0xc2a,0x7b,0x7b,0x7b,0x7b,
-0x7b,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,
-0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x10d1,0x7b,0x7b,
-0x7e,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x7e,0x8d0,0x8d0,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,0x8d3,
-0x8d3,0x8d3,0x8d3,0x8d3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0x1374,0x1374,0x1374,0x81,
-0x81,0x81,0x81,0x81,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,
-0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,
-0x80d,0xd2f,0xd2f,0x84,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
-0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
-0x813,0x813,0x813,0x84,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0x87,0x87,0x87,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
-0xaef,0xaef,0xaef,0xaef,0xaef,0xc36,0xaef,0xaef,0xaef,0xc36,0xaef,0x8a,0x8a,0x8a,0x8a,0x8a,
-0x8a,0x8a,0x8a,0x8a,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,
-0x1173,0x1173,0x1173,0x1173,0x981,0x981,0x981,0x981,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x8d,0x8d,0x8d,0x8d,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,
-0x11e8,0x11e8,0x11e8,0x11e8,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x90,0x90,0x90,0x90,0x90,
-0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x90,0x90,0x90,0x90,
-0x90,0xac2,0x5a6,0x5ac,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5a9,0x5ac,0x5ac,
-0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x5ac,0x5ac,
-0x5ac,0x90,0x5ac,0x90,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x90,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,
-0x5ac,0x5ac,0x5ac,0x5af,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,
-0x5c4,0x5ca,0x5c7,0x5c1,0x12f3,0x12f3,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
-0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,
-0x5c1,0x5c7,0x5c7,0x5c1,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
-0x93,0x93,0x93,0x93,0x5c4,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,
-0x5c4,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c4,0x5c4,0x5c1,
-0x5c4,0x5c4,0x5c4,0x5c4,0x93,0x93,0x5c4,0x5c4,0x5c4,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c1,0x5c1,0x93,0x93,0x93,0x93,
-0x93,0x93,0x93,0x93,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,
-0xb0a,0xb0a,0xb0a,0xb0a,0x5c7,0x5c7,0x91e,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5be,0x5be,
-0xbc1,0xd47,0x93,0x93,0x825,0x837,0x834,0x837,0x834,0xc4b,0xc4b,0xd3b,0xd38,0x828,0x828,0x828,
-0x828,0x83a,0x83a,0x83a,0x852,0x855,0x864,0x96,0x858,0x85b,0x867,0x867,0x84f,0x846,0x840,0x846,
-0x840,0x846,0x840,0x843,0x843,0x85e,0x85e,0x861,0x85e,0x85e,0x85e,0x96,0x85e,0x84c,0x849,0x843,
-0x96,0x96,0x96,0x96,0x5d3,0x5df,0x5d3,0xbc4,0x5d3,0x99,0x5d3,0x5df,0x5d3,0x5df,0x5d3,0x5df,
-0x5d3,0x5df,0x5d3,0x5df,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,
-0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,
-0x5d6,0x99,0x99,0x5d0,0x723,0x726,0x73b,0x73e,0x71d,0x726,0x726,0x9f,0x705,0x708,0x708,0x708,
-0x708,0x705,0x705,0x9f,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0xac5,0xac5,0xac5,
-0x984,0x6ff,0x5e2,0x5e2,0x9f,0x74d,0x72c,0x71d,0x726,0x723,0x71d,0x72f,0x720,0x71a,0x71d,0x73b,
-0x732,0x729,0x74a,0x71d,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x738,0x735,
-0x73b,0x73b,0x73b,0x74d,0x70e,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,
-0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,
-0x70b,0x70b,0x70b,0x9f,0x9f,0x9f,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b,
-0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x9f,0x9f,0x70b,0x70b,
-0x70b,0x9f,0x9f,0x9f,0xb0d,0xb0d,0xb0d,0xb0d,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
-0xa2,0xa2,0xa2,0xa2,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
-0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xa5,0xa5,0xa5,0xa5,0xa5,0x161a,0x161a,0x161a,0x161a,
-0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0xb1c,0xb1c,0xb1c,0xb1c,
-0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,
-0xb1c,0xb1c,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xab,0xab,0xfb4,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0x16d1,0x16d1,0x16d1,0x16d1,
-0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
-0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xae,0xb40,0xb40,0xae,0xae,0xb40,0xae,
-0xae,0xb40,0xb40,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xae,0xb3d,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xcc0,0xb3d,0xb3d,
-0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xae,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,0xae,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xae,0xb40,0xae,0xae,0xae,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xae,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xdaa,0xdaa,0xae,0xae,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xec1,0xebe,0xae,0xae,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb1,0xb46,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,
-0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xb4,0xbd3,0xbd3,0xbd3,0xbd3,0xbcd,0xbcd,0xbd0,0xb4,0xb4,0xb4,
-0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,
-0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbd6,0xbd6,0xbd9,0xc3f,0xc3f,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,
-0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbdf,0xbdf,0xba,0xba,0xba,0xba,
-0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,
-0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbd,0xbe8,0xbe8,0xbe8,0xbd,0xbe5,0xbe5,0xbd,0xbd,0xbd,0xbd,
-0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,
-0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,
-0xcd2,0xcd2,0xcd2,0xcd2,0xcd2,0x14cd,0x14cd,0xc0,0xcc3,0xcc3,0xcc3,0xccf,0xccf,0xccf,0xccf,0xcc3,
-0xcc3,0xccf,0xccf,0xccf,0xc0,0xc0,0xc0,0xc0,0xccf,0xccf,0xcc3,0xccf,0xccf,0xccf,0xccf,0xccf,
-0xccf,0xcc6,0xcc6,0xcc6,0xc0,0xc0,0xc0,0xc0,0xcc9,0xc0,0xc0,0xc0,0xcd5,0xcd5,0xccc,0xccc,
-0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,
-0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xc3,0xc3,0xcd8,0xcd8,0xcd8,0xcd8,
-0xcd8,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x14d0,0x14d0,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,
-0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0x14d0,0xc6,0xc6,
-0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x16d4,0x16d4,0x16d4,0x16d4,
-0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xcff,0xcff,0xc9,0xcff,0xcff,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xc9,0xcff,0xcff,0xcff,0xcff,
-0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xcff,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,
-0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,
-0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xd02,0xd02,0xd02,0xd02,
-0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,
-0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xcc,0xcc,0xcc,0xcc,0xcc,0xd44,0xd44,0xd44,0xcf,
-0xcf,0xcf,0xcf,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,
-0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xcf,0xcf,0xcf,0xd41,
-0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
-0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,
-0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd2,0xd05,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,
-0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd5,0xd5,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,0xd0e,
-0xd0e,0xd0e,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,
-0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd8,0xd8,
-0xd14,0xd8,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,
-0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd8,0xd14,0xd14,0xd8,0xd8,0xd8,
-0xd14,0xd8,0xd8,0xd14,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,
-0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xdb,0xdb,0xdb,0xdb,0xdb,
-0xdb,0xdb,0xdb,0xdb,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0x14d3,
-0x14d3,0x1785,0x1785,0xe1,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,
-0x138,0x138,0x138,0x138,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,
-0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdce,0xdce,0xdd4,0xdd4,0xdce,
-0xe4,0xe4,0xdd1,0xdd1,0x10e0,0x10e0,0x10e0,0x10e0,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,
-0xe7,0xe7,0xe7,0xe7,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,
-0xc3c,0xc3c,0xc3c,0xc3c,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,
-0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d9,0xea,0xea,0xea,0xea,0xea,0x1788,
-0x12ff,0x1122,0xed0,0xed0,0xde9,0xde6,0xde9,0xde6,0xde6,0xddd,0xddd,0xddd,0xddd,0xddd,0xddd,0x112b,
-0x1128,0x112b,0x1128,0x1125,0x1125,0x1125,0x13c5,0x13c2,0xed,0xed,0xed,0xed,0xed,0xde3,0xde0,0xde0,
-0xde0,0xddd,0xde3,0xde0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,
-0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xf0,0xf0,0xf0,0xf0,
-0xf0,0xf0,0xf0,0xf0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec,
-0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xf0,0xdec,0xdec,0xdec,0xdec,
-0xdec,0xdec,0xdec,0xf0,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,
-0xdf2,0xdf2,0xdf2,0xdf2,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xdef,0xf3,0xf3,
-0xf3,0xf3,0xf3,0xf3,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xf6,0x13c8,0xf6,0xf6,0xf6,0xf6,
-0xf6,0x13c8,0xf6,0xf6,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,
-0xe4f,0xe4f,0xe4f,0xe4f,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,
-0xdfb,0xdfb,0xdfb,0xf9,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xf9,0xe0d,0xe01,0xe01,0xe01,0xfc,0xe01,0xe01,0xfc,0xfc,0xfc,0xfc,0xfc,
-0xe01,0xe01,0xe01,0xe01,0xe0d,0xe0d,0xe0d,0xe0d,0xfc,0xe0d,0xe0d,0xe0d,0xfc,0xe0d,0xe0d,0xe0d,
-0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,
-0xe0d,0xe0d,0xe0d,0xe0d,0xfc,0xfc,0xfc,0xfc,0xdfe,0xdfe,0xdfe,0xfc,0xfc,0xfc,0xfc,0xe04,
-0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
-0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe10,0xe10,0xe07,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
-0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0x1131,0x1131,0xff,0xff,0xff,0xff,
-0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1f,0xe1f,0xe1f,0xe1c,0xe1c,0xe1f,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,
-0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xff,0xff,0xff,0xff,0xff,0xff,0xe19,0xe19,0xe19,0xe19,
-0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0x112e,0xff,0xff,0xff,0xe16,0xe16,0xe25,0xe25,0xe25,0xe25,
-0x102,0x102,0x102,0x102,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe22,0xe25,0xe25,0xe25,
-0xe25,0xe25,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x102,0x14e2,0x14e8,0x14e5,0x1830,
-0x178b,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,
-0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,
-0x105,0x105,0x105,0x105,0xe4c,0xe4c,0xe4c,0xe49,0xe49,0xe40,0xe40,0xe49,0xe46,0xe46,0xe46,0xe46,
-0x108,0x108,0x108,0x108,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129f,0x129f,0x12a2,0x129f,0x15c,0x15c,
-0x15c,0x15c,0x15c,0x15c,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0x13d4,0x13d4,0x10b,0x10b,0x10b,0x10b,
-0x10b,0x10b,0x10b,0xe52,0x1305,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,
-0x10b,0x10b,0x10b,0x1302,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,
-0xc0f,0xc0f,0xc0f,0xc0f,0xe7f,0xe70,0xe6a,0xe7c,0xe79,0xe73,0xe73,0xe82,0xe6d,0xe76,0x10e,0x10e,
-0x10e,0x10e,0x10e,0x10e,0xf03,0xf03,0xeee,0xf03,0xf06,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,
-0x114,0x114,0x114,0x114,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xf0f,0xf0f,
-0xef4,0xefa,0xf0f,0xf0f,0xef7,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef1,
-0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,
-0xef4,0x114,0x114,0x114,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x130b,0x1308,0x13da,0x14f4,
-0x14f4,0x14f4,0x178e,0x117,0x14f4,0x14f4,0x16dd,0x16dd,0x16dd,0x16d7,0x16dd,0x16d7,0x117,0x117,0x117,0x117,
-0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,
-0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x14f1,
-0x13dd,0x13dd,0x1308,0x100b,0x100b,0x100b,0x100b,0x100b,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
-0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1b,0xf1b,0xf21,0xf21,
-0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,
-0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf2a,0xf24,0xf24,
-0xf24,0xf24,0x113a,0x113a,0x11d,0x11d,0x11d,0xf27,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,
-0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,
-0x14f7,0x16e0,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0x120,0x120,0x120,0x120,0xf33,0xf33,0xf33,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,0x14fd,
-0x14fd,0x14fd,0x14fd,0x123,0xf30,0xf30,0xf30,0xf30,0x14fa,0x123,0x123,0x123,0x123,0x123,0x123,0x123,
-0x123,0x123,0x123,0x123,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,
-0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,
-0x126,0x126,0x126,0x126,0x1032,0x1032,0x1032,0x1032,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,
-0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x102f,0x102f,0x1026,0x1023,0x129,0x129,0x129,0x1035,
-0x1035,0x1029,0x1029,0x1029,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x102c,0x129,0x129,
-0x129,0x1032,0x1032,0x1032,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x103b,0x103b,
-0x103b,0x103b,0x103b,0x103b,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x1050,0x1050,
-0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,
-0x12c,0x12c,0x12c,0x12c,0x1077,0x1077,0x1077,0x1077,0x1071,0x1791,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,
-0x12f,0x12f,0x107d,0x107d,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x12f,0x12f,
-0x12f,0x12f,0x12f,0x12f,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x108f,0x108f,0x108f,0x108f,0x108f,
-0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x1095,0x1098,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,
-0x132,0x132,0x132,0x1092,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x109e,0x109e,0x109e,
-0x109e,0x109e,0x109e,0x10a7,0x10a7,0x109e,0x109e,0x10a7,0x10a7,0x109e,0x109e,0x135,0x135,0x135,0x135,0x135,
-0x135,0x135,0x135,0x135,0x10aa,0x10aa,0x10aa,0x109e,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,
-0x109e,0x10a7,0x135,0x135,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x135,0x135,
-0x10a1,0x10ad,0x10ad,0x10ad,0x1509,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,
-0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,
-0x138,0x138,0x138,0x138,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,
-0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,0x10b3,
-0x10b3,0x10b6,0x13b,0x13b,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,
-0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,
-0x10b9,0x13e,0x13e,0x13e,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,
-0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,
-0x141,0x141,0x141,0x141,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,
-0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x10c2,0x144,0x144,
-0x144,0x144,0x144,0x10bf,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,
-0x147,0x147,0x147,0x147,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,
-0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,
-0x14a,0x14a,0x14a,0x14a,0x1140,0x1140,0x1140,0x1140,0x1149,0x1140,0x1140,0x1140,0x1149,0x1140,0x1140,0x1140,
-0x1140,0x113d,0x14d,0x14d,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,0x1146,
-0x1146,0x1146,0x1146,0x14d,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,
-0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x150,0x150,0x150,0x150,0x150,0x150,
-0x150,0x150,0x150,0x150,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,
-0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1164,0x114f,0x1164,0x114f,0x114f,0x114f,0x114f,
-0x114f,0x114f,0x114f,0x153,0x1158,0x1161,0x114f,0x1161,0x1161,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f,0x114f,
-0x114f,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x114f,0x114f,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,0x1155,
-0x1155,0x153,0x153,0x1152,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x153,0x153,
-0x153,0x153,0x153,0x153,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x115e,0x153,0x153,
-0x153,0x153,0x153,0x153,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,0x116a,0x116d,0x116d,0x116d,0x116d,
-0x115b,0x115b,0x153,0x153,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,0x1557,
-0x1557,0x1557,0x1554,0x1d1,0x12b1,0x1290,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x1293,0x1293,0x1293,
-0x1293,0x12ab,0x1293,0x1293,0x1293,0x1293,0x1299,0x147f,0x1485,0x1482,0x147c,0x156,0x16ad,0x16ad,0x156,0x156,
-0x156,0x156,0x156,0x156,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
-0x1182,0x1182,0x1182,0x1182,0x1179,0x1179,0x117c,0x1185,0x117f,0x117f,0x117f,0x1185,0x159,0x159,0x159,0x159,
-0x159,0x159,0x159,0x159,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,0x1188,
-0x1188,0x1188,0x1188,0x1188,0x1188,0x12b7,0x118e,0x12ba,0x118e,0x118e,0x118e,0x118e,0x118b,0x118b,0x118b,0x118e,
-0x16e6,0x16e9,0x15f,0x15f,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,
-0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,
-0x127e,0x162,0x162,0x162,0x11a3,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x119a,0x11a9,0x11a9,0x1197,0x1197,
-0x1197,0x1197,0x165,0x12a5,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x165,0x165,
-0x165,0x165,0x1197,0x1197,0x11c7,0x11bb,0x11c7,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,
-0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x11c4,
-0x11c4,0x11ca,0x11be,0x11c1,0x11df,0x11df,0x11df,0x11d9,0x11d9,0x11d0,0x11d9,0x11d9,0x11d0,0x11d9,0x11d9,0x11e2,
-0x11dc,0x11d3,0x16b,0x16b,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x11d6,0x16b,0x16b,
-0x16b,0x16b,0x16b,0x16b,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x11e8,0x16e,0x16e,0x16e,0x16e,0x11e5,
-0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,
-0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x16e,0x16e,0x16e,0x16e,
-0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,
-0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x11f1,0x171,0x11ee,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,0x11eb,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x174,0x174,0x174,0x11fa,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,
-0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,
-0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x177,0x177,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,
-0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,0x120c,
-0x120c,0x120c,0x120c,0x17a,0x17a,0x17a,0x17a,0x17a,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,
-0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,
-0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x180,
-0x1230,0x1230,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,
-0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,
-0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x1515,0x1515,0x189,0x189,0x189,
-0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,
-0x125a,0x125a,0x125a,0x125d,0x125d,0x125d,0x123c,0x189,0x135f,0x1266,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,
-0x135f,0x135f,0x135f,0x135f,0x135f,0x1266,0x135f,0x1266,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,
-0x135c,0x135c,0x13ec,0x13ec,0x189,0x189,0x189,0x189,0x1362,0x1362,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,
-0x135c,0x1263,0x135c,0x1263,0x1263,0x135c,0x1362,0x1269,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,
-0x180f,0x180f,0x180f,0x180f,0x180f,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,
-0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,
-0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,0x1314,
-0x1314,0x1314,0x1314,0x1314,0x128a,0x137d,0x137a,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,
-0x18c,0x18c,0x18c,0x18c,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1287,0x1284,
-0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1287,
-0x1284,0x1284,0x137d,0x137d,0x137d,0x137d,0x137d,0x137a,0x137d,0x137d,0x137d,0x1812,0x18c,0x18c,0x18c,0x18c,
-0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,
-0x13aa,0x13aa,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,
-0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,
-0x18c,0x18c,0x18c,0x18c,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,
-0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x131d,0x1317,0x1317,0x1317,
-0x18f,0x18f,0x131a,0x18f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x1320,0x1329,0x1323,0x1323,0x1329,0x1329,
-0x1329,0x1323,0x1329,0x1323,0x1323,0x1323,0x132c,0x132c,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,
-0x1326,0x1326,0x1326,0x1326,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x195,0x1332,0x1332,0x1332,
-0x1332,0x1332,0x1332,0x195,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x195,0x195,0x195,0x195,
-0x195,0x195,0x195,0x195,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x195,0x1332,0x1332,0x1332,0x1332,
-0x1332,0x1332,0x1332,0x195,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,
-0x15b4,0x15b4,0x15b4,0x15b4,0x1335,0x1335,0x1335,0x1335,0x1335,0x1335,0x1338,0x134a,0x134a,0x133e,0x133e,0x133e,
-0x133e,0x133e,0x198,0x198,0x198,0x198,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,
-0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,0x1341,
-0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x1518,
-0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,
-0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,
-0x1383,0x1380,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,
-0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,
-0x19e,0x19e,0x19e,0x19e,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,
-0x1350,0x1350,0x1350,0x1a1,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,
-0x1350,0x1350,0x1350,0x151b,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,
-0x1350,0x1350,0x1350,0x1386,0x1a1,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,
-0x1350,0x1350,0x1350,0x1350,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,
-0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,
-0x1a1,0x1a1,0x1a1,0x1a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1533,0x1533,0x1533,0x1533,0x1533,0x1536,
-0x16a4,0x1536,0x1536,0x1536,0x176d,0x181b,0x181b,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
-0x1a4,0x1a4,0x1a4,0x1a4,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1533,0x1533,0x1533,0x1536,0x1533,0x16a1,
-0x16a1,0x1a4,0x1a4,0x1a4,0x1536,0x1533,0x1533,0x1536,0x181b,0x181b,0x181b,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
-0x1a4,0x1a4,0x1a4,0x1a4,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,
-0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1a7,0x1a7,0x1a7,0x1a7,0x13f8,0x153c,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,
-0x13f8,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x16f2,0x16f2,0x1aa,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,
-0x179d,0x179d,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,
-0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
-0x179a,0x179a,0x179a,0x179a,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
-0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
-0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,
-0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,
-0x1ad,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,
-0x1ad,0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x1ad,0x13fe,0x1ad,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,
-0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,
-0x13fe,0x1ad,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,
-0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x1ad,0x13fe,
-0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x13fb,0x13fb,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1401,0x1401,0x1401,0x1401,0x1401,0x1410,0x1401,0x1404,0x1404,
-0x1401,0x1401,0x1401,0x1407,0x1407,0x1b0,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,
-0x140a,0x1416,0x1416,0x1416,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,
-0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,
-0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x141f,0x1419,0x1419,0x141f,0x141f,
-0x1428,0x1428,0x1422,0x1425,0x1425,0x141f,0x141c,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,
-0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,
-0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x142b,0x1b6,0x1b6,0x1b6,0x1b6,0x16f5,0x16f5,0x142b,0x142b,
-0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,
-0x1b6,0x1b6,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,
-0x1437,0x1437,0x1437,0x1437,0x1437,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1437,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,
-0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,
-0x1434,0x1434,0x1434,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1431,0x1431,0x1431,0x1431,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,
-0x143a,0x143a,0x143a,0x143a,0x144c,0x144f,0x1452,0x1452,0x144f,0x1455,0x1455,0x1440,0x1443,0x16fb,0x16f8,0x16f8,
-0x16f8,0x1542,0x1bc,0x1bc,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x153f,0x1701,
-0x1704,0x16fe,0x1707,0x1707,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x1bf,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x12ae,0x12ab,0x12ae,0x1296,0x12ab,0x12ab,0x12ab,0x12b1,0x12ab,0x12b1,0x12b4,0x12ab,
-0x12b1,0x12b1,0x12ab,0x12ab,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1461,
-0x146a,0x1461,0x146a,0x146a,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x146d,0x1464,0x1c5,0x1c5,0x1c5,0x1c5,
-0x1c5,0x1c5,0x1c5,0x1c5,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,
-0x1548,0x1548,0x1c8,0x1c8,0x1545,0x1545,0x1545,0x1545,0x1545,0x154b,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
-0x1c8,0x1c8,0x1c8,0x1c8,0x16b0,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,
-0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,
-0x1ce,0x1ce,0x1ce,0x1ce,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,
-0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,
-0x1d1,0x1d1,0x1d1,0x1d1,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1d4,
-0x1d4,0x1d4,0x1d4,0x1d4,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1d4,0x1d4,0x1560,0x155a,0x155d,0x1566,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,
-0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,
-0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,
-0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x1da,0x1da,0x1da,
-0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
-0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
-0x170a,0x156f,0x1575,0x16b6,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1dd,0x1dd,0x157e,
-0x157e,0x1dd,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,
-0x157e,0x1dd,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1dd,0x157e,0x157e,0x1dd,0x157e,0x157e,0x157e,
-0x157e,0x157e,0x1dd,0x1dd,0x16b3,0x157e,0x156f,0x1575,0x156f,0x1575,0x1575,0x1575,0x1575,0x1dd,0x1dd,0x1575,
-0x1575,0x1dd,0x1dd,0x1578,0x1578,0x157b,0x1dd,0x1dd,0x170d,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x156f,
-0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1581,0x157e,0x157e,0x157e,0x157e,0x1575,0x1575,0x1dd,0x1dd,0x1572,0x1572,
-0x1572,0x1572,0x1572,0x1572,0x1572,0x1dd,0x1dd,0x1dd,0x1572,0x1572,0x1572,0x1572,0x1572,0x1dd,0x1dd,0x1dd,
-0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,
-0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1e0,0x1596,0x1596,0x1596,0x1596,0x1596,
-0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1590,0x1590,0x1590,0x1584,0x1584,0x1584,0x1590,0x1590,
-0x1584,0x1593,0x1587,0x1584,0x1599,0x1599,0x158d,0x1599,0x1599,0x158a,0x17a0,0x1e0,0x15a8,0x15a8,0x15a8,0x159c,
-0x159c,0x159c,0x159c,0x159c,0x159c,0x159f,0x15a2,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x15a5,0x15a5,0x15a5,0x15a5,
-0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1710,0x1710,0x1710,0x1710,
-0x15b4,0x15b1,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x173a,0x173a,0x173a,0x173a,
-0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x15ba,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,
-0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x15c6,0x15c6,0x15c6,0x15c6,
-0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15bd,
-0x15c0,0x15c3,0x15c6,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x15d5,0x15d5,0x15d5,0x15d5,
-0x15d5,0x15c9,0x15c9,0x1ef,0x1ef,0x1ef,0x1ef,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15d2,0x15d2,0x15d2,0x15d2,
-0x15d2,0x15d2,0x15cf,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x15de,0x15de,0x15de,0x15de,
-0x15de,0x1f2,0x1f2,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15d8,0x15d8,0x15d8,0x15d8,
-0x15d8,0x15d8,0x15d8,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x15e1,0x15f3,0x15f3,0x15e7,
-0x15f0,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15ea,0x15ea,0x15ea,0x15ea,
-0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x15f9,0x15f9,0x15f9,0x15f9,
-0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,
-0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x1f8,0x1605,0x1605,0x1605,0x1605,
-0x1605,0x15ff,0x1608,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1602,0x1602,0x1602,0x1602,
-0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1605,0x1605,0x1605,0x1605,0x1605,0x1fb,0x160e,0x160e,0x160e,0x160e,
-0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,
-0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x1fe,0x161a,0x161a,0x161a,0x161a,
-0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,
-0x161a,0x161a,0x1617,0x1617,0x1617,0x1617,0x1617,0x201,0x201,0x201,0x201,0x201,0x1632,0x1632,0x1635,0x1635,
-0x1638,0x1629,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x162f,0x162f,0x162f,0x162f,
-0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x204,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x204,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x204,0x204,0x204,0x204,0x204,0x1632,0x1632,0x1632,0x1641,0x1641,0x1641,0x1641,
-0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,
-0x1641,0x1641,0x1641,0x1641,0x1641,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x164a,0x164a,0x164a,0x164a,
-0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x20a,0x20a,
-0x20a,0x20a,0x20a,0x20a,0x20a,0x1647,0x1647,0x1647,0x1647,0x20a,0x20a,0x20a,0x1665,0x1665,0x1665,0x1665,
-0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x164d,0x165f,0x165f,0x164d,0x164d,
-0x164d,0x164d,0x210,0x210,0x165f,0x165f,0x1662,0x1662,0x164d,0x164d,0x165f,0x1653,0x1650,0x1656,0x1668,0x1668,
-0x1659,0x1659,0x165c,0x165c,0x165c,0x1668,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,
-0x1719,0x1719,0x1719,0x1719,0x1716,0x1716,0x1716,0x1716,0x1713,0x1713,0x210,0x210,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,
-0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x213,0x166b,0x166b,0x166b,
-0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,
-0x166b,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x166e,0x166e,0x166e,0x166e,
-0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,
-0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,
-0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,
-0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,
-0x216,0x216,0x216,0x216,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,
-0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,
-0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,
-0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x1671,0x1680,0x1677,0x1674,0x1686,0x1686,0x167a,0x1686,
-0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,
-0x167d,0x167d,0x219,0x219,0x219,0x219,0x219,0x219,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,0x168c,
-0x168c,0x168c,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x21c,0x21c,0x21c,0x21c,0x21c,
-0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x1692,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,
-0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,
-0x172b,0x172b,0x21f,0x21f,0x21f,0x171c,0x171c,0x171c,0x1728,0x1728,0x171c,0x171c,0x171c,0x171c,0x1728,0x171c,
-0x171c,0x171c,0x171c,0x171f,0x21f,0x21f,0x21f,0x21f,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,
-0x1725,0x1725,0x1722,0x1722,0x172e,0x172e,0x172e,0x1722,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x222,
-0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,
-0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,
-0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,0x1743,
-0x1743,0x1743,0x1743,0x228,0x1743,0x1743,0x228,0x228,0x228,0x228,0x228,0x1740,0x1740,0x1740,0x1740,0x1740,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746,0x22b,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x22b,0x1746,
-0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1749,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,
-0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,
-0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,
-0x1752,0x1752,0x1752,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,
-0x174f,0x174f,0x174f,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x174c,0x174c,0x174c,0x174c,0x174c,0x174c,
-0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1776,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x231,
-0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1824,0x1821,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x1824,0x231,0x231,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1821,0x181e,0x1824,0x1824,0x1824,0x231,
-0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x181e,0x1821,0x1821,0x1821,0x1821,0x1821,0x231,0x231,0x231,0x231,
-0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x231,
-0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x1773,0x1773,0x1773,0x1773,0x1773,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,
-0x1821,0x1821,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x1773,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,0x231,
-0x1758,0x1758,0x1758,0x1758,0x1755,0x1758,0x1758,0x175b,0x175e,0x175b,0x175b,0x1758,0x234,0x234,0x234,0x234,
-0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1755,0x1755,0x1755,0x1755,0x1755,
-0x17b2,0x17b2,0x17b2,0x17b2,0x17a9,0x17a9,0x17a9,0x17a3,0x17a6,0x17a6,0x17a6,0x237,0x237,0x237,0x237,0x237,
-0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x237,0x237,0x237,0x237,0x17ac,0x17ac,
-0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x23a,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,
-0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,
-0x17cd,0x17cd,0x17cd,0x17ca,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x23a,0x17b8,0x17b8,0x17b8,0x17b8,
-0x17b8,0x17b8,0x17ca,0x17bb,0x17cd,0x17d0,0x17d0,0x17c4,0x17c1,0x17c1,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,
-0x23a,0x23a,0x23a,0x23a,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17be,0x17be,
-0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x23a,0x23a,0x23a,
-0x17dc,0x17df,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,
-0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,
-0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x240,0x240,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,
-0x1827,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,
-0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,
-0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,
-0x246,0x246,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,
-0x246,0x17e2,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17e2,0x17d9,0x17d9,0x17e2,0x17d9,0x17d9,0x246,
-0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,
-0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,
-0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x1800,0x1800,0x17f1,0x17eb,0x17eb,0x1800,0x17ee,0x1803,
-0x1803,0x1803,0x1803,0x1806,0x1806,0x17fa,0x17f7,0x17f4,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,
-0x17fd,0x17fd,0x24c,0x17fa,0x24c,0x17f4,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,
-0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,
-0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,
-0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x24f,0x24f,0x24f,0x24f,
-0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,
-0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x24f,0x24f,0x24f,0x24f,
-0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x252,0x252,0x252,
-0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,
-0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,
-0x182d,0x182d,0x182d,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,
-0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,
-0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,
-0x1770,0x1770,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,
-0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,
-0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x921,0x921,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,
-0x10d4,0x10d4,0x10d4,0x10d4,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1275,0x1473,0x1761,0x1761,0x1761,
-0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,
-0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,
-0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,
-0xc39,0xc39,0xc39,0x1278,0x1278,0x1278,0x261,0x261,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,
-0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,
-0xe67,0xe67,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
-0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
-0x261,0x261,0x261,0x261,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,
-0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0x264,0x264,0x264,0x264,0x264,
-0x264,0x264,0x264,0x264,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0x267,0x267,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,
-0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,
-0x26a,0x26a,0x26a,0x26a,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a7,0x26d,0x26d,0x10ec,0x369,0x369,0x375,0xc7b,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x375,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x375,0x375,0x375,
-0x375,0x36f,0x10ef,0x12c6,0x378,0x8ee,0x8f1,0x36c,0x36c,0x10ec,0x12c3,0x12c3,0x37b,0x37b,0x37b,0x37b,
-0x37b,0x37b,0x37b,0x37b,0x378,0x378,0x369,0x369,0x879,0x87c,0x909,0x909,0x909,0x909,0x909,0x909,
-0x909,0x909,0x909,0x909,0x372,0xf4e,0xf4b,0x12c9,0x12c9,0x12c9,0x12c9,0x12c9,0x149a,0x10f2,0x10f2,0xea0,
-0xea0,0xd6e,0xea0,0xea0,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x37b,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x37b,0x378,0x378,0x37b,0x378,0x378,0x378,0x378,0x378,0x12c3,0x12c6,
-0x36c,0x378,0x375,0x375,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,
-0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0x456,0xb67,0xb67,0xd7a,0xd7a,0x87f,
-0xd7d,0x13b9,0x13b9,0x13b9,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,
-0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,
-0x459,0x459,0x459,0x459,0x45f,0x45f,0x45f,0x1107,0x1107,0x1107,0x1107,0x1107,0x45c,0x45c,0x45c,0x45c,
-0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,
-0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x1104,0x1104,
-0x1104,0x1104,0x1104,0x1104,0x462,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,
-0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,
-0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x45f,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,
-0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,
-0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x465,0x465,0x465,0x465,0x468,0x963,
-0xf9c,0xf9c,0xf9f,0xf9c,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,
-0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0x46b,0x465,0xf9f,0xf9c,
-0xf9f,0xf9c,0xf9f,0xf9c,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,
-0x47a,0x47a,0x47a,0x47a,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x47a,0x47a,0x47a,0x47a,
-0x47a,0x47a,0x47a,0x47a,0x657,0x657,0x65a,0x495,0x666,0x663,0x663,0x660,0x4bf,0x4bf,0x47d,0x47d,
-0x47d,0x47d,0x47d,0xa95,0x669,0x4a1,0x681,0x684,0x4b6,0x669,0x4a4,0x4a4,0x495,0x4b0,0x4b0,0x657,
-0x4bc,0x4b9,0x65d,0x48f,0x486,0x486,0x489,0x489,0x489,0x489,0x489,0x48c,0x489,0x489,0x489,0x480,
-0x4c8,0x4c5,0x4c2,0x4c2,0x675,0x4aa,0x4a7,0x672,0x66f,0x66c,0x67e,0x498,0x67b,0x67b,0x4ad,0x4b0,
-0x678,0x678,0x4ad,0x4b0,0x492,0x495,0x495,0x495,0x4b3,0x49e,0x49b,0xb7c,0xa9b,0xa9e,0xa98,0xa98,
-0xa98,0xa98,0xb73,0xb73,0xb73,0xb73,0xb79,0xca8,0xca5,0xd89,0xd8c,0xb76,0xd8c,0xd8c,0xd8c,0xd8c,
-0xd89,0xd8c,0xd8c,0xb70,0x4fb,0x4fb,0x513,0x693,0x4f8,0x690,0x4fb,0x510,0x4f8,0x693,0x50a,0x513,
-0x513,0x513,0x50a,0x50a,0x513,0x513,0x513,0x69c,0x4f8,0x513,0x696,0x4f8,0x507,0x513,0x513,0x513,
-0x513,0x513,0x4f8,0x4f8,0x4fe,0x690,0x699,0x4f8,0x513,0x4f8,0x69f,0x4f8,0x513,0x501,0x519,0x6a2,
-0x513,0x513,0x504,0x50a,0x513,0x513,0x516,0x513,0x50a,0x50d,0x50d,0x50d,0x50d,0xaaa,0xaa7,0xcab,
-0xd9b,0xb97,0xb9a,0xb9a,0xb94,0xb91,0xb91,0xb91,0xb91,0xb9a,0xb97,0xb97,0xb97,0xb97,0xb8e,0xb91,
-0xd98,0xeac,0xeaf,0xfa5,0x1116,0x1116,0x1116,0x6a8,0x6a5,0x51c,0x51f,0x51f,0x51f,0x51f,0x51f,0x6a5,
-0x6a8,0x6a8,0x6a5,0x51f,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,0x6ae,
-0x528,0x528,0x528,0x528,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x6ab,0x522,0x522,
-0x522,0x522,0x522,0x522,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52b,0x534,0x534,0x52e,
-0x52e,0x52e,0x531,0x52b,0x52e,0x52e,0x52b,0x52b,0x52b,0x52b,0x52e,0x52e,0x6b1,0x6b1,0x52b,0x52b,
-0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x531,0x531,0x531,
-0x52e,0x52e,0x6b4,0x52e,0x6b4,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52b,0x52e,0x52b,0x52b,
-0x52b,0x52b,0x52b,0x52b,0x52e,0x52e,0x52b,0x6b1,0x52b,0x52b,0x52b,0xab0,0xab0,0xab0,0xab0,0xab0,
-0xab0,0xab0,0xab0,0xab0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,
-0x6ba,0x537,0x6ba,0x6ba,0x53a,0x537,0x537,0x6ba,0x6ba,0x53a,0x537,0x6ba,0x53a,0x537,0x537,0x6ba,
-0x537,0x6ba,0x546,0x543,0x537,0x6ba,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x6ba,0x6ba,0x6ba,
-0x6ba,0x537,0x537,0x6ba,0x53a,0x6ba,0x53a,0x6ba,0x6ba,0x6ba,0x6ba,0x6ba,0x6c0,0x53d,0x6ba,0x53d,
-0x53d,0x537,0x537,0x537,0x6ba,0x6ba,0x6ba,0x6ba,0x537,0x537,0x537,0x537,0x6ba,0x6ba,0x537,0x537,
-0x537,0x53a,0x537,0x537,0x53a,0x537,0x537,0x53a,0x6ba,0x53a,0x537,0x537,0x6ba,0x537,0x537,0x537,
-0x537,0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
-0x6bd,0x6ba,0x53a,0x537,0x6ba,0x6ba,0x6ba,0x6ba,0x537,0x537,0x6ba,0x6ba,0x537,0x53a,0x6bd,0x6bd,
-0x53a,0x53a,0x537,0x537,0x53a,0x53a,0x537,0x537,0x53a,0x53a,0x537,0x537,0x537,0x537,0x537,0x537,
-0x53a,0x53a,0x6ba,0x6ba,0x53a,0x53a,0x6ba,0x6ba,0x53a,0x53a,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x6ba,0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x6ba,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,
-0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,
-0x537,0x537,0x537,0x537,0x537,0x537,0x53a,0x53a,0x53a,0x53a,0x537,0x540,0x537,0x537,0xba0,0xba0,
-0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0x549,0xab3,0x549,0x549,
-0x549,0x549,0x549,0x549,0x555,0x552,0x555,0x552,0x549,0x549,0x549,0x549,0x549,0x549,0x6c3,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x7c5,0x7c5,0x549,0x549,0x549,0x549,0x54f,0x54f,0x549,0x549,
-0x549,0x549,0x549,0x549,0x54c,0x7cb,0x7c8,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,
-0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0xab3,0xba6,0xab3,0xab3,0xab3,
-0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,
-0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,0x558,
-0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x55e,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,
-0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xd20,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d5,0x6d5,0x6d5,0x6d5,0x561,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x564,0x564,0x564,0x564,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,0x6d8,
-0x567,0x567,0x6d8,0x6d8,0x6d8,0x6d8,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,
-0x6de,0x6de,0x56a,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x6db,0x56d,0x56d,0x56a,0x56a,0x570,0x570,
-0x570,0x570,0x6de,0x6de,0x570,0x570,0x6e1,0x6de,0x56a,0x56a,0x56a,0x56a,0x6de,0x6de,0x570,0x570,
-0x6e1,0x6de,0x56a,0x56a,0x56a,0x56a,0x6de,0x6de,0x6db,0x56a,0x570,0x6de,0x56a,0x56a,0x6db,0x6de,
-0x6de,0x6de,0x570,0x570,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,0x56a,
-0x56a,0x56a,0x6de,0x6db,0x6de,0x6db,0x56a,0x570,0x570,0x570,0x570,0x570,0x570,0x56a,0x56a,0x6db,
-0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xbac,0xbac,0xbac,0xbaf,0xbaf,0xc24,0xc24,0xbac,
-0x57c,0x57c,0x57c,0x57c,0x579,0x6f0,0x6f0,0x573,0x573,0x6e4,0x573,0x573,0x573,0x573,0x6ea,0x6e4,
-0x573,0x579,0x573,0x573,0xd29,0xd29,0xbb2,0xbb2,0xda7,0xabc,0x576,0x576,0x6e7,0x57f,0x6e7,0x576,
-0x579,0x573,0x579,0x579,0x573,0x573,0x579,0x573,0x573,0x573,0x579,0x573,0x573,0x573,0x579,0x579,
-0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x579,0x57c,0x57c,0x576,0x573,0x573,0x573,0x573,
-0x6f3,0x573,0x6f3,0x573,0x573,0x573,0x573,0x573,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,
-0x7ce,0x7ce,0x7ce,0x7ce,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,0x573,
-0x6f3,0x6f0,0x582,0x6f3,0x6e4,0x6ea,0x579,0x6e4,0x6ed,0x6e4,0x6e4,0x573,0x6e4,0x6f0,0x582,0x6f0,
-0xabc,0xabc,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb8,0xbb5,0xbb5,0xda1,0xe5e,
-0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,
-0x585,0x585,0x585,0x585,0x588,0x136e,0x136e,0x136e,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
-0x14be,0x58e,0x59a,0x58e,0x58e,0x136e,0x588,0x588,0x59a,0x59a,0x1371,0x1371,0x5a0,0x5a0,0x588,0x594,
-0x588,0x588,0x594,0x588,0x594,0x588,0x594,0x588,0x588,0x588,0x588,0x588,0x588,0x594,0x588,0x588,
-0x588,0x588,0x588,0x588,0x136e,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x594,
-0x594,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x6f9,0x588,0x588,0x588,0x588,0x588,0x588,
-0x594,0x588,0x588,0x594,0x588,0x588,0x588,0x588,0x136e,0x588,0x136e,0x588,0x588,0x588,0x588,0x136e,
-0x136e,0x136e,0x588,0x1272,0x588,0x588,0x588,0x591,0x591,0x591,0x591,0x12f0,0x12f0,0x588,0x58b,0x597,
-0x59d,0x588,0x588,0x588,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,0xbbe,0xbbb,
-0xbbe,0xbbb,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x6f6,0x588,0x594,0x588,0x588,
-0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x136e,0x588,0x588,0x588,
-0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x136e,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
-0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5c1,0x5c7,0x5b8,0x5bb,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,
-0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,
-0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,
-0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,
-0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,
-0x5c4,0x5ca,0x5c7,0x5c1,0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,
-0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x12f3,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c4,0x5ca,
-0x5c4,0x5ca,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,0x5c7,0x5c1,
-0x5c4,0x5c7,0x5c1,0x5c4,0x5c7,0x5c1,0x5c4,0x5ca,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,
-0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c1,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,
-0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,0x5c4,0x5c1,0x5c4,0x5c4,0x5c1,0x5c1,0x5c1,0x5c4,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c1,0x5c1,
-0x5c4,0x5c1,0x5c4,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
-0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
-0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5ca,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5cd,0x5cd,0x5cd,0x5cd,
-0xfb1,0xfb1,0xfb1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x14c1,0x16ce,0x16ce,0x82b,0x831,0x831,0x83d,
-0x83d,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x825,0x82e,0x5dc,0x5dc,0x5d6,0x5dc,
-0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,
-0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5dc,
-0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,
-0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,
-0x5df,0x5dc,0x5d6,0x5d9,0x5df,0x5dc,0x5d6,0x5d9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,
-0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c9,0x6c6,0x6c6,0x6c6,0x6c6,
-0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,
-0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6c6,0x6cf,0x6cf,
-0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6d2,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,
-0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cf,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,
-0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6cc,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,
-0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6d5,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,
-0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,
-0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0xc12,0x891,0x88b,0x888,0x88e,0x885,0x711,0x714,
-0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x897,0x711,0x711,0x711,0x711,0x711,0x711,0x711,
-0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,
-0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x894,0x894,0x717,0x8a6,0x8a9,0x8af,
-0x7d1,0x7dd,0x8c4,0x7da,0x89d,0x89a,0x89d,0x89a,0x8a3,0x8a0,0x8a3,0x8a0,0x89d,0x89a,0x7d7,0x8af,
-0x89d,0x89a,0x89d,0x89a,0x89d,0x89a,0x89d,0x89a,0x8b2,0x8bb,0x8b8,0x8b8,0x71d,0x759,0x759,0x759,
-0x759,0x759,0x759,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,
-0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x720,0x73b,0x71a,0x741,0x744,0x73e,0x756,0x756,0x756,
-0x756,0x756,0x756,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,
-0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x720,0x73b,0x71a,0x73b,0xc15,0x7bf,0x7bf,0x7bf,0x7bf,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0xd9d,0xdad,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd1d,
+0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,
+0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x113b,
+0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,
+0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x11fb,0x117b,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0xbe9,0xbf0,0xbf8,0xc00,0x17b6,0x17b6,0x17b6,0xc08,0xc10,0xc13,0x17e6,0x17de,0xc46,0xd73,0xd77,0xd7b,
+0x4ef,0x4ef,0x4ef,0x4ef,0xd83,0x1945,0xd8b,0xfaf,0x166a,0xb16,0xb1c,0x106d,0xc1b,0x181e,0xcc0,0x4ef,
+0x167f,0x1672,0x1677,0x17be,0xc23,0xc2b,0x11c6,0x11cc,0x1b46,0xfcc,0x1b36,0x6e7,0x4ef,0x4ef,0x4ef,0x4ef,
+0x1b66,0x1b66,0x1b66,0x1b66,0x1b66,0x1b66,0x1b66,0x1b66,0x1b66,0x101d,0x1025,0x102d,0x4ef,0x4ef,0x4ef,0x4ef,
+0xc33,0xc36,0xe1a,0x1bae,0x1065,0x6ef,0x4ef,0x10fe,0xd14,0xd93,0x4ef,0x4ef,0x1afb,0xf62,0xf6a,0x1bee,
+0xc9a,0xca1,0xca9,0x19b1,0x1b8e,0x4ef,0x1b6e,0x103d,0x19b9,0xe22,0xe2a,0xe32,0x108d,0x6f7,0x4ef,0x4ef,
+0x19c1,0x19c1,0x6ff,0x4ef,0x1c1b,0x1116,0x1c13,0x111e,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0xe3a,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x1a16,0x1a18,0xeaf,0xeb6,0x19d1,0x19c9,0xe42,0xf8f,0x1af3,0xf4a,0xf52,0x1035,0x1b0b,0x1b0f,0xf87,0x10ad,
+0x1000,0x1005,0x707,0x4ef,0x1106,0x110e,0x1b56,0x100d,0xfe2,0xfe8,0xff0,0xff8,0x4ef,0x4ef,0x4ef,0x4ef,
+0x1c5b,0x1c53,0x11b6,0x11be,0x1bd6,0x1bce,0x10d4,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1bbe,0x1095,0x109d,0x10a5,
+0x1b86,0x1b7e,0x104d,0x11ae,0x1b17,0xf9f,0x70f,0x4ef,0x10e4,0x10ec,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x1be6,0x1bde,0x10dc,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x79a,0x79e,0x717,0x7a6,0x71e,
+0x726,0x1bb6,0x1085,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1174,0x1179,0x1181,0x1188,0x11a0,
+0x11a6,0x4ef,0x4ef,0x72e,0x732,0x73a,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x188b,0x188b,0x188b,0x188b,0x188b,
+0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,
+0x188b,0x188b,0x188b,0x188b,0x188b,0x188b,0x1890,0xd1c,0xd23,0xd23,0xd23,0x1898,0x1898,0x1898,0xd2b,0x1c0b,
+0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x742,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,
+0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19db,0x19d9,0x19e3,
+0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x19e6,0x19d9,0x19d9,0x19d9,0x19d9,0x19d9,0x74a,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,
+0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0x1a20,0xebe,0x1055,0x752,0x4ef,
+0x4ef,0x756,0xfa7,0x1ba6,0x1b9e,0x1075,0x107d,0x75e,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x1b03,0x1b03,0xf72,0xf77,0xf7f,0x4ef,0x4ef,0x1198,0xec6,0xec7,0xec7,0xec7,0xec7,
+0xec7,0xec7,0xec7,0x766,0x4ef,0x4ef,0x762,0x7b7,0x7b7,0x7b7,0x7b7,0x7b7,0x7b7,0x7b7,0x7b7,0x7b7,
+0x7b7,0x7b7,0x76e,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1b3e,0x1b3e,0x1b3e,0xfbf,0xfc4,
+0x776,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1687,0x1687,0x1687,0x1687,0x1687,
+0x1687,0x1687,0xb24,0x1697,0xb2c,0x1698,0x168f,0x16a0,0x16a6,0x16ae,0xb34,0x17d6,0x17d6,0x77e,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x17c6,0x17c6,0xc3e,0xd33,0x4ef,0x4ef,0x4ef,0x4ef,0x16df,0x16e6,0xb3c,0x16e9,0xb44,
+0xb4c,0xb54,0x16e3,0xb5c,0xb64,0xb6c,0x16e8,0x16f0,0x16df,0x16e6,0x16e2,0x16e9,0x16f1,0x16e0,0x16e7,0x16e3,
+0xb73,0x16b6,0x16be,0x16c5,0x16cc,0x16b9,0x16c1,0x16c8,0x16cf,0xb7b,0x16d7,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,
+0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c33,0x1c23,0x1c26,0x1c23,0x1c2d,0x1164,
+0x786,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1190,0x78e,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x792,0x10b5,0x1bc6,0x10bb,
+0x1bc6,0x10c3,0x10c8,0x10cc,0x10cc,0x1126,0x112e,0x1136,0x113e,0x1146,0x114c,0x1154,0x115c,0x7ae,0x7ae,0x7ae,
+0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,
+0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,
+0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7ae,0x7af,0xb83,0x16f9,0x16f9,
+0x16f9,0x7bf,0x7bf,0x7bf,0x7bf,0x17ce,0x17ce,0x17ce,0x17ce,0x17ce,0x17ce,0x17ce,0x7c7,0x7bf,0x7bf,0x7bf,
 0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,
-0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x126c,0x126c,
-0x126c,0x126c,0x126c,0x7c2,0x7d7,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x7da,0x8fa,0x8fa,
-0x8fa,0x8fa,0x7e0,0x7e0,0x8b5,0x8c1,0x8c1,0x8c1,0x8c1,0x8be,0x7d4,0x8ac,0xae0,0xae0,0xae0,0xc27,
-0xc45,0xc42,0xafb,0x882,0x7e6,0x7e3,0x7e6,0x7e9,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e6,0x7e3,0x7e3,
-0x7e3,0x7e3,0x7e3,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3,0x7e6,0x7e6,0x7e3,
-0x7e6,0x7e6,0x7e3,0x7e3,0xc48,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f2,
-0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,
-0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f8,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f5,0x7f2,0x7f2,
-0x7f2,0x7f2,0x7f2,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2,0x7f5,0x7f5,0x7f2,
-0x7f5,0x7f5,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f8,0x7f2,0x7f2,0x7f2,0x7f2,
-0x7f2,0x7f2,0x7f8,0x7f2,0x7f2,0x7f2,0x7f2,0x7f2,0x7f5,0x7f8,0x7f8,0x7f5,0x7f5,0x7f5,0x7f5,0x8ca,
-0x8cd,0x7fb,0x7fe,0xc30,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x807,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,
-0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0xd32,0xd32,0xe61,0x80a,
-0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0xd2c,0xd2c,0xd2c,0xd2c,
-0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
-0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8df,0x816,0x816,0x816,0x816,0x816,0x816,0xd35,0xd35,0xd35,0xd35,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0xd35,0xd35,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,
-0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,
-0x819,0x819,0x819,0x819,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x81c,0x81c,0x81c,0x81c,
-0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,
-0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0xe64,0xe64,
-0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,
-0xe64,0xe64,0xe64,0xe64,0x10d4,0x10d4,0x10d4,0x10d4,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x822,0x822,0x81f,0x822,0x81f,0x822,
-0x822,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x822,0x81f,0x822,0x81f,0x822,
-0x822,0x81f,0x81f,0x822,0x822,0x822,0x81f,0x81f,0x81f,0x81f,0x1476,0x1476,0xc39,0xc39,0xc39,0xc39,
-0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0x8d6,0x8d6,0x8d6,0x8d6,
-0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,
-0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x12a8,0x12a8,0x12a8,0x12a8,
-0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0xd2c,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,
-0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,
-0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8dc,
-0x8d9,0x8dc,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,
-0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,
-0xc33,0xc33,0xc33,0xc33,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8df,0x8df,0x8df,0xd35,0x95d,0x93f,0x93f,0x93f,0x93f,0x939,0x93f,0x93f,0x951,0x93f,0x93f,0x93c,
-0x948,0x94e,0x94e,0x94e,0x94e,0x94e,0x951,0x939,0x945,0x939,0x939,0x939,0x930,0x930,0x939,0x939,
-0x939,0x939,0x939,0x939,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x930,0x939,0x930,0x939,0x930,0x94b,0x942,
-0x94b,0x942,0x95a,0x95a,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,
-0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,0x969,
-0x969,0x969,0x969,0x969,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,
-0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,
-0x96c,0x96c,0x96c,0x96c,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,
-0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,
-0x96f,0x96f,0x96f,0x96f,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x972,0x972,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x975,0x975,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
-0x978,0x978,0x978,0x978,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
-0x97b,0x97b,0x97b,0x97b,0x97e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
-0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
-0x97e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
-0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0xa0e,0xa0e,0xf96,0xa0e,
-0xa0e,0xa0e,0xa11,0xa0e,0xf96,0xa0e,0xa0e,0xf8d,0xa08,0x9fc,0x9fc,0x9fc,0x9fc,0xa0b,0x9fc,0xf7b,
-0xf7b,0xf7b,0x9fc,0x9ff,0xa08,0xa02,0xf81,0xf90,0xf90,0xf7b,0xf7b,0xf96,0xb01,0xb01,0xb01,0xb01,
-0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xa14,0xa14,0xa05,0xa05,0xa05,0xa05,0xa0e,0xa0e,0xa0e,0xa0e,
-0xa0e,0xa0e,0xa0b,0xa0b,0x9fc,0x9fc,0xf96,0xf96,0xf96,0xf96,0xf7b,0xf7b,0xa0e,0xa0e,0xa0e,0xa0e,
-0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,
-0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa0e,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
+0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,
+0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,
+0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x194d,0xd9b,0x1955,
+0x1955,0xd9f,0xecf,0xed7,0xedf,0xe4a,0xe50,0x19fe,0xe58,0x19f6,0xe60,0xe64,0xe6b,0xe73,0xe7a,0xe82,
+0xe87,0xe87,0xe87,0xe87,0xe87,0x1a4f,0x1a57,0x1a5f,0x1a63,0x1a6b,0x1a30,0x1a73,0x1a7b,0x1a5f,0x1a83,0x1a8b,
+0x1a92,0x1a9a,0x1a38,0x1a5f,0x1a9d,0x1a40,0x1a47,0x1aa5,0x1aab,0x1b27,0x1b2e,0x1b1f,0x1ab3,0x1abb,0x1ac3,0x1acb,
+0x1b96,0x1ad3,0x1adb,0xee7,0xeef,0x1a28,0x1a28,0x1a28,0xef7,0x1b4e,0x1b4e,0xfd4,0xfda,0x1b76,0x1b76,0x1b76,
+0x1b76,0x1b76,0x1b76,0x1045,0x4ef,0x1c4b,0x1c43,0x116c,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0xf0f,0xf17,0xf1f,
+0xf27,0xf2f,0xf37,0xf3e,0xf42,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,0x1bf6,
+0x1bf6,0x1bf6,0x1bf6,0x1bfb,0x1bf6,0x1bf6,0x1bf6,0x10f4,0x10f6,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x11d4,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,
+0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x11dc,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,
+0x4ef,0x4ef,0x4ef,0x4ef,0x4ef,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x122c,0x11e4,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11ec,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,0x1709,
+0x1709,0x1709,0x1709,0x1709,0x1709,0x1234,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11ed,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,0x11e4,
+0x11e4,0x11e4,0x11e4,0x11e4,0x11ed,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x11f5,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,
+0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x11f9,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x123c,0x1ae3,0x1ae3,0x1ae3,0x1ae3,0x1ae3,0x1ae3,0x1244,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x1594,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x159c,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,
+0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15a4,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,
+0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x15ac,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,
+0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1701,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,
+0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1a06,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,
+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,
+0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x1c63,0x4ce,0x2c4,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c7,0x2d0,0x2ca,0x2ca,0x2cd,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x7f5,0x7ef,0x7d4,0x7cb,
+0x7c2,0x7bf,0x7b6,0x7d1,0x7bc,0x7c8,0x7cb,0x7e6,0x7dd,0x7ce,0x7f2,0x7c5,0x7b3,0x7b3,0x7b3,0x7b3,
+0x7b3,0x7b3,0x7b3,0x7b3,0x7b3,0x7b3,0x7da,0x7d7,0x7e0,0x7e0,0x7e0,0x7ef,0x7b6,0x801,0x801,0x801,
+0x801,0x801,0x801,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,
+0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7fb,0x7bc,0x7c2,0x7c8,0x7ec,0x7b0,0x7e9,0x7fe,0x7fe,0x7fe,
+0x7fe,0x7fe,0x7fe,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,
+0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7bc,0x7e3,0x7b9,0x7e0,0x2c4,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x2d3,0x2d3,0x2d3,0x2d3,
+0x2d3,0x2e2,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,
+0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d6,0x64b,0x80a,0x80d,
+0x651,0x80d,0x807,0x648,0x63f,0x2dc,0x65d,0x2df,0x810,0x636,0x654,0x804,0x64e,0x65a,0x63c,0x63c,
+0x642,0x2d9,0x648,0x645,0x63f,0x63c,0x65d,0x2df,0x639,0x639,0x639,0x64b,0x2e8,0x2e8,0x2e8,0x2e8,
+0x2e8,0x2e8,0x666,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x666,0x2e8,0x2e8,0x2e8,
+0x2e8,0x2e8,0x2e8,0x657,0x666,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x666,0x660,0x663,0x663,0x2e5,0x2e5,
+0x2e5,0x2e5,0x660,0x2e5,0x663,0x663,0x663,0x2e5,0x663,0x663,0x2e5,0x2e5,0x660,0x2e5,0x663,0x663,
+0x2e5,0x2e5,0x2e5,0x657,0x660,0x663,0x663,0x2e5,0x663,0x2e5,0x660,0x2e5,0x2f4,0x66c,0x2f4,0x2eb,
+0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f1,0x669,0x2f4,0x66c,
+0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x66c,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,
+0x2f4,0x2eb,0x672,0x669,0x2f4,0x2eb,0x2f4,0x66c,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x669,0x675,0x66f,
+0x2f4,0x2eb,0x2f4,0x2eb,0x669,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x675,0x66f,0x672,0x669,0x2f4,
+0x66c,0x2f4,0x2eb,0x2f4,0x66c,0x678,0x672,0x669,0x2f4,0x66c,0x2f4,0x2eb,0x2f4,0x2eb,0x672,0x669,
+0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,
+0x2f4,0x2eb,0x672,0x669,0x2f4,0x2eb,0x2f4,0x66c,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,
+0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2f4,0x2eb,0x2f4,0x2eb,0x2f4,0x2eb,0x2ee,0x2f7,0x303,0x303,0x2f7,
+0x303,0x2f7,0x303,0x303,0x2f7,0x303,0x303,0x303,0x2f7,0x2f7,0x303,0x303,0x303,0x303,0x2f7,0x303,
+0x303,0x2f7,0x303,0x303,0x303,0x2f7,0x2f7,0x2f7,0x303,0x303,0x2f7,0x303,0x306,0x2fa,0x303,0x2f7,
+0x303,0x2f7,0x303,0x303,0x2f7,0x303,0x2f7,0x2f7,0x303,0x2f7,0x303,0x306,0x2fa,0x303,0x303,0x303,
+0x2f7,0x303,0x2f7,0x303,0x303,0x2f7,0x2f7,0x300,0x303,0x2f7,0x2f7,0x2f7,0x300,0x300,0x300,0x300,
+0x309,0x309,0x2fd,0x309,0x309,0x2fd,0x309,0x309,0x2fd,0x306,0x67b,0x306,0x67b,0x306,0x67b,0x306,
+0x67b,0x306,0x67b,0x306,0x67b,0x306,0x67b,0x306,0x67b,0x2f7,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,
+0x303,0x2f7,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x2fa,0x309,0x309,0x2fd,
+0x306,0x2fa,0x9e4,0x9e4,0x9e7,0x9e1,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,
+0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,0x306,0x2fa,
+0x9e7,0x9e1,0x9e7,0x9e1,0x9e4,0x9de,0x9e7,0x9e1,0xba3,0xca5,0x9e4,0x9de,0x9e4,0x9de,0x9e7,0x9e1,
+0x9e7,0x9e1,0x9e7,0x9e1,0x9e7,0x9e1,0x9e7,0x9e1,0x9e7,0x9e1,0x9e7,0x9e1,0xca5,0xca5,0xca5,0xd9e,
+0xd9e,0xd9e,0xda1,0xda1,0xd9e,0xda1,0xda1,0xd9e,0xd9e,0xda1,0xee5,0xee8,0xee8,0xee8,0xee8,0xee5,
+0xee8,0xee5,0xee8,0xee5,0xee8,0xee5,0xee8,0xee5,0x30c,0x67e,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,
+0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x67e,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,
+0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,
+0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30f,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,
+0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x30c,0x9ea,0x9ea,0x9ea,
+0x9ea,0x9ea,0xca8,0xca8,0x327,0x327,0x327,0x327,0x327,0x327,0x327,0x327,0x327,0x31e,0x31e,0x31e,
+0x31e,0x31e,0x31e,0x31e,0x31b,0x31b,0x318,0x318,0x684,0x318,0x31e,0x687,0x321,0x687,0x687,0x687,
+0x321,0x687,0x31e,0x31e,0x68a,0x324,0x318,0x318,0x318,0x318,0x318,0x318,0x681,0x681,0x681,0x681,
+0x315,0x681,0x318,0xb1c,0x327,0x327,0x327,0x327,0x327,0x312,0x312,0x312,0x312,0x312,0x9f3,0x9f3,
+0x9f0,0x9ed,0x9f0,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,
+0xcab,0xcab,0xcab,0xcab,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,
+0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,
+0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,
+0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,0x68d,
+0x68d,0x68d,0x68d,0x68d,0x690,0x690,0x948,0x690,0x690,0x94b,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,
+0xb1f,0xb1f,0xb1f,0xc5d,0xd6e,0xd6e,0xd6e,0xd6e,0xd6e,0xd6e,0xd6e,0xd6e,0xeac,0xeac,0xeac,0xeac,
+0xeaf,0xd71,0xd71,0xd71,0x693,0x693,0xb22,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,
+0xca2,0xca2,0xca2,0xca2,0xf93,0xf90,0xf93,0xf90,0x333,0x33c,0xf93,0xf90,0x27,0x27,0x342,0xeeb,
+0xeeb,0xeeb,0x32a,0x14e8,0x27,0x27,0x27,0x27,0x33f,0x32d,0x351,0x330,0x351,0x351,0x351,0x27,
+0x351,0x27,0x351,0x351,0x348,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,
+0x699,0x699,0x699,0x699,0x699,0x699,0x27,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x351,0x351,
+0x348,0x348,0x348,0x348,0x348,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,
+0x696,0x696,0x696,0x696,0x696,0x696,0x345,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x348,0x348,
+0x348,0x348,0x348,0xf93,0x354,0x354,0x357,0x351,0x351,0x354,0x34b,0x9f6,0xbac,0xba9,0x34e,0x9f6,
+0x34e,0x9f6,0x34e,0x9f6,0x34e,0x9f6,0x339,0x336,0x339,0x336,0x339,0x336,0x339,0x336,0x339,0x336,
+0x339,0x336,0x339,0x336,0x354,0x354,0x34b,0x345,0xb5b,0xb58,0xba6,0xcb1,0xcae,0xcb4,0xcb1,0xcae,
+0xda4,0xda7,0xda7,0xda7,0xa05,0x6a5,0x363,0x366,0x363,0x363,0x363,0x366,0x363,0x363,0x363,0x363,
+0x366,0xa05,0x366,0x363,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a5,0x6a2,0x6a2,
+0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,
+0x6a2,0x6a2,0x6a2,0x6a2,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69f,0x69c,0x69c,
+0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,
+0x9ff,0x69f,0x35d,0x360,0x35d,0x35d,0x35d,0x360,0x35d,0x35d,0x35d,0x35d,0x360,0x9ff,0x360,0x35d,
+0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,
+0x363,0x35d,0x363,0x35d,0x363,0x35d,0x366,0x360,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,
+0x363,0x35d,0x35a,0x954,0x957,0x939,0x939,0x113d,0x9f9,0x9f9,0xbb2,0xbaf,0xa02,0x9fc,0xa02,0x9fc,
+0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,
+0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,
+0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,
+0x363,0x366,0x360,0x363,0x35d,0xbb2,0xbaf,0x363,0x35d,0xbb2,0xbaf,0x363,0x35d,0xbb2,0xbaf,0xeee,
+0x366,0x360,0x366,0x360,0x363,0x35d,0x366,0x360,0x363,0x35d,0x366,0x360,0x366,0x360,0x366,0x360,
+0x363,0x35d,0x366,0x360,0x366,0x360,0x366,0x360,0x363,0x35d,0x366,0x360,0xa05,0x9ff,0x366,0x360,
+0x366,0x360,0x366,0x360,0x366,0x360,0xdad,0xdaa,0x366,0x360,0xef1,0xeee,0xef1,0xeee,0xef1,0xeee,
+0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,
+0xf1e,0xf1b,0xf1e,0xf1b,0x1011,0x100e,0x1011,0x100e,0x1011,0x100e,0x1011,0x100e,0x1011,0x100e,0x1011,0x100e,
+0x1011,0x100e,0x1011,0x100e,0x1176,0x1173,0x1350,0x134d,0x1521,0x151e,0x1521,0x151e,0x1521,0x151e,0x1521,0x151e,
+0x2a,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x2a,0x2a,0x378,0x369,0x369,
+0x369,0x36c,0x369,0x369,0x2a,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,
+0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,
+0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x372,0x2a,0x8be,0xa08,0x2a,0x2a,0x14eb,0x14eb,0x1404,
+0x2d,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x978,0x978,0xdb0,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0xef4,0x37b,0x37b,0x37b,0x387,0x37b,
+0x37e,0x37b,0x37b,0x38a,0x97b,0xdb3,0xdb6,0xdb3,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x38d,0x38d,0x38d,0x384,0x381,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+0xcb7,0xcb7,0xcb7,0xcb7,0x1407,0x14ee,0xf9c,0xf9c,0xf9c,0xf99,0xf99,0xdbf,0x8c4,0xcc6,0xcc3,0xcc3,
+0xcba,0xcba,0xcba,0xcba,0xcba,0xcba,0xf96,0xf96,0xf96,0xf96,0xf96,0x8c1,0x14e2,0x30,0xdbc,0x8c7,
+0x1317,0x3a8,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,
+0x8ca,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x93f,0x93f,0x93f,0x93f,0x93f,
+0x93f,0x93f,0x93f,0xb52,0xb52,0xb52,0xcba,0xcc0,0xcbd,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0x1314,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x3a2,0x39f,0x39c,0x399,0xbb5,0xbb5,
+0x93c,0x3a8,0x3a8,0x3b4,0x3a8,0x3ae,0x3ae,0x3ae,0x3ae,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0xa0e,0xa0e,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0xa0e,0x3ab,0x3a8,0x3ab,0x3a8,
+0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0x3a8,0xa0e,0x3a8,0x3a8,0x3a8,0x3ab,
+0x3b7,0x3a8,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x390,0x399,0x396,0x396,0x393,0x393,0x393,
+0x393,0x3b1,0x3b1,0x393,0x393,0x399,0x396,0x396,0x396,0x393,0xcc9,0xcc9,0x3a5,0x3a5,0x3a5,0x3a5,
+0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0xa0e,0xa0e,0xa0e,0xa0b,0xa0b,0xcc9,0xa26,0xa26,0xa26,0xa20,
+0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0xa1d,0xa20,0xa1d,0x33,0xa11,0xa23,0xa14,0xa23,0xa23,
 0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xd86,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,
-0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2c,0xa32,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0x110d,
-0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110a,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,
-0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,
-0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa44,0xa44,0xa44,0xa44,
-0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
-0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa68,0xa68,0xa68,0xa6b,
-0xa6b,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
-0xa50,0xa50,0xa65,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa65,0xa65,0xa68,0xa68,0xa68,0xa68,
-0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,
-0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa74,0xa74,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa8c,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,
-0xa89,0xa89,0xa89,0xa89,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,
-0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xba6,
-0xba6,0xba6,0xba6,0xba6,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,
-0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,
-0xabf,0xabf,0xabf,0xabf,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xaec,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xaef,0xaef,0xc36,0xc36,
-0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
-0xc36,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xb10,0xb10,0xb10,0xb10,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0x14c4,0xb19,0xb19,0xb19,0xb19,
-0xb19,0xb19,0xcbd,0xcbd,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,
-0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xcba,0xcba,
-0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
-0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,0xb19,
-0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,
-0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,
-0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb22,0xb2e,0xb34,0xb34,0xb34,0xb28,0xb28,0xb28,0xb31,0xb25,0xb25,
-0xb25,0xb25,0xb25,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb34,0xb34,0xb34,0xb34,0xb34,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb2b,0xb2b,0xb34,0xb34,0xb34,0xb28,0xb28,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb34,0xb34,0xb34,0xb34,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,
-0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0x16d1,0x16d1,0xb40,0xb37,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb37,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb37,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,
-0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb40,0xb40,0xb40,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,
-0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,
-0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,
-0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,
-0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,
-0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,
-0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba6,0xba3,0xba6,
-0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xcae,
-0xcb1,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xd9e,0xeb8,0xeb8,0xeb8,0xeb8,
-0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,
-0xcb4,0xcb4,0xda4,0xe5b,0xda4,0xda4,0xda4,0xda4,0xda1,0xda4,0xda1,0xda4,0xda4,0xfab,0x1242,0x1242,
-0xdad,0xdad,0xdad,0xdad,0xdad,0xdb3,0xdb0,0xeca,0xeca,0xeca,0xeca,0x13bf,0xfbd,0x13bf,0x12fc,0x12fc,
-0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,0xbeb,
-0xbeb,0xbeb,0xc1b,0xc18,0xc1b,0xc18,0xc1b,0xc18,0x10ce,0x10cb,0xfc3,0xfc0,0xbee,0xbee,0xbee,0xbee,
-0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbf1,0xbf1,0xbf1,0xbf1,
-0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,
-0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf4,0xbf4,0xbf1,0xbf1,
-0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xc21,0xc1e,0xbfd,
-0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,0xbfa,0xbfd,
-0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xbfd,0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,
-0xbf7,0xbf7,0xbf7,0xbf7,0xbfd,0xbfa,0xbf7,0xbf7,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc06,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc06,0xc06,0xc06,0xc00,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,
-0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc03,0xc00,0xc00,0xc00,0xc39,0xc39,0xc39,0xc39,
-0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,
-0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xc39,0xcb7,0xd26,0xda1,0xda1,
-0xda1,0xda1,0xda1,0xda1,0xda1,0xda1,0xe5b,0xe5b,0xda1,0xda1,0xda1,0xda1,0xda4,0xda4,0xebb,0xfab,
-0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0xfab,0x126f,0x126f,0x1245,0xcdb,0xcdb,0xcdb,0xcdb,
-0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,
-0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcdb,0xcea,0xcea,0xcea,0xcea,
-0xcea,0xcea,0xce1,0xce1,0xce1,0xce1,0xce1,0xcde,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3,
-0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3,0xce7,0xce7,0xcf0,0xcf0,
-0xcf0,0xcf0,0xce4,0xce4,0xce4,0xce4,0xce4,0xcea,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,
-0xdb9,0xdb9,0xdb9,0xdb9,0xdb6,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xdb9,0xcf3,0xcf3,0xcf3,0xcf3,
-0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xced,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,
-0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xce7,0xce7,0xce7,0xcea,0xcea,0xcea,0xcea,
-0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,
-0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcf6,0xcf6,0xcf6,0xcf6,
-0xcf6,0xcf9,0xcf9,0xcf9,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,0xdbc,
-0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0x10d7,0x10d7,0xfc6,0xfc6,0xfc6,0xcfc,0xcfc,0xcfc,0xcfc,
-0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,
-0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xd02,0xd02,0xd02,0xd02,
-0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,
-0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd0b,0xd0b,0xd0b,0xd0b,
-0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,
-0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd17,0xd17,0xd17,0xd17,
-0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,
-0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd23,0xd23,0xd23,0xd23,
-0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,
-0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xdc2,0xdc2,0xdc2,0xdc2,
-0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,
-0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc8,0xdc8,0xdc8,0xdc8,
-0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,
-0xdc8,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc5,0xdc8,0xdc8,0xdc8,0xdc8,
-0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,
-0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xdc8,0xe88,0xe88,0xdda,0xdda,
-0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfcf,0xfcf,0xfcf,0xfcf,
-0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xfcf,0xde9,0xde6,0xde9,0xde6,
-0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,
-0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xde9,0xde6,0xdf5,0xdf5,0xdf5,0xdf5,
-0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,
-0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdfb,0xdfb,0xdfb,0xdfb,
-0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,
-0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xe13,0xe13,0xe13,0xe13,
-0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,
-0xe13,0xe13,0xe13,0xed3,0xed3,0xed3,0xed3,0xfd5,0xfd5,0xfd5,0xfd5,0xfd5,0xe1c,0xe1c,0xe1c,0xe1c,
-0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,
-0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe25,0xe25,0xe25,0xe25,
-0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,
-0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe2e,0xe2e,0xe2e,0xe2e,
-0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,
-0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe28,0xe2b,0xe2b,0xe2b,0xe2b,
-0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,
-0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe37,0xe37,0xe37,0xe37,
-0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,
-0xe34,0xe34,0xe31,0xe3a,0xfe1,0xfdb,0xfea,0xfd8,0xe37,0xe37,0xfd8,0xfd8,0xe4c,0xe4c,0xe3d,0xe4c,
-0xe4c,0xe4c,0xe43,0xe4c,0xe4c,0xe4c,0xe4c,0xe3d,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,
-0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4f,0xe4f,0xe4f,0xe4f,
-0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,
-0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe67,0xe67,0xe67,0xe67,
-0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,
-0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe85,0xe85,0xe85,0xe85,
-0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0x10e0,0x10e0,0x10e0,0x10e0,
-0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0xecd,0xecd,0xecd,0xecd,
-0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc9,0xfc9,0xfc9,0xfc9,
-0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xeee,0xeee,0xeee,0xeee,
-0xf00,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf0c,0xf09,0xf09,0xf09,0xf0c,0xf09,
-0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,0xf09,
-0xf09,0xf09,0xf09,0xf09,0xef1,0xf00,0xeee,0xeee,0xeee,0xeee,0xeee,0xf03,0xeee,0xf03,0xf00,0xf00,
-0xf15,0xf12,0xf15,0xf15,0xf15,0xf12,0xf12,0xf15,0xf12,0xf15,0xf12,0xf15,0xf12,0xffc,0xffc,0xffc,
-0x1137,0xff3,0xffc,0xff3,0xf12,0xf15,0xf12,0xf12,0xff3,0xff3,0xff3,0xff3,0xff6,0xff9,0x1137,0x1137,
-0xf18,0xf18,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,
-0x1005,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,
-0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
-0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,
-0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,
-0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,
-0xf2d,0xf2d,0xf2d,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,0x14f7,
-0x14f7,0x14f7,0x14f7,0x14f7,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,0xf33,
-0xf33,0xf33,0xf33,0xf33,0xf7b,0xf96,0xf8d,0xf8a,0xf8a,0xf96,0xf96,0xf8d,0xf8d,0xf8a,0xf8a,0xf8a,
-0xf8a,0xf8a,0xf96,0xf96,0xf96,0xf7b,0xf7b,0xf7b,0xf7b,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,
-0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf7b,0xf8d,0xf90,0xf7b,0xf7b,0xf93,0xf93,0xf93,0xf93,0xf93,
-0xf93,0xf7e,0xf96,0xf93,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0xf87,0x1101,0x1101,
-0x10fe,0x10fb,0xf84,0xf84,0xfae,0xfae,0xfae,0xfae,0x126f,0x126f,0x1245,0x1245,0x124b,0x1242,0x1242,0x1242,
-0x1242,0x1245,0x136b,0x124b,0x1245,0x124b,0x1242,0x124b,0x126f,0x1242,0x1242,0x1242,0x1245,0x1245,0x1242,0x1242,
-0x1245,0x1242,0x1242,0x1245,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc6,0xfc6,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,
-0xfc9,0x14d0,0x14d0,0x14d0,0x10d7,0xfc6,0xfc6,0xfc6,0xfc6,0x127b,0x1254,0x1254,0x1254,0x1254,0x14d0,0x14d0,
-0x14d0,0x14d0,0x14d0,0x14d0,0xfe7,0xfe7,0xfe4,0xfde,0xfe4,0xfde,0xfe4,0xfde,0xfe4,0xfde,0xfdb,0xfdb,
-0xfdb,0xfdb,0xff0,0xfed,0xfdb,0x1134,0x13cb,0x13ce,0x13ce,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13d1,0x13d1,
-0x14eb,0x14df,0x14df,0x14dc,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x1002,0xfff,0xfff,0x100e,
-0x1005,0x130b,0x1308,0x16da,0x130b,0x1308,0x13da,0x13d7,0x14ee,0x14ee,0x14f4,0x14ee,0x14f4,0x14ee,0x14f4,0x14ee,
-0x14f4,0x14ee,0x14f4,0x14ee,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,
-0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,0x100e,0x1005,
-0x100e,0x1005,0x100e,0x1005,0x1008,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x1005,0x100e,0x1005,0x100e,
-0x1005,0x100e,0x100e,0x1005,0x1011,0x1011,0x1017,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,
-0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,
-0x101d,0x101d,0x101d,0x101d,0x101d,0x1017,0x1011,0x1011,0x1011,0x1011,0x1017,0x1017,0x1011,0x1011,0x101a,0x13e3,
-0x13e0,0x13e0,0x101d,0x101d,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x13e6,0x13e6,
-0x13e6,0x13e6,0x13e6,0x13e6,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,
-0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,
-0x1032,0x1032,0x1032,0x1032,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,
-0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103e,0x103e,0x103e,0x1041,
-0x103e,0x103e,0x1044,0x1044,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,
-0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,
-0x1047,0x1047,0x1047,0x1047,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
-0x1053,0x104a,0x1059,0x1056,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
-0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,
-0x1050,0x1050,0x1050,0x1050,0x1311,0x130e,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,
-0x106b,0x1065,0x1068,0x10e9,0x105c,0x105c,0x105c,0x1062,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,
-0x105f,0x105f,0x1062,0x106e,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,
-0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,0x106b,0x1065,
-0x106b,0x1065,0x106b,0x1065,0x1503,0x1500,0x1503,0x1500,0x1506,0x1506,0x16e3,0x13e9,0x1077,0x1077,0x107a,0x107a,
-0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,
-0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x107a,0x1077,0x1077,0x1077,0x1077,
-0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1080,0x1080,
-0x1080,0x1080,0x1080,0x1083,0x1083,0x1083,0x10dd,0x108c,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,
-0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,
-0x1086,0x1086,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,
-0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,
-0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,
-0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,
-0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,
-0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10bc,0x10c5,0x10c5,0x10c5,0x10c5,0x10da,0x10c5,0x10c5,0x10c5,
-0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,
-0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,
-0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,
-0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x10c8,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,
-0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1140,0x1140,
-0x1143,0x1143,0x1149,0x1140,0x1140,0x1140,0x1140,0x1140,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,
-0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,
-0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x114c,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,
-0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,
-0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1167,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,
-0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,
-0x1173,0x1173,0x1173,0x1173,0x1173,0x1173,0x1170,0x1176,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
-0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,
-0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1191,0x1191,0x1191,0x11a0,0x11a6,0x11a6,0x11a6,0x11a6,
-0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,
-0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x1194,0x11a0,0x11a0,0x1191,0x1191,
-0x1191,0x1191,0x11a0,0x11a0,0x1191,0x11a0,0x11a0,0x11a0,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,
-0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b5,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11ac,
-0x11ac,0x11ac,0x11b2,0x11af,0x150c,0x150f,0x1512,0x1512,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,
-0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11b8,0x11c4,0x11b8,0x11b8,0x11b8,0x11cd,0x11cd,0x11b8,
-0x11b8,0x11cd,0x11c4,0x11cd,0x11cd,0x11c4,0x11b8,0x11bb,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,
-0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,
-0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,
-0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,
-0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,
-0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,
-0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f4,0x11f4,0x11f4,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,
-0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x1200,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,
-0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,
-0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122d,0x122a,0x122a,0x122a,0x122a,0x1227,0x1227,0x1227,0x121b,0x121b,0x121b,0x121b,0x1227,
-0x1227,0x1221,0x121e,0x1224,0x1224,0x1215,0x1230,0x1230,0x1218,0x1218,0x1227,0x122a,0x122a,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,
-0x122a,0x122a,0x122d,0x122a,0x122d,0x122a,0x122a,0x122a,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1239,0x1239,0x1239,0x1236,0x1236,0x1236,0x1233,0x1233,
-0x1233,0x1233,0x1236,0x1233,0x1233,0x1233,0x1239,0x1236,0x1239,0x1236,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,
-0x1233,0x1233,0x1233,0x1233,0x1233,0x1239,0x1236,0x1236,0x1233,0x1233,0x1233,0x1233,0x1245,0x1245,0x12ed,0x1242,
-0x12ed,0x12ed,0x12ed,0x12ed,0x1242,0x1248,0x126f,0x1242,0x1242,0x1242,0x1242,0x1242,0x1248,0x124b,0x126f,0x126f,
-0x124b,0x126f,0x1242,0x124b,0x124b,0x124e,0x126f,0x1242,0x1242,0x126f,0x1245,0x1245,0x135c,0x135c,0x135c,0x135c,
-0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x1257,0x1257,0x1257,0x1257,0x1377,0x1356,0x1260,0x1377,0x1377,0x1377,
-0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x180f,0x180f,0x180f,0x180f,0x180f,0x135f,0x135f,0x1266,0x135f,
-0x135f,0x135f,0x1266,0x135f,0x135f,0x135f,0x1260,0x1260,0x1260,0x1260,0x1260,0x1359,0x135c,0x135c,0x135c,0x135c,
-0x135c,0x135c,0x135c,0x1263,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x135c,0x1263,0x128d,0x128d,0x128d,0x128d,
-0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,
-0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x128d,0x132f,0x132f,0x132f,0x132f,
-0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,
-0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x132f,0x1344,0x1335,0x1344,0x1347,
-0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,
-0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1347,0x1335,0x1335,0x1335,0x1335,
-0x1335,0x1335,0x1335,0x1335,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,
-0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,
-0x134d,0x134d,0x134d,0x134d,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,
-0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,
-0x1353,0x1353,0x1353,0x1353,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x1389,0x138c,0x138c,0x138c,0x1389,0x138c,0x1389,0x138c,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x1395,0x138c,
-0x138c,0x138c,0x138c,0x1389,0x138c,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389,
-0x1389,0x1389,0x1389,0x1389,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x151e,0x151e,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x1527,0x1521,0x1521,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1764,0x1764,0x1764,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x1764,0x1764,0x138c,0x138c,0x138c,0x138c,0x138c,0x1395,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1521,0x1521,0x1527,0x1527,
-0x1521,0x1527,0x1527,0x1527,0x151e,0x151e,0x1527,0x1527,0x138c,0x138c,0x1392,0x1395,0x1395,0x1698,0x138c,0x1392,
-0x138c,0x138c,0x1395,0x1530,0x152d,0x1527,0x1527,0x1764,0x1764,0x1764,0x1764,0x1764,0x1527,0x1527,0x1527,0x1527,
-0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1521,0x1521,0x1527,0x1698,0x1527,0x1521,0x1527,
-0x1764,0x1764,0x1764,0x1767,0x1767,0x1767,0x1767,0x1767,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1527,0x138c,0x1527,0x1395,0x1395,0x138c,0x138c,0x1395,0x1395,
-0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1398,0x1398,0x1398,0x1398,0x1392,0x1392,
-0x1392,0x1392,0x1395,0x1392,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c,
-0x1395,0x138c,0x138c,0x138c,0x138c,0x1395,0x1395,0x1395,0x138c,0x1395,0x1395,0x1395,0x138c,0x138c,0x138c,0x138f,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1698,0x138c,0x138c,0x138c,0x138c,0x1527,0x1521,0x1764,
-0x13ef,0x13ef,0x13ef,0x13ef,0x151e,0x151e,0x151e,0x151e,0x151e,0x1524,0x1527,0x1764,0x1764,0x1764,0x1764,0x16ec,
-0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
-0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1521,0x1521,0x1527,0x152d,0x1530,0x1527,0x1527,
-0x1527,0x1527,0x1818,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1521,0x1527,0x1521,0x1521,0x1521,0x1521,
-0x152a,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1521,0x1521,0x1521,0x1527,0x151e,0x151e,0x151e,0x151e,
-0x151e,0x151e,0x1527,0x138c,0x138c,0x138c,0x138c,0x138c,0x1479,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,
-0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b,0x1479,0x139b,0x1479,
-0x139b,0x1479,0x139b,0x1479,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x1479,0x1479,
-0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x1479,0x1479,0x139b,0x139b,0x139b,0x139b,0x1479,0x139b,0x139b,0x139b,
-0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x139b,0x169e,0x169e,0x176a,0x176a,0x139e,0x139e,0x139e,
-0x139b,0x139b,0x139b,0x139e,0x139e,0x139e,0x139e,0x139e,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a1,
-0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,
-0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1797,0x1797,0x1794,0x16ef,0x13f5,0x13f5,0x13f5,0x13f5,
-0x13f5,0x13f5,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,
-0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x1539,0x1401,0x1401,0x1401,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,
-0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x1413,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,
-0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,
-0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,
-0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,
-0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x1437,0x143d,0x143d,0x1449,0x144f,0x144f,0x144f,0x144f,0x144f,
-0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,
-0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x1449,0x1449,0x1449,0x143d,0x143d,
-0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x1449,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,
-0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,
-0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1521,0x1521,0x1527,0x1527,0x1527,0x1521,0x1521,0x1521,
-0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1527,0x151e,0x151e,0x151e,0x151e,
-0x151e,0x151e,0x151e,0x151e,0x1527,0x1527,0x1527,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,
-0x1521,0x1521,0x1527,0x1527,0x1527,0x1527,0x1521,0x1521,0x1530,0x1521,0x1521,0x1521,0x1521,0x169b,0x169b,0x1521,
-0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1815,0x1527,0x1521,0x1521,0x1527,0x1521,0x1521,0x1521,
-0x1521,0x1521,0x1521,0x1521,0x1521,0x1527,0x1527,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,0x1521,
-0x1527,0x1521,0x1521,0x1521,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,
-0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,
-0x1551,0x1551,0x1551,0x1551,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,
-0x1563,0x1563,0x1563,0x1563,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,
-0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,
-0x1569,0x1569,0x1569,0x1569,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,
-0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,
-0x156c,0x156c,0x156c,0x156c,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,
-0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,
-0x15ab,0x15ab,0x15ab,0x159c,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,
-0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15ae,
-0x15b7,0x15b7,0x15b7,0x15b7,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,
-0x15ba,0x15ba,0x15ba,0x15ba,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15cc,0x15d5,0x15d5,0x15d5,
-0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,
-0x15d5,0x15d5,0x15d5,0x15d5,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
-0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,0x15de,
-0x15de,0x15de,0x15de,0x15de,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x15f0,0x15f0,0x15f0,0x15ed,0x15ed,0x15ed,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15ed,
-0x15ed,0x15e1,0x15ed,0x15e4,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,
-0x15f0,0x15f0,0x15f0,0x15f0,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,
-0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,
-0x1614,0x1611,0x1611,0x1611,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,
-0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1623,0x1623,0x1623,0x1620,0x1620,0x1620,
-0x161d,0x161d,0x161d,0x161d,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1638,0x1638,0x162c,0x1629,0x1629,
-0x1629,0x1629,0x1629,0x1629,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
-0x1632,0x1632,0x1632,0x1632,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,
-0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163b,0x163b,0x163b,0x163b,0x163b,
-0x163b,0x163b,0x163b,0x163b,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,
-0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,
-0x1641,0x1641,0x1641,0x1641,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,
-0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,
-0x1665,0x1665,0x1665,0x1665,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,
+0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xccc,0xccc,0xccc,0xa1a,0xa1a,0xa1a,0xa1a,
+0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa17,0xa17,0xa17,0xa17,
+0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x33,0x33,0xccc,0xccc,0xccc,0xe22,0xe22,0xe22,0xe22,
+0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,
+0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,
+0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0x1023,0xa2c,0xa2c,0xa2c,0xa2c,
+0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,
+0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,
+0xa2c,0xa2c,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xbb8,0x36,0x36,
+0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xf36,0xf36,0xf36,0xf36,
+0xf36,0xf36,0xf36,0xf36,0xf36,0xf36,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,
+0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,
+0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,
+0xf3c,0xf3c,0xf30,0xf30,0xf33,0xf42,0xf3f,0x14a,0x14a,0x14a,0x14a,0x14a,6,6,6,6,
+6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1827,0x1827,0x1827,0x1827,
+0x1827,0x1827,0x1827,0x1827,0x1827,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb2e,0xb2e,0xb31,0xb31,
+0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0x9f,0x9f,0x9f,0x9f,0x15a5,0x15a5,0x15a5,0x15a5,
+0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x15a2,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x23d,0x23d,0x23d,0x23d,
+0x23d,0x23d,0x23d,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x249,0x249,0x249,0x249,
+0x249,0x249,0x249,0x249,0x249,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1266,0x1266,0x1266,0x1266,
+0x1266,0x1266,0x1266,0x1266,0x1266,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x21f,0x21f,0x21f,0x21f,
+0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x14be,0x14be,0x14be,0x14be,
+0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x204,0x204,0x204,0x204,0x204,0x204,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,3,0xc,0xf,0xf,
+0xc,0x12,3,0x15,0,0,0,0,0,0,0,0,6,0x15,0x15,0x15,
+0x15,0x15,0x15,0x18,0x18,0x15,0x15,0x15,6,6,6,6,0,0,9,9,
+9,9,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,
+0x15,0x15,0xc,0xf,0xf,0,0x12,0x12,0x12,0xc,0xc,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,0,
+6,6,0,6,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,0x15,0x15,0x15,0x15,0x15,0x15,0,
+0,0,0x15,0,0x15,0x15,0,0x15,0x15,0x15,0x15,0x15,0x15,0x15,9,0x15,
+0,0,0,0,0,0,0,0,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0x21,0x21,0,0,0,0,0,0,0x1791,0x1791,0x1791,0x1791,0x264,0x264,0x264,0x264,
+0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x1c2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,
+0x164a,0x164a,0x237,0x237,0x237,0x237,0x1650,0x1650,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,
+0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0,0,0,0,0x16fe,0x16fe,0x16fe,0x16fe,0x24c,0x24c,0x24c,0x24c,
+0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xe19,0xe19,0xe16,0xe16,0xe16,0xe19,0x111,0x111,
+0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x27c,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,
+0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x182a,0x182a,0x288,0x182a,0x182a,0x288,0x182a,0x182a,
+0x182a,0x182a,0x182a,0x288,0x288,0x288,0x288,0x288,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x975,0x975,6,0x15,0x15,0x15,0x15,0x15,0x15,0x18,
+0x18,0x15,0x15,6,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,0x15,0x15,0x15,0x15,0x15,
+0x15,0x18,9,0x15,0x15,0x15,0x15,0x12,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x975,0x975,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x24,0x24,0x24,0x24,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0x24,0x24,0x24,0x24,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x14f4,0x3cf,0x3de,0x3de,
+0x39,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x39,0x39,0x3e4,0x3e4,0x39,0x39,0x3e4,
+0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x39,0x3e4,0x3e4,
+0x3e4,0x3e4,0x3e4,0x3e4,0x3e4,0x39,0x3e4,0x39,0x39,0x39,0x3e4,0x3e4,0x3e4,0x3e4,0x39,0x39,
+0x3d2,0xcd2,0x3cf,0x3de,0x3de,0x3cf,0x3cf,0x3cf,0x3cf,0x39,0x39,0x3de,0x3de,0x39,0x39,0x3e1,
+0x3e1,0x3d5,0xdc5,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3cf,0x39,0x39,0x39,0x39,
+0x3e7,0x3e7,0x39,0x3e7,0x3e4,0x3e4,0x3cf,0x3cf,0x39,0x39,0x960,0x960,0x960,0x960,0x960,0x960,
+0x960,0x960,0x960,0x960,0x3e4,0x3e4,0x3db,0x3db,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3db,0x3d8,0x114c,
+0x3f,0x3c,0x39,0x39,0x42,0xcd5,0x3ea,0xcd8,0x42,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x42,
+0x42,0x42,0x42,0x3f6,0x3f6,0x42,0x42,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x42,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x42,0x3f6,0x3f9,
+0x42,0x3f6,0x3f9,0x42,0x3f6,0x3f6,0x42,0x42,0x3ed,0x42,0x3f3,0x3f3,0x3f3,0x3ea,0x3ea,0x42,
+0x42,0x42,0x42,0x3ea,0x3ea,0x42,0x42,0x3ea,0x3ea,0x3f0,0x42,0x42,0x42,0xfa8,0x42,0x42,
+0x42,0x42,0x42,0x42,0x42,0x3f9,0x3f9,0x3f9,0x3f6,0x42,0x3f9,0x42,0x42,0x42,0x42,0x42,
+0x42,0x42,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x3ea,0x3ea,0x3f6,0x3f6,
+0x3f6,0xfa8,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x45,0x3fc,0x3fc,0x405,
+0x45,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0xce1,0x408,0x45,0x408,0x408,0x408,0x45,0x408,
+0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x45,0x408,0x408,
+0x408,0x408,0x408,0x408,0x408,0x45,0x408,0x408,0x45,0x408,0x408,0x408,0x408,0x408,0x45,0x45,
+0x3ff,0x408,0x405,0x405,0x405,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x45,0x3fc,0x3fc,0x405,0x45,0x405,
+0x405,0x402,0x45,0x45,0x408,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
+0x45,0x45,0x45,0x45,0x408,0xce1,0xcdb,0xcdb,0x45,0x45,0x966,0x966,0x966,0x966,0x966,0x966,
+0x966,0x966,0x966,0x966,0x140a,0xcde,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x170d,0x48,0x48,
+0x48,0x48,0x48,0x48,0x4b,0x40b,0x41a,0x41a,0x4b,0x420,0x420,0x420,0x420,0x420,0x420,0x420,
+0x420,0x4b,0x4b,0x420,0x420,0x4b,0x4b,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x420,
+0x420,0x420,0x420,0x420,0x420,0x4b,0x420,0x420,0x420,0x420,0x420,0x420,0x420,0x4b,0x420,0x420,
+0x4b,0xce4,0x420,0x420,0x420,0x420,0x4b,0x4b,0x40e,0x420,0x40b,0x40b,0x41a,0x40b,0x40b,0x40b,
+0xfab,0x4b,0x4b,0x41a,0x41d,0x4b,0x4b,0x41d,0x41d,0x411,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,
+0x4b,0x4b,0x40b,0x40b,0x4b,0x4b,0x4b,0x4b,0x423,0x423,0x4b,0x420,0x420,0x420,0xfab,0xfab,
+0x4b,0x4b,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x414,0xce4,0x1323,0x1323,
+0x1323,0x1323,0x1323,0x1323,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4e,0x4e,0x426,0x432,
+0x4e,0x432,0x432,0x432,0x432,0x432,0x432,0x4e,0x4e,0x4e,0x432,0x432,0x432,0x4e,0x432,0x432,
+0x435,0x432,0x4e,0x4e,0x4e,0x432,0x432,0x4e,0x432,0x4e,0x432,0x432,0x4e,0x4e,0x4e,0x432,
+0x432,0x4e,0x4e,0x4e,0x432,0x432,0x96f,0x4e,0x4e,0x4e,0x432,0x432,0x432,0x432,0x432,0x432,
+0x432,0x96f,0xdc8,0x432,0x432,0x432,0x4e,0x4e,0x4e,0x4e,0x426,0x42c,0x426,0x42c,0x42c,0x4e,
+0x4e,0x4e,0x42c,0x42c,0x42c,0x4e,0x42f,0x42f,0x42f,0x429,0x4e,0x4e,0xfae,0x4e,0x4e,0x4e,
+0x4e,0x4e,0x4e,0x426,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xee2,0x96c,
+0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x969,0x969,0x969,0xce7,0xce7,0xce7,0xce7,0xce7,
+0xce7,0xcea,0xce7,0x4e,0x4e,0x4e,0x4e,0x4e,0x14f7,0x444,0x444,0x444,0x51,0x447,0x447,0x447,
+0x447,0x447,0x447,0x447,0x447,0x51,0x447,0x447,0x447,0x51,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x51,0x447,0x447,0x447,0x447,0x447,0x447,
+0x447,0x447,0x447,0x447,0x14fa,0x447,0x447,0x447,0x447,0x447,0x51,0x51,0x51,0xfb7,0x438,0x438,
+0x438,0x444,0x444,0x444,0x444,0x51,0x438,0x438,0x43b,0x51,0x438,0x438,0x438,0x43e,0x51,0x51,
+0x51,0x51,0x51,0x51,0x51,0x438,0x438,0x51,0xfb7,0xfb7,0x1710,0x51,0x51,0x51,0x51,0x51,
+0x447,0x447,0xfb1,0xfb1,0x51,0x51,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,
+0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,0xfb4,
+0x17cd,0x14fd,0x453,0x453,0x54,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x54,0x459,0x459,
+0x459,0x54,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,
+0x459,0x54,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x54,0x459,0x459,0x459,
+0x459,0x459,0x54,0x54,0xced,0xcf0,0x453,0x44a,0x456,0x453,0x44a,0x453,0x453,0x54,0x44a,0x456,
+0x456,0x54,0x456,0x456,0x44a,0x44d,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x44a,0x44a,0x54,
+0x54,0x54,0x54,0x54,0x54,0x54,0x459,0x54,0x459,0x459,0xefa,0xefa,0x54,0x54,0x450,0x450,
+0x450,0x450,0x450,0x450,0x450,0x450,0x450,0x450,0x54,0xefd,0xefd,0x54,0x54,0x54,0x54,0x54,
+0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x5a,0x1500,0x465,0x465,0x57,0x46b,0x46b,0x46b,
+0x46b,0x46b,0x46b,0x46b,0x46b,0x57,0x46b,0x46b,0x46b,0x57,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,
+0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x465,0x45c,0x45c,0x45c,0xfba,0x57,0x465,0x465,
+0x465,0x57,0x468,0x468,0x468,0x45f,0x1329,0x17d0,0x57,0x57,0x57,0x57,0x17d3,0x17d3,0x17d3,0x45c,
+0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x1713,0x46b,0x46b,0xfba,0xfba,0x57,0x57,0x462,0x462,
+0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0xfbd,0xfbd,0xfbd,0xfbd,0xfbd,0xfbd,0x17d0,0x17d0,
+0x17d0,0xfc0,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,
+0x46b,0x1326,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,0x46b,
+0x46b,0x46b,0x1326,0x5a,0x5a,0xfc3,0x45c,0x465,0x5d,0x5d,0xa38,0xa38,0x5d,0xa3e,0xa3e,0xa3e,
+0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0x5d,
+0x5d,0x5d,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0x5d,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0x5d,0xa3e,0x5d,0x5d,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0x5d,0x5d,0x5d,0xa32,0x5d,
+0x5d,0x5d,0x5d,0xa2f,0xa38,0xa38,0xa2f,0xa2f,0xa2f,0x5d,0xa2f,0x5d,0xa38,0xa38,0xa3b,0xa38,
+0xa3b,0xa3b,0xa3b,0xa2f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x1503,0x1503,0x1503,0x1503,0x1503,0x1503,
+0x1503,0x1503,0x1503,0x1503,0x5d,0x5d,0xa38,0xa38,0xa35,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
+0x5d,0x5d,0x5d,0x5d,0x60,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
+0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,0x486,
+0x486,0x486,0x486,0x486,0x486,0x471,0x486,0x483,0x471,0x471,0x471,0x471,0x471,0x471,0x477,0x60,
+0x60,0x60,0x60,0x46e,0x48c,0x48c,0x48c,0x48c,0x48c,0x486,0x489,0x474,0x474,0x474,0x474,0x474,
+0x474,0x471,0x474,0x47a,0x480,0x480,0x480,0x480,0x480,0x480,0x480,0x480,0x480,0x480,0x47d,0x47d,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
+0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
+0x63,0x49b,0x49b,0x63,0x49b,0x63,0x63,0x49b,0x49b,0x63,0x49b,0x63,0x63,0x49b,0x63,0x63,
+0x63,0x63,0x63,0x63,0x49b,0x49b,0x49b,0x49b,0x63,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,
+0x63,0x49b,0x49b,0x49b,0x63,0x49b,0x63,0x49b,0x63,0x63,0x49b,0x49b,0x63,0x49b,0x49b,0x49b,
+0x49b,0x48f,0x49b,0x498,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x63,0x48f,0x48f,0x49b,0x63,0x63,
+0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x63,0x4a1,0x63,0x492,0x492,0x492,0x492,0x492,0x48f,0x63,0x63,
+0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x63,0x63,0x49e,0x49e,0x140d,0x140d,
+0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,
+0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,
+0x9b1,0x9b1,0x9b1,0x9b4,0x9b1,0x9b1,0x9b1,0x9b1,0x66,0x9b1,0x9b1,0x9b1,0x9b1,0x9b4,0x9b1,0x9b1,
+0x9b1,0x9b1,0x9b4,0x9b1,0x9b1,0x9b1,0x9b1,0x9b4,0x9b1,0x9b1,0x9b1,0x9b1,0x9b4,0x9b1,0x9b1,0x9b1,
+0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b4,0xa4d,0xfcf,0xfcf,0x66,0x66,0x66,
+0x66,0x97e,0x97e,0x981,0x97e,0x981,0x981,0x98a,0x981,0x98a,0x97e,0x97e,0x97e,0x97e,0x97e,0x9ab,
+0x97e,0x981,0x984,0x984,0x987,0x990,0x984,0x984,0x9b1,0x9b1,0x9b1,0x9b1,0x1332,0x132c,0x132c,0x132c,
+0x97e,0x97e,0x97e,0x981,0x97e,0x97e,0xa41,0x97e,0x66,0x97e,0x97e,0x97e,0x97e,0x981,0x97e,0x97e,
+0x97e,0x97e,0x981,0x97e,0x97e,0x97e,0x97e,0x981,0x97e,0x97e,0x97e,0x97e,0x981,0x97e,0xa41,0xa41,
+0xa41,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0xa41,0x981,0xa41,0xa41,0xa41,0x66,0xa4a,0xa4a,
+0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0xa44,0xa47,0xa47,0xa47,0xa47,0xa47,0xa47,0x66,0xfc6,0xa47,
+0xdcb,0xdcb,0xfc9,0xfcc,0xfc6,0x114f,0x114f,0x114f,0x114f,0x132f,0x132f,0x66,0x66,0x66,0x66,0x66,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x4aa,0x4aa,0x4aa,0x4aa,
+0x4aa,0x4aa,0x69,0x1413,0x69,0x69,0x69,0x69,0x69,0x1413,0x69,0x69,0x4a7,0x4a7,0x4a7,0x4a7,
+0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xdda,0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0x6c,0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xdda,0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xdda,
+0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0x6c,
+0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xdda,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xdda,0xa77,0x6c,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xdda,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0x6c,0x6c,0x1335,0x1335,0xdd4,
+0xdd7,0xa71,0xa7a,0xa6e,0xa6e,0xa6e,0xa6e,0xa7a,0xa7a,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,
+0xa74,0xa74,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0x6c,0x6c,0x6c,
+0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,
+0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0x1719,0x6f,0x6f,0x1716,0x1716,0x1716,0x1716,0x1716,0x1716,0x6f,0x6f,
+0xa8f,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,
+0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa92,0xa8c,0xa89,0x72,0x72,0x72,
+0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa95,0xa95,0xa95,0xa98,0xa98,
+0xa98,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xa9b,0xab9,0xab9,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,
+0xa9e,0xa9e,0xaa1,0xa9e,0xab0,0xab0,0xab3,0xabc,0xaaa,0xaa7,0xab0,0xaad,0xabc,0xcf3,0x78,0x78,
+0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0x78,0x78,0x78,0x78,0x78,0x78,
+0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0x78,0x78,0x78,0x78,0x78,0x78,
+0xacb,0xacb,0xb49,0xb4c,0xad1,0xb46,0xace,0xacb,0xad4,0xae3,0xad7,0xae6,0xae6,0xae6,0xac2,0x7b,
+0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xac5,0xff0,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x7e,0x7e,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x7e,0x7e,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x7e,0x4cb,0x7e,0x4cb,0x7e,0x4cb,0x7e,0x4cb,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x7e,0x7e,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x7e,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4c2,0x4c8,0x4c2,
+0x4c2,0x4bf,0x4c8,0x4c8,0x4c8,0x7e,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4bf,0x4bf,0x4bf,
+0x4c8,0x4c8,0x4c8,0x4c8,0x7e,0x7e,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x7e,0x4bf,0x4bf,0x4bf,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4bf,0x4bf,0x4bf,
+0x7e,0x7e,0x4c8,0x4c8,0x4c8,0x7e,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4c5,0x4c2,0x7e,
+0xbbe,0xbc1,0xbc1,0xbc1,0xff9,0x81,0x14e5,0x14e5,0x14e5,0x14e5,0x4d4,0x4d4,0x4d4,0x4d4,0x4d4,0x4d4,
+0x51f,0xbd3,0x84,0x84,0x6db,0x51f,0x51f,0x51f,0x51f,0x51f,0x525,0x537,0x525,0x531,0x52b,0x6de,
+0x51c,0x6d8,0x6d8,0x6d8,0x6d8,0x51c,0x51c,0x51c,0x51c,0x51c,0x522,0x534,0x522,0x52e,0x528,0x84,
+0xde3,0xde3,0xde3,0xde3,0xde3,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x1338,0x84,0x84,0x84,
+0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53d,0x53a,0x540,0x756,0x53d,0x9ba,0x9db,0xaf5,0xaf5,0xaf5,
+0xbd6,0xbd6,0xde6,0xde6,0xde6,0xde6,0x1167,0x116a,0x116a,0x133b,0x14df,0x1509,0x150c,0x150c,0x171c,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x546,0x543,0x543,0x543,
+0x543,0x546,0xaf8,0xaf8,0xbd9,0xbdf,0xbdf,0xbdc,0xbdc,0xbdc,0xbdc,0xde9,0xf00,0xf00,0xf00,0xf00,
+0x113a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+0x576,0x576,0x576,0xb01,0xf09,0xfff,0xfff,0xfff,0xfff,0x1296,0x171f,0x171f,0x8d,0x8d,0x8d,0x8d,
+0x705,0x705,0x705,0x705,0x708,0x708,0x708,0x708,0x708,0x708,0x582,0x582,0x57f,0x57f,0x57f,0x57f,
+0xf0f,0xf0f,0xf0f,0xf0c,0xf0c,0xf0c,0xf0c,0xf0c,0x1170,0x13bc,0x13bc,0x13bc,0x13bc,0x133e,0x133e,0x133e,
+0x13bf,0x1341,0x1341,0x13bf,0x150f,0x150f,0x150f,0x150f,0x1512,0x1512,0x1512,0x17d6,0x17d6,0x17d6,0x17d6,0x90,
+0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0xb0a,0xb0a,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,
+0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0x99,0xb25,0xb25,0xb25,0xb25,0xb28,
+0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,
+0xb25,0xb25,0xb25,0xb28,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,
+0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+0xa2,0x83d,0x837,0x83d,0x837,0x83d,0x837,0x83d,0x837,0x83d,0x837,0x837,0x83a,0x837,0x83a,0x837,
+0x83a,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,
+0x837,0x837,0x837,0x83d,0x837,0x83d,0x837,0x83d,0x837,0x837,0x837,0x837,0x837,0x837,0x83d,0x837,
+0x837,0x837,0x837,0x837,0x83a,0xc81,0xc81,0xa2,0xa2,0x951,0x951,0x91b,0x91b,0x840,0x843,0xc7e,
+0xa5,0xa5,0xa5,0xa5,0xa5,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,
+0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,
+0x855,0x1128,0xa8,0xa5,0xab,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,
+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0xab,0x924,0x924,0x927,0x927,0x927,0x927,0x927,0x927,
+0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,
+0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,
+0x13cb,0x13cb,0x13cb,0xae,0xae,0xae,0xae,0xae,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,
+0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,
+0x861,0x861,0x861,0x861,0x861,0xd83,0xd83,0xb1,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,
+0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,
+0x867,0x867,0x867,0x867,0x867,0x867,0x867,0xb1,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb4,0xb4,0xb4,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,
+0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xc8a,0xb43,0xb43,0xb43,0xc8a,0xb43,0xb7,
+0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x9d5,0x9d5,0x9d5,0x9d5,0xba,0xba,0xba,0xba,
+0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,
+0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0xbd,
+0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0x5f4,0x5f4,0x5f4,0x5f4,0x5f4,
+0xbd,0xbd,0xbd,0xbd,0xbd,0xb16,0x5f7,0x5fd,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,
+0x603,0x5fa,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0xbd,
+0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0xbd,0x5fd,0xbd,0x5fd,0x5fd,0xbd,0x5fd,0x5fd,0xbd,0x5fd,0x5fd,
+0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x5fd,0x600,0x618,0x612,0x618,0x612,0x615,0x61b,0x618,0x612,
+0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,0x134a,0x134a,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
+0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x618,0x612,0x615,0x61b,0x618,
+0x612,0x618,0x612,0x618,0x612,0x618,0x618,0x612,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
+0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x615,0x612,0x615,0x615,0x615,0x615,0x615,0x615,
+0x612,0x615,0x612,0x612,0x615,0x615,0x612,0x612,0x612,0x612,0x612,0x615,0x612,0x612,0x615,0x612,
+0x615,0x615,0x615,0x612,0x615,0x615,0x615,0x615,0xc0,0xc0,0x615,0x615,0x615,0x615,0x612,0x612,
+0x615,0x612,0x612,0x612,0x612,0x615,0x612,0x612,0x612,0x612,0x612,0x615,0x615,0x615,0x612,0x612,
+0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,
+0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0x618,0x618,0x972,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x60f,0x60f,0xc15,0xd9b,0xc0,0xc0,0x879,0x88b,0x888,0x88b,0x888,0xc9f,0xc9f,0xd8f,
+0xd8c,0x87c,0x87c,0x87c,0x87c,0x88e,0x88e,0x88e,0x8a6,0x8a9,0x8b8,0xc3,0x8ac,0x8af,0x8bb,0x8bb,
+0x8a3,0x89a,0x894,0x89a,0x894,0x89a,0x894,0x897,0x897,0x8b2,0x8b2,0x8b5,0x8b2,0x8b2,0x8b2,0xc3,
+0x8b2,0x8a0,0x89d,0x897,0xc3,0xc3,0xc3,0xc3,0x624,0x630,0x624,0xc18,0x624,0xc6,0x624,0x630,
+0x624,0x630,0x624,0x630,0x624,0x630,0x624,0x630,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,
+0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62d,0x627,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62d,
+0x627,0x62d,0x627,0x62d,0x627,0xc6,0xc6,0x621,0x777,0x77a,0x78f,0x792,0x771,0x77a,0x77a,0xcc,
+0x759,0x75c,0x75c,0x75c,0x75c,0x759,0x759,0xcc,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,
+0xc9,0xb19,0xb19,0xb19,0x9d8,0x753,0x633,0x633,0xcc,0x7a1,0x780,0x771,0x77a,0x777,0x771,0x783,
+0x774,0x76e,0x771,0x78f,0x786,0x77d,0x79e,0x771,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,
+0x79b,0x79b,0x78c,0x789,0x78f,0x78f,0x78f,0x7a1,0x762,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0xcc,0xcc,0xcc,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0xcc,0xcc,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0xcc,0xcc,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0xcc,0xcc,0x75f,0x75f,0x75f,0xcc,0xcc,0xcc,0xb61,0xb61,0xb61,0xb61,0xcf,0xcf,0xcf,0xcf,
+0xcf,0xcf,0xcf,0xcf,0xcf,0xd2,0xd2,0xd2,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,
+0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xd5,0xd5,0xd5,0xd5,0xd5,
 0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,
-0x166e,0x166e,0x166e,0x166e,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
-0x1686,0x1686,0x1686,0x1686,0x1671,0x1680,0x1680,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1680,0x1671,0x1683,
-0x1683,0x1671,0x1683,0x1671,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,
+0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xdb,0xdb,0x100b,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
+0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xde,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb94,0xb94,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb94,0xde,0xb94,0xb94,
+0xde,0xde,0xb94,0xde,0xde,0xb94,0xb94,0xde,0xde,0xb94,0xb94,0xb94,0xb94,0xde,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb91,0xb91,0xb91,0xb91,0xde,0xb91,0xde,0xb91,0xb91,0xb91,
+0xb91,0xd14,0xb91,0xb91,0xde,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb91,0xb91,0xb91,0xb91,0xb94,0xb94,0xde,0xb94,0xb94,0xb94,0xb94,0xde,0xde,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xde,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xde,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb94,0xb94,0xde,0xb94,0xb94,0xb94,0xb94,0xde,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xde,0xb94,0xde,0xde,0xde,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xde,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xe01,0xe01,0xde,0xde,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb91,0xb91,0xb91,0xb8b,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xf18,0xf15,0xde,0xde,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,
+0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xe1,0xb9a,0xe1,0xe1,
+0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,
+0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xc27,0xc27,0xc27,0xc27,
+0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xe4,0xc27,0xc27,0xc27,0xc27,0xc21,0xc21,
+0xc24,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xc30,0xc30,0xc30,0xc30,
+0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc2a,0xc2a,
+0xc2d,0xc93,0xc93,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xc36,0xc36,0xc36,0xc36,
+0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc33,0xc33,
+0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xea,0xc3c,0xc3c,0xc3c,0xc3c,
+0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xed,0xc3c,0xc3c,0xc3c,0xed,0xc39,0xc39,
+0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xd26,0xd26,0xd26,0xd26,
+0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,
+0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0x1524,0x1524,0xf0,0xd17,0xd17,0xd17,0xd23,
+0xd23,0xd23,0xd23,0xd17,0xd17,0xd23,0xd23,0xd23,0xf0,0xf0,0xf0,0xf0,0xd23,0xd23,0xd17,0xd23,
+0xd23,0xd23,0xd23,0xd23,0xd23,0xd1a,0xd1a,0xd1a,0xf0,0xf0,0xf0,0xf0,0xd1d,0xf0,0xf0,0xf0,
+0xd29,0xd29,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd20,0xd2c,0xd2c,0xd2c,0xd2c,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xf3,0xf3,
+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
+0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,
+0x1527,0x1527,0x1527,0x1527,0xf6,0xf6,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,
+0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0xf6,0xf6,
+0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,
+0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0xf6,0xf6,0xf6,0x1527,0x1527,0x1527,
+0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0xf6,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,
+0x1527,0x1527,0xf9,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,
+0x1728,0x1728,0x1728,0x1728,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,
+0xf6,0xf6,0xf6,0xf6,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,
+0xfc,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xfc,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xfc,0xd53,0xd53,0xfc,0xd53,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xfc,0xfc,
+0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,
+0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xff,0xff,0xff,0xff,0xff,
+0xd98,0xd98,0xd98,0x102,0x102,0x102,0x102,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,
+0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,0xd92,
+0x102,0x102,0x102,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd95,0xd5c,0xd5c,0xd5c,0xd5c,
+0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,
+0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0x105,0xd59,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,
+0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0x108,0x108,0xd62,0xd62,0xd62,0xd62,
+0xd62,0xd62,0xd62,0xd62,0xd62,0xd62,0x108,0x108,0x108,0x108,0x108,0x108,0x1860,0x1860,0x1860,0x1860,
+0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0xd68,0xd68,0xd68,0xd68,
+0xd68,0xd68,0x10b,0x10b,0xd68,0x10b,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,
+0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0x10b,0xd68,
+0xd68,0x10b,0x10b,0x10b,0xd68,0x10b,0x10b,0xd68,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,
+0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0x10e,
+0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,
+0xe1c,0xe1c,0xe1c,0x152a,0x152a,0x17d9,0x17d9,0x114,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,
+0x1107,0x1107,0x1107,0x1107,0x171,0x171,0x171,0x171,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,
+0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe25,
+0xe25,0xe2b,0xe2b,0xe25,0x117,0x117,0xe28,0xe28,0x1137,0x1137,0x1137,0x1137,0x11a,0x11a,0x11a,0x11a,
+0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,
+0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0xc90,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x152d,
+0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x1530,0x120,0x120,
+0x120,0x120,0x11d,0x17dc,0x1356,0x1179,0xf27,0xf27,0xe40,0xe3d,0xe40,0xe3d,0xe3d,0xe34,0xe34,0xe34,
+0xe34,0xe34,0xe34,0x1182,0x117f,0x1182,0x117f,0x117c,0x117c,0x117c,0x141c,0x1419,0x123,0x123,0x123,0x123,
+0x123,0xe3a,0xe37,0xe37,0xe37,0xe34,0xe3a,0xe37,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,
+0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x126,
+0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x126,
+0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x126,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x126,
+0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0x126,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,
+0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe46,0xe46,0xe46,0xe46,0xe46,0xe46,0xe46,0xe46,
+0xe46,0xe46,0x129,0x129,0x129,0x129,0x129,0x129,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0x12c,0x141f,
+0x12c,0x12c,0x12c,0x12c,0x12c,0x141f,0x12c,0x12c,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,
+0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0x12f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,
+0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,
+0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0xe4f,0x12f,0xe64,0xe58,0xe58,0xe58,0x132,0xe58,0xe58,0x132,
+0x132,0x132,0x132,0x132,0xe58,0xe58,0xe58,0xe58,0xe64,0xe64,0xe64,0xe64,0x132,0xe64,0xe64,0xe64,
+0x132,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,
+0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0x132,0x132,0x132,0x132,0xe55,0xe55,0xe55,0x132,
+0x132,0x132,0x132,0xe5b,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0x132,0x132,0x132,0x132,
+0x132,0x132,0x132,0x132,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe67,0xe67,0xe5e,0x132,0x132,0x132,
+0x132,0x132,0x132,0x132,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0x1188,0x1188,
+0x135,0x135,0x135,0x135,0xe73,0xe73,0xe73,0xe73,0xe73,0xe76,0xe76,0xe76,0xe73,0xe73,0xe76,0xe73,
+0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0x135,0x135,0x135,0x135,0x135,0x135,
+0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0x1185,0x135,0x135,0x135,0xe6d,0xe6d,
+0xe7c,0xe7c,0xe7c,0xe7c,0x138,0x138,0x138,0x138,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
+0xe79,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,
+0x1539,0x153f,0x153c,0x1884,0x17df,0x13e,0x13e,0x13e,0x13e,0x13e,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,
+0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,
+0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0xea3,0xea3,0xea3,0xea0,
+0xea0,0xe97,0xe97,0xea0,0xe9d,0xe9d,0xe9d,0xe9d,0x141,0x141,0x141,0x141,0x12f3,0x12f3,0x12f3,0x12f3,
+0x12f3,0x12f3,0x12f6,0x12f6,0x12f9,0x12f6,0x198,0x198,0x198,0x198,0x198,0x198,0xea6,0xea6,0xea6,0xea6,
+0xea6,0xea6,0x142b,0x142b,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0xea9,0x135c,0x144,0x144,0x144,
+0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x1359,0xc63,0xc63,0xc63,0xc63,
+0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xed6,0xec7,0xec1,0xed3,
+0xed0,0xeca,0xeca,0xed9,0xec4,0xecd,0x147,0x147,0x147,0x147,0x147,0x147,0xf5a,0xf5a,0xf45,0xf5a,
+0xf5d,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0x14d,0x14d,0x14d,0x14d,0xf54,0xf54,0xf54,0xf54,
+0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf66,0xf66,0xf4b,0xf51,0xf66,0xf66,0xf4e,0xf4b,0xf4b,0xf4b,
+0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,
+0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0x14d,0x14d,0x14d,0x1362,0x135f,0x1362,0x135f,
+0x1362,0x135f,0x1362,0x135f,0x1362,0x135f,0x1431,0x154b,0x154b,0x154b,0x17e2,0x150,0x154b,0x154b,0x1731,0x1731,
+0x1731,0x172b,0x1731,0x172b,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,
+0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,
+0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x1548,0x1434,0x1434,0x135f,0x1062,0x1062,0x1062,0x1062,0x1062,
+0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,
+0xf75,0xf75,0xf75,0xf75,0xf72,0xf72,0xf78,0xf78,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,
+0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,
+0xf81,0xf81,0xf81,0xf81,0xf81,0xf81,0xf7b,0xf7b,0xf7b,0xf7b,0x1191,0x1191,0x156,0x156,0x156,0xf7e,
+0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,
+0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x1734,0x159,0x159,0x159,0x159,0x159,0x159,
+0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,
+0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0xf8a,0xf8a,0xf8a,0x1554,
+0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x15c,0xf87,0xf87,0xf87,0xf87,
+0x1551,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0xf8d,0xf8d,0xf8d,0xf8d,
+0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0x15f,0x15f,
+0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x1089,0x1089,0x1089,0x1089,
+0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,
+0x1086,0x1086,0x107d,0x107a,0x162,0x162,0x162,0x108c,0x108c,0x1080,0x1080,0x1080,0x1083,0x1083,0x1083,0x1083,
+0x1083,0x1083,0x1083,0x1083,0x1083,0x1083,0x162,0x162,0x162,0x1089,0x1089,0x1089,0x108f,0x108f,0x108f,0x108f,
+0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x10a4,0x10a4,0x10a4,0x10a4,
+0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a7,0x10a7,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,
+0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x165,0x10ce,0x10ce,0x10ce,0x10ce,
+0x10c8,0x17e5,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x10d4,0x10d4,0x10cb,0x10cb,0x10cb,0x10cb,
+0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x168,0x168,0x168,0x168,0x168,0x168,0x10f2,0x10f2,0x10f2,0x10f2,
+0x10f2,0x10f2,0x10f2,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10e6,0x10ec,0x10ef,
+0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x16b,0x10e9,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10fe,0x10fe,0x10f5,0x10f5,0x10fe,
+0x10fe,0x10f5,0x10f5,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x16e,0x1101,0x1101,0x1101,0x10f5,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x10f5,0x10fe,0x16e,0x16e,0x10fb,0x10fb,0x10fb,0x10fb,
+0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x16e,0x16e,0x10f8,0x1104,0x1104,0x1104,0x1560,0x171,0x171,0x171,
+0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,
+0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x110a,0x110a,0x110a,0x110a,
+0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,
+0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110a,0x110d,0x174,0x174,0x1110,0x1110,0x1110,0x1110,
+0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,
+0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x177,0x177,0x177,0x1113,0x1113,0x1113,0x1113,
+0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x17a,0x17a,0x17a,
+0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x1119,0x1119,0x1119,0x1119,
+0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,
+0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x17d,0x17d,0x17d,0x17d,0x17d,0x1116,0x111c,0x111c,0x111c,0x111c,
+0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x180,0x180,0x180,0x180,0x111f,0x111f,0x111f,0x111f,
+0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
+0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1197,0x1197,0x1197,0x1197,
+0x11a0,0x1197,0x1197,0x1197,0x11a0,0x1197,0x1197,0x1197,0x1197,0x1194,0x186,0x186,0x119d,0x119d,0x119d,0x119d,
+0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x186,0x11a3,0x11a3,0x11a3,0x11a3,
+0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,
+0x11a3,0x11a3,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x11be,0x11be,0x11be,0x11be,
+0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,
+0x11be,0x11bb,0x11a6,0x11bb,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x18c,0x11af,0x11b8,0x11a6,0x11b8,
+0x11b8,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11a6,
+0x11a6,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x11ac,0x18c,0x18c,0x11a9,0x11b5,0x11b5,0x11b5,0x11b5,
+0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x11b5,0x11b5,0x11b5,0x11b5,
+0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c,0x11b2,0x11b2,0x11b2,0x11b2,
+0x11b2,0x11b2,0x11b2,0x11c1,0x11c4,0x11c4,0x11c4,0x11c4,0x11b2,0x11b2,0x18c,0x18c,0x15ab,0x15ab,0x15ab,0x15ab,
+0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15ab,0x15a8,0x210,0x1308,0x12e7,0x1302,0x1302,
+0x1302,0x1302,0x1302,0x1302,0x1302,0x12ea,0x12ea,0x12ea,0x12ea,0x1302,0x12ea,0x12ea,0x12ea,0x12ea,0x12f0,0x14d6,
+0x14dc,0x14d9,0x14d3,0x192,0x1701,0x1701,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x11d9,0x11d9,0x11d9,0x11d9,
+0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d0,0x11d0,0x11d3,0x11dc,
+0x11d6,0x11d6,0x11d6,0x11dc,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x11df,0x11df,0x11df,0x11df,
+0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x130e,0x11e5,0x1311,
+0x11e5,0x11e5,0x11e5,0x11e5,0x11e2,0x11e2,0x11e2,0x11e5,0x173a,0x173d,0x19b,0x19b,0x12d5,0x12d5,0x12d5,0x12d5,
+0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,
+0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x12d5,0x19e,0x19e,0x19e,0x11fa,0x11ee,0x11ee,0x11ee,
+0x11ee,0x11ee,0x11ee,0x11f1,0x1200,0x1200,0x11ee,0x11ee,0x11ee,0x11ee,0x1a1,0x12fc,0x11f4,0x11f4,0x11f4,0x11f4,
+0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x1a1,0x1a1,0x1a1,0x1a1,0x11ee,0x11ee,0x121e,0x1212,0x121e,0x1a4,
+0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,
+0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x121b,0x121b,0x1221,0x1215,0x1218,0x1236,0x1236,0x1236,0x1230,
+0x1230,0x1227,0x1230,0x1230,0x1227,0x1230,0x1230,0x1239,0x1233,0x122a,0x1a7,0x1a7,0x122d,0x122d,0x122d,0x122d,
+0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x123f,0x123f,0x123f,0x123f,
+0x123f,0x123f,0x123f,0x1aa,0x1aa,0x1aa,0x1aa,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,
+0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,0x123c,
+0x123c,0x123c,0x123c,0x123c,0x1aa,0x1aa,0x1aa,0x1aa,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,
+0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1248,0x1ad,0x1245,
+0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,
+0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1b0,0x1b0,
+0x1b0,0x1251,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,
+0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x1b3,0x1b3,
+0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x125a,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,
+0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,
+0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,
+0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,
+0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1bc,0x1287,0x1287,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
+0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,
+0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,
+0x12b1,0x12b1,0x12b1,0x156c,0x156c,0x1c5,0x1c5,0x1c5,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,
+0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b4,0x12b4,0x12b4,0x1293,0x1c5,
+0x13b6,0x12bd,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x12bd,0x13b6,0x12bd,
+0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x1443,0x1443,0x1c5,0x1c5,0x1c5,0x1c5,
+0x13b9,0x13b9,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x12ba,0x13b3,0x12ba,0x12ba,0x13b3,0x13b9,0x12c0,
+0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1863,0x1c5,0x1c5,0x1c5,
+0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,
+0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,
+0x1c5,0x1c5,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,
+0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x12e1,0x13d4,0x13d1,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x12db,0x12db,0x12db,0x12db,
+0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12de,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,
+0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12db,0x12de,0x12db,0x12db,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d1,
+0x13d4,0x13d4,0x13d4,0x1866,0x1c8,0x1c8,0x1c8,0x1c8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,
+0x12d8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1401,0x1401,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
+0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,0x1374,
+0x1374,0x1374,0x1374,0x1374,0x1374,0x136e,0x136e,0x136e,0x1cb,0x1cb,0x1371,0x1cb,0x1386,0x1386,0x1386,0x1386,
+0x1386,0x1386,0x1377,0x1380,0x137a,0x137a,0x1380,0x1380,0x1380,0x137a,0x1380,0x137a,0x137a,0x137a,0x1383,0x1383,
+0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x137d,0x137d,0x137d,0x137d,0x1d1,0x1389,0x1389,0x1389,
+0x1389,0x1389,0x1389,0x1d1,0x1d1,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1d1,0x1d1,0x1389,0x1389,0x1389,
+0x1389,0x1389,0x1389,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1389,0x1389,0x1389,0x1389,
+0x1389,0x1389,0x1389,0x1d1,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1389,0x1d1,0x1608,0x1608,0x1608,0x1608,
+0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x138c,0x138c,0x138c,0x138c,
+0x138c,0x138c,0x138f,0x13a1,0x13a1,0x1395,0x1395,0x1395,0x1395,0x1395,0x1d4,0x1d4,0x1d4,0x1d4,0x1392,0x1392,
+0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1398,0x1398,
+0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1398,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
+0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x156f,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x13da,0x13d7,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x13a7,0x13a7,0x13a7,0x13a7,
+0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1dd,0x1dd,0x13a7,0x13a7,0x13a7,
+0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1572,0x1dd,0x13a7,0x13a7,0x13a7,
+0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13dd,0x1dd,0x13a7,0x13a7,0x13a7,
+0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1572,0x1572,0x1572,0x1572,
+0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,0x1572,
+0x1572,0x1572,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x13fb,0x13f5,0x13f5,0x13f5,
+0x13f5,0x13f5,0x1587,0x1587,0x1587,0x1587,0x1587,0x158a,0x16f8,0x158a,0x158a,0x158a,0x17c1,0x186f,0x186f,0x1e0,
+0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x158a,0x158a,0x158a,0x158a,
+0x158a,0x158a,0x1587,0x1587,0x1587,0x158a,0x1587,0x16f5,0x16f5,0x1e0,0x1e0,0x1e0,0x158a,0x1587,0x1587,0x158a,
+0x186f,0x186f,0x186f,0x1e3,0x1e3,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x13aa,0x13aa,0x13aa,0x13aa,
+0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,
+0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x144f,0x1590,0x144f,0x144f,
+0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1746,
+0x1746,0x1e9,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,
+0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,
+0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x1455,0x1455,0x1455,0x1455,
+0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,
+0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1ec,
+0x1455,0x1ec,0x1ec,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,
+0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1455,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1ec,
+0x1455,0x1ec,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1455,0x1ec,
+0x1455,0x1ec,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,
+0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,
+0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,
+0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1455,0x1455,0x1455,
+0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,
+0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1452,0x1452,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,
+0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x1458,
+0x1458,0x1458,0x1458,0x1458,0x1467,0x1458,0x145b,0x145b,0x1458,0x1458,0x1458,0x145e,0x145e,0x1ef,0x1464,0x1464,
+0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1461,0x146d,0x146d,0x146d,0x1ef,0x1ef,0x1ef,0x1ef,
+0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,
+0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,
+0x1479,0x1479,0x1479,0x1476,0x1470,0x1470,0x1476,0x1476,0x147f,0x147f,0x1479,0x147c,0x147c,0x1476,0x1473,0x1f2,
+0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,
+0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,
+0x1f5,0x1f5,0x1f5,0x1f5,0x1749,0x1749,0x1482,0x1482,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,
+0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1f5,0x1f5,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,
+0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x148e,0x148e,0x148e,0x148e,0x148e,0x1f8,0x1f8,0x1f8,
+0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x148e,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,
+0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,
+0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x148b,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,
+0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1488,0x1488,0x1488,0x1488,0x1491,
+0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x14a3,0x14a6,0x14a9,0x14a9,
+0x14a6,0x14ac,0x14ac,0x1497,0x149a,0x174f,0x174c,0x174c,0x174c,0x1596,0x1fb,0x1fb,0x149d,0x149d,0x149d,0x149d,
+0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x1593,0x1755,0x1758,0x1752,0x175b,0x175b,0x14b2,0x14b2,0x14b2,0x14b2,
+0x14b2,0x14b2,0x14b2,0x14b2,0x14b2,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x14af,0x14af,0x14af,0x14af,
+0x14af,0x14af,0x14af,0x14af,0x14af,0x14af,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x14b5,0x14b5,0x14b5,0x14b5,
+0x14b5,0x14b5,0x14b5,0x14b5,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x1305,0x1302,0x1305,0x12ed,
+0x1302,0x1302,0x1302,0x1308,0x1302,0x1308,0x130b,0x1302,0x1308,0x1308,0x1302,0x1302,0x14c7,0x14c7,0x14c7,0x14c7,
+0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14b8,0x14c1,0x14b8,0x14c1,0x14c1,0x14b8,0x14b8,0x14b8,0x14b8,
+0x14b8,0x14b8,0x14c4,0x14bb,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x159c,0x159c,0x159c,0x159c,
+0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x159c,0x207,0x207,0x1599,0x1599,0x1599,0x1599,
+0x1599,0x159f,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x1704,0x16fb,0x16fb,0x16fb,
+0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,
+0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x16fb,0x20d,0x20d,0x20d,0x20d,0x210,0x210,0x210,0x210,
+0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,
+0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x15b7,0x15b7,0x15b7,0x15b7,
+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x213,0x213,0x213,0x213,0x213,0x15b7,0x15b7,0x15b7,0x15b7,
+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x213,0x213,0x213,0x213,0x213,0x213,0x213,
+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x213,0x213,0x15b4,0x15ae,0x15b1,0x15ba,
+0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,
+0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,
+0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x175e,0x15c3,0x15c9,0x170a,0x21c,0x15d2,0x15d2,0x15d2,
+0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x21c,0x21c,0x15d2,0x15d2,0x21c,0x21c,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,
+0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x21c,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,
+0x15d2,0x21c,0x15d2,0x15d2,0x21c,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x21c,0x21c,0x1707,0x15d2,0x15c3,0x15c9,
+0x15c3,0x15c9,0x15c9,0x15c9,0x15c9,0x21c,0x21c,0x15c9,0x15c9,0x21c,0x21c,0x15cc,0x15cc,0x15cf,0x21c,0x21c,
+0x1761,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x15c3,0x21c,0x21c,0x21c,0x21c,0x21c,0x15d5,0x15d2,0x15d2,
+0x15d2,0x15d2,0x15c9,0x15c9,0x21c,0x21c,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x21c,0x21c,0x21c,
+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,
+0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,
+0x15ea,0x15ea,0x21f,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,
+0x15e4,0x15e4,0x15e4,0x15d8,0x15d8,0x15d8,0x15e4,0x15e4,0x15d8,0x15e7,0x15db,0x15d8,0x15ed,0x15ed,0x15e1,0x15ed,
+0x15ed,0x15de,0x17f4,0x21f,0x15fc,0x15fc,0x15fc,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f3,0x15f6,0x222,
+0x222,0x222,0x222,0x222,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x15f9,0x222,0x222,
+0x222,0x222,0x222,0x222,0x1764,0x1764,0x1764,0x1764,0x1608,0x1605,0x225,0x225,0x225,0x225,0x225,0x225,
+0x225,0x225,0x225,0x225,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,
+0x178e,0x178e,0x178e,0x178e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,
+0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,
+0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,
+0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x1611,0x1614,0x1617,0x161a,0x22b,0x22b,0x22b,0x22b,0x22b,
+0x22b,0x22b,0x22b,0x22b,0x1629,0x1629,0x1629,0x1629,0x1629,0x161d,0x161d,0x22e,0x22e,0x22e,0x22e,0x1620,
+0x1620,0x1620,0x1620,0x1620,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1623,0x22e,0x22e,0x22e,0x22e,0x22e,
+0x22e,0x22e,0x22e,0x22e,0x1632,0x1632,0x1632,0x1632,0x1632,0x231,0x231,0x162f,0x162f,0x162f,0x162f,0x162f,
+0x162f,0x162f,0x162f,0x162f,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x231,0x231,0x231,0x231,0x231,
+0x231,0x231,0x231,0x231,0x1635,0x1647,0x1647,0x163b,0x1644,0x234,0x234,0x234,0x234,0x234,0x234,0x234,
+0x234,0x234,0x234,0x234,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x234,0x234,
+0x234,0x234,0x234,0x234,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,
+0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,
+0x164d,0x164d,0x164d,0x237,0x1659,0x1659,0x1659,0x1659,0x1659,0x1653,0x165c,0x1659,0x1659,0x1659,0x1659,0x1659,
+0x1659,0x1659,0x1659,0x1659,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1659,0x1659,
+0x1659,0x1659,0x1659,0x23a,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,
+0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,
+0x1662,0x1662,0x1662,0x23d,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,
+0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166b,0x166b,0x166b,0x166b,0x166b,0x240,
+0x240,0x240,0x240,0x240,0x1686,0x1686,0x1689,0x1689,0x168c,0x167d,0x243,0x243,0x243,0x243,0x243,0x243,
+0x243,0x243,0x243,0x243,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x243,0x167d,
+0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x243,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x243,0x243,0x243,0x243,
+0x243,0x1686,0x1686,0x1686,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,
+0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x246,0x246,0x246,
+0x246,0x246,0x246,0x246,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,
+0x169e,0x169e,0x169e,0x169e,0x169e,0x169e,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x169b,0x169b,0x169b,
+0x169b,0x249,0x249,0x249,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,
+0x16b9,0x16b9,0x16b9,0x16a1,0x16b3,0x16b3,0x16a1,0x16a1,0x16a1,0x16a1,0x24f,0x24f,0x16b3,0x16b3,0x16b6,0x16b6,
+0x16a1,0x16a1,0x16b3,0x16a7,0x16a4,0x16aa,0x16bc,0x16bc,0x16ad,0x16ad,0x16b0,0x16b0,0x16b0,0x16bc,0x176d,0x176d,
+0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176a,0x176a,0x176a,0x176a,
+0x1767,0x1767,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,
+0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,
+0x24f,0x24f,0x24f,0x24f,0x252,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,
+0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x16bf,0x252,0x252,0x252,0x252,0x252,0x252,0x252,
+0x252,0x252,0x252,0x252,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,
+0x255,0x255,0x255,0x255,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x255,0x255,0x255,0x255,0x255,0x255,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x255,0x255,
+0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,
+0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,
+0x16c5,0x16d4,0x16cb,0x16c8,0x16da,0x16da,0x16ce,0x16da,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,
+0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x258,0x258,0x258,0x258,0x258,0x258,
+0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16e0,0x16dd,0x16dd,0x16dd,0x16dd,0x16dd,0x16dd,
+0x16dd,0x16dd,0x16dd,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x16e6,
+0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,
+0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x177f,0x25e,0x25e,0x25e,0x1770,0x1770,0x1770,
+0x177c,0x177c,0x1770,0x1770,0x1770,0x1770,0x177c,0x1770,0x1770,0x1770,0x1770,0x1773,0x25e,0x25e,0x25e,0x25e,
+0x1779,0x1779,0x1779,0x1779,0x1779,0x1779,0x1779,0x1779,0x1779,0x1779,0x1776,0x1776,0x1782,0x1782,0x1782,0x1776,
+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
+0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
+0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,
+0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x267,0x1797,0x1797,0x267,0x267,
+0x267,0x267,0x267,0x1794,0x1794,0x1794,0x1794,0x1794,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x26a,
+0x179a,0x26a,0x179a,0x179a,0x179a,0x179a,0x26a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x26a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179d,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,
+0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,
+0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x26d,0x26d,0x26d,0x26d,0x26d,
+0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,
+0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x26d,0x26d,0x26d,0x26d,0x26d,
+0x26d,0x26d,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,
+0x270,0x270,0x270,0x270,0x273,0x273,0x273,0x273,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,
+0x17ca,0x1878,0x1878,0x1878,0x1878,0x1875,0x1878,0x279,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1878,0x1875,
+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x1878,0x279,0x279,0x1878,0x1878,0x1878,0x1878,0x1878,
+0x1878,0x1878,0x1875,0x1872,0x1875,0x1878,0x1878,0x273,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1872,0x1875,
+0x1875,0x1875,0x1875,0x1875,0x276,0x273,0x273,0x273,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,
+0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,
+0x276,0x276,0x276,0x276,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x1875,0x1875,0x1875,
+0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x1875,0x276,0x276,0x276,0x276,0x276,0x276,
+0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x17c7,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x276,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x276,0x276,
+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
+0x17ac,0x17ac,0x17ac,0x17ac,0x17a9,0x17ac,0x17ac,0x17af,0x17b2,0x17af,0x17af,0x17ac,0x27c,0x27c,0x27c,0x27c,
+0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,
+0x1806,0x1806,0x1806,0x1806,0x17fd,0x17fd,0x17fd,0x17f7,0x17fa,0x17fa,0x17fa,0x27f,0x27f,0x27f,0x27f,0x27f,
+0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x27f,0x27f,0x27f,0x27f,0x1800,0x1800,
+0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x282,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,
+0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,
+0x1821,0x1821,0x1821,0x181e,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x180c,0x282,0x180c,0x180c,0x180c,0x180c,
+0x180c,0x180c,0x181e,0x180f,0x1821,0x1824,0x1824,0x1818,0x1815,0x1815,0x282,0x282,0x282,0x282,0x282,0x282,
+0x282,0x282,0x282,0x282,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x282,0x282,0x282,
+0x1830,0x1833,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,
+0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x288,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,
+0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x288,0x288,0x182a,0x182a,0x182a,0x182a,0x182a,
+0x187b,0x28e,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,
+0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,
+0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,
+0x291,0x291,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,
+0x291,0x1836,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x1836,0x182d,0x182d,0x1836,0x182d,0x182d,0x291,
+0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,
+0x183c,0x183c,0x183c,0x183c,0x183c,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,
+0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x1854,0x1854,0x1845,0x183f,0x183f,0x1854,0x1842,0x1857,
+0x1857,0x1857,0x1857,0x185a,0x185a,0x184e,0x184b,0x1848,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,0x1851,
+0x1851,0x1851,0x297,0x184e,0x297,0x1848,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,
+0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,
+0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,
+0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x29a,0x29a,0x29a,0x29a,
+0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,
+0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x29a,0x29a,0x29a,0x29a,
+0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x29d,0x29d,0x29d,
+0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,
+0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,
+0x1881,0x1881,0x1881,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
+0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
+0x2a6,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
+0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
+0x2a3,0x2a3,0x975,0x975,0x17c4,0x17c4,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,
+0x2c1,0x2c1,0x2c1,0x2c1,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,
+0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,
+0x2a6,0x2a6,0x2a6,0x2a6,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
+0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,
+0x2a9,0x2a9,0x2a9,0x2a9,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2ac,
+0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,
+0x2ac,0x2ac,0x2ac,0x2ac,0x112b,0x112b,0x112b,0x112b,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,0x12cc,
+0x14ca,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,
+0x2af,0x2af,0x2af,0x2af,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0x12cf,
+0x12cf,0x12cf,0x2b2,0x2b2,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,
+0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0x2b2,0x2b2,
+0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,
+0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,
+0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,
+0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,
+0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,
+0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0x2b8,0x2b8,
+0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
+0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,
+0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
+0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x2be,0x2be,
+0x1143,0x3ba,0x3ba,0x3c6,0xccf,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,
+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,
+0x3c6,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3c6,0x3c6,0x3c6,0x3c6,0x3c0,0x1146,0x131d,
+0x3c9,0x942,0x945,0x3bd,0x3bd,0x1143,0x131a,0x131a,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,
+0x3c9,0x3c9,0x3ba,0x3ba,0x8cd,0x8d0,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x3c3,0xfa5,0xfa2,0x1320,0x1320,0x1320,0x1320,0x1320,0x14f1,0x1149,0x1149,0xef7,0xef7,0xdc2,0xef7,0xef7,
+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3cc,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,
+0x3c9,0x3cc,0x3c9,0x3c9,0x3cc,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x131a,0x131d,0x3bd,0x3c9,0x3c6,0x3c6,
+0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,
+0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0xbbb,0xbbb,0xdce,0xdce,0x8d3,0xdd1,0x1410,0x1410,0x1410,
+0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,
+0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,
+0x4b0,0x4b0,0x4b0,0x115e,0x115e,0x115e,0x115e,0x115e,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,
+0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,
+0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x115b,0x115b,0x115b,0x115b,0x115b,0x115b,
+0x4b3,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,
+0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,
+0x4b0,0x4b0,0x4b0,0x4b0,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,
+0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,
+0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b9,0x9b7,0xff3,0xff3,0xff6,0xff3,
+0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,
+0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0x4bc,0x4b6,0xff6,0xff3,0xff6,0xff3,0xff6,0xff3,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,
+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,
+0x6a8,0x6a8,0x6ab,0x4e6,0x6b7,0x6b4,0x6b4,0x6b1,0x510,0x510,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0xae9,
+0x6ba,0x4f2,0x6d2,0x6d5,0x507,0x6ba,0x4f5,0x4f5,0x4e6,0x501,0x501,0x6a8,0x50d,0x50a,0x6ae,0x4e0,
+0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4dd,0x4da,0x4da,0x4da,0x4d1,0x519,0x516,0x513,0x513,
+0x6c6,0x4fb,0x4f8,0x6c3,0x6c0,0x6bd,0x6cf,0x4e9,0x6cc,0x6cc,0x4fe,0x501,0x6c9,0x6c9,0x4fe,0x501,
+0x4e3,0x4e6,0x4e6,0x4e6,0x504,0x4ef,0x4ec,0xbd0,0xaef,0xaf2,0xaec,0xaec,0xaec,0xaec,0xbc7,0xbc7,
+0xbc7,0xbc7,0xbcd,0xcfc,0xcf9,0xddd,0xde0,0xbca,0xde0,0xde0,0xde0,0xde0,0xddd,0xde0,0xde0,0xbc4,
+0x54c,0x54c,0x564,0x6e4,0x549,0x6e1,0x54c,0x561,0x549,0x6e4,0x55b,0x564,0x564,0x564,0x55b,0x55b,
+0x564,0x564,0x564,0x6ed,0x549,0x564,0x6e7,0x549,0x558,0x564,0x564,0x564,0x564,0x564,0x549,0x549,
+0x54f,0x6e1,0x6ea,0x549,0x564,0x549,0x6f0,0x549,0x564,0x552,0x56a,0x6f3,0x564,0x564,0x555,0x55b,
+0x564,0x564,0x567,0x564,0x55b,0x55e,0x55e,0x55e,0x55e,0xafe,0xafb,0xcff,0xdef,0xbeb,0xbee,0xbee,
+0xbe8,0xbe5,0xbe5,0xbe5,0xbe5,0xbee,0xbeb,0xbeb,0xbeb,0xbeb,0xbe2,0xbe5,0xdec,0xf03,0xf06,0xffc,
+0x116d,0x116d,0x116d,0x6f9,0x6f6,0x56d,0x570,0x570,0x570,0x570,0x570,0x6f6,0x6f9,0x6f9,0x6f6,0x570,
+0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x6ff,0x579,0x579,0x579,0x579,
+0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x573,0x573,0x573,0x573,0x573,0x573,
+0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57c,0x585,0x585,0x57f,0x57f,0x57f,0x582,0x57c,
+0x57f,0x57f,0x57c,0x57c,0x57c,0x57c,0x57f,0x57f,0x702,0x702,0x57c,0x57c,0x57f,0x57f,0x57f,0x57f,
+0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x582,0x582,0x582,0x57f,0x57f,0x705,0x57f,
+0x705,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f,0x57c,0x57f,0x57c,0x57c,0x57c,0x57c,0x57c,0x57c,
+0x57f,0x57f,0x57c,0x702,0x57c,0x57c,0x57c,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,
+0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0x70b,0x588,0x70b,0x70b,
+0x58b,0x588,0x588,0x70b,0x70b,0x58b,0x588,0x70b,0x58b,0x588,0x588,0x70b,0x588,0x70b,0x597,0x594,
+0x588,0x70b,0x588,0x588,0x588,0x588,0x70b,0x588,0x588,0x70b,0x70b,0x70b,0x70b,0x588,0x588,0x70b,
+0x58b,0x70b,0x58b,0x70b,0x70b,0x70b,0x70b,0x70b,0x711,0x58e,0x70b,0x58e,0x58e,0x588,0x588,0x588,
+0x70b,0x70b,0x70b,0x70b,0x588,0x588,0x588,0x588,0x70b,0x70b,0x588,0x588,0x588,0x58b,0x588,0x588,
+0x58b,0x588,0x588,0x58b,0x70b,0x58b,0x588,0x588,0x70b,0x588,0x588,0x588,0x588,0x588,0x70b,0x588,
+0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x70e,0x70b,0x58b,0x588,
+0x70b,0x70b,0x70b,0x70b,0x588,0x588,0x70b,0x70b,0x588,0x58b,0x70e,0x70e,0x58b,0x58b,0x588,0x588,
+0x58b,0x58b,0x588,0x588,0x58b,0x58b,0x588,0x588,0x588,0x588,0x588,0x588,0x58b,0x58b,0x70b,0x70b,
+0x58b,0x58b,0x70b,0x70b,0x58b,0x58b,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
+0x588,0x70b,0x588,0x588,0x588,0x70b,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x70b,0x588,0x588,
+0x588,0x588,0x588,0x588,0x58b,0x58b,0x58b,0x58b,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
+0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x70b,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
+0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
+0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x58b,0x58b,0x58b,0x58b,0x588,0x588,0x588,0x588,
+0x588,0x588,0x58b,0x58b,0x58b,0x58b,0x588,0x591,0x588,0x588,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0x59a,0xb07,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,
+0x5a6,0x5a3,0x5a6,0x5a3,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x714,0x59a,0x59a,0x59a,0x59a,0x59a,
+0x59a,0x59a,0x819,0x819,0x59a,0x59a,0x59a,0x59a,0x5a0,0x5a0,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,
+0x59d,0x81f,0x81c,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,
+0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,
+0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0xb07,0xbfa,0xb07,0xb07,0xb07,0x5a9,0x5a9,0x5a9,0x5a9,
+0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,
+0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x71d,0x71d,0x71d,0x71d,
+0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x5af,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,
+0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xd74,0x726,0x726,0x726,0x726,
+0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,
+0x5b2,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x726,0x726,0x726,0x726,
+0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x5b5,0x5b5,0x5b5,0x5b5,0x726,0x726,0x726,0x726,
+0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x729,0x729,0x729,0x729,
+0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x5b8,0x5b8,0x729,0x729,
+0x729,0x729,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0x72f,0x72f,0x5bb,0x72c,
+0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x5be,0x5be,0x5bb,0x5bb,0x5c1,0x5c1,0x5c1,0x5c1,0x72f,0x72f,
+0x5c1,0x5c1,0x732,0x72f,0x5bb,0x5bb,0x5bb,0x5bb,0x72f,0x72f,0x5c1,0x5c1,0x732,0x72f,0x5bb,0x5bb,
+0x5bb,0x5bb,0x72f,0x72f,0x72c,0x5bb,0x5c1,0x72f,0x5bb,0x5bb,0x72c,0x72f,0x72f,0x72f,0x5c1,0x5c1,
+0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x72f,0x72c,
+0x72f,0x72c,0x5bb,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5bb,0x5bb,0x72c,0xb0d,0xb0d,0xb0d,0xb0d,
+0xb0d,0xb0d,0xb0d,0xb0d,0xc00,0xc00,0xc00,0xc03,0xc03,0xc78,0xc78,0xc00,0x5cd,0x5cd,0x5cd,0x5cd,
+0x5ca,0x741,0x741,0x5c4,0x5c4,0x735,0x5c4,0x5c4,0x5c4,0x5c4,0x73b,0x735,0x5c4,0x5ca,0x5c4,0x5c4,
+0xd7d,0xd7d,0xc06,0xc06,0xdfe,0xb10,0x5c7,0x5c7,0x738,0x5d0,0x738,0x5c7,0x5ca,0x5c4,0x5ca,0x5ca,
+0x5c4,0x5c4,0x5ca,0x5c4,0x5c4,0x5c4,0x5ca,0x5c4,0x5c4,0x5c4,0x5ca,0x5ca,0x5c4,0x5c4,0x5c4,0x5c4,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5ca,0x5cd,0x5cd,0x5c7,0x5c4,0x5c4,0x5c4,0x5c4,0x747,0x5c4,0x747,0x5c4,
+0x5c4,0x5c4,0x5c4,0x5c4,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x744,0x741,0x5d3,0x744,
+0x735,0x73b,0x5ca,0x735,0x73e,0x735,0x735,0x5c4,0x735,0x741,0x5d3,0x741,0xb10,0xb10,0xc09,0xc09,
+0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc0c,0xc09,0xc09,0xdf5,0xeb5,0x5d6,0x5d6,0x5d6,0x5d6,
+0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
+0x5d9,0x13c5,0x13c5,0x13c5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1515,0x5df,0x5eb,0x5df,
+0x5df,0x13c5,0x5d9,0x5d9,0x5ee,0x5eb,0x13c8,0x13c8,0x5f1,0x5f1,0x5d9,0x5e5,0x5d9,0x5d9,0x5e5,0x5d9,
+0x5e5,0x5d9,0x5e5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5e5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
+0x13c5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5e5,0x5e5,0x5d9,0x5d9,0x5d9,
+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x74d,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5e5,0x5d9,0x5d9,0x5e5,
+0x5d9,0x5d9,0x5d9,0x5d9,0x13c5,0x5d9,0x13c5,0x5d9,0x5d9,0x5d9,0x5d9,0x13c5,0x13c5,0x13c5,0x5d9,0x12c9,
+0x5d9,0x5d9,0x5d9,0x5e2,0x5e2,0x5e2,0x5e2,0x1347,0x1347,0x5d9,0x5dc,0x5e8,0x5ee,0x5d9,0x5d9,0x5d9,
+0xc12,0xc0f,0xc12,0xc0f,0xc12,0xc0f,0xc12,0xc0f,0xc12,0xc0f,0xc12,0xc0f,0xc12,0xc0f,0x74a,0x74a,
+0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x74a,0x5d9,0x5e5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x13c5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x13c5,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x612,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x61b,0x61b,0x61b,0x61b,
+0x61b,0x61b,0x61b,0x61b,0x612,0x618,0x609,0x60c,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x618,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,
+0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,
+0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,0x618,0x612,0x618,0x612,0x618,0x612,0x618,0x612,
+0x618,0x612,0x618,0x612,0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,0x615,0x61b,0x618,0x612,
+0x615,0x61b,0x618,0x612,0x618,0x612,0x615,0x61b,0x618,0x612,0x618,0x612,0x615,0x61b,0x618,0x612,
+0x615,0x61b,0x618,0x612,0x618,0x612,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,0x134a,
+0x134a,0x134a,0x134a,0x134a,0x618,0x612,0x618,0x612,0x618,0x612,0x615,0x61b,0x615,0x61b,0x618,0x612,
+0x618,0x612,0x618,0x612,0x618,0x612,0x618,0x612,0x618,0x612,0x618,0x612,0x615,0x618,0x612,0x615,
+0x618,0x612,0x615,0x61b,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x615,0x615,0x615,0x615,0x615,
+0x615,0x615,0x615,0x615,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x615,0x615,0x612,0x615,0x612,0x615,0x612,0x612,0x615,0x612,0x612,0x615,
+0x612,0x615,0x612,0x612,0x615,0x612,0x615,0x615,0x612,0x612,0x612,0x615,0x612,0x612,0x612,0x612,
+0x612,0x615,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,
+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x615,0x615,0x612,0x612,0x615,0x612,0x615,0x612,
+0x612,0x612,0x612,0x612,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,
+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,
+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x61b,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,
+0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x618,0x618,0x618,
+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x61e,0x61e,0x61e,0x61e,0x1008,0x1008,0x1008,0x1518,
+0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1722,0x1722,0x87f,0x885,0x885,0x891,0x891,0x882,0x879,0x882,
+0x879,0x882,0x879,0x882,0x879,0x882,0x879,0x882,0x62d,0x62d,0x627,0x62d,0x627,0x62d,0x627,0x62d,
+0x627,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62d,0x627,0x62a,
+0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62d,0x627,0x62d,0x627,0x62d,
+0x627,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,
+0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,0x630,0x62d,0x627,0x62a,
+0x630,0x62d,0x627,0x62a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,
+0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,
+0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,
+0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x720,0x720,0x720,0x720,0x720,0x720,
+0x720,0x720,0x720,0x720,0x720,0x720,0x723,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,
+0x720,0x720,0x720,0x720,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,
+0x71d,0x71d,0x71d,0x71d,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,
+0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,
+0x726,0x726,0x726,0x726,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,
+0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,
+0x750,0x750,0x750,0x750,0xc66,0x8e5,0x8df,0x8dc,0x8e2,0x8d9,0x765,0x768,0x768,0x768,0x768,0x768,
+0x768,0x768,0x768,0x768,0x8eb,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
+0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,
+0x765,0x765,0x765,0x765,0x765,0x765,0x8e8,0x8e8,0x76b,0x8fa,0x8fd,0x903,0x825,0x831,0x918,0x82e,
+0x8f1,0x8ee,0x8f1,0x8ee,0x8f7,0x8f4,0x8f7,0x8f4,0x8f1,0x8ee,0x82b,0x903,0x8f1,0x8ee,0x8f1,0x8ee,
+0x8f1,0x8ee,0x8f1,0x8ee,0x906,0x90f,0x90c,0x90c,0x771,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7a7,
+0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,
+0x7a7,0x7a7,0x7a7,0x774,0x78f,0x76e,0x795,0x798,0x792,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7a4,
+0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,
+0x7a4,0x7a4,0x7a4,0x774,0x78f,0x76e,0x78f,0xc69,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
+0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
+0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x816,
+0x82b,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x94e,0x94e,0x94e,0x94e,0x834,0x834,
+0x909,0x915,0x915,0x915,0x915,0x912,0x828,0x900,0xb34,0xb34,0xb34,0xc7b,0xc99,0xc96,0xb4f,0x8d6,
+0x83a,0x837,0x83a,0x83d,0x837,0x83a,0x837,0x83a,0x837,0x83a,0x837,0x837,0x837,0x837,0x837,0x837,
+0x83a,0x83a,0x837,0x83a,0x83a,0x837,0x83a,0x83a,0x837,0x83a,0x83a,0x837,0x83a,0x83a,0x837,0x837,
+0xc9c,0x84c,0x846,0x84c,0x846,0x84c,0x846,0x84c,0x846,0x84c,0x846,0x846,0x849,0x846,0x849,0x846,
+0x849,0x846,0x849,0x846,0x849,0x846,0x849,0x846,0x849,0x846,0x849,0x846,0x849,0x846,0x849,0x846,
+0x849,0x846,0x849,0x84c,0x846,0x849,0x846,0x849,0x846,0x849,0x846,0x846,0x846,0x846,0x846,0x846,
+0x849,0x849,0x846,0x849,0x849,0x846,0x849,0x849,0x846,0x849,0x849,0x846,0x849,0x849,0x846,0x846,
+0x846,0x846,0x846,0x84c,0x846,0x84c,0x846,0x84c,0x846,0x846,0x846,0x846,0x846,0x846,0x84c,0x846,
+0x846,0x846,0x846,0x846,0x849,0x84c,0x84c,0x849,0x849,0x849,0x849,0x91e,0x921,0x84f,0x852,0xc84,
+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,
+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,
+0x85b,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,
+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x864,0x864,0x864,0x864,
+0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,
+0x864,0x864,0x864,0x864,0x864,0x864,0x864,0x864,0xd86,0xd86,0xeb8,0x85e,0x92a,0x92a,0x92a,0x92a,
+0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0xd80,0xd80,0xd80,0xd80,0x867,0x867,0x867,0x867,
+0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x933,0x933,0x933,0x933,
+0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x86a,0x86a,0x86a,
+0x86a,0x86a,0x86a,0xd89,0xd89,0xd89,0xd89,0x936,0x936,0x936,0x936,0x936,0x86a,0x86a,0x86a,0x86a,
+0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,
+0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0xd89,0xd89,
+0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,
+0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,
+0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,
+0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,
+0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,
+0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,0xebb,
+0x112b,0x112b,0x112b,0x112b,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,
+0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,
+0x873,0x873,0x873,0x873,0x873,0x873,0x876,0x876,0x873,0x876,0x873,0x876,0x876,0x873,0x873,0x873,
+0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x876,0x873,0x876,0x873,0x876,0x876,0x873,0x873,0x876,
+0x876,0x876,0x873,0x873,0x873,0x873,0x14cd,0x14cd,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,
+0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,
+0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,
+0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x12ff,0x12ff,0x12ff,0x12ff,0x12a8,0x12a8,0x12a8,0x12a8,
+0x12a8,0x12a8,0x12a8,0x12a8,0xd80,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,
+0xc87,0xc87,0xc87,0xc87,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,
+0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x930,0x92d,0x930,0x92d,0x92d,
+0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,
+0x92d,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,
+0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,
+0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0x933,0xd89,
+0x9b1,0x993,0x993,0x993,0x993,0x98d,0x993,0x993,0x9a5,0x993,0x993,0x990,0x99c,0x9a2,0x9a2,0x9a2,
+0x9a2,0x9a2,0x9a5,0x98d,0x999,0x98d,0x98d,0x98d,0x984,0x984,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
+0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x98d,0x98d,0x98d,0x98d,0x98d,0x98d,
+0x98d,0x98d,0x98d,0x98d,0x990,0x984,0x98d,0x984,0x98d,0x984,0x99f,0x996,0x99f,0x996,0x9ae,0x9ae,
+0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,
+0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,
+0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,
+0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,
+0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,
+0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,
+0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,
+0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9c6,0x9c6,
+0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,
+0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9c9,0x9c9,
+0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,
+0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,
+0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,
+0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,
+0x9d2,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
+0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d2,0x9d5,0x9d5,0x9d5,
+0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
+0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0xa62,0xa62,0xfed,0xa62,0xa62,0xa62,0xa65,0xa62,
+0xfed,0xa62,0xa62,0xfe4,0xa5c,0xa50,0xa50,0xa50,0xa50,0xa5f,0xa50,0xfd2,0xfd2,0xfd2,0xa50,0xa53,
+0xa5c,0xa56,0xfd8,0xfe7,0xfe7,0xfd2,0xfd2,0xfed,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,
+0xb55,0xb55,0xa68,0xa68,0xa59,0xa59,0xa59,0xa59,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa5f,0xa5f,
+0xa50,0xa50,0xfed,0xfed,0xfed,0xfed,0xfd2,0xfd2,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,
+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xdda,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xdda,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,
+0xa77,0xa77,0xa77,0xa77,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,
+0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,
+0xa7d,0xa7d,0xa7d,0xa7d,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,
+0xa83,0xa80,0xa86,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0x1164,0x1164,0x1164,0x1164,0x1164,
+0x1164,0x1164,0x1164,0x1164,0x1161,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,
+0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,
+0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,
+0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,
+0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xabc,0xabc,0xabc,0xabf,0xabf,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xaa4,0xaa4,0xab9,0xa9b,
+0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xa9b,0xab9,0xab9,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,
+0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xadd,0xadd,0xadd,0xadd,0xadd,0xac8,0xac8,0xadd,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xadd,0xae0,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,
+0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xb07,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,
+0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
+0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,
+0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,
+0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,0xb25,
+0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,
+0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,
+0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
+0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb40,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,
+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb43,0xb43,0xc8a,0xc8a,0xb43,0xb43,0xb43,0xb43,
+0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xc8a,0xb43,0xb43,0xb43,
+0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,
+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,
+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0x151b,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xd11,0xd11,
+0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,
+0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xd0e,0xd0e,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xb6d,0xb6d,0xb6d,0xb6d,
+0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,
+0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb70,0xb70,0xb70,0xb70,
+0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,
+0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb7f,0xb7f,0xb7f,0xb7f,
+0xb7f,0xb76,0xb82,0xb88,0xb88,0xb88,0xb7c,0xb7c,0xb7c,0xb85,0xb79,0xb79,0xb79,0xb79,0xb79,0xb73,
+0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb88,0xb88,0xb88,0xb88,0xb88,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7f,0xb7f,
+0xb88,0xb88,0xb88,0xb7c,0xb7c,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb88,0xb88,0xb88,0xb88,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,
+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0x1725,0x1725,0xb94,0xb8b,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb8b,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb8b,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb8b,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb8b,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb8e,0xb8e,0xb8e,0xb8e,
+0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,
+0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
+0xb94,0xb94,0xb94,0xb94,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
+0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
+0xb97,0xb97,0xb97,0xb97,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,
+0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,
+0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,
+0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,
+0xba0,0xba0,0xba0,0xba0,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,
+0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbfa,0xbf7,0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,
+0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xd02,0xd05,0xdf2,0xdf2,0xdf2,
+0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xf0f,0xf0f,0xf0f,0xf0f,0xc09,0xc09,0xc09,0xc09,
+0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xdf8,0xeb2,
+0xdf8,0xdfb,0xdfb,0xdf8,0xdf5,0xdf8,0xdf5,0xdf8,0xdf8,0x1002,0x1299,0x1299,0xe04,0xe04,0xe04,0xe04,
+0xe04,0xe0a,0xe07,0xf21,0xf21,0xf21,0xf21,0x1416,0x1014,0x1416,0x1353,0x1353,0xc3f,0xc3f,0xc3f,0xc3f,
+0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc6f,0xc6c,
+0xc6f,0xc6c,0xc6f,0xc6c,0x1125,0x1122,0x101a,0x1017,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,
+0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,
+0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,
+0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc48,0xc48,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,
+0xc45,0xc45,0xc45,0xc45,0xc4b,0xc4b,0xc4b,0xc51,0xc4e,0xc75,0xc72,0xc51,0xc4e,0xc51,0xc4e,0xc51,
+0xc4e,0xc51,0xc4e,0xc51,0xc4e,0xc51,0xc4e,0xc51,0xc4e,0xc51,0xc4e,0xc51,0xc4e,0xc4b,0xc4b,0xc4b,
+0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
+0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
+0xc51,0xc4e,0xc51,0xc4e,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
+0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
+0xc51,0xc4e,0xc4b,0xc4b,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,
+0xc5a,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,
+0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,
+0xc54,0xc54,0xc54,0xc54,0xc5a,0xc5a,0xc5a,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,
+0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,
+0xc54,0xc54,0xc54,0xc54,0xc57,0xc54,0xc54,0xc54,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,
+0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,
+0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xc8d,0xd0b,0xd7a,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,
+0xdf5,0xdf5,0xeb2,0xeb2,0xdf5,0xdf5,0xdf5,0xdf5,0xdf8,0xdf8,0xf12,0x1002,0x1002,0x1002,0x1002,0x1002,
+0x1002,0x1002,0x1002,0x1002,0x1002,0x12c6,0x12c6,0x129c,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,
+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd35,0xd35,
+0xd35,0xd35,0xd35,0xd32,0xd47,0xd47,0xd47,0xd41,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,
+0xd47,0xd47,0xd47,0xd41,0xd47,0xd47,0xd47,0xd47,0xd3b,0xd3b,0xd44,0xd44,0xd44,0xd44,0xd38,0xd38,
+0xd38,0xd38,0xd38,0xd3e,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,
+0xe0d,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,
+0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd41,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,0xd47,
+0xd47,0xd47,0xd47,0xd47,0xd47,0xd3b,0xd3b,0xd3b,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,
+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,
+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4d,0xd4d,0xd4d,
+0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xf24,0xf24,0xf24,0xf24,
+0xf24,0xf24,0xf24,0x112e,0x112e,0x101d,0x101d,0x101d,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,
+0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,
+0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,
+0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,
+0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd56,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,
+0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,
+0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,
+0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,
+0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,
+0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,
+0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1c,0xe1c,0xe1c,
+0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,
+0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,
+0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xedf,0xedf,0xe31,0xe31,0xf27,0xf27,0xf27,0xf27,
+0xf27,0xf27,0xf27,0x1029,0x1029,0x1029,0x1029,0x1029,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,
+0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0x1026,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,
+0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,
+0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe40,0xe3d,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,
+0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,
+0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,
+0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xf2a,
+0xf2a,0xf2a,0xf2a,0x102c,0x102c,0x102c,0x102c,0x102c,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,
+0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,
+0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,
+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,
+0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,
+0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0xe7f,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,
+0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,
+0xe82,0xe82,0xe82,0xe85,0xe85,0xe85,0xe85,0xe85,0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,
+0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,0xe8e,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe8b,0xe88,0xe91,
+0x1038,0x1032,0x1041,0x102f,0xe8e,0xe8e,0x102f,0x102f,0xea3,0xea3,0xe94,0xea3,0xea3,0xea3,0xe9a,0xea3,
+0xea3,0xea3,0xea3,0xe94,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,
+0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,
+0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,
+0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xea6,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,
+0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,
+0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xebe,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,
+0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0xedc,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,
+0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0x1137,0xf24,0xf24,0xf24,0xf24,0x101d,0x101d,0x101d,0x101d,
+0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x101d,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,
+0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0xf45,0xf45,0xf45,0xf45,0xf57,0xf60,0xf63,0xf60,
+0xf63,0xf60,0xf63,0xf60,0xf63,0xf60,0xf63,0xf60,0xf60,0xf60,0xf63,0xf60,0xf60,0xf60,0xf60,0xf60,
+0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,
+0xf48,0xf57,0xf45,0xf45,0xf45,0xf45,0xf45,0xf5a,0xf45,0xf5a,0xf57,0xf57,0xf6c,0xf69,0xf6c,0xf6c,
+0xf6c,0xf69,0xf69,0xf6c,0xf69,0xf6c,0xf69,0xf6c,0xf69,0x1053,0x1053,0x1053,0x118e,0x104a,0x1053,0x104a,
+0xf69,0xf6c,0xf69,0xf69,0x104a,0x104a,0x104a,0x104a,0x104d,0x1050,0x118e,0x118e,0xf6f,0xf6f,0x1065,0x105c,
+0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x105c,0x105c,0x1065,0x105c,
+0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0xf75,0xf75,0xf75,0xf75,
+0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,
+0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf84,0xf84,0xf84,0xf84,
+0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,
+0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0x154e,
+0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,0x154e,
+0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,
+0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,
+0xfd2,0xfed,0xfe4,0xfe1,0xfe1,0xfed,0xfed,0xfe4,0xfe4,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfed,0xfed,
+0xfed,0xfd2,0xfd2,0xfd2,0xfd2,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,0xfed,
+0xfed,0xfed,0xfd2,0xfe4,0xfe7,0xfd2,0xfd2,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfd5,0xfed,0xfea,
+0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0xfde,0x1158,0x1158,0x1155,0x1152,0xfdb,0xfdb,
+0x1005,0x1005,0x1005,0x1005,0x12c6,0x12c6,0x129c,0x129c,0x12a2,0x1299,0x1299,0x1299,0x1299,0x129c,0x13c2,0x12a2,
+0x129c,0x12a2,0x1299,0x12a2,0x12c6,0x1299,0x1299,0x1299,0x129c,0x129c,0x1299,0x1299,0x129c,0x1299,0x1299,0x129c,
+0x1020,0x1020,0x1020,0x1020,0x1020,0x101d,0x101d,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1527,0x1527,0x1527,
+0x112e,0x101d,0x101d,0x101d,0x101d,0x12d2,0x12ab,0x12ab,0x12ab,0x12ab,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,
+0x103e,0x103e,0x103b,0x1035,0x103b,0x1035,0x103b,0x1035,0x103b,0x1035,0x1032,0x1032,0x1032,0x1032,0x1047,0x1044,
+0x1032,0x118b,0x1422,0x1425,0x1425,0x1422,0x1422,0x1422,0x1422,0x1422,0x1428,0x1428,0x1542,0x1536,0x1536,0x1533,
+0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1059,0x1056,0x1056,0x1065,0x105c,0x1362,0x135f,0x172e,
+0x1362,0x135f,0x1431,0x142e,0x1545,0x1545,0x154b,0x1545,0x154b,0x1545,0x154b,0x1545,0x154b,0x1545,0x154b,0x1545,
+0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,
+0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x105c,
+0x105f,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x1065,0x105c,0x1065,0x105c,0x1065,0x1065,0x105c,
+0x1068,0x1068,0x106e,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,
+0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,0x1074,
+0x1074,0x106e,0x1068,0x1068,0x1068,0x1068,0x106e,0x106e,0x1068,0x1068,0x1071,0x143a,0x1437,0x1437,0x1074,0x1074,
+0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,
+0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,
+0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,
+0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,
+0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1095,0x1095,0x1095,0x1098,0x1095,0x1095,0x109b,0x109b,
+0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,
+0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,0x109e,
+0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10aa,0x10a1,0x10b0,0x10ad,
+0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,
+0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,
+0x1368,0x1365,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10bf,0x1140,
+0x10b3,0x10b3,0x10b3,0x10b9,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x1440,0x10b6,0x10b6,0x10b9,0x10c5,
+0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,
+0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,0x10c2,0x10bc,
+0x155a,0x1557,0x155a,0x1557,0x155d,0x155d,0x1737,0x1440,0x10ce,0x10ce,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
+0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,
+0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10d1,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,
+0x10ce,0x10ce,0x10ce,0x10ce,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10da,
+0x10da,0x10da,0x1134,0x10e3,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,
+0x10f2,0x10f2,0x10f2,0x10f2,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10e0,0x10e0,
+0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,
+0x10e0,0x10e0,0x10e0,0x10e0,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,0x1101,
+0x1101,0x1101,0x1101,0x1101,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,
+0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,
+0x1113,0x1113,0x1113,0x1113,0x111c,0x111c,0x111c,0x111c,0x1131,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
+0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,
+0x111c,0x111c,0x111c,0x111c,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
+0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,
+0x111f,0x111f,0x111f,0x111f,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,
+0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x1197,0x1197,0x119a,0x119a,0x11a0,0x1197,
+0x1197,0x1197,0x1197,0x1197,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,
+0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,0x11a3,
+0x11a3,0x11a3,0x11a3,0x11a3,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,
+0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,0x11be,
+0x11be,0x11be,0x11be,0x11be,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,
+0x11ca,0x11ca,0x11c7,0x11cd,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,
+0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,
+0x11d9,0x11d9,0x11d9,0x11d9,0x11e8,0x11e8,0x11e8,0x11f7,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,
+0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,
+0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11eb,0x11f7,0x11f7,0x11e8,0x11e8,0x11e8,0x11e8,0x11f7,0x11f7,
+0x11e8,0x11f7,0x11f7,0x11f7,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,
+0x1209,0x1209,0x1209,0x1209,0x120c,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1203,0x1203,0x1203,0x1209,0x1206,
+0x1563,0x1566,0x1569,0x1569,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,
+0x121b,0x121b,0x121b,0x121b,0x120f,0x121b,0x120f,0x120f,0x120f,0x1224,0x1224,0x120f,0x120f,0x1224,0x121b,0x1224,
+0x1224,0x121b,0x120f,0x1212,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,
+0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,
+0x121b,0x121b,0x121b,0x121b,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,
+0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,0x1236,
+0x1236,0x1236,0x1236,0x1236,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,
+0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,0x124e,
+0x124e,0x124b,0x124b,0x124b,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,
+0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,
+0x1257,0x1257,0x1257,0x1257,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,
+0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,0x1266,
+0x1266,0x1266,0x1266,0x1266,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1284,
+0x1281,0x1281,0x1281,0x1281,0x127e,0x127e,0x127e,0x1272,0x1272,0x1272,0x1272,0x127e,0x127e,0x1278,0x1275,0x127b,
+0x127b,0x126c,0x1287,0x1287,0x126f,0x126f,0x127e,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,
+0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1284,0x1281,
+0x1284,0x1281,0x1281,0x1281,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x128a,0x128a,0x128a,0x128a,0x1290,0x1290,0x1290,0x128d,0x128d,0x128d,0x128a,0x128a,0x128a,0x128a,0x128d,0x128a,
+0x128a,0x128a,0x1290,0x128d,0x1290,0x128d,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,0x128a,
+0x128a,0x1290,0x128d,0x128d,0x128a,0x128a,0x128a,0x128a,0x129c,0x129c,0x1344,0x1299,0x1344,0x1344,0x1344,0x1344,
+0x1299,0x129f,0x12c6,0x1299,0x1299,0x1299,0x1299,0x1299,0x129f,0x12a2,0x12c6,0x12c6,0x12a2,0x12c6,0x1299,0x12a2,
+0x12a2,0x12a5,0x12c6,0x1299,0x1299,0x12c6,0x129c,0x129c,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,
+0x13b3,0x13b3,0x12ae,0x12ae,0x12ae,0x12ae,0x13ce,0x13ad,0x12b7,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,0x13ce,
+0x13ce,0x13ce,0x13ce,0x1863,0x1863,0x1863,0x1863,0x1863,0x13b6,0x13b6,0x12bd,0x13b6,0x13b6,0x13b6,0x12bd,0x13b6,
+0x13b6,0x13b6,0x12b7,0x12b7,0x12b7,0x12b7,0x12b7,0x13b0,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x12ba,
+0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x12ba,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
+0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,
+0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x12e4,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,
+0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,
+0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x1386,0x139b,0x138c,0x139b,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,
+0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x139e,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,
+0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,
+0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e0,0x13e0,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e0,0x13e3,0x13e3,0x13e3,
+0x13e0,0x13e3,0x13e0,0x13e3,0x13e0,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e9,0x13e3,0x13e3,0x13e3,0x13e3,0x13e0,
+0x13e3,0x13e0,0x13e0,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e6,0x13e3,0x13e3,0x13e3,
+0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,
+0x13e0,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e0,0x13e0,
+0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x13e0,0x1575,0x1575,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x157e,0x1578,0x1578,
+0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x17b8,0x17b8,0x17b8,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x157e,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x157e,0x17b8,0x17b8,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e9,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,
+0x1578,0x1578,0x157e,0x157e,0x1578,0x157e,0x157e,0x157e,0x1575,0x1575,0x157e,0x157e,0x13e3,0x13e3,0x13e9,0x13e9,
+0x13e9,0x16ec,0x13e3,0x13e9,0x13e3,0x13e3,0x13e9,0x1584,0x1584,0x157e,0x157e,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,
+0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x1578,0x1578,0x157e,
+0x16ec,0x157e,0x1578,0x157e,0x17b8,0x17b8,0x17b8,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x157e,0x13e3,0x157e,0x13e9,0x13e9,
+0x13e3,0x13e3,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13ec,0x13ec,
+0x13ec,0x13ec,0x13e3,0x13e3,0x13e3,0x13e3,0x13e9,0x13e3,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,0x13e9,
+0x13e9,0x13e3,0x13e3,0x13e3,0x13e9,0x13e3,0x13e3,0x13e3,0x13e3,0x13e9,0x13e9,0x13e9,0x13e3,0x13e9,0x13e9,0x13e9,
+0x13e3,0x13e3,0x13e3,0x13e6,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x16ec,0x13e3,0x13e3,0x13e3,
+0x13e3,0x157e,0x1578,0x17b8,0x1446,0x1446,0x1446,0x1446,0x1575,0x1575,0x1575,0x1575,0x1575,0x157b,0x157e,0x17b8,
+0x17b8,0x17b8,0x17b8,0x1740,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,
+0x13e3,0x13e3,0x13e3,0x13e3,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x157e,0x157e,0x1578,0x1578,0x157e,
+0x1584,0x1584,0x157e,0x157e,0x157e,0x157e,0x186c,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x157e,0x1578,0x157e,
+0x1578,0x1578,0x1578,0x1578,0x1581,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x157e,0x1578,0x1578,0x1578,0x157e,
+0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x157e,0x13e3,0x13e3,0x13e3,0x13e3,0x13e3,0x14d0,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x14d0,0x13ef,0x13ef,
+0x13ef,0x14d0,0x13ef,0x14d0,0x13ef,0x14d0,0x13ef,0x14d0,0x13ef,0x13ef,0x13ef,0x14d0,0x13ef,0x13ef,0x13ef,0x13ef,
+0x13ef,0x13ef,0x14d0,0x14d0,0x13ef,0x13ef,0x13ef,0x13ef,0x14d0,0x13ef,0x14d0,0x14d0,0x13ef,0x13ef,0x13ef,0x13ef,
+0x14d0,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x16f2,0x16f2,0x17be,
+0x17be,0x13f2,0x13f2,0x13f2,0x13ef,0x13ef,0x13ef,0x13f2,0x13f2,0x13f2,0x13f2,0x13f2,0x1671,0x1671,0x1671,0x1671,
+0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x13f8,0x13f5,0x13f5,0x13f5,
+0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f8,0x13f5,
+0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13fb,
+0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,
+0x13fb,0x13fb,0x13fb,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13f5,0x13fe,0x13fe,0x13fe,0x13fe,
+0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,
+0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x13fe,0x17eb,0x17eb,0x17e8,0x1743,
+0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x144c,0x144c,0x144c,0x144c,
+0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x158d,0x1458,0x1458,0x1458,0x146a,
+0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,
+0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x1485,0x1485,0x1485,0x1485,
+0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,
+0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x1485,0x148e,0x148e,0x148e,0x148e,
+0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,
+0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x148e,0x1494,0x1494,0x14a0,0x14a6,
+0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,
+0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a0,
+0x14a0,0x14a0,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x1494,0x14a0,0x14c7,0x14c7,0x14c7,0x14c7,
+0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,
+0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x1578,0x1578,0x157e,0x157e,
+0x157e,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x157e,0x157e,0x157e,
+0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x157e,0x157e,0x157e,0x1578,0x1578,0x1578,0x1578,0x1578,
+0x1578,0x1578,0x1578,0x157e,0x1578,0x1578,0x157e,0x157e,0x157e,0x157e,0x1578,0x1578,0x1584,0x1578,0x1578,0x1578,
+0x1578,0x16ef,0x16ef,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1869,0x157e,0x1578,0x1578,
+0x157e,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x157e,0x157e,0x1578,0x1578,0x1578,0x1578,0x1578,
+0x1578,0x1578,0x1578,0x1578,0x157e,0x1578,0x1578,0x1578,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,
+0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,
+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,
+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
+0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,
+0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15bd,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,
+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,
+0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,
+0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15f0,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,
+0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,
+0x1608,0x1608,0x1608,0x1602,0x160b,0x160b,0x160b,0x160b,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,
+0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,
+0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,
+0x1620,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,
+0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
+0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,
+0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1632,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
+0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1641,0x1641,0x1641,0x1635,0x1635,0x1635,0x1635,0x1635,
+0x1635,0x1635,0x1635,0x1641,0x1641,0x1635,0x1641,0x1638,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
+0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,
+0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,
+0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,
+0x1668,0x1668,0x1668,0x1668,0x1668,0x1665,0x1665,0x1665,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,
+0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1677,0x1677,
+0x1677,0x1674,0x1674,0x1674,0x1671,0x1671,0x1671,0x1671,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x168c,
+0x168c,0x1680,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
 0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,
-0x1686,0x1686,0x1686,0x1686,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,
-0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,
-0x168f,0x168f,0x168f,0x168f,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,
+0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,
+0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x168f,
+0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,
 0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,
-0x1695,0x1695,0x1695,0x1695,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,
-0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,
-0x16f5,0x16f5,0x16f5,0x16f5,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,
-0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,
-0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1737,0x1734,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,
-0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x1731,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
-0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,
-0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173a,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,
-0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,
-0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,
-0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,
-0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,
-0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,
-0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,
-0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758,0x1758,0x1755,
-0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758,
-0x1758,0x1758,0x1758,0x1758,0x1758,0x1755,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,
-0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,
-0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,
-0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,
-0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x1770,0x17b5,0x17b5,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,
-0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,
-0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,
-0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,
-0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,
-0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1800,0x1800,0x1800,
-0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,
-0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,
-0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,
-0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,
-0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182a,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,
-0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,
-0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0,0,0,0
+0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,
+0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,
+0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16b9,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,
+0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,
+0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16c5,0x16d4,0x16d4,0x16c5,0x16c5,0x16c5,0x16c5,0x16c5,
+0x16c5,0x16d4,0x16c5,0x16d7,0x16d7,0x16c5,0x16d7,0x16c5,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,
+0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,
+0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,
+0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,
+0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,
+0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,
+0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x16e9,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,
+0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,
+0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,
+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,
+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x178b,0x1788,0x1785,0x1785,0x1785,0x1785,
+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x178e,0x178e,0x178e,0x178e,
+0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,
+0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x178e,0x1791,0x1791,0x1791,0x1791,
+0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,
+0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x17a3,0x17a3,0x17a3,0x17a3,
+0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,
+0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a3,0x17a6,0x17a6,0x17a6,0x17a6,
+0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,
+0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a9,0x17a9,0x17a9,0x17a9,
+0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,
+0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17ac,
+0x17ac,0x17ac,0x17ac,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,
+0x17a9,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17a9,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,
+0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,
+0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17c4,0x17c4,0x17c4,0x17c4,
+0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,
+0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x1809,0x1809,0x1806,0x1806,
+0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,
+0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1809,0x1809,0x1809,0x1809,
+0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,
+0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1857,0x1857,0x1857,0x1857,
+0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,
+0x1857,0x1854,0x1854,0x1854,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x1857,0x1857,0x1857,0x1857,
+0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,
+0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x187e,0x187e,0x187e,0x187e,
+0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,
+0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x1881,0x1881,0x1881,0x1881,
+0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,
+0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0x1881,0,0,0,0
 };
 
 static const UTrie2 propsVectorsTrie={
     propsVectorsTrie_index,
-    propsVectorsTrie_index+4844,
+    propsVectorsTrie_index+4924,
     NULL,
-    4844,
-    23696,
+    4924,
+    24212,
     0xa40,
-    0x136c,
+    0x13bc,
     0x0,
     0x0,
     0x110000,
-    0x6f78,
+    0x71cc,
     NULL, 0, FALSE, FALSE, 0, NULL
 };
 
-static const uint32_t propsVectors[6195]={
-0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,
-0,0,0xc67,0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,
-0,0x1267,0,0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,
-0x1767,0,0,0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,
-0,0,0x1f67,0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0,
-0,0x2567,0,0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000,
-0x2b67,0,0,0x2d67,0,0,0x3067,0x20000000,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,
-0,0,0x3b67,0,0,0x3c67,0,0,0x3e67,0,0,0x4067,0,0,0x4167,0,
-0,0x4367,0,0,0x4467,0,0,0x4867,0,0,0x4967,0,0,0x4a67,0,0,
-0x5067,0,0,0x5167,0,0,0x5467,0,0,0x5567,0,0,0x5667,0x80000,0x20,0x5767,
-0,0,0x5867,0,0,0x5967,0,0,0x5b67,0,0,0x5c67,0,0,0x5d67,0,
+static const uint32_t propsVectors[6279]={
+0x67,0,0,0x67,0,0x200000,0x67,0,0x230400,0x67,0,0x230560,0x67,0,0x400000,0x67,
+0,0x448000,0x67,0,0x500000,0x67,0,0x962460,0x67,0,0x962540,0x67,0,0xe00000,0x67,0,
+0xe30000,0x67,0,0x1329800,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67,0,0,
+0xc67,0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1067,0,0x200000,0x1067,
+0,0x230400,0x1167,0,0,0x1267,0,0,0x1267,0,0x962460,0x1367,0,0,0x1467,0,
+0,0x1567,0,0,0x1667,0,0,0x1767,0,0,0x1767,0,0x962460,0x1867,0,0,
+0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,0,0,0x1f67,0,0,0x2067,
+0,0,0x2267,0,0,0x2367,0,0,0x2467,0,0,0x2567,0,0,0x2767,0,
+0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000,0x2b67,0,0,0x2d67,0,0,
+0x3067,0x20000000,0x200000,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,0,0,0x3b67,0,0,0x3c67,
+0,0,0x3e67,0,0,0x4067,0,0,0x4067,0,0xe30400,0x4167,0,0,0x4367,0,
+0,0x4467,0,0,0x4867,0,0,0x4967,0,0,0x4a67,0,0,0x5067,0,0,
+0x5167,0,0,0x5467,0,0,0x5567,0,0,0x5667,0x80000,0x20,0x5767,0,0,0x5867,
+0,0,0x5867,0,0x230400,0x5967,0,0,0x5b67,0,0,0x5c67,0,0,0x5d67,0,
 0,0x6067,0x80000,0x20,0x6267,0,0,0x6367,0,0,0x6467,0,0,0x6567,0,0,
-0x6f67,0,0,0x7067,0,0,0x7367,0x20000000,0,0x7567,0,0,0x7667,0,0,0x7767,
-0,0,0x7867,0,0,0x7a67,0,0,0x7b67,0,0,0x7c67,0,0,0x7e67,0,
-0,0x7f67,0,0,0x8167,0,0,0x8267,0,0,0x8367,0,0,0x8467,0,0,
-0x8567,0,0,0x8667,0,0,0x8767,0,0,0x8867,0,0,0x8967,0,0,0x8b67,
-0,0,0x8c67,0,0,0x8e67,0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167,0,
-0,0x9267,0,0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0,0,
-0x9867,0,0,0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167,
-0,0,0xa367,0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767,0,
-0,0xa867,0,0,0xa967,0,0,0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0,0,
-0xad67,0,0,0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb367,
-0,0,0xb467,0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,
-0,0xba67,0,0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,
-0xc067,0,0,0xc167,0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,
-0,0,0xc767,0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcb67,0,
-0,0xcc67,0,0xe00000,0xcf67,0,0xe00000,0xd067,0,0xe00000,0xd267,0,0,0xd367,0,0,
-0xd467,0,0,0xd567,0,0,0xd667,0,0,0xd867,0,0,0xd967,0,0,0xda67,
-0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0,0xdf67,0,
-0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0xe00000,0xe467,0,0,
-0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0,0,0xea67,
-0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0,0xef67,0,
-0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767,0,0,
-0xf867,0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0,0,0xfd67,
-0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0,0x10467,0,
-0,0x10567,0,0xe00000,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967,0,0,
-0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67,
-0,0,0x11067,0,0,0x11167,0,0,0xa0067,0,0xe00000,0xa4667,0,0xe00000,0xa4767,0,
-0xe00000,0xa4f67,0,0xe00000,0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,
-0xb0067,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100,
-0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x10200000,0x11000200,0x24000008,
-0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402,
-0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419,
-0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100,
-0x230400,0x11000600,0x4000400,0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x201000,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,
-0x11000600,0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,
-0x6800010,0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,
-0x200002,0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,
-0x1100080e,0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,
-0x7c00100,0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100,
-0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,0x200000,
-0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,0x11000c00,
-0,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,0x4000000,
-0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,0x230402,
-0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000c02,0xc000010,0xb48000,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,0x11000f0a,
-0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,0x2802100,
-0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,0x962540,
-0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,0x11001110,
-0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,0x2802400,
-0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,0x962460,
-0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,0x1100131f,
-0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,0x6800100,
-0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,0x962460,
-0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,0x11001615,
-0x6800000,0x1329800,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400,
-0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000,
-0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926,
-0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100,
-0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002,
-0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12,
-0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400,
-0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820,
-0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x440001,0x11002800,0x4000001,0x440002,0x11002800,0x4000001,0xc4000b,0x11002800,
-0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000,
-0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000,
-0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x11248002,0x11002800,
-0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000,
-0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e,
-0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00,
-0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000,
-0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402,
-0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00,
-0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020,
-0x200000,0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x10200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,
-0x11002f00,0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000,0x10200000,0x11003000,
-0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,
-0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000000,0x10200000,
-0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700,0x24000000,0x10200000,0x11003700,0x24000000,0x10e00000,0x11003700,
-0x24000000,0x928045a0,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000,
-0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x10200000,0x11003800,0x24000000,0x10b00000,0x11003800,0x24000000,0x10e00000,0x11003800,0x24000000,0x10e05200,
-0x11003800,0x24000000,0x928045a0,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,
-0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,0x7000100,
-0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,
-0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,
-0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,
-0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,0x1500000,
-0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x10200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,
-0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,
-0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,
-0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200000,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,
-0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,
-0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,
-0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,
-0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,
-0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,
-0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000,0x1010000f,0x11022c00,0x7c00120,0x120405,0x11022c0e,
-0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,
-0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x10100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,
-0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,
-0x4000100,0x150403,0x11023300,0x4000100,0x10150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,
-0x100000,0x11023600,0x24000020,0x10100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700,0x24000000,0x10100000,0x11023700,0x24000000,0x10e00000,
-0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x10100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600,
-0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100,
-0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x440011,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011,
-0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,
-0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,
-0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,
-0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,
-0x68000c0,0x11329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,
-0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x10200000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,
-0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,0x200000,0x11080100,
-0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010,
-0x100ac00,0x11080100,0x44000001,0x1a40000,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400,
-0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12,
-0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000,0x30e00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000,
-0x30200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400,
-0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14,
-0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900,
-0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,0x4000000,0xe00002,
-0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,0xe30000,0x110a4f11,
-0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,0x110a5300,0x4000000,
-0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10,
-0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400,
-0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020,
-0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,0x1049400,0x11400c0e,0x4000010,0xb00000,
-0x11400c0e,0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c11,0x7c00900,0x230400,0x11400f34,0xc000010,0x448000,0x11400f44,0xc000010,0x448000,0x11401d70,
-0x4000000,0x200000,0x11403d92,0x4000000,0xe00000,0x11445787,0x4000004,0x120000a,0x11445787,0x4000008,0x81000a,0x11445787,0x4000008,0x141000a,0x11445787,0x4000010,
-0x87000a,0x11445787,0xc000010,0x84800a,0x11445790,0x3802500,0x126246a,0x11445790,0x7c00d00,0x2530c0a,0x114a3d87,0x24000000,0x810000,0x114a3d87,0x24000000,0x1410000,
-0x114a3d87,0x24000008,0x810000,0x114a3d87,0x24000008,0x1410000,0x114a3d87,0x24000010,0x870000,0x114a3d87,0x2c000010,0x848000,0x114a3d8d,0x4000000,0xe00000,0x114a3d8d,
-0x24000000,0xe00000,0x114a3d8d,0x24000002,0x1200000,0x114a3d8d,0x24000002,0x10e00000,0x114a3d8d,0x24000008,0x810000,0x114a3d8d,0x24000008,0x1410000,0x114a3d90,0x7c00900,
-0x930c00,0x114a3d90,0x7c00900,0xe30c00,0x114a3d92,0x7c00300,0xe30000,0x114a3e90,0x7000400,0x1200c02,0x114a3f87,0x4000004,0x1200000,0x114a3f90,0x7c00d00,0x2530c00,
-0x114a4292,0x4000000,0xe00000,0x114a4292,0x4000000,0xe0000f,0x114a4492,0x4000000,0xe00002,0x114a4492,0x4000000,0xe00003,0x114a4492,0x4000000,0x10e00003,0x114a4592,
-0x4000000,0xe00002,0x114a4592,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c17,0x2802100,0x962460,0x11800c17,0x2802500,0x962460,0x11800f1d,0x2802400,
-0x962460,0x11800f29,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3d93,0x2802400,0x962460,0x118a3e90,0x2802400,0x962460,
-0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c1b,0x6800000,0x1329800,0x11c00f58,0x6800000,0x1329800,0x11c0105d,0x6800000,0x1329800,0x11c01161,
-0x6800000,0x1329800,0x11c01265,0x6800000,0x1329800,0x11c01469,0x4000000,0x200000,0x11c01469,0x6800000,0x1329800,0x11c01469,0x7c00100,0x230400,0x11c0511b,0x7c00100,
-0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,
-0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,
-0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,
-0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,
-0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900020,0x20004c67,0,0x1900020,0x20004d67,
-0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,
-0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,
-0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200000,0x30000600,0x7c00500,0x230400,0x30000605,
-0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,
-0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0,0x218960,
-0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,
-0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,
-0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,
-0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,
-0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,
-0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,
-0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000010,0x200000,0x30002128,
-0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x440000,0x3000221d,0x7c00100,
-0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,
-0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,
-0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,
-0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,
-0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,
-0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc41c0b,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002800,0x2c000010,
-0x11248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,0x10220405,0x30002d19,0x7c00100,0x250400,
-0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e,
-0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400,0x500000,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,
-0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,
-0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,
-0x4000000,0xe00000,0x30402576,0x4000010,0x400000,0x30402576,0x4000010,0xb70000,0x30402576,0xc000010,0xb48000,0x304a3d92,0x4000000,0xe00000,0x30800c17,0x2802100,
-0x962460,0x30c01c6e,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,
-0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,
-0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,
-0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,
-0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,
-0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,
-0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,
-0x32002800,0x4000001,0x440002,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,
-0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,
-0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,
-0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003600,
-0x24000020,0x10200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,0x10200000,0x32003800,0x24000000,0x810000,0x32003800,0x24000000,
-0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400,0x3200622a,0x2802100,0x962460,
-0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b,0x7c00100,0x230400,0x3200642c,
-0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020,0x200000,0x32006700,0x24000020,
-0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x10200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020,0x1410000,
-0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000,0x32026c01,
-0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900,0x24000020,
-0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x30200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100,0x2530000,
-0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00,0x32406372,
-0xc000010,0x448000,0x324a3d95,0x4000000,0x10e00000,0x324a3d95,0x7c00100,0x1230400,0x324a3f90,0x4000002,0x1200c00,0x324a538d,0x24000000,0xe00000,0x32820701,0x2802000,
-0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200000,0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100,0x250400,
-0x4000080e,0x7c00100,0x250402,0x40000c02,0,0x218960,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,
-0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004,0x7c00100,
-0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100,0x230400,
-0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,0x230400,0x40002417,
-0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,0x40003000,0x24000000,
-0x10200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x10200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400,
-0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30,
-0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100,
-0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400,
-0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007300,0x24000000,0x10200000,0x40007400,0x4000000,0x200000,0x40007531,
-0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,
-0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,
-0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x30200000,0x400a3700,0x24000000,0x30e00000,0x400a4400,0x4000000,0xe0000d,0x400a4412,
-0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x404077b8,0x4000000,
-0x200000,0x404077bb,0x4000000,0x200000,0x404077bb,0x4000000,0x400000,0x40c0511b,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,0x7c00100,0x250400,
-0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,0x962460,0x41000b13,
-0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0xb00000,0x41000c02,0x4000000,0x1500000,0x41000f0a,0x7c00100,
-0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,0x7c00100,0x23040f,
-0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,0x400000,0x41002919,
-0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,0x41003000,0x24000000,
-0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0x10200000,0x41003700,0x24000000,0x10e00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,
-0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,
-0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,
-0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,
-0x41008407,0x4000000,0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,
-0x4000000,0x200000,0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,
-0x962460,0x41008939,0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,
-0x41008939,0xc000010,0x448000,0x41008a00,0x4000000,0x200000,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,
-0x7e00100,0x1830000,0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,
-0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802000,0x962460,
-0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,
-0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x30200000,0x410a3700,0x24000000,
-0x30e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,
-0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,
-0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a8292,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01469,0x6800000,0x1329800,0x50000419,0x7c00100,
-0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,
-0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,
-0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120,
-0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000,
-0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257,
-0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,
-0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,
-0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,
-0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200000,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,
-0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,
-0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409a92,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,
-0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,
-0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000,
-0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27,
-0x4000000,0x200000,0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802400,
-0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800000,0x1862400,0x51001c1c,0x6800100,0x1862400,
-0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800400,0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,
-0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000,
-0xe00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,
-0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,
-0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,
-0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,
-0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419,0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,
-0x4000000,0x200000,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,
-0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800,0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,
-0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52,0x2802c00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,
-0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,
-0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000,0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,
-0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63,0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,
-0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,
-0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,
-0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,
-0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,
-0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,
-0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,
-0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,
-0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,0x30200000,0x510aaa00,0x4000000,0x30e00000,0x5140a2b3,0x4000400,0x400000,
-0x514a8292,0x4000000,0xe00000,0x51802b84,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,
-0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,
-0x1862400,0x52001c1c,0x6800400,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400,
-0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108,
-0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,
-0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,
-0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,
-0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,
-0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,
-0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,
-0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,
-0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,
-0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,
-0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,
-0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,
-0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,
-0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,
-0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,
-0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,
-0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0,0x218960,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,
-0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,
-0x5200c178,0xc000010,0x448000,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,
-0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x10100000,0x52023700,0x24000000,0x10e00000,0x52023700,0x24000000,
-0x928045a0,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300,0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,
-0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,0x5202c300,0x4000100,0x10150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700,
-0x24000000,0x30e00000,0x520a3800,0x24000000,0x30100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001,0x520a7300,0x24000000,0x30100000,0x520ab412,0x7c00100,
-0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac400,0x4000000,0x30e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,
-0x5240af78,0x6800400,0x962540,0x5240af78,0x7c00100,0x230400,0x5240af79,0x4000400,0x200000,0x5240af79,0x6800100,0x962540,0x5240b298,0x4000000,0x200000,0x5240b2a2,
-0x4000000,0x200000,0x5240b2a2,0x4000000,0x1500000,0x5240b5b6,0x7c00900,0x230400,0x524a4492,0x4000000,0xe00003,0x5280af78,0x2802400,0x962460,0x5280af79,0x2802400,
-0x962460,0x5280af7b,0x2802400,0x962460,0x5280af7d,0x2802400,0x962460,0x52c0b3ad,0x2802400,0x962460,0x52c0b3b1,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,
-0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,
-0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802000,
-0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x10200000,0x60003000,0x24000000,0x10e00000,0x60003700,0x24000000,0x200000,
-0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,
-0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,
-0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x32703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,
-0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,
-0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,
-0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,
-0x6000cc00,0x4000000,0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,
-0x4000100,0x15040d,0x6002c300,0x4000100,0x10150400,0x600a3000,0x24000000,0x30200000,0x600a3000,0x24000000,0x30e00000,0x600a3700,0x24000000,0x30200000,0x600a3800,0x24000000,
-0x30200000,0x600a3800,0x24000000,0xb28045a0,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,0x30100000,0x600ac400,0x4000000,0x10e0000d,0x600ac400,0x4000000,0x30e0000d,
-0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000,0x30e00000,0x600acd00,0x4000000,0x30200000,0x600acd00,0x4000000,0x30e00000,0x600acd00,
-0x4000000,0x30e05200,0x600acd00,0x4000000,0xb0e00000,0x600acd00,0x4000000,0xb28045a0,0x600acd00,0x4000000,0xb28049c0,0x600ace00,0x4000000,0x30e00000,0x600ace00,0x4000000,
-0xb28045a0,0x600acf00,0x4000000,0x30e00000,0x600acf00,0x4000000,0xb28045a0,0x600ad111,0x7c40300,0xe30000,0x604ac492,0x4000000,0x30e00003,0x61000a03,0x4000000,0x1600000,
-0x61000c02,0,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600,
-0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,
-0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,
-0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00,
-0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,
-0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,
-0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,
-0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,
-0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,
-0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,
-0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,
-0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,
-0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0x30e00000,0x6140af78,0x7c00100,0x230400,0x6140af79,
-0x6800100,0x962540,0x6140af82,0x7c00100,0x230400,0x6180af79,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63000c00,0x80000,0x918820,0x63002800,0x80000,
-0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0,0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,
-0x70001524,0x2802100,0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320,
-0x7c00100,0x230400,0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003000,0x24000000,0x10200000,0x70003800,0x24000000,
-0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,
-0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,
-0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,
-0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,
-0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802400,0x1862460,0x7000b61c,
-0x6800400,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,
-0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x10200000,0x7000cd00,0x4000000,0x10e00000,0x7000cd00,0x4000000,0x10e05200,0x7000cd00,0x4000000,0x90e00000,
-0x7000cd00,0x4000000,0x928045a0,0x7000cf00,0x4000000,0xe00000,0x7000cf00,0x4000000,0x10e00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,
-0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,
-0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,
-0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,
-0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489,0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,
-0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100,0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,
-0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540,0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,
-0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691,0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,
-0x200000,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100,0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,
-0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000,0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,
-0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79,0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,
-0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400,0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,
-0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000,0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,
-0x2802400,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c,0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,
-0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100,0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,
-0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000,0x7000f34b,0x2802100,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,
-0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b,0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,
-0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000,0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,
-0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460,0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,
-0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,
-0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,
-0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,
-0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0x30e00000,0x700acd00,0x4000000,0xb28045a0,0x700ace00,0x4000000,
-0x30e00000,0x700acf00,0x4000000,0x30e00000,0x700acf00,0x4000000,0xb0e00000,0x7040dfbd,0x4000000,0x200000,0x7040f7c1,0x80000,0x918820,0x7080af79,0x2802400,0x962460,
-0x7080dfbd,0x2802400,0x962460,0x70c0e4bf,0x2802400,0x962460,0x70c0e4bf,0x6800100,0x962540,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100,0x230400,0x8000171a,
-0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000,0x80005208,0x2802400,
-0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519,0x7c00100,0x250400,
-0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000,0xe00000,0x8000d202,
-0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000,0x200000,0x8000d997,0x4000000,
-0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400,
-0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1,
-0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010,
-0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400,0x80010165,0x7c00100,0x230400,
-0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c,0x4000000,0x200000,0x8001044c,
-0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,0x4000010,0x400000,0x80010670,0xc000010,
-0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0x30e00000,0x800acd00,0x4000000,0x72904de0,0x800ace00,0x4000000,0x30e00000,0x800acf00,0x4000000,0x30e00000,
-0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0x30e00000,0x800b0500,0x4000000,0xb28045a0,0x90001615,0x7c00100,0x230400,0x9000171a,0x4000000,0x200000,0x9000171a,
-0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802000,0x962460,0x90008e00,0x24000000,0x400000,0x90009519,0x7c00100,
-0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,0x962460,0x9000d202,0x7c00100,0x230400,
-0x9000e59d,0x2802100,0x962460,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7,0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7,
-0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100,0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000,
-0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800,0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400,
-0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9,0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,
-0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000,0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,
-0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000,0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,
-0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab,0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,
-0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x30e00000,0x900acd00,0x4000000,0xb28045a0,0x900acf00,0x4000000,0x30e00000,0x900b0500,0x4000000,
-0xe00000,0x900b0500,0x4000000,0x30e00000,0x900b0500,0x4000000,0xb28045a0,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,0xe30000,0x900b119a,0x7c00300,0xe30000,
-0x90408e06,0x24000000,0x400000};
+0x6f67,0,0,0x7067,0,0,0x7367,0x20000000,0,0x7367,0x20000000,0x200000,0x7567,0,0,0x7667,
+0,0,0x7767,0,0,0x7867,0,0,0x7a67,0,0,0x7b67,0,0,0x7c67,0,
+0,0x7e67,0,0,0x7f67,0,0,0x8167,0,0,0x8267,0,0,0x8367,0,0,
+0x8367,0,0x962460,0x8467,0,0,0x8567,0,0,0x8667,0,0,0x8767,0,0,0x8867,
+0,0,0x8967,0,0,0x8b67,0,0,0x8c67,0,0,0x8e67,0x20000000,0,0x8e67,0x20000000,
+0x400000,0x8f67,0,0,0x9067,0,0,0x9167,0,0,0x9267,0,0,0x9367,0,0,
+0x9567,0,0,0x9667,0,0,0x9767,0,0,0x9867,0,0,0x9967,0,0,0x9a67,
+0,0,0x9c67,0,0,0x9f67,0,0,0xa167,0,0,0xa367,0,0,0xa467,0,
+0,0xa567,0,0,0xa667,0,0,0xa767,0,0,0xa867,0,0,0xa967,0,0,
+0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0,0,0xad67,0,0,0xae67,0,0,0xaf67,
+0,0,0xaf67,0,0x962540,0xb167,0,0,0xb267,0,0,0xb367,0,0,0xb467,0,
+0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67,0,0,
+0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0,0xc167,
+0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0,0xc767,0,
+0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcb67,0,0xe30000,0xcc67,0,0xe00000,
+0xcf67,0,0xe00000,0xcf67,0,0x30e00000,0xd067,0,0xe00000,0xd267,0,0,0xd367,0,0,0xd467,
+0,0,0xd567,0,0,0xd667,0,0,0xd867,0,0,0xd967,0,0,0xda67,0,
+0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0,0xdf67,0,0,
+0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0xe00000,0xe467,0,0,0xe567,
+0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0,0,0xea67,0,
+0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0,0xef67,0,0,
+0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767,0,0,0xf867,
+0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0,0,0xfd67,0,
+0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0,0x10467,0,0,
+0x10567,0,0x200000,0x10567,0,0xe00000,0x10567,0,0x30e00000,0x10567,0,0xb28045a0,0x10667,0,0,0x10767,
+0,0,0x10867,0,0,0x10967,0,0,0x10a67,0,0,0x10b67,0,0,0x10b67,0,
+0x1230400,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67,0,0,0x11067,0,0,
+0x11167,0,0,0xa0067,0,0xe00000,0xa0067,0,0xe30000,0xa4667,0,0xe00000,0xa4767,0,0xe00000,0xa4767,
+0,0xe30000,0xa4f67,0,0xe00000,0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,
+0xe00000,0xb0067,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,
+0x11000100,0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x10200000,0x11000200,
+0x24000008,0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,
+0x220402,0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,
+0x11000419,0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,
+0x7c00100,0x230400,0x11000600,0x4000400,0x200000,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,
+0x230400,0x11000600,0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,
+0x11000800,0x6800010,0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,
+0x4000400,0x200002,0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,
+0x250400,0x1100080e,0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,
+0x11000908,0x7c00100,0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200000,0x11000a03,0x4000000,0x270000,0x11000a03,
+0x7c00100,0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,
+0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,
+0x11000c00,0,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,
+0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,
+0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000c02,0xc000010,0xb48000,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,
+0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,
+0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,
+0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,
+0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,
+0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,
+0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,
+0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,
+0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,
+0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,
+0x11001615,0x6800000,0x1329800,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,
+0x2806400,0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,
+0x1600000,0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,
+0x11001926,0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,
+0x2802100,0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,
+0x1830002,0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,
+0x11001e12,0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,
+0x4000400,0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,
+0x918820,0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x440001,0x11002800,0x4000001,0x440002,0x11002800,0x4000001,0xc4000b,
+0x11002800,0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,
+0x24000000,0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,
+0x1410000,0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x11248002,
+0x11002800,0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,
+0x4000000,0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,
+0x141000e,0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,
+0x11002a00,0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,
+0x4000000,0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,
+0x230402,0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,
+0x11002d00,0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,
+0x24000020,0x200000,0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x10200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,
+0x200002,0x11002f00,0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000000,0x10200000,
+0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,
+0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000000,
+0x10200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700,0x24000000,0x10200000,0x11003700,0x24000000,0x10e00000,
+0x11003700,0x24000000,0x928045a0,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,
+0x24000000,0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x10200000,0x11003800,0x24000000,0x10b00000,0x11003800,0x24000000,0x10e00000,0x11003800,0x24000000,
+0x10e05200,0x11003800,0x24000000,0x928045a0,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,
+0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100,0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,
+0x7000100,0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,
+0x962460,0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,
+0x11005502,0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,
+0x4000400,0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,
+0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x10200000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,
+0x11020219,0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,
+0x7c00100,0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,
+0x220400,0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,
+0x11020701,0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,
+0x7c00100,0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,
+0x200002,0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,
+0x11022800,0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,
+0x24000020,0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,
+0x12040f,0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x4000000,0x1010000f,0x11022c00,0x7c00120,0x120405,
+0x11022c0e,0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,
+0x7c00100,0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020,0x10100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,
+0x100001,0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,
+0x11023300,0x4000100,0x150403,0x11023300,0x4000100,0x10150403,0x11023400,0x24000000,0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,
+0x24000020,0x100000,0x11023600,0x24000020,0x10100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700,0x24000000,0x10100000,0x11023700,0x24000000,
+0x10e00000,0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x10100000,0x11023700,0x24000020,0x10105200,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,
+0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,
+0x7c00100,0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x440011,0x11065700,0x4000000,
+0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,
+0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,
+0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe00011,0x11065700,0xc000010,
+0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,
+0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x11329800,0x11080100,0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,
+0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000000,0x10200000,0x11080100,0x24000006,
+0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,
+0x11080100,0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,
+0x2c000010,0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a40000,0x11080119,0x7c00100,0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,
+0x220400,0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,
+0x11080200,0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000,0x30e00000,0x110a3000,0x24100000,0x810001,0x110a3000,
+0x24100000,0x1410001,0x110a3700,0x24000000,0x30200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,
+0xe30000,0x110a3d11,0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,
+0x110a3e14,0x7c00900,0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,
+0x7c00900,0x1230c00,0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,
+0xe00000,0x110a4412,0x4000000,0xe00002,0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,
+0x110a4711,0x7c40300,0xe30000,0x110a4f11,0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,
+0x4000000,0xe00010,0x110a5300,0x4000000,0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,
+0xe01c02,0x110a5300,0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,
+0x110a5400,0x4000000,0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,
+0x4000010,0x127100c,0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400a0c,0xc000010,
+0x1049400,0x11400c0e,0x4000010,0xb00000,0x11400c0e,0x4000010,0x1071400,0x11400c0e,0xc000010,0xb48000,0x11400c11,0x7c00900,0x230400,0x11400f34,0xc000010,0x448000,
+0x11400f44,0xc000010,0x448000,0x11401d70,0x4000000,0x200000,0x11403d92,0x4000000,0xe00000,0x11445787,0x4000004,0x120000a,0x11445787,0x4000008,0x81000a,0x11445787,
+0x4000008,0x141000a,0x11445787,0x4000010,0x87000a,0x11445787,0xc000010,0x84800a,0x11445790,0x3802500,0x126246a,0x11445790,0x7c00d00,0x2530c0a,0x114a3d87,0x24000000,
+0x810000,0x114a3d87,0x24000000,0x1410000,0x114a3d87,0x24000008,0x810000,0x114a3d87,0x24000008,0x1410000,0x114a3d87,0x24000010,0x870000,0x114a3d87,0x2c000010,0x848000,
+0x114a3d8d,0x4000000,0xe00000,0x114a3d8d,0x24000000,0xe00000,0x114a3d8d,0x24000002,0x1200000,0x114a3d8d,0x24000002,0x10e00000,0x114a3d8d,0x24000008,0x810000,0x114a3d8d,
+0x24000008,0x1410000,0x114a3d90,0x7c00900,0x930c00,0x114a3d90,0x7c00900,0xe30c00,0x114a3d92,0x7c00300,0xe30000,0x114a3e90,0x7000400,0x1200c02,0x114a3f87,0x4000004,
+0x1200000,0x114a3f90,0x7c00d00,0x2530c00,0x114a4292,0x4000000,0xe00000,0x114a4292,0x4000000,0xe0000f,0x114a4492,0x4000000,0xe00002,0x114a4492,0x4000000,0xe00003,
+0x114a4492,0x4000000,0x10e00003,0x114a4592,0x4000000,0xe00002,0x114a4592,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c17,0x2802100,0x962460,0x11800c17,
+0x2802500,0x962460,0x11800f1d,0x2802400,0x962460,0x11800f29,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500,0x962460,0x118a3d93,0x2802400,
+0x962460,0x118a3e90,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c1b,0x6800000,0x1329800,0x11c00f58,0x6800000,0x1329800,
+0x11c0105d,0x6800000,0x1329800,0x11c01161,0x6800000,0x1329800,0x11c01265,0x6800000,0x1329800,0x11c01469,0x4000000,0x200000,0x11c01469,0x6800000,0x1329800,0x11c01469,
+0x7c00100,0x230400,0x11c0511b,0x7c00100,0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,
+0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,
+0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,
+0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,
+0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900020,
+0x20004c67,0,0x1900020,0x20004d67,0,0x1900020,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,
+0,0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,
+0x220400,0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,
+0x30000600,0x7c00500,0x230400,0x30000605,0x4000400,0x200000,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,
+0x7c00100,0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400000,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,
+0x230400,0x30000d22,0,0x218960,0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,
+0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,
+0x2802100,0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,
+0x230400,0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,
+0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,
+0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,
+0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,
+0x30002128,0x4000010,0x200000,0x30002128,0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,
+0x4000001,0x440000,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,
+0x1862460,0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,
+0x30002417,0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,
+0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,
+0x500000,0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,
+0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x4000001,0xc41c0b,0x30002800,0x24000000,0x200000,0x30002800,
+0x2c000010,0x1248002,0x30002800,0x2c000010,0x11248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,
+0x10220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000,0x30003600,0x24000000,0x200000,
+0x30003700,0x24000000,0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400,0x500400,0x30020701,
+0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,
+0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,
+0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x30402576,0x4000010,0x400000,0x30402576,0x4000010,0xb70000,0x30402576,0xc000010,0xb48000,0x304a3d92,
+0x4000000,0xe00000,0x30800c17,0x2802100,0x962460,0x30c01c6e,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,
+0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,
+0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,
+0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,
+0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,
+0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,
+0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,
+0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x440002,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,
+0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,
+0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,
+0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,
+0x32003600,0x24000020,0x200000,0x32003600,0x24000020,0x10200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,0x10200000,0x32003800,
+0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,
+0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,
+0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,
+0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x10200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,
+0x810000,0x32006900,0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,
+0x32023300,0x4000000,0x100000,0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,
+0x24000020,0x1410000,0x32086900,0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x30200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,
+0xe30010,0x320a3e14,0x7c00100,0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,
+0x320a6b16,0x7c00100,0x2530c00,0x32406372,0xc000010,0x448000,0x324a3d95,0x4000000,0x10e00000,0x324a3d95,0x7c00100,0x1230400,0x324a3f90,0x4000002,0x1200c00,0x324a538d,
+0x24000000,0xe00000,0x32820701,0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,
+0x220400,0x4000080e,0x7c00100,0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0,0x218960,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,
+0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000d22,0x7c00100,0x230400,0x40000f0a,
+0x7c00100,0x230400,0x40001004,0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,
+0x1600000,0x4000120f,0x7c00100,0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,
+0x40001615,0x7c00100,0x230400,0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,
+0x4000000,0x200002,0x40003000,0x24000000,0x10200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x10200000,0x40005a09,0x7c00100,
+0x220400,0x40005a09,0x7c00100,0x250400,0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,
+0x40006f30,0x6800000,0x1329800,0x40006f30,0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,
+0x4000000,0x200000,0x40007208,0x7c00100,0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,
+0x220400,0x40007219,0x7c00500,0x220400,0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007300,0x24000000,0x10200000,
+0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,
+0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,
+0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x30200000,0x400a3700,0x24000000,0x30e00000,
+0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,
+0x4000000,0x1410010,0x404077b8,0x4000000,0x200000,0x404077bb,0x4000000,0x200000,0x404077bb,0x4000000,0x400000,0x40c0511b,0x4000000,0x200000,0x41000419,0x7c00100,
+0x220400,0x41000419,0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,
+0x41000b13,0x2802000,0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0xb00000,0x41000c02,
+0x4000000,0x1500000,0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,
+0x230400,0x41001d0c,0x7c00100,0x23040f,0x41001f0b,0x2802100,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,
+0x41002800,0x24000000,0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,
+0x7c00120,0x220405,0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0x10200000,0x41003700,0x24000000,0x10205200,0x41003700,0x24000000,
+0x10e00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,
+0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,
+0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,
+0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,0x41008407,0x4000000,0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,
+0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,0x4000000,0x200000,0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,
+0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,0x962460,0x41008939,0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,
+0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,0x41008939,0xc000010,0x448000,0x41008a00,0x4000000,0x200000,0x41008b3b,0x4000000,0x1800000,
+0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,0x7e00100,0x1830000,0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,
+0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,
+0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802000,0x962460,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a,0x4000000,0x200000,
+0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000,0x962460,0x41020701,
+0x2802000,0xc62460,0x410a3700,0x24000000,0x30200000,0x410a3700,0x24000000,0x30e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,
+0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,
+0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x414a8292,0x4000000,0xe00000,0x41808300,
+0x2802000,0x962460,0x41c01469,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,
+0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,
+0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,
+0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120,0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,
+0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000,0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,
+0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257,0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,
+0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,
+0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,
+0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,
+0x4000400,0x200400,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,
+0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409a92,0x4000000,0x200000,
+0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,
+0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,
+0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000,0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,
+0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27,0x4000000,0x200000,0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,
+0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802400,0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,
+0x1329800,0x51001c1c,0x6800000,0x1862400,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800400,0x1862400,0x51001c1c,0x7c00100,0x1830000,
+0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,
+0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,
+0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,
+0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500,0x230400,0x51008e00,
+0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,
+0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419,0x7c00100,0x22040e,
+0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,0x4000000,0x200400,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100,0x220400,0x51009519,
+0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800,0x51009b71,0x6800100,
+0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52,0x2802c00,0x962460,
+0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010,0x448000,0x51009d6d,
+0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000,0x51009e08,0x2802100,
+0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63,0xc000010,0x448000,
+0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100,0x220400,0x5100a008,
+0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800,0x5100a16f,0x6800100,
+0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f,0x6800000,0x1329800,
+0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,
+0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,
+0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,
+0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100ab00,
+0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,
+0x30200000,0x510aaa00,0x4000000,0x30e00000,0x5140a2b3,0x4000400,0x400000,0x514a8292,0x4000000,0xe00000,0x51802b84,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,
+0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,
+0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800400,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,
+0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,
+0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,
+0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,
+0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,
+0x5200ac7e,0x7c00100,0x230400,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,
+0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,
+0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,
+0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,
+0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,
+0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,
+0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800400,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,
+0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,
+0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,
+0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,
+0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,
+0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,
+0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0,0x218960,0x5200c178,
+0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,
+0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,
+0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,
+0x24000000,0x10100000,0x52023700,0x24000000,0x10e00000,0x52023700,0x24000000,0x928045a0,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300,0x4000000,
+0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,
+0x5202c300,0x4000100,0x10150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0x30e00000,0x520a3800,0x24000000,0x30100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,
+0x7c00300,0xe30001,0x520a7300,0x24000000,0x30100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac400,0x4000000,
+0x30e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af78,0x6800400,0x962540,0x5240af78,0x7c00100,0x230400,0x5240af79,0x4000400,0x200000,
+0x5240af79,0x6800100,0x962540,0x5240b298,0x4000000,0x200000,0x5240b2a2,0x4000000,0x200000,0x5240b2a2,0x4000000,0x1500000,0x5240b5b6,0x7c00900,0x230400,0x524a4492,
+0x4000000,0xe00003,0x5280af78,0x2802400,0x962460,0x5280af79,0x2802400,0x962460,0x5280af7b,0x2802400,0x962460,0x5280af7d,0x2802400,0x962460,0x52c0b3ad,0x2802400,
+0x962460,0x52c0b3b1,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,
+0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,
+0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802000,0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,
+0x10200000,0x60003000,0x24000000,0x10e00000,0x60003700,0x24000000,0x200000,0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,
+0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,
+0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x32703580,0x6000c654,0x2802000,
+0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,
+0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,
+0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,
+0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000,0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,
+0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d,0x6002c300,0x4000100,0x10150400,0x600a3000,0x24000000,0x30200000,0x600a3000,
+0x24000000,0x30e00000,0x600a3700,0x24000000,0x30200000,0x600a3800,0x24000000,0x30200000,0x600a3800,0x24000000,0xb28045a0,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,
+0x30100000,0x600ac400,0x4000000,0x10e0000d,0x600ac400,0x4000000,0x30e0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000,0x30e00000,
+0x600acd00,0x4000000,0x30200000,0x600acd00,0x4000000,0x30e00000,0x600acd00,0x4000000,0x30e05200,0x600acd00,0x4000000,0xb28045a0,0x600acd00,0x4000000,0xb28049c0,0x600ace00,
+0x4000000,0x30e00000,0x600ace00,0x4000000,0xb28045a0,0x600acf00,0x4000000,0x30e00000,0x600acf00,0x4000000,0x30e05200,0x600acf00,0x4000000,0xb28045a0,0x600ad111,0x7c40300,
+0xe30000,0x604ac492,0x4000000,0x30e00003,0x61000a03,0x4000000,0x1600000,0x61000c02,0,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,
+0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,
+0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,
+0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,
+0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00,0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,
+0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,
+0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,
+0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,
+0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,0x230400,0x6100d85c,0x2802400,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,
+0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,
+0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,
+0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,
+0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,
+0x610ace00,0x4000000,0x30e00000,0x6140af78,0x7c00100,0x230400,0x6140af79,0x6800100,0x962540,0x6140af82,0x7c00100,0x230400,0x6180af79,0x2802400,0x962460,0x62002a00,
+0x4000000,0x1600000,0x63000c00,0x80000,0x918820,0x63002800,0x80000,0x918820,0x7000080e,0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0,
+0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,0x70001524,0x2802100,0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,
+0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320,0x7c00100,0x230400,0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,
+0x24000000,0x200000,0x70003000,0x24000000,0x10200000,0x70003800,0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,
+0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301,0x2802100,0x962460,
+0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,
+0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,
+0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,
+0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802400,0x1862460,0x7000b61c,0x6800400,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,
+0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x10200000,0x7000cd00,0x4000000,
+0x10e00000,0x7000cd00,0x4000000,0x10e05200,0x7000cd00,0x4000000,0x928045a0,0x7000cf00,0x4000000,0xe00000,0x7000cf00,0x4000000,0x10e00000,0x7000d202,0x2802100,0x962460,
+0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,
+0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,
+0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,
+0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489,0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,
+0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100,0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,
+0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540,0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,
+0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691,0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,
+0x7c00100,0x230400,0x7000e700,0x4000400,0x200400,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100,0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,
+0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000,0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,
+0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79,0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,
+0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400,0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,
+0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000,0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,
+0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802400,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c,0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,
+0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100,0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,
+0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000,0x7000f34b,0x2802100,0x962460,0x7000f34b,0x4000000,0x200000,
+0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b,0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,
+0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000,0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,
+0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460,0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,
+0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,
+0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,
+0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,
+0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0x30e00000,0x700acd00,
+0x4000000,0xb28045a0,0x700ace00,0x4000000,0x30e00000,0x700acf00,0x4000000,0x30e00000,0x700acf00,0x4000000,0xb28045a0,0x7040dfbd,0x4000000,0x200000,0x7040f7c1,0x80000,
+0x918820,0x7080af79,0x2802400,0x962460,0x7080dfbd,0x2802400,0x962460,0x70c0e4bf,0x2802400,0x962460,0x70c0e4bf,0x6800100,0x962540,0x8000120f,0x7c00100,0x230400,
+0x80001524,0x7c00100,0x230400,0x8000171a,0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,
+0x4000000,0x200000,0x80005208,0x2802400,0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,
+0x230400,0x80009519,0x7c00100,0x250400,0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,
+0x8000cd00,0x4000000,0xe00000,0x8000d202,0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802400,0x962460,0x8000d997,
+0x4000000,0x200000,0x8000d997,0x4000000,0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,
+0x962460,0x8000e489,0x7c00100,0x230400,0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,
+0x8000fda1,0x2802100,0x1862460,0x8000fda1,0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,0x8000fda1,
+0x7c00100,0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,
+0x220400,0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,
+0x8001044c,0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,
+0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0x30e00000,0x800acd00,0x4000000,0x72904de0,0x800ace00,0x4000000,
+0x30e00000,0x800acf00,0x4000000,0x30e00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0x30e00000,0x800b0500,0x4000000,0xb28045a0,0x90001615,0x7c00100,0x230400,
+0x9000171a,0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802000,0x962460,0x90008e00,
+0x24000000,0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,
+0x962460,0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7,0x2802c00,0x962460,
+0x900107a7,0x4000000,0x1400000,0x900107a7,0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100,0x962460,0x900108a8,
+0x2806400,0x962460,0x900108a8,0x4000000,0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800,0x900108a8,0x6800100,
+0x962540,0x900108a8,0x7c00100,0x230400,0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9,0x2802100,0x962460,
+0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000,0x500000,0x90010eaa,
+0x2802100,0x962460,0x90010eaa,0x2802400,0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000,0x90010eaa,0x4000010,
+0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab,0x7c00100,0x220400,
+0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x30e00000,0x900acd00,0x4000000,0xb28045a0,0x900acf00,
+0x4000000,0x30e00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x30e00000,0x900b0500,0x4000000,0xb28045a0,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,
+0xe30000,0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000};
 
-static const int32_t countPropsVectors=6195;
+static const int32_t countPropsVectors=6279;
 static const int32_t propsVectorsColumns=3;
 static const uint16_t scriptExtensions[194]={
 0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,3,0x800c,2,0x22,
@@ -3539,6 +3581,6 @@
 0x8023,0xa,0xaf,0x19,0x1c,0x804f,0x37,0x804e,0x2f,0x31,0x8053,0x2f,0x8031,2,0x8007,0x89,
 0x67,0x8087};
 
-static const int32_t indexes[UPROPS_INDEX_COUNT]={0x28aa,0x28aa,0x28aa,0x28aa,0x606c,3,0x789f,0x7900,0x7900,0x7900,0xb11ae,0x2a75631,0,0,0,0};
+static const int32_t indexes[UPROPS_INDEX_COUNT]={0x28aa,0x28aa,0x28aa,0x28aa,0x6196,3,0x7a1d,0x7a7e,0x7a7e,0x7a7e,0xb11ae,0x2a75631,0,0,0,0};
 
 #endif  // INCLUDED_FROM_UCHAR_C
diff --git a/source/common/ucharstrie.cpp b/source/common/ucharstrie.cpp
index d04d315..e0b33af 100644
--- a/source/common/ucharstrie.cpp
+++ b/source/common/ucharstrie.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucharstrie.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -175,7 +175,8 @@
 }
 
 UStringTrieResult
-UCharsTrie::next(const UChar *s, int32_t sLength) {
+UCharsTrie::next(ConstChar16Ptr ptr, int32_t sLength) {
+    const UChar *s=ptr;
     if(sLength<0 ? *s==0 : sLength==0) {
         // Empty input.
         return current();
diff --git a/source/common/ucharstriebuilder.cpp b/source/common/ucharstriebuilder.cpp
index 412a58a..694648d 100644
--- a/source/common/ucharstriebuilder.cpp
+++ b/source/common/ucharstriebuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucharstriebuilder.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucharstrieiterator.cpp b/source/common/ucharstrieiterator.cpp
index 68ba8c2..b313224 100644
--- a/source/common/ucharstrieiterator.cpp
+++ b/source/common/ucharstrieiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucharstrieiterator.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -21,7 +21,7 @@
 
 U_NAMESPACE_BEGIN
 
-UCharsTrie::Iterator::Iterator(const UChar *trieUChars, int32_t maxStringLength,
+UCharsTrie::Iterator::Iterator(ConstChar16Ptr trieUChars, int32_t maxStringLength,
                                UErrorCode &errorCode)
         : uchars_(trieUChars),
           pos_(uchars_), initialPos_(uchars_),
diff --git a/source/common/uchriter.cpp b/source/common/uchriter.cpp
index fd0a407..822168f 100644
--- a/source/common/uchriter.cpp
+++ b/source/common/uchriter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -25,14 +25,14 @@
     // never default construct!
 }
 
-UCharCharacterIterator::UCharCharacterIterator(const UChar* textPtr,
+UCharCharacterIterator::UCharCharacterIterator(ConstChar16Ptr textPtr,
                                                int32_t length)
   : CharacterIterator(textPtr != 0 ? (length>=0 ? length : u_strlen(textPtr)) : 0),
   text(textPtr)
 {
 }
 
-UCharCharacterIterator::UCharCharacterIterator(const UChar* textPtr,
+UCharCharacterIterator::UCharCharacterIterator(ConstChar16Ptr textPtr,
                                                int32_t length,
                                                int32_t position)
   : CharacterIterator(textPtr != 0 ? (length>=0 ? length : u_strlen(textPtr)) : 0, position),
@@ -40,7 +40,7 @@
 {
 }
 
-UCharCharacterIterator::UCharCharacterIterator(const UChar* textPtr,
+UCharCharacterIterator::UCharCharacterIterator(ConstChar16Ptr textPtr,
                                                int32_t length,
                                                int32_t textBegin,
                                                int32_t textEnd,
@@ -349,7 +349,7 @@
     return pos;
 }
 
-void UCharCharacterIterator::setText(const UChar* newText,
+void UCharCharacterIterator::setText(ConstChar16Ptr newText,
                                      int32_t      newTextLength) {
     text = newText;
     if(newText == 0 || newTextLength < 0) {
diff --git a/source/common/ucln.h b/source/common/ucln.h
index 3c8c66a..fe6666e 100644
--- a/source/common/ucln.h
+++ b/source/common/ucln.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucln.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucln_cmn.cpp b/source/common/ucln_cmn.cpp
index e089fb2..8cabf13 100644
--- a/source/common/ucln_cmn.cpp
+++ b/source/common/ucln_cmn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  ucln_cmn.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucln_cmn.h b/source/common/ucln_cmn.h
index 56fa730..a6ecfd5 100644
--- a/source/common/ucln_cmn.h
+++ b/source/common/ucln_cmn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  ucln_cmn.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucln_imp.h b/source/common/ucln_imp.h
index 352776a..1bfcde0 100644
--- a/source/common/ucln_imp.h
+++ b/source/common/ucln_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucln_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -121,7 +121,9 @@
 /* READ READ READ READ!    Are you getting compilation errors from windows.h?
           Any source file which includes this (ucln_imp.h) header MUST 
           be defined with language extensions ON. */
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
diff --git a/source/common/ucmndata.c b/source/common/ucmndata.cpp
similarity index 96%
rename from source/common/ucmndata.c
rename to source/common/ucmndata.cpp
index 6b7d78d..251c7ba 100644
--- a/source/common/ucmndata.c
+++ b/source/common/ucmndata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -207,7 +207,9 @@
     return -1;
 }
 
-static uint32_t offsetTOCEntryCount(const UDataMemory *pData) {
+U_CDECL_BEGIN
+static uint32_t U_CALLCONV
+offsetTOCEntryCount(const UDataMemory *pData) {
     int32_t          retVal=0;
     const UDataOffsetTOC *toc = (UDataOffsetTOC *)pData->toc;
     if (toc != NULL) {
@@ -216,11 +218,12 @@
     return retVal;
 }
 
-static const DataHeader *
+static const DataHeader * U_CALLCONV
 offsetTOCLookupFn(const UDataMemory *pData,
                   const char *tocEntryName,
                   int32_t *pLength,
                   UErrorCode *pErrorCode) {
+    (void)pErrorCode;
     const UDataOffsetTOC  *toc = (UDataOffsetTOC *)pData->toc;
     if(toc!=NULL) {
         const char *base=(const char *)toc;
@@ -262,16 +265,16 @@
 }
 
 
-static uint32_t pointerTOCEntryCount(const UDataMemory *pData) {
+static uint32_t U_CALLCONV pointerTOCEntryCount(const UDataMemory *pData) {
     const PointerTOC *toc = (PointerTOC *)pData->toc;
     return (uint32_t)((toc != NULL) ? (toc->count) : 0);
 }
 
-
-static const DataHeader *pointerTOCLookupFn(const UDataMemory *pData,
+static const DataHeader * U_CALLCONV pointerTOCLookupFn(const UDataMemory *pData,
                    const char *name,
                    int32_t *pLength,
                    UErrorCode *pErrorCode) {
+    (void)pErrorCode;
     if(pData->toc!=NULL) {
         const PointerTOC *toc = (PointerTOC *)pData->toc;
         int32_t number, count=(int32_t)toc->count;
@@ -300,6 +303,8 @@
         return pData->pHeader;
     }
 }
+U_CDECL_END
+
 
 static const commonDataFuncs CmnDFuncs = {offsetTOCLookupFn,  offsetTOCEntryCount};
 static const commonDataFuncs ToCPFuncs = {pointerTOCLookupFn, pointerTOCEntryCount};
diff --git a/source/common/ucmndata.h b/source/common/ucmndata.h
index 206ddbf..646bfa1 100644
--- a/source/common/ucmndata.h
+++ b/source/common/ucmndata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ucnv.c b/source/common/ucnv.cpp
similarity index 99%
rename from source/common/ucnv.c
rename to source/common/ucnv.cpp
index 527f86f..ae3c63d 100644
--- a/source/common/ucnv.c
+++ b/source/common/ucnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ucnv2022.cpp b/source/common/ucnv2022.cpp
index 9c0a064..f0d0946 100644
--- a/source/common/ucnv2022.cpp
+++ b/source/common/ucnv2022.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv2022.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnv_bld.cpp b/source/common/ucnv_bld.cpp
index a8c41cc..a0d0442 100644
--- a/source/common/ucnv_bld.cpp
+++ b/source/common/ucnv_bld.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************
diff --git a/source/common/ucnv_bld.h b/source/common/ucnv_bld.h
index 212c4ea..a1e2df6 100644
--- a/source/common/ucnv_bld.h
+++ b/source/common/ucnv_bld.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ucnv_cb.c b/source/common/ucnv_cb.cpp
similarity index 98%
rename from source/common/ucnv_cb.c
rename to source/common/ucnv_cb.cpp
index 0c9cc24..1bb0012 100644
--- a/source/common/ucnv_cb.c
+++ b/source/common/ucnv_cb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ucnv_cnv.c b/source/common/ucnv_cnv.cpp
similarity index 96%
rename from source/common/ucnv_cnv.c
rename to source/common/ucnv_cnv.cpp
index 01f8482..ea71acf 100644
--- a/source/common/ucnv_cnv.c
+++ b/source/common/ucnv_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -33,6 +33,9 @@
                    const USetAdder *sa,
                    UConverterUnicodeSet which,
                    UErrorCode *pErrorCode) {
+    (void)cnv;
+    (void)which;
+    (void)pErrorCode;
     sa->addRange(sa->set, 0, 0x10ffff);
 }
 
@@ -41,6 +44,9 @@
                                const USetAdder *sa,
                                UConverterUnicodeSet which,
                                UErrorCode *pErrorCode) {
+    (void)cnv;
+    (void)which;
+    (void)pErrorCode;
     sa->addRange(sa->set, 0, 0xd7ff);
     sa->addRange(sa->set, 0xe000, 0x10ffff);
 }
diff --git a/source/common/ucnv_cnv.h b/source/common/ucnv_cnv.h
index 4394672..2eed2c6 100644
--- a/source/common/ucnv_cnv.h
+++ b/source/common/ucnv_cnv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ucnv_ct.c b/source/common/ucnv_ct.cpp
similarity index 97%
rename from source/common/ucnv_ct.c
rename to source/common/ucnv_ct.cpp
index f76919c..c9a0ce3 100644
--- a/source/common/ucnv_ct.c
+++ b/source/common/ucnv_ct.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_ct.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -165,16 +165,17 @@
 } UConverterDataCompoundText;
 
 /*********** Compound Text Converter Protos ***********/
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _CompoundTextOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode);
 
-static void
+static void U_CALLCONV
  _CompoundTextClose(UConverter *converter);
 
-static void
+static void U_CALLCONV
 _CompoundTextReset(UConverter *converter, UConverterResetChoice choice);
 
-static const char*
+static const char* U_CALLCONV
 _CompoundTextgetName(const UConverter* cnv);
 
 
@@ -257,14 +258,14 @@
     return state;
 }
 
-static void
+static void U_CALLCONV
 _CompoundTextOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
     cnv->extraInfo = uprv_malloc (sizeof (UConverterDataCompoundText));
     if (cnv->extraInfo != NULL) {
         UConverterDataCompoundText *myConverterData = (UConverterDataCompoundText *) cnv->extraInfo;
 
         UConverterNamePieces stackPieces;
-        UConverterLoadArgs stackArgs={ (int32_t)sizeof(UConverterLoadArgs) };
+        UConverterLoadArgs stackArgs=UCNV_LOAD_ARGS_INITIALIZER;
 
         myConverterData->myConverterArray[COMPOUND_TEXT_SINGLE_0] = NULL;
         myConverterData->myConverterArray[COMPOUND_TEXT_SINGLE_1] = ucnv_loadSharedData("icu-internal-compound-s1", &stackPieces, &stackArgs, errorCode);
@@ -300,7 +301,7 @@
 }
 
 
-static void
+static void U_CALLCONV
 _CompoundTextClose(UConverter *converter) {
     UConverterDataCompoundText* myConverterData = (UConverterDataCompoundText*)(converter->extraInfo);
     int32_t i;
@@ -317,16 +318,19 @@
     }
 }
 
-static void
+static void U_CALLCONV
 _CompoundTextReset(UConverter *converter, UConverterResetChoice choice) {
+    (void)converter;
+    (void)choice;
 }
 
-static const char*
+static const char* U_CALLCONV
 _CompoundTextgetName(const UConverter* cnv){
+    (void)cnv;
     return "x11-compound-text";
 }
 
-static void
+static void U_CALLCONV
 UConverter_fromUnicode_CompoundText_OFFSETS(UConverterFromUnicodeArgs* args, UErrorCode* err){
     UConverter *cnv = args->converter;
     uint8_t *target = (uint8_t *) args->target;
@@ -458,7 +462,7 @@
 }
 
 
-static void
+static void U_CALLCONV
 UConverter_toUnicode_CompoundText_OFFSETS(UConverterToUnicodeArgs *args,
                                                UErrorCode* err){
     const char *mySource = (char *) args->source;
@@ -574,7 +578,7 @@
     args->source = mySource;
 }
 
-static void
+static void U_CALLCONV
 _CompoundText_GetUnicodeSet(const UConverter *cnv,
                     const USetAdder *sa,
                     UConverterUnicodeSet which,
@@ -591,6 +595,7 @@
     sa->addRange(sa->set, 0x0020, 0x007F);
     sa->addRange(sa->set, 0x00A0, 0x00FF);
 }
+U_CDECL_END
 
 static const UConverterImpl _CompoundTextImpl = {
 
@@ -613,8 +618,11 @@
     _CompoundTextgetName,
     NULL,
     NULL,
-    _CompoundText_GetUnicodeSet
+    _CompoundText_GetUnicodeSet,
+    NULL,
+    NULL
 };
+
 static const UConverterStaticData _CompoundTextStaticData = {
     sizeof(UConverterStaticData),
     "COMPOUND_TEXT",
diff --git a/source/common/ucnv_err.c b/source/common/ucnv_err.cpp
similarity index 97%
rename from source/common/ucnv_err.c
rename to source/common/ucnv_err.cpp
index c609bed..31bb2ac 100644
--- a/source/common/ucnv_err.c
+++ b/source/common/ucnv_err.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
@@ -107,6 +107,10 @@
                   UConverterCallbackReason reason,
                   UErrorCode * err)
 {
+    (void)context;
+    (void)fromUArgs;
+    (void)codeUnits;
+    (void)length;
     if (reason == UCNV_UNASSIGNED && IS_DEFAULT_IGNORABLE_CODE_POINT(codePoint))
     {
         /*
@@ -130,6 +134,7 @@
                    UErrorCode * err)
 {
     /* the caller must have set the error code accordingly */
+    (void)context; (void)toUArgs; (void)codePoints; (void)length; (void)reason; (void)err;
     return;
 }
 
@@ -143,6 +148,9 @@
                   UConverterCallbackReason reason,
                   UErrorCode * err)
 {
+    (void)fromUArgs;
+    (void)codeUnits;
+    (void)length;
     if (reason <= UCNV_IRREGULAR)
     {
         if (reason == UCNV_UNASSIGNED && IS_DEFAULT_IGNORABLE_CODE_POINT(codePoint))
@@ -171,6 +179,8 @@
                   UConverterCallbackReason reason,
                   UErrorCode * err)
 {
+    (void)codeUnits;
+    (void)length;
     if (reason <= UCNV_IRREGULAR)
     {
         if (reason == UCNV_UNASSIGNED && IS_DEFAULT_IGNORABLE_CODE_POINT(codePoint))
@@ -368,6 +378,9 @@
                  UConverterCallbackReason reason,
                  UErrorCode * err)
 {
+    (void)toArgs;
+    (void)codeUnits;
+    (void)length;
     if (reason <= UCNV_IRREGULAR)
     {
         if (context == NULL || (*((char*)context) == UCNV_PRV_STOP_ON_ILLEGAL && reason == UCNV_UNASSIGNED))
@@ -388,6 +401,8 @@
                  UConverterCallbackReason reason,
                  UErrorCode * err)
 {
+    (void)codeUnits;
+    (void)length;
     if (reason <= UCNV_IRREGULAR)
     {
         if (context == NULL || (*((char*)context) == UCNV_PRV_STOP_ON_ILLEGAL && reason == UCNV_UNASSIGNED))
diff --git a/source/common/ucnv_ext.cpp b/source/common/ucnv_ext.cpp
index f860518..7dea4ee 100644
--- a/source/common/ucnv_ext.cpp
+++ b/source/common/ucnv_ext.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnv_ext.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -23,6 +23,7 @@
 #if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION
 
 #include "unicode/uset.h"
+#include "unicode/ustring.h"
 #include "ucnv_bld.h"
 #include "ucnv_cnv.h"
 #include "ucnv_ext.h"
diff --git a/source/common/ucnv_ext.h b/source/common/ucnv_ext.h
index c2f459c..dceea7e 100644
--- a/source/common/ucnv_ext.h
+++ b/source/common/ucnv_ext.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnv_ext.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnv_imp.h b/source/common/ucnv_imp.h
index 81aa80f..c5e6aeb 100644
--- a/source/common/ucnv_imp.h
+++ b/source/common/ucnv_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ucnv_io.cpp b/source/common/ucnv_io.cpp
index c3301e1..7a95a3f 100644
--- a/source/common/ucnv_io.cpp
+++ b/source/common/ucnv_io.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ucnv_io.h b/source/common/ucnv_io.h
index 8b35857..8f2d7b5 100644
--- a/source/common/ucnv_io.h
+++ b/source/common/ucnv_io.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/common/ucnv_lmb.c b/source/common/ucnv_lmb.cpp
similarity index 98%
rename from source/common/ucnv_lmb.c
rename to source/common/ucnv_lmb.cpp
index e427790..ec6dc66 100644
--- a/source/common/ucnv_lmb.c
+++ b/source/common/ucnv_lmb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_lmb.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   4 (not used)
 *   indentation:4
 *
@@ -582,7 +582,9 @@
   }
 UConverterDataLMBCS;
 
-static void _LMBCSClose(UConverter * _this);
+U_CDECL_BEGIN
+static void  U_CALLCONV _LMBCSClose(UConverter * _this);
+U_CDECL_END
 
 #define DECLARE_LMBCS_DATA(n) \
 static const UConverterImpl _LMBCSImpl##n={\
@@ -600,7 +602,9 @@
     NULL,\
     NULL,\
     _LMBCSSafeClone,\
-    ucnv_getCompleteUnicodeSet\
+    ucnv_getCompleteUnicodeSet,\
+    NULL,\
+    NULL\
 };\
 static const UConverterStaticData _LMBCSStaticData##n={\
   sizeof(UConverterStaticData),\
@@ -616,7 +620,7 @@
 optimization group. So, we put the common stuff into a worker function, 
 and set up another macro to stamp out the 12 open functions:*/
 #define DEFINE_LMBCS_OPEN(n) \
-static void \
+static void U_CALLCONV \
    _LMBCSOpen##n(UConverter* _this, UConverterLoadArgs* pArgs, UErrorCode* err) \
 { _LMBCSOpenWorker(_this, pArgs, err, n); }
 
@@ -629,12 +633,12 @@
                  UErrorCode*  err,
                  ulmbcs_byte_t OptGroup)
 {
-    UConverterDataLMBCS * extraInfo = _this->extraInfo =
-        (UConverterDataLMBCS*)uprv_malloc (sizeof (UConverterDataLMBCS));
+    UConverterDataLMBCS * extraInfo = (UConverterDataLMBCS*)uprv_malloc (sizeof (UConverterDataLMBCS));
+    _this->extraInfo = extraInfo;
     if(extraInfo != NULL)
     {
         UConverterNamePieces stackPieces;
-        UConverterLoadArgs stackArgs={ (int32_t)sizeof(UConverterLoadArgs) };
+        UConverterLoadArgs stackArgs= UCNV_LOAD_ARGS_INITIALIZER;
         ulmbcs_byte_t i;
 
         uprv_memset(extraInfo, 0, sizeof(UConverterDataLMBCS));
@@ -661,7 +665,8 @@
     }
 }
 
-static void 
+U_CDECL_BEGIN
+static void  U_CALLCONV
 _LMBCSClose(UConverter *   _this) 
 {
     if (_this->extraInfo != NULL)
@@ -686,11 +691,12 @@
     UConverterDataLMBCS lmbcs;
 } LMBCSClone;
 
-static UConverter * 
+static UConverter *  U_CALLCONV
 _LMBCSSafeClone(const UConverter *cnv, 
                 void *stackBuffer, 
                 int32_t *pBufferSize, 
                 UErrorCode *status) {
+    (void)status;
     LMBCSClone *newLMBCS;
     UConverterDataLMBCS *extraInfo;
     int32_t i;
@@ -842,7 +848,7 @@
 
 
 /* The main Unicode to LMBCS conversion function */
-static void 
+static void  U_CALLCONV
 _LMBCSFromUnicode(UConverterFromUnicodeArgs*     args,
                   UErrorCode*     err)
 {
@@ -1109,7 +1115,7 @@
 
 /* Return the Unicode representation for the current LMBCS character */
 
-static UChar32 
+static UChar32  U_CALLCONV
 _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs*   args,
                          UErrorCode*   err)
 {
@@ -1251,7 +1257,7 @@
 /* The exported function that converts lmbcs to one or more
    UChars - currently UTF-16
 */
-static void 
+static void  U_CALLCONV
 _LMBCSToUnicodeWithOffsets(UConverterToUnicodeArgs*    args,
                      UErrorCode*    err)
 {
@@ -1375,4 +1381,6 @@
 DECLARE_LMBCS_DATA(18)
 DECLARE_LMBCS_DATA(19)
 
+U_CDECL_END
+
 #endif /* #if !UCONFIG_NO_LEGACY_CONVERSION */
diff --git a/source/common/ucnv_set.c b/source/common/ucnv_set.cpp
similarity index 95%
rename from source/common/ucnv_set.c
rename to source/common/ucnv_set.cpp
index c3933ab..926cee0 100644
--- a/source/common/ucnv_set.c
+++ b/source/common/ucnv_set.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucnv_set.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnv_u16.c b/source/common/ucnv_u16.cpp
similarity index 97%
rename from source/common/ucnv_u16.c
rename to source/common/ucnv_u16.cpp
index 1458a8a..91291c0 100644
--- a/source/common/ucnv_u16.c
+++ b/source/common/ucnv_u16.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_u16.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -21,6 +21,7 @@
 #if !UCONFIG_NO_CONVERSION
 
 #include "unicode/ucnv.h"
+#include "unicode/uversion.h"
 #include "ucnv_bld.h"
 #include "ucnv_cnv.h"
 #include "cmemory.h"
@@ -29,11 +30,12 @@
     UCNV_NEED_TO_WRITE_BOM=1
 };
 
+U_CDECL_BEGIN
 /*
  * The UTF-16 toUnicode implementation is also used for the Java-specific
  * "with BOM" variants of UTF-16BE and UTF-16LE.
  */
-static void
+static void  U_CALLCONV
 _UTF16ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                            UErrorCode *pErrorCode);
 
@@ -46,7 +48,7 @@
 #endif
 
 
-static void
+static void  U_CALLCONV
 _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                                UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -250,7 +252,7 @@
     pArgs->offsets=offsets;
 }
 
-static void
+static void  U_CALLCONV
 _UTF16BEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                              UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -488,7 +490,7 @@
     pArgs->offsets=offsets;
 }
 
-static UChar32
+static UChar32  U_CALLCONV
 _UTF16BEGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *err) {
     const uint8_t *s, *sourceLimit;
     UChar32 c;
@@ -567,7 +569,7 @@
     return c;
 } 
 
-static void
+static void  U_CALLCONV
 _UTF16BEReset(UConverter *cnv, UConverterResetChoice choice) {
     if(choice<=UCNV_RESET_TO_UNICODE) {
         /* reset toUnicode state */
@@ -583,10 +585,11 @@
     }
 }
 
-static void
+static void  U_CALLCONV
 _UTF16BEOpen(UConverter *cnv,
              UConverterLoadArgs *pArgs,
              UErrorCode *pErrorCode) {
+    (void)pArgs;
     if(UCNV_GET_VERSION(cnv)<=1) {
         _UTF16BEReset(cnv, UCNV_RESET_BOTH);
     } else {
@@ -594,7 +597,7 @@
     }
 }
 
-static const char *
+static const char *  U_CALLCONV
 _UTF16BEGetName(const UConverter *cnv) {
     if(UCNV_GET_VERSION(cnv)==0) {
         return "UTF-16BE";
@@ -602,6 +605,7 @@
         return "UTF-16BE,version=1";
     }
 }
+U_CDECL_END
 
 static const UConverterImpl _UTF16BEImpl={
     UCNV_UTF16_BigEndian,
@@ -644,8 +648,8 @@
         UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16BEStaticData, &_UTF16BEImpl);
 
 /* UTF-16LE ----------------------------------------------------------------- */
-
-static void
+U_CDECL_BEGIN
+static void  U_CALLCONV
 _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                                UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -849,7 +853,7 @@
     pArgs->offsets=offsets;
 }
 
-static void
+static void  U_CALLCONV
 _UTF16LEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                              UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -1087,7 +1091,7 @@
     pArgs->offsets=offsets;
 }
 
-static UChar32
+static UChar32  U_CALLCONV
 _UTF16LEGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *err) {
     const uint8_t *s, *sourceLimit;
     UChar32 c;
@@ -1166,7 +1170,7 @@
     return c;
 } 
 
-static void
+static void  U_CALLCONV
 _UTF16LEReset(UConverter *cnv, UConverterResetChoice choice) {
     if(choice<=UCNV_RESET_TO_UNICODE) {
         /* reset toUnicode state */
@@ -1182,10 +1186,11 @@
     }
 }
 
-static void
+static void  U_CALLCONV
 _UTF16LEOpen(UConverter *cnv,
              UConverterLoadArgs *pArgs,
              UErrorCode *pErrorCode) {
+    (void)pArgs;
     if(UCNV_GET_VERSION(cnv)<=1) {
         _UTF16LEReset(cnv, UCNV_RESET_BOTH);
     } else {
@@ -1193,7 +1198,7 @@
     }
 }
 
-static const char *
+static const char *  U_CALLCONV
 _UTF16LEGetName(const UConverter *cnv) {
     if(UCNV_GET_VERSION(cnv)==0) {
         return "UTF-16LE";
@@ -1201,6 +1206,7 @@
         return "UTF-16LE,version=1";
     }
 }
+U_CDECL_END
 
 static const UConverterImpl _UTF16LEImpl={
     UCNV_UTF16_LittleEndian,
@@ -1268,8 +1274,8 @@
  * - UTF-16BE,version=1 (Java "UnicodeBig" encoding) and
  *   UTF-16LE,version=1 (Java "UnicodeLittle" encoding) treat a reverse BOM as an error.
  */
-
-static void
+U_CDECL_BEGIN
+static void  U_CALLCONV
 _UTF16Reset(UConverter *cnv, UConverterResetChoice choice) {
     if(choice<=UCNV_RESET_TO_UNICODE) {
         /* reset toUnicode: state=0 */
@@ -1280,10 +1286,10 @@
         cnv->fromUnicodeStatus=UCNV_NEED_TO_WRITE_BOM;
     }
 }
-
-static const UConverterSharedData _UTF16v2Data;
-
-static void
+U_CDECL_END
+extern const UConverterSharedData _UTF16v2Data;
+U_CDECL_BEGIN
+static void U_CALLCONV
 _UTF16Open(UConverter *cnv,
            UConverterLoadArgs *pArgs,
            UErrorCode *pErrorCode) {
@@ -1304,7 +1310,7 @@
     }
 }
 
-static const char *
+static const char *  U_CALLCONV
 _UTF16GetName(const UConverter *cnv) {
     if(UCNV_GET_VERSION(cnv)==0) {
         return "UTF-16";
@@ -1314,14 +1320,15 @@
         return "UTF-16,version=2";
     }
 }
-
-const UConverterSharedData _UTF16Data;
+U_CDECL_END
+extern const UConverterSharedData _UTF16Data;
 
 #define IS_UTF16BE(cnv) ((cnv)->sharedData==&_UTF16BEData)
 #define IS_UTF16LE(cnv) ((cnv)->sharedData==&_UTF16LEData)
 #define IS_UTF16(cnv) ((cnv)->sharedData==&_UTF16Data || (cnv)->sharedData==&_UTF16v2Data)
 
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _UTF16ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                            UErrorCode *pErrorCode) {
     UConverter *cnv=pArgs->converter;
@@ -1461,7 +1468,7 @@
     cnv->mode=state;
 }
 
-static UChar32
+static UChar32 U_CALLCONV
 _UTF16GetNextUChar(UConverterToUnicodeArgs *pArgs,
                    UErrorCode *pErrorCode) {
     switch(pArgs->converter->mode) {
@@ -1473,6 +1480,7 @@
         return UCNV_GET_NEXT_UCHAR_USE_TO_U;
     }
 }
+U_CDECL_END
 
 static const UConverterImpl _UTF16Impl = {
     UCNV_UTF16,
@@ -1557,7 +1565,7 @@
     { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
 };
 
-static const UConverterSharedData _UTF16v2Data =
+const UConverterSharedData _UTF16v2Data =
         UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16v2StaticData, &_UTF16v2Impl);
 
 #endif
diff --git a/source/common/ucnv_u32.c b/source/common/ucnv_u32.cpp
similarity index 98%
rename from source/common/ucnv_u32.c
rename to source/common/ucnv_u32.cpp
index 5a4d6fc..780e9d4 100644
--- a/source/common/ucnv_u32.c
+++ b/source/common/ucnv_u32.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_u32.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -42,8 +42,8 @@
 };
 
 /* UTF-32BE ----------------------------------------------------------------- */
-
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 T_UConverter_toUnicode_UTF32_BE(UConverterToUnicodeArgs * args,
                                 UErrorCode * err)
 {
@@ -122,7 +122,7 @@
     args->source = (const char *) mySource;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_toUnicode_UTF32_BE_OFFSET_LOGIC(UConverterToUnicodeArgs * args,
                                              UErrorCode * err)
 {
@@ -209,7 +209,7 @@
     args->offsets = myOffsets;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_fromUnicode_UTF32_BE(UConverterFromUnicodeArgs * args,
                                   UErrorCode * err)
 {
@@ -310,7 +310,7 @@
     args->source = mySource;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_fromUnicode_UTF32_BE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
                                                UErrorCode * err)
 {
@@ -417,7 +417,7 @@
     args->offsets = myOffsets;
 }
 
-static UChar32
+static UChar32 U_CALLCONV
 T_UConverter_getNextUChar_UTF32_BE(UConverterToUnicodeArgs* args,
                                    UErrorCode* err)
 {
@@ -461,7 +461,7 @@
     *err = U_ILLEGAL_CHAR_FOUND;
     return 0xffff;
 }
-
+U_CDECL_END
 static const UConverterImpl _UTF32BEImpl = {
     UCNV_UTF32_BigEndian,
 
@@ -504,8 +504,8 @@
         UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF32BEStaticData, &_UTF32BEImpl);
 
 /* UTF-32LE ---------------------------------------------------------- */
-
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 T_UConverter_toUnicode_UTF32_LE(UConverterToUnicodeArgs * args,
                                 UErrorCode * err)
 {
@@ -590,7 +590,7 @@
     args->source = (const char *) mySource;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_toUnicode_UTF32_LE_OFFSET_LOGIC(UConverterToUnicodeArgs * args,
                                              UErrorCode * err)
 {
@@ -687,7 +687,7 @@
     args->offsets = myOffsets;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_fromUnicode_UTF32_LE(UConverterFromUnicodeArgs * args,
                                   UErrorCode * err)
 {
@@ -796,7 +796,7 @@
     args->source = mySource;
 }
 
-static void
+static void U_CALLCONV
 T_UConverter_fromUnicode_UTF32_LE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
                                                UErrorCode * err)
 {
@@ -912,7 +912,7 @@
     args->offsets = myOffsets;
 }
 
-static UChar32
+static UChar32 U_CALLCONV
 T_UConverter_getNextUChar_UTF32_LE(UConverterToUnicodeArgs* args,
                                    UErrorCode* err)
 {
@@ -956,7 +956,7 @@
     *err = U_ILLEGAL_CHAR_FOUND;
     return 0xffff;
 }
-
+U_CDECL_END
 static const UConverterImpl _UTF32LEImpl = {
     UCNV_UTF32_LittleEndian,
 
@@ -1021,8 +1021,8 @@
  *
  * On output, emit U+FEFF as the first code point.
  */
-
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _UTF32Reset(UConverter *cnv, UConverterResetChoice choice) {
     if(choice<=UCNV_RESET_TO_UNICODE) {
         /* reset toUnicode: state=0 */
@@ -1034,16 +1034,18 @@
     }
 }
 
-static void
+static void U_CALLCONV
 _UTF32Open(UConverter *cnv,
            UConverterLoadArgs *pArgs,
            UErrorCode *pErrorCode) {
+    (void)pArgs;
+    (void)pErrorCode;
     _UTF32Reset(cnv, UCNV_RESET_BOTH);
 }
 
 static const char utf32BOM[8]={ 0, 0, (char)0xfe, (char)0xff,    (char)0xff, (char)0xfe, 0, 0 };
 
-static void
+static void U_CALLCONV
 _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                            UErrorCode *pErrorCode) {
     UConverter *cnv=pArgs->converter;
@@ -1184,7 +1186,7 @@
     cnv->mode=state;
 }
 
-static UChar32
+static UChar32 U_CALLCONV
 _UTF32GetNextUChar(UConverterToUnicodeArgs *pArgs,
                    UErrorCode *pErrorCode) {
     switch(pArgs->converter->mode) {
@@ -1196,7 +1198,7 @@
         return UCNV_GET_NEXT_UCHAR_USE_TO_U;
     }
 }
-
+U_CDECL_END
 static const UConverterImpl _UTF32Impl = {
     UCNV_UTF32,
 
diff --git a/source/common/ucnv_u7.c b/source/common/ucnv_u7.cpp
similarity index 98%
rename from source/common/ucnv_u7.c
rename to source/common/ucnv_u7.cpp
index c3b4d74..87ba8cf 100644
--- a/source/common/ucnv_u7.c
+++ b/source/common/ucnv_u7.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_u7.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -179,7 +179,8 @@
  *
  */
 
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _UTF7Reset(UConverter *cnv, UConverterResetChoice choice) {
     if(choice<=UCNV_RESET_TO_UNICODE) {
         /* reset toUnicode */
@@ -192,10 +193,11 @@
     }
 }
 
-static void
+static void U_CALLCONV
 _UTF7Open(UConverter *cnv,
           UConverterLoadArgs *pArgs,
           UErrorCode *pErrorCode) {
+    (void)pArgs;
     if(UCNV_GET_VERSION(cnv)<=1) {
         /* TODO(markus): Should just use cnv->options rather than copying the version number. */
         cnv->fromUnicodeStatus=UCNV_GET_VERSION(cnv)<<28;
@@ -205,7 +207,7 @@
     }
 }
 
-static void
+static void U_CALLCONV
 _UTF7ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                           UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -456,7 +458,7 @@
     return;
 }
 
-static void
+static void U_CALLCONV
 _UTF7FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                             UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -732,7 +734,7 @@
     return;
 }
 
-static const char *
+static const char * U_CALLCONV
 _UTF7GetName(const UConverter *cnv) {
     switch(cnv->fromUnicodeStatus>>28) {
     case 1:
@@ -741,6 +743,7 @@
         return "UTF-7";
     }
 }
+U_CDECL_END
 
 static const UConverterImpl _UTF7Impl={
     UCNV_UTF7,
@@ -887,7 +890,8 @@
  * ignore bits 31..25
  */
 
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _IMAPToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                           UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -1155,7 +1159,7 @@
     return;
 }
 
-static void
+static void U_CALLCONV
 _IMAPFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                             UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -1441,6 +1445,7 @@
     pArgs->offsets=offsets;
     return;
 }
+U_CDECL_END
 
 static const UConverterImpl _IMAPImpl={
     UCNV_IMAP_MAILBOX,
@@ -1462,7 +1467,9 @@
     NULL,
     NULL, /* we don't need writeSub() because we never call a callback at fromUnicode() */
     NULL,
-    ucnv_getCompleteUnicodeSet
+    ucnv_getCompleteUnicodeSet,
+    NULL,
+    NULL
 };
 
 static const UConverterStaticData _IMAPStaticData={
diff --git a/source/common/ucnv_u8.c b/source/common/ucnv_u8.cpp
similarity index 97%
rename from source/common/ucnv_u8.c
rename to source/common/ucnv_u8.cpp
index 0258347..4419381 100644
--- a/source/common/ucnv_u8.c
+++ b/source/common/ucnv_u8.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnv_u8.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -97,8 +97,8 @@
     return (UBool)(cnv->sharedData == &_CESU8Data);
 #endif
 }
-
-static void ucnv_toUnicode_UTF8 (UConverterToUnicodeArgs * args,
+U_CDECL_BEGIN
+static void  U_CALLCONV ucnv_toUnicode_UTF8 (UConverterToUnicodeArgs * args,
                                   UErrorCode * err)
 {
     UConverter *cnv = args->converter;
@@ -226,7 +226,7 @@
     args->source = (const char *) mySource;
 }
 
-static void ucnv_toUnicode_UTF8_OFFSETS_LOGIC (UConverterToUnicodeArgs * args,
+static void  U_CALLCONV ucnv_toUnicode_UTF8_OFFSETS_LOGIC (UConverterToUnicodeArgs * args,
                                                 UErrorCode * err)
 {
     UConverter *cnv = args->converter;
@@ -355,8 +355,9 @@
     args->source = (const char *) mySource;
     args->offsets = myOffsets;
 }
+U_CDECL_END
 
-U_CFUNC void ucnv_fromUnicode_UTF8 (UConverterFromUnicodeArgs * args,
+U_CFUNC void  U_CALLCONV ucnv_fromUnicode_UTF8 (UConverterFromUnicodeArgs * args,
                                     UErrorCode * err)
 {
     UConverter *cnv = args->converter;
@@ -470,7 +471,7 @@
     args->source = mySource;
 }
 
-U_CFUNC void ucnv_fromUnicode_UTF8_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
+U_CFUNC void  U_CALLCONV ucnv_fromUnicode_UTF8_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
                                                   UErrorCode * err)
 {
     UConverter *cnv = args->converter;
@@ -609,7 +610,8 @@
     args->offsets = myOffsets;
 }
 
-static UChar32 ucnv_getNextUChar_UTF8(UConverterToUnicodeArgs *args,
+U_CDECL_BEGIN
+static UChar32 U_CALLCONV ucnv_getNextUChar_UTF8(UConverterToUnicodeArgs *args,
                                                UErrorCode *err) {
     UConverter *cnv;
     const uint8_t *sourceInitial;
@@ -751,6 +753,7 @@
     *err = U_ILLEGAL_CHAR_FOUND;
     return 0xffff;
 } 
+U_CDECL_END
 
 /* UTF-8-from-UTF-8 conversion functions ------------------------------------ */
 
@@ -762,8 +765,9 @@
 static const UChar32
 utf8_offsets[7]={ 0, 0, 0x3080, 0xE2080, 0x3C82080 };
 
+U_CDECL_BEGIN
 /* "Convert" UTF-8 to UTF-8: Validate and copy. Modified from ucnv_DBCSFromUTF8(). */
-static void
+static void U_CALLCONV
 ucnv_UTF8FromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
                   UConverterToUnicodeArgs *pToUArgs,
                   UErrorCode *pErrorCode) {
@@ -1008,6 +1012,8 @@
     pFromUArgs->target=(char *)target;
 }
 
+U_CDECL_END
+
 /* UTF-8 converter data ----------------------------------------------------- */
 
 static const UConverterImpl _UTF8Impl={
diff --git a/source/common/ucnvbocu.cpp b/source/common/ucnvbocu.cpp
index 69763ca..5b66c50 100644
--- a/source/common/ucnvbocu.cpp
+++ b/source/common/ucnvbocu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnvbocu.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnvdisp.c b/source/common/ucnvdisp.cpp
similarity index 97%
rename from source/common/ucnvdisp.c
rename to source/common/ucnvdisp.cpp
index e30f665..ac86b98 100644
--- a/source/common/ucnvdisp.c
+++ b/source/common/ucnvdisp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ucnvhz.c b/source/common/ucnvhz.cpp
similarity index 98%
rename from source/common/ucnvhz.c
rename to source/common/ucnvhz.cpp
index d355516..79a83d7 100644
--- a/source/common/ucnvhz.c
+++ b/source/common/ucnvhz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnvhz.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -67,8 +67,8 @@
 }UConverterDataHZ;
 
 
-
-static void 
+U_CDECL_BEGIN
+static void  U_CALLCONV
 _HZOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
     UConverter *gbConverter;
     if(pArgs->onlyTestIsLoadable) {
@@ -94,7 +94,7 @@
     }
 }
 
-static void 
+static void  U_CALLCONV
 _HZClose(UConverter *cnv){
     if(cnv->extraInfo != NULL) {
         ucnv_close (((UConverterDataHZ *) (cnv->extraInfo))->gbConverter);
@@ -105,7 +105,7 @@
     }
 }
 
-static void 
+static void  U_CALLCONV
 _HZReset(UConverter *cnv, UConverterResetChoice choice){
     if(choice<=UCNV_RESET_TO_UNICODE) {
         cnv->toUnicodeStatus = 0;
@@ -152,7 +152,7 @@
 */
 
 
-static void 
+static void  U_CALLCONV
 UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                                                             UErrorCode* err){
     char tempBuf[2];
@@ -332,7 +332,7 @@
 }
 
 
-static void 
+static void  U_CALLCONV
 UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
                                                       UErrorCode * err){
     const UChar *mySource = args->source;
@@ -496,7 +496,7 @@
     myConverterData->isTargetUCharDBCS = isTargetUCharDBCS;
 }
 
-static void
+static void U_CALLCONV
 _HZ_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *err) {
     UConverter *cnv = args->converter;
     UConverterDataHZ *convData=(UConverterDataHZ *) cnv->extraInfo;
@@ -535,7 +535,7 @@
 };
 
 
-static UConverter * 
+static UConverter *  U_CALLCONV
 _HZ_SafeClone(const UConverter *cnv, 
               void *stackBuffer, 
               int32_t *pBufferSize, 
@@ -568,7 +568,7 @@
     return &localClone->cnv;
 }
 
-static void
+static void U_CALLCONV
 _HZ_GetUnicodeSet(const UConverter *cnv,
                   const USetAdder *sa,
                   UConverterUnicodeSet which,
@@ -582,7 +582,7 @@
         sa, which, UCNV_SET_FILTER_HZ,
         pErrorCode);
 }
-
+U_CDECL_END
 static const UConverterImpl _HZImpl={
 
     UCNV_HZ,
@@ -604,7 +604,9 @@
     NULL,
     _HZ_WriteSub,
     _HZ_SafeClone,
-    _HZ_GetUnicodeSet
+    _HZ_GetUnicodeSet,
+    NULL,
+    NULL
 };
 
 static const UConverterStaticData _HZStaticData={
diff --git a/source/common/ucnvisci.c b/source/common/ucnvisci.cpp
similarity index 98%
rename from source/common/ucnvisci.c
rename to source/common/ucnvisci.cpp
index b520fc2..27a3a31 100644
--- a/source/common/ucnvisci.c
+++ b/source/common/ucnvisci.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnvisci.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -186,8 +186,9 @@
         return (UBool)(pnjMap[c - 0xa00] >> 1);
     }
 }
-
-static void _ISCIIOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode) {
+U_CDECL_BEGIN
+static void  U_CALLCONV
+_ISCIIOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode) {
     if(pArgs->onlyTestIsLoadable) {
         return;
     }
@@ -231,7 +232,8 @@
     }
 }
 
-static void _ISCIIClose(UConverter *cnv) {
+static void U_CALLCONV
+_ISCIIClose(UConverter *cnv) {
     if (cnv->extraInfo!=NULL) {
         if (!cnv->isExtraLocal) {
             uprv_free(cnv->extraInfo);
@@ -240,7 +242,8 @@
     }
 }
 
-static const char* _ISCIIgetName(const UConverter* cnv) {
+static const char*  U_CALLCONV
+_ISCIIgetName(const UConverter* cnv) {
     if (cnv->extraInfo) {
         UConverterDataISCII* myData= (UConverterDataISCII*)cnv->extraInfo;
         return myData->name;
@@ -248,7 +251,8 @@
     return NULL;
 }
 
-static void _ISCIIReset(UConverter *cnv, UConverterResetChoice choice) {
+static void U_CALLCONV
+_ISCIIReset(UConverter *cnv, UConverterResetChoice choice) {
     UConverterDataISCII* data =(UConverterDataISCII *) (cnv->extraInfo);
     if (choice<=UCNV_RESET_TO_UNICODE) {
         cnv->toUnicodeStatus = missingCharMarker;
@@ -888,8 +892,8 @@
  *    Soft Halant :
  *                      <HALANT> + <ZWJ>
  */
-
-static void UConverter_fromUnicode_ISCII_OFFSETS_LOGIC(
+static void U_CALLCONV
+UConverter_fromUnicode_ISCII_OFFSETS_LOGIC(
         UConverterFromUnicodeArgs * args, UErrorCode * err) {
     const UChar *source = args->source;
     const UChar *sourceLimit = args->sourceLimit;
@@ -1172,7 +1176,8 @@
  *
  */
 
-static void UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err) {
+static void U_CALLCONV
+UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCode* err) {
     const char *source = ( char *) args->source;
     UChar *target = args->target;
     const char *sourceLimit = args->sourceLimit;
@@ -1432,7 +1437,7 @@
             if (*toUnicodeStatus != missingCharMarker) {
                 /* Check to make sure that consonant clusters are handled correct for Gurmukhi script. */
                 if (data->currentDeltaToUnicode == PNJ_DELTA && data->prevToUnicodeStatus != 0 && isPNJConsonant(data->prevToUnicodeStatus) &&
-                        (*toUnicodeStatus + PNJ_DELTA) == PNJ_SIGN_VIRAMA && (targetUniChar + PNJ_DELTA) == data->prevToUnicodeStatus) {
+                        (*toUnicodeStatus + PNJ_DELTA) == PNJ_SIGN_VIRAMA && ((UChar32)(targetUniChar + PNJ_DELTA) == data->prevToUnicodeStatus)) {
                     /* Consonant clusters C + HALANT + C should be encoded as ADHAK + C */
                     offset = (int)(source-args->source - 3);
                     tempTargetUniChar = PNJ_ADHAK; /* This is necessary to avoid some compiler warnings. */
@@ -1522,7 +1527,7 @@
     UConverterDataISCII mydata;
 };
 
-static UConverter *
+static UConverter * U_CALLCONV
 _ISCII_SafeClone(const UConverter *cnv,
               void *stackBuffer,
               int32_t *pBufferSize,
@@ -1550,12 +1555,15 @@
     return &localClone->cnv;
 }
 
-static void
+static void U_CALLCONV
 _ISCIIGetUnicodeSet(const UConverter *cnv,
                     const USetAdder *sa,
                     UConverterUnicodeSet which,
                     UErrorCode *pErrorCode)
 {
+    (void)cnv;
+    (void)which;
+    (void)pErrorCode;
     int32_t idx, script;
     uint8_t mask;
 
@@ -1576,7 +1584,7 @@
     sa->add(sa->set, ZWNJ);
     sa->add(sa->set, ZWJ);
 }
-
+U_CDECL_END
 static const UConverterImpl _ISCIIImpl={
 
     UCNV_ISCII,
@@ -1598,7 +1606,9 @@
     _ISCIIgetName,
     NULL,
     _ISCII_SafeClone,
-    _ISCIIGetUnicodeSet
+    _ISCIIGetUnicodeSet,
+    NULL,
+    NULL
 };
 
 static const UConverterStaticData _ISCIIStaticData={
diff --git a/source/common/ucnvlat1.c b/source/common/ucnvlat1.cpp
similarity index 97%
rename from source/common/ucnvlat1.c
rename to source/common/ucnvlat1.cpp
index f17777f..8aa5456 100644
--- a/source/common/ucnvlat1.c
+++ b/source/common/ucnvlat1.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* 
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ucnvlat1.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -30,7 +30,8 @@
 /* ISO 8859-1 --------------------------------------------------------------- */
 
 /* This is a table-less and callback-less version of ucnv_MBCSSingleToBMPWithOffsets(). */
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _Latin1ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                             UErrorCode *pErrorCode) {
     const uint8_t *source;
@@ -116,7 +117,7 @@
 }
 
 /* This is a table-less and callback-less version of ucnv_MBCSSingleGetNextUChar(). */
-static UChar32
+static UChar32 U_CALLCONV
 _Latin1GetNextUChar(UConverterToUnicodeArgs *pArgs,
                     UErrorCode *pErrorCode) {
     const uint8_t *source=(const uint8_t *)pArgs->source;
@@ -131,7 +132,7 @@
 }
 
 /* This is a table-less version of ucnv_MBCSSingleFromBMPWithOffsets(). */
-static void
+static void U_CALLCONV
 _Latin1FromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                               UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -318,7 +319,7 @@
 }
 
 /* Convert UTF-8 to Latin-1. Adapted from ucnv_SBCSFromUTF8(). */
-static void
+static void U_CALLCONV
 ucnv_Latin1FromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
                     UConverterToUnicodeArgs *pToUArgs,
                     UErrorCode *pErrorCode) {
@@ -416,13 +417,18 @@
     pFromUArgs->target=(char *)target;
 }
 
-static void
+static void U_CALLCONV
 _Latin1GetUnicodeSet(const UConverter *cnv,
                      const USetAdder *sa,
                      UConverterUnicodeSet which,
                      UErrorCode *pErrorCode) {
+    (void)cnv;
+    (void)which;
+    (void)pErrorCode;
     sa->addRange(sa->set, 0, 0xff);
 }
+U_CDECL_END
+
 
 static const UConverterImpl _Latin1Impl={
     UCNV_LATIN_1,
@@ -465,8 +471,9 @@
 
 /* US-ASCII ----------------------------------------------------------------- */
 
+U_CDECL_BEGIN
 /* This is a table-less version of ucnv_MBCSSingleToBMPWithOffsets(). */
-static void
+static void U_CALLCONV
 _ASCIIToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                            UErrorCode *pErrorCode) {
     const uint8_t *source, *sourceLimit;
@@ -575,7 +582,7 @@
 }
 
 /* This is a table-less version of ucnv_MBCSSingleGetNextUChar(). */
-static UChar32
+static UChar32 U_CALLCONV
 _ASCIIGetNextUChar(UConverterToUnicodeArgs *pArgs,
                    UErrorCode *pErrorCode) {
     const uint8_t *source;
@@ -602,7 +609,7 @@
 }
 
 /* "Convert" UTF-8 to US-ASCII: Validate and copy. */
-static void
+static void U_CALLCONV
 ucnv_ASCIIFromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
                    UConverterToUnicodeArgs *pToUArgs,
                    UErrorCode *pErrorCode) {
@@ -690,13 +697,17 @@
     pFromUArgs->target=(char *)target;
 }
 
-static void
+static void U_CALLCONV
 _ASCIIGetUnicodeSet(const UConverter *cnv,
                     const USetAdder *sa,
                     UConverterUnicodeSet which,
                     UErrorCode *pErrorCode) {
+    (void)cnv;
+    (void)which;
+    (void)pErrorCode;
     sa->addRange(sa->set, 0, 0x7f);
 }
+U_CDECL_END
 
 static const UConverterImpl _ASCIIImpl={
     UCNV_US_ASCII,
diff --git a/source/common/ucnvmbcs.cpp b/source/common/ucnvmbcs.cpp
index ffbb9af..7f37eee 100644
--- a/source/common/ucnvmbcs.cpp
+++ b/source/common/ucnvmbcs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnvmbcs.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnvmbcs.h b/source/common/ucnvmbcs.h
index 5bbbae7..209cdc5 100644
--- a/source/common/ucnvmbcs.h
+++ b/source/common/ucnvmbcs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnvmbcs.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucnvscsu.c b/source/common/ucnvscsu.cpp
similarity index 98%
rename from source/common/ucnvscsu.c
rename to source/common/ucnvscsu.cpp
index 9849cde..74b5722 100644
--- a/source/common/ucnvscsu.c
+++ b/source/common/ucnvscsu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ucnvscsu.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -154,8 +154,8 @@
 };
 
 /* SCSU setup functions ----------------------------------------------------- */
-
-static void
+U_CDECL_BEGIN
+static void U_CALLCONV
 _SCSUReset(UConverter *cnv, UConverterResetChoice choice) {
     SCSUData *scsu=(SCSUData *)cnv->extraInfo;
 
@@ -191,7 +191,7 @@
     }
 }
 
-static void
+static void U_CALLCONV
 _SCSUOpen(UConverter *cnv,
           UConverterLoadArgs *pArgs,
           UErrorCode *pErrorCode) {
@@ -216,7 +216,7 @@
     cnv->subCharLen=-1;
 }
 
-static void
+static void U_CALLCONV
 _SCSUClose(UConverter *cnv) {
     if(cnv->extraInfo!=NULL) {
         if(!cnv->isExtraLocal) {
@@ -228,7 +228,7 @@
 
 /* SCSU-to-Unicode conversion functions ------------------------------------- */
 
-static void
+static void U_CALLCONV
 _SCSUToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
                           UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -582,7 +582,7 @@
  * re-copy the original function and remove the variables
  * offsets, sourceIndex, and nextSourceIndex.
  */
-static void
+static void U_CALLCONV
 _SCSUToUnicode(UConverterToUnicodeArgs *pArgs,
                UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -866,7 +866,7 @@
     pArgs->target=target;
     return;
 }
-
+U_CDECL_END
 /* SCSU-from-Unicode conversion functions ----------------------------------- */
 
 /*
@@ -989,7 +989,7 @@
         return -1;
     }
 }
-
+U_CDECL_BEGIN
 /*
  * Idea for compression:
  *  - save SCSUData and other state before really starting work
@@ -1007,7 +1007,7 @@
  *  - Only replace the result after an SDX or SCU?
  */
 
-static void
+static void U_CALLCONV
 _SCSUFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
                             UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -1515,7 +1515,7 @@
  * re-copy the original function and remove the variables
  * offsets, sourceIndex, and nextSourceIndex.
  */
-static void
+static void U_CALLCONV
 _SCSUFromUnicode(UConverterFromUnicodeArgs *pArgs,
                  UErrorCode *pErrorCode) {
     UConverter *cnv;
@@ -1949,7 +1949,7 @@
 
 /* miscellaneous ------------------------------------------------------------ */
 
-static const char *
+static const char *  U_CALLCONV
 _SCSUGetName(const UConverter *cnv) {
     SCSUData *scsu=(SCSUData *)cnv->extraInfo;
 
@@ -1968,7 +1968,7 @@
     SCSUData mydata;
 };
 
-static UConverter * 
+static UConverter *  U_CALLCONV
 _SCSUSafeClone(const UConverter *cnv, 
                void *stackBuffer, 
                int32_t *pBufferSize, 
@@ -1995,7 +1995,7 @@
 
     return &localClone->cnv;
 }
-
+U_CDECL_END
 
 static const UConverterImpl _SCSUImpl={
     UCNV_SCSU,
@@ -2017,7 +2017,9 @@
     _SCSUGetName,
     NULL,
     _SCSUSafeClone,
-    ucnv_getCompleteUnicodeSet
+    ucnv_getCompleteUnicodeSet,
+    NULL,
+    NULL
 };
 
 static const UConverterStaticData _SCSUStaticData={
diff --git a/source/common/ucnvsel.cpp b/source/common/ucnvsel.cpp
index 573e8b0..ba062b3 100644
--- a/source/common/ucnvsel.cpp
+++ b/source/common/ucnvsel.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/ucol_data.h b/source/common/ucol_data.h
index cdd328e..83f54ab 100644
--- a/source/common/ucol_data.h
+++ b/source/common/ucol_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucol_data.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucol_swp.cpp b/source/common/ucol_swp.cpp
index 151800d..1822705 100644
--- a/source/common/ucol_swp.cpp
+++ b/source/common/ucol_swp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucol_swp.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucol_swp.h b/source/common/ucol_swp.h
index 422436d..fd8be9a 100644
--- a/source/common/ucol_swp.h
+++ b/source/common/ucol_swp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucol_swp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ucurr.cpp b/source/common/ucurr.cpp
index db38173..885ca3a 100644
--- a/source/common/ucurr.cpp
+++ b/source/common/ucurr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -1030,7 +1030,8 @@
                 const UnicodeString *symbol;
                 while ((symbol = iter.next()) != NULL) {
                     (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso;
-                    (*currencySymbols)[*total_currency_symbol_count].currencyName = (UChar*) symbol->getBuffer();
+                    (*currencySymbols)[*total_currency_symbol_count].currencyName =
+                        const_cast<UChar*>(symbol->getBuffer());
                     (*currencySymbols)[*total_currency_symbol_count].flag = 0;
                     (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = symbol->length();
                 }
diff --git a/source/common/ucurrimp.h b/source/common/ucurrimp.h
index b35d6f4..6e468fd 100644
--- a/source/common/ucurrimp.h
+++ b/source/common/ucurrimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/udata.cpp b/source/common/udata.cpp
index 9460746..10e9998 100644
--- a/source/common/udata.cpp
+++ b/source/common/udata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  udata.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -110,8 +110,12 @@
 static UHashtable  *gCommonDataCache = NULL;  /* Global hash table of opened ICU data files.  */
 static icu::UInitOnce gCommonDataCacheInitOnce = U_INITONCE_INITIALIZER;
 
+#if U_PLATFORM_HAS_WINUWP_API == 0 
 static UDataFileAccess  gDataFileAccess = UDATA_DEFAULT_ACCESS;  // Access not synchronized.
                                                                  // Modifying is documented as thread-unsafe.
+#else
+static UDataFileAccess  gDataFileAccess = UDATA_NO_FILES;        // Windows UWP looks in one spot explicitly
+#endif
 
 static UBool U_CALLCONV
 udata_cleanup(void)
@@ -619,12 +623,14 @@
 
 /*----------------------------------------------------------------------*
  *                                                                      *
- *  Add a static reference to the common data  library                  *
+ *  Add a static reference to the common data library                   *
  *   Unless overridden by an explicit udata_setCommonData, this will be *
  *      our common data.                                                *
  *                                                                      *
  *----------------------------------------------------------------------*/
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
 extern "C" const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT;
+#endif
 
 /*
  * This would be a good place for weak-linkage declarations of
@@ -672,6 +678,7 @@
             if(gCommonICUDataArray[commonDataIndex] != NULL) {
                 return gCommonICUDataArray[commonDataIndex];
             }
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
             int32_t i;
             for(i = 0; i < commonDataIndex; ++i) {
                 if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT.hdr) {
@@ -679,6 +686,7 @@
                     return NULL;
                 }
             }
+#endif
         }
 
         /* Add the linked-in data to the list. */
@@ -694,11 +702,13 @@
             setCommonICUDataPointer(uprv_getICUData_conversion(), FALSE, pErrorCode);
         }
         */
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
         setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT.hdr, FALSE, pErrorCode);
         {
             Mutex lock;
             return gCommonICUDataArray[commonDataIndex];
         }
+#endif
     }
 
 
@@ -1245,9 +1255,14 @@
     fprintf(stderr, " tocEntryPath = %s\n", tocEntryName.data());
 #endif
 
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
     if(path == NULL) {
         path = COMMON_DATA_NAME; /* "icudt26e" */
     }
+#else
+    // Windows UWP expects only a single data file.
+    path = COMMON_DATA_NAME; /* "icudt26e" */
+#endif
 
     /************************ Begin loop looking for ind. files ***************/
 #ifdef UDATA_DEBUG
diff --git a/source/common/udatamem.c b/source/common/udatamem.cpp
similarity index 97%
rename from source/common/udatamem.c
rename to source/common/udatamem.cpp
index daa9193..6bf7c01 100644
--- a/source/common/udatamem.c
+++ b/source/common/udatamem.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -44,7 +44,7 @@
     if (U_FAILURE(*pErr)) {
         return NULL;
     }
-    This = uprv_malloc(sizeof(UDataMemory));
+    This = (UDataMemory *)uprv_malloc(sizeof(UDataMemory));
     if (This == NULL) {
         *pErr = U_MEMORY_ALLOCATION_ERROR; }
     else {
diff --git a/source/common/udatamem.h b/source/common/udatamem.h
index 385a777..a05dd69 100644
--- a/source/common/udatamem.h
+++ b/source/common/udatamem.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/udataswp.c b/source/common/udataswp.cpp
similarity index 98%
rename from source/common/udataswp.c
rename to source/common/udataswp.cpp
index f47ac1f..86f302b 100644
--- a/source/common/udataswp.c
+++ b/source/common/udataswp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  udataswp.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -374,7 +374,7 @@
     }
 
     /* allocate the swapper */
-    swapper=uprv_malloc(sizeof(UDataSwapper));
+    swapper=(UDataSwapper *)uprv_malloc(sizeof(UDataSwapper));
     if(swapper==NULL) {
         *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
         return NULL;
@@ -435,7 +435,7 @@
     }
 
     pHeader=(const DataHeader *)data;
-    if( (length>=0 && length<sizeof(DataHeader)) ||
+    if( (length>=0 && length<(int32_t)sizeof(DataHeader)) ||
         pHeader->dataHeader.magic1!=0xda ||
         pHeader->dataHeader.magic2!=0x27 ||
         pHeader->info.sizeofUChar!=2
diff --git a/source/common/udataswp.h b/source/common/udataswp.h
index 07e06c2..5303870 100644
--- a/source/common/udataswp.h
+++ b/source/common/udataswp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  udataswp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uelement.h b/source/common/uelement.h
index 5bd7ad3..05f36a0 100644
--- a/source/common/uelement.h
+++ b/source/common/uelement.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  uelement.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uenum.c b/source/common/uenum.cpp
similarity index 97%
rename from source/common/uenum.c
rename to source/common/uenum.cpp
index 71c06b5..11d895e 100644
--- a/source/common/uenum.c
+++ b/source/common/uenum.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uenum.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
diff --git a/source/common/uenumimp.h b/source/common/uenumimp.h
index 5d01f01..9c9df75 100644
--- a/source/common/uenumimp.h
+++ b/source/common/uenumimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uenumimp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
diff --git a/source/common/uhash.c b/source/common/uhash.cpp
similarity index 99%
rename from source/common/uhash.c
rename to source/common/uhash.cpp
index 282f89f..6bde9e5 100644
--- a/source/common/uhash.c
+++ b/source/common/uhash.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uhash.h b/source/common/uhash.h
index e53ce73..6369f8e 100644
--- a/source/common/uhash.h
+++ b/source/common/uhash.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uhash_us.cpp b/source/common/uhash_us.cpp
index ac76c1b..ef482c2 100644
--- a/source/common/uhash_us.cpp
+++ b/source/common/uhash_us.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uidna.cpp b/source/common/uidna.cpp
index e01c9ae..7cc97a9 100644
--- a/source/common/uidna.cpp
+++ b/source/common/uidna.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -8,7 +8,7 @@
  *
  *******************************************************************************
  *   file name:  uidna.cpp
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/uinit.cpp b/source/common/uinit.cpp
index 34e82a3..624431b 100644
--- a/source/common/uinit.cpp
+++ b/source/common/uinit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  uinit.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uinvchar.c b/source/common/uinvchar.cpp
similarity index 98%
rename from source/common/uinvchar.c
rename to source/common/uinvchar.cpp
index 79dd051..c478e36 100644
--- a/source/common/uinvchar.c
+++ b/source/common/uinvchar.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uinvchar.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -451,6 +451,7 @@
 uprv_compareInvAscii(const UDataSwapper *ds,
                      const char *outString, int32_t outLength,
                      const UChar *localString, int32_t localLength) {
+    (void)ds;
     int32_t minLength;
     UChar32 c1, c2;
     uint8_t c;
@@ -496,6 +497,7 @@
 uprv_compareInvEbcdic(const UDataSwapper *ds,
                       const char *outString, int32_t outLength,
                       const UChar *localString, int32_t localLength) {
+    (void)ds;
     int32_t minLength;
     UChar32 c1, c2;
     uint8_t c;
diff --git a/source/common/uinvchar.h b/source/common/uinvchar.h
index 19a3b26..c4f9f88 100644
--- a/source/common/uinvchar.h
+++ b/source/common/uinvchar.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uinvchar.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -64,7 +64,7 @@
  */
 U_INTERNAL inline UBool U_EXPORT2
 uprv_isInvariantUnicodeString(const icu::UnicodeString &s) {
-    return uprv_isInvariantUString(s.getBuffer(), s.length());
+    return uprv_isInvariantUString(icu::toUCharPtr(s.getBuffer()), s.length());
 }
 
 #endif  /* __cplusplus */
diff --git a/source/common/uiter.cpp b/source/common/uiter.cpp
index 26ca877..b9252d8 100644
--- a/source/common/uiter.cpp
+++ b/source/common/uiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uiter.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ulist.c b/source/common/ulist.cpp
similarity index 94%
rename from source/common/ulist.c
rename to source/common/ulist.cpp
index 7f7fdd9..b3f3fd8 100644
--- a/source/common/ulist.c
+++ b/source/common/ulist.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -29,7 +29,6 @@
     UListNode *tail;
     
     int32_t size;
-    int32_t currentIndex;
 };
 
 static void ulist_addFirstItem(UList *list, UListNode *newItem);
@@ -51,7 +50,6 @@
     newList->head = NULL;
     newList->tail = NULL;
     newList->size = 0;
-    newList->currentIndex = -1;
     
     return newList;
 }
@@ -80,8 +78,9 @@
     } else {
         p->next->previous = p->previous;
     }
-    list->curr = NULL;
-    list->currentIndex = 0;
+    if (p == list->curr) {
+        list->curr = p->next;
+    }
     --list->size;
     if (p->forceDelete) {
         uprv_free(p->data);
@@ -150,7 +149,6 @@
         newItem->next = list->head;
         list->head->previous = newItem;
         list->head = newItem;
-        list->currentIndex++;
     }
     
     list->size++;
@@ -160,7 +158,7 @@
     if (list != NULL) {
         const UListNode *pointer;
         for (pointer = list->head; pointer != NULL; pointer = pointer->next) {
-            if (length == uprv_strlen(pointer->data)) {
+            if (length == (int32_t)uprv_strlen((const char *)pointer->data)) {
                 if (uprv_memcmp(data, pointer->data, length) == 0) {
                     return TRUE;
                 }
@@ -174,7 +172,7 @@
     if (list != NULL) {
         UListNode *pointer;
         for (pointer = list->head; pointer != NULL; pointer = pointer->next) {
-            if (uprv_strcmp(data, pointer->data) == 0) {
+            if (uprv_strcmp(data, (const char *)pointer->data) == 0) {
                 ulist_removeItem(list, pointer);
                 // Remove only the first occurrence, like Java LinkedList.remove(Object).
                 return TRUE;
@@ -193,7 +191,6 @@
     
     curr = list->curr;
     list->curr = curr->next;
-    list->currentIndex++;
     
     return curr->data;
 }
@@ -209,7 +206,6 @@
 U_CAPI void U_EXPORT2 ulist_resetList(UList *list) {
     if (list != NULL) {
         list->curr = list->head;
-        list->currentIndex = 0;
     }
 }
 
@@ -272,4 +268,3 @@
 U_CAPI UList * U_EXPORT2 ulist_getListFromEnum(UEnumeration *en) {
     return (UList *)(en->context);
 }
-
diff --git a/source/common/ulist.h b/source/common/ulist.h
index 6f292bf..de58a4a 100644
--- a/source/common/ulist.h
+++ b/source/common/ulist.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/ulistformatter.cpp b/source/common/ulistformatter.cpp
index 98aa50e..c140c78 100644
--- a/source/common/ulistformatter.cpp
+++ b/source/common/ulistformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/common/uloc.cpp b/source/common/uloc.cpp
index 2a02b27..4d854bb 100644
--- a/source/common/uloc.cpp
+++ b/source/common/uloc.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -44,10 +44,11 @@
 #include "uarrsort.h"
 #include "uenumimp.h"
 #include "uassert.h"
+#include "charstr.h"
 
 #include <stdio.h> /* for sprintf */
 
-using namespace icu;
+U_NAMESPACE_USE
 
 /* ### Declarations **************************************************/
 
@@ -101,7 +102,7 @@
     "aa",  "ab",  "ace", "ach", "ada", "ady", "ae",  "aeb",
     "af",  "afh", "agq", "ain", "ak",  "akk", "akz", "ale",
     "aln", "alt", "am",  "an",  "ang", "anp", "ar",  "arc",
-    "arn", "aro", "arp", "arq", "arw", "ary", "arz", "as",
+    "arn", "aro", "arp", "arq", "ars", "arw", "ary", "arz", "as",
     "asa", "ase", "ast", "av",  "avk", "awa", "ay",  "az",
     "ba",  "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
     "be",  "bej", "bem", "bew", "bez", "bfd", "bfq", "bg",
@@ -216,7 +217,7 @@
     "aar", "abk", "ace", "ach", "ada", "ady", "ave", "aeb",
     "afr", "afh", "agq", "ain", "aka", "akk", "akz", "ale",
     "aln", "alt", "amh", "arg", "ang", "anp", "ara", "arc",
-    "arn", "aro", "arp", "arq", "arw", "ary", "arz", "asm",
+    "arn", "aro", "arp", "arq", "ars", "arw", "ary", "arz", "asm",
     "asa", "ase", "ast", "ava", "avk", "awa", "aym", "aze",
     "bak", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj",
     "bel", "bej", "bem", "bew", "bez", "bfd", "bfq", "bul",
@@ -560,6 +561,10 @@
 }
 
 /* ### Keywords **************************************************/
+#define UPRV_ISDIGIT(c) (((c) >= '0') && ((c) <= '9'))
+#define UPRV_ISALPHANUM(c) (uprv_isASCIILetter(c) || UPRV_ISDIGIT(c) )
+/* Punctuation/symbols allowed in legacy key values */
+#define UPRV_OK_VALUE_PUNCTUATION(c) ((c) == '_' || (c) == '-' || (c) == '+' || (c) == '/')
 
 #define ULOC_KEYWORD_BUFFER_LEN 25
 #define ULOC_MAX_NO_KEYWORDS 25
@@ -596,20 +601,26 @@
  */
 static int32_t locale_canonKeywordName(char *buf, const char *keywordName, UErrorCode *status)
 {
-  int32_t i;
-  int32_t keywordNameLen = (int32_t)uprv_strlen(keywordName);
+  int32_t keywordNameLen = 0;
 
-  if(keywordNameLen >= ULOC_KEYWORD_BUFFER_LEN) {
-    /* keyword name too long for internal buffer */
-    *status = U_INTERNAL_PROGRAM_ERROR;
-          return 0;
+  for (; *keywordName != 0; keywordName++) {
+    if (!UPRV_ISALPHANUM(*keywordName)) {
+      *status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */
+      return 0;
+    }
+    if (keywordNameLen < ULOC_KEYWORD_BUFFER_LEN - 1) {
+      buf[keywordNameLen++] = uprv_tolower(*keywordName);
+    } else {
+      /* keyword name too long for internal buffer */
+      *status = U_INTERNAL_PROGRAM_ERROR;
+      return 0;
+    }
   }
-
-  /* normalize the keyword name */
-  for(i = 0; i < keywordNameLen; i++) {
-    buf[i] = uprv_tolower(keywordName[i]);
+  if (keywordNameLen == 0) {
+    *status = U_ILLEGAL_ARGUMENT_ERROR; /* empty keyword name */
+    return 0;
   }
-  buf[i] = 0;
+  buf[keywordNameLen] = 0; /* terminate */
 
   return keywordNameLen;
 }
@@ -837,23 +848,15 @@
     const char* nextSeparator = NULL;
     char keywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
     char localeKeywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
-    int32_t i = 0;
     int32_t result = 0;
 
     if(status && U_SUCCESS(*status) && localeID) {
       char tempBuffer[ULOC_FULLNAME_CAPACITY];
       const char* tmpLocaleID;
 
-      if (_hasBCP47Extension(localeID)) {
-          _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status);
-      } else {
-          tmpLocaleID=localeID;
-      }
-
-      startSearchHere = uprv_strchr(tmpLocaleID, '@'); /* TODO: REVISIT: shouldn't this be locale_getKeywordsStart ? */
-      if(startSearchHere == NULL) {
-          /* no keywords, return at once */
-          return 0;
+      if (keywordName == NULL || keywordName[0] == 0) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
       }
 
       locale_canonKeywordName(keywordNameBuffer, keywordName, status);
@@ -861,63 +864,92 @@
         return 0;
       }
 
+      if (_hasBCP47Extension(localeID)) {
+          _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status);
+      } else {
+          tmpLocaleID=localeID;
+      }
+
+      startSearchHere = locale_getKeywordsStart(tmpLocaleID);
+      if(startSearchHere == NULL) {
+          /* no keywords, return at once */
+          return 0;
+      }
+
       /* find the first keyword */
       while(startSearchHere) {
-          startSearchHere++;
-          /* skip leading spaces (allowed?) */
+          const char* keyValueTail;
+          int32_t keyValueLen;
+
+          startSearchHere++; /* skip @ or ; */
+          nextSeparator = uprv_strchr(startSearchHere, '=');
+          if(!nextSeparator) {
+              *status = U_ILLEGAL_ARGUMENT_ERROR; /* key must have =value */
+              return 0;
+          }
+          /* strip leading & trailing spaces (TC decided to tolerate these) */
           while(*startSearchHere == ' ') {
               startSearchHere++;
           }
-          nextSeparator = uprv_strchr(startSearchHere, '=');
-          /* need to normalize both keyword and keyword name */
-          if(!nextSeparator) {
-              break;
+          keyValueTail = nextSeparator;
+          while (keyValueTail > startSearchHere && *(keyValueTail-1) == ' ') {
+              keyValueTail--;
           }
-          if(nextSeparator - startSearchHere >= ULOC_KEYWORD_BUFFER_LEN) {
+          /* now keyValueTail points to first char after the keyName */
+          /* copy & normalize keyName from locale */
+          if (startSearchHere == keyValueTail) {
+              *status = U_ILLEGAL_ARGUMENT_ERROR; /* empty keyword name in passed-in locale */
+              return 0;
+          }
+          keyValueLen = 0;
+          while (startSearchHere < keyValueTail) {
+            if (!UPRV_ISALPHANUM(*startSearchHere)) {
+              *status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */
+              return 0;
+            }
+            if (keyValueLen < ULOC_KEYWORD_BUFFER_LEN - 1) {
+              localeKeywordNameBuffer[keyValueLen++] = uprv_tolower(*startSearchHere++);
+            } else {
               /* keyword name too long for internal buffer */
               *status = U_INTERNAL_PROGRAM_ERROR;
               return 0;
+            }
           }
-          for(i = 0; i < nextSeparator - startSearchHere; i++) {
-              localeKeywordNameBuffer[i] = uprv_tolower(startSearchHere[i]);
-          }
-          /* trim trailing spaces */
-          while(startSearchHere[i-1] == ' ') {
-              i--;
-              U_ASSERT(i>=0);
-          }
-          localeKeywordNameBuffer[i] = 0;
+          localeKeywordNameBuffer[keyValueLen] = 0; /* terminate */
 
           startSearchHere = uprv_strchr(nextSeparator, ';');
 
           if(uprv_strcmp(keywordNameBuffer, localeKeywordNameBuffer) == 0) {
-              nextSeparator++;
+               /* current entry matches the keyword. */
+             nextSeparator++; /* skip '=' */
+              /* First strip leading & trailing spaces (TC decided to tolerate these) */
               while(*nextSeparator == ' ') {
+                nextSeparator++;
+              }
+              keyValueTail = (startSearchHere)? startSearchHere: nextSeparator + uprv_strlen(nextSeparator);
+              while(keyValueTail > nextSeparator && *(keyValueTail-1) == ' ') {
+                keyValueTail--;
+              }
+              /* Now copy the value, but check well-formedness */
+              if (nextSeparator == keyValueTail) {
+                *status = U_ILLEGAL_ARGUMENT_ERROR; /* empty key value name in passed-in locale */
+                return 0;
+              }
+              keyValueLen = 0;
+              while (nextSeparator < keyValueTail) {
+                if (!UPRV_ISALPHANUM(*nextSeparator) && !UPRV_OK_VALUE_PUNCTUATION(*nextSeparator)) {
+                  *status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed key value */
+                  return 0;
+                }
+                if (keyValueLen < bufferCapacity) {
+                  /* Should we lowercase value to return here? Tests expect as-is. */
+                  buffer[keyValueLen++] = *nextSeparator++;
+                } else { /* keep advancing so we return correct length in case of overflow */
+                  keyValueLen++;
                   nextSeparator++;
+                }
               }
-              /* we actually found the keyword. Copy the value */
-              if(startSearchHere && startSearchHere - nextSeparator < bufferCapacity) {
-                  while(*(startSearchHere-1) == ' ') {
-                      startSearchHere--;
-                  }
-                  uprv_strncpy(buffer, nextSeparator, startSearchHere - nextSeparator);
-                  result = u_terminateChars(buffer, bufferCapacity, (int32_t)(startSearchHere - nextSeparator), status);
-              } else if(!startSearchHere && (int32_t)uprv_strlen(nextSeparator) < bufferCapacity) { /* last item in string */
-                  i = (int32_t)uprv_strlen(nextSeparator);
-                  while(nextSeparator[i - 1] == ' ') {
-                      i--;
-                  }
-                  uprv_strncpy(buffer, nextSeparator, i);
-                  result = u_terminateChars(buffer, bufferCapacity, i, status);
-              } else {
-                  /* give a bigger buffer, please */
-                  *status = U_BUFFER_OVERFLOW_ERROR;
-                  if(startSearchHere) {
-                      result = (int32_t)(startSearchHere - nextSeparator);
-                  } else {
-                      result = (int32_t)uprv_strlen(nextSeparator);
-                  }
-              }
+              result = u_terminateChars(buffer, bufferCapacity, keyValueLen, status);
               return result;
           }
       }
@@ -936,46 +968,59 @@
     int32_t keywordValueLen;
     int32_t bufLen;
     int32_t needLen = 0;
-    int32_t foundValueLen;
-    int32_t keywordAtEnd = 0; /* is the keyword at the end of the string? */
     char keywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
+    char keywordValueBuffer[ULOC_KEYWORDS_CAPACITY+1];
     char localeKeywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
-    int32_t i = 0;
     int32_t rc;
     char* nextSeparator = NULL;
     char* nextEqualsign = NULL;
     char* startSearchHere = NULL;
     char* keywordStart = NULL;
-    char *insertHere = NULL;
+    CharString updatedKeysAndValues;
+    int32_t updatedKeysAndValuesLen;
+    UBool handledInputKeyAndValue = FALSE;
+    char keyValuePrefix = '@';
+
     if(U_FAILURE(*status)) {
         return -1;
     }
-    if(bufferCapacity>1) {
-        bufLen = (int32_t)uprv_strlen(buffer);
-    } else {
+    if (keywordName == NULL || keywordName[0] == 0 || bufferCapacity <= 1) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
+    bufLen = (int32_t)uprv_strlen(buffer);
     if(bufferCapacity<bufLen) {
         /* The capacity is less than the length?! Is this NULL terminated? */
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
-    if(keywordValue && !*keywordValue) {
-        keywordValue = NULL;
-    }
-    if(keywordValue) {
-        keywordValueLen = (int32_t)uprv_strlen(keywordValue);
-    } else {
-        keywordValueLen = 0;
-    }
     keywordNameLen = locale_canonKeywordName(keywordNameBuffer, keywordName, status);
     if(U_FAILURE(*status)) {
         return 0;
     }
+
+    keywordValueLen = 0;
+    if(keywordValue) {
+        while (*keywordValue != 0) {
+            if (!UPRV_ISALPHANUM(*keywordValue) && !UPRV_OK_VALUE_PUNCTUATION(*keywordValue)) {
+                *status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed key value */
+                return 0;
+            }
+            if (keywordValueLen < ULOC_KEYWORDS_CAPACITY) {
+                /* Should we force lowercase in value to set? */
+                keywordValueBuffer[keywordValueLen++] = *keywordValue++;
+            } else {
+                /* keywordValue too long for internal buffer */
+                *status = U_INTERNAL_PROGRAM_ERROR;
+                return 0;
+            }
+        }
+    }
+    keywordValueBuffer[keywordValueLen] = 0; /* terminate */
+
     startSearchHere = (char*)locale_getKeywordsStart(buffer);
     if(startSearchHere == NULL || (startSearchHere[1]==0)) {
-        if(!keywordValue) { /* no keywords = nothing to remove */
+        if(keywordValueLen == 0) { /* no keywords = nothing to remove */
             return bufLen;
         }
 
@@ -990,133 +1035,137 @@
             *status = U_BUFFER_OVERFLOW_ERROR;
             return needLen; /* no change */
         }
-        *startSearchHere = '@';
-        startSearchHere++;
+        *startSearchHere++ = '@';
         uprv_strcpy(startSearchHere, keywordNameBuffer);
         startSearchHere += keywordNameLen;
-        *startSearchHere = '=';
-        startSearchHere++;
-        uprv_strcpy(startSearchHere, keywordValue);
-        startSearchHere+=keywordValueLen;
+        *startSearchHere++ = '=';
+        uprv_strcpy(startSearchHere, keywordValueBuffer);
         return needLen;
     } /* end shortcut - no @ */
 
     keywordStart = startSearchHere;
     /* search for keyword */
     while(keywordStart) {
-        keywordStart++;
-        /* skip leading spaces (allowed?) */
+        const char* keyValueTail;
+        int32_t keyValueLen;
+
+        keywordStart++; /* skip @ or ; */
+        nextEqualsign = uprv_strchr(keywordStart, '=');
+        if (!nextEqualsign) {
+            *status = U_ILLEGAL_ARGUMENT_ERROR; /* key must have =value */
+            return 0;
+        }
+        /* strip leading & trailing spaces (TC decided to tolerate these) */
         while(*keywordStart == ' ') {
             keywordStart++;
         }
-        nextEqualsign = uprv_strchr(keywordStart, '=');
-        /* need to normalize both keyword and keyword name */
-        if(!nextEqualsign) {
-            break;
+        keyValueTail = nextEqualsign;
+        while (keyValueTail > keywordStart && *(keyValueTail-1) == ' ') {
+            keyValueTail--;
         }
-        if(nextEqualsign - keywordStart >= ULOC_KEYWORD_BUFFER_LEN) {
-            /* keyword name too long for internal buffer */
-            *status = U_INTERNAL_PROGRAM_ERROR;
+        /* now keyValueTail points to first char after the keyName */
+        /* copy & normalize keyName from locale */
+        if (keywordStart == keyValueTail) {
+            *status = U_ILLEGAL_ARGUMENT_ERROR; /* empty keyword name in passed-in locale */
             return 0;
         }
-        for(i = 0; i < nextEqualsign - keywordStart; i++) {
-            localeKeywordNameBuffer[i] = uprv_tolower(keywordStart[i]);
+        keyValueLen = 0;
+        while (keywordStart < keyValueTail) {
+            if (!UPRV_ISALPHANUM(*keywordStart)) {
+                *status = U_ILLEGAL_ARGUMENT_ERROR; /* malformed keyword name */
+                return 0;
+            }
+            if (keyValueLen < ULOC_KEYWORD_BUFFER_LEN - 1) {
+                localeKeywordNameBuffer[keyValueLen++] = uprv_tolower(*keywordStart++);
+            } else {
+                /* keyword name too long for internal buffer */
+                *status = U_INTERNAL_PROGRAM_ERROR;
+                return 0;
+            }
         }
-        /* trim trailing spaces */
-        while(keywordStart[i-1] == ' ') {
-            i--;
-        }
-        U_ASSERT(i>=0 && i<ULOC_KEYWORD_BUFFER_LEN);
-        localeKeywordNameBuffer[i] = 0;
+        localeKeywordNameBuffer[keyValueLen] = 0; /* terminate */
 
         nextSeparator = uprv_strchr(nextEqualsign, ';');
+
+        /* start processing the value part */
+        nextEqualsign++; /* skip '=' */
+        /* First strip leading & trailing spaces (TC decided to tolerate these) */
+        while(*nextEqualsign == ' ') {
+            nextEqualsign++;
+        }
+        keyValueTail = (nextSeparator)? nextSeparator: nextEqualsign + uprv_strlen(nextEqualsign);
+        while(keyValueTail > nextEqualsign && *(keyValueTail-1) == ' ') {
+            keyValueTail--;
+        }
+        if (nextEqualsign == keyValueTail) {
+            *status = U_ILLEGAL_ARGUMENT_ERROR; /* empty key value in passed-in locale */
+            return 0;
+        }
+
         rc = uprv_strcmp(keywordNameBuffer, localeKeywordNameBuffer);
         if(rc == 0) {
-            nextEqualsign++;
-            while(*nextEqualsign == ' ') {
-                nextEqualsign++;
+            /* Current entry matches the input keyword. Update the entry */
+            if(keywordValueLen > 0) { /* updating a value */
+                updatedKeysAndValues.append(keyValuePrefix, *status);
+                keyValuePrefix = ';'; /* for any subsequent key-value pair */
+                updatedKeysAndValues.append(keywordNameBuffer, keywordNameLen, *status);
+                updatedKeysAndValues.append('=', *status);
+                updatedKeysAndValues.append(keywordValueBuffer, keywordValueLen, *status);
+            } /* else removing this entry, don't emit anything */
+            handledInputKeyAndValue = TRUE;
+        } else {
+           /* input keyword sorts earlier than current entry, add before current entry */
+            if (rc < 0 && keywordValueLen > 0 && !handledInputKeyAndValue) {
+                /* insert new entry at this location */
+                updatedKeysAndValues.append(keyValuePrefix, *status);
+                keyValuePrefix = ';'; /* for any subsequent key-value pair */
+                updatedKeysAndValues.append(keywordNameBuffer, keywordNameLen, *status);
+                updatedKeysAndValues.append('=', *status);
+                updatedKeysAndValues.append(keywordValueBuffer, keywordValueLen, *status);
+                handledInputKeyAndValue = TRUE;
             }
-            /* we actually found the keyword. Change the value */
-            if (nextSeparator) {
-                keywordAtEnd = 0;
-                foundValueLen = (int32_t)(nextSeparator - nextEqualsign);
-            } else {
-                keywordAtEnd = 1;
-                foundValueLen = (int32_t)uprv_strlen(nextEqualsign);
-            }
-            if(keywordValue) { /* adding a value - not removing */
-              if(foundValueLen == keywordValueLen) {
-                uprv_strncpy(nextEqualsign, keywordValue, keywordValueLen);
-                return bufLen; /* no change in size */
-              } else if(foundValueLen > keywordValueLen) {
-                int32_t delta = foundValueLen - keywordValueLen;
-                if(nextSeparator) { /* RH side */
-                  uprv_memmove(nextSeparator - delta, nextSeparator, bufLen-(nextSeparator-buffer));
-                }
-                uprv_strncpy(nextEqualsign, keywordValue, keywordValueLen);
-                bufLen -= delta;
-                buffer[bufLen]=0;
-                return bufLen;
-              } else { /* FVL < KVL */
-                int32_t delta = keywordValueLen - foundValueLen;
-                if((bufLen+delta) >= bufferCapacity) {
-                  *status = U_BUFFER_OVERFLOW_ERROR;
-                  return bufLen+delta;
-                }
-                if(nextSeparator) { /* RH side */
-                  uprv_memmove(nextSeparator+delta,nextSeparator, bufLen-(nextSeparator-buffer));
-                }
-                uprv_strncpy(nextEqualsign, keywordValue, keywordValueLen);
-                bufLen += delta;
-                buffer[bufLen]=0;
-                return bufLen;
-              }
-            } else { /* removing a keyword */
-              if(keywordAtEnd) {
-                /* zero out the ';' or '@' just before startSearchhere */
-                keywordStart[-1] = 0;
-                return (int32_t)((keywordStart-buffer)-1); /* (string length without keyword) minus separator */
-              } else {
-                uprv_memmove(keywordStart, nextSeparator+1, bufLen-((nextSeparator+1)-buffer));
-                keywordStart[bufLen-((nextSeparator+1)-buffer)]=0;
-                return (int32_t)(bufLen-((nextSeparator+1)-keywordStart));
-              }
-            }
-        } else if(rc<0){ /* end match keyword */
-          /* could insert at this location. */
-          insertHere = keywordStart;
+            /* copy the current entry */
+            updatedKeysAndValues.append(keyValuePrefix, *status);
+            keyValuePrefix = ';'; /* for any subsequent key-value pair */
+            updatedKeysAndValues.append(localeKeywordNameBuffer, keyValueLen, *status);
+            updatedKeysAndValues.append('=', *status);
+            updatedKeysAndValues.append(nextEqualsign, keyValueTail-nextEqualsign, *status);
+        }
+        if (!nextSeparator && keywordValueLen > 0 && !handledInputKeyAndValue) {
+            /* append new entry at the end, it sorts later than existing entries */
+            updatedKeysAndValues.append(keyValuePrefix, *status);
+            /* skip keyValuePrefix update, no subsequent key-value pair */
+            updatedKeysAndValues.append(keywordNameBuffer, keywordNameLen, *status);
+            updatedKeysAndValues.append('=', *status);
+            updatedKeysAndValues.append(keywordValueBuffer, keywordValueLen, *status);
+            handledInputKeyAndValue = TRUE;
         }
         keywordStart = nextSeparator;
     } /* end loop searching */
 
-    if(!keywordValue) {
-      return bufLen; /* removal of non-extant keyword - no change */
+    /* Any error from updatedKeysAndValues.append above would be internal and not due to
+     * problems with the passed-in locale. So if we did encounter problems with the
+     * passed-in locale above, those errors took precedence and overrode any error
+     * status from updatedKeysAndValues.append, and also caused a return of 0. If there
+     * are errors here they are from updatedKeysAndValues.append; they do cause an
+     * error return but the passed-in locale is unmodified and the original bufLen is
+     * returned.
+     */
+    if (!handledInputKeyAndValue || U_FAILURE(*status)) {
+        /* if input key/value specified removal of a keyword not present in locale, or
+         * there was an error in CharString.append, leave original locale alone. */
+        return bufLen;
     }
 
-    /* we know there is at least one keyword. */
-    needLen = bufLen+1+keywordNameLen+1+keywordValueLen;
+    updatedKeysAndValuesLen = updatedKeysAndValues.length();
+    /* needLen = length of the part before '@' + length of updated key-value part including '@' */
+    needLen = (int32_t)(startSearchHere - buffer) + updatedKeysAndValuesLen;
     if(needLen >= bufferCapacity) {
         *status = U_BUFFER_OVERFLOW_ERROR;
         return needLen; /* no change */
     }
-
-    if(insertHere) {
-      uprv_memmove(insertHere+(1+keywordNameLen+1+keywordValueLen), insertHere, bufLen-(insertHere-buffer));
-      keywordStart = insertHere;
-    } else {
-      keywordStart = buffer+bufLen;
-      *keywordStart = ';';
-      keywordStart++;
-    }
-    uprv_strncpy(keywordStart, keywordNameBuffer, keywordNameLen);
-    keywordStart += keywordNameLen;
-    *keywordStart = '=';
-    keywordStart++;
-    uprv_strncpy(keywordStart, keywordValue, keywordValueLen); /* terminates. */
-    keywordStart+=keywordValueLen;
-    if(insertHere) {
-      *keywordStart = ';';
-      keywordStart++;
+    if (updatedKeysAndValuesLen > 0) {
+        uprv_strncpy(startSearchHere, updatedKeysAndValues.data(), updatedKeysAndValuesLen);
     }
     buffer[needLen]=0;
     return needLen;
@@ -2119,6 +2168,20 @@
 {
     UErrorCode status = U_ZERO_ERROR;
     char       langID[ULOC_FULLNAME_CAPACITY];
+    uint32_t   lcid = 0;
+
+    /* Check for incomplete id. */
+    if (!localeID || uprv_strlen(localeID) < 2) {
+        return 0;
+    }
+
+    // Attempt platform lookup if available
+    lcid = uprv_convertToLCIDPlatform(localeID);
+    if (lcid > 0)
+    {
+        // Windows found an LCID, return that
+        return lcid;
+    }
 
     uloc_getLanguage(localeID, langID, sizeof(langID), &status);
     if (U_FAILURE(status)) {
@@ -2529,9 +2592,6 @@
     return bcpType;
 }
 
-#define UPRV_ISDIGIT(c) (((c) >= '0') && ((c) <= '9'))
-#define UPRV_ISALPHANUM(c) (uprv_isASCIILetter(c) || UPRV_ISDIGIT(c) )
-
 static UBool
 isWellFormedLegacyKey(const char* legacyKey)
 {
@@ -2574,11 +2634,10 @@
         // Checks if the specified locale key is well-formed with the legacy locale syntax.
         //
         // Note:
-        //  Neither ICU nor LDML/CLDR provides the definition of keyword syntax.
-        //  However, a key should not contain '=' obviously. For now, all existing
-        //  keys are using ASCII alphabetic letters only. We won't add any new key
-        //  that is not compatible with the BCP 47 syntax. Therefore, we assume
-        //  a valid key consist from [0-9a-zA-Z], no symbols.
+        //  LDML/CLDR provides some definition of keyword syntax in
+        //  * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier and
+        //  * http://www.unicode.org/reports/tr35/#Old_Locale_Extension_Syntax
+        //  Keys can only consist of [0-9a-zA-Z].
         if (isWellFormedLegacyKey(keyword)) {
             return keyword;
         }
@@ -2594,12 +2653,11 @@
         // Checks if the specified locale type is well-formed with the legacy locale syntax.
         //
         // Note:
-        //  Neither ICU nor LDML/CLDR provides the definition of keyword syntax.
-        //  However, a type should not contain '=' obviously. For now, all existing
-        //  types are using ASCII alphabetic letters with a few symbol letters. We won't
-        //  add any new type that is not compatible with the BCP 47 syntax except timezone
-        //  IDs. For now, we assume a valid type start with [0-9a-zA-Z], but may contain
-        //  '-' '_' '/' in the middle.
+        //  LDML/CLDR provides some definition of keyword syntax in
+        //  * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier and
+        //  * http://www.unicode.org/reports/tr35/#Old_Locale_Extension_Syntax
+        //  Values (types) can only consist of [0-9a-zA-Z], plus for legacy values
+        //  we allow [/_-+] in the middle (e.g. "Etc/GMT+1", "Asia/Tel_Aviv")
         if (isWellFormedLegacyType(value)) {
             return value;
         }
diff --git a/source/common/uloc_keytype.cpp b/source/common/uloc_keytype.cpp
index fcb066c..4eea504 100644
--- a/source/common/uloc_keytype.cpp
+++ b/source/common/uloc_keytype.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uloc_tag.c b/source/common/uloc_tag.cpp
similarity index 99%
rename from source/common/uloc_tag.c
rename to source/common/uloc_tag.cpp
index 224470a..dcd7271 100644
--- a/source/common/uloc_tag.c
+++ b/source/common/uloc_tag.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -823,7 +823,7 @@
 
                     /* validate */
                     if (_isVariantSubtag(pVar, -1)) {
-                        if (uprv_strcmp(pVar,POSIX_VALUE) || len != uprv_strlen(POSIX_VALUE)) {
+                        if (uprv_strcmp(pVar,POSIX_VALUE) || len != (int32_t)uprv_strlen(POSIX_VALUE)) {
                             /* emit the variant to the list */
                             var = (VariantListEntry*)uprv_malloc(sizeof(VariantListEntry));
                             if (var == NULL) {
@@ -923,7 +923,7 @@
         char extBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
         char *pExtBuf = extBuf;
         int32_t extBufCapacity = sizeof(extBuf);
-        const char *bcpKey, *bcpValue;
+        const char *bcpKey=nullptr, *bcpValue=nullptr;
         UErrorCode tmpStatus = U_ZERO_ERROR;
         int32_t keylen;
         UBool isBcpUExt;
@@ -1371,7 +1371,7 @@
 
                 U_ASSERT(pBcpKey != NULL);
 
-                if (bcpKeyLen >= sizeof(bcpKeyBuf)) {
+                if (bcpKeyLen >= (int32_t)sizeof(bcpKeyBuf)) {
                     /* the BCP key is invalid */
                     *status = U_ILLEGAL_ARGUMENT_ERROR;
                     goto cleanup;
@@ -1406,7 +1406,7 @@
 
                 if (pBcpType) {
                     char bcpTypeBuf[128];       /* practically long enough even considering multiple subtag type */
-                    if (bcpTypeLen >= sizeof(bcpTypeBuf)) {
+                    if (bcpTypeLen >= (int32_t)sizeof(bcpTypeBuf)) {
                         /* the BCP type is too long */
                         *status = U_ILLEGAL_ARGUMENT_ERROR;
                         goto cleanup;
@@ -1642,6 +1642,7 @@
 
 static int32_t
 _appendPrivateuseToLanguageTag(const char* localeID, char* appendAt, int32_t capacity, UBool strict, UBool hadPosix, UErrorCode* status) {
+    (void)hadPosix;
     char buf[ULOC_FULLNAME_CAPACITY];
     char tmpAppend[ULOC_FULLNAME_CAPACITY];
     UErrorCode tmpStatus = U_ZERO_ERROR;
diff --git a/source/common/ulocimp.h b/source/common/ulocimp.h
index f54e216..869f296 100644
--- a/source/common/ulocimp.h
+++ b/source/common/ulocimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/umapfile.c b/source/common/umapfile.cpp
similarity index 93%
rename from source/common/umapfile.c
rename to source/common/umapfile.cpp
index d5d2033..df588a4 100644
--- a/source/common/umapfile.c
+++ b/source/common/umapfile.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -28,7 +28,9 @@
 /* memory-mapping base definitions ------------------------------------------ */
 
 #if MAP_IMPLEMENTATION==MAP_WIN32
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
@@ -107,17 +109,42 @@
         UDataMemory_init(pData); /* Clear the output struct.        */
 
         /* open the input file */
+#if U_PLATFORM_HAS_WINUWP_API == 0
         file=CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL,
             OPEN_EXISTING,
             FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS, NULL);
+#else
+        // First we need to go from char to UTF-16
+        // u_UCharsToChars could work but it requires length.
+        WCHAR utf16Path[MAX_PATH];
+        int32_t i;
+        for (i = 0; i < UPRV_LENGTHOF(utf16Path); i++)
+        {
+            utf16Path[i] = path[i];
+            if (path[i] == '\0')
+            {
+                break;
+            }
+        }
+        if (i >= UPRV_LENGTHOF(utf16Path))
+        {
+            // Ran out of room, unlikely but be safe
+            utf16Path[UPRV_LENGTHOF(utf16Path) - 1] = '\0';
+        }
+
+        // TODO: Is it worth setting extended parameters to specify random access?
+        file = CreateFile2(utf16Path, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, NULL);
+#endif
         if(file==INVALID_HANDLE_VALUE) {
             return FALSE;
         }
 
         /* Declare and initialize a security descriptor.
            This is required for multiuser systems on Windows 2000 SP4 and beyond */
+        // TODO: UWP does not have this function and I do not think it is required?
+#if U_PLATFORM_HAS_WINUWP_API == 0
         if (InitializeSecurityDescriptor(&securityDesc, SECURITY_DESCRIPTOR_REVISION)) {
-            /* give the security descriptor a Null Dacl done using the  "TRUE, (PACL)NULL" here	*/
+            /* give the security descriptor a Null Dacl done using the  "TRUE, (PACL)NULL" here */
             if (SetSecurityDescriptorDacl(&securityDesc, TRUE, (PACL)NULL, FALSE)) {
                 /* Make the security attributes point to the security descriptor */
                 uprv_memset(&mappingAttributes, 0, sizeof(mappingAttributes));
@@ -132,6 +159,9 @@
 
         /* create an unnamed Windows file-mapping object for the specified file */
         map=CreateFileMapping(file, mappingAttributesPtr, PAGE_READONLY, 0, 0, NULL);
+#else
+        map = CreateFileMappingFromApp(file, NULL, PAGE_READONLY, 0, NULL);
+#endif
         CloseHandle(file);
         if(map==NULL) {
             return FALSE;
diff --git a/source/common/umapfile.h b/source/common/umapfile.h
index 70a6cc5..24e476b 100644
--- a/source/common/umapfile.h
+++ b/source/common/umapfile.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/umath.c b/source/common/umath.cpp
similarity index 90%
rename from source/common/umath.c
rename to source/common/umath.cpp
index 78f1ca0..7cf4b31 100644
--- a/source/common/umath.c
+++ b/source/common/umath.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/umutex.cpp b/source/common/umutex.cpp
index 0532838..77c1778 100644
--- a/source/common/umutex.cpp
+++ b/source/common/umutex.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/umutex.h b/source/common/umutex.h
index b52010f..8e1f6e9 100644
--- a/source/common/umutex.h
+++ b/source/common/umutex.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -86,7 +86,9 @@
 //                Original plan was to use gcc atomics for MinGW, but they
 //                aren't supported, so we fold MinGW into this path.
 
+#ifndef WIN32_LEAN_AND_MEAN
 # define WIN32_LEAN_AND_MEAN
+#endif
 # define VC_EXTRALEAN
 # define NOUSER
 # define NOSERVICE
@@ -331,7 +333,9 @@
  *         win32 APIs for Critical Sections.
  */
 
+#ifndef WIN32_LEAN_AND_MEAN
 # define WIN32_LEAN_AND_MEAN
+#endif
 # define VC_EXTRALEAN
 # define NOUSER
 # define NOSERVICE
diff --git a/source/common/unames.cpp b/source/common/unames.cpp
index 9da2045..6ad349c 100644
--- a/source/common/unames.cpp
+++ b/source/common/unames.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  unames.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/appendable.h b/source/common/unicode/appendable.h
index 2ae3345..8512c2f 100644
--- a/source/common/unicode/appendable.h
+++ b/source/common/unicode/appendable.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  appendable.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -19,7 +19,7 @@
 
 /**
  * \file
- * \brief C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (UChars).
+ * \brief C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (char16_ts).
  */
 
 #include "unicode/utypes.h"
@@ -34,10 +34,10 @@
  * Combines elements of Java Appendable and ICU4C ByteSink.
  *
  * This class can be used in APIs where it does not matter whether the actual destination is
- * a UnicodeString, a UChar[] array, a UnicodeSet, or any other object
+ * a UnicodeString, a char16_t[] array, a UnicodeSet, or any other object
  * that receives and processes characters and/or strings.
  *
- * Implementation classes must implement at least appendCodeUnit(UChar).
+ * Implementation classes must implement at least appendCodeUnit(char16_t).
  * The base class provides default implementations for the other methods.
  *
  * The methods do not take UErrorCode parameters.
@@ -62,11 +62,11 @@
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
-    virtual UBool appendCodeUnit(UChar c) = 0;
+    virtual UBool appendCodeUnit(char16_t c) = 0;
 
     /**
      * Appends a code point.
-     * The default implementation calls appendCodeUnit(UChar) once or twice.
+     * The default implementation calls appendCodeUnit(char16_t) once or twice.
      * @param c code point 0..0x10ffff
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
@@ -75,20 +75,20 @@
 
     /**
      * Appends a string.
-     * The default implementation calls appendCodeUnit(UChar) for each code unit.
+     * The default implementation calls appendCodeUnit(char16_t) for each code unit.
      * @param s string, must not be NULL if length!=0
      * @param length string length, or -1 if NUL-terminated
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
-    virtual UBool appendString(const UChar *s, int32_t length);
+    virtual UBool appendString(const char16_t *s, int32_t length);
 
     /**
      * Tells the object that the caller is going to append roughly
-     * appendCapacity UChars. A subclass might use this to pre-allocate
+     * appendCapacity char16_ts. A subclass might use this to pre-allocate
      * a larger buffer if necessary.
      * The default implementation does nothing. (It always returns TRUE.)
-     * @param appendCapacity estimated number of UChars that will be appended
+     * @param appendCapacity estimated number of char16_ts that will be appended
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
@@ -102,19 +102,19 @@
      * The returned buffer is only valid until the next operation
      * on this Appendable.
      *
-     * After writing at most *resultCapacity UChars, call appendString() with the
-     * pointer returned from this function and the number of UChars written.
-     * Many appendString() implementations will avoid copying UChars if this function
+     * After writing at most *resultCapacity char16_ts, call appendString() with the
+     * pointer returned from this function and the number of char16_ts written.
+     * Many appendString() implementations will avoid copying char16_ts if this function
      * returned an internal buffer.
      *
      * Partial usage example:
      * \code
      *  int32_t capacity;
-     *  UChar* buffer = app.getAppendBuffer(..., &capacity);
-     *  ... Write n UChars into buffer, with n <= capacity.
+     *  char16_t* buffer = app.getAppendBuffer(..., &capacity);
+     *  ... Write n char16_ts into buffer, with n <= capacity.
      *  app.appendString(buffer, n);
      * \endcode
-     * In many implementations, that call to append will avoid copying UChars.
+     * In many implementations, that call to append will avoid copying char16_ts.
      *
      * If the Appendable allocates or reallocates an internal buffer, it should use
      * the desiredCapacityHint if appropriate.
@@ -138,9 +138,9 @@
      * @return a buffer with *resultCapacity>=minCapacity
      * @stable ICU 4.8
      */
-    virtual UChar *getAppendBuffer(int32_t minCapacity,
+    virtual char16_t *getAppendBuffer(int32_t minCapacity,
                                    int32_t desiredCapacityHint,
-                                   UChar *scratch, int32_t scratchCapacity,
+                                   char16_t *scratch, int32_t scratchCapacity,
                                    int32_t *resultCapacity);
 };
 
@@ -171,7 +171,7 @@
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
-    virtual UBool appendCodeUnit(UChar c);
+    virtual UBool appendCodeUnit(char16_t c);
 
     /**
      * Appends a code point to the string.
@@ -188,12 +188,12 @@
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
-    virtual UBool appendString(const UChar *s, int32_t length);
+    virtual UBool appendString(const char16_t *s, int32_t length);
 
     /**
      * Tells the UnicodeString that the caller is going to append roughly
-     * appendCapacity UChars.
-     * @param appendCapacity estimated number of UChars that will be appended
+     * appendCapacity char16_ts.
+     * @param appendCapacity estimated number of char16_ts that will be appended
      * @return TRUE if the operation succeeded
      * @stable ICU 4.8
      */
@@ -220,9 +220,9 @@
      * @return a buffer with *resultCapacity>=minCapacity
      * @stable ICU 4.8
      */
-    virtual UChar *getAppendBuffer(int32_t minCapacity,
+    virtual char16_t *getAppendBuffer(int32_t minCapacity,
                                    int32_t desiredCapacityHint,
-                                   UChar *scratch, int32_t scratchCapacity,
+                                   char16_t *scratch, int32_t scratchCapacity,
                                    int32_t *resultCapacity);
 
 private:
diff --git a/source/common/unicode/brkiter.h b/source/common/unicode/brkiter.h
index 88b39c6..b1e4cc6 100644
--- a/source/common/unicode/brkiter.h
+++ b/source/common/unicode/brkiter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/common/unicode/bytestream.h b/source/common/unicode/bytestream.h
index 1556227..a31992e 100644
--- a/source/common/unicode/bytestream.h
+++ b/source/common/unicode/bytestream.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 // Copyright (C) 2009-2012, International Business Machines
 // Corporation and others. All Rights Reserved.
@@ -222,8 +222,6 @@
   CheckedArrayByteSink &operator=(const CheckedArrayByteSink &); ///< assignment operator not implemented
 };
 
-#if U_HAVE_STD_STRING
-
 /** 
  * Implementation of ByteSink that writes to a "string".
  * The StringClass is usually instantiated with a std::string.
@@ -252,8 +250,6 @@
   StringByteSink &operator=(const StringByteSink &); ///< assignment operator not implemented
 };
 
-#endif
-
 U_NAMESPACE_END
 
 #endif  // __BYTESTREAM_H__
diff --git a/source/common/unicode/bytestrie.h b/source/common/unicode/bytestrie.h
index 4a30ce1..c57b8cc 100644
--- a/source/common/unicode/bytestrie.h
+++ b/source/common/unicode/bytestrie.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bytestrie.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/bytestriebuilder.h b/source/common/unicode/bytestriebuilder.h
index fe96887..a8412d3 100644
--- a/source/common/unicode/bytestriebuilder.h
+++ b/source/common/unicode/bytestriebuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bytestriebuilder.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -127,14 +127,14 @@
     void buildBytes(UStringTrieBuildOption buildOption, UErrorCode &errorCode);
 
     virtual int32_t getElementStringLength(int32_t i) const;
-    virtual UChar getElementUnit(int32_t i, int32_t byteIndex) const;
+    virtual char16_t getElementUnit(int32_t i, int32_t byteIndex) const;
     virtual int32_t getElementValue(int32_t i) const;
 
     virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t byteIndex) const;
 
     virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byteIndex) const;
     virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t count) const;
-    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UChar byte) const;
+    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const;
 
     virtual UBool matchNodesCanHaveValues() const { return FALSE; }
 
diff --git a/source/common/unicode/caniter.h b/source/common/unicode/caniter.h
index 7c1bf6a..5a882fb 100644
--- a/source/common/unicode/caniter.h
+++ b/source/common/unicode/caniter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -187,7 +187,7 @@
     UnicodeString *getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status); //private String[] getEquivalents(String segment)
 
     //Set getEquivalents2(String segment);
-    Hashtable *getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status);
+    Hashtable *getEquivalents2(Hashtable *fillinResult, const char16_t *segment, int32_t segLen, UErrorCode &status);
     //Hashtable *getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status);
 
     /**
@@ -196,7 +196,7 @@
      * If so, take the remainder, and return the equivalents
      */
     //Set extract(int comp, String segment, int segmentPos, StringBuffer buffer);
-    Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
+    Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const char16_t *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
     //Hashtable *extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
 
     void cleanPieces();
diff --git a/source/common/unicode/casemap.h b/source/common/unicode/casemap.h
new file mode 100644
index 0000000..9818482
--- /dev/null
+++ b/source/common/unicode/casemap.h
@@ -0,0 +1,359 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// casemap.h
+// created: 2017jan12 Markus W. Scherer
+
+#ifndef __CASEMAP_H__
+#define __CASEMAP_H__
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+
+/**
+ * \file
+ * \brief C++ API: Low-level C++ case mapping functions.
+ */
+
+U_NAMESPACE_BEGIN
+
+#ifndef U_HIDE_DRAFT_API
+
+class BreakIterator;
+class Edits;
+
+/**
+ * Low-level C++ case mapping functions.
+ *
+ * @draft ICU 59
+ */
+class U_COMMON_API CaseMap U_FINAL : public UMemory {
+public:
+    /**
+     * Lowercases a UTF-16 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see u_strToLower
+     * @draft ICU 59
+     */
+     static int32_t toLower(
+            const char *locale, uint32_t options,
+            const char16_t *src, int32_t srcLength,
+            char16_t *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+    /**
+     * Uppercases a UTF-16 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see u_strToUpper
+     * @draft ICU 59
+     */
+    static int32_t toUpper(
+            const char *locale, uint32_t options,
+            const char16_t *src, int32_t srcLength,
+            char16_t *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+    /**
+     * Titlecases a UTF-16 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * Titlecasing uses a break iterator to find the first characters of words
+     * that are to be titlecased. It titlecases those characters and lowercases
+     * all others. (This can be modified with options bits.)
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT,
+     *                  U_TITLECASE_NO_LOWERCASE, U_TITLECASE_NO_BREAK_ADJUSTMENT.
+     * @param iter      A break iterator to find the first characters of words that are to be titlecased.
+     *                  It is set to the source string (setText())
+     *                  and used one or more times for iteration (first() and next()).
+     *                  If NULL, then a word break iterator for the locale is used
+     *                  (or something equivalent).
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see u_strToTitle
+     * @see ucasemap_toTitle
+     * @draft ICU 59
+     */
+    static int32_t toTitle(
+            const char *locale, uint32_t options, BreakIterator *iter,
+            const char16_t *src, int32_t srcLength,
+            char16_t *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+#endif  // UCONFIG_NO_BREAK_ITERATION
+
+    /**
+     * Case-folds a UTF-16 string and optionally records edits.
+     *
+     * Case folding is locale-independent and not context-sensitive,
+     * but there is an option for whether to include or exclude mappings for dotted I
+     * and dotless i that are marked with 'T' in CaseFolding.txt.
+     *
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT,
+     *                  U_FOLD_CASE_DEFAULT, U_FOLD_CASE_EXCLUDE_SPECIAL_I.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of char16_ts). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see u_strFoldCase
+     * @draft ICU 59
+     */
+    static int32_t fold(
+            uint32_t options,
+            const char16_t *src, int32_t srcLength,
+            char16_t *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+    /**
+     * Lowercases a UTF-8 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of bytes). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see ucasemap_utf8ToLower
+     * @draft ICU 59
+     */
+     static int32_t utf8ToLower(
+            const char *locale, uint32_t options,
+            const char *src, int32_t srcLength,
+            char *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+    /**
+     * Uppercases a UTF-8 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of bytes). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see ucasemap_utf8ToUpper
+     * @draft ICU 59
+     */
+    static int32_t utf8ToUpper(
+            const char *locale, uint32_t options,
+            const char *src, int32_t srcLength,
+            char *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+    /**
+     * Titlecases a UTF-8 string and optionally records edits.
+     * Casing is locale-dependent and context-sensitive.
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * Titlecasing uses a break iterator to find the first characters of words
+     * that are to be titlecased. It titlecases those characters and lowercases
+     * all others. (This can be modified with options bits.)
+     *
+     * @param locale    The locale ID. ("" = root locale, NULL = default locale.)
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT,
+     *                  U_TITLECASE_NO_LOWERCASE, U_TITLECASE_NO_BREAK_ADJUSTMENT.
+     * @param iter      A break iterator to find the first characters of words that are to be titlecased.
+     *                  It is set to the source string (setText())
+     *                  and used one or more times for iteration (first() and next()).
+     *                  If NULL, then a word break iterator for the locale is used
+     *                  (or something equivalent).
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of bytes). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see ucasemap_utf8ToTitle
+     * @draft ICU 59
+     */
+    static int32_t utf8ToTitle(
+            const char *locale, uint32_t options, BreakIterator *iter,
+            const char *src, int32_t srcLength,
+            char *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+#endif  // UCONFIG_NO_BREAK_ITERATION
+
+    /**
+     * Case-folds a UTF-8 string and optionally records edits.
+     *
+     * Case folding is locale-independent and not context-sensitive,
+     * but there is an option for whether to include or exclude mappings for dotted I
+     * and dotless i that are marked with 'T' in CaseFolding.txt.
+     *
+     * The result may be longer or shorter than the original.
+     * The source string and the destination buffer must not overlap.
+     *
+     * @param options   Options bit set, usually 0. See UCASEMAP_OMIT_UNCHANGED_TEXT,
+     *                  U_FOLD_CASE_DEFAULT, U_FOLD_CASE_EXCLUDE_SPECIAL_I.
+     * @param src       The original string.
+     * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
+     * @param dest      A buffer for the result string. The result will be NUL-terminated if
+     *                  the buffer is large enough.
+     *                  The contents is undefined in case of failure.
+     * @param destCapacity The size of the buffer (number of bytes). If it is 0, then
+     *                  dest may be NULL and the function will only return the length of the result
+     *                  without writing any of the result string.
+     * @param edits     Records edits for index mapping, working with styled text,
+     *                  and getting only changes (if any).
+     *                  The Edits contents is undefined if any error occurs.
+     *                  This function calls edits->reset() first. edits can be NULL.
+     * @param errorCode Reference to an in/out error code value
+     *                  which must not indicate a failure before the function call.
+     * @return The length of the result string, if successful.
+     *         When the result would be longer than destCapacity,
+     *         the full length is returned and a U_BUFFER_OVERFLOW_ERROR is set.
+     *
+     * @see ucasemap_utf8FoldCase
+     * @draft ICU 59
+     */
+    static int32_t utf8Fold(
+            uint32_t options,
+            const char *src, int32_t srcLength,
+            char *dest, int32_t destCapacity, Edits *edits,
+            UErrorCode &errorCode);
+
+private:
+    CaseMap() = delete;
+    CaseMap(const CaseMap &other) = delete;
+    CaseMap &operator=(const CaseMap &other) = delete;
+};
+
+#endif  // U_HIDE_DRAFT_API
+
+U_NAMESPACE_END
+
+#endif  // __CASEMAP_H__
diff --git a/source/common/unicode/char16ptr.h b/source/common/unicode/char16ptr.h
new file mode 100644
index 0000000..fa17c62
--- /dev/null
+++ b/source/common/unicode/char16ptr.h
@@ -0,0 +1,306 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// char16ptr.h
+// created: 2017feb28 Markus W. Scherer
+
+#ifndef __CHAR16PTR_H__
+#define __CHAR16PTR_H__
+
+#include <cstddef>
+#include "unicode/utypes.h"
+
+/**
+ * \file
+ * \brief C++ API: char16_t pointer wrappers with
+ *        implicit conversion from bit-compatible raw pointer types.
+ *        Also conversion functions from char16_t * to UChar * and OldUChar *.
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \def U_ALIASING_BARRIER
+ * Barrier for pointer anti-aliasing optimizations even across function boundaries.
+ * @internal
+ */
+#ifdef U_ALIASING_BARRIER
+    // Use the predefined value.
+#elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
+#   define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
+#endif
+
+// Do not use #ifndef U_HIDE_DRAFT_API for the following class, it
+// is now used in place of UChar* in several stable C++ methods
+/**
+ * char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
+ * @draft ICU 59
+ */
+class U_COMMON_API Char16Ptr U_FINAL {
+public:
+    /**
+     * Copies the pointer.
+     * @param p pointer
+     * @draft ICU 59
+     */
+    inline Char16Ptr(char16_t *p);
+#if !U_CHAR16_IS_TYPEDEF
+    /**
+     * Converts the pointer to char16_t *.
+     * @param p pointer to be converted
+     * @draft ICU 59
+     */
+    inline Char16Ptr(uint16_t *p);
+#endif
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+    /**
+     * Converts the pointer to char16_t *.
+     * (Only defined if U_SIZEOF_WCHAR_T==2.)
+     * @param p pointer to be converted
+     * @draft ICU 59
+     */
+    inline Char16Ptr(wchar_t *p);
+#endif
+    /**
+     * nullptr constructor.
+     * @param p nullptr
+     * @draft ICU 59
+     */
+    inline Char16Ptr(std::nullptr_t p);
+    /**
+     * Destructor.
+     * @draft ICU 59
+     */
+    inline ~Char16Ptr();
+
+    /**
+     * Pointer access.
+     * @return the wrapped pointer
+     * @draft ICU 59
+     */
+    inline char16_t *get() const;
+    /**
+     * char16_t pointer access via type conversion (e.g., static_cast).
+     * @return the wrapped pointer
+     * @draft ICU 59
+     */
+    inline operator char16_t *() const { return get(); }
+
+private:
+    Char16Ptr() = delete;
+
+#ifdef U_ALIASING_BARRIER
+    template<typename T> static char16_t *cast(T *t) {
+        U_ALIASING_BARRIER(t);
+        return reinterpret_cast<char16_t *>(t);
+    }
+
+    char16_t *p;
+#else
+    union {
+        char16_t *cp;
+        uint16_t *up;
+        wchar_t *wp;
+    } u;
+#endif
+};
+
+#ifdef U_ALIASING_BARRIER
+
+Char16Ptr::Char16Ptr(char16_t *p) : p(p) {}
+#if !U_CHAR16_IS_TYPEDEF
+Char16Ptr::Char16Ptr(uint16_t *p) : p(cast(p)) {}
+#endif
+#if U_SIZEOF_WCHAR_T==2
+Char16Ptr::Char16Ptr(wchar_t *p) : p(cast(p)) {}
+#endif
+Char16Ptr::Char16Ptr(std::nullptr_t p) : p(p) {}
+Char16Ptr::~Char16Ptr() {
+    U_ALIASING_BARRIER(p);
+}
+
+char16_t *Char16Ptr::get() const { return p; }
+
+#else
+
+Char16Ptr::Char16Ptr(char16_t *p) { u.cp = p; }
+#if !U_CHAR16_IS_TYPEDEF
+Char16Ptr::Char16Ptr(uint16_t *p) { u.up = p; }
+#endif
+#if U_SIZEOF_WCHAR_T==2
+Char16Ptr::Char16Ptr(wchar_t *p) { u.wp = p; }
+#endif
+Char16Ptr::Char16Ptr(std::nullptr_t p) { u.cp = p; }
+Char16Ptr::~Char16Ptr() {}
+
+char16_t *Char16Ptr::get() const { return u.cp; }
+
+#endif
+
+// Do not use #ifndef U_HIDE_DRAFT_API for the following class, it is
+// now used in place of const UChar* in several stable C++ methods
+/**
+ * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
+ * @draft ICU 59
+ */
+class U_COMMON_API ConstChar16Ptr U_FINAL {
+public:
+    /**
+     * Copies the pointer.
+     * @param p pointer
+     * @draft ICU 59
+     */
+    inline ConstChar16Ptr(const char16_t *p);
+#if !U_CHAR16_IS_TYPEDEF
+    /**
+     * Converts the pointer to char16_t *.
+     * @param p pointer to be converted
+     * @draft ICU 59
+     */
+    inline ConstChar16Ptr(const uint16_t *p);
+#endif
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+    /**
+     * Converts the pointer to char16_t *.
+     * (Only defined if U_SIZEOF_WCHAR_T==2.)
+     * @param p pointer to be converted
+     * @draft ICU 59
+     */
+    inline ConstChar16Ptr(const wchar_t *p);
+#endif
+    /**
+     * nullptr constructor.
+     * @param p nullptr
+     * @draft ICU 59
+     */
+    inline ConstChar16Ptr(const std::nullptr_t p);
+
+    /**
+     * Destructor.
+     * @draft ICU 59
+     */
+    inline ~ConstChar16Ptr();
+
+    /**
+     * Pointer access.
+     * @return the wrapped pointer
+     * @draft ICU 59
+     */
+    inline const char16_t *get() const;
+    /**
+     * char16_t pointer access via type conversion (e.g., static_cast).
+     * @return the wrapped pointer
+     * @draft ICU 59
+     */
+    inline operator const char16_t *() const { return get(); }
+
+private:
+    ConstChar16Ptr() = delete;
+
+#ifdef U_ALIASING_BARRIER
+    template<typename T> static const char16_t *cast(const T *t) {
+        U_ALIASING_BARRIER(t);
+        return reinterpret_cast<const char16_t *>(t);
+    }
+
+    const char16_t *p;
+#else
+    union {
+        const char16_t *cp;
+        const uint16_t *up;
+        const wchar_t *wp;
+    } u;
+#endif
+};
+
+#ifdef U_ALIASING_BARRIER
+
+ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p(p) {}
+#if !U_CHAR16_IS_TYPEDEF
+ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p(cast(p)) {}
+#endif
+#if U_SIZEOF_WCHAR_T==2
+ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p(cast(p)) {}
+#endif
+ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p(p) {}
+ConstChar16Ptr::~ConstChar16Ptr() {
+    U_ALIASING_BARRIER(p);
+}
+
+const char16_t *ConstChar16Ptr::get() const { return p; }
+
+#else
+
+ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) { u.cp = p; }
+#if !U_CHAR16_IS_TYPEDEF
+ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) { u.up = p; }
+#endif
+#if U_SIZEOF_WCHAR_T==2
+ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u.wp = p; }
+#endif
+ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u.cp = p; }
+ConstChar16Ptr::~ConstChar16Ptr() {}
+
+const char16_t *ConstChar16Ptr::get() const { return u.cp; }
+
+#endif
+
+/**
+ * Converts from const char16_t * to const UChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as const UChar *
+ * @draft ICU 59
+ */
+inline const UChar *toUCharPtr(const char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+    U_ALIASING_BARRIER(p);
+#endif
+    return reinterpret_cast<const UChar *>(p);
+}
+
+/**
+ * Converts from char16_t * to UChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as UChar *
+ * @draft ICU 59
+ */
+inline UChar *toUCharPtr(char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+    U_ALIASING_BARRIER(p);
+#endif
+    return reinterpret_cast<UChar *>(p);
+}
+
+/**
+ * Converts from const char16_t * to const OldUChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as const OldUChar *
+ * @draft ICU 59
+ */
+inline const OldUChar *toOldUCharPtr(const char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+    U_ALIASING_BARRIER(p);
+#endif
+    return reinterpret_cast<const OldUChar *>(p);
+}
+
+/**
+ * Converts from char16_t * to OldUChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as OldUChar *
+ * @draft ICU 59
+ */
+inline OldUChar *toOldUCharPtr(char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+    U_ALIASING_BARRIER(p);
+#endif
+    return reinterpret_cast<OldUChar *>(p);
+}
+
+U_NAMESPACE_END
+
+#endif  // __CHAR16PTR_H__
diff --git a/source/common/unicode/chariter.h b/source/common/unicode/chariter.h
index 07d1ca3..7a4e1a2 100644
--- a/source/common/unicode/chariter.h
+++ b/source/common/unicode/chariter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************
@@ -78,7 +78,7 @@
  * }
  *
  * void function1(ForwardCharacterIterator &it) {
- *     UChar c;
+ *     char16_t c;
  *     while((c=it.nextPostInc())!=ForwardCharacterIterator::DONE) {
  *         // use c
  *      }
@@ -149,7 +149,7 @@
      * @return the current code unit.
      * @stable ICU 2.0
      */
-    virtual UChar         nextPostInc(void) = 0;
+    virtual char16_t         nextPostInc(void) = 0;
     
     /**
      * Gets the current code point for returning and advances to the next code point
@@ -230,7 +230,7 @@
  * showing a way to convert simple for() loops:
  * \code
  * void forward2(CharacterIterator &it) {
- *     UChar c;
+ *     char16_t c;
  *     for(c=it.firstPostInc(); c!=CharacterIterator::DONE; c=it.nextPostInc()) {
  *          // use c
  *      }
@@ -249,7 +249,7 @@
  * Backward iteration with a more traditional for() loop:
  * \code
  * void backward2(CharacterIterator &it) {
- *     UChar c;
+ *     char16_t c;
  *     for(c=it.last(); c!=CharacterIterator::DONE; c=it.previous()) {
  *         // use c
  *      }
@@ -266,7 +266,7 @@
  *      // get the position
  *      int32_t pos=it.getIndex();
  *      // get the previous code unit
- *      UChar u=it.previous();
+ *      char16_t u=it.previous();
  *      // move back one more code unit
  *      it.move(-1, CharacterIterator::kCurrent);
  *      // set the position back to where it was
@@ -283,7 +283,7 @@
  * Function processing characters, in this example simple output
  * <pre>
  * \code
- *  void processChar( UChar c )
+ *  void processChar( char16_t c )
  *  {
  *      cout << " " << c;
  *  }
@@ -294,7 +294,7 @@
  * \code
  *  void traverseForward(CharacterIterator& iter)
  *  {
- *      for(UChar c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
+ *      for(char16_t c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
  *          processChar(c);
  *      }
  *  }
@@ -305,7 +305,7 @@
  * \code
  *  void traverseBackward(CharacterIterator& iter)
  *  {
- *      for(UChar c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
+ *      for(char16_t c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
  *          processChar(c);
  *      }
  *  }
@@ -317,7 +317,7 @@
  * \code
  * void traverseOut(CharacterIterator& iter, int32_t pos)
  * {
- *      UChar c;
+ *      char16_t c;
  *      for (c = iter.setIndex(pos);
  *      c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));
  *          c = iter.next()) {}
@@ -386,7 +386,7 @@
      * @return the first code unit in its iteration range.
      * @stable ICU 2.0
      */
-    virtual UChar         first(void) = 0;
+    virtual char16_t         first(void) = 0;
 
     /**
      * Sets the iterator to refer to the first code unit in its
@@ -396,7 +396,7 @@
      * @return the first code unit in its iteration range.
      * @stable ICU 2.0
      */
-    virtual UChar         firstPostInc(void);
+    virtual char16_t         firstPostInc(void);
 
     /**
      * Sets the iterator to refer to the first code point in its
@@ -435,7 +435,7 @@
      * @return the last code unit.
      * @stable ICU 2.0
      */
-    virtual UChar         last(void) = 0;
+    virtual char16_t         last(void) = 0;
         
     /**
      * Sets the iterator to refer to the last code point in its
@@ -463,7 +463,7 @@
      * @return the "position"-th code unit.
      * @stable ICU 2.0
      */
-    virtual UChar         setIndex(int32_t position) = 0;
+    virtual char16_t         setIndex(int32_t position) = 0;
 
     /**
      * Sets the iterator to refer to the beginning of the code point
@@ -483,7 +483,7 @@
      * @return the current code unit. 
      * @stable ICU 2.0
      */
-    virtual UChar         current(void) const = 0;
+    virtual char16_t         current(void) const = 0;
         
     /**
      * Returns the code point the iterator currently refers to.  
@@ -499,7 +499,7 @@
      * @return the next code unit.
      * @stable ICU 2.0
      */
-    virtual UChar         next(void) = 0;
+    virtual char16_t         next(void) = 0;
         
     /**
      * Advances to the next code point in the iteration range
@@ -520,7 +520,7 @@
      * @return the previous code unit.
      * @stable ICU 2.0
      */
-    virtual UChar         previous(void) = 0;
+    virtual char16_t         previous(void) = 0;
 
     /**
      * Advances to the previous code point in the iteration range
@@ -607,6 +607,10 @@
      * @return the new position
      * @stable ICU 2.0
      */
+#ifdef move32
+     // One of the system headers right now is sometimes defining a conflicting macro we don't use
+#undef move32
+#endif
     virtual int32_t      move32(int32_t delta, EOrigin origin) = 0;
 
     /**
diff --git a/source/common/unicode/dbbi.h b/source/common/unicode/dbbi.h
index 590b6f3..a2c3d7d 100644
--- a/source/common/unicode/dbbi.h
+++ b/source/common/unicode/dbbi.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/docmain.h b/source/common/unicode/docmain.h
index 7fc1084..698e2ae 100644
--- a/source/common/unicode/docmain.h
+++ b/source/common/unicode/docmain.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
@@ -98,6 +98,11 @@
  *     <td>C API</td>
  *   </tr>
  *   <tr>
+ *     <td>Codepage Detection</td>
+ *     <td>ucsdet.h</td>
+ *     <td>C API</td>
+ *   </tr>
+ *   <tr>
  *     <td>Unicode Text Compression</td>
  *     <td>ucnv.h<br/>(encoding name "SCSU" or "BOCU-1")</td>
  *     <td>C API</td>
diff --git a/source/common/unicode/dtintrv.h b/source/common/unicode/dtintrv.h
index d45614a..10b566a 100644
--- a/source/common/unicode/dtintrv.h
+++ b/source/common/unicode/dtintrv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/unicode/edits.h b/source/common/unicode/edits.h
new file mode 100644
index 0000000..8d3becb
--- /dev/null
+++ b/source/common/unicode/edits.h
@@ -0,0 +1,245 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// edits.h
+// created: 2016dec30 Markus W. Scherer
+
+#ifndef __EDITS_H__
+#define __EDITS_H__
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+
+/**
+ * \file
+ * \brief C++ API: C++ class Edits for low-level string transformations on styled text.
+ */
+
+U_NAMESPACE_BEGIN
+
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Records lengths of string edits but not replacement text.
+ * Supports replacements, insertions, deletions in linear progression.
+ * Does not support moving/reordering of text.
+ *
+ * An Edits object tracks a separate UErrorCode, but ICU string transformation functions
+ * (e.g., case mapping functions) merge any such errors into their API's UErrorCode.
+ *
+ * @draft ICU 59
+ */
+class U_COMMON_API Edits U_FINAL : public UMemory {
+public:
+    /**
+     * Constructs an empty object.
+     * @draft ICU 59
+     */
+    Edits() :
+            array(stackArray), capacity(STACK_CAPACITY), length(0), delta(0),
+            errorCode(U_ZERO_ERROR) {}
+    /**
+     * Destructor.
+     * @draft ICU 59
+     */
+    ~Edits();
+
+    /**
+     * Resets the data but may not release memory.
+     * @draft ICU 59
+     */
+    void reset();
+
+    /**
+     * Adds a record for an unchanged segment of text.
+     * Normally called from inside ICU string transformation functions, not user code.
+     * @draft ICU 59
+     */
+    void addUnchanged(int32_t unchangedLength);
+    /**
+     * Adds a record for a text replacement/insertion/deletion.
+     * Normally called from inside ICU string transformation functions, not user code.
+     * @draft ICU 59
+     */
+    void addReplace(int32_t oldLength, int32_t newLength);
+    /**
+     * Sets the UErrorCode if an error occurred while recording edits.
+     * Preserves older error codes in the outErrorCode.
+     * Normally called from inside ICU string transformation functions, not user code.
+     * @return TRUE if U_FAILURE(outErrorCode)
+     * @draft ICU 59
+     */
+    UBool copyErrorTo(UErrorCode &outErrorCode);
+
+    /**
+     * How much longer is the new text compared with the old text?
+     * @return new length minus old length
+     * @draft ICU 59
+     */
+    int32_t lengthDelta() const { return delta; }
+    /**
+     * @return TRUE if there are any change edits
+     * @draft ICU 59
+     */
+    UBool hasChanges() const;
+
+    /**
+     * Access to the list of edits.
+     * @see getCoarseIterator
+     * @see getFineIterator
+     * @draft ICU 59
+     */
+    struct U_COMMON_API Iterator U_FINAL : public UMemory {
+        /**
+         * Copy constructor.
+         * @draft ICU 59
+         */
+        Iterator(const Iterator &other) = default;
+        /**
+         * Assignment operator.
+         * @draft ICU 59
+         */
+        Iterator &operator=(const Iterator &other) = default;
+
+        /**
+         * Advances to the next edit.
+         * @return TRUE if there is another edit
+         * @draft ICU 59
+         */
+        UBool next(UErrorCode &errorCode) { return next(onlyChanges_, errorCode); }
+
+        /**
+         * Finds the edit that contains the source index.
+         * The source index may be found in a non-change
+         * even if normal iteration would skip non-changes.
+         * Normal iteration can continue from a found edit.
+         *
+         * The iterator state before this search logically does not matter.
+         * (It may affect the performance of the search.)
+         *
+         * The iterator state after this search is undefined
+         * if the source index is out of bounds for the source string.
+         *
+         * @param i source index
+         * @return TRUE if the edit for the source index was found
+         * @draft ICU 59
+         */
+        UBool findSourceIndex(int32_t i, UErrorCode &errorCode);
+
+        /**
+         * @return TRUE if this edit replaces oldLength() units with newLength() different ones.
+         *         FALSE if oldLength units remain unchanged.
+         * @draft ICU 59
+         */
+        UBool hasChange() const { return changed; }
+        /**
+         * @return the number of units in the original string which are replaced or remain unchanged.
+         * @draft ICU 59
+         */
+        int32_t oldLength() const { return oldLength_; }
+        /**
+         * @return the number of units in the modified string, if hasChange() is TRUE.
+         *         Same as oldLength if hasChange() is FALSE.
+         * @draft ICU 59
+         */
+        int32_t newLength() const { return newLength_; }
+
+        /**
+         * @return the current index into the source string
+         * @draft ICU 59
+         */
+        int32_t sourceIndex() const { return srcIndex; }
+        /**
+         * @return the current index into the replacement-characters-only string,
+         *         not counting unchanged spans
+         * @draft ICU 59
+         */
+        int32_t replacementIndex() const { return replIndex; }
+        /**
+         * @return the current index into the full destination string
+         * @draft ICU 59
+         */
+        int32_t destinationIndex() const { return destIndex; }
+
+    private:
+        friend class Edits;
+
+        Iterator(const uint16_t *a, int32_t len, UBool oc, UBool crs);
+
+        int32_t readLength(int32_t head);
+        void updateIndexes();
+        UBool noNext();
+        UBool next(UBool onlyChanges, UErrorCode &errorCode);
+
+        const uint16_t *array;
+        int32_t index, length;
+        int32_t remaining;
+        UBool onlyChanges_, coarse;
+
+        UBool changed;
+        int32_t oldLength_, newLength_;
+        int32_t srcIndex, replIndex, destIndex;
+    };
+
+    /**
+     * Returns an Iterator for coarse-grained changes for simple string updates.
+     * Skips non-changes.
+     * @return an Iterator that merges adjacent changes.
+     * @draft ICU 59
+     */
+    Iterator getCoarseChangesIterator() const {
+        return Iterator(array, length, TRUE, TRUE);
+    }
+
+    /**
+     * Returns an Iterator for coarse-grained changes and non-changes for simple string updates.
+     * @return an Iterator that merges adjacent changes.
+     * @draft ICU 59
+     */
+    Iterator getCoarseIterator() const {
+        return Iterator(array, length, FALSE, TRUE);
+    }
+
+    /**
+     * Returns an Iterator for fine-grained changes for modifying styled text.
+     * Skips non-changes.
+     * @return an Iterator that separates adjacent changes.
+     * @draft ICU 59
+     */
+    Iterator getFineChangesIterator() const {
+        return Iterator(array, length, TRUE, FALSE);
+    }
+
+    /**
+     * Returns an Iterator for fine-grained changes and non-changes for modifying styled text.
+     * @return an Iterator that separates adjacent changes.
+     * @draft ICU 59
+     */
+    Iterator getFineIterator() const {
+        return Iterator(array, length, FALSE, FALSE);
+    }
+
+private:
+    Edits(const Edits &) = delete;
+    Edits &operator=(const Edits &) = delete;
+
+    void setLastUnit(int32_t last) { array[length - 1] = (uint16_t)last; }
+    int32_t lastUnit() const { return length > 0 ? array[length - 1] : 0xffff; }
+
+    void append(int32_t r);
+    UBool growArray();
+
+    static const int32_t STACK_CAPACITY = 100;
+    uint16_t *array;
+    int32_t capacity;
+    int32_t length;
+    int32_t delta;
+    UErrorCode errorCode;
+    uint16_t stackArray[STACK_CAPACITY];
+};
+
+#endif  // U_HIDE_DRAFT_API
+
+U_NAMESPACE_END
+
+#endif  // __EDITS_H__
diff --git a/source/common/unicode/enumset.h b/source/common/unicode/enumset.h
index 9c15b9a..f63dd16 100644
--- a/source/common/unicode/enumset.h
+++ b/source/common/unicode/enumset.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/errorcode.h b/source/common/unicode/errorcode.h
index 13f43e1..81cad20 100644
--- a/source/common/unicode/errorcode.h
+++ b/source/common/unicode/errorcode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  errorcode.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/filteredbrk.h b/source/common/unicode/filteredbrk.h
index 2611511..51bb651 100644
--- a/source/common/unicode/filteredbrk.h
+++ b/source/common/unicode/filteredbrk.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/common/unicode/icudataver.h b/source/common/unicode/icudataver.h
index 99e7c28..1cb202e 100644
--- a/source/common/unicode/icudataver.h
+++ b/source/common/unicode/icudataver.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/icuplug.h b/source/common/unicode/icuplug.h
index cffa6f3..1a894a7 100644
--- a/source/common/unicode/icuplug.h
+++ b/source/common/unicode/icuplug.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/idna.h b/source/common/unicode/idna.h
index 23a1d7c..f08658e 100644
--- a/source/common/unicode/idna.h
+++ b/source/common/unicode/idna.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  idna.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/listformatter.h b/source/common/unicode/listformatter.h
index f2c8988..180fbcb 100644
--- a/source/common/unicode/listformatter.h
+++ b/source/common/unicode/listformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  listformatter.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -157,6 +157,8 @@
   private:
     static void initializeHash(UErrorCode& errorCode);
     static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
+    struct ListPatternsSink;
+    static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
 
     ListFormatter();
 
diff --git a/source/common/unicode/localpointer.h b/source/common/unicode/localpointer.h
index 9ac5de5..3ab8201 100644
--- a/source/common/unicode/localpointer.h
+++ b/source/common/unicode/localpointer.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  localpointer.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -174,9 +174,9 @@
  * \code
  * LocalPointer<UnicodeString> s(new UnicodeString((UChar32)0x50005));
  * int32_t length=s->length();  // 2
- * UChar lead=s->charAt(0);  // 0xd900
+ * char16_t lead=s->charAt(0);  // 0xd900
  * if(some condition) { return; }  // no need to explicitly delete the pointer
- * s.adoptInstead(new UnicodeString((UChar)0xfffc));
+ * s.adoptInstead(new UnicodeString((char16_t)0xfffc));
  * length=s->length();  // 1
  * // no need to explicitly delete the pointer
  * \endcode
@@ -323,10 +323,10 @@
  * Usage example:
  * \code
  * LocalArray<UnicodeString> a(new UnicodeString[2]);
- * a[0].append((UChar)0x61);
+ * a[0].append((char16_t)0x61);
  * if(some condition) { return; }  // no need to explicitly delete the array
  * a.adoptInstead(new UnicodeString[4]);
- * a[3].append((UChar)0x62).append((UChar)0x63).reverse();
+ * a[3].append((char16_t)0x62).append((char16_t)0x63).reverse();
  * // no need to explicitly delete the array
  * \endcode
  *
diff --git a/source/common/unicode/locdspnm.h b/source/common/unicode/locdspnm.h
index b8c7a0c..7f22782 100644
--- a/source/common/unicode/locdspnm.h
+++ b/source/common/unicode/locdspnm.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -20,6 +20,7 @@
 #if !UCONFIG_NO_FORMATTING
 
 #include "unicode/locid.h"
+#include "unicode/strenum.h"
 #include "unicode/uscript.h"
 #include "unicode/uldnames.h"
 #include "unicode/udisplaycontext.h"
diff --git a/source/common/unicode/locid.h b/source/common/unicode/locid.h
index a8ddb7f..a37c4a3 100644
--- a/source/common/unicode/locid.h
+++ b/source/common/unicode/locid.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -33,10 +33,8 @@
 
 #include "unicode/utypes.h"
 #include "unicode/uobject.h"
-#include "unicode/unistr.h"
 #include "unicode/putil.h"
 #include "unicode/uloc.h"
-#include "unicode/strenum.h"
 
 /**
  * \file
@@ -48,6 +46,9 @@
 // Forward Declarations
 void U_CALLCONV locale_available_init(); /**< @internal */
 
+class StringEnumeration;
+class UnicodeString;
+
 /**
  * A <code>Locale</code> object represents a specific geographical, political,
  * or cultural region. An operation that requires a <code>Locale</code> to perform
diff --git a/source/common/unicode/messagepattern.h b/source/common/unicode/messagepattern.h
index 8c1115e..f28adaf 100644
--- a/source/common/unicode/messagepattern.h
+++ b/source/common/unicode/messagepattern.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  messagepattern.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/normalizer2.h b/source/common/unicode/normalizer2.h
index 6a7668b..d326da9 100644
--- a/source/common/unicode/normalizer2.h
+++ b/source/common/unicode/normalizer2.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  normalizer2.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -282,7 +282,7 @@
      *
      * When used on a standard NFC Normalizer2 instance,
      * it returns the Decomposition_Mapping only if the Decomposition_Type (dt) is Canonical (Can);
-     * in this case, the result contains either one or two code points (=1..4 UChars).
+     * in this case, the result contains either one or two code points (=1..4 char16_ts).
      *
      * This function is independent of the mode of the Normalizer2.
      * The default implementation returns FALSE.
diff --git a/source/common/unicode/normlzr.h b/source/common/unicode/normlzr.h
index d529aa2..0141058 100644
--- a/source/common/unicode/normlzr.h
+++ b/source/common/unicode/normlzr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************
@@ -168,7 +168,7 @@
    * @param mode  The normalization mode.
    * @deprecated ICU 56 Use Normalizer2 instead.
    */
-  Normalizer(const UChar* str, int32_t length, UNormalizationMode mode);
+  Normalizer(ConstChar16Ptr str, int32_t length, UNormalizationMode mode);
 
   /**
    * Creates a new <code>Normalizer</code> object for iterating over the
@@ -704,7 +704,7 @@
    * @param status a UErrorCode
    * @deprecated ICU 56 Use Normalizer2 instead.
    */
-  void setText(const UChar* newText,
+  void setText(ConstChar16Ptr newText,
                     int32_t length,
             UErrorCode &status);
   /**
@@ -796,8 +796,8 @@
                     uint32_t options,
                     UErrorCode &errorCode) {
   // all argument checking is done in unorm_compare
-  return unorm_compare(s1.getBuffer(), s1.length(),
-                       s2.getBuffer(), s2.length(),
+  return unorm_compare(toUCharPtr(s1.getBuffer()), s1.length(),
+                       toUCharPtr(s2.getBuffer()), s2.length(),
                        options,
                        &errorCode);
 }
diff --git a/source/common/unicode/parseerr.h b/source/common/unicode/parseerr.h
index 71aef40..fc1e3f4 100644
--- a/source/common/unicode/parseerr.h
+++ b/source/common/unicode/parseerr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/parsepos.h b/source/common/unicode/parsepos.h
index 1f74ebd..bbebca7 100644
--- a/source/common/unicode/parsepos.h
+++ b/source/common/unicode/parsepos.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) 1997-2005, International Business Machines Corporation and others. All Rights Reserved.
diff --git a/source/common/unicode/platform.h b/source/common/unicode/platform.h
index b42bef8..057182d 100644
--- a/source/common/unicode/platform.h
+++ b/source/common/unicode/platform.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -150,7 +150,7 @@
 #   define U_PLATFORM U_PF_ANDROID
     /* Android wchar_t support depends on the API level. */
 #   include <android/api-level.h>
-#elif defined(__native_client__)
+#elif defined(__pnacl__) || defined(__native_client__)
 #   define U_PLATFORM U_PF_BROWSER_NATIVE_CLIENT
 #elif defined(linux) || defined(__linux__) || defined(__linux)
 #   define U_PLATFORM U_PF_LINUX
@@ -234,6 +234,18 @@
 #endif
 
 /**
+ * \def U_PLATFORM_HAS_WINUWP_API
+ * Defines whether target is intended for Universal Windows Platform API
+ * Set to 1 for Windows10 Release Solution Configuration
+ * @internal
+ */
+#ifdef U_PLATFORM_HAS_WINUWP_API
+    /* Use the predefined value. */
+#else
+#   define U_PLATFORM_HAS_WINUWP_API 0
+#endif
+
+/**
  * \def U_PLATFORM_IMPLEMENTS_POSIX
  * Defines whether the platform implements (most of) the POSIX API.
  * Set to 1 for Cygwin and most other platforms.
@@ -343,17 +355,6 @@
 #define U_IOSTREAM_SOURCE 199711
 #endif
 
-/**
- * \def U_HAVE_STD_STRING
- * Defines whether the standard C++ (STL) &lt;string&gt; header is available.
- * @internal
- */
-#ifdef U_HAVE_STD_STRING
-    /* Use the predefined value. */
-#else
-#   define U_HAVE_STD_STRING 1
-#endif
-
 /*===========================================================================*/
 /** @{ Compiler and environment features                                     */
 /*===========================================================================*/
@@ -430,7 +431,7 @@
 #   define U_HAVE_DEBUG_LOCATION_NEW 0
 #endif
 
-/* Compatibility with non clang compilers: http://clang.llvm.org/docs/LanguageExtensions.html */
+/* Compatibility with compilers other than clang: http://clang.llvm.org/docs/LanguageExtensions.html */
 #ifndef __has_attribute
 #    define __has_attribute(x) 0
 #endif
@@ -497,6 +498,13 @@
 #   define U_CPLUSPLUS_VERSION 1
 #endif
 
+#if (U_PLATFORM == U_PF_AIX || U_PLATFORM == U_PF_OS390) && defined(__cplusplus) &&(U_CPLUSPLUS_VERSION < 11)
+// add in std::nullptr_t
+namespace std {
+  typedef decltype(nullptr) nullptr_t;
+};
+#endif
+
 /**
  * \def U_HAVE_RVALUE_REFERENCES
  * Set to 1 if the compiler supports rvalue references.
@@ -537,17 +545,22 @@
  * http://clang.llvm.org/docs/AttributeReference.html#fallthrough-clang-fallthrough
  * @internal
  */
-#ifdef __cplusplus
+#ifndef __cplusplus
+    // Not for C.
+#elif defined(U_FALLTHROUGH)
+    // Use the predefined value.
+#elif defined(__clang__)
+    // Test for compiler vs. feature separately.
+    // Other compilers might choke on the feature test.
 #   if __has_cpp_attribute(clang::fallthrough) || \
             (__has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough"))
 #       define U_FALLTHROUGH [[clang::fallthrough]]
-#   else
-#       define U_FALLTHROUGH
 #   endif
-#else
-#   define U_FALLTHROUGH
 #endif
 
+#ifndef U_FALLTHROUGH
+#   define U_FALLTHROUGH
+#endif
 
 /** @} */
 
@@ -764,6 +777,7 @@
      * gcc 4.4 defines the __CHAR16_TYPE__ macro to a usable type but
      * does not support u"abc" string literals.
      * C++11 and C11 require support for UTF-16 literals
+     * TODO: Fix for plain C. Doesn't work on Mac.
      */
 #   if U_CPLUSPLUS_VERSION >= 11 || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L)
 #       define U_HAVE_CHAR16_T 1
diff --git a/source/common/unicode/ptypes.h b/source/common/unicode/ptypes.h
index 69d7286..6eaf2db 100644
--- a/source/common/unicode/ptypes.h
+++ b/source/common/unicode/ptypes.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/putil.h b/source/common/unicode/putil.h
index 63a7b9b..406551a 100644
--- a/source/common/unicode/putil.h
+++ b/source/common/unicode/putil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/rbbi.h b/source/common/unicode/rbbi.h
index 9f2a1a6..d654154 100644
--- a/source/common/unicode/rbbi.h
+++ b/source/common/unicode/rbbi.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/common/unicode/rep.h b/source/common/unicode/rep.h
index 6ffd1f4..41fdc04 100644
--- a/source/common/unicode/rep.h
+++ b/source/common/unicode/rep.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **************************************************************************
@@ -93,7 +93,7 @@
      * @return 16-bit code unit of text at given offset
      * @stable ICU 1.8
      */
-    inline UChar charAt(int32_t offset) const;
+    inline char16_t charAt(int32_t offset) const;
 
     /**
      * Returns the 32-bit code point at the given 16-bit offset into
@@ -230,7 +230,7 @@
      * Virtual version of charAt().
      * @stable ICU 2.4
      */
-    virtual UChar getCharAt(int32_t offset) const = 0;
+    virtual char16_t getCharAt(int32_t offset) const = 0;
 
     /**
      * Virtual version of char32At().
@@ -246,7 +246,7 @@
     return getLength();
 }
 
-inline UChar
+inline char16_t
 Replaceable::charAt(int32_t offset) const {
     return getCharAt(offset);
 }
diff --git a/source/common/unicode/resbund.h b/source/common/unicode/resbund.h
index 927a65b..b522a7a 100644
--- a/source/common/unicode/resbund.h
+++ b/source/common/unicode/resbund.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -216,7 +216,7 @@
      *                could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
      *                could be a warning
      *                e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
-     * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file.
+     * @return a pointer to a zero-terminated char16_t array which lives in a memory mapped/DLL file.
      * @stable ICU 2.0
      */
     UnicodeString
diff --git a/source/common/unicode/schriter.h b/source/common/unicode/schriter.h
index e52b97c..b1dc939 100644
--- a/source/common/unicode/schriter.h
+++ b/source/common/unicode/schriter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -175,7 +175,7 @@
    * @param newTextLength The length of the String
    * @stable ICU 2.0
    */
-  void setText(const UChar* newText, int32_t newTextLength);
+  void setText(const char16_t* newText, int32_t newTextLength);
 
   /**
    * Copy of the iterated string object.
diff --git a/source/common/unicode/simpleformatter.h b/source/common/unicode/simpleformatter.h
index 2b74f5c..26eae01 100644
--- a/source/common/unicode/simpleformatter.h
+++ b/source/common/unicode/simpleformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -19,8 +19,6 @@
 #include "unicode/utypes.h"
 #include "unicode/unistr.h"
 
-#ifndef U_HIDE_DRAFT_API
-
 U_NAMESPACE_BEGIN
 
 /**
@@ -49,15 +47,15 @@
  *
  * @see MessageFormat
  * @see UMessagePatternApostropheMode
- * @draft ICU 57
+ * @stable ICU 57
  */
 class U_COMMON_API SimpleFormatter U_FINAL : public UMemory {
 public:
     /**
      * Default constructor.
-     * @draft ICU 57
+     * @stable ICU 57
      */
-    SimpleFormatter() : compiledPattern((UChar)0) {}
+    SimpleFormatter() : compiledPattern((char16_t)0) {}
 
     /**
      * Constructs a formatter from the pattern string.
@@ -66,7 +64,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      *                  Set to U_ILLEGAL_ARGUMENT_ERROR for bad argument syntax.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     SimpleFormatter(const UnicodeString& pattern, UErrorCode &errorCode) {
         applyPattern(pattern, errorCode);
@@ -84,7 +82,7 @@
      *                  Must fulfill U_SUCCESS before the function call.
      *                  Set to U_ILLEGAL_ARGUMENT_ERROR for bad argument syntax and
      *                  too few or too many arguments.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     SimpleFormatter(const UnicodeString& pattern, int32_t min, int32_t max,
                     UErrorCode &errorCode) {
@@ -93,20 +91,20 @@
 
     /**
      * Copy constructor.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     SimpleFormatter(const SimpleFormatter& other)
             : compiledPattern(other.compiledPattern) {}
 
     /**
      * Assignment operator.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     SimpleFormatter &operator=(const SimpleFormatter& other);
 
     /**
      * Destructor.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     ~SimpleFormatter();
 
@@ -118,7 +116,7 @@
      *                  Must fulfill U_SUCCESS before the function call.
      *                  Set to U_ILLEGAL_ARGUMENT_ERROR for bad argument syntax.
      * @return TRUE if U_SUCCESS(errorCode).
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UBool applyPattern(const UnicodeString &pattern, UErrorCode &errorCode) {
         return applyPatternMinMaxArguments(pattern, 0, INT32_MAX, errorCode);
@@ -137,14 +135,14 @@
      *                  Set to U_ILLEGAL_ARGUMENT_ERROR for bad argument syntax and
      *                  too few or too many arguments.
      * @return TRUE if U_SUCCESS(errorCode).
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UBool applyPatternMinMaxArguments(const UnicodeString &pattern,
                                       int32_t min, int32_t max, UErrorCode &errorCode);
 
     /**
      * @return The max argument number + 1.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     int32_t getArgumentLimit() const {
         return getArgumentLimit(compiledPattern.getBuffer(), compiledPattern.length());
@@ -160,7 +158,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      * @return appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString &format(
             const UnicodeString &value0,
@@ -177,7 +175,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      * @return appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString &format(
             const UnicodeString &value0,
@@ -196,7 +194,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      * @return appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString &format(
             const UnicodeString &value0,
@@ -221,7 +219,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      * @return appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString &formatAndAppend(
             const UnicodeString *const *values, int32_t valuesLength,
@@ -247,7 +245,7 @@
      * @param errorCode ICU error code in/out parameter.
      *                  Must fulfill U_SUCCESS before the function call.
      * @return result
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString &formatAndReplace(
             const UnicodeString *const *values, int32_t valuesLength,
@@ -257,7 +255,7 @@
     /**
      * Returns the pattern text with none of the arguments.
      * Like formatting with all-empty string values.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString getTextWithNoArguments() const {
         return getTextWithNoArguments(compiledPattern.getBuffer(), compiledPattern.length());
@@ -275,15 +273,15 @@
      */
     UnicodeString compiledPattern;
 
-    static inline int32_t getArgumentLimit(const UChar *compiledPattern,
+    static inline int32_t getArgumentLimit(const char16_t *compiledPattern,
                                               int32_t compiledPatternLength) {
         return compiledPatternLength == 0 ? 0 : compiledPattern[0];
     }
 
-    static UnicodeString getTextWithNoArguments(const UChar *compiledPattern, int32_t compiledPatternLength);
+    static UnicodeString getTextWithNoArguments(const char16_t *compiledPattern, int32_t compiledPatternLength);
 
     static UnicodeString &format(
-            const UChar *compiledPattern, int32_t compiledPatternLength,
+            const char16_t *compiledPattern, int32_t compiledPatternLength,
             const UnicodeString *const *values,
             UnicodeString &result, const UnicodeString *resultCopy, UBool forbidResultAsValue,
             int32_t *offsets, int32_t offsetsLength,
@@ -292,6 +290,4 @@
 
 U_NAMESPACE_END
 
-#endif /* U_HIDE_DRAFT_API */
-
 #endif  // __SIMPLEFORMATTER_H__
diff --git a/source/common/unicode/std_string.h b/source/common/unicode/std_string.h
index 104ef0c..729c563 100644
--- a/source/common/unicode/std_string.h
+++ b/source/common/unicode/std_string.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  std_string.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -27,13 +27,11 @@
 
 #include "unicode/utypes.h"
 
-#if U_HAVE_STD_STRING
-
-#if !defined(_MSC_VER)
-namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+// Workaround for a libstdc++ bug before libstdc++4.6 (2011).
+// https://bugs.llvm.org/show_bug.cgi?id=13364
+#if defined(__GLIBCXX__)
+namespace std { class type_info; }
 #endif
 #include <string>
 
-#endif  // U_HAVE_STD_STRING
-
 #endif  // __STD_STRING_H__
diff --git a/source/common/unicode/strenum.h b/source/common/unicode/strenum.h
index 5a33f7f..61d5148 100644
--- a/source/common/unicode/strenum.h
+++ b/source/common/unicode/strenum.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -35,7 +35,7 @@
  * call, so the returned string still might not be 'valid' on
  * subsequent use.</p>
  *
- * <p>Strings may take the form of const char*, const UChar*, or const
+ * <p>Strings may take the form of const char*, const char16_t*, or const
  * UnicodeString*.  The type you get is determine by the variant of
  * 'next' that you call.  In general the StringEnumeration is
  * optimized for one of these types, but all StringEnumerations can
@@ -112,7 +112,7 @@
      * <p>If the iterator is out of sync with its service, status is set
      * to U_ENUM_OUT_OF_SYNC_ERROR and NULL is returned.</p>
      *
-     * <p>If the native service string is a UChar* string, it is
+     * <p>If the native service string is a char16_t* string, it is
      * converted to char* with the invariant converter.  If the
      * conversion fails (because a character cannot be converted) then
      * status is set to U_INVARIANT_CONVERSION_ERROR and the return
@@ -131,7 +131,7 @@
     virtual const char* next(int32_t *resultLength, UErrorCode& status);
 
     /**
-     * <p>Returns the next element as a NUL-terminated UChar*.  If there
+     * <p>Returns the next element as a NUL-terminated char16_t*.  If there
      * are no more elements, returns NULL.  If the resultLength pointer
      * is not NULL, the length of the string (not counting the
      * terminating NUL) is returned at that address.  If an error
@@ -153,7 +153,7 @@
      *
      * @stable ICU 2.4 
      */
-    virtual const UChar* unext(int32_t *resultLength, UErrorCode& status);
+    virtual const char16_t* unext(int32_t *resultLength, UErrorCode& status);
 
     /**
      * <p>Returns the next element a UnicodeString*.  If there are no
diff --git a/source/common/unicode/stringpiece.h b/source/common/unicode/stringpiece.h
index 5e40d4a..b0887ef 100644
--- a/source/common/unicode/stringpiece.h
+++ b/source/common/unicode/stringpiece.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 // Copyright (C) 2009-2013, International Business Machines
 // Corporation and others. All Rights Reserved.
@@ -68,14 +68,12 @@
    * @stable ICU 4.2
    */
   StringPiece(const char* str);
-#if U_HAVE_STD_STRING
   /**
    * Constructs from a std::string.
    * @stable ICU 4.2
    */
   StringPiece(const std::string& str)
     : ptr_(str.data()), length_(static_cast<int32_t>(str.size())) { }
-#endif
   /**
    * Constructs from a const char * pointer and a specified length.
    * @param offset a const char * pointer (need not be terminated)
diff --git a/source/common/unicode/stringtriebuilder.h b/source/common/unicode/stringtriebuilder.h
index 95cd841..bcad248 100644
--- a/source/common/unicode/stringtriebuilder.h
+++ b/source/common/unicode/stringtriebuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  stringtriebuilder.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -105,7 +105,7 @@
     /** @internal */
     virtual int32_t getElementStringLength(int32_t i) const = 0;
     /** @internal */
-    virtual UChar getElementUnit(int32_t i, int32_t unitIndex) const = 0;
+    virtual char16_t getElementUnit(int32_t i, int32_t unitIndex) const = 0;
     /** @internal */
     virtual int32_t getElementValue(int32_t i) const = 0;
 
@@ -120,7 +120,7 @@
     /** @internal */
     virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t unitIndex, int32_t count) const = 0;
     /** @internal */
-    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, UChar unit) const = 0;
+    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, char16_t unit) const = 0;
 
     /** @internal */
     virtual UBool matchNodesCanHaveValues() const = 0;
@@ -137,7 +137,7 @@
     /** @internal */
     static const int32_t kMaxBranchLinearSubNodeLength=5;
 
-    // Maximum number of nested split-branch levels for a branch on all 2^16 possible UChar units.
+    // Maximum number of nested split-branch levels for a branch on all 2^16 possible char16_t units.
     // log2(2^16/kMaxBranchLinearSubNodeLength) rounded up.
     /** @internal */
     static const int32_t kMaxSplitBranchLevels=14;
@@ -338,7 +338,7 @@
         virtual void write(StringTrieBuilder &builder);
         // Adds a unit with a final value.
         void add(int32_t c, int32_t value) {
-            units[length]=(UChar)c;
+            units[length]=(char16_t)c;
             equal[length]=NULL;
             values[length]=value;
             ++length;
@@ -346,7 +346,7 @@
         }
         // Adds a unit which leads to another match node.
         void add(int32_t c, Node *node) {
-            units[length]=(UChar)c;
+            units[length]=(char16_t)c;
             equal[length]=node;
             values[length]=0;
             ++length;
@@ -356,7 +356,7 @@
         Node *equal[kMaxBranchLinearSubNodeLength];  // NULL means "has final value".
         int32_t length;
         int32_t values[kMaxBranchLinearSubNodeLength];
-        UChar units[kMaxBranchLinearSubNodeLength];
+        char16_t units[kMaxBranchLinearSubNodeLength];
     };
 
     /**
@@ -364,7 +364,7 @@
      */
     class SplitBranchNode : public BranchNode {
     public:
-        SplitBranchNode(UChar middleUnit, Node *lessThanNode, Node *greaterOrEqualNode)
+        SplitBranchNode(char16_t middleUnit, Node *lessThanNode, Node *greaterOrEqualNode)
                 : BranchNode(((0x555555*37+middleUnit)*37+
                               hashCode(lessThanNode))*37+hashCode(greaterOrEqualNode)),
                   unit(middleUnit), lessThan(lessThanNode), greaterOrEqual(greaterOrEqualNode) {}
@@ -372,7 +372,7 @@
         virtual int32_t markRightEdgesFirst(int32_t edgeNumber);
         virtual void write(StringTrieBuilder &builder);
     protected:
-        UChar unit;
+        char16_t unit;
         Node *lessThan;
         Node *greaterOrEqual;
     };
diff --git a/source/common/unicode/symtable.h b/source/common/unicode/symtable.h
index cf2c4f0..35e5f23 100644
--- a/source/common/unicode/symtable.h
+++ b/source/common/unicode/symtable.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ubidi.h b/source/common/unicode/ubidi.h
index e599698..ef21f24 100644
--- a/source/common/unicode/ubidi.h
+++ b/source/common/unicode/ubidi.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ubidi.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -1196,11 +1196,14 @@
  *        A level overrides the directional property of its corresponding
  *        (same index) character if the level has the
  *        <code>#UBIDI_LEVEL_OVERRIDE</code> bit set.<br><br>
- *        Except for that bit, it must be
+ *        Aside from that bit, it must be
  *        <code>paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL</code>,
- *        with one exception: a level of zero may be specified for a paragraph
- *        separator even if <code>paraLevel>0</code> when multiple paragraphs
- *        are submitted in the same call to <code>ubidi_setPara()</code>.<br><br>
+ *        except that level 0 is always allowed.
+ *        Level 0 for a paragraph separator prevents reordering of paragraphs;
+ *        this only works reliably if <code>#UBIDI_LEVEL_OVERRIDE</code>
+ *        is also set for paragraph separators.
+ *        Level 0 for other characters is treated as a wildcard
+ *        and is lifted up to the resolved level of the surrounding paragraph.<br><br>
  *        <strong>Caution: </strong>A copy of this pointer, not of the levels,
  *        will be stored in the <code>UBiDi</code> object;
  *        the <code>embeddingLevels</code> array must not be
diff --git a/source/common/unicode/ubiditransform.h b/source/common/unicode/ubiditransform.h
index 509f68b..724587d 100644
--- a/source/common/unicode/ubiditransform.h
+++ b/source/common/unicode/ubiditransform.h
@@ -1,12 +1,12 @@
 /*
 ******************************************************************************
 *
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html
 *
 ******************************************************************************
 *   file name:  ubiditransform.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/ubrk.h b/source/common/unicode/ubrk.h
index f43943e..22a4b99 100644
--- a/source/common/unicode/ubrk.h
+++ b/source/common/unicode/ubrk.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -267,6 +267,34 @@
                UParseError     *parseErr,
                UErrorCode      *status);
 
+#ifndef U_HIDE_DRAFT_API
+/**
+ * Open a new UBreakIterator for locating text boundaries using precompiled binary rules.
+ * Opening a UBreakIterator this way is substantially faster than using ubrk_openRules.
+ * Binary rules may be obtained using ubrk_getBinaryRules. The compiled rules are not
+ * compatible across different major versions of ICU, nor across platforms of different
+ * endianness or different base character set family (ASCII vs EBCDIC).
+ * @param binaryRules A set of compiled binary rules specifying the text breaking
+ *                    conventions. Ownership of the storage containing the compiled
+ *                    rules remains with the caller of this function. The compiled
+ *                    rules must not be modified or deleted during the life of the
+ *                    break iterator.
+ * @param rulesLength The length of binaryRules in bytes; must be >= 0.
+ * @param text        The text to be iterated over.  May be null, in which case
+ *                    ubrk_setText() is used to specify the text to be iterated.
+ * @param textLength  The number of characters in text, or -1 if null-terminated.
+ * @param status      Pointer to UErrorCode to receive any errors.
+ * @return            UBreakIterator for the specified rules.
+ * @see ubrk_getBinaryRules
+ * @draft ICU 59
+ */
+U_DRAFT UBreakIterator* U_EXPORT2
+ubrk_openBinaryRules(const uint8_t *binaryRules, int32_t rulesLength,
+                     const UChar *  text, int32_t textLength,
+                     UErrorCode *   status);
+
+#endif  /* U_HIDE_DRAFT_API */
+
 /**
  * Thread safe cloning operation
  * @param bi iterator to be cloned
@@ -566,6 +594,40 @@
                        UText          *text,
                        UErrorCode     *status);
 
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * Get a compiled binary version of the rules specifying the behavior of a UBreakIterator.
+ * The binary rules may be used with ubrk_openBinaryRules to open a new UBreakIterator
+ * more quickly than using ubrk_openRules. The compiled rules are not compatible across
+ * different major versions of ICU, nor across platforms of different endianness or
+ * different base character set family (ASCII vs EBCDIC). Supports preflighting (with
+ * binaryRules=NULL and rulesCapacity=0) to get the rules length without copying them to
+ * the binaryRules buffer. However, whether preflighting or not, if the actual length
+ * is greater than INT32_MAX, then the function returns 0 and sets *status to
+ * U_INDEX_OUTOFBOUNDS_ERROR.
+
+ * @param bi            The break iterator to use.
+ * @param binaryRules   Buffer to receive the compiled binary rules; set to NULL for
+ *                      preflighting.
+ * @param rulesCapacity Capacity (in bytes) of the binaryRules buffer; set to 0 for
+ *                      preflighting. Must be >= 0.
+ * @param status        Pointer to UErrorCode to receive any errors, such as
+ *                      U_BUFFER_OVERFLOW_ERROR, U_INDEX_OUTOFBOUNDS_ERROR, or
+ *                      U_ILLEGAL_ARGUMENT_ERROR.
+ * @return              The actual byte length of the binary rules, if <= INT32_MAX;
+ *                      otherwise 0. If not preflighting and this is larger than
+ *                      rulesCapacity, *status will be set to an error.
+ * @see ubrk_openBinaryRules
+ * @draft ICU 59
+ */
+U_DRAFT int32_t U_EXPORT2
+ubrk_getBinaryRules(UBreakIterator *bi,
+                    uint8_t *       binaryRules, int32_t rulesCapacity,
+                    UErrorCode *    status);
+
+#endif  /* U_HIDE_DRAFT_API */
+
 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */
 
 #endif
diff --git a/source/common/unicode/ucasemap.h b/source/common/unicode/ucasemap.h
index d7345e8..18e6c2b 100644
--- a/source/common/unicode/ucasemap.h
+++ b/source/common/unicode/ucasemap.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucasemap.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -22,8 +22,8 @@
 #define __UCASEMAP_H__
 
 #include "unicode/utypes.h"
-#include "unicode/ustring.h"
 #include "unicode/localpointer.h"
+#include "unicode/ustring.h"
 
 /**
  * \file
@@ -185,6 +185,15 @@
  */
 #define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
 
+/**
+ * Omit unchanged text when case-mapping with Edits.
+ *
+ * @see CaseMap
+ * @see Edits
+ * @draft ICU 59
+ */
+#define UCASEMAP_OMIT_UNCHANGED_TEXT 0x4000
+
 #if !UCONFIG_NO_BREAK_ITERATION
 
 /**
@@ -253,7 +262,7 @@
  * @param dest      A buffer for the result string. The result will be NUL-terminated if
  *                  the buffer is large enough.
  *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). If it is 0, then
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
  *                  dest may be NULL and the function will only return the length of the result
  *                  without writing any of the result string.
  * @param src       The original string.
@@ -272,7 +281,7 @@
                  const UChar *src, int32_t srcLength,
                  UErrorCode *pErrorCode);
 
-#endif
+#endif  // UCONFIG_NO_BREAK_ITERATION
 
 /**
  * Lowercase the characters in a UTF-8 string.
diff --git a/source/common/unicode/ucat.h b/source/common/unicode/ucat.h
index c52e4d9..4d1ff3f 100644
--- a/source/common/unicode/ucat.h
+++ b/source/common/unicode/ucat.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/uchar.h b/source/common/unicode/uchar.h
index 7f6ea6d..8174ca2 100644
--- a/source/common/unicode/uchar.h
+++ b/source/common/unicode/uchar.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -399,36 +399,34 @@
     UCHAR_CHANGES_WHEN_CASEMAPPED=55,
     /** Binary property Changes_When_NFKC_Casefolded. @stable ICU 4.4 */
     UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56,
-#ifndef U_HIDE_DRAFT_API
     /**
      * Binary property Emoji.
      * See http://www.unicode.org/reports/tr51/#Emoji_Properties
      *
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UCHAR_EMOJI=57,
     /**
      * Binary property Emoji_Presentation.
      * See http://www.unicode.org/reports/tr51/#Emoji_Properties
      *
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UCHAR_EMOJI_PRESENTATION=58,
     /**
      * Binary property Emoji_Modifier.
      * See http://www.unicode.org/reports/tr51/#Emoji_Properties
      *
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UCHAR_EMOJI_MODIFIER=59,
     /**
      * Binary property Emoji_Modifier_Base.
      * See http://www.unicode.org/reports/tr51/#Emoji_Properties
      *
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UCHAR_EMOJI_MODIFIER_BASE=60,
-#endif /* U_HIDE_DRAFT_API */
 #ifndef U_HIDE_DEPRECATED_API
     /**
      * One more than the last constant for binary Unicode properties.
diff --git a/source/common/unicode/ucharstrie.h b/source/common/unicode/ucharstrie.h
index 8daed44..dfc93f6 100644
--- a/source/common/unicode/ucharstrie.h
+++ b/source/common/unicode/ucharstrie.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucharstrie.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -36,7 +36,7 @@
 
 /**
  * Light-weight, non-const reader class for a UCharsTrie.
- * Traverses a UChar-serialized data structure with minimal state,
+ * Traverses a char16_t-serialized data structure with minimal state,
  * for mapping strings (16-bit-unit sequences) to non-negative integer values.
  *
  * This class owns the serialized trie data only if it was constructed by
@@ -52,18 +52,18 @@
     /**
      * Constructs a UCharsTrie reader instance.
      *
-     * The trieUChars must contain a copy of a UChar sequence from the UCharsTrieBuilder,
-     * starting with the first UChar of that sequence.
-     * The UCharsTrie object will not read more UChars than
+     * The trieUChars must contain a copy of a char16_t sequence from the UCharsTrieBuilder,
+     * starting with the first char16_t of that sequence.
+     * The UCharsTrie object will not read more char16_ts than
      * the UCharsTrieBuilder generated in the corresponding build() call.
      *
      * The array is not copied/cloned and must not be modified while
      * the UCharsTrie object is in use.
      *
-     * @param trieUChars The UChar array that contains the serialized trie.
+     * @param trieUChars The char16_t array that contains the serialized trie.
      * @stable ICU 4.8
      */
-    UCharsTrie(const UChar *trieUChars)
+    UCharsTrie(ConstChar16Ptr trieUChars)
             : ownedArray_(NULL), uchars_(trieUChars),
               pos_(uchars_), remainingMatchLength_(-1) {}
 
@@ -75,7 +75,7 @@
 
     /**
      * Copy constructor, copies the other trie reader object and its state,
-     * but not the UChar array which will be shared. (Shallow copy.)
+     * but not the char16_t array which will be shared. (Shallow copy.)
      * @param other Another UCharsTrie object.
      * @stable ICU 4.8
      */
@@ -109,8 +109,8 @@
     private:
         friend class UCharsTrie;
 
-        const UChar *uchars;
-        const UChar *pos;
+        const char16_t *uchars;
+        const char16_t *pos;
         int32_t remainingMatchLength;
     };
 
@@ -148,14 +148,14 @@
 
     /**
      * Determines whether the string so far matches, whether it has a value,
-     * and whether another input UChar can continue a matching string.
+     * and whether another input char16_t can continue a matching string.
      * @return The match/value Result.
      * @stable ICU 4.8
      */
     UStringTrieResult current() const;
 
     /**
-     * Traverses the trie from the initial state for this input UChar.
+     * Traverses the trie from the initial state for this input char16_t.
      * Equivalent to reset().next(uchar).
      * @param uchar Input char value. Values below 0 and above 0xffff will never match.
      * @return The match/value Result.
@@ -177,7 +177,7 @@
     UStringTrieResult firstForCodePoint(UChar32 cp);
 
     /**
-     * Traverses the trie from the current state for this input UChar.
+     * Traverses the trie from the current state for this input char16_t.
      * @param uchar Input char value. Values below 0 and above 0xffff will never match.
      * @return The match/value Result.
      * @stable ICU 4.8
@@ -208,7 +208,7 @@
      * @return The match/value Result.
      * @stable ICU 4.8
      */
-    UStringTrieResult next(const UChar *s, int32_t length);
+    UStringTrieResult next(ConstChar16Ptr s, int32_t length);
 
     /**
      * Returns a matching string's value if called immediately after
@@ -220,7 +220,7 @@
      * @stable ICU 4.8
      */
     inline int32_t getValue() const {
-        const UChar *pos=pos_;
+        const char16_t *pos=pos_;
         int32_t leadUnit=*pos++;
         // U_ASSERT(leadUnit>=kMinValueLead);
         return leadUnit&kValueIsFinal ?
@@ -237,16 +237,16 @@
      * @stable ICU 4.8
      */
     inline UBool hasUniqueValue(int32_t &uniqueValue) const {
-        const UChar *pos=pos_;
+        const char16_t *pos=pos_;
         // Skip the rest of a pending linear-match node.
         return pos!=NULL && findUniqueValue(pos+remainingMatchLength_+1, FALSE, uniqueValue);
     }
 
     /**
-     * Finds each UChar which continues the string from the current state.
-     * That is, each UChar c for which it would be next(c)!=USTRINGTRIE_NO_MATCH now.
-     * @param out Each next UChar is appended to this object.
-     * @return the number of UChars which continue the string from here
+     * Finds each char16_t which continues the string from the current state.
+     * That is, each char16_t c for which it would be next(c)!=USTRINGTRIE_NO_MATCH now.
+     * @param out Each next char16_t is appended to this object.
+     * @return the number of char16_ts which continue the string from here
      * @stable ICU 4.8
      */
     int32_t getNextUChars(Appendable &out) const;
@@ -258,8 +258,8 @@
     class U_COMMON_API Iterator : public UMemory {
     public:
         /**
-         * Iterates from the root of a UChar-serialized UCharsTrie.
-         * @param trieUChars The trie UChars.
+         * Iterates from the root of a char16_t-serialized UCharsTrie.
+         * @param trieUChars The trie char16_ts.
          * @param maxStringLength If 0, the iterator returns full strings.
          *                        Otherwise, the iterator returns strings with this maximum length.
          * @param errorCode Standard ICU error code. Its input value must
@@ -268,7 +268,7 @@
          *                  function chaining. (See User Guide for details.)
          * @stable ICU 4.8
          */
-        Iterator(const UChar *trieUChars, int32_t maxStringLength, UErrorCode &errorCode);
+        Iterator(ConstChar16Ptr trieUChars, int32_t maxStringLength, UErrorCode &errorCode);
 
         /**
          * Iterates from the current state of the specified UCharsTrie.
@@ -336,11 +336,11 @@
             return TRUE;
         }
 
-        const UChar *branchNext(const UChar *pos, int32_t length, UErrorCode &errorCode);
+        const char16_t *branchNext(const char16_t *pos, int32_t length, UErrorCode &errorCode);
 
-        const UChar *uchars_;
-        const UChar *pos_;
-        const UChar *initialPos_;
+        const char16_t *uchars_;
+        const char16_t *pos_;
+        const char16_t *initialPos_;
         int32_t remainingMatchLength_;
         int32_t initialRemainingMatchLength_;
         UBool skipValue_;  // Skip intermediate value which was already delivered.
@@ -368,7 +368,7 @@
      * this constructor adopts the builder's array.
      * This constructor is only called by the builder.
      */
-    UCharsTrie(UChar *adoptUChars, const UChar *trieUChars)
+    UCharsTrie(char16_t *adoptUChars, const char16_t *trieUChars)
             : ownedArray_(adoptUChars), uchars_(trieUChars),
               pos_(uchars_), remainingMatchLength_(-1) {}
 
@@ -381,7 +381,7 @@
 
     // Reads a compact 32-bit integer.
     // pos is already after the leadUnit, and the lead unit has bit 15 reset.
-    static inline int32_t readValue(const UChar *pos, int32_t leadUnit) {
+    static inline int32_t readValue(const char16_t *pos, int32_t leadUnit) {
         int32_t value;
         if(leadUnit<kMinTwoUnitValueLead) {
             value=leadUnit;
@@ -392,7 +392,7 @@
         }
         return value;
     }
-    static inline const UChar *skipValue(const UChar *pos, int32_t leadUnit) {
+    static inline const char16_t *skipValue(const char16_t *pos, int32_t leadUnit) {
         if(leadUnit>=kMinTwoUnitValueLead) {
             if(leadUnit<kThreeUnitValueLead) {
                 ++pos;
@@ -402,12 +402,12 @@
         }
         return pos;
     }
-    static inline const UChar *skipValue(const UChar *pos) {
+    static inline const char16_t *skipValue(const char16_t *pos) {
         int32_t leadUnit=*pos++;
         return skipValue(pos, leadUnit&0x7fff);
     }
 
-    static inline int32_t readNodeValue(const UChar *pos, int32_t leadUnit) {
+    static inline int32_t readNodeValue(const char16_t *pos, int32_t leadUnit) {
         // U_ASSERT(kMinValueLead<=leadUnit && leadUnit<kValueIsFinal);
         int32_t value;
         if(leadUnit<kMinTwoUnitNodeValueLead) {
@@ -419,7 +419,7 @@
         }
         return value;
     }
-    static inline const UChar *skipNodeValue(const UChar *pos, int32_t leadUnit) {
+    static inline const char16_t *skipNodeValue(const char16_t *pos, int32_t leadUnit) {
         // U_ASSERT(kMinValueLead<=leadUnit && leadUnit<kValueIsFinal);
         if(leadUnit>=kMinTwoUnitNodeValueLead) {
             if(leadUnit<kThreeUnitNodeValueLead) {
@@ -431,7 +431,7 @@
         return pos;
     }
 
-    static inline const UChar *jumpByDelta(const UChar *pos) {
+    static inline const char16_t *jumpByDelta(const char16_t *pos) {
         int32_t delta=*pos++;
         if(delta>=kMinTwoUnitDeltaLead) {
             if(delta==kThreeUnitDeltaLead) {
@@ -444,7 +444,7 @@
         return pos+delta;
     }
 
-    static const UChar *skipDelta(const UChar *pos) {
+    static const char16_t *skipDelta(const char16_t *pos) {
         int32_t delta=*pos++;
         if(delta>=kMinTwoUnitDeltaLead) {
             if(delta==kThreeUnitDeltaLead) {
@@ -461,28 +461,28 @@
     }
 
     // Handles a branch node for both next(uchar) and next(string).
-    UStringTrieResult branchNext(const UChar *pos, int32_t length, int32_t uchar);
+    UStringTrieResult branchNext(const char16_t *pos, int32_t length, int32_t uchar);
 
     // Requires remainingLength_<0.
-    UStringTrieResult nextImpl(const UChar *pos, int32_t uchar);
+    UStringTrieResult nextImpl(const char16_t *pos, int32_t uchar);
 
     // Helper functions for hasUniqueValue().
     // Recursively finds a unique value (or whether there is not a unique one)
     // from a branch.
-    static const UChar *findUniqueValueFromBranch(const UChar *pos, int32_t length,
+    static const char16_t *findUniqueValueFromBranch(const char16_t *pos, int32_t length,
                                                   UBool haveUniqueValue, int32_t &uniqueValue);
     // Recursively finds a unique value (or whether there is not a unique one)
     // starting from a position on a node lead unit.
-    static UBool findUniqueValue(const UChar *pos, UBool haveUniqueValue, int32_t &uniqueValue);
+    static UBool findUniqueValue(const char16_t *pos, UBool haveUniqueValue, int32_t &uniqueValue);
 
     // Helper functions for getNextUChars().
     // getNextUChars() when pos is on a branch node.
-    static void getNextBranchUChars(const UChar *pos, int32_t length, Appendable &out);
+    static void getNextBranchUChars(const char16_t *pos, int32_t length, Appendable &out);
 
     // UCharsTrie data structure
     //
-    // The trie consists of a series of UChar-serialized nodes for incremental
-    // Unicode string/UChar sequence matching. (UChar=16-bit unsigned integer)
+    // The trie consists of a series of char16_t-serialized nodes for incremental
+    // Unicode string/char16_t sequence matching. (char16_t=16-bit unsigned integer)
     // The root node is at the beginning of the trie data.
     //
     // Types of nodes are distinguished by their node lead unit ranges.
@@ -491,9 +491,9 @@
     //
     // Node types:
     //  - Final-value node: Stores a 32-bit integer in a compact, variable-length format.
-    //    The value is for the string/UChar sequence so far.
+    //    The value is for the string/char16_t sequence so far.
     //  - Match node, optionally with an intermediate value in a different compact format.
-    //    The value, if present, is for the string/UChar sequence so far.
+    //    The value, if present, is for the string/char16_t sequence so far.
     //
     //  Aside from the value, which uses the node lead unit's high bits:
     //
@@ -560,15 +560,15 @@
 
     static const int32_t kMaxTwoUnitDelta=((kThreeUnitDeltaLead-kMinTwoUnitDeltaLead)<<16)-1;  // 0x03feffff
 
-    UChar *ownedArray_;
+    char16_t *ownedArray_;
 
     // Fixed value referencing the UCharsTrie words.
-    const UChar *uchars_;
+    const char16_t *uchars_;
 
     // Iterator variables.
 
     // Pointer to next trie unit to read. NULL if no more matches.
-    const UChar *pos_;
+    const char16_t *pos_;
     // Remaining length of a linear-match node, minus 1. Negative if not in such a node.
     int32_t remainingMatchLength_;
 };
diff --git a/source/common/unicode/ucharstriebuilder.h b/source/common/unicode/ucharstriebuilder.h
index cc9fb77..2aa4757 100644
--- a/source/common/unicode/ucharstriebuilder.h
+++ b/source/common/unicode/ucharstriebuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucharstriebuilder.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -89,21 +89,21 @@
     UCharsTrie *build(UStringTrieBuildOption buildOption, UErrorCode &errorCode);
 
     /**
-     * Builds a UCharsTrie for the add()ed data and UChar-serializes it.
+     * Builds a UCharsTrie for the add()ed data and char16_t-serializes it.
      * Once built, no further data can be add()ed until clear() is called.
      *
      * A UCharsTrie cannot be empty. At least one (string, value) pair
      * must have been add()ed.
      *
      * Multiple calls to buildUnicodeString() set the UnicodeStrings to the
-     * builder's same UChar array, without rebuilding.
+     * builder's same char16_t array, without rebuilding.
      * If buildUnicodeString() is called after build(), the trie will be
      * re-serialized into a new array.
      * If build() is called after buildUnicodeString(), the trie object will become
      * the owner of the previously returned array.
      * After clear() has been called, a new array will be used as well.
      * @param buildOption Build option, see UStringTrieBuildOption.
-     * @param result A UnicodeString which will be set to the UChar-serialized
+     * @param result A UnicodeString which will be set to the char16_t-serialized
      *               UCharsTrie for the add()ed data.
      * @param errorCode Standard ICU error code. Its input value must
      *                  pass the U_SUCCESS() test, or else the function returns
@@ -135,14 +135,14 @@
     void buildUChars(UStringTrieBuildOption buildOption, UErrorCode &errorCode);
 
     virtual int32_t getElementStringLength(int32_t i) const;
-    virtual UChar getElementUnit(int32_t i, int32_t unitIndex) const;
+    virtual char16_t getElementUnit(int32_t i, int32_t unitIndex) const;
     virtual int32_t getElementValue(int32_t i) const;
 
     virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t unitIndex) const;
 
     virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t unitIndex) const;
     virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t unitIndex, int32_t count) const;
-    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, UChar unit) const;
+    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, char16_t unit) const;
 
     virtual UBool matchNodesCanHaveValues() const { return TRUE; }
 
@@ -152,11 +152,11 @@
 
     class UCTLinearMatchNode : public LinearMatchNode {
     public:
-        UCTLinearMatchNode(const UChar *units, int32_t len, Node *nextNode);
+        UCTLinearMatchNode(const char16_t *units, int32_t len, Node *nextNode);
         virtual UBool operator==(const Node &other) const;
         virtual void write(StringTrieBuilder &builder);
     private:
-        const UChar *s;
+        const char16_t *s;
     };
 
     virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length,
@@ -164,7 +164,7 @@
 
     UBool ensureCapacity(int32_t length);
     virtual int32_t write(int32_t unit);
-    int32_t write(const UChar *s, int32_t length);
+    int32_t write(const char16_t *s, int32_t length);
     virtual int32_t writeElementUnits(int32_t i, int32_t unitIndex, int32_t length);
     virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal);
     virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t node);
@@ -175,9 +175,9 @@
     int32_t elementsCapacity;
     int32_t elementsLength;
 
-    // UChar serialization of the trie.
+    // char16_t serialization of the trie.
     // Grows from the back: ucharsLength measures from the end of the buffer!
-    UChar *uchars;
+    char16_t *uchars;
     int32_t ucharsCapacity;
     int32_t ucharsLength;
 };
diff --git a/source/common/unicode/uchriter.h b/source/common/unicode/uchriter.h
index d87ffb1..efcd263 100644
--- a/source/common/unicode/uchriter.h
+++ b/source/common/unicode/uchriter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -15,18 +15,18 @@
 
 /**
  * \file 
- * \brief C++ API: UChar Character Iterator
+ * \brief C++ API: char16_t Character Iterator
  */
  
 U_NAMESPACE_BEGIN
 
 /**
  * A concrete subclass of CharacterIterator that iterates over the
- * characters (code units or code points) in a UChar array.
+ * characters (code units or code points) in a char16_t array.
  * It's possible not only to create an
- * iterator that iterates over an entire UChar array, but also to
- * create one that iterates over only a subrange of a UChar array
- * (iterators over different subranges of the same UChar array don't
+ * iterator that iterates over an entire char16_t array, but also to
+ * create one that iterates over only a subrange of a char16_t array
+ * (iterators over different subranges of the same char16_t array don't
  * compare equal).
  * @see CharacterIterator
  * @see ForwardCharacterIterator
@@ -35,34 +35,34 @@
 class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
 public:
   /**
-   * Create an iterator over the UChar array referred to by "textPtr".
+   * Create an iterator over the char16_t array referred to by "textPtr".
    * The iteration range is 0 to <code>length-1</code>.
    * text is only aliased, not adopted (the
    * destructor will not delete it).
-   * @param textPtr The UChar array to be iterated over
-   * @param length The length of the UChar array
+   * @param textPtr The char16_t array to be iterated over
+   * @param length The length of the char16_t array
    * @stable ICU 2.0
    */
-  UCharCharacterIterator(const UChar* textPtr, int32_t length);
+  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length);
 
   /**
-   * Create an iterator over the UChar array referred to by "textPtr".
+   * Create an iterator over the char16_t array referred to by "textPtr".
    * The iteration range is 0 to <code>length-1</code>.
    * text is only aliased, not adopted (the
    * destructor will not delete it).
    * The starting
    * position is specified by "position". If "position" is outside the valid
    * iteration range, the behavior of this object is undefined.
-   * @param textPtr The UChar array to be iteratd over
-   * @param length The length of the UChar array
+   * @param textPtr The char16_t array to be iteratd over
+   * @param length The length of the char16_t array
    * @param position The starting position of the iteration
    * @stable ICU 2.0
    */
-  UCharCharacterIterator(const UChar* textPtr, int32_t length,
+  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
                          int32_t position);
 
   /**
-   * Create an iterator over the UChar array referred to by "textPtr".
+   * Create an iterator over the char16_t array referred to by "textPtr".
    * The iteration range is 0 to <code>end-1</code>.
    * text is only aliased, not adopted (the
    * destructor will not delete it).
@@ -70,14 +70,14 @@
    * position is specified by "position". If begin and end do not
    * form a valid iteration range or "position" is outside the valid
    * iteration range, the behavior of this object is undefined.
-   * @param textPtr The UChar array to be iterated over
-   * @param length The length of the UChar array
+   * @param textPtr The char16_t array to be iterated over
+   * @param length The length of the char16_t array
    * @param textBegin  The begin position of the iteration range
    * @param textEnd    The end position of the iteration range
    * @param position    The starting position of the iteration
    * @stable ICU 2.0
    */
-  UCharCharacterIterator(const UChar* textPtr, int32_t length,
+  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
                          int32_t textBegin,
                          int32_t textEnd,
                          int32_t position);
@@ -141,7 +141,7 @@
    * @return the first code unit in its iteration range.
    * @stable ICU 2.0
    */
-  virtual UChar         first(void);
+  virtual char16_t         first(void);
 
   /**
    * Sets the iterator to refer to the first code unit in its
@@ -151,7 +151,7 @@
    * @return the first code unit in its iteration range
    * @stable ICU 2.0
    */
-  virtual UChar         firstPostInc(void);
+  virtual char16_t         firstPostInc(void);
 
   /**
    * Sets the iterator to refer to the first code point in its
@@ -181,7 +181,7 @@
    * @return the last code unit in its iteration range.
    * @stable ICU 2.0
    */
-  virtual UChar         last(void);
+  virtual char16_t         last(void);
 
   /**
    * Sets the iterator to refer to the last code point in its
@@ -200,7 +200,7 @@
    * @return the code unit
    * @stable ICU 2.0
    */
-  virtual UChar         setIndex(int32_t position);
+  virtual char16_t         setIndex(int32_t position);
 
   /**
    * Sets the iterator to refer to the beginning of the code point
@@ -220,7 +220,7 @@
    * @return the code unit the iterator currently refers to.
    * @stable ICU 2.0
    */
-  virtual UChar         current(void) const;
+  virtual char16_t         current(void) const;
 
   /**
    * Returns the code point the iterator currently refers to.
@@ -236,7 +236,7 @@
    * @return the next code unit in the iteration range.
    * @stable ICU 2.0
    */
-  virtual UChar         next(void);
+  virtual char16_t         next(void);
 
   /**
    * Gets the current code unit for returning and advances to the next code unit
@@ -246,7 +246,7 @@
    * @return the current code unit.
    * @stable ICU 2.0
    */
-  virtual UChar         nextPostInc(void);
+  virtual char16_t         nextPostInc(void);
 
   /**
    * Advances to the next code point in the iteration range (toward
@@ -288,7 +288,7 @@
    * @return the previous code unit in the iteration range.
    * @stable ICU 2.0
    */
-  virtual UChar         previous(void);
+  virtual char16_t         previous(void);
 
   /**
    * Advances to the previous code point in the iteration range (toward
@@ -334,16 +334,20 @@
    * @return the new position
    * @stable ICU 2.0
    */
+#ifdef move32
+   // One of the system headers right now is sometimes defining a conflicting macro we don't use
+#undef move32
+#endif
   virtual int32_t      move32(int32_t delta, EOrigin origin);
 
   /**
    * Sets the iterator to iterate over a new range of text
    * @stable ICU 2.0
    */
-  void setText(const UChar* newText, int32_t newTextLength);
+  void setText(ConstChar16Ptr newText, int32_t newTextLength);
 
   /**
-   * Copies the UChar array under iteration into the UnicodeString
+   * Copies the char16_t array under iteration into the UnicodeString
    * referred to by "result".  Even if this iterator iterates across
    * only a part of this string, the whole string is copied.
    * @param result Receives a copy of the text under iteration.
@@ -375,7 +379,7 @@
    * Protected member text
    * @stable ICU 2.0
    */
-  const UChar*            text;
+  const char16_t*            text;
 
 };
 
diff --git a/source/common/unicode/uclean.h b/source/common/unicode/uclean.h
index d7801d6..f83dd5e 100644
--- a/source/common/unicode/uclean.h
+++ b/source/common/unicode/uclean.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  uclean.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -101,7 +101,7 @@
 U_STABLE void U_EXPORT2 
 u_cleanup(void);
 
-
+U_CDECL_BEGIN
 /**
   *  Pointer type for a user supplied memory allocation function.
   *  @param context user supplied value, obtained from from u_setMemoryFunctions().
@@ -149,9 +149,10 @@
  *  @system
  */  
 U_STABLE void U_EXPORT2 
-u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f, 
+u_setMemoryFunctions(const void *context, UMemAllocFn * a, UMemReallocFn * r, UMemFreeFn * f, 
                     UErrorCode *status);
 
+U_CDECL_END
 
 #ifndef U_HIDE_DEPRECATED_API
 /*********************************************************************************
@@ -172,6 +173,7 @@
   */
 typedef void *UMTX;
 
+U_CDECL_BEGIN
 /**
   *  Function Pointer type for a user supplied mutex initialization function.
   *  The user-supplied function will be called by ICU whenever ICU needs to create a
@@ -201,7 +203,7 @@
   *  @system
   */
 typedef void U_CALLCONV UMtxFn   (const void *context, UMTX  *mutex);
-
+U_CDECL_END
 
 /**
   *  Set the functions that ICU will use for mutex operations
diff --git a/source/common/unicode/ucnv.h b/source/common/unicode/ucnv.h
index 767c1a2..86e3b84 100644
--- a/source/common/unicode/ucnv.h
+++ b/source/common/unicode/ucnv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ucnv_cb.h b/source/common/unicode/ucnv_cb.h
index 7104c72..14169ed 100644
--- a/source/common/unicode/ucnv_cb.h
+++ b/source/common/unicode/ucnv_cb.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ucnv_err.h b/source/common/unicode/ucnv_err.h
index b970b89..2f74754 100644
--- a/source/common/unicode/ucnv_err.h
+++ b/source/common/unicode/ucnv_err.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ucnvsel.h b/source/common/unicode/ucnvsel.h
index 3eed081..d423845 100644
--- a/source/common/unicode/ucnvsel.h
+++ b/source/common/unicode/ucnvsel.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/unicode/uconfig.h b/source/common/unicode/uconfig.h
index 77a476d..c26fce4 100644
--- a/source/common/unicode/uconfig.h
+++ b/source/common/unicode/uconfig.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  uconfig.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/ucurr.h b/source/common/unicode/ucurr.h
index 56bad0a..1abb3b2 100644
--- a/source/common/unicode/ucurr.h
+++ b/source/common/unicode/ucurr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/udata.h b/source/common/unicode/udata.h
index bde719d..a0286e1 100644
--- a/source/common/unicode/udata.h
+++ b/source/common/unicode/udata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  udata.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/udisplaycontext.h b/source/common/unicode/udisplaycontext.h
index eaef02d..c4f6c95 100644
--- a/source/common/unicode/udisplaycontext.h
+++ b/source/common/unicode/udisplaycontext.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/common/unicode/uenum.h b/source/common/unicode/uenum.h
index 8da1bd4..fc6efa2 100644
--- a/source/common/unicode/uenum.h
+++ b/source/common/unicode/uenum.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uenum.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -23,7 +23,9 @@
 #include "unicode/localpointer.h"
 
 #if U_SHOW_CPLUSPLUS_API
-#include "unicode/strenum.h"
+U_NAMESPACE_BEGIN
+class StringEnumeration;
+U_NAMESPACE_END
 #endif
 
 /**
diff --git a/source/common/unicode/uidna.h b/source/common/unicode/uidna.h
index af3455c..0dafb76 100644
--- a/source/common/unicode/uidna.h
+++ b/source/common/unicode/uidna.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -8,7 +8,7 @@
  *
  *******************************************************************************
  *   file name:  uidna.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/unicode/uiter.h b/source/common/unicode/uiter.h
index e6cb838..11ad75a 100644
--- a/source/common/unicode/uiter.h
+++ b/source/common/unicode/uiter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uiter.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/uldnames.h b/source/common/unicode/uldnames.h
index 30f465a..3ebffa2 100644
--- a/source/common/unicode/uldnames.h
+++ b/source/common/unicode/uldnames.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/unicode/ulistformatter.h b/source/common/unicode/ulistformatter.h
index 2167f60..9fe24f7 100644
--- a/source/common/unicode/ulistformatter.h
+++ b/source/common/unicode/ulistformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
@@ -49,7 +49,7 @@
  *            or NULL if an error occurred.
  * @stable ICU 55
  */
-U_STABLE UListFormatter* U_EXPORT2
+U_CAPI UListFormatter* U_EXPORT2
 ulistfmt_open(const char*  locale,
               UErrorCode*  status);
 
@@ -59,7 +59,7 @@
  *            The UListFormatter object to close.
  * @stable ICU 55
  */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 ulistfmt_close(UListFormatter *listfmt);
 
 
@@ -116,7 +116,7 @@
  *            total buffer size needed (e.g. for illegal arguments).
  * @stable ICU 55
  */
-U_DRAFT int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 ulistfmt_format(const UListFormatter* listfmt,
                 const UChar* const strings[],
                 const int32_t *    stringLengths,
diff --git a/source/common/unicode/uloc.h b/source/common/unicode/uloc.h
index 92ce20e..23a54a9 100644
--- a/source/common/unicode/uloc.h
+++ b/source/common/unicode/uloc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -61,7 +61,7 @@
  * http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</a>
  *
  * <P>
- * The second option includes an additonal <STRONG>ISO Country
+ * The second option includes an additional <STRONG>ISO Country
  * Code.</STRONG> These codes are the upper-case two-letter codes
  * as defined by ISO-3166.
  * You can find a full list of these codes at a number of sites, such as:
@@ -69,7 +69,7 @@
  * http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html</a>
  *
  * <P>
- * The third option requires another additonal information--the 
+ * The third option requires another additional information--the 
  * <STRONG>Variant.</STRONG>
  * The Variant codes are vendor and browser-specific.
  * For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX.
@@ -157,7 +157,7 @@
  * <STRONG>just</STRONG> a mechanism for identifying these services.
  *
  * <P>
- * Each international serivce that performs locale-sensitive operations 
+ * Each international service that performs locale-sensitive operations 
  * allows you
  * to get all the available objects of that type. You can sift
  * through these objects by language, country, or variant,
@@ -539,6 +539,9 @@
  * Gets the Win32 LCID value for the specified locale.
  * If the ICU locale is not recognized by Windows, 0 will be returned.
  *
+ * LCIDs were deprecated with Windows Vista and Microsoft recommends
+ * that developers use BCP47 style tags instead (uloc_toLanguageTag).
+ *
  * @param localeID the locale to get the Win32 LCID value with
  * @return country the Win32 LCID for localeID
  * @stable ICU 2.0
@@ -577,7 +580,7 @@
  *                 if the locale's language code is "en", passing Locale::getFrench() for
  *                 inLocale would result in "", while passing Locale::getGerman()
  *                 for inLocale would result in "". NULL may be used to specify the default.
- * @param script the displayable country code for localeID
+ * @param script the displayable script for the localeID
  * @param scriptCapacity the size of the script buffer to store the  
  * displayable script code with
  * @param status error information if retrieving the displayable script code failed
@@ -852,10 +855,12 @@
  * Get the value for a keyword. Locale name does not need to be normalized.
  * 
  * @param localeID locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK")
- * @param keywordName name of the keyword for which we want the value. Case insensitive.
+ * @param keywordName name of the keyword for which we want the value; must not be
+ *  NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive.
  * @param buffer receiving buffer
  * @param bufferCapacity capacity of receiving buffer
- * @param status containing error code - buffer not big enough.
+ * @param status containing error code: e.g. buffer not big enough or ill-formed localeID
+ *  or keywordName parameters.
  * @return the length of keyword value
  * @stable ICU 2.8
  */
@@ -872,18 +877,26 @@
  * For removing all keywords, use uloc_getBaseName().
  *
  * NOTE: Unlike almost every other ICU function which takes a
- * buffer, this function will NOT truncate the output text. If a
- * BUFFER_OVERFLOW_ERROR is received, it means that the original
- * buffer is untouched. This is done to prevent incorrect or possibly
- * even malformed locales from being generated and used.
+ * buffer, this function will NOT truncate the output text, and will
+ * not update the buffer with unterminated text setting a status of
+ * U_STRING_NOT_TERMINATED_WARNING. If a BUFFER_OVERFLOW_ERROR is received,
+ * it means a terminated version of the updated locale ID would not fit
+ * in the buffer, and the original buffer is untouched. This is done to
+ * prevent incorrect or possibly even malformed locales from being generated
+ * and used.
  *
- * @param keywordName name of the keyword to be set. Case insensitive.
+ * @param keywordName name of the keyword to be set; must not be
+ *  NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive.
  * @param keywordValue value of the keyword to be set. If 0-length or
- *  NULL, will result in the keyword being removed. No error is given if 
- *  that keyword does not exist.
- * @param buffer input buffer containing locale to be modified.
+ *  NULL, will result in the keyword being removed; no error is given if 
+ *  that keyword does not exist. Otherwise, must consist only of
+ *  [A-Za-z0-9] and [/_+-].
+ * @param buffer input buffer containing well-formed locale ID to be
+ *  modified.
  * @param bufferCapacity capacity of receiving buffer
- * @param status containing error code - buffer not big enough.
+ * @param status containing error code: e.g. buffer not big enough
+ *  or ill-formed keywordName or keywordValue parameters, or ill-formed
+ *  locale ID in buffer on input.
  * @return the length needed for the buffer
  * @see uloc_getKeywordValue
  * @stable ICU 3.2
diff --git a/source/common/unicode/umachine.h b/source/common/unicode/umachine.h
index 51581c7..3ba9161 100644
--- a/source/common/unicode/umachine.h
+++ b/source/common/unicode/umachine.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  umachine.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -51,29 +51,6 @@
  */
 #include <stddef.h>
 
-#ifndef U_HIDE_INTERNAL_API
-/*
- *  U_USE_CHAR16_T
- *     When defined, force use of char16_t for UChar.
- *     Note: char16_t is expected to become the default and required in the future,
- *           and this option will be removed.
- *     @internal
- */
-#ifdef U_USE_CHAR16_T
-#ifdef UCHAR_TYPE
-#undef UCHAR_TYPE
-#endif
-#define UCHAR_TYPE char16_t
-
-/*
- * In plain C, <uchar.h> is needed for the definition of char16_t
- */
-#ifndef __cplusplus
-#include <uchar.h>
-#endif
-#endif
-#endif  /* U_HIDE_INTERNAL_API */
-
 /*==========================================================================*/
 /* For C wrappers, we use the symbol U_STABLE.                                */
 /* This works properly if the includer is C or C++.                         */
@@ -314,30 +291,92 @@
 #define U_SIZEOF_UCHAR 2
 
 /**
+ * \def U_CHAR16_IS_TYPEDEF
+ * If 1, then char16_t is a typedef and not a real type (yet)
+ * @internal
+ */
+#if (U_PLATFORM == U_PF_AIX) && defined(__cplusplus) &&(U_CPLUSPLUS_VERSION < 11)
+// for AIX, uchar.h needs to be included
+# include <uchar.h>
+# define U_CHAR16_IS_TYPEDEF 1
+#else
+# define U_CHAR16_IS_TYPEDEF 0
+#endif
+
+
+/**
  * \var UChar
- * Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t),
- * or wchar_t if that is 16 bits wide; always assumed to be unsigned.
- * If neither is available, then define UChar to be uint16_t.
  *
- * This makes the definition of UChar platform-dependent
- * but allows direct string type compatibility with platforms with
- * 16-bit wchar_t types.
+ * The base type for UTF-16 code units and pointers.
+ * Unsigned 16-bit integer.
+ * Starting with ICU 59, C++ API uses char16_t directly, while C API continues to use UChar.
+ *
+ * UChar is configurable by defining the macro UCHAR_TYPE
+ * on the preprocessor or compiler command line:
+ * -DUCHAR_TYPE=uint16_t or -DUCHAR_TYPE=wchar_t (if U_SIZEOF_WCHAR_T==2) etc.
+ * (The UCHAR_TYPE can also be #defined earlier in this file, for outside the ICU library code.)
+ * This is for transitional use from application code that uses uint16_t or wchar_t for UTF-16.
+ *
+ * The default is UChar=char16_t.
+ *
+ * C++11 defines char16_t as bit-compatible with uint16_t, but as a distinct type.
+ *
+ * In C, char16_t is a simple typedef of uint_least16_t.
+ * ICU requires uint_least16_t=uint16_t for data memory mapping.
+ * On macOS, char16_t is not available because the uchar.h standard header is missing.
  *
  * @stable ICU 4.4
  */
-#if defined(UCHAR_TYPE)
+
+#if 1
+    // #if 1 is normal. UChar defaults to char16_t in C++.
+    // For configuration testing of UChar=uint16_t temporarily change this to #if 0.
+    // The intltest Makefile #defines UCHAR_TYPE=char16_t,
+    // so we only #define it to uint16_t if it is undefined so far.
+#elif !defined(UCHAR_TYPE)
+#   define UCHAR_TYPE uint16_t
+#endif
+
+#if defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \
+        defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION)
+    // Inside the ICU library code, never configurable.
+    typedef char16_t UChar;
+#elif defined(UCHAR_TYPE)
     typedef UCHAR_TYPE UChar;
-/* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-C++11 callers
-    typedef char16_t UChar;  */
-#elif U_SIZEOF_WCHAR_T==2
-    typedef wchar_t UChar;
-#elif defined(__CHAR16_TYPE__)
-    typedef __CHAR16_TYPE__ UChar;
+#elif defined(__cplusplus)
+    typedef char16_t UChar;
 #else
     typedef uint16_t UChar;
 #endif
 
 /**
+ * \var OldUChar
+ * Default ICU 58 definition of UChar.
+ * A base type for UTF-16 code units and pointers.
+ * Unsigned 16-bit integer.
+ *
+ * Define OldUChar to be wchar_t if that is 16 bits wide.
+ * If wchar_t is not 16 bits wide, then define UChar to be uint16_t.
+ *
+ * This makes the definition of OldUChar platform-dependent
+ * but allows direct string type compatibility with platforms with
+ * 16-bit wchar_t types.
+ *
+ * This is how UChar was defined in ICU 58, for transition convenience.
+ * Exception: ICU 58 UChar was defined to UCHAR_TYPE if that macro was defined.
+ * The current UChar responds to UCHAR_TYPE but OldUChar does not.
+ *
+ * @draft ICU 59
+ */
+#if U_SIZEOF_WCHAR_T==2
+    typedef wchar_t OldUChar;
+#elif defined(__CHAR16_TYPE__)
+    typedef __CHAR16_TYPE__ OldUChar;
+#else
+    typedef uint16_t OldUChar;
+#endif
+
+/**
  * Define UChar32 as a type for single Unicode code points.
  * UChar32 is a signed 32-bit integer (same as int32_t).
  *
diff --git a/source/common/unicode/umisc.h b/source/common/unicode/umisc.h
index 7b6d35f..213290b 100644
--- a/source/common/unicode/umisc.h
+++ b/source/common/unicode/umisc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  umisc.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/unifilt.h b/source/common/unicode/unifilt.h
index 0fdcd14..e105271 100644
--- a/source/common/unicode/unifilt.h
+++ b/source/common/unicode/unifilt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -30,7 +30,7 @@
  * defined range.
  * @stable ICU 3.0
  */
-#define U_ETHER ((UChar)0xFFFF)
+#define U_ETHER ((char16_t)0xFFFF)
 
 /**
  *
diff --git a/source/common/unicode/unifunct.h b/source/common/unicode/unifunct.h
index b40027c..1c50759 100644
--- a/source/common/unicode/unifunct.h
+++ b/source/common/unicode/unifunct.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/unimatch.h b/source/common/unicode/unimatch.h
index 605f3f5..ee4326f 100644
--- a/source/common/unicode/unimatch.h
+++ b/source/common/unicode/unimatch.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) 2001-2005, International Business Machines Corporation and others. All Rights Reserved.
diff --git a/source/common/unicode/uniset.h b/source/common/unicode/uniset.h
index fdd7fc3..4a4ce19 100644
--- a/source/common/unicode/uniset.h
+++ b/source/common/unicode/uniset.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
@@ -294,7 +294,7 @@
      * indicating that toPattern() must generate a pattern
      * representation from the inversion list.
      */
-    UChar *pat;
+    char16_t *pat;
     UVector* strings; // maintained in sorted order
     UnicodeSetStringSpan *stringSpan;
 
@@ -891,7 +891,7 @@
      * @stable ICU 3.8
      * @see USetSpanCondition
      */
-    int32_t span(const UChar *s, int32_t length, USetSpanCondition spanCondition) const;
+    int32_t span(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const;
 
     /**
      * Returns the end of the substring of the input string according to the USetSpanCondition.
@@ -924,7 +924,7 @@
      * @stable ICU 3.8
      * @see USetSpanCondition
      */
-    int32_t spanBack(const UChar *s, int32_t length, USetSpanCondition spanCondition) const;
+    int32_t spanBack(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const;
 
     /**
      * Returns the start of the substring of the input string according to the USetSpanCondition.
diff --git a/source/common/unicode/unistr.h b/source/common/unicode/unistr.h
index 6f62244..e0ab0b9 100644
--- a/source/common/unicode/unistr.h
+++ b/source/common/unicode/unistr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -28,12 +28,13 @@
  * \brief C++ API: Unicode String
  */
 
+#include <cstddef>
 #include "unicode/utypes.h"
+#include "unicode/char16ptr.h"
 #include "unicode/rep.h"
 #include "unicode/std_string.h"
 #include "unicode/stringpiece.h"
 #include "unicode/bytestream.h"
-#include "unicode/ucasemap.h"
 
 struct UConverter;          // unicode/ucnv.h
 
@@ -55,30 +56,34 @@
 u_strlen(const UChar *s);
 #endif
 
-/**
- * \def U_STRING_CASE_MAPPER_DEFINED
- * @internal
- */
-#ifndef U_STRING_CASE_MAPPER_DEFINED
-#define U_STRING_CASE_MAPPER_DEFINED
-
-/**
- * Internal string case mapping function type.
- * @internal
- */
-typedef int32_t U_CALLCONV
-UStringCaseMapper(const UCaseMap *csm,
-                  UChar *dest, int32_t destCapacity,
-                  const UChar *src, int32_t srcLength,
-                  UErrorCode *pErrorCode);
-
-#endif
-
 U_NAMESPACE_BEGIN
 
 #if !UCONFIG_NO_BREAK_ITERATION
 class BreakIterator;        // unicode/brkiter.h
 #endif
+class Edits;
+
+U_NAMESPACE_END
+
+// Not #ifndef U_HIDE_INTERNAL_API because UnicodeString needs the UStringCaseMapper.
+/**
+ * Internal string case mapping function type.
+ * All error checking must be done.
+ * src and dest must not overlap.
+ * @internal
+ */
+typedef int32_t U_CALLCONV
+UStringCaseMapper(int32_t caseLocale, uint32_t options,
+#if !UCONFIG_NO_BREAK_ITERATION
+                  icu::BreakIterator *iter,
+#endif
+                  char16_t *dest, int32_t destCapacity,
+                  const char16_t *src, int32_t srcLength,
+                  icu::Edits *edits,
+                  UErrorCode &errorCode);
+
+U_NAMESPACE_BEGIN
+
 class Locale;               // unicode/locid.h
 class StringCharacterIterator;
 class UnicodeStringAppendable;  // unicode/appendable.h
@@ -99,10 +104,12 @@
 
 /**
  * Unicode String literals in C++.
- * Dependent on the platform properties, different UnicodeString
- * constructors should be used to create a UnicodeString object from
- * a string literal.
- * The macros are defined for maximum performance.
+ *
+ * Note: these macros are not recommended for new code.
+ * Prior to the availability of C++11 and u"unicode string literals",
+ * these macros were provided for portability and efficiency when
+ * initializing UnicodeStrings from literals.
+ *
  * They work only for strings that contain "invariant characters", i.e.,
  * only latin letters, digits, and some punctuation.
  * See utypes.h for details.
@@ -110,18 +117,12 @@
  * The string parameter must be a C string literal.
  * The length of the string, not including the terminating
  * <code>NUL</code>, must be specified as a constant.
- * The U_STRING_DECL macro should be invoked exactly once for one
- * such string variable before it is used.
  * @stable ICU 2.0
  */
-#if defined(U_DECLARE_UTF16)
-#   define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)U_DECLARE_UTF16(cs), _length)
-#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
-#   define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)L ## cs, _length)
-#elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
-#   define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)cs, _length)
+#if !U_CHAR16_IS_TYPEDEF
+# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, u ## cs, _length)
 #else
-#   define UNICODE_STRING(cs, _length) icu::UnicodeString(cs, _length, US_INV)
+# define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
 #endif
 
 /**
@@ -142,7 +143,7 @@
 /**
  * \def UNISTR_FROM_CHAR_EXPLICIT
  * This can be defined to be empty or "explicit".
- * If explicit, then the UnicodeString(UChar) and UnicodeString(UChar32)
+ * If explicit, then the UnicodeString(char16_t) and UnicodeString(UChar32)
  * constructors are marked as explicit, preventing their inadvertent use.
  * @stable ICU 49
  */
@@ -159,7 +160,7 @@
 /**
  * \def UNISTR_FROM_STRING_EXPLICIT
  * This can be defined to be empty or "explicit".
- * If explicit, then the UnicodeString(const char *) and UnicodeString(const UChar *)
+ * If explicit, then the UnicodeString(const char *) and UnicodeString(const char16_t *)
  * constructors are marked as explicit, preventing their inadvertent use.
  *
  * In particular, this helps prevent accidentally depending on ICU conversion code
@@ -193,18 +194,18 @@
  * to 4 * sizeof(pointer) (or 3 * sizeof(pointer) for P128 data models),
  * to hold the fields for heap-allocated strings.
  * Such a minimum size also ensures that the object is easily large enough
- * to hold at least 2 UChars, for one supplementary code point (U16_MAX_LENGTH).
+ * to hold at least 2 char16_ts, for one supplementary code point (U16_MAX_LENGTH).
  *
  * sizeof(UnicodeString) >= 48 should work for all known platforms.
  *
  * For example, on a 64-bit machine where sizeof(vtable pointer) is 8,
  * sizeof(UnicodeString) = 64 would leave space for
  * (64 - sizeof(vtable pointer) - 2) / U_SIZEOF_UCHAR = (64 - 8 - 2) / 2 = 27
- * UChars stored inside the object.
+ * char16_ts stored inside the object.
  *
  * The minimum object size on a 64-bit machine would be
  * 4 * sizeof(pointer) = 4 * 8 = 32 bytes,
- * and the internal buffer would hold up to 11 UChars in that case.
+ * and the internal buffer would hold up to 11 char16_ts in that case.
  *
  * @see U16_MAX_LENGTH
  * @stable ICU 56
@@ -236,7 +237,7 @@
  * <p>In ICU, a Unicode string consists of 16-bit Unicode <em>code units</em>.
  * A Unicode character may be stored with either one code unit
  * (the most common case) or with a matched pair of special code units
- * ("surrogates"). The data type for code units is UChar.
+ * ("surrogates"). The data type for code units is char16_t.
  * For single-character handling, a Unicode character code <em>point</em> is a value
  * in the range 0..0x10ffff. ICU uses the UChar32 type for code points.</p>
  *
@@ -252,7 +253,7 @@
  * than other ICU APIs. In particular:
  * - If indexes are out of bounds for a UnicodeString object
  *   (<0 or >length()) then they are "pinned" to the nearest boundary.
- * - If primitive string pointer values (e.g., const UChar * or char *)
+ * - If primitive string pointer values (e.g., const char16_t * or char *)
  *   for input strings are NULL, then those input string parameters are treated
  *   as if they pointed to an empty string.
  *   However, this is <em>not</em> the case for char * parameters for charset names
@@ -439,7 +440,7 @@
    * in <code>srcChars</code>.
    * @stable ICU 2.0
    */
-  inline int8_t compare(const UChar *srcChars,
+  inline int8_t compare(ConstChar16Ptr srcChars,
          int32_t srcLength) const;
 
   /**
@@ -458,7 +459,7 @@
    */
   inline int8_t compare(int32_t start,
          int32_t length,
-         const UChar *srcChars) const;
+         const char16_t *srcChars) const;
 
   /**
    * Compare the characters bitwise in the range
@@ -479,7 +480,7 @@
    */
   inline int8_t compare(int32_t start,
          int32_t length,
-         const UChar *srcChars,
+         const char16_t *srcChars,
          int32_t srcStart,
          int32_t srcLength) const;
 
@@ -593,7 +594,7 @@
    * in code point order
    * @stable ICU 2.0
    */
-  inline int8_t compareCodePointOrder(const UChar *srcChars,
+  inline int8_t compareCodePointOrder(ConstChar16Ptr srcChars,
                                       int32_t srcLength) const;
 
   /**
@@ -617,7 +618,7 @@
    */
   inline int8_t compareCodePointOrder(int32_t start,
                                       int32_t length,
-                                      const UChar *srcChars) const;
+                                      const char16_t *srcChars) const;
 
   /**
    * Compare two Unicode strings in code point order.
@@ -642,7 +643,7 @@
    */
   inline int8_t compareCodePointOrder(int32_t start,
                                       int32_t length,
-                                      const UChar *srcChars,
+                                      const char16_t *srcChars,
                                       int32_t srcStart,
                                       int32_t srcLength) const;
 
@@ -766,7 +767,7 @@
    * @return A negative, zero, or positive integer indicating the comparison result.
    * @stable ICU 2.0
    */
-  inline int8_t caseCompare(const UChar *srcChars,
+  inline int8_t caseCompare(ConstChar16Ptr srcChars,
          int32_t srcLength,
          uint32_t options) const;
 
@@ -792,7 +793,7 @@
    */
   inline int8_t caseCompare(int32_t start,
          int32_t length,
-         const UChar *srcChars,
+         const char16_t *srcChars,
          uint32_t options) const;
 
   /**
@@ -819,7 +820,7 @@
    */
   inline int8_t caseCompare(int32_t start,
          int32_t length,
-         const UChar *srcChars,
+         const char16_t *srcChars,
          int32_t srcStart,
          int32_t srcLength,
          uint32_t options) const;
@@ -884,7 +885,7 @@
    * FALSE otherwise
    * @stable ICU 2.0
    */
-  inline UBool startsWith(const UChar *srcChars,
+  inline UBool startsWith(ConstChar16Ptr srcChars,
             int32_t srcLength) const;
 
   /**
@@ -896,7 +897,7 @@
    * @return TRUE if this ends with the characters in <TT>srcChars</TT>, FALSE otherwise
    * @stable ICU 2.0
    */
-  inline UBool startsWith(const UChar *srcChars,
+  inline UBool startsWith(const char16_t *srcChars,
             int32_t srcStart,
             int32_t srcLength) const;
 
@@ -931,7 +932,7 @@
    * FALSE otherwise
    * @stable ICU 2.0
    */
-  inline UBool endsWith(const UChar *srcChars,
+  inline UBool endsWith(ConstChar16Ptr srcChars,
           int32_t srcLength) const;
 
   /**
@@ -944,7 +945,7 @@
    * FALSE otherwise
    * @stable ICU 2.0
    */
-  inline UBool endsWith(const UChar *srcChars,
+  inline UBool endsWith(const char16_t *srcChars,
           int32_t srcStart,
           int32_t srcLength) const;
 
@@ -1021,7 +1022,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t indexOf(const UChar *srcChars,
+  inline int32_t indexOf(const char16_t *srcChars,
               int32_t srcLength,
               int32_t start) const;
 
@@ -1037,7 +1038,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t indexOf(const UChar *srcChars,
+  inline int32_t indexOf(ConstChar16Ptr srcChars,
               int32_t srcLength,
               int32_t start,
               int32_t length) const;
@@ -1058,7 +1059,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  int32_t indexOf(const UChar *srcChars,
+  int32_t indexOf(const char16_t *srcChars,
               int32_t srcStart,
               int32_t srcLength,
               int32_t start,
@@ -1071,7 +1072,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t indexOf(UChar c) const;
+  inline int32_t indexOf(char16_t c) const;
 
   /**
    * Locate in this the first occurrence of the code point <TT>c</TT>,
@@ -1091,7 +1092,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t indexOf(UChar c,
+  inline int32_t indexOf(char16_t c,
               int32_t start) const;
 
   /**
@@ -1116,7 +1117,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t indexOf(UChar c,
+  inline int32_t indexOf(char16_t c,
               int32_t start,
               int32_t length) const;
 
@@ -1204,7 +1205,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t lastIndexOf(const UChar *srcChars,
+  inline int32_t lastIndexOf(const char16_t *srcChars,
               int32_t srcLength,
               int32_t start) const;
 
@@ -1220,7 +1221,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t lastIndexOf(const UChar *srcChars,
+  inline int32_t lastIndexOf(ConstChar16Ptr srcChars,
               int32_t srcLength,
               int32_t start,
               int32_t length) const;
@@ -1241,7 +1242,7 @@
    * or -1 if not found.
    * @stable ICU 2.0
    */
-  int32_t lastIndexOf(const UChar *srcChars,
+  int32_t lastIndexOf(const char16_t *srcChars,
               int32_t srcStart,
               int32_t srcLength,
               int32_t start,
@@ -1254,7 +1255,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t lastIndexOf(UChar c) const;
+  inline int32_t lastIndexOf(char16_t c) const;
 
   /**
    * Locate in this the last occurrence of the code point <TT>c</TT>,
@@ -1274,7 +1275,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t lastIndexOf(UChar c,
+  inline int32_t lastIndexOf(char16_t c,
               int32_t start) const;
 
   /**
@@ -1299,7 +1300,7 @@
    * @return The offset into this of <TT>c</TT>, or -1 if not found.
    * @stable ICU 2.0
    */
-  inline int32_t lastIndexOf(UChar c,
+  inline int32_t lastIndexOf(char16_t c,
               int32_t start,
               int32_t length) const;
 
@@ -1329,7 +1330,7 @@
    *         or 0xffff if the offset is not valid for this string
    * @stable ICU 2.0
    */
-  inline UChar charAt(int32_t offset) const;
+  inline char16_t charAt(int32_t offset) const;
 
   /**
    * Return the code unit at offset <tt>offset</tt>.
@@ -1338,7 +1339,7 @@
    * @return the code unit at offset <tt>offset</tt>
    * @stable ICU 2.0
    */
-  inline UChar operator[] (int32_t offset) const;
+  inline char16_t operator[] (int32_t offset) const;
 
   /**
    * Return the code point that contains the code unit
@@ -1459,7 +1460,7 @@
    */
   inline void extract(int32_t start,
            int32_t length,
-           UChar *dst,
+           Char16Ptr dst,
            int32_t dstStart = 0) const;
 
   /**
@@ -1478,13 +1479,13 @@
    * then extract() will not copy the contents.
    *
    * @param dest Destination string buffer.
-   * @param destCapacity Number of UChars available at dest.
+   * @param destCapacity Number of char16_ts available at dest.
    * @param errorCode ICU error code.
    * @return length()
    * @stable ICU 2.0
    */
   int32_t
-  extract(UChar *dest, int32_t destCapacity,
+  extract(Char16Ptr dest, int32_t destCapacity,
           UErrorCode &errorCode) const;
 
   /**
@@ -1514,7 +1515,7 @@
    */
   inline void extractBetween(int32_t start,
               int32_t limit,
-              UChar *dst,
+              char16_t *dst,
               int32_t dstStart = 0) const;
 
   /**
@@ -1715,8 +1716,6 @@
    */
   void toUTF8(ByteSink &sink) const;
 
-#if U_HAVE_STD_STRING
-
   /**
    * Convert the UnicodeString to UTF-8 and append the result
    * to a standard string.
@@ -1736,8 +1735,6 @@
     return result;
   }
 
-#endif
-
   /**
    * Convert the UnicodeString to UTF-32.
    * Unpaired surrogates are replaced with U+FFFD.
@@ -1759,7 +1756,7 @@
 
   /**
    * Return the length of the UnicodeString object.
-   * The length is the number of UChar code units are in the UnicodeString.
+   * The length is the number of char16_t code units are in the UnicodeString.
    * If you want the number of code points, please use countChar32().
    * @return the length of the UnicodeString object
    * @see countChar32
@@ -1768,14 +1765,14 @@
   inline int32_t length(void) const;
 
   /**
-   * Count Unicode code points in the length UChar code units of the string.
-   * A code point may occupy either one or two UChar code units.
+   * Count Unicode code points in the length char16_t code units of the string.
+   * A code point may occupy either one or two char16_t code units.
    * Counting code points involves reading all code units.
    *
    * This functions is basically the inverse of moveIndex32().
    *
    * @param start the index of the first code unit to check
-   * @param length the number of UChar code units to check
+   * @param length the number of char16_t code units to check
    * @return the number of code points in the specified code units
    * @see length
    * @stable ICU 2.0
@@ -1784,7 +1781,7 @@
   countChar32(int32_t start=0, int32_t length=INT32_MAX) const;
 
   /**
-   * Check if the length UChar code units of the string
+   * Check if the length char16_t code units of the string
    * contain more Unicode code points than a certain number.
    * This is more efficient than counting all code points in this part of the string
    * and comparing that number with a threshold.
@@ -1792,10 +1789,10 @@
    * falls within a certain range, and
    * never needs to count more than 'number+1' code points.
    * Logically equivalent to (countChar32(start, length)>number).
-   * A Unicode code point may occupy either one or two UChar code units.
+   * A Unicode code point may occupy either one or two char16_t code units.
    *
    * @param start the index of the first code unit to check (0 for the entire string)
-   * @param length the number of UChar code units to check
+   * @param length the number of char16_t code units to check
    *               (use INT32_MAX for the entire string; remember that start/length
    *                values are pinned)
    * @param number The number of code points in the (sub)string is compared against
@@ -1821,7 +1818,7 @@
    * This is useful together with the getBuffer functions.
    * See there for details.
    *
-   * @return the number of UChars available in the internal buffer
+   * @return the number of char16_ts available in the internal buffer
    * @see getBuffer
    * @stable ICU 2.0
    */
@@ -1955,7 +1952,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  inline UnicodeString& operator= (UChar ch);
+  inline UnicodeString& operator= (char16_t ch);
 
   /**
    * Assignment operator.  Replace the characters in this UnicodeString
@@ -2015,7 +2012,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  inline UnicodeString& setTo(const UChar *srcChars,
+  inline UnicodeString& setTo(const char16_t *srcChars,
                int32_t srcLength);
 
   /**
@@ -2026,7 +2023,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  UnicodeString& setTo(UChar srcChar);
+  UnicodeString& setTo(char16_t srcChar);
 
   /**
    * Set the characters in the UnicodeString object to the code point
@@ -2039,7 +2036,7 @@
   UnicodeString& setTo(UChar32 srcChar);
 
   /**
-   * Aliasing setTo() function, analogous to the readonly-aliasing UChar* constructor.
+   * Aliasing setTo() function, analogous to the readonly-aliasing char16_t* constructor.
    * The text will be used for the UnicodeString object, but
    * it will not be released when the UnicodeString is destroyed.
    * This has copy-on-write semantics:
@@ -2062,11 +2059,11 @@
    * @stable ICU 2.0
    */
   UnicodeString &setTo(UBool isTerminated,
-                       const UChar *text,
+                       ConstChar16Ptr text,
                        int32_t textLength);
 
   /**
-   * Aliasing setTo() function, analogous to the writable-aliasing UChar* constructor.
+   * Aliasing setTo() function, analogous to the writable-aliasing char16_t* constructor.
    * The text will be used for the UnicodeString object, but
    * it will not be released when the UnicodeString is destroyed.
    * This has write-through semantics:
@@ -2075,16 +2072,16 @@
    * a new buffer will be allocated and the contents copied as with regularly
    * constructed strings.
    * In an assignment to another UnicodeString, the buffer will be copied.
-   * The extract(UChar *dst) function detects whether the dst pointer is the same
+   * The extract(Char16Ptr dst) function detects whether the dst pointer is the same
    * as the string buffer itself and will in this case not copy the contents.
    *
    * @param buffer The characters to alias for the UnicodeString.
    * @param buffLength The number of Unicode characters in <code>buffer</code> to alias.
-   * @param buffCapacity The size of <code>buffer</code> in UChars.
+   * @param buffCapacity The size of <code>buffer</code> in char16_ts.
    * @return a reference to this
    * @stable ICU 2.0
    */
-  UnicodeString &setTo(UChar *buffer,
+  UnicodeString &setTo(char16_t *buffer,
                        int32_t buffLength,
                        int32_t buffCapacity);
 
@@ -2120,7 +2117,7 @@
    *   s.truncate(0);        // set to an empty string (complete truncation), or
    *   s=UnicodeString();    // assign an empty string, or
    *   s.setTo((UChar32)-1); // set to a pseudo code point that is out of range, or
-   *   static const UChar nul=0;
+   *   static const char16_t nul=0;
    *   s.setTo(&nul, 0);     // set to an empty C Unicode string
    * }
    * \endcode
@@ -2138,7 +2135,7 @@
    * @stable ICU 2.0
    */
   UnicodeString& setCharAt(int32_t offset,
-               UChar ch);
+               char16_t ch);
 
 
   /* Append operations */
@@ -2150,7 +2147,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
- inline  UnicodeString& operator+= (UChar ch);
+ inline  UnicodeString& operator+= (char16_t ch);
 
   /**
    * Append operator. Append the code point <TT>ch</TT> to the UnicodeString
@@ -2210,7 +2207,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  inline UnicodeString& append(const UChar *srcChars,
+  inline UnicodeString& append(const char16_t *srcChars,
             int32_t srcStart,
             int32_t srcLength);
 
@@ -2223,7 +2220,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  inline UnicodeString& append(const UChar *srcChars,
+  inline UnicodeString& append(ConstChar16Ptr srcChars,
             int32_t srcLength);
 
   /**
@@ -2232,7 +2229,7 @@
    * @return a reference to this
    * @stable ICU 2.0
    */
-  inline UnicodeString& append(UChar srcChar);
+  inline UnicodeString& append(char16_t srcChar);
 
   /**
    * Append the code point <TT>srcChar</TT> to the UnicodeString object.
@@ -2288,7 +2285,7 @@
    * @stable ICU 2.0
    */
   inline UnicodeString& insert(int32_t start,
-            const UChar *srcChars,
+            const char16_t *srcChars,
             int32_t srcStart,
             int32_t srcLength);
 
@@ -2302,7 +2299,7 @@
    * @stable ICU 2.0
    */
   inline UnicodeString& insert(int32_t start,
-            const UChar *srcChars,
+            ConstChar16Ptr srcChars,
             int32_t srcLength);
 
   /**
@@ -2314,7 +2311,7 @@
    * @stable ICU 2.0
    */
   inline UnicodeString& insert(int32_t start,
-            UChar srcChar);
+            char16_t srcChar);
 
   /**
    * Insert the code point <TT>srcChar</TT> into the UnicodeString object at
@@ -2388,7 +2385,7 @@
    */
   UnicodeString& replace(int32_t start,
              int32_t length,
-             const UChar *srcChars,
+             const char16_t *srcChars,
              int32_t srcStart,
              int32_t srcLength);
 
@@ -2406,7 +2403,7 @@
    */
   inline UnicodeString& replace(int32_t start,
              int32_t length,
-             const UChar *srcChars,
+             ConstChar16Ptr srcChars,
              int32_t srcLength);
 
   /**
@@ -2422,7 +2419,7 @@
    */
   inline UnicodeString& replace(int32_t start,
              int32_t length,
-             UChar srcChar);
+             char16_t srcChar);
 
   /**
    * Replace the characters in the range
@@ -2620,7 +2617,7 @@
    * @stable ICU 2.0
    */
   UBool padLeading(int32_t targetLength,
-                    UChar padChar = 0x0020);
+                    char16_t padChar = 0x0020);
 
   /**
    * Pad the end of this UnicodeString with the character <TT>padChar</TT>.
@@ -2634,7 +2631,7 @@
    * @stable ICU 2.0
    */
   UBool padTrailing(int32_t targetLength,
-                     UChar padChar = 0x0020);
+                     char16_t padChar = 0x0020);
 
   /**
    * Truncate this UnicodeString to the <TT>targetLength</TT>.
@@ -2821,7 +2818,7 @@
 
   /**
    * Get a read/write pointer to the internal buffer.
-   * The buffer is guaranteed to be large enough for at least minCapacity UChars,
+   * The buffer is guaranteed to be large enough for at least minCapacity char16_ts,
    * writable, and is still owned by the UnicodeString object.
    * Calls to getBuffer(minCapacity) must not be nested, and
    * must be matched with calls to releaseBuffer(newLength).
@@ -2852,17 +2849,17 @@
    * - You must call releaseBuffer(newLength) before and in order to
    *   return to normal UnicodeString operation.
    *
-   * @param minCapacity the minimum number of UChars that are to be available
+   * @param minCapacity the minimum number of char16_ts that are to be available
    *        in the buffer, starting at the returned pointer;
    *        default to the current string capacity if minCapacity==-1
    * @return a writable pointer to the internal string buffer,
-   *         or 0 if an error occurs (nested calls, out of memory)
+   *         or nullptr if an error occurs (nested calls, out of memory)
    *
    * @see releaseBuffer
    * @see getTerminatedBuffer()
    * @stable ICU 2.0
    */
-  UChar *getBuffer(int32_t minCapacity);
+  char16_t *getBuffer(int32_t minCapacity);
 
   /**
    * Release a read/write buffer on a UnicodeString object with an
@@ -2910,13 +2907,13 @@
    * be modified.
    *
    * @return a read-only pointer to the internal string buffer,
-   *         or 0 if the string is empty or bogus
+   *         or nullptr if the string is empty or bogus
    *
    * @see getBuffer(int32_t minCapacity)
    * @see getTerminatedBuffer()
    * @stable ICU 2.0
    */
-  inline const UChar *getBuffer() const;
+  inline const char16_t *getBuffer() const;
 
   /**
    * Get a read-only pointer to the internal buffer,
@@ -2951,7 +2948,7 @@
    * @see getBuffer()
    * @stable ICU 2.2
    */
-  const UChar *getTerminatedBuffer();
+  const char16_t *getTerminatedBuffer();
 
   //========================================
   // Constructors
@@ -2963,8 +2960,8 @@
   inline UnicodeString();
 
   /**
-   * Construct a UnicodeString with capacity to hold <TT>capacity</TT> UChars
-   * @param capacity the number of UChars this UnicodeString should hold
+   * Construct a UnicodeString with capacity to hold <TT>capacity</TT> char16_ts
+   * @param capacity the number of char16_ts this UnicodeString should hold
    * before a resize is necessary; if count is greater than 0 and count
    * code points c take up more space than capacity, then capacity is adjusted
    * accordingly.
@@ -2976,7 +2973,7 @@
   UnicodeString(int32_t capacity, UChar32 c, int32_t count);
 
   /**
-   * Single UChar (code unit) constructor.
+   * Single char16_t (code unit) constructor.
    *
    * It is recommended to mark this constructor "explicit" by
    * <code>-DUNISTR_FROM_CHAR_EXPLICIT=explicit</code>
@@ -2984,7 +2981,7 @@
    * @param ch the character to place in the UnicodeString
    * @stable ICU 2.0
    */
-  UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar ch);
+  UNISTR_FROM_CHAR_EXPLICIT UnicodeString(char16_t ch);
 
   /**
    * Single UChar32 (code point) constructor.
@@ -2998,7 +2995,7 @@
   UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar32 ch);
 
   /**
-   * UChar* constructor.
+   * char16_t* constructor.
    *
    * It is recommended to mark this constructor "explicit" by
    * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
@@ -3007,20 +3004,121 @@
    * must be NULL (U+0000) terminated.
    * @stable ICU 2.0
    */
-  UNISTR_FROM_STRING_EXPLICIT UnicodeString(const UChar *text);
+  UNISTR_FROM_STRING_EXPLICIT UnicodeString(const char16_t *text);
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if !U_CHAR16_IS_TYPEDEF
+  /**
+   * uint16_t * constructor.
+   * Delegates to UnicodeString(const char16_t *).
+   *
+   * It is recommended to mark this constructor "explicit" by
+   * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
+   * on the compiler command line or similar.
+   * @param text NUL-terminated UTF-16 string
+   * @draft ICU 59
+   */
+  UNISTR_FROM_STRING_EXPLICIT UnicodeString(const uint16_t *text) :
+      UnicodeString(ConstChar16Ptr(text)) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+  /**
+   * wchar_t * constructor.
+   * (Only defined if U_SIZEOF_WCHAR_T==2.)
+   * Delegates to UnicodeString(const char16_t *).
+   *
+   * It is recommended to mark this constructor "explicit" by
+   * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
+   * on the compiler command line or similar.
+   * @param text NUL-terminated UTF-16 string
+   * @draft ICU 59
+   */
+  UNISTR_FROM_STRING_EXPLICIT UnicodeString(const wchar_t *text) :
+      UnicodeString(ConstChar16Ptr(text)) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+  /**
+   * nullptr_t constructor.
+   * Effectively the same as the default constructor, makes an empty string object.
+   *
+   * It is recommended to mark this constructor "explicit" by
+   * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
+   * on the compiler command line or similar.
+   * @param text nullptr
+   * @draft ICU 59
+   */
+  UNISTR_FROM_STRING_EXPLICIT inline UnicodeString(const std::nullptr_t text);
 
   /**
-   * UChar* constructor.
+   * char16_t* constructor.
    * @param text The characters to place in the UnicodeString.
    * @param textLength The number of Unicode characters in <TT>text</TT>
    * to copy.
    * @stable ICU 2.0
    */
-  UnicodeString(const UChar *text,
+  UnicodeString(const char16_t *text,
         int32_t textLength);
 
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if !U_CHAR16_IS_TYPEDEF
   /**
-   * Readonly-aliasing UChar* constructor.
+   * uint16_t * constructor.
+   * Delegates to UnicodeString(const char16_t *, int32_t).
+   * @param text UTF-16 string
+   * @param length string length
+   * @draft ICU 59
+   */
+  UnicodeString(const uint16_t *text, int32_t length) :
+      UnicodeString(ConstChar16Ptr(text), length) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+  /**
+   * wchar_t * constructor.
+   * (Only defined if U_SIZEOF_WCHAR_T==2.)
+   * Delegates to UnicodeString(const char16_t *, int32_t).
+   * @param text NUL-terminated UTF-16 string
+   * @param length string length
+   * @draft ICU 59
+   */
+  UnicodeString(const wchar_t *text, int32_t length) :
+      UnicodeString(ConstChar16Ptr(text), length) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+  /**
+   * nullptr_t constructor.
+   * Effectively the same as the default constructor, makes an empty string object.
+   * @param text nullptr
+   * @param length ignored
+   * @draft ICU 59
+   */
+  inline UnicodeString(const std::nullptr_t text, int32_t length);
+
+  /**
+   * Readonly-aliasing char16_t* constructor.
    * The text will be used for the UnicodeString object, but
    * it will not be released when the UnicodeString is destroyed.
    * This has copy-on-write semantics:
@@ -3042,11 +3140,11 @@
    * @stable ICU 2.0
    */
   UnicodeString(UBool isTerminated,
-                const UChar *text,
+                ConstChar16Ptr text,
                 int32_t textLength);
 
   /**
-   * Writable-aliasing UChar* constructor.
+   * Writable-aliasing char16_t* constructor.
    * The text will be used for the UnicodeString object, but
    * it will not be released when the UnicodeString is destroyed.
    * This has write-through semantics:
@@ -3055,15 +3153,64 @@
    * a new buffer will be allocated and the contents copied as with regularly
    * constructed strings.
    * In an assignment to another UnicodeString, the buffer will be copied.
-   * The extract(UChar *dst) function detects whether the dst pointer is the same
+   * The extract(Char16Ptr dst) function detects whether the dst pointer is the same
    * as the string buffer itself and will in this case not copy the contents.
    *
    * @param buffer The characters to alias for the UnicodeString.
    * @param buffLength The number of Unicode characters in <code>buffer</code> to alias.
-   * @param buffCapacity The size of <code>buffer</code> in UChars.
+   * @param buffCapacity The size of <code>buffer</code> in char16_ts.
    * @stable ICU 2.0
    */
-  UnicodeString(UChar *buffer, int32_t buffLength, int32_t buffCapacity);
+  UnicodeString(char16_t *buffer, int32_t buffLength, int32_t buffCapacity);
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if !U_CHAR16_IS_TYPEDEF
+  /**
+   * Writable-aliasing uint16_t * constructor.
+   * Delegates to UnicodeString(const char16_t *, int32_t, int32_t).
+   * @param buffer writable buffer of/for UTF-16 text
+   * @param buffLength length of the current buffer contents
+   * @param buffCapacity buffer capacity
+   * @draft ICU 59
+   */
+  UnicodeString(uint16_t *buffer, int32_t buffLength, int32_t buffCapacity) :
+      UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+  /**
+   * Writable-aliasing wchar_t * constructor.
+   * (Only defined if U_SIZEOF_WCHAR_T==2.)
+   * Delegates to UnicodeString(const char16_t *, int32_t, int32_t).
+   * @param buffer writable buffer of/for UTF-16 text
+   * @param buffLength length of the current buffer contents
+   * @param buffCapacity buffer capacity
+   * @draft ICU 59
+   */
+  UnicodeString(wchar_t *buffer, int32_t buffLength, int32_t buffCapacity) :
+      UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
+#endif
+
+  /*
+   * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor,
+   * it should always be available regardless of U_HIDE_DRAFT_API status
+   */
+  /**
+   * Writable-aliasing nullptr_t constructor.
+   * Effectively the same as the default constructor, makes an empty string object.
+   * @param buffer nullptr
+   * @param buffLength ignored
+   * @param buffCapacity ignored
+   * @draft ICU 59
+   */
+  inline UnicodeString(std::nullptr_t buffer, int32_t buffLength, int32_t buffCapacity);
 
 #if U_CHARSET_IS_UTF8 || !UCONFIG_NO_CONVERSION
 
@@ -3380,7 +3527,7 @@
    * UnicodeString::charAt() to be inline again (see jitterbug 709).
    * @stable ICU 2.4
    */
-  virtual UChar getCharAt(int32_t offset) const;
+  virtual char16_t getCharAt(int32_t offset) const;
 
   /**
    * The change in Replaceable to use virtual getChar32At() allows
@@ -3416,7 +3563,7 @@
 
   int8_t doCompare(int32_t start,
            int32_t length,
-           const UChar *srcChars,
+           const char16_t *srcChars,
            int32_t srcStart,
            int32_t srcLength) const;
 
@@ -3429,7 +3576,7 @@
 
   int8_t doCompareCodePointOrder(int32_t start,
                                  int32_t length,
-                                 const UChar *srcChars,
+                                 const char16_t *srcChars,
                                  int32_t srcStart,
                                  int32_t srcLength) const;
 
@@ -3444,12 +3591,12 @@
   int8_t
   doCaseCompare(int32_t start,
                 int32_t length,
-                const UChar *srcChars,
+                const char16_t *srcChars,
                 int32_t srcStart,
                 int32_t srcLength,
                 uint32_t options) const;
 
-  int32_t doIndexOf(UChar c,
+  int32_t doIndexOf(char16_t c,
             int32_t start,
             int32_t length) const;
 
@@ -3457,7 +3604,7 @@
                         int32_t start,
                         int32_t length) const;
 
-  int32_t doLastIndexOf(UChar c,
+  int32_t doLastIndexOf(char16_t c,
                 int32_t start,
                 int32_t length) const;
 
@@ -3467,14 +3614,14 @@
 
   void doExtract(int32_t start,
          int32_t length,
-         UChar *dst,
+         char16_t *dst,
          int32_t dstStart) const;
 
   inline void doExtract(int32_t start,
          int32_t length,
          UnicodeString& target) const;
 
-  inline UChar doCharAt(int32_t offset)  const;
+  inline char16_t doCharAt(int32_t offset)  const;
 
   UnicodeString& doReplace(int32_t start,
                int32_t length,
@@ -3484,12 +3631,12 @@
 
   UnicodeString& doReplace(int32_t start,
                int32_t length,
-               const UChar *srcChars,
+               const char16_t *srcChars,
                int32_t srcStart,
                int32_t srcLength);
 
   UnicodeString& doAppend(const UnicodeString& src, int32_t srcStart, int32_t srcLength);
-  UnicodeString& doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLength);
+  UnicodeString& doAppend(const char16_t *srcChars, int32_t srcStart, int32_t srcLength);
 
   UnicodeString& doReverse(int32_t start,
                int32_t length);
@@ -3499,8 +3646,8 @@
 
   // get pointer to start of array
   // these do not check for kOpenGetBuffer, unlike the public getBuffer() function
-  inline UChar* getArrayStart(void);
-  inline const UChar* getArrayStart(void) const;
+  inline char16_t* getArrayStart(void);
+  inline const char16_t* getArrayStart(void) const;
 
   inline UBool hasShortLength() const;
   inline int32_t getShortLength() const;
@@ -3517,7 +3664,7 @@
   inline void setShortLength(int32_t len);
   inline void setLength(int32_t len);
   inline void setToEmpty();
-  inline void setArray(UChar *array, int32_t len, int32_t capacity); // sets length but not flags
+  inline void setArray(char16_t *array, int32_t len, int32_t capacity); // sets length but not flags
 
   // allocate the array; result may be the stack buffer
   // sets refCount to 1 if appropriate
@@ -3600,7 +3747,11 @@
    * as in ustr_imp.h for ustrcase_map().
    */
   UnicodeString &
-  caseMap(const UCaseMap *csm, UStringCaseMapper *stringCaseMapper);
+  caseMap(int32_t caseLocale, uint32_t options,
+#if !UCONFIG_NO_BREAK_ITERATION
+          BreakIterator *iter,
+#endif
+          UStringCaseMapper *stringCaseMapper);
 
   // ref counting
   void addRef(void);
@@ -3691,15 +3842,15 @@
     // Each struct of the union must begin with fLengthAndFlags.
     struct {
       int16_t fLengthAndFlags;          // bit fields: see constants above
-      UChar fBuffer[US_STACKBUF_SIZE];  // buffer for short strings
+      char16_t fBuffer[US_STACKBUF_SIZE];  // buffer for short strings
     } fStackFields;
     struct {
       int16_t fLengthAndFlags;          // bit fields: see constants above
       int32_t fLength;    // number of characters in fArray if >127; else undefined
-      int32_t fCapacity;  // capacity of fArray (in UChars)
+      int32_t fCapacity;  // capacity of fArray (in char16_ts)
       // array pointer last to minimize padding for machines with P128 data model
       // or pointer sizes that are not a power of 2
-      UChar   *fArray;    // the Unicode data
+      char16_t   *fArray;    // the Unicode data
     } fFields;
   } fUnion;
 };
@@ -3752,13 +3903,13 @@
   }
 }
 
-inline UChar*
+inline char16_t*
 UnicodeString::getArrayStart() {
   return (fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) ?
     fUnion.fStackFields.fBuffer : fUnion.fFields.fArray;
 }
 
-inline const UChar*
+inline const char16_t*
 UnicodeString::getArrayStart() const {
   return (fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) ?
     fUnion.fStackFields.fBuffer : fUnion.fFields.fArray;
@@ -3773,6 +3924,18 @@
   fUnion.fStackFields.fLengthAndFlags=kShortString;
 }
 
+inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/) {
+  fUnion.fStackFields.fLengthAndFlags=kShortString;
+}
+
+inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/, int32_t /*length*/) {
+  fUnion.fStackFields.fLengthAndFlags=kShortString;
+}
+
+inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t /*buffLength*/, int32_t /*buffCapacity*/) {
+  fUnion.fStackFields.fLengthAndFlags=kShortString;
+}
+
 //========================================
 // Read-only implementation methods
 //========================================
@@ -3819,10 +3982,10 @@
       (!(fUnion.fFields.fLengthAndFlags&kRefCounted) || refCount()==1));
 }
 
-inline const UChar *
+inline const char16_t *
 UnicodeString::getBuffer() const {
   if(fUnion.fFields.fLengthAndFlags&(kIsBogus|kOpenGetBuffer)) {
-    return 0;
+    return nullptr;
   } else if(fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) {
     return fUnion.fStackFields.fBuffer;
   } else {
@@ -3890,7 +4053,7 @@
 { return doCompare(start, _length, srcText, 0, srcText.length()); }
 
 inline int8_t
-UnicodeString::compare(const UChar *srcChars,
+UnicodeString::compare(ConstChar16Ptr srcChars,
                int32_t srcLength) const
 { return doCompare(0, length(), srcChars, 0, srcLength); }
 
@@ -3905,13 +4068,13 @@
 inline int8_t
 UnicodeString::compare(int32_t start,
                int32_t _length,
-               const UChar *srcChars) const
+               const char16_t *srcChars) const
 { return doCompare(start, _length, srcChars, 0, _length); }
 
 inline int8_t
 UnicodeString::compare(int32_t start,
                int32_t _length,
-               const UChar *srcChars,
+               const char16_t *srcChars,
                int32_t srcStart,
                int32_t srcLength) const
 { return doCompare(start, _length, srcChars, srcStart, srcLength); }
@@ -3951,7 +4114,7 @@
 { return doCompareCodePointOrder(start, _length, srcText, 0, srcText.length()); }
 
 inline int8_t
-UnicodeString::compareCodePointOrder(const UChar *srcChars,
+UnicodeString::compareCodePointOrder(ConstChar16Ptr srcChars,
                                      int32_t srcLength) const
 { return doCompareCodePointOrder(0, length(), srcChars, 0, srcLength); }
 
@@ -3966,13 +4129,13 @@
 inline int8_t
 UnicodeString::compareCodePointOrder(int32_t start,
                                      int32_t _length,
-                                     const UChar *srcChars) const
+                                     const char16_t *srcChars) const
 { return doCompareCodePointOrder(start, _length, srcChars, 0, _length); }
 
 inline int8_t
 UnicodeString::compareCodePointOrder(int32_t start,
                                      int32_t _length,
-                                     const UChar *srcChars,
+                                     const char16_t *srcChars,
                                      int32_t srcStart,
                                      int32_t srcLength) const
 { return doCompareCodePointOrder(start, _length, srcChars, srcStart, srcLength); }
@@ -4016,7 +4179,7 @@
 }
 
 inline int8_t
-UnicodeString::caseCompare(const UChar *srcChars,
+UnicodeString::caseCompare(ConstChar16Ptr srcChars,
                            int32_t srcLength,
                            uint32_t options) const {
   return doCaseCompare(0, length(), srcChars, 0, srcLength, options);
@@ -4035,7 +4198,7 @@
 inline int8_t
 UnicodeString::caseCompare(int32_t start,
                            int32_t _length,
-                           const UChar *srcChars,
+                           const char16_t *srcChars,
                            uint32_t options) const {
   return doCaseCompare(start, _length, srcChars, 0, _length, options);
 }
@@ -4043,7 +4206,7 @@
 inline int8_t
 UnicodeString::caseCompare(int32_t start,
                            int32_t _length,
-                           const UChar *srcChars,
+                           const char16_t *srcChars,
                            int32_t srcStart,
                            int32_t srcLength,
                            uint32_t options) const {
@@ -4094,7 +4257,7 @@
 { return indexOf(text, 0, text.length(), start, _length); }
 
 inline int32_t
-UnicodeString::indexOf(const UChar *srcChars,
+UnicodeString::indexOf(const char16_t *srcChars,
                int32_t srcLength,
                int32_t start) const {
   pinIndex(start);
@@ -4102,14 +4265,14 @@
 }
 
 inline int32_t
-UnicodeString::indexOf(const UChar *srcChars,
+UnicodeString::indexOf(ConstChar16Ptr srcChars,
                int32_t srcLength,
                int32_t start,
                int32_t _length) const
 { return indexOf(srcChars, 0, srcLength, start, _length); }
 
 inline int32_t
-UnicodeString::indexOf(UChar c,
+UnicodeString::indexOf(char16_t c,
                int32_t start,
                int32_t _length) const
 { return doIndexOf(c, start, _length); }
@@ -4121,7 +4284,7 @@
 { return doIndexOf(c, start, _length); }
 
 inline int32_t
-UnicodeString::indexOf(UChar c) const
+UnicodeString::indexOf(char16_t c) const
 { return doIndexOf(c, 0, length()); }
 
 inline int32_t
@@ -4129,7 +4292,7 @@
 { return indexOf(c, 0, length()); }
 
 inline int32_t
-UnicodeString::indexOf(UChar c,
+UnicodeString::indexOf(char16_t c,
                int32_t start) const {
   pinIndex(start);
   return doIndexOf(c, start, length() - start);
@@ -4143,14 +4306,14 @@
 }
 
 inline int32_t
-UnicodeString::lastIndexOf(const UChar *srcChars,
+UnicodeString::lastIndexOf(ConstChar16Ptr srcChars,
                int32_t srcLength,
                int32_t start,
                int32_t _length) const
 { return lastIndexOf(srcChars, 0, srcLength, start, _length); }
 
 inline int32_t
-UnicodeString::lastIndexOf(const UChar *srcChars,
+UnicodeString::lastIndexOf(const char16_t *srcChars,
                int32_t srcLength,
                int32_t start) const {
   pinIndex(start);
@@ -4191,7 +4354,7 @@
 { return lastIndexOf(text, 0, text.length(), 0, length()); }
 
 inline int32_t
-UnicodeString::lastIndexOf(UChar c,
+UnicodeString::lastIndexOf(char16_t c,
                int32_t start,
                int32_t _length) const
 { return doLastIndexOf(c, start, _length); }
@@ -4204,7 +4367,7 @@
 }
 
 inline int32_t
-UnicodeString::lastIndexOf(UChar c) const
+UnicodeString::lastIndexOf(char16_t c) const
 { return doLastIndexOf(c, 0, length()); }
 
 inline int32_t
@@ -4213,7 +4376,7 @@
 }
 
 inline int32_t
-UnicodeString::lastIndexOf(UChar c,
+UnicodeString::lastIndexOf(char16_t c,
                int32_t start) const {
   pinIndex(start);
   return doLastIndexOf(c, start, length() - start);
@@ -4237,17 +4400,17 @@
 { return doCompare(0, srcLength, srcText, srcStart, srcLength) == 0; }
 
 inline UBool
-UnicodeString::startsWith(const UChar *srcChars, int32_t srcLength) const {
+UnicodeString::startsWith(ConstChar16Ptr srcChars, int32_t srcLength) const {
   if(srcLength < 0) {
-    srcLength = u_strlen(srcChars);
+    srcLength = u_strlen(toUCharPtr(srcChars));
   }
   return doCompare(0, srcLength, srcChars, 0, srcLength) == 0;
 }
 
 inline UBool
-UnicodeString::startsWith(const UChar *srcChars, int32_t srcStart, int32_t srcLength) const {
+UnicodeString::startsWith(const char16_t *srcChars, int32_t srcStart, int32_t srcLength) const {
   if(srcLength < 0) {
-    srcLength = u_strlen(srcChars);
+    srcLength = u_strlen(toUCharPtr(srcChars));
   }
   return doCompare(0, srcLength, srcChars, srcStart, srcLength) == 0;
 }
@@ -4267,21 +4430,21 @@
 }
 
 inline UBool
-UnicodeString::endsWith(const UChar *srcChars,
+UnicodeString::endsWith(ConstChar16Ptr srcChars,
             int32_t srcLength) const {
   if(srcLength < 0) {
-    srcLength = u_strlen(srcChars);
+    srcLength = u_strlen(toUCharPtr(srcChars));
   }
   return doCompare(length() - srcLength, srcLength,
                    srcChars, 0, srcLength) == 0;
 }
 
 inline UBool
-UnicodeString::endsWith(const UChar *srcChars,
+UnicodeString::endsWith(const char16_t *srcChars,
             int32_t srcStart,
             int32_t srcLength) const {
   if(srcLength < 0) {
-    srcLength = u_strlen(srcChars + srcStart);
+    srcLength = u_strlen(toUCharPtr(srcChars + srcStart));
   }
   return doCompare(length() - srcLength, srcLength,
                    srcChars, srcStart, srcLength) == 0;
@@ -4307,14 +4470,14 @@
 inline UnicodeString&
 UnicodeString::replace(int32_t start,
                int32_t _length,
-               const UChar *srcChars,
+               ConstChar16Ptr srcChars,
                int32_t srcLength)
 { return doReplace(start, _length, srcChars, 0, srcLength); }
 
 inline UnicodeString&
 UnicodeString::replace(int32_t start,
                int32_t _length,
-               const UChar *srcChars,
+               const char16_t *srcChars,
                int32_t srcStart,
                int32_t srcLength)
 { return doReplace(start, _length, srcChars, srcStart, srcLength); }
@@ -4322,7 +4485,7 @@
 inline UnicodeString&
 UnicodeString::replace(int32_t start,
                int32_t _length,
-               UChar srcChar)
+               char16_t srcChar)
 { return doReplace(start, _length, &srcChar, 0, 1); }
 
 inline UnicodeString&
@@ -4365,7 +4528,7 @@
 inline void
 UnicodeString::extract(int32_t start,
                int32_t _length,
-               UChar *target,
+               Char16Ptr target,
                int32_t targetStart) const
 { doExtract(start, _length, target, targetStart); }
 
@@ -4393,7 +4556,7 @@
 inline void
 UnicodeString::extractBetween(int32_t start,
                   int32_t limit,
-                  UChar *dst,
+                  char16_t *dst,
                   int32_t dstStart) const {
   pinIndex(start);
   pinIndex(limit);
@@ -4405,7 +4568,7 @@
     return tempSubString(start, limit - start);
 }
 
-inline UChar
+inline char16_t
 UnicodeString::doCharAt(int32_t offset) const
 {
   if((uint32_t)offset < (uint32_t)length()) {
@@ -4415,11 +4578,11 @@
   }
 }
 
-inline UChar
+inline char16_t
 UnicodeString::charAt(int32_t offset) const
 { return doCharAt(offset); }
 
-inline UChar
+inline char16_t
 UnicodeString::operator[] (int32_t offset) const
 { return doCharAt(offset); }
 
@@ -4460,14 +4623,14 @@
 }
 
 inline void
-UnicodeString::setArray(UChar *array, int32_t len, int32_t capacity) {
+UnicodeString::setArray(char16_t *array, int32_t len, int32_t capacity) {
   setLength(len);
   fUnion.fFields.fArray = array;
   fUnion.fFields.fCapacity = capacity;
 }
 
 inline UnicodeString&
-UnicodeString::operator= (UChar ch)
+UnicodeString::operator= (char16_t ch)
 { return doReplace(0, length(), &ch, 0, 1); }
 
 inline UnicodeString&
@@ -4499,7 +4662,7 @@
 }
 
 inline UnicodeString&
-UnicodeString::setTo(const UChar *srcChars,
+UnicodeString::setTo(const char16_t *srcChars,
              int32_t srcLength)
 {
   unBogus();
@@ -4507,7 +4670,7 @@
 }
 
 inline UnicodeString&
-UnicodeString::setTo(UChar srcChar)
+UnicodeString::setTo(char16_t srcChar)
 {
   unBogus();
   return doReplace(0, length(), &srcChar, 0, 1);
@@ -4531,22 +4694,22 @@
 { return doAppend(srcText, 0, srcText.length()); }
 
 inline UnicodeString&
-UnicodeString::append(const UChar *srcChars,
+UnicodeString::append(const char16_t *srcChars,
               int32_t srcStart,
               int32_t srcLength)
 { return doAppend(srcChars, srcStart, srcLength); }
 
 inline UnicodeString&
-UnicodeString::append(const UChar *srcChars,
+UnicodeString::append(ConstChar16Ptr srcChars,
               int32_t srcLength)
 { return doAppend(srcChars, 0, srcLength); }
 
 inline UnicodeString&
-UnicodeString::append(UChar srcChar)
+UnicodeString::append(char16_t srcChar)
 { return doAppend(&srcChar, 0, 1); }
 
 inline UnicodeString&
-UnicodeString::operator+= (UChar ch)
+UnicodeString::operator+= (char16_t ch)
 { return doAppend(&ch, 0, 1); }
 
 inline UnicodeString&
@@ -4572,20 +4735,20 @@
 
 inline UnicodeString&
 UnicodeString::insert(int32_t start,
-              const UChar *srcChars,
+              const char16_t *srcChars,
               int32_t srcStart,
               int32_t srcLength)
 { return doReplace(start, 0, srcChars, srcStart, srcLength); }
 
 inline UnicodeString&
 UnicodeString::insert(int32_t start,
-              const UChar *srcChars,
+              ConstChar16Ptr srcChars,
               int32_t srcLength)
 { return doReplace(start, 0, srcChars, 0, srcLength); }
 
 inline UnicodeString&
 UnicodeString::insert(int32_t start,
-              UChar srcChar)
+              char16_t srcChar)
 { return doReplace(start, 0, &srcChar, 0, 1); }
 
 inline UnicodeString&
diff --git a/source/common/unicode/unorm.h b/source/common/unicode/unorm.h
index f527c26..1b5af16 100644
--- a/source/common/unicode/unorm.h
+++ b/source/common/unicode/unorm.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/common/unicode/unorm2.h b/source/common/unicode/unorm2.h
index 56e99b2..c6d3494 100644
--- a/source/common/unicode/unorm2.h
+++ b/source/common/unicode/unorm2.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unorm2.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/uobject.h b/source/common/unicode/uobject.h
index ec231ee..9782f27 100644
--- a/source/common/unicode/uobject.h
+++ b/source/common/unicode/uobject.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  uobject.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/urename.h b/source/common/unicode/urename.h
index b220a54..21c839a 100644
--- a/source/common/unicode/urename.h
+++ b/source/common/unicode/urename.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -7,7 +7,7 @@
 *******************************************************************************
 *
 *   file name:  urename.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -100,12 +100,16 @@
 #define _UTF16BEData U_ICU_ENTRY_POINT_RENAME(_UTF16BEData)
 #define _UTF16Data U_ICU_ENTRY_POINT_RENAME(_UTF16Data)
 #define _UTF16LEData U_ICU_ENTRY_POINT_RENAME(_UTF16LEData)
+#define _UTF16v2Data U_ICU_ENTRY_POINT_RENAME(_UTF16v2Data)
 #define _UTF32BEData U_ICU_ENTRY_POINT_RENAME(_UTF32BEData)
 #define _UTF32Data U_ICU_ENTRY_POINT_RENAME(_UTF32Data)
 #define _UTF32LEData U_ICU_ENTRY_POINT_RENAME(_UTF32LEData)
 #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
 #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
+#define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
 #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
+#define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
+#define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
 #define gTimeZoneFilesInitOnce U_ICU_ENTRY_POINT_RENAME(gTimeZoneFilesInitOnce)
 #define izrule_clone U_ICU_ENTRY_POINT_RENAME(izrule_clone)
 #define izrule_close U_ICU_ENTRY_POINT_RENAME(izrule_close)
@@ -121,16 +125,6 @@
 #define izrule_getStaticClassID U_ICU_ENTRY_POINT_RENAME(izrule_getStaticClassID)
 #define izrule_isEquivalentTo U_ICU_ENTRY_POINT_RENAME(izrule_isEquivalentTo)
 #define izrule_open U_ICU_ENTRY_POINT_RENAME(izrule_open)
-#define le_close U_ICU_ENTRY_POINT_RENAME(le_close)
-#define le_create U_ICU_ENTRY_POINT_RENAME(le_create)
-#define le_getCharIndices U_ICU_ENTRY_POINT_RENAME(le_getCharIndices)
-#define le_getCharIndicesWithBase U_ICU_ENTRY_POINT_RENAME(le_getCharIndicesWithBase)
-#define le_getGlyphCount U_ICU_ENTRY_POINT_RENAME(le_getGlyphCount)
-#define le_getGlyphPosition U_ICU_ENTRY_POINT_RENAME(le_getGlyphPosition)
-#define le_getGlyphPositions U_ICU_ENTRY_POINT_RENAME(le_getGlyphPositions)
-#define le_getGlyphs U_ICU_ENTRY_POINT_RENAME(le_getGlyphs)
-#define le_layoutChars U_ICU_ENTRY_POINT_RENAME(le_layoutChars)
-#define le_reset U_ICU_ENTRY_POINT_RENAME(le_reset)
 #define locale_getKeywords U_ICU_ENTRY_POINT_RENAME(locale_getKeywords)
 #define locale_getKeywordsStart U_ICU_ENTRY_POINT_RENAME(locale_getKeywordsStart)
 #define locale_get_default U_ICU_ENTRY_POINT_RENAME(locale_get_default)
@@ -486,6 +480,7 @@
 #define ubrk_first U_ICU_ENTRY_POINT_RENAME(ubrk_first)
 #define ubrk_following U_ICU_ENTRY_POINT_RENAME(ubrk_following)
 #define ubrk_getAvailable U_ICU_ENTRY_POINT_RENAME(ubrk_getAvailable)
+#define ubrk_getBinaryRules U_ICU_ENTRY_POINT_RENAME(ubrk_getBinaryRules)
 #define ubrk_getLocaleByType U_ICU_ENTRY_POINT_RENAME(ubrk_getLocaleByType)
 #define ubrk_getRuleStatus U_ICU_ENTRY_POINT_RENAME(ubrk_getRuleStatus)
 #define ubrk_getRuleStatusVec U_ICU_ENTRY_POINT_RENAME(ubrk_getRuleStatusVec)
@@ -493,6 +488,7 @@
 #define ubrk_last U_ICU_ENTRY_POINT_RENAME(ubrk_last)
 #define ubrk_next U_ICU_ENTRY_POINT_RENAME(ubrk_next)
 #define ubrk_open U_ICU_ENTRY_POINT_RENAME(ubrk_open)
+#define ubrk_openBinaryRules U_ICU_ENTRY_POINT_RENAME(ubrk_openBinaryRules)
 #define ubrk_openRules U_ICU_ENTRY_POINT_RENAME(ubrk_openRules)
 #define ubrk_preceding U_ICU_ENTRY_POINT_RENAME(ubrk_preceding)
 #define ubrk_previous U_ICU_ENTRY_POINT_RENAME(ubrk_previous)
@@ -554,7 +550,6 @@
 #define ucase_addStringCaseClosure U_ICU_ENTRY_POINT_RENAME(ucase_addStringCaseClosure)
 #define ucase_fold U_ICU_ENTRY_POINT_RENAME(ucase_fold)
 #define ucase_getCaseLocale U_ICU_ENTRY_POINT_RENAME(ucase_getCaseLocale)
-#define ucase_getSingleton U_ICU_ENTRY_POINT_RENAME(ucase_getSingleton)
 #define ucase_getType U_ICU_ENTRY_POINT_RENAME(ucase_getType)
 #define ucase_getTypeOrIgnorable U_ICU_ENTRY_POINT_RENAME(ucase_getTypeOrIgnorable)
 #define ucase_hasBinaryProperty U_ICU_ENTRY_POINT_RENAME(ucase_hasBinaryProperty)
@@ -1150,6 +1145,7 @@
 #define unum_formatDecimal U_ICU_ENTRY_POINT_RENAME(unum_formatDecimal)
 #define unum_formatDouble U_ICU_ENTRY_POINT_RENAME(unum_formatDouble)
 #define unum_formatDoubleCurrency U_ICU_ENTRY_POINT_RENAME(unum_formatDoubleCurrency)
+#define unum_formatDoubleForFields U_ICU_ENTRY_POINT_RENAME(unum_formatDoubleForFields)
 #define unum_formatInt64 U_ICU_ENTRY_POINT_RENAME(unum_formatInt64)
 #define unum_formatUFormattable U_ICU_ENTRY_POINT_RENAME(unum_formatUFormattable)
 #define unum_getAttribute U_ICU_ENTRY_POINT_RENAME(unum_getAttribute)
@@ -1181,9 +1177,11 @@
 #define unumsys_openAvailableNames U_ICU_ENTRY_POINT_RENAME(unumsys_openAvailableNames)
 #define unumsys_openByName U_ICU_ENTRY_POINT_RENAME(unumsys_openByName)
 #define uplrules_close U_ICU_ENTRY_POINT_RENAME(uplrules_close)
+#define uplrules_getKeywords U_ICU_ENTRY_POINT_RENAME(uplrules_getKeywords)
 #define uplrules_open U_ICU_ENTRY_POINT_RENAME(uplrules_open)
 #define uplrules_openForType U_ICU_ENTRY_POINT_RENAME(uplrules_openForType)
 #define uplrules_select U_ICU_ENTRY_POINT_RENAME(uplrules_select)
+#define uplrules_selectWithFormat U_ICU_ENTRY_POINT_RENAME(uplrules_selectWithFormat)
 #define uplug_closeLibrary U_ICU_ENTRY_POINT_RENAME(uplug_closeLibrary)
 #define uplug_findLibrary U_ICU_ENTRY_POINT_RENAME(uplug_findLibrary)
 #define uplug_getConfiguration U_ICU_ENTRY_POINT_RENAME(uplug_getConfiguration)
@@ -1220,6 +1218,7 @@
 #define uprv_compareInvEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_compareInvEbcdic)
 #define uprv_compareInvEbcdicAsAscii U_ICU_ENTRY_POINT_RENAME(uprv_compareInvEbcdicAsAscii)
 #define uprv_convertToLCID U_ICU_ENTRY_POINT_RENAME(uprv_convertToLCID)
+#define uprv_convertToLCIDPlatform U_ICU_ENTRY_POINT_RENAME(uprv_convertToLCIDPlatform)
 #define uprv_convertToPosix U_ICU_ENTRY_POINT_RENAME(uprv_convertToPosix)
 #define uprv_copyAscii U_ICU_ENTRY_POINT_RENAME(uprv_copyAscii)
 #define uprv_copyEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_copyEbcdic)
@@ -1654,12 +1653,13 @@
 #define ustr_hashCharsN U_ICU_ENTRY_POINT_RENAME(ustr_hashCharsN)
 #define ustr_hashICharsN U_ICU_ENTRY_POINT_RENAME(ustr_hashICharsN)
 #define ustr_hashUCharsN U_ICU_ENTRY_POINT_RENAME(ustr_hashUCharsN)
+#define ustrcase_getCaseLocale U_ICU_ENTRY_POINT_RENAME(ustrcase_getCaseLocale)
 #define ustrcase_internalFold U_ICU_ENTRY_POINT_RENAME(ustrcase_internalFold)
 #define ustrcase_internalToLower U_ICU_ENTRY_POINT_RENAME(ustrcase_internalToLower)
 #define ustrcase_internalToTitle U_ICU_ENTRY_POINT_RENAME(ustrcase_internalToTitle)
 #define ustrcase_internalToUpper U_ICU_ENTRY_POINT_RENAME(ustrcase_internalToUpper)
 #define ustrcase_map U_ICU_ENTRY_POINT_RENAME(ustrcase_map)
-#define ustrcase_setTempCaseMapLocale U_ICU_ENTRY_POINT_RENAME(ustrcase_setTempCaseMapLocale)
+#define ustrcase_mapWithOverlap U_ICU_ENTRY_POINT_RENAME(ustrcase_mapWithOverlap)
 #define utext_char32At U_ICU_ENTRY_POINT_RENAME(utext_char32At)
 #define utext_clone U_ICU_ENTRY_POINT_RENAME(utext_clone)
 #define utext_close U_ICU_ENTRY_POINT_RENAME(utext_close)
@@ -1704,7 +1704,6 @@
 #define utrace_functionName U_ICU_ENTRY_POINT_RENAME(utrace_functionName)
 #define utrace_getFunctions U_ICU_ENTRY_POINT_RENAME(utrace_getFunctions)
 #define utrace_getLevel U_ICU_ENTRY_POINT_RENAME(utrace_getLevel)
-#define utrace_level U_ICU_ENTRY_POINT_RENAME(utrace_level)
 #define utrace_setFunctions U_ICU_ENTRY_POINT_RENAME(utrace_setFunctions)
 #define utrace_setLevel U_ICU_ENTRY_POINT_RENAME(utrace_setLevel)
 #define utrace_vformat U_ICU_ENTRY_POINT_RENAME(utrace_vformat)
diff --git a/source/common/unicode/urep.h b/source/common/unicode/urep.h
index b559b24..932202d 100644
--- a/source/common/unicode/urep.h
+++ b/source/common/unicode/urep.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unicode/ures.h b/source/common/unicode/ures.h
index 620d926..918b9f2 100644
--- a/source/common/unicode/ures.h
+++ b/source/common/unicode/ures.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/uscript.h b/source/common/unicode/uscript.h
index a20cd15..1420578 100644
--- a/source/common/unicode/uscript.h
+++ b/source/common/unicode/uscript.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/common/unicode/uset.h b/source/common/unicode/uset.h
index 8baabbe..59f4650 100644
--- a/source/common/unicode/uset.h
+++ b/source/common/unicode/uset.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uset.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/usetiter.h b/source/common/unicode/usetiter.h
index 26591d0..d0d9918 100644
--- a/source/common/unicode/usetiter.h
+++ b/source/common/unicode/usetiter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ushape.h b/source/common/unicode/ushape.h
index 0ea3231..c64fe22 100644
--- a/source/common/unicode/ushape.h
+++ b/source/common/unicode/ushape.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  ushape.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/usprep.h b/source/common/unicode/usprep.h
index 5bd837e..da0848d 100644
--- a/source/common/unicode/usprep.h
+++ b/source/common/unicode/usprep.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -8,7 +8,7 @@
  *
  *******************************************************************************
  *   file name:  usprep.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/unicode/ustring.h b/source/common/unicode/ustring.h
index e62fef5..31b0556 100644
--- a/source/common/unicode/ustring.h
+++ b/source/common/unicode/ustring.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unicode/ustringtrie.h b/source/common/unicode/ustringtrie.h
index 50d31ba..fd85648 100644
--- a/source/common/unicode/ustringtrie.h
+++ b/source/common/unicode/ustringtrie.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  udicttrie.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utext.h b/source/common/unicode/utext.h
index fd11995..80ce8af 100644
--- a/source/common/unicode/utext.h
+++ b/source/common/unicode/utext.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utext.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utf.h b/source/common/unicode/utf.h
index ffb094f..dff4286 100644
--- a/source/common/unicode/utf.h
+++ b/source/common/unicode/utf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utf.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utf16.h b/source/common/unicode/utf16.h
index 6e7d1da..9cc73f7 100644
--- a/source/common/unicode/utf16.h
+++ b/source/common/unicode/utf16.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utf16.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utf32.h b/source/common/unicode/utf32.h
index f93727c..8822c4d 100644
--- a/source/common/unicode/utf32.h
+++ b/source/common/unicode/utf32.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utf32.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utf8.h b/source/common/unicode/utf8.h
index 55f7b9d..18e7e94 100644
--- a/source/common/unicode/utf8.h
+++ b/source/common/unicode/utf8.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utf8.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -41,25 +41,7 @@
 
 /* internal definitions ----------------------------------------------------- */
 
-/**
- * \var utf8_countTrailBytes
- * Internal array with numbers of trail bytes for any given byte used in
- * lead byte position.
- *
- * This is internal since it is not meant to be called directly by external clients;
- * however it is called by public macros in this file and thus must remain stable,
- * and should not be hidden when other internal functions are hidden (otherwise
- * public macros would fail to compile).
- * @internal
- */
-#ifdef U_UTF8_IMPL
-U_EXPORT const uint8_t 
-#elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION)
-U_CFUNC const uint8_t
-#else
-U_CFUNC U_IMPORT const uint8_t /* U_IMPORT2? */ /*U_IMPORT*/ 
-#endif
-utf8_countTrailBytes[256];
+
 
 /**
  * Counts the trail bytes for a UTF-8 lead byte.
diff --git a/source/common/unicode/utf_old.h b/source/common/unicode/utf_old.h
index c7d5145..250cb8c 100644
--- a/source/common/unicode/utf_old.h
+++ b/source/common/unicode/utf_old.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utf_old.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -17,12 +17,12 @@
 */
 
 /**
- * \file 
+ * \file
  * \brief C API: Deprecated macros for Unicode string handling
  */
 
 /**
- * 
+ *
  * The macros in utf_old.h are all deprecated and their use discouraged.
  * Some of the design principles behind the set of UTF macros
  * have changed or proved impractical.
@@ -268,6 +268,25 @@
 /* Formerly utf8.h ---------------------------------------------------------- */
 
 /**
+* \var utf8_countTrailBytes
+* Internal array with numbers of trail bytes for any given byte used in
+* lead byte position.
+*
+* This is internal since it is not meant to be called directly by external clients;
+* however it is called by public macros in this file and thus must remain stable,
+* and should not be hidden when other internal functions are hidden (otherwise
+* public macros would fail to compile).
+* @internal
+*/
+#ifdef U_UTF8_IMPL
+// No forward declaration if compiling utf_impl.cpp, which defines utf8_countTrailBytes.
+#elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION)
+U_CFUNC const uint8_t utf8_countTrailBytes[];
+#else
+U_CFUNC U_IMPORT const uint8_t utf8_countTrailBytes[];    /* U_IMPORT2? */ /*U_IMPORT*/
+#endif
+
+/**
  * Count the trail bytes for a UTF-8 lead byte.
  * @deprecated ICU 2.4. Renamed to U8_COUNT_TRAIL_BYTES, see utf_old.h.
  */
diff --git a/source/common/unicode/utrace.h b/source/common/unicode/utrace.h
index c55f8c1..6b4c4df 100644
--- a/source/common/unicode/utrace.h
+++ b/source/common/unicode/utrace.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utrace.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unicode/utypes.h b/source/common/unicode/utypes.h
index 6b56aa3..8f8bef4 100644
--- a/source/common/unicode/utypes.h
+++ b/source/common/unicode/utypes.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -178,12 +178,12 @@
 
 /**
  * \def NULL
- * Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.
+ * Define NULL if necessary, to nullptr for C++ and to ((void *)0) for C.
  * @stable ICU 2.0
  */
 #ifndef NULL
 #ifdef __cplusplus
-#define NULL    0
+#define NULL    nullptr
 #else
 #define NULL    ((void *)0)
 #endif
diff --git a/source/common/unicode/uvernum.h b/source/common/unicode/uvernum.h
index fb7b48b..cae59ad 100644
--- a/source/common/unicode/uvernum.h
+++ b/source/common/unicode/uvernum.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -7,7 +7,7 @@
 *******************************************************************************
 *
 *   file name:  uvernum.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -58,7 +58,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION_MAJOR_NUM 58
+#define U_ICU_VERSION_MAJOR_NUM 59
 
 /** The current ICU minor version as an integer.
  *  This value will change in the subsequent releases of ICU
@@ -84,7 +84,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SUFFIX _58
+#define U_ICU_VERSION_SUFFIX _59
 
 /**
  * \def U_DEF2_ICU_ENTRY_POINT_RENAME
@@ -119,19 +119,24 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION "58.1"
+#define U_ICU_VERSION "59.1"
 
 /** The current ICU library major/minor version as a string without dots, for library name suffixes.
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SHORT "58"
+#if U_PLATFORM_HAS_WINUWP_API == 0
+#define U_ICU_VERSION_SHORT "59"
+#else
+// U_DISABLE_RENAMING does not impact dat file name
+#define U_ICU_VERSION_SHORT
+#endif /* U_PLATFORM_HAS_WINUWP_API == 0 */
 
 #ifndef U_HIDE_INTERNAL_API
 /** Data version in ICU4C.
  * @internal ICU 4.4 Internal Use Only
  **/
-#define U_ICU_DATA_VERSION "58.1"
+#define U_ICU_DATA_VERSION "59.1"
 #endif  /* U_HIDE_INTERNAL_API */
 
 /*===========================================================================
diff --git a/source/common/unicode/uversion.h b/source/common/unicode/uversion.h
index 3f8ad36..e24068d 100644
--- a/source/common/unicode/uversion.h
+++ b/source/common/unicode/uversion.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -7,7 +7,7 @@
 *******************************************************************************
 *
 *   file name:  uversion.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unifiedcache.cpp b/source/common/unifiedcache.cpp
index 6e7156f..fd2d107 100644
--- a/source/common/unifiedcache.cpp
+++ b/source/common/unifiedcache.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unifiedcache.h b/source/common/unifiedcache.h
index 72b8a79..97da7ff 100644
--- a/source/common/unifiedcache.h
+++ b/source/common/unifiedcache.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unifilt.cpp b/source/common/unifilt.cpp
index 2d8ce35..4ab0d9b 100644
--- a/source/common/unifilt.cpp
+++ b/source/common/unifilt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/unifunct.cpp b/source/common/unifunct.cpp
index 8fdc638..f3995b2 100644
--- a/source/common/unifunct.cpp
+++ b/source/common/unifunct.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uniset.cpp b/source/common/uniset.cpp
index 7866719..fe5a157 100644
--- a/source/common/uniset.cpp
+++ b/source/common/uniset.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uniset_closure.cpp b/source/common/uniset_closure.cpp
index b6bc64f..44bb4bc 100644
--- a/source/common/uniset_closure.cpp
+++ b/source/common/uniset_closure.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uniset_closure.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -184,7 +184,6 @@
         return *this;
     }
     if (attribute & (USET_CASE_INSENSITIVE | USET_ADD_CASE_MAPPINGS)) {
-        const UCaseProps *csp = ucase_getSingleton();
         {
             UnicodeSet foldSet(*this);
             UnicodeString str;
@@ -207,7 +206,6 @@
             int32_t n = getRangeCount();
             UChar32 result;
             const UChar *full;
-            int32_t locCache = 0;
 
             for (int32_t i=0; i<n; ++i) {
                 UChar32 start = getRangeStart(i);
@@ -216,22 +214,22 @@
                 if (attribute & USET_CASE_INSENSITIVE) {
                     // full case closure
                     for (UChar32 cp=start; cp<=end; ++cp) {
-                        ucase_addCaseClosure(csp, cp, &sa);
+                        ucase_addCaseClosure(cp, &sa);
                     }
                 } else {
                     // add case mappings
                     // (does not add long s for regular s, or Kelvin for k, for example)
                     for (UChar32 cp=start; cp<=end; ++cp) {
-                        result = ucase_toFullLower(csp, cp, NULL, NULL, &full, "", &locCache);
+                        result = ucase_toFullLower(cp, NULL, NULL, &full, UCASE_LOC_ROOT);
                         addCaseMapping(foldSet, result, full, str);
 
-                        result = ucase_toFullTitle(csp, cp, NULL, NULL, &full, "", &locCache);
+                        result = ucase_toFullTitle(cp, NULL, NULL, &full, UCASE_LOC_ROOT);
                         addCaseMapping(foldSet, result, full, str);
 
-                        result = ucase_toFullUpper(csp, cp, NULL, NULL, &full, "", &locCache);
+                        result = ucase_toFullUpper(cp, NULL, NULL, &full, UCASE_LOC_ROOT);
                         addCaseMapping(foldSet, result, full, str);
 
-                        result = ucase_toFullFolding(csp, cp, &full, 0);
+                        result = ucase_toFullFolding(cp, &full, 0);
                         addCaseMapping(foldSet, result, full, str);
                     }
                 }
@@ -241,7 +239,7 @@
                     for (int32_t j=0; j<strings->size(); ++j) {
                         str = *(const UnicodeString *) strings->elementAt(j);
                         str.foldCase();
-                        if(!ucase_addStringCaseClosure(csp, str.getBuffer(), str.length(), &sa)) {
+                        if(!ucase_addStringCaseClosure(str.getBuffer(), str.length(), &sa)) {
                             foldSet.add(str); // does not map to code points: add the folded string itself
                         }
                     }
diff --git a/source/common/uniset_props.cpp b/source/common/uniset_props.cpp
index ed31946..0a13740 100644
--- a/source/common/uniset_props.cpp
+++ b/source/common/uniset_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uniset_props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -195,7 +195,7 @@
         if(U_SUCCESS(status)) {
             impl->addPropertyStarts(&sa, status);
         }
-        ucase_addPropertyStarts(ucase_getSingleton(), &sa, &status);
+        ucase_addPropertyStarts(&sa, &status);
         break;
     }
     case UPROPS_SRC_NFC: {
@@ -228,7 +228,7 @@
     }
 #endif
     case UPROPS_SRC_CASE:
-        ucase_addPropertyStarts(ucase_getSingleton(), &sa, &status);
+        ucase_addPropertyStarts(&sa, &status);
         break;
     case UPROPS_SRC_BIDI:
         ubidi_addPropertyStarts(ubidi_getSingleton(), &sa, &status);
diff --git a/source/common/unisetspan.cpp b/source/common/unisetspan.cpp
index 2e77dfd..83bc794 100644
--- a/source/common/unisetspan.cpp
+++ b/source/common/unisetspan.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  unisetspan.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unisetspan.h b/source/common/unisetspan.h
index 36cdd98..f1e78ff 100644
--- a/source/common/unisetspan.h
+++ b/source/common/unisetspan.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  unisetspan.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/unistr.cpp b/source/common/unistr.cpp
index bdd58ec..1bfb71a 100644
--- a/source/common/unistr.cpp
+++ b/source/common/unistr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -218,9 +218,10 @@
 }
 
 UnicodeString::UnicodeString(UBool isTerminated,
-                             const UChar *text,
+                             ConstChar16Ptr textPtr,
                              int32_t textLength) {
   fUnion.fFields.fLengthAndFlags = kReadonlyAlias;
+  const UChar *text = textPtr;
   if(text == NULL) {
     // treat as an empty string, do not alias
     setToEmpty();
@@ -234,7 +235,8 @@
       // text is terminated, or else it would have failed the above test
       textLength = u_strlen(text);
     }
-    setArray((UChar *)text, textLength, isTerminated ? textLength + 1 : textLength);
+    setArray(const_cast<UChar *>(text), textLength,
+             isTerminated ? textLength + 1 : textLength);
   }
 }
 
@@ -873,7 +875,7 @@
 }
 
 int32_t
-UnicodeString::extract(UChar *dest, int32_t destCapacity,
+UnicodeString::extract(Char16Ptr dest, int32_t destCapacity,
                        UErrorCode &errorCode) const {
   int32_t len = length();
   if(U_SUCCESS(errorCode)) {
@@ -1215,10 +1217,10 @@
   }
 }
 
-const UChar *
+const char16_t *
 UnicodeString::getTerminatedBuffer() {
   if(!isWritable()) {
-    return 0;
+    return nullptr;
   }
   UChar *array = getArrayStart();
   int32_t len = length();
@@ -1249,14 +1251,14 @@
     array[len] = 0;
     return array;
   } else {
-    return NULL;
+    return nullptr;
   }
 }
 
 // setTo() analogous to the readonly-aliasing constructor with the same signature
 UnicodeString &
 UnicodeString::setTo(UBool isTerminated,
-                     const UChar *text,
+                     ConstChar16Ptr textPtr,
                      int32_t textLength)
 {
   if(fUnion.fFields.fLengthAndFlags & kOpenGetBuffer) {
@@ -1264,6 +1266,7 @@
     return *this;
   }
 
+  const UChar *text = textPtr;
   if(text == NULL) {
     // treat as an empty string, do not alias
     releaseArray();
@@ -1713,14 +1716,14 @@
 // External Buffer
 //========================================
 
-UChar *
+char16_t *
 UnicodeString::getBuffer(int32_t minCapacity) {
   if(minCapacity>=-1 && cloneArrayIfNeeded(minCapacity)) {
     fUnion.fFields.fLengthAndFlags|=kOpenGetBuffer;
     setZeroLength();
     return getArrayStart();
   } else {
-    return 0;
+    return nullptr;
   }
 }
 
diff --git a/source/common/unistr_case.cpp b/source/common/unistr_case.cpp
index 1715b6e..1c62ce5 100644
--- a/source/common/unistr_case.cpp
+++ b/source/common/unistr_case.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unistr_case.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -19,14 +19,17 @@
 */
 
 #include "unicode/utypes.h"
+#include "unicode/casemap.h"
+#include "unicode/edits.h"
 #include "unicode/putil.h"
 #include "cstring.h"
 #include "cmemory.h"
 #include "unicode/ustring.h"
 #include "unicode/unistr.h"
 #include "unicode/uchar.h"
+#include "uassert.h"
+#include "ucasemap_imp.h"
 #include "uelement.h"
-#include "ustr_imp.h"
 
 U_NAMESPACE_BEGIN
 
@@ -87,56 +90,104 @@
 //========================================
 
 UnicodeString &
-UnicodeString::caseMap(const UCaseMap *csm,
+UnicodeString::caseMap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
                        UStringCaseMapper *stringCaseMapper) {
   if(isEmpty() || !isWritable()) {
     // nothing to do
     return *this;
   }
 
+  UChar oldBuffer[2 * US_STACKBUF_SIZE];
+  UChar *oldArray;
+  int32_t oldLength = length();
+  int32_t newLength;
+  UBool writable = isBufferWritable();
+  UErrorCode errorCode = U_ZERO_ERROR;
+
+  // Try to avoid heap-allocating a new character array for this string.
+  if (writable ? oldLength <= UPRV_LENGTHOF(oldBuffer) : oldLength < US_STACKBUF_SIZE) {
+    // Short string: Copy the contents into a temporary buffer and
+    // case-map back into the current array, or into the stack buffer.
+    UChar *buffer = getArrayStart();
+    int32_t capacity;
+    oldArray = oldBuffer;
+    u_memcpy(oldBuffer, buffer, oldLength);
+    if (writable) {
+      capacity = getCapacity();
+    } else {
+      // Switch from the read-only alias or shared heap buffer to the stack buffer.
+      if (!cloneArrayIfNeeded(US_STACKBUF_SIZE, US_STACKBUF_SIZE, /* doCopyArray= */ FALSE)) {
+        return *this;
+      }
+      U_ASSERT(fUnion.fFields.fLengthAndFlags & kUsingStackBuffer);
+      buffer = fUnion.fStackFields.fBuffer;
+      capacity = US_STACKBUF_SIZE;
+    }
+    newLength = stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR
+                                 buffer, capacity,
+                                 oldArray, oldLength, NULL, errorCode);
+    if (U_SUCCESS(errorCode)) {
+      setLength(newLength);
+      return *this;
+    } else if (errorCode == U_BUFFER_OVERFLOW_ERROR) {
+      // common overflow handling below
+    } else {
+      setToBogus();
+      return *this;
+    }
+  } else {
+    // Longer string or read-only buffer:
+    // Collect only changes and then apply them to this string.
+    // Case mapping often changes only small parts of a string,
+    // and often does not change its length.
+    oldArray = getArrayStart();
+    Edits edits;
+    UChar replacementChars[200];
+    stringCaseMapper(caseLocale, options | UCASEMAP_OMIT_UNCHANGED_TEXT, UCASEMAP_BREAK_ITERATOR
+                     replacementChars, UPRV_LENGTHOF(replacementChars),
+                     oldArray, oldLength, &edits, errorCode);
+    if (U_SUCCESS(errorCode)) {
+      // Grow the buffer at most once, not for multiple doReplace() calls.
+      newLength = oldLength + edits.lengthDelta();
+      if (newLength > oldLength && !cloneArrayIfNeeded(newLength, newLength)) {
+        return *this;
+      }
+      for (Edits::Iterator ei = edits.getCoarseChangesIterator(); ei.next(errorCode);) {
+        doReplace(ei.destinationIndex(), ei.oldLength(),
+                  replacementChars, ei.replacementIndex(), ei.newLength());
+      }
+      if (U_FAILURE(errorCode)) {
+        setToBogus();
+      }
+      return *this;
+    } else if (errorCode == U_BUFFER_OVERFLOW_ERROR) {
+      // common overflow handling below
+      newLength = oldLength + edits.lengthDelta();
+    } else {
+      setToBogus();
+      return *this;
+    }
+  }
+
+  // Handle buffer overflow, newLength is known.
   // We need to allocate a new buffer for the internal string case mapping function.
   // This is very similar to how doReplace() keeps the old array pointer
   // and deletes the old array itself after it is done.
   // In addition, we are forcing cloneArrayIfNeeded() to always allocate a new array.
-  UChar oldStackBuffer[US_STACKBUF_SIZE];
-  UChar *oldArray;
-  int32_t oldLength;
-
-  if(fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) {
-    // copy the stack buffer contents because it will be overwritten
-    oldArray = oldStackBuffer;
-    oldLength = getShortLength();
-    u_memcpy(oldStackBuffer, fUnion.fStackFields.fBuffer, oldLength);
-  } else {
-    oldArray = getArrayStart();
-    oldLength = length();
-  }
-
-  int32_t capacity;
-  if(oldLength <= US_STACKBUF_SIZE) {
-    capacity = US_STACKBUF_SIZE;
-  } else {
-    capacity = oldLength + 20;
-  }
   int32_t *bufferToDelete = 0;
-  if(!cloneArrayIfNeeded(capacity, capacity, FALSE, &bufferToDelete, TRUE)) {
+  if (!cloneArrayIfNeeded(newLength, newLength, FALSE, &bufferToDelete, TRUE)) {
     return *this;
   }
-
-  // Case-map, and if the result is too long, then reallocate and repeat.
-  UErrorCode errorCode;
-  int32_t newLength;
-  do {
-    errorCode = U_ZERO_ERROR;
-    newLength = stringCaseMapper(csm, getArrayStart(), getCapacity(),
-                                 oldArray, oldLength, &errorCode);
-    setLength(newLength);
-  } while(errorCode==U_BUFFER_OVERFLOW_ERROR && cloneArrayIfNeeded(newLength, newLength, FALSE));
-
+  errorCode = U_ZERO_ERROR;
+  newLength = stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR
+                               getArrayStart(), getCapacity(),
+                               oldArray, oldLength, NULL, errorCode);
   if (bufferToDelete) {
     uprv_free(bufferToDelete);
   }
-  if(U_FAILURE(errorCode)) {
+  if (U_SUCCESS(errorCode)) {
+    setLength(newLength);
+  } else {
     setToBogus();
   }
   return *this;
@@ -144,10 +195,7 @@
 
 UnicodeString &
 UnicodeString::foldCase(uint32_t options) {
-  UCaseMap csm=UCASEMAP_INITIALIZER;
-  csm.csp=ucase_getSingleton();
-  csm.options=options;
-  return caseMap(&csm, ustrcase_internalFold);
+  return caseMap(UCASE_LOC_ROOT, options, UCASEMAP_BREAK_ITERATOR_NULL ustrcase_internalFold);
 }
 
 U_NAMESPACE_END
diff --git a/source/common/unistr_case_locale.cpp b/source/common/unistr_case_locale.cpp
index a01be5c..f0f3048 100644
--- a/source/common/unistr_case_locale.cpp
+++ b/source/common/unistr_case_locale.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  unistr_case_locale.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -19,9 +19,9 @@
 
 #include "unicode/utypes.h"
 #include "unicode/locid.h"
+#include "unicode/ucasemap.h"
 #include "unicode/unistr.h"
-#include "cmemory.h"
-#include "ustr_imp.h"
+#include "ucasemap_imp.h"
 
 U_NAMESPACE_BEGIN
 
@@ -29,44 +29,28 @@
 // Write implementation
 //========================================
 
-/*
- * Set parameters on an empty UCaseMap, for UCaseMap-less API functions.
- * Do this fast because it is called with every function call.
- */
-static inline void
-setTempCaseMap(UCaseMap *csm, const char *locale) {
-    if(csm->csp==NULL) {
-        csm->csp=ucase_getSingleton();
-    }
-    if(locale!=NULL && locale[0]==0) {
-        csm->locale[0]=0;
-    } else {
-        ustrcase_setTempCaseMapLocale(csm, locale);
-    }
-}
-
 UnicodeString &
 UnicodeString::toLower() {
-  return toLower(Locale::getDefault());
+  return caseMap(ustrcase_getCaseLocale(NULL), 0,
+                 UCASEMAP_BREAK_ITERATOR_NULL ustrcase_internalToLower);
 }
 
 UnicodeString &
 UnicodeString::toLower(const Locale &locale) {
-  UCaseMap csm=UCASEMAP_INITIALIZER;
-  setTempCaseMap(&csm, locale.getName());
-  return caseMap(&csm, ustrcase_internalToLower);
+  return caseMap(ustrcase_getCaseLocale(locale.getBaseName()), 0,
+                 UCASEMAP_BREAK_ITERATOR_NULL ustrcase_internalToLower);
 }
 
 UnicodeString &
 UnicodeString::toUpper() {
-  return toUpper(Locale::getDefault());
+  return caseMap(ustrcase_getCaseLocale(NULL), 0,
+                 UCASEMAP_BREAK_ITERATOR_NULL ustrcase_internalToUpper);
 }
 
 UnicodeString &
 UnicodeString::toUpper(const Locale &locale) {
-  UCaseMap csm=UCASEMAP_INITIALIZER;
-  setTempCaseMap(&csm, locale.getName());
-  return caseMap(&csm, ustrcase_internalToUpper);
+  return caseMap(ustrcase_getCaseLocale(locale.getBaseName()), 0,
+                 UCASEMAP_BREAK_ITERATOR_NULL ustrcase_internalToUpper);
 }
 
 U_NAMESPACE_END
diff --git a/source/common/unistr_cnv.cpp b/source/common/unistr_cnv.cpp
index a9b44ee..64d3c16 100644
--- a/source/common/unistr_cnv.cpp
+++ b/source/common/unistr_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unistr_cnv.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
diff --git a/source/common/unistr_props.cpp b/source/common/unistr_props.cpp
index f099779..4006475 100644
--- a/source/common/unistr_props.cpp
+++ b/source/common/unistr_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unistr_props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
diff --git a/source/common/unistr_titlecase_brkiter.cpp b/source/common/unistr_titlecase_brkiter.cpp
index 3d6737c..3156fdf 100644
--- a/source/common/unistr_titlecase_brkiter.cpp
+++ b/source/common/unistr_titlecase_brkiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  unistr_titlecase_brkiter.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -22,36 +22,10 @@
 #if !UCONFIG_NO_BREAK_ITERATION
 
 #include "unicode/brkiter.h"
-#include "unicode/ubrk.h"
+#include "unicode/locid.h"
+#include "unicode/ucasemap.h"
 #include "unicode/unistr.h"
-#include "unicode/ustring.h"
-#include "cmemory.h"
-#include "ustr_imp.h"
-
-static int32_t U_CALLCONV
-unistr_case_internalToTitle(const UCaseMap *csm,
-                            UChar *dest, int32_t destCapacity,
-                            const UChar *src, int32_t srcLength,
-                            UErrorCode *pErrorCode) {
-  ubrk_setText(csm->iter, src, srcLength, pErrorCode);
-  return ustrcase_internalToTitle(csm, dest, destCapacity, src, srcLength, pErrorCode);
-}
-
-/*
- * Set parameters on an empty UCaseMap, for UCaseMap-less API functions.
- * Do this fast because it is called with every function call.
- */
-static inline void
-setTempCaseMap(UCaseMap *csm, const char *locale) {
-    if(csm->csp==NULL) {
-        csm->csp=ucase_getSingleton();
-    }
-    if(locale!=NULL && locale[0]==0) {
-        csm->locale[0]=0;
-    } else {
-        ustrcase_setTempCaseMapLocale(csm, locale);
-    }
-}
+#include "ucasemap_imp.h"
 
 U_NAMESPACE_BEGIN
 
@@ -67,9 +41,6 @@
 
 UnicodeString &
 UnicodeString::toTitle(BreakIterator *titleIter, const Locale &locale, uint32_t options) {
-  UCaseMap csm=UCASEMAP_INITIALIZER;
-  csm.options=options;
-  setTempCaseMap(&csm, locale.getName());
   BreakIterator *bi=titleIter;
   if(bi==NULL) {
     UErrorCode errorCode=U_ZERO_ERROR;
@@ -79,8 +50,12 @@
       return *this;
     }
   }
-  csm.iter=reinterpret_cast<UBreakIterator *>(bi);
-  caseMap(&csm, unistr_case_internalToTitle);
+  // Because the "this" string is both the source and the destination,
+  // make a copy of the original source for use by the break iterator.
+  // See tickets #13127 and #13128
+  UnicodeString copyOfInput(*this);
+  bi->setText(copyOfInput);
+  caseMap(ustrcase_getCaseLocale(locale.getBaseName()), options, bi, ustrcase_internalToTitle);
   if(titleIter==NULL) {
     delete bi;
   }
diff --git a/source/common/unistrappender.h b/source/common/unistrappender.h
index 330f3a5..75fcb9e 100644
--- a/source/common/unistrappender.h
+++ b/source/common/unistrappender.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unorm.cpp b/source/common/unorm.cpp
index a9df6d2..2d9f460 100644
--- a/source/common/unorm.cpp
+++ b/source/common/unorm.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/unormcmp.cpp b/source/common/unormcmp.cpp
index b40a10a..689b0b5 100644
--- a/source/common/unormcmp.cpp
+++ b/source/common/unormcmp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unormcmp.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -145,7 +145,6 @@
                    uint32_t options,
                    UErrorCode *pErrorCode) {
     const Normalizer2Impl *nfcImpl;
-    const UCaseProps *csp;
 
     /* current-level start/limit - s1/s2 as current */
     const UChar *start1, *start2, *limit1, *limit2;
@@ -183,11 +182,6 @@
     } else {
         nfcImpl=NULL;
     }
-    if((options&U_COMPARE_IGNORE_CASE)!=0) {
-        csp=ucase_getSingleton();
-    } else {
-        csp=NULL;
-    }
     if(U_FAILURE(*pErrorCode)) {
         return 0;
     }
@@ -319,7 +313,7 @@
          */
 
         if( level1==0 && (options&U_COMPARE_IGNORE_CASE) &&
-            (length=ucase_toFullFolding(csp, (UChar32)cp1, &p, options))>=0
+            (length=ucase_toFullFolding((UChar32)cp1, &p, options))>=0
         ) {
             /* cp1 case-folds to the code point "length" or to p[length] */
             if(U_IS_SURROGATE(c1)) {
@@ -364,7 +358,7 @@
         }
 
         if( level2==0 && (options&U_COMPARE_IGNORE_CASE) &&
-            (length=ucase_toFullFolding(csp, (UChar32)cp2, &p, options))>=0
+            (length=ucase_toFullFolding((UChar32)cp2, &p, options))>=0
         ) {
             /* cp2 case-folds to the code point "length" or to p[length] */
             if(U_IS_SURROGATE(c2)) {
diff --git a/source/common/unormimp.h b/source/common/unormimp.h
index cd1d9a8..88c7975 100644
--- a/source/common/unormimp.h
+++ b/source/common/unormimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unormimp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uobject.cpp b/source/common/uobject.cpp
index 37406e4..1133dd9 100644
--- a/source/common/uobject.cpp
+++ b/source/common/uobject.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  uobject.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uposixdefs.h b/source/common/uposixdefs.h
index 495deea..45ca123 100644
--- a/source/common/uposixdefs.h
+++ b/source/common/uposixdefs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  uposixdefs.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -54,22 +54,18 @@
  *
  * z/OS needs this definition for timeval and to get usleep.
  */
-#if !defined(_XOPEN_SOURCE_EXTENDED)
+#if !defined(_XOPEN_SOURCE_EXTENDED) && defined(__TOS_MVS__)
 #   define _XOPEN_SOURCE_EXTENDED 1
 #endif
 
-/*
- * There is an issue with turning on _XOPEN_SOURCE_EXTENDED on certain platforms.
- * A compatibility issue exists between turning on _XOPEN_SOURCE_EXTENDED and using
- * standard C++ string class. As a result, standard C++ string class needs to be
- * turned off for the follwing platforms:
- *  -AIX/VACPP
- *  -Solaris/GCC
+/**
+ * Solaris says:
+ *   "...it is invalid to compile an XPG6 or a POSIX.1-2001 application with anything other
+ *   than a c99 or later compiler."
+ * Apparently C++11 is not "or later". Work around this.
  */
-#if (U_PLATFORM == U_PF_AIX && !defined(__GNUC__)) || (U_PLATFORM == U_PF_SOLARIS && defined(__GNUC__))
-#   if _XOPEN_SOURCE_EXTENDED && !defined(U_HAVE_STD_STRING)
-#   define U_HAVE_STD_STRING 0
-#   endif
+#if defined(__cplusplus) && (defined(sun) || defined(__sun)) && !defined (_STDC_C99)
+#   define _STDC_C99
 #endif
 
 #endif  /* __UPOSIXDEFS_H__ */
diff --git a/source/common/uprops.cpp b/source/common/uprops.cpp
index 46ceb66..fc91c89 100644
--- a/source/common/uprops.cpp
+++ b/source/common/uprops.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uprops.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -128,9 +128,8 @@
     }
     if(c>=0) {
         /* single code point */
-        const UCaseProps *csp=ucase_getSingleton();
         const UChar *resultString;
-        return (UBool)(ucase_toFullFolding(csp, c, &resultString, U_FOLD_CASE_DEFAULT)>=0);
+        return (UBool)(ucase_toFullFolding(c, &resultString, U_FOLD_CASE_DEFAULT)>=0);
     } else {
         /* guess some large but stack-friendly capacity */
         UChar dest[2*UCASE_MAX_STRING_LENGTH];
@@ -576,14 +575,13 @@
     // case folding and NFKC.)
     // For the derivation, see Unicode's DerivedNormalizationProps.txt.
     const Normalizer2 *nfkc=Normalizer2::getNFKCInstance(*pErrorCode);
-    const UCaseProps *csp=ucase_getSingleton();
     if(U_FAILURE(*pErrorCode)) {
         return 0;
     }
     // first: b = NFKC(Fold(a))
     UnicodeString folded1String;
     const UChar *folded1;
-    int32_t folded1Length=ucase_toFullFolding(csp, c, &folded1, U_FOLD_CASE_DEFAULT);
+    int32_t folded1Length=ucase_toFullFolding(c, &folded1, U_FOLD_CASE_DEFAULT);
     if(folded1Length<0) {
         const Normalizer2Impl *nfkcImpl=Normalizer2Factory::getImpl(nfkc);
         if(nfkcImpl->getCompQuickCheck(nfkcImpl->getNorm16(c))!=UNORM_NO) {
diff --git a/source/common/uprops.h b/source/common/uprops.h
index 63c5880..f5d69fe 100644
--- a/source/common/uprops.h
+++ b/source/common/uprops.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uprops.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ures_cnv.c b/source/common/ures_cnv.cpp
similarity index 92%
rename from source/common/ures_cnv.c
rename to source/common/ures_cnv.cpp
index 58c6cd0..1aa58e7 100644
--- a/source/common/ures_cnv.c
+++ b/source/common/ures_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ures_cnv.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -43,7 +43,7 @@
     }
     else {
         length=u_strlen(myPath);
-        if(length>=sizeof(pathBuffer)) {
+        if(length>=(int32_t)sizeof(pathBuffer)) {
             *status=U_ILLEGAL_ARGUMENT_ERROR;
             return NULL;
         } else if(uprv_isInvariantUString(myPath, length)) {
@@ -61,7 +61,7 @@
             if(U_FAILURE(*status)) {
                 return NULL;
             }
-            if(length>=sizeof(pathBuffer)) {
+            if(length>=(int32_t)sizeof(pathBuffer)) {
                 /* not NUL-terminated - path too long */
                 *status=U_ILLEGAL_ARGUMENT_ERROR;
                 return NULL;
diff --git a/source/common/uresbund.cpp b/source/common/uresbund.cpp
index a32bfd1..5a1dd0a 100644
--- a/source/common/uresbund.cpp
+++ b/source/common/uresbund.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uresdata.cpp b/source/common/uresdata.cpp
index 44654dc..8bcb9ab 100644
--- a/source/common/uresdata.cpp
+++ b/source/common/uresdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *               and others. All Rights Reserved.
 *******************************************************************************
 *   file name:  uresdata.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -758,7 +758,9 @@
                         int32_t indexR, const char **key) {
     uint32_t offset=RES_GET_OFFSET(table);
     int32_t length;
-    U_ASSERT(indexR>=0); /* to ensure the index is not negative */
+    if (indexR < 0) {
+        return RES_BOGUS;
+    }
     switch(RES_GET_TYPE(table)) {
     case URES_TABLE: {
         if (offset != 0) { /* empty if offset==0 */
@@ -836,7 +838,9 @@
 U_CAPI Resource U_EXPORT2
 res_getArrayItem(const ResourceData *pResData, Resource array, int32_t indexR) {
     uint32_t offset=RES_GET_OFFSET(array);
-    U_ASSERT(indexR>=0); /* to ensure the index is not negative */
+    if (indexR < 0) {
+        return RES_BOGUS;
+    }
     switch(RES_GET_TYPE(array)) {
     case URES_ARRAY: {
         if (offset!=0) { /* empty if offset==0 */
@@ -923,14 +927,14 @@
       if(t2 == RES_BOGUS) { 
         /* if we fail to get the resource by key, maybe we got an index */
         indexR = uprv_strtol(pathP, &closeIndex, 10);
-        if(*closeIndex == 0) {
+        if(indexR >= 0 && *closeIndex == 0) {
           /* if we indeed have an index, try to get the item by index */
           t2 = res_getTableItemByIndex(pResData, t1, indexR, key);
-        }
+        } // else t2 is already RES_BOGUS
       }
     } else if(URES_IS_ARRAY(type)) {
       indexR = uprv_strtol(pathP, &closeIndex, 10);
-      if(*closeIndex == 0) {
+      if(indexR >= 0 && *closeIndex == 0) {
         t2 = res_getArrayItem(pResData, t1, indexR);
       } else {
         t2 = RES_BOGUS; /* have an array, but don't have a valid index */
diff --git a/source/common/uresdata.h b/source/common/uresdata.h
index ae7d9a8..8d845e3 100644
--- a/source/common/uresdata.h
+++ b/source/common/uresdata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  uresdata.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uresimp.h b/source/common/uresimp.h
index 5645ee9..e7fa3e1 100644
--- a/source/common/uresimp.h
+++ b/source/common/uresimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ureslocs.h b/source/common/ureslocs.h
index 85dd8fb..f7c3344 100644
--- a/source/common/ureslocs.h
+++ b/source/common/ureslocs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/usc_impl.c b/source/common/usc_impl.cpp
similarity index 98%
rename from source/common/usc_impl.c
rename to source/common/usc_impl.cpp
index 1fff0c4..111029b 100644
--- a/source/common/usc_impl.c
+++ b/source/common/usc_impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -197,7 +197,7 @@
         return NULL;
     }
 
-    result = uprv_malloc(sizeof (UScriptRun));
+    result = (UScriptRun *)uprv_malloc(sizeof (UScriptRun));
 
     if (result == NULL) {
         *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
diff --git a/source/common/usc_impl.h b/source/common/usc_impl.h
index 7c9c5e0..4489964 100644
--- a/source/common/usc_impl.h
+++ b/source/common/usc_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uscript.c b/source/common/uscript.cpp
similarity index 98%
rename from source/common/uscript.c
rename to source/common/uscript.cpp
index 336e185..83b5f7e 100644
--- a/source/common/uscript.c
+++ b/source/common/uscript.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uscript_props.cpp b/source/common/uscript_props.cpp
index 20c7cdc..f8ec5e3 100644
--- a/source/common/uscript_props.cpp
+++ b/source/common/uscript_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  uscript_props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uset.cpp b/source/common/uset.cpp
index dbbf694..39ad0a3 100644
--- a/source/common/uset.cpp
+++ b/source/common/uset.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uset.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uset_imp.h b/source/common/uset_imp.h
index 703c881..7233b93 100644
--- a/source/common/uset_imp.h
+++ b/source/common/uset_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uset_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uset_props.cpp b/source/common/uset_props.cpp
index fd48f45..f08e760 100644
--- a/source/common/uset_props.cpp
+++ b/source/common/uset_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uset_props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/usetiter.cpp b/source/common/usetiter.cpp
index 514dc03..93048ba 100644
--- a/source/common/usetiter.cpp
+++ b/source/common/usetiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ushape.cpp b/source/common/ushape.cpp
index 8420cc9..90f339b 100644
--- a/source/common/ushape.cpp
+++ b/source/common/ushape.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
@@ -8,7 +8,7 @@
  *
  ******************************************************************************
  *   file name:  ushape.cpp
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/usprep.cpp b/source/common/usprep.cpp
index 565d9e5..d96e825 100644
--- a/source/common/usprep.cpp
+++ b/source/common/usprep.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -8,7 +8,7 @@
  *
  *******************************************************************************
  *   file name:  usprep.cpp
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/common/ustack.cpp b/source/common/ustack.cpp
index 1de79ec..fb314b0 100644
--- a/source/common/ustack.cpp
+++ b/source/common/ustack.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ustr_cnv.cpp b/source/common/ustr_cnv.cpp
index e27639f..38f4d82 100644
--- a/source/common/ustr_cnv.cpp
+++ b/source/common/ustr_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ustr_cnv.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ustr_cnv.h b/source/common/ustr_cnv.h
index 74f8885..861e3eb 100644
--- a/source/common/ustr_cnv.h
+++ b/source/common/ustr_cnv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ustr_cnv.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/ustr_imp.h b/source/common/ustr_imp.h
index 34a6936..9815915 100644
--- a/source/common/ustr_imp.h
+++ b/source/common/ustr_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  ustr_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -18,23 +18,6 @@
 #define __USTR_IMP_H__
 
 #include "unicode/utypes.h"
-#include "unicode/uiter.h"
-#include "ucase.h"
-
-/** Simple declaration to avoid including unicode/ubrk.h. */
-#ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
-#   define UBRK_TYPEDEF_UBREAK_ITERATOR
-    typedef struct UBreakIterator UBreakIterator;
-#endif
-
-#ifndef U_COMPARE_IGNORE_CASE
-/* see also unorm.h */
-/**
- * Option bit for unorm_compare:
- * Perform case-insensitive comparison.
- */
-#define U_COMPARE_IGNORE_CASE       0x10000
-#endif
 
 /**
  * Internal option for unorm_cmpEquivFold() for strncmp style.
@@ -53,211 +36,6 @@
                 const UChar *s2, int32_t length2,
                 UBool strncmpStyle, UBool codePointOrder);
 
-/**
- * Internal API, used by u_strcasecmp() etc.
- * Compare strings case-insensitively,
- * in code point order or code unit order.
- */
-U_CFUNC int32_t
-u_strcmpFold(const UChar *s1, int32_t length1,
-             const UChar *s2, int32_t length2,
-             uint32_t options,
-             UErrorCode *pErrorCode);
-
-/**
- * Interanl API, used for detecting length of
- * shared prefix case-insensitively.
- * @param s1            input string 1
- * @param length1       length of string 1, or -1 (NULL terminated)
- * @param s2            input string 2
- * @param length2       length of string 2, or -1 (NULL terminated)
- * @param options       compare options
- * @param matchLen1     (output) length of partial prefix match in s1
- * @param matchLen2     (output) length of partial prefix match in s2
- * @param pErrorCode    receives error status
- */
-U_CAPI void
-u_caseInsensitivePrefixMatch(const UChar *s1, int32_t length1,
-                             const UChar *s2, int32_t length2,
-                             uint32_t options,
-                             int32_t *matchLen1, int32_t *matchLen2,
-                             UErrorCode *pErrorCode);
-
-/**
- * Are the Unicode properties loaded?
- * This must be used before internal functions are called that do
- * not perform this check.
- * Generate a debug assertion failure if data is not loaded.
- */
-U_CFUNC UBool
-uprv_haveProperties(UErrorCode *pErrorCode);
-
-/**
-  * Load the Unicode property data.
-  * Intended primarily for use from u_init().
-  * Has no effect if property data is already loaded.
-  * NOT thread safe.
-  */
-/*U_CFUNC int8_t
-uprv_loadPropsData(UErrorCode *errorCode);*/
-
-/*
- * Internal string casing functions implementing
- * ustring.h/ustrcase.c and UnicodeString case mapping functions.
- */
-
-struct UCaseMap {
-    const UCaseProps *csp;
-#if !UCONFIG_NO_BREAK_ITERATION
-    UBreakIterator *iter;  /* We adopt the iterator, so we own it. */
-#endif
-    char locale[32];
-    int32_t locCache;
-    uint32_t options;
-};
-
-#ifndef __UCASEMAP_H__
-typedef struct UCaseMap UCaseMap;
-#endif
-
-#if UCONFIG_NO_BREAK_ITERATION
-#   define UCASEMAP_INITIALIZER { NULL, { 0 }, 0, 0 }
-#else
-#   define UCASEMAP_INITIALIZER { NULL, NULL, { 0 }, 0, 0 }
-#endif
-
-U_CFUNC void
-ustrcase_setTempCaseMapLocale(UCaseMap *csm, const char *locale);
-
-#ifndef U_STRING_CASE_MAPPER_DEFINED
-#define U_STRING_CASE_MAPPER_DEFINED
-
-/**
- * String case mapping function type, used by ustrcase_map().
- * All error checking must be done.
- * The UCaseMap must be fully initialized, with locale and/or iter set as needed.
- * src and dest must not overlap.
- */
-typedef int32_t U_CALLCONV
-UStringCaseMapper(const UCaseMap *csm,
-                  UChar *dest, int32_t destCapacity,
-                  const UChar *src, int32_t srcLength,
-                  UErrorCode *pErrorCode);
-
-#endif
-
-/** Implements UStringCaseMapper. */
-U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToLower(const UCaseMap *csm,
-                         UChar *dest, int32_t destCapacity,
-                         const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode);
-
-/** Implements UStringCaseMapper. */
-U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToUpper(const UCaseMap *csm,
-                         UChar *dest, int32_t destCapacity,
-                         const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode);
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-/** Implements UStringCaseMapper. */
-U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToTitle(const UCaseMap *csm,
-                         UChar *dest, int32_t destCapacity,
-                         const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode);
-
-#endif
-
-/** Implements UStringCaseMapper. */
-U_CFUNC int32_t U_CALLCONV
-ustrcase_internalFold(const UCaseMap *csm,
-                      UChar *dest, int32_t destCapacity,
-                      const UChar *src, int32_t srcLength,
-                      UErrorCode *pErrorCode);
-
-/**
- * Implements argument checking and buffer handling
- * for string case mapping as a common function.
- */
-U_CFUNC int32_t
-ustrcase_map(const UCaseMap *csm,
-             UChar *dest, int32_t destCapacity,
-             const UChar *src, int32_t srcLength,
-             UStringCaseMapper *stringCaseMapper,
-             UErrorCode *pErrorCode);
-
-/**
- * UTF-8 string case mapping function type, used by ucasemap_mapUTF8().
- * UTF-8 version of UStringCaseMapper.
- * All error checking must be done.
- * The UCaseMap must be fully initialized, with locale and/or iter set as needed.
- * src and dest must not overlap.
- */
-typedef int32_t U_CALLCONV
-UTF8CaseMapper(const UCaseMap *csm,
-               uint8_t *dest, int32_t destCapacity,
-               const uint8_t *src, int32_t srcLength,
-               UErrorCode *pErrorCode);
-
-/** Implements UTF8CaseMapper. */
-U_CFUNC int32_t U_CALLCONV
-ucasemap_internalUTF8ToTitle(const UCaseMap *csm,
-         uint8_t *dest, int32_t destCapacity,
-         const uint8_t *src, int32_t srcLength,
-         UErrorCode *pErrorCode);
-
-/**
- * Implements argument checking and buffer handling
- * for UTF-8 string case mapping as a common function.
- */
-U_CFUNC int32_t
-ucasemap_mapUTF8(const UCaseMap *csm,
-                 uint8_t *dest, int32_t destCapacity,
-                 const uint8_t *src, int32_t srcLength,
-                 UTF8CaseMapper *stringCaseMapper,
-                 UErrorCode *pErrorCode);
-
-#ifdef __cplusplus
-
-U_NAMESPACE_BEGIN
-namespace GreekUpper {
-
-// Data bits.
-static const uint32_t UPPER_MASK = 0x3ff;
-static const uint32_t HAS_VOWEL = 0x1000;
-static const uint32_t HAS_YPOGEGRAMMENI = 0x2000;
-static const uint32_t HAS_ACCENT = 0x4000;
-static const uint32_t HAS_DIALYTIKA = 0x8000;
-// Further bits during data building and processing, not stored in the data map.
-static const uint32_t HAS_COMBINING_DIALYTIKA = 0x10000;
-static const uint32_t HAS_OTHER_GREEK_DIACRITIC = 0x20000;
-
-static const uint32_t HAS_VOWEL_AND_ACCENT = HAS_VOWEL | HAS_ACCENT;
-static const uint32_t HAS_VOWEL_AND_ACCENT_AND_DIALYTIKA =
-        HAS_VOWEL_AND_ACCENT | HAS_DIALYTIKA;
-static const uint32_t HAS_EITHER_DIALYTIKA = HAS_DIALYTIKA | HAS_COMBINING_DIALYTIKA;
-
-// State bits.
-static const uint32_t AFTER_CASED = 1;
-static const uint32_t AFTER_VOWEL_WITH_ACCENT = 2;
-
-uint32_t getLetterData(UChar32 c);
-
-/**
- * Returns a non-zero value for each of the Greek combining diacritics
- * listed in The Unicode Standard, version 8, chapter 7.2 Greek,
- * plus some perispomeni look-alikes.
- */
-uint32_t getDiacriticData(UChar32 c);
-
-}  // namespace GreekUpper
-U_NAMESPACE_END
-
-#endif  // __cplusplus
-
 U_CAPI int32_t U_EXPORT2 
 ustr_hashUCharsN(const UChar *str, int32_t length);
 
diff --git a/source/common/ustr_titlecase_brkiter.cpp b/source/common/ustr_titlecase_brkiter.cpp
index 6380877..0b2ba02 100644
--- a/source/common/ustr_titlecase_brkiter.cpp
+++ b/source/common/ustr_titlecase_brkiter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ustr_titlecase_brkiter.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -22,31 +22,18 @@
 #if !UCONFIG_NO_BREAK_ITERATION
 
 #include "unicode/brkiter.h"
+#include "unicode/casemap.h"
+#include "unicode/localpointer.h"
 #include "unicode/ubrk.h"
 #include "unicode/ucasemap.h"
 #include "cmemory.h"
 #include "ucase.h"
-#include "ustr_imp.h"
+#include "ucasemap_imp.h"
+
+U_NAMESPACE_USE
 
 /* functions available in the common library (for unistr_case.cpp) */
 
-/*
- * Set parameters on an empty UCaseMap, for UCaseMap-less API functions.
- * Do this fast because it is called with every function call.
- * Duplicate of the same function in ustrcase.cpp, to keep it inline.
- */
-static inline void
-setTempCaseMap(UCaseMap *csm, const char *locale) {
-    if(csm->csp==NULL) {
-        csm->csp=ucase_getSingleton();
-    }
-    if(locale!=NULL && locale[0]==0) {
-        csm->locale[0]=0;
-    } else {
-        ustrcase_setTempCaseMapLocale(csm, locale);
-    }
-}
-
 /* public API functions */
 
 U_CAPI int32_t U_EXPORT2
@@ -55,39 +42,73 @@
              UBreakIterator *titleIter,
              const char *locale,
              UErrorCode *pErrorCode) {
-    UCaseMap csm=UCASEMAP_INITIALIZER;
-    setTempCaseMap(&csm, locale);
+    LocalPointer<BreakIterator> ownedIter;
+    BreakIterator *iter;
     if(titleIter!=NULL) {
-        ubrk_setText(csm.iter=titleIter, src, srcLength, pErrorCode);
+        iter=reinterpret_cast<BreakIterator *>(titleIter);
     } else {
-        csm.iter=ubrk_open(UBRK_WORD, csm.locale, src, srcLength, pErrorCode);
+        iter=BreakIterator::createWordInstance(Locale(locale), *pErrorCode);
+        ownedIter.adoptInstead(iter);
     }
-    int32_t length=ustrcase_map(
-        &csm,
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    UnicodeString s(srcLength<0, src, srcLength);
+    iter->setText(s);
+    return ustrcase_mapWithOverlap(
+        ustrcase_getCaseLocale(locale), 0, iter,
         dest, destCapacity,
         src, srcLength,
-        ustrcase_internalToTitle, pErrorCode);
-    if(titleIter==NULL && csm.iter!=NULL) {
-        ubrk_close(csm.iter);
-    }
-    return length;
+        ustrcase_internalToTitle, *pErrorCode);
 }
 
+U_NAMESPACE_BEGIN
+
+int32_t CaseMap::toTitle(
+        const char *locale, uint32_t options, BreakIterator *iter,
+        const UChar *src, int32_t srcLength,
+        UChar *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    LocalPointer<BreakIterator> ownedIter;
+    if(iter==NULL) {
+        iter=BreakIterator::createWordInstance(Locale(locale), errorCode);
+        ownedIter.adoptInstead(iter);
+    }
+    if(U_FAILURE(errorCode)) {
+        return 0;
+    }
+    UnicodeString s(srcLength<0, src, srcLength);
+    iter->setText(s);
+    return ustrcase_map(
+        ustrcase_getCaseLocale(locale), options, iter,
+        dest, destCapacity,
+        src, srcLength,
+        ustrcase_internalToTitle, edits, errorCode);
+}
+
+U_NAMESPACE_END
+
 U_CAPI int32_t U_EXPORT2
 ucasemap_toTitle(UCaseMap *csm,
                  UChar *dest, int32_t destCapacity,
                  const UChar *src, int32_t srcLength,
                  UErrorCode *pErrorCode) {
-    if(csm->iter!=NULL) {
-        ubrk_setText(csm->iter, src, srcLength, pErrorCode);
-    } else {
-        csm->iter=ubrk_open(UBRK_WORD, csm->locale, src, srcLength, pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return 0;
     }
+    if (csm->iter == NULL) {
+        csm->iter = BreakIterator::createWordInstance(Locale(csm->locale), *pErrorCode);
+    }
+    if (U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    UnicodeString s(srcLength<0, src, srcLength);
+    csm->iter->setText(s);
     return ustrcase_map(
-        csm,
+        csm->caseLocale, csm->options, csm->iter,
         dest, destCapacity,
         src, srcLength,
-        ustrcase_internalToTitle, pErrorCode);
+        ustrcase_internalToTitle, NULL, *pErrorCode);
 }
 
 #endif  // !UCONFIG_NO_BREAK_ITERATION
diff --git a/source/common/ustr_wcs.cpp b/source/common/ustr_wcs.cpp
index 59a5869..e720549 100644
--- a/source/common/ustr_wcs.cpp
+++ b/source/common/ustr_wcs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ustr_wcs.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -254,7 +254,7 @@
         srcLength = u_strlen(src);
     }
     if(0 < srcLength && srcLength <= destCapacity){
-        u_memcpy(dest, src, srcLength);
+        u_memcpy((UChar *)dest, src, srcLength);
     }
     if(pDestLength){
        *pDestLength = srcLength;
@@ -509,7 +509,7 @@
         srcLength = u_strlen((const UChar *)src);
     }
     if(0 < srcLength && srcLength <= destCapacity){
-        u_memcpy(dest, src, srcLength);
+        u_memcpy(dest, (const UChar *)src, srcLength);
     }
     if(pDestLength){
        *pDestLength = srcLength;
diff --git a/source/common/ustrcase.cpp b/source/common/ustrcase.cpp
index aee3536..b12e7a7 100644
--- a/source/common/ustrcase.cpp
+++ b/source/common/ustrcase.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ustrcase.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -22,6 +22,8 @@
 
 #include "unicode/utypes.h"
 #include "unicode/brkiter.h"
+#include "unicode/casemap.h"
+#include "unicode/edits.h"
 #include "unicode/ustring.h"
 #include "unicode/ucasemap.h"
 #include "unicode/ubrk.h"
@@ -29,9 +31,30 @@
 #include "unicode/utf16.h"
 #include "cmemory.h"
 #include "ucase.h"
+#include "ucasemap_imp.h"
 #include "ustr_imp.h"
 #include "uassert.h"
 
+U_NAMESPACE_BEGIN
+
+namespace {
+
+int32_t checkOverflowAndEditsError(int32_t destIndex, int32_t destCapacity,
+                                   Edits *edits, UErrorCode &errorCode) {
+    if (U_SUCCESS(errorCode)) {
+        if (destIndex > destCapacity) {
+            errorCode = U_BUFFER_OVERFLOW_ERROR;
+        } else if (edits != NULL) {
+            edits->copyErrorTo(errorCode);
+        }
+    }
+    return destIndex;
+}
+
+}  // namespace
+
+U_NAMESPACE_END
+
 U_NAMESPACE_USE
 
 /* string casing ------------------------------------------------------------ */
@@ -39,21 +62,43 @@
 /* Appends a full case mapping result, see UCASE_MAX_STRING_LENGTH. */
 static inline int32_t
 appendResult(UChar *dest, int32_t destIndex, int32_t destCapacity,
-             int32_t result, const UChar *s) {
+             int32_t result, const UChar *s,
+             int32_t cpLength, uint32_t options, icu::Edits *edits) {
     UChar32 c;
     int32_t length;
 
     /* decode the result */
     if(result<0) {
         /* (not) original code point */
+        if(edits!=NULL) {
+            edits->addUnchanged(cpLength);
+            if(options & UCASEMAP_OMIT_UNCHANGED_TEXT) {
+                return destIndex;
+            }
+        }
         c=~result;
-        length=U16_LENGTH(c);
-    } else if(result<=UCASE_MAX_STRING_LENGTH) {
-        c=U_SENTINEL;
-        length=result;
+        if(destIndex<destCapacity && c<=0xffff) {  // BMP slightly-fastpath
+            dest[destIndex++]=(UChar)c;
+            return destIndex;
+        }
+        length=cpLength;
     } else {
-        c=result;
-        length=U16_LENGTH(c);
+        if(result<=UCASE_MAX_STRING_LENGTH) {
+            c=U_SENTINEL;
+            length=result;
+        } else if(destIndex<destCapacity && result<=0xffff) {  // BMP slightly-fastpath
+            dest[destIndex++]=(UChar)result;
+            if(edits!=NULL) {
+                edits->addReplace(cpLength, 1);
+            }
+            return destIndex;
+        } else {
+            c=result;
+            length=U16_LENGTH(c);
+        }
+        if(edits!=NULL) {
+            edits->addReplace(cpLength, length);
+        }
     }
     if(length>(INT32_MAX-destIndex)) {
         return -1;  // integer overflow
@@ -99,9 +144,15 @@
 }
 
 static inline int32_t
-appendString(UChar *dest, int32_t destIndex, int32_t destCapacity,
-             const UChar *s, int32_t length) {
+appendUnchanged(UChar *dest, int32_t destIndex, int32_t destCapacity,
+                const UChar *s, int32_t length, uint32_t options, icu::Edits *edits) {
     if(length>0) {
+        if(edits!=NULL) {
+            edits->addUnchanged(length);
+            if(options & UCASEMAP_OMIT_UNCHANGED_TEXT) {
+                return destIndex;
+            }
+        }
         if(length>(INT32_MAX-destIndex)) {
             return -1;  // integer overflow
         }
@@ -150,84 +201,66 @@
  * context [0..srcLength[ into account.
  */
 static int32_t
-_caseMap(const UCaseMap *csm, UCaseMapFull *map,
+_caseMap(int32_t caseLocale, uint32_t options, UCaseMapFull *map,
          UChar *dest, int32_t destCapacity,
          const UChar *src, UCaseContext *csc,
          int32_t srcStart, int32_t srcLimit,
-         UErrorCode *pErrorCode) {
-    const UChar *s;
-    UChar32 c, c2 = 0;
-    int32_t srcIndex, destIndex;
-    int32_t locCache;
-
-    locCache=csm->locCache;
-
+         icu::Edits *edits,
+         UErrorCode &errorCode) {
     /* case mapping loop */
-    srcIndex=srcStart;
-    destIndex=0;
+    int32_t srcIndex=srcStart;
+    int32_t destIndex=0;
     while(srcIndex<srcLimit) {
-        csc->cpStart=srcIndex;
+        int32_t cpStart;
+        csc->cpStart=cpStart=srcIndex;
+        UChar32 c;
         U16_NEXT(src, srcIndex, srcLimit, c);
         csc->cpLimit=srcIndex;
-        c=map(csm->csp, c, utf16_caseContextIterator, csc, &s, csm->locale, &locCache);
-        if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0xffff : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0xffff)) {
-            /* fast path version of appendResult() for BMP results */
-            dest[destIndex++]=(UChar)c2;
-        } else {
-            destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
-            }
+        const UChar *s;
+        c=map(c, utf16_caseContextIterator, csc, &s, caseLocale);
+        destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                 srcIndex - cpStart, options, edits);
+        if (destIndex < 0) {
+            errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
         }
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
     return destIndex;
 }
 
 #if !UCONFIG_NO_BREAK_ITERATION
 
 U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToTitle(const UCaseMap *csm,
+ustrcase_internalToTitle(int32_t caseLocale, uint32_t options, BreakIterator *iter,
                          UChar *dest, int32_t destCapacity,
                          const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode) {
-    const UChar *s;
-    UChar32 c;
-    int32_t prev, titleStart, titleLimit, idx, destIndex;
-    UBool isFirstIndex;
-
-    if(U_FAILURE(*pErrorCode)) {
+                         icu::Edits *edits,
+                         UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) {
         return 0;
     }
 
-    // Use the C++ abstract base class to minimize dependencies.
-    // TODO: Change UCaseMap.iter to store a BreakIterator directly.
-    BreakIterator *bi=reinterpret_cast<BreakIterator *>(csm->iter);
-
     /* set up local variables */
-    int32_t locCache=csm->locCache;
     UCaseContext csc=UCASECONTEXT_INITIALIZER;
     csc.p=(void *)src;
     csc.limit=srcLength;
-    destIndex=0;
-    prev=0;
-    isFirstIndex=TRUE;
+    int32_t destIndex=0;
+    int32_t prev=0;
+    UBool isFirstIndex=TRUE;
 
     /* titlecasing loop */
     while(prev<srcLength) {
         /* find next index where to titlecase */
+        int32_t index;
         if(isFirstIndex) {
             isFirstIndex=FALSE;
-            idx=bi->first();
+            index=iter->first();
         } else {
-            idx=bi->next();
+            index=iter->next();
         }
-        if(idx==UBRK_DONE || idx>srcLength) {
-            idx=srcLength;
+        if(index==UBRK_DONE || index>srcLength) {
+            index=srcLength;
         }
 
         /*
@@ -243,29 +276,32 @@
          * b) first case letter (titlecase)         [titleStart..titleLimit[
          * c) subsequent characters (lowercase)                 [titleLimit..index[
          */
-        if(prev<idx) {
+        if(prev<index) {
             /* find and copy uncased characters [prev..titleStart[ */
-            titleStart=titleLimit=prev;
-            U16_NEXT(src, titleLimit, idx, c);
-            if((csm->options&U_TITLECASE_NO_BREAK_ADJUSTMENT)==0 && UCASE_NONE==ucase_getType(csm->csp, c)) {
+            int32_t titleStart=prev;
+            int32_t titleLimit=prev;
+            UChar32 c;
+            U16_NEXT(src, titleLimit, index, c);
+            if((options&U_TITLECASE_NO_BREAK_ADJUSTMENT)==0 && UCASE_NONE==ucase_getType(c)) {
                 /* Adjust the titlecasing index (titleStart) to the next cased character. */
                 for(;;) {
                     titleStart=titleLimit;
-                    if(titleLimit==idx) {
+                    if(titleLimit==index) {
                         /*
                          * only uncased characters in [prev..index[
                          * stop with titleStart==titleLimit==index
                          */
                         break;
                     }
-                    U16_NEXT(src, titleLimit, idx, c);
-                    if(UCASE_NONE!=ucase_getType(csm->csp, c)) {
+                    U16_NEXT(src, titleLimit, index, c);
+                    if(UCASE_NONE!=ucase_getType(c)) {
                         break; /* cased letter at [titleStart..titleLimit[ */
                     }
                 }
-                destIndex=appendString(dest, destIndex, destCapacity, src+prev, titleStart-prev);
+                destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                          src+prev, titleStart-prev, options, edits);
                 if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                     return 0;
                 }
             }
@@ -274,45 +310,64 @@
                 /* titlecase c which is from [titleStart..titleLimit[ */
                 csc.cpStart=titleStart;
                 csc.cpLimit=titleLimit;
-                c=ucase_toFullTitle(csm->csp, c, utf16_caseContextIterator, &csc, &s, csm->locale, &locCache);
-                destIndex=appendResult(dest, destIndex, destCapacity, c, s); 
+                const UChar *s;
+                c=ucase_toFullTitle(c, utf16_caseContextIterator, &csc, &s, caseLocale);
+                destIndex=appendResult(dest, destIndex, destCapacity, c, s,
+                                       titleLimit-titleStart, options, edits);
                 if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                     return 0;
                 }
 
                 /* Special case Dutch IJ titlecasing */
-                if (titleStart+1 < idx &&
-                        ucase_getCaseLocale(csm->locale,&locCache) == UCASE_LOC_DUTCH &&
-                        (src[titleStart] == 0x0049 || src[titleStart] == 0x0069) &&
-                        (src[titleStart+1] == 0x004A || src[titleStart+1] == 0x006A)) {
-                    destIndex=appendUChar(dest, destIndex, destCapacity, 0x004A);
-                    if(destIndex<0) {
-                        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                        return 0;
+                if (titleStart+1 < index &&
+                        caseLocale == UCASE_LOC_DUTCH &&
+                        (src[titleStart] == 0x0049 || src[titleStart] == 0x0069)) {
+                    if (src[titleStart+1] == 0x006A) {
+                        destIndex=appendUChar(dest, destIndex, destCapacity, 0x004A);
+                        if(destIndex<0) {
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            return 0;
+                        }
+                        if(edits!=NULL) {
+                            edits->addReplace(1, 1);
+                        }
+                        titleLimit++;
+                    } else if (src[titleStart+1] == 0x004A) {
+                        // Keep the capital J from getting lowercased.
+                        destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                                  src+titleStart+1, 1, options, edits);
+                        if(destIndex<0) {
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            return 0;
+                        }
+                        titleLimit++;
                     }
-                    titleLimit++;
                 }
 
                 /* lowercase [titleLimit..index[ */
-                if(titleLimit<idx) {
-                    if((csm->options&U_TITLECASE_NO_LOWERCASE)==0) {
+                if(titleLimit<index) {
+                    if((options&U_TITLECASE_NO_LOWERCASE)==0) {
                         /* Normal operation: Lowercase the rest of the word. */
                         destIndex+=
                             _caseMap(
-                                csm, ucase_toFullLower,
+                                caseLocale, options, ucase_toFullLower,
                                 dest+destIndex, destCapacity-destIndex,
                                 src, &csc,
-                                titleLimit, idx,
-                                pErrorCode);
-                        if(U_FAILURE(*pErrorCode)) {
+                                titleLimit, index,
+                                edits, errorCode);
+                        if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+                            errorCode=U_ZERO_ERROR;
+                        }
+                        if(U_FAILURE(errorCode)) {
                             return destIndex;
                         }
                     } else {
                         /* Optionally just copy the rest of the word unchanged. */
-                        destIndex=appendString(dest, destIndex, destCapacity, src+titleLimit, idx-titleLimit);
+                        destIndex=appendUnchanged(dest, destIndex, destCapacity,
+                                                  src+titleLimit, index-titleLimit, options, edits);
                         if(destIndex<0) {
-                            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                            errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
                             return 0;
                         }
                     }
@@ -320,13 +375,10 @@
             }
         }
 
-        prev=idx;
+        prev=index;
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
-    return destIndex;
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 #endif  // !UCONFIG_NO_BREAK_ITERATION
@@ -788,11 +840,11 @@
     }
 }
 
-UBool isFollowedByCasedLetter(const UCaseProps *csp, const UChar *s, int32_t i, int32_t length) {
+UBool isFollowedByCasedLetter(const UChar *s, int32_t i, int32_t length) {
     while (i < length) {
         UChar32 c;
         U16_NEXT(s, i, length, c);
-        int32_t type = ucase_getTypeOrIgnorable(csp, c);
+        int32_t type = ucase_getTypeOrIgnorable(c);
         if ((type & UCASE_IGNORABLE) != 0) {
             // Case-ignorable, continue with the loop.
         } else if (type != UCASE_NONE) {
@@ -810,11 +862,11 @@
  * for each character.
  * TODO: Try to re-consolidate one way or another with the non-Greek function.
  */
-int32_t toUpper(const UCaseMap *csm,
+int32_t toUpper(uint32_t options,
                 UChar *dest, int32_t destCapacity,
                 const UChar *src, int32_t srcLength,
-                UErrorCode *pErrorCode) {
-    int32_t locCache = UCASE_LOC_GREEK;
+                Edits *edits,
+                UErrorCode &errorCode) {
     int32_t destIndex=0;
     uint32_t state = 0;
     for (int32_t i = 0; i < srcLength;) {
@@ -822,7 +874,7 @@
         UChar32 c;
         U16_NEXT(src, nextIndex, srcLength, c);
         uint32_t nextState = 0;
-        int32_t type = ucase_getTypeOrIgnorable(csm->csp, c);
+        int32_t type = ucase_getTypeOrIgnorable(c);
         if ((type & UCASE_IGNORABLE) != 0) {
             // c is case-ignorable
             nextState |= (state & AFTER_CASED);
@@ -869,7 +921,7 @@
                     (data & HAS_ACCENT) != 0 &&
                     numYpogegrammeni == 0 &&
                     (state & AFTER_CASED) == 0 &&
-                    !isFollowedByCasedLetter(csm->csp, src, nextIndex, srcLength)) {
+                    !isFollowedByCasedLetter(src, nextIndex, srcLength)) {
                 // Keep disjunctive "or" with (only) a tonos.
                 // We use the same "word boundary" conditions as for the Final_Sigma test.
                 if (i == nextIndex) {
@@ -887,43 +939,67 @@
                     data &= ~HAS_EITHER_DIALYTIKA;
                 }
             }
-            destIndex=appendUChar(dest, destIndex, destCapacity, (UChar)upper);
-            if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x308);  // restore or add a dialytika
+
+            UBool change = TRUE;
+            if (edits != NULL) {
+                // Find out first whether we are changing the text.
+                change = src[i] != upper || numYpogegrammeni > 0;
+                int32_t i2 = i + 1;
+                if ((data & HAS_EITHER_DIALYTIKA) != 0) {
+                    change |= i2 >= nextIndex || src[i2] != 0x308;
+                    ++i2;
+                }
+                if (addTonos) {
+                    change |= i2 >= nextIndex || src[i2] != 0x301;
+                    ++i2;
+                }
+                int32_t oldLength = nextIndex - i;
+                int32_t newLength = (i2 - i) + numYpogegrammeni;
+                change |= oldLength != newLength;
+                if (change) {
+                    if (edits != NULL) {
+                        edits->addReplace(oldLength, newLength);
+                    }
+                } else {
+                    if (edits != NULL) {
+                        edits->addUnchanged(oldLength);
+                    }
+                    // Write unchanged text?
+                    change = (options & UCASEMAP_OMIT_UNCHANGED_TEXT) == 0;
+                }
             }
-            if (destIndex >= 0 && addTonos) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x301);
-            }
-            while (destIndex >= 0 && numYpogegrammeni > 0) {
-                destIndex=appendUChar(dest, destIndex, destCapacity, 0x399);
-                --numYpogegrammeni;
-            }
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
+
+            if (change) {
+                destIndex=appendUChar(dest, destIndex, destCapacity, (UChar)upper);
+                if (destIndex >= 0 && (data & HAS_EITHER_DIALYTIKA) != 0) {
+                    destIndex=appendUChar(dest, destIndex, destCapacity, 0x308);  // restore or add a dialytika
+                }
+                if (destIndex >= 0 && addTonos) {
+                    destIndex=appendUChar(dest, destIndex, destCapacity, 0x301);
+                }
+                while (destIndex >= 0 && numYpogegrammeni > 0) {
+                    destIndex=appendUChar(dest, destIndex, destCapacity, 0x399);
+                    --numYpogegrammeni;
+                }
+                if(destIndex<0) {
+                    errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+                    return 0;
+                }
             }
         } else {
             const UChar *s;
-            UChar32 c2 = 0;
-            c=ucase_toFullUpper(csm->csp, c, NULL, NULL, &s, csm->locale, &locCache);
-            if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0xffff : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0xffff)) {
-                /* fast path version of appendResult() for BMP results */
-                dest[destIndex++]=(UChar)c2;
-            } else {
-                destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-                if(destIndex<0) {
-                    *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                    return 0;
-                }
+            c=ucase_toFullUpper(c, NULL, NULL, &s, UCASE_LOC_GREEK);
+            destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                     nextIndex - i, options, edits);
+            if (destIndex < 0) {
+                errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+                return 0;
             }
         }
         i = nextIndex;
         state = nextState;
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
     return destIndex;
 }
 
@@ -933,94 +1009,82 @@
 /* functions available in the common library (for unistr_case.cpp) */
 
 U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToLower(const UCaseMap *csm,
+ustrcase_internalToLower(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
                          UChar *dest, int32_t destCapacity,
                          const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode) {
+                         icu::Edits *edits,
+                         UErrorCode &errorCode) {
     UCaseContext csc=UCASECONTEXT_INITIALIZER;
     csc.p=(void *)src;
     csc.limit=srcLength;
-    return _caseMap(
-        csm, ucase_toFullLower,
+    int32_t destIndex = _caseMap(
+        caseLocale, options, ucase_toFullLower,
         dest, destCapacity,
         src, &csc, 0, srcLength,
-        pErrorCode);
+        edits, errorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 U_CFUNC int32_t U_CALLCONV
-ustrcase_internalToUpper(const UCaseMap *csm,
+ustrcase_internalToUpper(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
                          UChar *dest, int32_t destCapacity,
                          const UChar *src, int32_t srcLength,
-                         UErrorCode *pErrorCode) {
-    int32_t locCache = csm->locCache;
-    if (ucase_getCaseLocale(csm->locale, &locCache) == UCASE_LOC_GREEK) {
-        return GreekUpper::toUpper(csm, dest, destCapacity, src, srcLength, pErrorCode);
+                         icu::Edits *edits,
+                         UErrorCode &errorCode) {
+    int32_t destIndex;
+    if (caseLocale == UCASE_LOC_GREEK) {
+        destIndex = GreekUpper::toUpper(options, dest, destCapacity,
+                                        src, srcLength, edits, errorCode);
+    } else {
+        UCaseContext csc=UCASECONTEXT_INITIALIZER;
+        csc.p=(void *)src;
+        csc.limit=srcLength;
+        destIndex = _caseMap(
+            caseLocale, options, ucase_toFullUpper,
+            dest, destCapacity,
+            src, &csc, 0, srcLength,
+            edits, errorCode);
     }
-    UCaseContext csc=UCASECONTEXT_INITIALIZER;
-    csc.p=(void *)src;
-    csc.limit=srcLength;
-    return _caseMap(
-        csm, ucase_toFullUpper,
-        dest, destCapacity,
-        src, &csc, 0, srcLength,
-        pErrorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
-static int32_t
-ustr_foldCase(const UCaseProps *csp,
-              UChar *dest, int32_t destCapacity,
-              const UChar *src, int32_t srcLength,
-              uint32_t options,
-              UErrorCode *pErrorCode) {
-    int32_t srcIndex, destIndex;
-
-    const UChar *s;
-    UChar32 c, c2 = 0;
-
+U_CFUNC int32_t U_CALLCONV
+ustrcase_internalFold(int32_t /* caseLocale */, uint32_t options, UCASEMAP_BREAK_ITERATOR_UNUSED
+                      UChar *dest, int32_t destCapacity,
+                      const UChar *src, int32_t srcLength,
+                      icu::Edits *edits,
+                      UErrorCode &errorCode) {
     /* case mapping loop */
-    srcIndex=destIndex=0;
-    while(srcIndex<srcLength) {
+    int32_t srcIndex = 0;
+    int32_t destIndex = 0;
+    while (srcIndex < srcLength) {
+        int32_t cpStart = srcIndex;
+        UChar32 c;
         U16_NEXT(src, srcIndex, srcLength, c);
-        c=ucase_toFullFolding(csp, c, &s, options);
-        if((destIndex<destCapacity) && (c<0 ? (c2=~c)<=0xffff : UCASE_MAX_STRING_LENGTH<c && (c2=c)<=0xffff)) {
-            /* fast path version of appendResult() for BMP results */
-            dest[destIndex++]=(UChar)c2;
-        } else {
-            destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-            if(destIndex<0) {
-                *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-                return 0;
-            }
+        const UChar *s;
+        c = ucase_toFullFolding(c, &s, options);
+        destIndex = appendResult(dest, destIndex, destCapacity, c, s,
+                                 srcIndex - cpStart, options, edits);
+        if (destIndex < 0) {
+            errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
         }
     }
 
-    if(destIndex>destCapacity) {
-        *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-    }
-    return destIndex;
-}
-
-U_CFUNC int32_t U_CALLCONV
-ustrcase_internalFold(const UCaseMap *csm,
-                      UChar *dest, int32_t destCapacity,
-                      const UChar *src, int32_t srcLength,
-                      UErrorCode *pErrorCode) {
-    return ustr_foldCase(csm->csp, dest, destCapacity, src, srcLength, csm->options, pErrorCode);
+    return checkOverflowAndEditsError(destIndex, destCapacity, edits, errorCode);
 }
 
 U_CFUNC int32_t
-ustrcase_map(const UCaseMap *csm,
+ustrcase_map(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
              UChar *dest, int32_t destCapacity,
              const UChar *src, int32_t srcLength,
              UStringCaseMapper *stringCaseMapper,
-             UErrorCode *pErrorCode) {
-    UChar buffer[300];
-    UChar *temp;
-
+             icu::Edits *edits,
+             UErrorCode &errorCode) {
     int32_t destLength;
 
     /* check argument values */
-    if(U_FAILURE(*pErrorCode)) {
+    if(U_FAILURE(errorCode)) {
         return 0;
     }
     if( destCapacity<0 ||
@@ -1028,7 +1092,53 @@
         src==NULL ||
         srcLength<-1
     ) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* get the string length */
+    if(srcLength==-1) {
+        srcLength=u_strlen(src);
+    }
+
+    /* check for overlapping source and destination */
+    if( dest!=NULL &&
+        ((src>=dest && src<(dest+destCapacity)) ||
+         (dest>=src && dest<(src+srcLength)))
+    ) {
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    if(edits!=NULL) {
+        edits->reset();
+    }
+    destLength=stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR
+                                dest, destCapacity, src, srcLength, edits, errorCode);
+    return u_terminateUChars(dest, destCapacity, destLength, &errorCode);
+}
+
+U_CFUNC int32_t
+ustrcase_mapWithOverlap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITERATOR_PARAM
+                        UChar *dest, int32_t destCapacity,
+                        const UChar *src, int32_t srcLength,
+                        UStringCaseMapper *stringCaseMapper,
+                        UErrorCode &errorCode) {
+    UChar buffer[300];
+    UChar *temp;
+
+    int32_t destLength;
+
+    /* check argument values */
+    if(U_FAILURE(errorCode)) {
+        return 0;
+    }
+    if( destCapacity<0 ||
+        (dest==NULL && destCapacity>0) ||
+        src==NULL ||
+        srcLength<-1
+    ) {
+        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
@@ -1050,7 +1160,7 @@
             /* allocate a buffer */
             temp=(UChar *)uprv_malloc(destCapacity*U_SIZEOF_UCHAR);
             if(temp==NULL) {
-                *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
+                errorCode=U_MEMORY_ALLOCATION_ERROR;
                 return 0;
             }
         }
@@ -1058,21 +1168,19 @@
         temp=dest;
     }
 
-    destLength=stringCaseMapper(csm, temp, destCapacity, src, srcLength, pErrorCode);
+    destLength=stringCaseMapper(caseLocale, options, UCASEMAP_BREAK_ITERATOR
+                                temp, destCapacity, src, srcLength, NULL, errorCode);
     if(temp!=dest) {
         /* copy the result string to the destination buffer */
-        if(destLength>0) {
-            int32_t copyLength= destLength<=destCapacity ? destLength : destCapacity;
-            if(copyLength>0) {
-                u_memmove(dest, temp, copyLength);
-            }
+        if (U_SUCCESS(errorCode) && 0 < destLength && destLength <= destCapacity) {
+            u_memmove(dest, temp, destLength);
         }
         if(temp!=buffer) {
             uprv_free(temp);
         }
     }
 
-    return u_terminateUChars(dest, destCapacity, destLength, pErrorCode);
+    return u_terminateUChars(dest, destCapacity, destLength, &errorCode);
 }
 
 /* public API functions */
@@ -1082,16 +1190,29 @@
               const UChar *src, int32_t srcLength,
               uint32_t options,
               UErrorCode *pErrorCode) {
-    UCaseMap csm=UCASEMAP_INITIALIZER;
-    csm.csp=ucase_getSingleton();
-    csm.options=options;
-    return ustrcase_map(
-        &csm,
+    return ustrcase_mapWithOverlap(
+        UCASE_LOC_ROOT, options, UCASEMAP_BREAK_ITERATOR_NULL
         dest, destCapacity,
         src, srcLength,
-        ustrcase_internalFold, pErrorCode);
+        ustrcase_internalFold, *pErrorCode);
 }
 
+U_NAMESPACE_BEGIN
+
+int32_t CaseMap::fold(
+        uint32_t options,
+        const UChar *src, int32_t srcLength,
+        UChar *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ustrcase_map(
+        UCASE_LOC_ROOT, options, UCASEMAP_BREAK_ITERATOR_NULL
+        dest, destCapacity,
+        src, srcLength,
+        ustrcase_internalFold, edits, errorCode);
+}
+
+U_NAMESPACE_END
+
 /* case-insensitive string comparisons -------------------------------------- */
 
 /*
@@ -1131,8 +1252,6 @@
             UErrorCode *pErrorCode) {
     int32_t cmpRes = 0;
 
-    const UCaseProps *csp;
-
     /* current-level start/limit - s1/s2 as current */
     const UChar *start1, *start2, *limit1, *limit2;
 
@@ -1164,7 +1283,6 @@
      * assume that at least the option U_COMPARE_IGNORE_CASE is set
      * otherwise this function would have to behave exactly as uprv_strCompare()
      */
-    csp=ucase_getSingleton();
     if(U_FAILURE(*pErrorCode)) {
         return 0;
     }
@@ -1346,7 +1464,7 @@
          */
 
         if( level1==0 &&
-            (length=ucase_toFullFolding(csp, (UChar32)cp1, &p, options))>=0
+            (length=ucase_toFullFolding((UChar32)cp1, &p, options))>=0
         ) {
             /* cp1 case-folds to the code point "length" or to p[length] */
             if(U_IS_SURROGATE(c1)) {
@@ -1392,7 +1510,7 @@
         }
 
         if( level2==0 &&
-            (length=ucase_toFullFolding(csp, (UChar32)cp2, &p, options))>=0
+            (length=ucase_toFullFolding((UChar32)cp2, &p, options))>=0
         ) {
             /* cp2 case-folds to the code point "length" or to p[length] */
             if(U_IS_SURROGATE(c2)) {
diff --git a/source/common/ustrcase_locale.cpp b/source/common/ustrcase_locale.cpp
index 78f4bbd..2ecd24f 100644
--- a/source/common/ustrcase_locale.cpp
+++ b/source/common/ustrcase_locale.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ustrcase_locale.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -18,66 +18,24 @@
 */
 
 #include "unicode/utypes.h"
+#include "uassert.h"
+#include "unicode/brkiter.h"
+#include "unicode/casemap.h"
 #include "unicode/ucasemap.h"
 #include "unicode/uloc.h"
 #include "unicode/ustring.h"
 #include "ucase.h"
-#include "ustr_imp.h"
+#include "ucasemap_imp.h"
 
-U_CFUNC void
-ustrcase_setTempCaseMapLocale(UCaseMap *csm, const char *locale) {
-    /*
-     * We could call ucasemap_setLocale(), but here we really only care about
-     * the initial language subtag, we need not return the real string via
-     * ucasemap_getLocale(), and we don't care about only getting "x" from
-     * "x-some-thing" etc.
-     *
-     * We ignore locales with a longer-than-3 initial subtag.
-     *
-     * We also do not fill in the locCache because it is rarely used,
-     * and not worth setting unless we reuse it for many case mapping operations.
-     * (That's why UCaseMap was created.)
-     */
-    int i;
-    char c;
-
-    /* the internal functions require locale!=NULL */
-    if(locale==NULL) {
-        // Do not call uprv_getDefaultLocaleID() because that does not see
-        // changes to the default locale via uloc_setDefault().
-        // It would also be inefficient if used frequently because uprv_getDefaultLocaleID()
-        // does not cache the locale ID.
-        //
-        // Unfortunately, uloc_getDefault() has many dependencies.
-        // We only care about a small set of language subtags,
-        // and we do not need the locale ID to be canonicalized.
-        //
-        // Best is to not call case mapping functions with a NULL locale ID.
-        locale=uloc_getDefault();
+U_CFUNC int32_t
+ustrcase_getCaseLocale(const char *locale) {
+    if (locale == NULL) {
+        locale = uloc_getDefault();
     }
-    for(i=0; i<4 && (c=locale[i])!=0 && c!='-' && c!='_'; ++i) {
-        csm->locale[i]=c;
-    }
-    if(i<=3) {
-        csm->locale[i]=0;  /* Up to 3 non-separator characters. */
+    if (*locale == 0) {
+        return UCASE_LOC_ROOT;
     } else {
-        csm->locale[0]=0;  /* Longer-than-3 initial subtag: Ignore. */
-    }
-}
-
-/*
- * Set parameters on an empty UCaseMap, for UCaseMap-less API functions.
- * Do this fast because it is called with every function call.
- */
-static inline void
-setTempCaseMap(UCaseMap *csm, const char *locale) {
-    if(csm->csp==NULL) {
-        csm->csp=ucase_getSingleton();
-    }
-    if(locale!=NULL && locale[0]==0) {
-        csm->locale[0]=0;
-    } else {
-        ustrcase_setTempCaseMapLocale(csm, locale);
+        return ucase_getCaseLocale(locale);
     }
 }
 
@@ -88,13 +46,11 @@
              const UChar *src, int32_t srcLength,
              const char *locale,
              UErrorCode *pErrorCode) {
-    UCaseMap csm=UCASEMAP_INITIALIZER;
-    setTempCaseMap(&csm, locale);
-    return ustrcase_map(
-        &csm,
+    return ustrcase_mapWithOverlap(
+        ustrcase_getCaseLocale(locale), 0, UCASEMAP_BREAK_ITERATOR_NULL
         dest, destCapacity,
         src, srcLength,
-        ustrcase_internalToLower, pErrorCode);
+        ustrcase_internalToLower, *pErrorCode);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -102,11 +58,37 @@
              const UChar *src, int32_t srcLength,
              const char *locale,
              UErrorCode *pErrorCode) {
-    UCaseMap csm=UCASEMAP_INITIALIZER;
-    setTempCaseMap(&csm, locale);
-    return ustrcase_map(
-        &csm,
+    return ustrcase_mapWithOverlap(
+        ustrcase_getCaseLocale(locale), 0, UCASEMAP_BREAK_ITERATOR_NULL
         dest, destCapacity,
         src, srcLength,
-        ustrcase_internalToUpper, pErrorCode);
+        ustrcase_internalToUpper, *pErrorCode);
 }
+
+U_NAMESPACE_BEGIN
+
+int32_t CaseMap::toLower(
+        const char *locale, uint32_t options,
+        const UChar *src, int32_t srcLength,
+        UChar *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ustrcase_map(
+        ustrcase_getCaseLocale(locale), options, UCASEMAP_BREAK_ITERATOR_NULL
+        dest, destCapacity,
+        src, srcLength,
+        ustrcase_internalToLower, edits, errorCode);
+}
+
+int32_t CaseMap::toUpper(
+        const char *locale, uint32_t options,
+        const UChar *src, int32_t srcLength,
+        UChar *dest, int32_t destCapacity, Edits *edits,
+        UErrorCode &errorCode) {
+    return ustrcase_map(
+        ustrcase_getCaseLocale(locale), options, UCASEMAP_BREAK_ITERATOR_NULL
+        dest, destCapacity,
+        src, srcLength,
+        ustrcase_internalToUpper, edits, errorCode);
+}
+
+U_NAMESPACE_END
diff --git a/source/common/ustrenum.cpp b/source/common/ustrenum.cpp
index df73264..ed23eaa 100644
--- a/source/common/ustrenum.cpp
+++ b/source/common/ustrenum.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ustrenum.h b/source/common/ustrenum.h
index c893cd1..a82162e 100644
--- a/source/common/ustrenum.h
+++ b/source/common/ustrenum.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ustrfmt.c b/source/common/ustrfmt.cpp
similarity index 96%
rename from source/common/ustrfmt.c
rename to source/common/ustrfmt.cpp
index c7805d8..1a9b15a 100644
--- a/source/common/ustrfmt.c
+++ b/source/common/ustrfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ustrfmt.h b/source/common/ustrfmt.h
index 3cc3d69..53eb055 100644
--- a/source/common/ustrfmt.h
+++ b/source/common/ustrfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/ustring.cpp b/source/common/ustring.cpp
index aae7f5c..6450ea2 100644
--- a/source/common/ustring.cpp
+++ b/source/common/ustring.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -19,6 +19,7 @@
 
 #include "unicode/utypes.h"
 #include "unicode/putil.h"
+#include "unicode/uchar.h"
 #include "unicode/ustring.h"
 #include "unicode/utf16.h"
 #include "cstring.h"
diff --git a/source/common/ustrtrns.cpp b/source/common/ustrtrns.cpp
index 2867aaa..a468287 100644
--- a/source/common/ustrtrns.cpp
+++ b/source/common/ustrtrns.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/utext.cpp b/source/common/utext.cpp
index a89e7a6..52ae7ff 100644
--- a/source/common/utext.cpp
+++ b/source/common/utext.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utext.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -847,9 +847,15 @@
 //------------------------------------------------------------------------------
 
 // Chunk size.
-//     Must be less than 85, because of byte mapping from UChar indexes to native indexes.
-//     Worst case is three native bytes to one UChar.  (Supplemenaries are 4 native bytes
-//     to two UChars.)
+//     Must be less than 42  (256/6), because of byte mapping from UChar indexes to native indexes.
+//     Worst case there are six UTF-8 bytes per UChar.
+//         obsolete 6 byte form fd + 5 trails maps to fffd
+//         obsolete 5 byte form fc + 4 trails maps to fffd
+//         non-shortest 4 byte forms maps to fffd
+//         normal supplementaries map to a pair of utf-16, two utf8 bytes per utf-16 unit
+//     mapToUChars array size must allow for the worst case, 6.
+//     This could be brought down to 4, by treating fd and fc as pure illegal,
+//     rather than obsolete lead bytes. But that is not compatible with the utf-8 access macros.
 //
 enum { UTF8_TEXT_CHUNK_SIZE=32 };
 
@@ -889,7 +895,7 @@
                                                      //  Requires two extra slots,
                                                      //    one for a supplementary starting in the last normal position,
                                                      //    and one for an entry for the buffer limit position.
-    uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to
+    uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*6+6]; // Map native offset from bufNativeStart to
                                                      //   correspoding offset in filled part of buf.
     int32_t   align;
 };
@@ -1032,6 +1038,7 @@
             // Requested index is in this buffer.
             u8b = (UTF8Buf *)ut->p;   // the current buffer
             mapIndex = ix - u8b->toUCharsMapStart;
+            U_ASSERT(mapIndex < (int32_t)sizeof(UTF8Buf::mapToUChars));
             ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
             return TRUE;
 
@@ -1298,6 +1305,10 @@
         // Can only do this if the incoming index is somewhere in the interior of the string.
         //   If index is at the end, there is no character there to look at.
         if (ix != ut->b) {
+            // Note: this function will only move the index back if it is on a trail byte
+            //       and there is a preceding lead byte and the sequence from the lead 
+            //       through this trail could be part of a valid UTF-8 sequence
+            //       Otherwise the index remains unchanged.
             U8_SET_CP_START(s8, 0, ix);
         }
 
@@ -1311,7 +1322,10 @@
         UChar   *buf = u8b->buf;
         uint8_t *mapToNative = u8b->mapToNative;
         uint8_t *mapToUChars = u8b->mapToUChars;
-        int32_t  toUCharsMapStart = ix - (UTF8_TEXT_CHUNK_SIZE*3 + 1);
+        int32_t  toUCharsMapStart = ix - sizeof(UTF8Buf::mapToUChars) + 1;
+        // Note that toUCharsMapStart can be negative. Happens when the remaining
+        // text from current position to the beginning is less than the buffer size.
+        // + 1 because mapToUChars must have a slot at the end for the bufNativeLimit entry.
         int32_t  destIx = UTF8_TEXT_CHUNK_SIZE+2;   // Start in the overflow region
                                                     //   at end of buffer to leave room
                                                     //   for a surrogate pair at the
@@ -1338,6 +1352,7 @@
             if (c<0x80) {
                 // Special case ASCII range for speed.
                 buf[destIx] = (UChar)c;
+                U_ASSERT(toUCharsMapStart <= srcIx);
                 mapToUChars[srcIx - toUCharsMapStart] = (uint8_t)destIx;
                 mapToNative[destIx] = (uint8_t)(srcIx - toUCharsMapStart);
             } else {
@@ -1367,6 +1382,7 @@
                 do {
                     mapToUChars[sIx-- - toUCharsMapStart] = (uint8_t)destIx;
                 } while (sIx >= srcIx);
+                U_ASSERT(toUCharsMapStart <= (srcIx+1));
 
                 // Set native indexing limit to be the current position.
                 //   We are processing a non-ascii, non-native-indexing char now;
@@ -1541,6 +1557,7 @@
     U_ASSERT(index>=ut->chunkNativeStart+ut->nativeIndexingLimit);
     U_ASSERT(index<=ut->chunkNativeLimit);
     int32_t mapIndex = index - u8b->toUCharsMapStart;
+    U_ASSERT(mapIndex < (int32_t)sizeof(UTF8Buf::mapToUChars));
     int32_t offset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
     U_ASSERT(offset>=0 && offset<=ut->chunkLength);
     return offset;
@@ -2225,13 +2242,13 @@
     }
 
     if(move) {
-        // move: copy to destIndex, then replace original with nothing
+        // move: copy to destIndex, then remove original
         int32_t segLength=limit32-start32;
         us->copy(start32, limit32, destIndex32);
         if(destIndex32<start32) {
             start32+=segLength;
         }
-        us->replace(start32, segLength, NULL, 0);
+        us->remove(start32, segLength);
     } else {
         // copy
         us->copy(start32, limit32, destIndex32);
diff --git a/source/common/utf_impl.c b/source/common/utf_impl.cpp
similarity index 93%
rename from source/common/utf_impl.c
rename to source/common/utf_impl.cpp
index c4c8812..293e6f1 100644
--- a/source/common/utf_impl.c
+++ b/source/common/utf_impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utf_impl.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -31,6 +31,15 @@
 #include "uassert.h"
 
 /*
+ * Table of the number of utf8 trail bytes, indexed by the lead byte.
+ * Used by the deprecated macro UTF8_COUNT_TRAIL_BYTES, defined in utf_old.h
+ *
+ * The current macro, U8_COUNT_TRAIL_BYTES, does _not_ use this table.
+ *
+ * Note that this table cannot be removed, even if UTF8_COUNT_TRAIL_BYTES were
+ * changed to no longer use it. References to the table from expansions of UTF8_COUNT_TRAIL_BYTES
+ * may exist in old client code that must continue to run with newer icu library versions.
+ *
  * This table could be replaced on many machines by
  * a few lines of assembler code using an
  * "index of first 0-bit from msb" instruction and
@@ -51,7 +60,7 @@
  * lead bytes above 0xf4 are illegal.
  * We keep them in this table for skipping long ISO 10646-UTF-8 sequences.
  */
-U_EXPORT const uint8_t 
+extern "C" U_EXPORT const uint8_t
 utf8_countTrailBytes[256]={
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -146,6 +155,7 @@
             c=(c<<6)|trail;
             /* c>=0x110 would result in code point>0x10ffff, outside Unicode */
             if(c>=0x110 || trail>0x3f) { break; }
+            U_FALLTHROUGH;
         case 2:
             trail=s[i++]-0x80;
             c=(c<<6)|trail;
@@ -154,6 +164,7 @@
              * before the last (c<<6), a surrogate is c=360..37f
              */
             if(((c&0xffe0)==0x360 && strict!=-2) || trail>0x3f) { break; }
+            U_FALLTHROUGH;
         case 1:
             trail=s[i++]-0x80;
             c=(c<<6)|trail;
diff --git a/source/common/util.cpp b/source/common/util.cpp
index 1b77110..a762cc4 100644
--- a/source/common/util.cpp
+++ b/source/common/util.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/util.h b/source/common/util.h
index 57f1bb0..e782249 100644
--- a/source/common/util.h
+++ b/source/common/util.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/common/util_props.cpp b/source/common/util_props.cpp
index a88d581..95a112b 100644
--- a/source/common/util_props.cpp
+++ b/source/common/util_props.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/utrace.c b/source/common/utrace.cpp
similarity index 97%
rename from source/common/utrace.c
rename to source/common/utrace.cpp
index ca4dddf..dad1ef8 100644
--- a/source/common/utrace.c
+++ b/source/common/utrace.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,12 +6,11 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  utrace.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 */
 
-#define   UTRACE_IMPL
 #include "unicode/utrace.h"
 #include "utracimp.h"
 #include "cstring.h"
@@ -24,7 +23,11 @@
 static UTraceData      *pTraceDataFunc  = NULL;
 static const void      *gTraceContext   = NULL;
 
-U_EXPORT int32_t
+/**
+ * \var utrace_level
+ * Trace level variable. Negative for "off".
+ */
+static int32_t
 utrace_level = UTRACE_ERROR;
 
 U_CAPI void U_EXPORT2
@@ -134,7 +137,7 @@
 
 /* Output a pointer value in hex.  Work with any size of pointer   */
 static void outputPtrBytes(void *val, char *outBuf, int32_t *outIx, int32_t capacity) {
-    int32_t  i;
+    uint32_t  i;
     int32_t  incVal = 1;              /* +1 for big endian, -1 for little endian          */
     char     *p     = (char *)&val;   /* point to current byte to output in the ptr val  */
 
@@ -230,7 +233,7 @@
 
         case 'S':
             /* UChar * string, with length, len==-1 for null terminated. */
-            ptrArg = va_arg(args, void *);             /* Ptr    */
+            ptrArg = va_arg(args, char *);             /* Ptr    */
             intArg =(int32_t)va_arg(args, int32_t);    /* Length */
             outputUString((const UChar *)ptrArg, intArg, outBuf, &outIx, capacity, indent);
             break;
@@ -261,7 +264,7 @@
             
         case 'p':
             /*  Pointers.   */
-            ptrArg = va_arg(args, void *);
+            ptrArg = va_arg(args, char *);
             outputPtrBytes(ptrArg, outBuf, &outIx, capacity);
             break;
 
@@ -332,7 +335,7 @@
                             break;
                         case 's':
                             charsToOutput = 0;
-                            outputString(*ptrPtr, outBuf, &outIx, capacity, indent);
+                            outputString((const char *)*ptrPtr, outBuf, &outIx, capacity, indent);
                             outputChar('\n', outBuf, &outIx, capacity, indent);
                             longArg = *ptrPtr==NULL? 0: 1;   /* for test for null term. array. */
                             ptrPtr++;
diff --git a/source/common/utracimp.h b/source/common/utracimp.h
index c1786f5..e8ee53f 100644
--- a/source/common/utracimp.h
+++ b/source/common/utracimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  utracimp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -47,20 +47,6 @@
 
 U_CDECL_BEGIN
 
-/**
- * \var utrace_level
- * Trace level variable. Negative for "off".
- * Use only via UTRACE_ macros.
- * @internal
- */
-#ifdef UTRACE_IMPL
-U_EXPORT int32_t
-#else
-U_CFUNC U_COMMON_API int32_t
-#endif
-utrace_level;
-
-
 /** 
  *   Traced Function Exit return types.  
  *   Flags indicating the number and types of varargs included in a call
diff --git a/source/common/utrie.cpp b/source/common/utrie.cpp
index 478560d..ecf9b1c 100644
--- a/source/common/utrie.cpp
+++ b/source/common/utrie.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utrie.h b/source/common/utrie.h
index 17e660b..9c5382c 100644
--- a/source/common/utrie.h
+++ b/source/common/utrie.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utrie2.cpp b/source/common/utrie2.cpp
index 4bd35a9..cec7224 100644
--- a/source/common/utrie2.cpp
+++ b/source/common/utrie2.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie2.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utrie2.h b/source/common/utrie2.h
index 810bcfc..8e87bf8 100644
--- a/source/common/utrie2.h
+++ b/source/common/utrie2.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie2.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utrie2_builder.cpp b/source/common/utrie2_builder.cpp
index 664051c..d8a3a06 100644
--- a/source/common/utrie2_builder.cpp
+++ b/source/common/utrie2_builder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie2_builder.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utrie2_impl.h b/source/common/utrie2_impl.h
index 4888363..b7dc9d3 100644
--- a/source/common/utrie2_impl.h
+++ b/source/common/utrie2_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  utrie2_impl.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/uts46.cpp b/source/common/uts46.cpp
index 7bc4f92..f2cff2d 100644
--- a/source/common/uts46.cpp
+++ b/source/common/uts46.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  uts46.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/common/utypeinfo.h b/source/common/utypeinfo.h
index b39aa0d..c666373 100644
--- a/source/common/utypeinfo.h
+++ b/source/common/utypeinfo.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -24,7 +24,7 @@
 #include <exception>
 using std::exception;
 #endif
-#if !defined(_MSC_VER)
+#if defined(__GLIBCXX__)
 namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
 #endif
 #include <typeinfo>  // for 'typeid' to work
diff --git a/source/common/utypes.c b/source/common/utypes.cpp
similarity index 98%
rename from source/common/utypes.c
rename to source/common/utypes.cpp
index c506dd4..8f5791b 100644
--- a/source/common/utypes.c
+++ b/source/common/utypes.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uvector.cpp b/source/common/uvector.cpp
index 863ef78..cf19edf 100644
--- a/source/common/uvector.cpp
+++ b/source/common/uvector.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uvector.h b/source/common/uvector.h
index 6439b4e..5ec6e11 100644
--- a/source/common/uvector.h
+++ b/source/common/uvector.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uvectr32.cpp b/source/common/uvectr32.cpp
index 41f5fb7..d1ae659 100644
--- a/source/common/uvectr32.cpp
+++ b/source/common/uvectr32.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uvectr32.h b/source/common/uvectr32.h
index e3a0577..9112d9f 100644
--- a/source/common/uvectr32.h
+++ b/source/common/uvectr32.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/uvectr64.cpp b/source/common/uvectr64.cpp
index b69e193..0815659 100644
--- a/source/common/uvectr64.cpp
+++ b/source/common/uvectr64.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/common/uvectr64.h b/source/common/uvectr64.h
index b78ed87..5571685 100644
--- a/source/common/uvectr64.h
+++ b/source/common/uvectr64.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/common/wintz.c b/source/common/wintz.cpp
similarity index 63%
rename from source/common/wintz.c
rename to source/common/wintz.cpp
index a8696af..10e69ca 100644
--- a/source/common/wintz.c
+++ b/source/common/wintz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -13,7 +13,9 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+// This file contains only desktop Windows behavior
+// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
+#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
 
 #include "wintz.h"
 #include "cmemory.h"
@@ -22,7 +24,9 @@
 #include "unicode/ures.h"
 #include "unicode/ustring.h"
 
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
@@ -46,102 +50,25 @@
  * Various registry keys and key fragments.
  */
 static const char CURRENT_ZONE_REGKEY[] = "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
-/* static const char STANDARD_NAME_REGKEY[] = "StandardName"; Currently unused constant */
 static const char STANDARD_TIME_REGKEY[] = " Standard Time";
 static const char TZI_REGKEY[] = "TZI";
 static const char STD_REGKEY[] = "Std";
 
 /**
- * HKLM subkeys used to probe for the flavor of Windows.  Note that we
- * specifically check for the "GMT" zone subkey; this is present on
- * NT, but on XP has become "GMT Standard Time".  We need to
- * discriminate between these cases.
+ * The time zone root keys (under HKLM) for Win7+
  */
-static const char* const WIN_TYPE_PROBE_REGKEY[] = {
-    /* WIN_9X_ME_TYPE */
-    "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones",
-
-    /* WIN_NT_TYPE */
-    "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\GMT"
-
-    /* otherwise: WIN_2K_XP_TYPE */
-};
-
-/**
- * The time zone root subkeys (under HKLM) for different flavors of
- * Windows.
- */
-static const char* const TZ_REGKEY[] = {
-    /* WIN_9X_ME_TYPE */
-    "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones\\",
-
-    /* WIN_NT_TYPE | WIN_2K_XP_TYPE */
-    "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\"
-};
-
-/**
- * Flavor of Windows, from our perspective.  Not a real OS version,
- * but rather the flavor of the layout of the time zone information in
- * the registry.
- */
-enum {
-    WIN_9X_ME_TYPE = 1,
-    WIN_NT_TYPE = 2,
-    WIN_2K_XP_TYPE = 3
-};
-
-static int32_t gWinType = 0;
-
-static int32_t detectWindowsType()
-{
-    int32_t winType;
-    LONG result;
-    HKEY hkey;
-
-    /* Detect the version of windows by trying to open a sequence of
-        probe keys.  We don't use the OS version API because what we
-        really want to know is how the registry is laid out.
-        Specifically, is it 9x/Me or not, and is it "GMT" or "GMT
-        Standard Time". */
-    for (winType = 0; winType < 2; winType++) {
-        result = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
-                              WIN_TYPE_PROBE_REGKEY[winType],
-                              0,
-                              KEY_QUERY_VALUE,
-                              &hkey);
-        RegCloseKey(hkey);
-
-        if (result == ERROR_SUCCESS) {
-            break;
-        }
-    }
-
-    return winType+1; /* +1 to bring it inline with the enum */
-}
+static const char TZ_REGKEY[] = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\";
 
 static LONG openTZRegKey(HKEY *hkey, const char *winid)
 {
-    char subKeyName[110]; /* TODO: why 96?? */
+    char subKeyName[110]; /* TODO: why 110?? */
     char *name;
     LONG result;
 
-    /* This isn't thread safe, but it's good enough because the result should be constant per system. */
-    if (gWinType <= 0) {
-        gWinType = detectWindowsType();
-    }
-
-    uprv_strcpy(subKeyName, TZ_REGKEY[(gWinType != WIN_9X_ME_TYPE)]);
+    uprv_strcpy(subKeyName, TZ_REGKEY);
     name = &subKeyName[strlen(subKeyName)];
     uprv_strcat(subKeyName, winid);
 
-    if (gWinType == WIN_9X_ME_TYPE) {
-        /* Remove " Standard Time" */
-        char *pStd = uprv_strstr(subKeyName, STANDARD_TIME_REGKEY);
-        if (pStd) {
-            *pStd = 0;
-        }
-    }
-
     result = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
                             subKeyName,
                             0,
@@ -158,44 +85,44 @@
 
     result = openTZRegKey(&hkey, winid);
 
-    if (result == ERROR_SUCCESS) {
+    if (result == ERROR_SUCCESS)
+    {
         result = RegQueryValueExA(hkey,
                                     TZI_REGKEY,
                                     NULL,
                                     NULL,
                                     (LPBYTE)tzi,
                                     &cbData);
-
+        RegCloseKey(hkey);
     }
 
-    RegCloseKey(hkey);
-
     return result;
 }
 
-static LONG getSTDName(const char *winid, char *regStdName, int32_t length) {
+static LONG getSTDName(const char *winid, char *regStdName, int32_t length)
+{
     DWORD cbData = length;
     LONG result;
     HKEY hkey;
 
     result = openTZRegKey(&hkey, winid);
 
-    if (result == ERROR_SUCCESS) {
+    if (result == ERROR_SUCCESS) 
+    {
         result = RegQueryValueExA(hkey,
                                     STD_REGKEY,
                                     NULL,
                                     NULL,
                                     (LPBYTE)regStdName,
                                     &cbData);
-
+        RegCloseKey(hkey);
     }
 
-    RegCloseKey(hkey);
-
     return result;
 }
 
-static LONG getTZKeyName(char* tzKeyName, int32_t length) {
+static LONG getTZKeyName(char* tzKeyName, int32_t length)
+{
     HKEY hkey;
     LONG result = FALSE;
     DWORD cbData = length;
@@ -214,27 +141,27 @@
              NULL,
              (LPBYTE)tzKeyName,
              &cbData);
+
+        RegCloseKey(hkey);
     }
 
     return result;
 }
 
 /*
-  This code attempts to detect the Windows time zone, as set in the
-  Windows Date and Time control panel.  It attempts to work on
-  multiple flavors of Windows (9x, Me, NT, 2000, XP) and on localized
+  This code attempts to detect the Windows time zone directly,
+  as set in the Windows Date and Time control panel.  It attempts
+  to work on versions greater than Windows Vista and on localized
   installs.  It works by directly interrogating the registry and
   comparing the data there with the data returned by the
   GetTimeZoneInformation API, along with some other strategies.  The
-  registry contains time zone data under one of two keys (depending on
-  the flavor of Windows):
+  registry contains time zone data under this key:
 
-    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones\
     HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
 
-  Under this key are several subkeys, one for each time zone.  These
-  subkeys are named "Pacific" on Win9x/Me and "Pacific Standard Time"
-  on WinNT/2k/XP.  There are some other wrinkles; see the code for
+  Under this key are several subkeys, one for each time zone.  For
+  example these subkeys are named "Pacific Standard Time" on Vista+.
+  There are some other wrinkles; see the code for
   details.  The subkey name is NOT LOCALIZED, allowing us to support
   localized installs.
 
@@ -272,7 +199,8 @@
  * time zone, translated to an ICU time zone, or NULL upon failure.
  */
 U_CFUNC const char* U_EXPORT2
-uprv_detectWindowsTimeZone() {
+uprv_detectWindowsTimeZone() 
+{
     UErrorCode status = U_ZERO_ERROR;
     UResourceBundle* bundle = NULL;
     char* icuid = NULL;
@@ -282,7 +210,7 @@
     int32_t len;
     int id;
     int errorCode;
-    UChar ISOcodeW[3]; /* 2 letter iso code in UTF-16*/
+    wchar_t ISOcodeW[3]; /* 2 letter iso code in UTF-16*/
     char  ISOcodeA[3]; /* 2 letter iso code in ansi */
 
     LONG result;
@@ -290,7 +218,6 @@
     TZI tziReg;
     TIME_ZONE_INFORMATION apiTZI;
 
-    BOOL isVistaOrHigher;
     BOOL tryPreVistaFallback;
     OSVERSIONINFO osVerInfo;
 
@@ -314,8 +241,8 @@
     tmpid[0] = 0;
 
     id = GetUserGeoID(GEOCLASS_NATION);
-    errorCode = GetGeoInfoW(id,GEO_ISO2,ISOcodeW,3,0);
-    u_strToUTF8(ISOcodeA, 3, NULL, ISOcodeW, 3, &status);
+    errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
+    u_strToUTF8(ISOcodeA, 3, NULL, (const UChar *)ISOcodeW, 3, &status);
 
     bundle = ures_openDirect(NULL, "windowsZones", &status);
     ures_getByKey(bundle, "mapTimezones", bundle, &status);
@@ -327,75 +254,86 @@
     */
     uprv_memset(&osVerInfo, 0, sizeof(osVerInfo));
     osVerInfo.dwOSVersionInfoSize = sizeof(osVerInfo);
-    GetVersionEx(&osVerInfo);
-    isVistaOrHigher = osVerInfo.dwMajorVersion >= 6;	/* actually includes Windows Server 2008 as well, but don't worry about it */
     tryPreVistaFallback = TRUE;
-    if(isVistaOrHigher) {
-        result = getTZKeyName(regStdName, sizeof(regStdName));
-        if(ERROR_SUCCESS == result) {
-            UResourceBundle* winTZ = ures_getByKey(bundle, regStdName, NULL, &status);
-            if(U_SUCCESS(status)) {
-                const UChar* icuTZ = NULL;
-                if (errorCode != 0) {
-                    icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
-                }
-                if (errorCode==0 || icuTZ==NULL) {
-                    /* fallback to default "001" and reset status */
-                    status = U_ZERO_ERROR;
-                    icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
-                }
-
-                if(U_SUCCESS(status)) {
-                    int index=0;
-                    while (! (*icuTZ == '\0' || *icuTZ ==' ')) {
-                        tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
-                    }
-                    tmpid[index]='\0';
-                    tryPreVistaFallback = FALSE;
-                }
+    result = getTZKeyName(regStdName, sizeof(regStdName));
+    if(ERROR_SUCCESS == result) 
+    {
+        UResourceBundle* winTZ = ures_getByKey(bundle, regStdName, NULL, &status);
+        if(U_SUCCESS(status)) 
+        {
+            const UChar* icuTZ = NULL;
+            if (errorCode != 0) 
+            {
+                icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
             }
-            ures_close(winTZ);
+            if (errorCode==0 || icuTZ==NULL) 
+            {
+                /* fallback to default "001" and reset status */
+                status = U_ZERO_ERROR;
+                icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
+            }
+
+            if(U_SUCCESS(status)) 
+            {
+                int index=0;
+                while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
+                {
+                    tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
+                }
+                tmpid[index]='\0';
+                tryPreVistaFallback = FALSE;
+            }
         }
+        ures_close(winTZ);
     }
 
-    if(tryPreVistaFallback) {
-
+    if(tryPreVistaFallback)
+    {
         /* Note: We get the winid not from static tables but from resource bundle. */
-        while (U_SUCCESS(status) && ures_hasNext(bundle)) {
+        while (U_SUCCESS(status) && ures_hasNext(bundle))
+        {
             UBool idFound = FALSE;
             const char* winid;
             UResourceBundle* winTZ = ures_getNextResource(bundle, NULL, &status);
-            if (U_FAILURE(status)) {
+            if (U_FAILURE(status)) 
+            {
                 break;
             }
             winid = ures_getKey(winTZ);
             result = getTZI(winid, &tziReg);
 
-            if (result == ERROR_SUCCESS) {
+            if (result == ERROR_SUCCESS)
+            {
                 /* Windows alters the DaylightBias in some situations.
                    Using the bias and the rules suffices, so overwrite
                    these unreliable fields. */
                 tziKey.standardBias = tziReg.standardBias;
                 tziKey.daylightBias = tziReg.daylightBias;
 
-                if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0) {
+                if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0)
+                {
                     const UChar* icuTZ = NULL;
-                    if (errorCode != 0) {
+                    if (errorCode != 0)
+                    {
                         icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
                     }
-                    if (errorCode==0 || icuTZ==NULL) {
+                    if (errorCode==0 || icuTZ==NULL) 
+                    {
                         /* fallback to default "001" and reset status */
                         status = U_ZERO_ERROR;
                         icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
                     }
 
-                    if (U_SUCCESS(status)) {
+                    if (U_SUCCESS(status)) 
+                    {
                         /* Get the standard name from the registry key to compare with
                            the one from Windows API call. */
                         uprv_memset(regStdName, 0, sizeof(regStdName));
                         result = getSTDName(winid, regStdName, sizeof(regStdName));
-                        if (result == ERROR_SUCCESS) {
-                            if (uprv_strcmp(apiStdName, regStdName) == 0) {
+                        if (result == ERROR_SUCCESS) 
+                        {
+                            if (uprv_strcmp(apiStdName, regStdName) == 0) 
+                            {
                                 idFound = TRUE;
                             }
                         }
@@ -404,10 +342,12 @@
                          * If none is found, tmpid buffer will contain a fallback ID (i.e. the time zone ID matching
                          * the current time zone information)
                          */
-                        if (idFound || tmpid[0] == 0) {
+                        if (idFound || tmpid[0] == 0) 
+                        {
                             /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
                             int index=0;
-                            while (! (*icuTZ == '\0' || *icuTZ ==' ')) {
+                            while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
+                            {
                                 tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
                             }
                             tmpid[index]='\0';
@@ -416,7 +356,8 @@
                 }
             }
             ures_close(winTZ);
-            if (idFound) {
+            if (idFound) 
+            {
                 break;
             }
         }
@@ -425,10 +366,12 @@
     /*
      * Copy the timezone ID to icuid to be returned.
      */
-    if (tmpid[0] != 0) {
+    if (tmpid[0] != 0) 
+    {
         len = uprv_strlen(tmpid);
         icuid = (char*)uprv_calloc(len + 1, sizeof(char));
-        if (icuid != NULL) {
+        if (icuid != NULL) 
+        {
             uprv_strcpy(icuid, tmpid);
         }
     }
@@ -438,4 +381,4 @@
     return icuid;
 }
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
diff --git a/source/common/wintz.h b/source/common/wintz.h
index 1d4db87..7be30eb 100644
--- a/source/common/wintz.h
+++ b/source/common/wintz.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -16,7 +16,9 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+// This file contains only desktop windows behavior
+// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
+#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
 
 /**
  * \file 
@@ -31,6 +33,6 @@
 U_CFUNC const char* U_EXPORT2
 uprv_detectWindowsTimeZone();
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
 
 #endif /* __WINTZ */
diff --git a/source/config/dist.mk b/source/config/dist.mk
index 442782b..f7430f6 100644
--- a/source/config/dist.mk
+++ b/source/config/dist.mk
@@ -8,6 +8,8 @@
 # This is to be called from ../Makefile.in
 #
 # This will only work if subversion is installed.
+# You must checkout ICU4C at the `/icu`  or `/icu/icu4c` level - not just `…/source`
+# also note that `make dist` does NOT reflect any local modifications - it only does a fresh SVN export.
 
 top_builddir = .
 
@@ -17,13 +19,12 @@
 DISTY_TMP=dist/tmp
 DISTY_ICU=$(DISTY_TMP)/icu
 DISTY_DATA=$(DISTY_ICU)/source/data
-DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone
+DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone misc unit
 DISTY_RMDIR=$(DISTY_RMV:%=$(DISTY_DATA)/%)
 DISTY_IN=$(DISTY_DATA)/in
 DOCZIP=icu-docs.zip
 
 SVNTOP=$(top_srcdir)/..
-SVNDOT=$(SVNTOP)/.svn
 SVNVER=$(shell svnversion $(SVNTOP) | cut -d: -f1 | tr -cd 'a-zA-Z0-9')
 SVNURL=$(shell svn info $(SVNTOP) | grep '^URL:' | cut -d: -f2-)
 DISTY_VER=$(shell echo $(VERSION) | tr '.' '_' )
@@ -38,17 +39,13 @@
 DISTY_FILES_SRC=$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP)
 DISTY_FILES=$(DISTY_FILES_SRC) $(DISTY_DOC_ZIP)
 
-$(SVNDOT):
-	@echo "ERROR: 'dist' will not work unless the parent of the top_srcdir ( $(SVNTOP) ) is checked out from svn, and svn is installed."
-	false
-
 $(DISTY_FILE_DIR):
 	$(MKINSTALLDIRS) $(DISTY_FILE_DIR)
 
 $(DISTY_TMP):
 	$(MKINSTALLDIRS) $(DISTY_TMP)
 
-$(DISTY_DOC_ZIP): $(SVNDOT) $(DOCZIP) $(DISTY_FILE_DIR)
+$(DISTY_DOC_ZIP):  $(DOCZIP) $(DISTY_FILE_DIR)
 	cp $(DOCZIP) $(DISTY_DOC_ZIP)
 
 $(DISTY_DAT): 
@@ -58,19 +55,22 @@
 $(DOCZIP):
 	$(MAKE) -C . srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" builddir=. $@
 
-$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP): $(SVNDOT) $(DISTY_DAT) $(DISTY_TMP)
+$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP):  $(DISTY_DAT) $(DISTY_TMP)
 	@echo "svnversion of $(SVNTOP) is as follows (if this fails, make sure svn is installed..)"
 	svnversion $(SVNTOP)
 	-$(RMV) $(DISTY_FILE) $(DISTY_TMP)
 	$(MKINSTALLDIRS) $(DISTY_TMP)
+	echo exporting $(SVNVER)
 	svn export -r $(shell echo $(SVNVER) | tr -d 'a-zA-Z' ) $(SVNURL) "$(DISTY_TMP)/icu"
 	( cd $(DISTY_TMP)/icu/source ; zip -rlq $(DISTY_DATA_ZIP) data )
-	$(RMV) $(DISTY_RMDIR)
 	$(MKINSTALLDIRS) $(DISTY_IN)
+	echo DISTY_DAT=$(DISTY_DAT)
 	cp $(DISTY_DAT) $(DISTY_IN)
 	( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt )
-	( cd $(DISTY_TMP) ; tar cfpz $(DISTY_FILE_TGZ) icu )
 	( cd $(DISTY_TMP) ; zip -rlq $(DISTY_FILE_ZIP) icu )
+	$(RMV) $(DISTY_RMDIR)
+	( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt )
+	( cd $(DISTY_TMP) ; tar cfpz $(DISTY_FILE_TGZ) icu )
 	ls -l $(DISTY_FILE)
 
 dist-local: $(DISTY_FILES)
diff --git a/source/config/make2sh.sed b/source/config/make2sh.sed
index df53e4e..0f488ba 100644
--- a/source/config/make2sh.sed
+++ b/source/config/make2sh.sed
@@ -4,6 +4,7 @@
 s%^\([a-zA-Z0-9\._-]*\)[ 	]*+=%\1=$(\1) %
 s%^[A-Z]*_SO_TARG*%## &%
 s%^SHARED_OBJECT.*%## &%
+s@^_%.*@## &@
 s%^LD_SONAME.*%## &%
 s%$(\([^\)]*\))%${\1}%g
 s%^	%#M#	%
diff --git a/source/config/mh-aix-va b/source/config/mh-aix-va
index e1b4236..1572466 100644
--- a/source/config/mh-aix-va
+++ b/source/config/mh-aix-va
@@ -13,8 +13,8 @@
 #           This helps in the data library,
 # -qproto assumes all functions are prototyped (for optimization)
 # -qrtti turns on compiler RTTI, required beginning with ICU 4.6
-CFLAGS += -qproto -qroconst
-CXXFLAGS += -qproto -qroconst -qrtti
+CFLAGS += -qproto -qroconst -qlanglvl=extended
+CXXFLAGS += -qproto -qroconst -qrtti -qlanglvl=extended0x
 
 # If you readd this line, you must change the SO value
 #LDFLAGS += -brtl
@@ -111,11 +111,31 @@
 %.o: $(srcdir)/%.c
 	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
 
-%.$(STATIC_O): $(srcdir)/%.cpp
-	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+
+## C++ compilation rules.
+
+# This causes escapesrc to be built before other ICU targets.
+NEED_ESCAPING=YES
+
+ifneq ($(SKIP_ESCAPING),)
+# no escaping - bootstrap
 %.o: $(srcdir)/%.cpp
 	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+else
+# convert *.cpp files to _*.cpp with \u / \U escaping
+CLEANFILES += _*.cpp
 
+# the actual escaping
+_%.cpp: $(srcdir)/%.cpp
+	@$(BINDIR)/escapesrc$(EXEEXT) $< $@
+
+# compilation for static obj
+%.$(STATIC_O): _%.cpp
+	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+# compilation for dynamic obj
+%.o: _%.cpp
+	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+endif
 
 ## Dependency rules
 %.d : %.u
diff --git a/source/config/mh-cygwin b/source/config/mh-cygwin
index 1cc2d74..c5a3717 100644
--- a/source/config/mh-cygwin
+++ b/source/config/mh-cygwin
@@ -7,7 +7,7 @@
 
 ## Commands to generate dependency files
 GEN_DEPS.c=	$(CC) -E -MM $(DEFS) $(CPPFLAGS)
-GEN_DEPS.cc=	$(CXX) -E -MM $(DEFS) $(CPPFLAGS)
+GEN_DEPS.cc=	$(CXX) -E -MM -std=c++11 $(DEFS) $(CPPFLAGS)
 
 ## Flags to create/use a static library
 ifneq ($(ENABLE_SHARED),YES)
diff --git a/source/config/mh-cygwin-msvc b/source/config/mh-cygwin-msvc
index 01003ac..4744bb9 100644
--- a/source/config/mh-cygwin-msvc
+++ b/source/config/mh-cygwin-msvc
@@ -47,8 +47,9 @@
 # /EHsc enables exception handling
 # /Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
 # -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions.
-CFLAGS+=-GF -nologo
-CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t
+# -utf-8 set source file encoding to utf-8.
+CFLAGS+=-GF -nologo -utf-8
+CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8
 CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
 DEFS+=-DWIN32 -DCYGWINMSVC
 LDFLAGS+=-nologo
diff --git a/source/config/mh-cygwin64 b/source/config/mh-cygwin64
index 0af0c88..dc9d1a1 100644
--- a/source/config/mh-cygwin64
+++ b/source/config/mh-cygwin64
@@ -7,7 +7,7 @@
 
 ## Commands to generate dependency files
 GEN_DEPS.c=	$(CC) -E -MM $(DEFS) $(CPPFLAGS)
-GEN_DEPS.cc=	$(CXX) -E -MM $(DEFS) $(CPPFLAGS)
+GEN_DEPS.cc=	$(CXX) -E -MM -std=c++11 $(DEFS) $(CPPFLAGS)
 
 ## Flags to create/use a static library
 ifneq ($(ENABLE_SHARED),YES)
diff --git a/source/config/mh-msys-msvc b/source/config/mh-msys-msvc
index 6b57c26..05fe514 100644
--- a/source/config/mh-msys-msvc
+++ b/source/config/mh-msys-msvc
@@ -52,8 +52,9 @@
 # -EHsc enables exception handling
 # -Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
 # -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions.
-CFLAGS+=-GF -nologo
-CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t
+# -utf-8 set source file encoding to utf-8.
+CFLAGS+=-GF -nologo -utf-8
+CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8
 CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
 DEFS+=-DWIN32 -DCYGWINMSVC
 LDFLAGS+=-nologo
diff --git a/source/config/mh-os390 b/source/config/mh-os390
index dbc3a3a..9bd3f9b 100644
--- a/source/config/mh-os390
+++ b/source/config/mh-os390
@@ -69,7 +69,7 @@
 # NOCSECT might be used as an optimization option.
 # -+ means accept any file extension as a C++ file. By default only .C is accepted.
 CFLAGS          += -Wc,DLL,ROS,RENT,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED)' $(ICU_IEEE)
-CXXFLAGS        += -Wc,DLL,ROS,RTTI,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED)' $(ICU_IEEE) -+
+CXXFLAGS        += -Wc,DLL,ROS,RTTI,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED0X)' $(ICU_IEEE) -+
 ARFLAGS         = -cr
 
 # _MSE_PROTOS usually interacts with _XOPEN_SOURCE. It affects some standard
@@ -208,10 +208,27 @@
 %.o: $(srcdir)/%.c
 	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
 
+# This causes escapesrc to be built before other ICU targets.
+NEED_ESCAPING=YES
+
+ifneq ($(SKIP_ESCAPING),)
 %.$(STATIC_O): $(srcdir)/%.cpp
 	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
 %.o: $(srcdir)/%.cpp
 	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+else
+# convert *.cpp files to _*.cpp with \u / \U escaping
+CLEANFILES += _*.cpp
+
+# the actual escaping
+_%.cpp: $(srcdir)/%.cpp
+	@$(BINDIR)/escapesrc$(EXEEXT) $< $@
+
+%.$(STATIC_O): _%.cpp
+	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+%.o: _%.cpp
+	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+endif
 
 ## Dependency rules
 %.d : %.u
diff --git a/source/config/mh-solaris b/source/config/mh-solaris
index 469b210..e1d4ccf 100644
--- a/source/config/mh-solaris
+++ b/source/config/mh-solaris
@@ -5,6 +5,10 @@
 ## Copyright (c) 1999-2010, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
+## Flags for ICU 59+
+CXXFLAGS += -std=c++11
+CFLAGS   += -std=c99
+
 ## Flags for position independent code
 SHAREDLIBCFLAGS = -KPIC
 SHAREDLIBCXXFLAGS = -KPIC
@@ -59,17 +63,34 @@
 ## Non-shared intermediate object suffix
 STATIC_O = o
 
+# This causes escapesrc to be built before other ICU targets.
+NEED_ESCAPING=YES
+
 ## Compilation rules
 %.$(STATIC_O): $(srcdir)/%.c
 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
 %.o: $(srcdir)/%.c
 	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
 
-%.$(STATIC_O): $(srcdir)/%.cpp
-	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+ifneq ($(SKIP_ESCAPING),)
 %.o: $(srcdir)/%.cpp
 	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+%.$(STATIC_O): $(srcdir)/%.cpp
+	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+else
+# convert *.cpp files to _*.cpp with \u / \U escaping
+CLEANFILES += _*.cpp
 
+# the actual escaping
+_%.cpp: $(srcdir)/%.cpp
+	@$(BINDIR)/escapesrc$(EXEEXT) $< $@
+
+# no escaping - bootstrap
+%.$(STATIC_O): _%.cpp
+	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+%.o: _%.cpp
+	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+endif
 
 ## Dependency rules
 %.d : $(srcdir)/%.c
diff --git a/source/configure b/source/configure
index 9d440bf..030867a 100755
--- a/source/configure
+++ b/source/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ICU 58.1.
+# Generated by GNU Autoconf 2.69 for ICU 59.1.
 #
 # Report bugs to <http://icu-project.org/bugs>.
 #
@@ -582,8 +582,8 @@
 # Identity of this package.
 PACKAGE_NAME='ICU'
 PACKAGE_TARNAME='International Components for Unicode'
-PACKAGE_VERSION='58.1'
-PACKAGE_STRING='ICU 58.1'
+PACKAGE_VERSION='59.1'
+PACKAGE_STRING='ICU 59.1'
 PACKAGE_BUGREPORT='http://icu-project.org/bugs'
 PACKAGE_URL='http://icu-project.org'
 
@@ -674,7 +674,6 @@
 HAVE_MMAP
 LIB_THREAD
 U_HAVE_ATOMIC
-U_HAVE_STD_STRING
 ENABLE_RPATH
 U_ENABLE_DYLOAD
 U_HAVE_PLUGINS
@@ -682,6 +681,7 @@
 U_ENABLE_TRACING
 U_DISABLE_RENAMING
 AR
+SED
 RANLIB
 U_DEFAULT_SHOW_DRAFT
 UCLN_NO_AUTO_CLEANUP
@@ -1357,7 +1357,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ICU 58.1 to adapt to many kinds of systems.
+\`configure' configures ICU 59.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1423,7 +1423,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ICU 58.1:";;
+     short | recursive ) echo "Configuration of ICU 59.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1559,7 +1559,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ICU configure 58.1
+ICU configure 59.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2251,7 +2251,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ICU $as_me 58.1, which was
+It was created by ICU $as_me 59.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -5561,6 +5561,77 @@
 fi
 
 
+# need sed
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+
 # look for 'ar' the proper way
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
@@ -5917,11 +5988,11 @@
 fi
 
 if [ "$GXX" = yes ]; then
-    # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++0x,
+    # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++11,
     # and check that the compiler still works.
     if ! echo "$CXXFLAGS" | grep '\-std=' >/dev/null 2>&1; then
         OLD_CXXFLAGS="${CXXFLAGS}"
-        CXXFLAGS="$CXXFLAGS --std=c++0x"
+        CXXFLAGS="$CXXFLAGS -std=c++11"
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have a C++11 compiler" >&5
 $as_echo_n "checking if we have a C++11 compiler... " >&6; }
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5944,9 +6015,9 @@
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cxx11_okay" >&5
 $as_echo "$cxx11_okay" >&6; }
         if [ $cxx11_okay = yes ]; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: Adding CXXFLAGS option --std=c++0x" >&5
-$as_echo "$as_me: Adding CXXFLAGS option --std=c++0x" >&6;}
-            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} --std=c++0x"
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Adding CXXFLAGS option -std=c++11" >&5
+$as_echo "$as_me: Adding CXXFLAGS option -std=c++11" >&6;}
+            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -std=c++11"
         else
             CXXFLAGS="$OLD_CXXFLAGS"
         fi
@@ -5958,37 +6029,6 @@
     fi
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if #include <string> works" >&5
-$as_echo_n "checking if #include <string> works... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string>
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_header_stdstring=yes
-else
-  ac_cv_header_stdstring=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdstring" >&5
-$as_echo "$ac_cv_header_stdstring" >&6; }
-if test $ac_cv_header_stdstring = yes
-then
-	U_HAVE_STD_STRING=1
-else
-        U_HAVE_STD_STRING=0
-        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_STD_STRING=0"
-fi
-
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if #include <atomic> works" >&5
 $as_echo_n "checking if #include <atomic> works... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7800,7 +7840,7 @@
 
 
 # output the Makefiles
-ac_config_files="$ac_config_files icudefs.mk Makefile data/pkgdataMakefile config/Makefile.inc config/icu.pc config/pkgdataMakefile data/Makefile stubdata/Makefile common/Makefile i18n/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/uconv/pkgdataMakefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/toolutil/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/gendict/Makefile tools/gentest/Makefile tools/gennorm2/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icuinfo/Makefile tools/icupkg/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/tzcode/Makefile tools/gencfu/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/layout/Makefile"
+ac_config_files="$ac_config_files icudefs.mk Makefile data/pkgdataMakefile config/Makefile.inc config/icu.pc config/pkgdataMakefile data/Makefile stubdata/Makefile common/Makefile i18n/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/uconv/pkgdataMakefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/toolutil/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/gendict/Makefile tools/gentest/Makefile tools/gennorm2/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icuinfo/Makefile tools/icupkg/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/tzcode/Makefile tools/gencfu/Makefile tools/escapesrc/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/layout/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -8345,7 +8385,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ICU $as_me 58.1, which was
+This file was extended by ICU $as_me 59.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8399,7 +8439,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ICU config.status 58.1
+ICU config.status 59.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -8545,6 +8585,7 @@
     "tools/pkgdata/Makefile") CONFIG_FILES="$CONFIG_FILES tools/pkgdata/Makefile" ;;
     "tools/tzcode/Makefile") CONFIG_FILES="$CONFIG_FILES tools/tzcode/Makefile" ;;
     "tools/gencfu/Makefile") CONFIG_FILES="$CONFIG_FILES tools/gencfu/Makefile" ;;
+    "tools/escapesrc/Makefile") CONFIG_FILES="$CONFIG_FILES tools/escapesrc/Makefile" ;;
     "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
     "test/compat/Makefile") CONFIG_FILES="$CONFIG_FILES test/compat/Makefile" ;;
     "test/testdata/Makefile") CONFIG_FILES="$CONFIG_FILES test/testdata/Makefile" ;;
diff --git a/source/configure.ac b/source/configure.ac
index eb62936..bfbf772 100644
--- a/source/configure.ac
+++ b/source/configure.ac
@@ -371,6 +371,9 @@
 
 AC_PROG_RANLIB
 
+# need sed
+AC_PROG_SED
+
 # look for 'ar' the proper way
 AC_CHECK_TOOL(AR, ar, false)
 
@@ -492,17 +495,17 @@
 fi
 
 if [[ "$GXX" = yes ]]; then
-    # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++0x,
+    # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++11,
     # and check that the compiler still works.
     if ! echo "$CXXFLAGS" | grep '\-std=' >/dev/null 2>&1; then
         OLD_CXXFLAGS="${CXXFLAGS}"
-        CXXFLAGS="$CXXFLAGS --std=c++0x"
+        CXXFLAGS="$CXXFLAGS -std=c++11"
         AC_MSG_CHECKING([[if we have a C++11 compiler]])
         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[cxx11_okay=yes],[cxx11_okay=no])
         AC_MSG_RESULT($cxx11_okay)
         if [[ $cxx11_okay = yes ]]; then
-            AC_MSG_NOTICE([Adding CXXFLAGS option --std=c++0x])
-            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} --std=c++0x"
+            AC_MSG_NOTICE([Adding CXXFLAGS option -std=c++11])
+            UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -std=c++11"
         else
             CXXFLAGS="$OLD_CXXFLAGS"
         fi
@@ -514,19 +517,6 @@
     fi
 fi
 
-AC_MSG_CHECKING([[if #include <string> works]])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string>]], [[]])], [ac_cv_header_stdstring=yes], [ac_cv_header_stdstring=no])
-AC_MSG_RESULT($ac_cv_header_stdstring)
-if test $ac_cv_header_stdstring = yes
-then
-	U_HAVE_STD_STRING=1
-else
-        U_HAVE_STD_STRING=0
-        CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_STD_STRING=0"
-fi
-AC_SUBST(U_HAVE_STD_STRING)
-
-
 AC_MSG_CHECKING([[if #include <atomic> works]])
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no])
 AC_MSG_RESULT($ac_cv_header_atomic)
@@ -1362,6 +1352,7 @@
 		tools/pkgdata/Makefile \
 		tools/tzcode/Makefile \
 		tools/gencfu/Makefile \
+		tools/escapesrc/Makefile \
 		test/Makefile \
 		test/compat/Makefile \
 		test/testdata/Makefile \
diff --git a/source/data/brkitr/brkfiles.mk b/source/data/brkitr/brkfiles.mk
index 9aa614e..7fe0c74 100644
--- a/source/data/brkitr/brkfiles.mk
+++ b/source/data/brkitr/brkfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-BRK_RES_CLDR_VERSION = %version%
+BRK_RES_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'brklocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'brklocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
diff --git a/source/data/brkitr/root.txt b/source/data/brkitr/root.txt
index 5846bc5..cf169a7 100644
--- a/source/data/brkitr/root.txt
+++ b/source/data/brkitr/root.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 root{
-    Version{"2.1.30.50"}
+    Version{"2.1.32.92"}
     boundaries{
         grapheme:process(dependency){"char.brk"}
         line:process(dependency){"line_normal.brk"}
diff --git a/source/data/brkitr/rules/char.txt b/source/data/brkitr/rules/char.txt
index 265c706..77572f5 100644
--- a/source/data/brkitr/rules/char.txt
+++ b/source/data/brkitr/rules/char.txt
@@ -9,7 +9,8 @@
 #   ICU Character Break Rules, also known as Grapheme Cluster Boundaries
 #      See Unicode Standard Annex #29.
 #      These rules are based on UAX #29 Revision 29 for Unicode Version 9.0
-#      plus proposed updates for Emoji 4.0 from https://goo.gl/cluFCn
+#      Plus revisions to rule GB 11 from http://unicode.org/cldr/trac/ticket/10088
+#      Plus additional characters introduces with Emoji 5, http://www.unicode.org/reports/tr51/proposed.html
 
 #
 #  Character Class Definitions.
@@ -35,11 +36,11 @@
 
 # Emoji defintions
 
-$E_Base      = [[\p{Grapheme_Cluster_Break = EB}] \U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$E_Base      = [\p{Grapheme_Cluster_Break = EB}];
 $E_Modifier  = [\p{Grapheme_Cluster_Break = EM}];
 
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 $E_Base_GAZ  = [\p{Grapheme_Cluster_Break = EBG}];
 $EmojiNRK    = [[\p{Emoji}] - [\p{Grapheme_Cluster_Break = Regional_Indicator}*\u00230-9©®™〰〽]];
 
@@ -67,7 +68,7 @@
 ($E_Base | $E_Base_GAZ) $Extend* $E_Modifier;
 
 # GB 11
-($Extended_Pict | $EmojiNRK) $ZWJ ($Extended_Pict | $EmojiNRK);
+($Extended_Pict | $EmojiNRK) $Extend* $ZWJ ($Extended_Pict | $EmojiNRK);
 
 # GB 12-13. Keep pairs of regional indicators together
 #           Note that hard break '/' rule triggers only if there are three or more initial RIs,
@@ -96,7 +97,7 @@
 $E_Modifier $Extend* ($E_Base | $E_Base_GAZ);
 
 # GB 11 Don't break between ZWJ and Glue_After_ZWJ
-($Extended_Pict | $EmojiNRK) $ZWJ ($Extended_Pict | $EmojiNRK);
+($Extended_Pict | $EmojiNRK) $ZWJ $Extend* ($Extended_Pict | $EmojiNRK);
 
 # GB 12-13. Going backwards, we must scan through any number of regional indicators as pairs.
 #
diff --git a/source/data/brkitr/rules/line.txt b/source/data/brkitr/rules/line.txt
index 488e563..f03995c 100644
--- a/source/data/brkitr/rules/line.txt
+++ b/source/data/brkitr/rules/line.txt
@@ -38,7 +38,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -72,8 +72,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_fi.txt b/source/data/brkitr/rules/line_fi.txt
index 61b1690..23d16f1 100644
--- a/source/data/brkitr/rules/line_fi.txt
+++ b/source/data/brkitr/rules/line_fi.txt
@@ -44,7 +44,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -78,8 +78,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_loose.txt b/source/data/brkitr/rules/line_loose.txt
index 79b4a83..d57a022 100644
--- a/source/data/brkitr/rules/line_loose.txt
+++ b/source/data/brkitr/rules/line_loose.txt
@@ -45,7 +45,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -80,8 +80,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_loose_cj.txt b/source/data/brkitr/rules/line_loose_cj.txt
index 9b781f8..10fdcf9c 100644
--- a/source/data/brkitr/rules/line_loose_cj.txt
+++ b/source/data/brkitr/rules/line_loose_cj.txt
@@ -53,7 +53,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EXX = [\uFF01 \uFF1F];
 $EX = [[:LineBreak =  Exclamation:] - $EXX];
@@ -91,8 +91,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_loose_fi.txt b/source/data/brkitr/rules/line_loose_fi.txt
index d924a57..7d80941 100644
--- a/source/data/brkitr/rules/line_loose_fi.txt
+++ b/source/data/brkitr/rules/line_loose_fi.txt
@@ -42,7 +42,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -77,8 +77,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_normal.txt b/source/data/brkitr/rules/line_normal.txt
index 5f9b467..1150d50 100644
--- a/source/data/brkitr/rules/line_normal.txt
+++ b/source/data/brkitr/rules/line_normal.txt
@@ -42,7 +42,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -76,8 +76,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_normal_cj.txt b/source/data/brkitr/rules/line_normal_cj.txt
index a6b84dd..a3a2f3e 100644
--- a/source/data/brkitr/rules/line_normal_cj.txt
+++ b/source/data/brkitr/rules/line_normal_cj.txt
@@ -44,7 +44,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -79,8 +79,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/line_normal_fi.txt b/source/data/brkitr/rules/line_normal_fi.txt
index de8abc3..bb299c8 100644
--- a/source/data/brkitr/rules/line_normal_fi.txt
+++ b/source/data/brkitr/rules/line_normal_fi.txt
@@ -42,7 +42,7 @@
 # $CM = [:LineBreak =  Combining_Mark:];
 $CP = [:LineBreak =  Close_Parenthesis:];
 $CR = [:LineBreak =  Carriage_Return:];
-$EB = [[:LineBreak =  EB:]\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$EB = [:LineBreak =  EB:];
 $EM = [:LineBreak =  EM:];
 $EX = [:LineBreak =  Exclamation:];
 $GL = [:LineBreak =  Glue:];
@@ -76,8 +76,8 @@
 $ZWJ = [:LineBreak = ZWJ:];
 
 $EmojiNRK = [[\p{Emoji}] - [$RI \u002a\u00230-9©®™〰〽]];
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
diff --git a/source/data/brkitr/rules/word.txt b/source/data/brkitr/rules/word.txt
index 9c93dd5..83dd490 100644
--- a/source/data/brkitr/rules/word.txt
+++ b/source/data/brkitr/rules/word.txt
@@ -10,6 +10,7 @@
 #      See Unicode Standard Annex #29.
 #      These rules are based on UAX #29 Revision 29 for Unicode Version 9.0
 #      with additions for Emoji Sequences from https://goo.gl/cluFCn
+#      Plus additional characters introduces with Emoji 5, http://www.unicode.org/reports/tr51/proposed.html
 #
 # Note:  Updates to word.txt will usually need to be merged into
 #        word_POSIX.txt also.
@@ -50,11 +51,11 @@
 $MidNum       = [\p{Word_Break = MidNum}[\u002E \uFF0E]];
 $Numeric      = [\p{Word_Break = Numeric}[\uff10-\uff19]]; #includes fullwidth digits
 $ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
-$E_Base             = [\p{Word_Break = EB}\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$E_Base             = [\p{Word_Break = EB}];
 $E_Modifier         = [\p{Word_Break = EM}];
 
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict      = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 $EBG                = [\p{Word_Break = EBG}];
 $EmojiNRK           = [[\p{Emoji}] - [\p{Word_Break = Regional_Indicator}\u002a\u00230-9©®™〰〽]];
 
diff --git a/source/data/brkitr/rules/word_POSIX.txt b/source/data/brkitr/rules/word_POSIX.txt
index 1d745cc..85a976c 100644
--- a/source/data/brkitr/rules/word_POSIX.txt
+++ b/source/data/brkitr/rules/word_POSIX.txt
@@ -10,6 +10,7 @@
 #      See Unicode Standard Annex #29.
 #      These rules are based on UAX #29 Revision 29 for Unicode Version 9.0
 #      with additions for Emoji Sequences from https://goo.gl/cluFCn
+#      Plus additional characters introduces with Emoji 5, http://www.unicode.org/reports/tr51/proposed.html
 #
 # Note:  Updates to word.txt will usually need to be merged into
 #        word_POSIX.txt also.
@@ -44,11 +45,11 @@
 $MidNum             = [\p{Word_Break = MidNum} [.]];
 $Numeric            = [\p{Word_Break = Numeric}];
 $ExtendNumLet       = [\p{Word_Break = ExtendNumLet}];
-$E_Base             = [\p{Word_Break = EB}\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC];
+$E_Base             = [\p{Word_Break = EB}];
 $E_Modifier         = [\p{Word_Break = EM}];
 
-# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r12773
-$Extended_Pict      = [\U0001F774-\U0001F77F\u2700-\u2701\u2703-\u2704\u270E\u2710-\u2711\u2765-\u2767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\u2605\u2607-\u260D\u260F-\u2610\u2612\u2616-\u2617\u2619-\u261C\u261E-\u261F\u2621\u2624-\u2625\u2627-\u2629\u262B-\u262D\u2630-\u2637\u263B-\u2647\u2654-\u265F\u2661-\u2662\u2664\u2667\u2669-\u267A\u267C-\u267E\u2680-\u2691\u2695\u2698\u269A\u269D-\u269F\u26A2-\u26A9\u26AC-\u26AF\u26B2-\u26BC\u26BF-\u26C3\u26C6-\u26C7\u26C9-\u26CD\u26D0\u26D2\u26D5-\u26E8\u26EB-\u26EF\u26F6\u26FB-\u26FC\u26FE-\u26FF\u2388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90F\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F93F\U0001F94C-\U0001F94F\U0001F95F-\U0001F97F\U0001F992-\U0001F9BF\U0001F9C1-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6D3-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F7-\U0001F6FF];
+# Data for Extended Pictographic scraped from CLDR common/properties/ExtendedPictographic.txt, r13267
+$Extended_Pict = [\U0001F774-\U0001F77F\U00002700-\U00002701\U00002703-\U00002704\U0000270E\U00002710-\U00002711\U00002765-\U00002767\U0001F030-\U0001F093\U0001F094-\U0001F09F\U0001F10D-\U0001F10F\U0001F12F\U0001F16C-\U0001F16F\U0001F1AD-\U0001F1E5\U0001F260-\U0001F265\U0001F203-\U0001F20F\U0001F23C-\U0001F23F\U0001F249-\U0001F24F\U0001F252-\U0001F25F\U0001F266-\U0001F2FF\U0001F7D5-\U0001F7FF\U0001F000-\U0001F003\U0001F005-\U0001F02B\U0001F02C-\U0001F02F\U0001F322-\U0001F323\U0001F394-\U0001F395\U0001F398\U0001F39C-\U0001F39D\U0001F3F1-\U0001F3F2\U0001F3F6\U0001F4FE\U0001F53E-\U0001F548\U0001F54F\U0001F568-\U0001F56E\U0001F571-\U0001F572\U0001F57B-\U0001F586\U0001F588-\U0001F589\U0001F58E-\U0001F58F\U0001F591-\U0001F594\U0001F597-\U0001F5A3\U0001F5A6-\U0001F5A7\U0001F5A9-\U0001F5B0\U0001F5B3-\U0001F5BB\U0001F5BD-\U0001F5C1\U0001F5C5-\U0001F5D0\U0001F5D4-\U0001F5DB\U0001F5DF-\U0001F5E0\U0001F5E2\U0001F5E4-\U0001F5E7\U0001F5E9-\U0001F5EE\U0001F5F0-\U0001F5F2\U0001F5F4-\U0001F5F9\U00002605\U00002607-\U0000260D\U0000260F-\U00002610\U00002612\U00002616-\U00002617\U00002619-\U0000261C\U0000261E-\U0000261F\U00002621\U00002624-\U00002625\U00002627-\U00002629\U0000262B-\U0000262D\U00002630-\U00002637\U0000263B-\U00002647\U00002654-\U0000265F\U00002661-\U00002662\U00002664\U00002667\U00002669-\U0000267A\U0000267C-\U0000267E\U00002680-\U00002691\U00002695\U00002698\U0000269A\U0000269D-\U0000269F\U000026A2-\U000026A9\U000026AC-\U000026AF\U000026B2-\U000026BC\U000026BF-\U000026C3\U000026C6-\U000026C7\U000026C9-\U000026CD\U000026D0\U000026D2\U000026D5-\U000026E8\U000026EB-\U000026EF\U000026F6\U000026FB-\U000026FC\U000026FE-\U000026FF\U00002388\U0001FA00-\U0001FFFD\U0001F0A0-\U0001F0AE\U0001F0B1-\U0001F0BF\U0001F0C1-\U0001F0CF\U0001F0D1-\U0001F0F5\U0001F0AF-\U0001F0B0\U0001F0C0\U0001F0D0\U0001F0F6-\U0001F0FF\U0001F80C-\U0001F80F\U0001F848-\U0001F84F\U0001F85A-\U0001F85F\U0001F888-\U0001F88F\U0001F8AE-\U0001F8FF\U0001F900-\U0001F90B\U0001F91F\U0001F928-\U0001F92F\U0001F931-\U0001F932\U0001F94C\U0001F95F-\U0001F96B\U0001F992-\U0001F997\U0001F9D0-\U0001F9E6\U0001F90C-\U0001F90F\U0001F93F\U0001F94D-\U0001F94F\U0001F96C-\U0001F97F\U0001F998-\U0001F9BF\U0001F9C1-\U0001F9CF\U0001F9E7-\U0001F9FF\U0001F6C6-\U0001F6CA\U0001F6D3-\U0001F6D4\U0001F6E6-\U0001F6E8\U0001F6EA\U0001F6F1-\U0001F6F2\U0001F6F7-\U0001F6F8\U0001F6D5-\U0001F6DF\U0001F6ED-\U0001F6EF\U0001F6F9-\U0001F6FF];
 $EBG                = [\p{Word_Break = EBG}];
 $EmojiNRK           = [[\p{Emoji}] - [\p{Word_Break = Regional_Indicator}\u002a\u00230-9©®™〰〽]];
 
diff --git a/source/data/cldr-icu-readme.txt b/source/data/cldr-icu-readme.txt
index 252fe4f..2e17b65 100644
--- a/source/data/cldr-icu-readme.txt
+++ b/source/data/cldr-icu-readme.txt
@@ -52,7 +52,7 @@
 #
 # ANT_OPTS:      You may want to set:
 #
-#                -Xmx1024m, to give Java more memory; otherwise it may run out
+#                -Xmx3072m, to give Java more memory; otherwise it may run out
 #                 of heap.
 #
 # b) CLDR-related variables
@@ -124,7 +124,7 @@
 # 1a. Java and ant variables, adjust for your system
 
 export JAVA_HOME=`/usr/libexec/java_home`
-export ANT_OPTS="-Xmx1024m"
+export ANT_OPTS="-Xmx3072m"
 
 # 1b. CLDR variables, adjust for your setup; with cygwin it might be e.g.
 # CLDR_DIR=`cygpath -wp /build/cldr`
@@ -134,13 +134,12 @@
 
 # 1c. ICU variables
 
-export ICU4C_DIR=$HOME/icu/icu/trunk
-export ICU4J_ROOT=$HOME/icu/icu4j/trunk
+export ICU4C_DIR=$HOME/icu/trunk/icu4c
+export ICU4J_ROOT=$HOME/icu/trunk/icu4j
 
 # 2. Build the CLDR Java tools
 
 cd $CLDR_DIR/tools/java
-#cd $CLDR_DIR/cldr-tools
 ant jar
 
 # 3. Configure ICU4C, build and test without new data first, to verify that
@@ -162,7 +161,7 @@
 
 cd $ICU4C_DIR/source/data
 ant clean
-ant all 2>&1 | tee /tmp/cldrNN-buildLog.txt
+ant all 2>&1 | tee /tmp/cldr-newData-buildLog.txt
 
 # 5. Check which data files have modifications, which have been added or removed
 # (if there are no changes, you may not need to proceed further). Make sure the
@@ -220,10 +219,12 @@
 ant all 2>&1 | tee /tmp/icu4j-oldData-antAll.txt
 ant check 2>&1 | tee /tmp/icu4j-oldData-antCheck.txt
 
-# 12. Now build the new data for ICU4J
+# 12. Now build the new data and test data for ICU4J
 
 cd $ICU4C_DIR/source/data
 make icu4j-data-install
+cd $ICU4C_DIR/source/test/testdata
+make icu4j-data-install
 
 # 13. Now rebuild ICU4J with the new data and run tests:
 # Keep a log so you can investigate the errors.
@@ -241,25 +242,24 @@
 
 cd $ICU4C_DIR/source
 svn status
-# add or remove as necessary, then commit
+# add or remove as necessary
 
 cd $ICU4J_ROOT
 svn status
-# add or remove as necessary, then commit
+# add or remove as necessary
 
-# 16. For an official CLDR data integration into ICU, now tag the CLDR, ICU4J,
-# and ICU4C sources with an appropriate CLDR milestone (you can check previous
+cd $HOME/icu/trunk/
+# commit
+
+# 16. For an official CLDR data integration into ICU, now tag the CLDR and
+# ICU sources with an appropriate CLDR milestone (you can check previous
 # tags for format), e.g.:
 
 svn copy svn+ssh://unicode.org/repos/cldr/trunk \
 svn+ssh://unicode.org/repos/cldr/tags/release-NNN \
 --parents -m "cldrbug nnnn: tag cldr sources for NNN"
 
-svn copy svn+ssh://source.icu-project.org/repos/icu/icu4j/trunk \
-svn+ssh://source.icu-project.org/repos/icu/icu4j/tags/cldr-NNN \
---parents -m 'ticket:mmmm: tag the version used for integrating CLDR NNN'
-
-svn copy svn+ssh://source.icu-project.org/repos/icu/icu/trunk \
-svn+ssh://source.icu-project.org/repos/icu/icu/tags/cldr-NNN \
+svn copy svn+ssh://source.icu-project.org/repos/icu/trunk \
+svn+ssh://source.icu-project.org/repos/icu/tags/cldr-NNN \
 --parents -m 'ticket:mmmm: tag the version used for integrating CLDR NNN'
 
diff --git a/source/data/coll/af.txt b/source/data/coll/af.txt
index 5044380..ea3f541 100644
--- a/source/data/coll/af.txt
+++ b/source/data/coll/af.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"&N<<<ʼn"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/am.txt b/source/data/coll/am.txt
index 654293f..5ff8b4a 100644
--- a/source/data/coll/am.txt
+++ b/source/data/coll/am.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Ethi]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ar.txt b/source/data/coll/ar.txt
index 8f47d65..3d43327 100644
--- a/source/data/coll/ar.txt
+++ b/source/data/coll/ar.txt
@@ -9,7 +9,7 @@
                 "&ت<<ة<<<ﺔ<<<ﺓ"
                 "&ي<<ى<<<ﯨ<<<ﯩ<<<ﻰ<<<ﻯ<<<ﲐ<<<ﱝ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -397,7 +397,7 @@
                 "‎&ۓ‎=ﮰ‎=ﮱ"
                 "‎&ۀ‎=ﮤ‎=ﮥ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ars.txt b/source/data/coll/ars.txt
new file mode 100644
index 0000000..24b08c3
--- /dev/null
+++ b/source/data/coll/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar"}
+}
diff --git a/source/data/coll/as.txt b/source/data/coll/as.txt
index 4069e69..0521a94 100644
--- a/source/data/coll/as.txt
+++ b/source/data/coll/as.txt
@@ -11,7 +11,7 @@
                 "&[before 1]ত<ৎ=ত্\u200D"
                 "&হ<ক্ষ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/az.txt b/source/data/coll/az.txt
index 2df1af9..88bc12a 100644
--- a/source/data/coll/az.txt
+++ b/source/data/coll/az.txt
@@ -9,7 +9,7 @@
                 "[import az-u-co-standard]"
                 "[reorder others]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -26,7 +26,7 @@
                 "&H<x<<<X"
                 "&Z<w<<<W"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/be.txt b/source/data/coll/be.txt
index 07cb28e..09c108e 100644
--- a/source/data/coll/be.txt
+++ b/source/data/coll/be.txt
@@ -9,7 +9,7 @@
                 "&Е<ё<<<Ё"
                 "&у<ў<<<Ў"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/bg.txt b/source/data/coll/bg.txt
index 69b5e74..0afa673 100644
--- a/source/data/coll/bg.txt
+++ b/source/data/coll/bg.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Cyrl]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/bn.txt b/source/data/coll/bn.txt
index 55a3e13..29f04b3 100644
--- a/source/data/coll/bn.txt
+++ b/source/data/coll/bn.txt
@@ -9,7 +9,7 @@
                 "[reorder Beng Deva Guru Gujr Orya Taml Telu Knda Mlym Sinh]"
                 "&ঔ<ং<ঃ<ঁ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         traditional{
             Sequence{
@@ -629,7 +629,7 @@
                 "&যৌ<<<য়ৌ"
                 "&য্<<<য়্"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/bs.txt b/source/data/coll/bs.txt
index 36cbc51..4663d4f 100644
--- a/source/data/coll/bs.txt
+++ b/source/data/coll/bs.txt
@@ -5,11 +5,11 @@
     collations{
         search{
             Sequence{"[import hr-u-co-search]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{"[import hr]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/bs_Cyrl.txt b/source/data/coll/bs_Cyrl.txt
index 3e34a58..4ae1b25 100644
--- a/source/data/coll/bs_Cyrl.txt
+++ b/source/data/coll/bs_Cyrl.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[import sr]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ca.txt b/source/data/coll/ca.txt
index ac983c3..eb76db2 100644
--- a/source/data/coll/ca.txt
+++ b/source/data/coll/ca.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "&L<ŀ=l·<<<Ŀ=L·"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/chr.txt b/source/data/coll/chr.txt
index 7fc9d3f..df5571e 100644
--- a/source/data/coll/chr.txt
+++ b/source/data/coll/chr.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Cher]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/colfiles.mk b/source/data/coll/colfiles.mk
index 79e3ecc..bb213c9 100644
--- a/source/data/coll/colfiles.mk
+++ b/source/data/coll/colfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-COLLATION_CLDR_VERSION = %version%
+COLLATION_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'collocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'collocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,15 +26,15 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-COLLATION_SYNTHETIC_ALIAS = de_.txt de__PHONEBOOK.txt es_.txt es__TRADITIONAL.txt\
- he_IL.txt id_ID.txt in.txt in_ID.txt iw.txt\
- iw_IL.txt mo.txt nb_NO.txt no.txt no_NO.txt\
- pa_Guru.txt pa_Guru_IN.txt pa_IN.txt ro_MD.txt sh.txt\
- sh_BA.txt sh_CS.txt sh_YU.txt sr_BA.txt sr_Cyrl.txt\
- sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt sr_Latn_BA.txt sr_Latn_RS.txt\
- sr_ME.txt sr_RS.txt zh_CN.txt zh_HK.txt zh_Hans.txt\
- zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_HK.txt zh_Hant_MO.txt zh_Hant_TW.txt\
- zh_MO.txt zh_SG.txt zh_TW.txt
+COLLATION_SYNTHETIC_ALIAS = ars.txt de_.txt de__PHONEBOOK.txt es_.txt\
+ es__TRADITIONAL.txt he_IL.txt id_ID.txt in.txt in_ID.txt\
+ iw.txt iw_IL.txt mo.txt nb_NO.txt no.txt\
+ no_NO.txt pa_Guru.txt pa_Guru_IN.txt pa_IN.txt ro_MD.txt\
+ sh.txt sh_BA.txt sh_CS.txt sh_YU.txt sr_BA.txt\
+ sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt sr_Latn_BA.txt\
+ sr_Latn_RS.txt sr_ME.txt sr_RS.txt zh_CN.txt zh_HK.txt\
+ zh_Hans.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_HK.txt zh_Hant_MO.txt\
+ zh_Hant_TW.txt zh_MO.txt zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
diff --git a/source/data/coll/cs.txt b/source/data/coll/cs.txt
index 9aacc51..4afa003 100644
--- a/source/data/coll/cs.txt
+++ b/source/data/coll/cs.txt
@@ -11,7 +11,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/cy.txt b/source/data/coll/cy.txt
index 76b791e..8d3049b 100644
--- a/source/data/coll/cy.txt
+++ b/source/data/coll/cy.txt
@@ -14,7 +14,7 @@
                 "&R<rh<<<Rh<<<RH"
                 "&T<th<<<Th<<<TH"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/da.txt b/source/data/coll/da.txt
index 15ee8c9..21a1924 100644
--- a/source/data/coll/da.txt
+++ b/source/data/coll/da.txt
@@ -9,7 +9,7 @@
                 "[import da-u-co-standard]"
                 "[caseFirst off]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -20,7 +20,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<<aa<<<Aa<<<AA"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/de.txt b/source/data/coll/de.txt
index 67e0ab6..3e1985b 100644
--- a/source/data/coll/de.txt
+++ b/source/data/coll/de.txt
@@ -9,14 +9,14 @@
                 "&OE<<ö<<<Ö"
                 "&UE<<ü<<<Ü"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         search{
             Sequence{
                 "[import und-u-co-search]"
                 "[import de-u-co-phonebk]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/de_AT.txt b/source/data/coll/de_AT.txt
index f8d9b57..4bb7363 100644
--- a/source/data/coll/de_AT.txt
+++ b/source/data/coll/de_AT.txt
@@ -10,7 +10,7 @@
                 "&u<ü<<<Ü"
                 "&ss<ß<<<ẞ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/dsb.txt b/source/data/coll/dsb.txt
index 31497f4..ba98554 100644
--- a/source/data/coll/dsb.txt
+++ b/source/data/coll/dsb.txt
@@ -14,7 +14,7 @@
                 "&S<š<<<Š<ś<<<Ś"
                 "&Z<ž<<<Ž<ź<<<Ź"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ee.txt b/source/data/coll/ee.txt
index e1a6f7b..36f9036 100644
--- a/source/data/coll/ee.txt
+++ b/source/data/coll/ee.txt
@@ -17,7 +17,7 @@
                 "&T<ts<<<Ts<<<TS"
                 "&V<ʋ<<<Ʋ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/el.txt b/source/data/coll/el.txt
index ce36c80..9193c00 100644
--- a/source/data/coll/el.txt
+++ b/source/data/coll/el.txt
@@ -8,7 +8,7 @@
                 "[normalization on]"
                 "[reorder Grek]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/en_US_POSIX.txt b/source/data/coll/en_US_POSIX.txt
index 51e7749..29c8066 100644
--- a/source/data/coll/en_US_POSIX.txt
+++ b/source/data/coll/en_US_POSIX.txt
@@ -8,7 +8,7 @@
                 "&A<*'\u0020'-'/'<*0-'@'<*ABCDEFGHIJKLMNOPQRSTUVWXYZ<*'['-'`'<*abcdefghijklmnopqrstuvwxyz"
                 "<*'{'-'\u007F'"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/eo.txt b/source/data/coll/eo.txt
index 3014bc6..a2dd1c2 100644
--- a/source/data/coll/eo.txt
+++ b/source/data/coll/eo.txt
@@ -12,7 +12,7 @@
                 "&S<ŝ<<<Ŝ"
                 "&U<ŭ<<<Ŭ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/es.txt b/source/data/coll/es.txt
index 0e8f00a..f5d012e 100644
--- a/source/data/coll/es.txt
+++ b/source/data/coll/es.txt
@@ -8,11 +8,11 @@
                 "[import und-u-co-search]"
                 "&N<ñ<<<Ñ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{"&N<ñ<<<Ñ"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         traditional{
             Sequence{
@@ -20,7 +20,7 @@
                 "&C<ch<<<Ch<<<CH"
                 "&l<ll<<<Ll<<<LL"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/et.txt b/source/data/coll/et.txt
index d3d61bd..f6ab2fb 100644
--- a/source/data/coll/et.txt
+++ b/source/data/coll/et.txt
@@ -8,7 +8,7 @@
                 "&[before 1]T<š<<<Š<z<<<Z<ž<<<Ž"
                 "&[before 1]X<õ<<<Õ<ä<<<Ä<ö<<<Ö<ü<<<Ü"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fa.txt b/source/data/coll/fa.txt
index 2ad9b76..6b0cc40 100644
--- a/source/data/coll/fa.txt
+++ b/source/data/coll/fa.txt
@@ -16,7 +16,7 @@
                 "&ۏ<ه<<ە<<ہ<<ة<<ۃ<<ۀ<<ھ"
                 "&ی<<*ىےيېۑۍێ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fa_AF.txt b/source/data/coll/fa_AF.txt
index 84d8028..5f2840b 100644
--- a/source/data/coll/fa_AF.txt
+++ b/source/data/coll/fa_AF.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[import ps]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fi.txt b/source/data/coll/fi.txt
index 6aedc04..76f8122 100644
--- a/source/data/coll/fi.txt
+++ b/source/data/coll/fi.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import fi-u-co-trad]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -20,7 +20,7 @@
                 "&Z\u0335<<ʒ<<<Ʒ"
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         traditional{
             Sequence{
@@ -31,7 +31,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<õ<<<Õ<<œ<<<Œ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fil.txt b/source/data/coll/fil.txt
index 502f749..109ce5b 100644
--- a/source/data/coll/fil.txt
+++ b/source/data/coll/fil.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"&N<ñ<<<Ñ<ng<<<Ng<<<NG"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fo.txt b/source/data/coll/fo.txt
index d6a103f..1ba264f 100644
--- a/source/data/coll/fo.txt
+++ b/source/data/coll/fo.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import fo-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -18,7 +18,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<<aa<<<Aa<<<AA"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/fr_CA.txt b/source/data/coll/fr_CA.txt
index b6838df..90f4d25 100644
--- a/source/data/coll/fr_CA.txt
+++ b/source/data/coll/fr_CA.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[backwards 2]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/gl.txt b/source/data/coll/gl.txt
index f73bd82..5447afa 100644
--- a/source/data/coll/gl.txt
+++ b/source/data/coll/gl.txt
@@ -5,11 +5,11 @@
     collations{
         search{
             Sequence{"[import es-u-co-search]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{"[import es]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/gu.txt b/source/data/coll/gu.txt
index 37ef3c1..70f1791 100644
--- a/source/data/coll/gu.txt
+++ b/source/data/coll/gu.txt
@@ -9,7 +9,7 @@
                 "[reorder Gujr Deva Beng Guru Orya Taml Telu Knda Mlym Sinh]"
                 "&ૐ<ં<<ઁ<ઃ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ha.txt b/source/data/coll/ha.txt
index 5d51388..d0b51f7 100644
--- a/source/data/coll/ha.txt
+++ b/source/data/coll/ha.txt
@@ -12,7 +12,7 @@
                 "&T<ts<<<Ts<<<TS"
                 "&Y<ƴ<<<ʼy<<<''y<<<Ƴ<<<ʼY<<<''Y"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/haw.txt b/source/data/coll/haw.txt
index 78e8e2b..cc2e0b9 100644
--- a/source/data/coll/haw.txt
+++ b/source/data/coll/haw.txt
@@ -8,7 +8,7 @@
                 "&a<e<<<E<i<<<I<o<<<O<u<<<U"
                 "&w<ʻ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/he.txt b/source/data/coll/he.txt
index 19afc94..08b253b 100644
--- a/source/data/coll/he.txt
+++ b/source/data/coll/he.txt
@@ -11,7 +11,7 @@
                 "‎&״"
                 "<<'\u0022'"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -20,7 +20,7 @@
                 "&[before 2]''<<׳"
                 "&[before 2]'\u0022'<<״"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/hi.txt b/source/data/coll/hi.txt
index 702d007..d4a338f 100644
--- a/source/data/coll/hi.txt
+++ b/source/data/coll/hi.txt
@@ -9,7 +9,7 @@
                 "[reorder Deva Beng Guru Gujr Orya Taml Telu Knda Mlym Sinh]"
                 "&ॐ<ं<<ँ<ः"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/hr.txt b/source/data/coll/hr.txt
index b8a21c7..a3b4044 100644
--- a/source/data/coll/hr.txt
+++ b/source/data/coll/hr.txt
@@ -9,7 +9,7 @@
                 "[import hr-u-co-standard]"
                 "[reorder others]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -21,7 +21,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/hsb.txt b/source/data/coll/hsb.txt
index 8bd4754..1fe7eed 100644
--- a/source/data/coll/hsb.txt
+++ b/source/data/coll/hsb.txt
@@ -13,7 +13,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž<ź<<<Ź"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/hu.txt b/source/data/coll/hu.txt
index 205b066..52e4f13 100644
--- a/source/data/coll/hu.txt
+++ b/source/data/coll/hu.txt
@@ -44,7 +44,7 @@
                 "&Zs<<<Zzs/zs"
                 "&ZS<<<ZZS/ZS"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/hy.txt b/source/data/coll/hy.txt
index 28cff82..77cbb97 100644
--- a/source/data/coll/hy.txt
+++ b/source/data/coll/hy.txt
@@ -8,7 +8,7 @@
                 "[reorder Armn]"
                 "&ք<և<<<Եւ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ig.txt b/source/data/coll/ig.txt
index 3c28a9a..d192c7a 100644
--- a/source/data/coll/ig.txt
+++ b/source/data/coll/ig.txt
@@ -15,7 +15,7 @@
                 "&S<sh<<<Sh<<<SH"
                 "&U<ụ<<<Ụ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/is.txt b/source/data/coll/is.txt
index 93c47b7..e064a21 100644
--- a/source/data/coll/is.txt
+++ b/source/data/coll/is.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import is-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -21,7 +21,7 @@
                 "&[before 1]z<ý<<<Ý"
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ö<<<Ö<<ø<<<Ø<å<<<Å"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ja.txt b/source/data/coll/ja.txt
index 635e485..37b7c75 100644
--- a/source/data/coll/ja.txt
+++ b/source/data/coll/ja.txt
@@ -412,21 +412,21 @@
                 "&「=「"
                 "&」=」"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
                 "[import ja-u-co-private-kana]"
                 "&[last regular]<*亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         unihan{
             Sequence{
                 "[import und-u-co-private-unihan]"
                 "[import ja-u-co-private-kana]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ka.txt b/source/data/coll/ka.txt
index 49bb046..61f047b 100644
--- a/source/data/coll/ka.txt
+++ b/source/data/coll/ka.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Geor]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/kk.txt b/source/data/coll/kk.txt
index a3bf98f..d4b4a8d 100644
--- a/source/data/coll/kk.txt
+++ b/source/data/coll/kk.txt
@@ -10,7 +10,7 @@
                 "&Ұ<ү<<<Ү"
                 "&[before 1]ь<і<<<І"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/kl.txt b/source/data/coll/kl.txt
index 640ef22..d48ea31 100644
--- a/source/data/coll/kl.txt
+++ b/source/data/coll/kl.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import kl-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -19,7 +19,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/km.txt b/source/data/coll/km.txt
index 2d246a7..21e8785 100644
--- a/source/data/coll/km.txt
+++ b/source/data/coll/km.txt
@@ -66,7 +66,7 @@
                 "&ឱ<<<ឲ"
                 "&ៅ<ុំ<ំ<ាំ<ះ<ិះ<ុះ<េះ<ោះ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/kn.txt b/source/data/coll/kn.txt
index e9e29a4..113d0a8 100644
--- a/source/data/coll/kn.txt
+++ b/source/data/coll/kn.txt
@@ -9,7 +9,7 @@
                 "[reorder Knda Deva Beng Guru Gujr Orya Taml Telu Mlym Sinh]"
                 "&ಔ<ಂ<ಃ<ೱ<ೲ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         traditional{
             Sequence{
@@ -651,7 +651,7 @@
                 "&ಫೋ<<<ಫ಼ೋ"
                 "&ಫೌ<<<ಫ಼ೌ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ko.txt b/source/data/coll/ko.txt
index d9b7237..9ae6c08 100644
--- a/source/data/coll/ko.txt
+++ b/source/data/coll/ko.txt
@@ -283,7 +283,7 @@
                 "&ᅩᅣᅵ"
                 "=ᆧ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         searchjl{
             Sequence{
@@ -378,7 +378,7 @@
                 "&\u1109\u1109=\u110A<<<\u3146"
                 "&\u110C\u110C=\u110D<<<\u3149"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -862,14 +862,14 @@
                 "&희<<*僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲咥唏嘻悕戲暿欷燹爔豨餼"
                 "&힐<<*詰犵纈襭頡黠"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         unihan{
             Sequence{
                 "[import und-u-co-private-unihan]"
                 "[reorder Hang Hani]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/kok.txt b/source/data/coll/kok.txt
index a8a0b8a..32363cf 100644
--- a/source/data/coll/kok.txt
+++ b/source/data/coll/kok.txt
@@ -11,7 +11,7 @@
                 "&ह<ळ"
                 "<क्ष"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ky.txt b/source/data/coll/ky.txt
index 539a57c..78cdc93 100644
--- a/source/data/coll/ky.txt
+++ b/source/data/coll/ky.txt
@@ -8,7 +8,7 @@
                 "[reorder Cyrl]"
                 "&е<ё<<<Ё"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/lkt.txt b/source/data/coll/lkt.txt
index 5c226c0..7eed03d 100644
--- a/source/data/coll/lkt.txt
+++ b/source/data/coll/lkt.txt
@@ -11,7 +11,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ln.txt b/source/data/coll/ln.txt
index cb41363..54a9239 100644
--- a/source/data/coll/ln.txt
+++ b/source/data/coll/ln.txt
@@ -16,14 +16,14 @@
                 "&S<sh<<<sH<<<Sh<<<SH"
                 "&T<ts<<<tS<<<Ts<<<TS"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
                 "&E<ɛ<<<Ɛ"
                 "&O<<ɔ<<<Ɔ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/lo.txt b/source/data/coll/lo.txt
index 1c4dd62..c49ad04 100644
--- a/source/data/coll/lo.txt
+++ b/source/data/coll/lo.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Laoo]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/lt.txt b/source/data/coll/lt.txt
index d02a4fa..83acdc7 100644
--- a/source/data/coll/lt.txt
+++ b/source/data/coll/lt.txt
@@ -16,7 +16,7 @@
                 "&U<<ų<<<Ų<<ū<<<Ū"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/lv.txt b/source/data/coll/lv.txt
index 595779c..92ce44c 100644
--- a/source/data/coll/lv.txt
+++ b/source/data/coll/lv.txt
@@ -15,7 +15,7 @@
                 "&[before 1]T<š<<<Š"
                 "&[before 1]Ʒ<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/mk.txt b/source/data/coll/mk.txt
index 388e2e6..53fb2bb 100644
--- a/source/data/coll/mk.txt
+++ b/source/data/coll/mk.txt
@@ -10,7 +10,7 @@
                 "&ԃ<ѓ<<<Ѓ"
                 "&ћ<ќ<<<Ќ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ml.txt b/source/data/coll/ml.txt
index 60a4120..d7d2069 100644
--- a/source/data/coll/ml.txt
+++ b/source/data/coll/ml.txt
@@ -17,7 +17,7 @@
                 "&മ്<<ം"
                 "&ന്<<<ൻ്"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/mn.txt b/source/data/coll/mn.txt
index 248b209..3e152a5 100644
--- a/source/data/coll/mn.txt
+++ b/source/data/coll/mn.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Cyrl Mong]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/mr.txt b/source/data/coll/mr.txt
index 77185cc..4846fe5 100644
--- a/source/data/coll/mr.txt
+++ b/source/data/coll/mr.txt
@@ -12,7 +12,7 @@
                 "<क्ष"
                 "<ज्ञ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/mt.txt b/source/data/coll/mt.txt
index 08cdb47..54b15af 100644
--- a/source/data/coll/mt.txt
+++ b/source/data/coll/mt.txt
@@ -12,7 +12,7 @@
                 "&[before 1]i<ħ<<<Ħ"
                 "&[before 1]z<ż<<<Ż"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/my.txt b/source/data/coll/my.txt
index 7150a71..b39924f 100644
--- a/source/data/coll/my.txt
+++ b/source/data/coll/my.txt
@@ -373,7 +373,7 @@
                 "&ထမင်း=ထ္မင်း"
                 "&လက်ဘက်=လ္ဘက်"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/nb.txt b/source/data/coll/nb.txt
index 3aa0613..e10cce2 100644
--- a/source/data/coll/nb.txt
+++ b/source/data/coll/nb.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import nb-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -18,7 +18,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ne.txt b/source/data/coll/ne.txt
index c18df4e..7e30160 100644
--- a/source/data/coll/ne.txt
+++ b/source/data/coll/ne.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Deva]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/nn.txt b/source/data/coll/nn.txt
index a6ef1de..f686fb2 100644
--- a/source/data/coll/nn.txt
+++ b/source/data/coll/nn.txt
@@ -5,11 +5,11 @@
     collations{
         search{
             Sequence{"[import nb-u-co-search]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{"[import nb-u-co-standard]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/om.txt b/source/data/coll/om.txt
index d3b0459..0bf32c0 100644
--- a/source/data/coll/om.txt
+++ b/source/data/coll/om.txt
@@ -8,7 +8,7 @@
                 "&Z<ch<<<Ch<<<CH<dh<<<Dh<<<DH<kh<<<Kh<<<KH<ny<<<Ny<<<NY<ph<<<Ph<<<PH<"
                 "sh<<<Sh"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/or.txt b/source/data/coll/or.txt
index 5971943..aee4f18 100644
--- a/source/data/coll/or.txt
+++ b/source/data/coll/or.txt
@@ -11,7 +11,7 @@
                 "&ହ<କ୍ଷ"
                 "&ଯ<<ୟ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/pa.txt b/source/data/coll/pa.txt
index 52cad4b..ccaa9b4 100644
--- a/source/data/coll/pa.txt
+++ b/source/data/coll/pa.txt
@@ -10,7 +10,7 @@
                 "&ੱ<<ੰ<<ਂ<<ਁ<<਼"
                 "&ੜ<੍"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/pl.txt b/source/data/coll/pl.txt
index 33cd3fa..de998b9 100644
--- a/source/data/coll/pl.txt
+++ b/source/data/coll/pl.txt
@@ -14,7 +14,7 @@
                 "&S<ś<<<Ś"
                 "&Z<ź<<<Ź<ż<<<Ż"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ps.txt b/source/data/coll/ps.txt
index 8081260..4789094 100644
--- a/source/data/coll/ps.txt
+++ b/source/data/coll/ps.txt
@@ -24,7 +24,7 @@
                 "&ی<<*ىےيېۍ<<یٔ<<<ىٔ<<<ئ"
                 "&\u00A0<<\u200C<<\u200D"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ro.txt b/source/data/coll/ro.txt
index 8552e8e..1f21fc3 100644
--- a/source/data/coll/ro.txt
+++ b/source/data/coll/ro.txt
@@ -10,7 +10,7 @@
                 "&S<ş=ș<<<Ş=Ș"
                 "&T<ţ=ț<<<Ţ=Ț"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/root.txt b/source/data/coll/root.txt
index 9ecb55e..230ee88 100644
--- a/source/data/coll/root.txt
+++ b/source/data/coll/root.txt
@@ -5,699 +5,254 @@
  */
 root{
     UCARules:process(uca_rules){"../unidata/UCARules.txt"}
-    Version{"2.1.29.77"}
+    Version{"2.1.32.70"}
     collations{
         default{"standard"}
         emoji{
             Sequence{
                 "& [last primary ignorable]<<*🏻🏼🏽🏾🏿"
                 "& [last regular]"
-                "<*😀😁😂🤣😃😄😅😆😉😊😋😎😍😘😗😙😚☺🙂🤗"
-                "<*🤔😐😑😶🙄😏😣😥😮🤐😯😪😫😴😌🤓😛😜😝🤤😒😓😔😕🙃🤑😲"
-                "<*☹🙁😖😞😟😤😢😭😦😧😨😩😬😰😱😳😵😡😠"
-                "<*😇🤠🤡🤥"
-                "<*😷🤒🤕🤢🤧"
+                "<*😀😁😂🤣😃😄😅😆😉😊😋😎😍😘😗😙😚☺🙂🤗🤩"
+                "<*🤔🤨😐😑😶🙄😏😣😥😮🤐😯😪😫😴😌😛😜😝🤤😒😓😔😕🙃🤑😲"
+                "<*☹🙁😖😞😟😤😢😭😦😧😨😩🤯😬😰😱😳🤪😵😡😠🤬"
+                "<*😷🤒🤕🤢🤮🤧"
+                "<*😇🤠🤡🤥🤫🤭🧐🤓"
                 "<*😈👿👹👺💀☠👻👽👾🤖💩"
                 "<*😺😸😹😻😼😽🙀😿😾"
                 "<*🙈🙉🙊"
-                "<*👦👧👨👩👴👵👶👼"
-                "<👨‍⚕"
-                "<<👨🏻‍⚕"
-                "<<👨🏼‍⚕"
-                "<<👨🏽‍⚕"
-                "<<👨🏾‍⚕"
-                "<<👨🏿‍⚕"
-                "<👩‍⚕"
-                "<<👩🏻‍⚕"
-                "<<👩🏼‍⚕"
-                "<<👩🏽‍⚕"
-                "<<👩🏾‍⚕"
-                "<<👩🏿‍⚕"
-                "<👨‍🎓"
-                "<<👨🏻‍🎓"
-                "<<👨🏼‍🎓"
-                "<<👨🏽‍🎓"
-                "<<👨🏾‍🎓"
-                "<<👨🏿‍🎓"
-                "<👩‍🎓"
-                "<<👩🏻‍🎓"
-                "<<👩🏼‍🎓"
-                "<<👩🏽‍🎓"
-                "<<👩🏾‍🎓"
-                "<<👩🏿‍🎓"
-                "<👨‍🏫"
-                "<<👨🏻‍🏫"
-                "<<👨🏼‍🏫"
-                "<<👨🏽‍🏫"
-                "<<👨🏾‍🏫"
-                "<<👨🏿‍🏫"
-                "<👩‍🏫"
-                "<<👩🏻‍🏫"
-                "<<👩🏼‍🏫"
-                "<<👩🏽‍🏫"
-                "<<👩🏾‍🏫"
-                "<<👩🏿‍🏫"
-                "<👨‍⚖"
-                "<<👨🏻‍⚖"
-                "<<👨🏼‍⚖"
-                "<<👨🏽‍⚖"
-                "<<👨🏾‍⚖"
-                "<<👨🏿‍⚖"
-                "<👩‍⚖"
-                "<<👩🏻‍⚖"
-                "<<👩🏼‍⚖"
-                "<<👩🏽‍⚖"
-                "<<👩🏾‍⚖"
-                "<<👩🏿‍⚖"
-                "<👨‍🌾"
-                "<<👨🏻‍🌾"
-                "<<👨🏼‍🌾"
-                "<<👨🏽‍🌾"
-                "<<👨🏾‍🌾"
-                "<<👨🏿‍🌾"
-                "<👩‍🌾"
-                "<<👩🏻‍🌾"
-                "<<👩🏼‍🌾"
-                "<<👩🏽‍🌾"
-                "<<👩🏾‍🌾"
-                "<<👩🏿‍🌾"
-                "<👨‍🍳"
-                "<<👨🏻‍🍳"
-                "<<👨🏼‍🍳"
-                "<<👨🏽‍🍳"
-                "<<👨🏾‍🍳"
-                "<<👨🏿‍🍳"
-                "<👩‍🍳"
-                "<<👩🏻‍🍳"
-                "<<👩🏼‍🍳"
-                "<<👩🏽‍🍳"
-                "<<👩🏾‍🍳"
-                "<<👩🏿‍🍳"
-                "<👨‍🔧"
-                "<<👨🏻‍🔧"
-                "<<👨🏼‍🔧"
-                "<<👨🏽‍🔧"
-                "<<👨🏾‍🔧"
-                "<<👨🏿‍🔧"
-                "<👩‍🔧"
-                "<<👩🏻‍🔧"
-                "<<👩🏼‍🔧"
-                "<<👩🏽‍🔧"
-                "<<👩🏾‍🔧"
-                "<<👩🏿‍🔧"
-                "<👨‍🏭"
-                "<<👨🏻‍🏭"
-                "<<👨🏼‍🏭"
-                "<<👨🏽‍🏭"
-                "<<👨🏾‍🏭"
-                "<<👨🏿‍🏭"
-                "<👩‍🏭"
-                "<<👩🏻‍🏭"
-                "<<👩🏼‍🏭"
-                "<<👩🏽‍🏭"
-                "<<👩🏾‍🏭"
-                "<<👩🏿‍🏭"
-                "<👨‍💼"
-                "<<👨🏻‍💼"
-                "<<👨🏼‍💼"
-                "<<👨🏽‍💼"
-                "<<👨🏾‍💼"
-                "<<👨🏿‍💼"
-                "<👩‍💼"
-                "<<👩🏻‍💼"
-                "<<👩🏼‍💼"
-                "<<👩🏽‍💼"
-                "<<👩🏾‍💼"
-                "<<👩🏿‍💼"
-                "<👨‍🔬"
-                "<<👨🏻‍🔬"
-                "<<👨🏼‍🔬"
-                "<<👨🏽‍🔬"
-                "<<👨🏾‍🔬"
-                "<<👨🏿‍🔬"
-                "<👩‍🔬"
-                "<<👩🏻‍🔬"
-                "<<👩🏼‍🔬"
-                "<<👩🏽‍🔬"
-                "<<👩🏾‍🔬"
-                "<<👩🏿‍🔬"
-                "<👨‍💻"
-                "<<👨🏻‍💻"
-                "<<👨🏼‍💻"
-                "<<👨🏽‍💻"
-                "<<👨🏾‍💻"
-                "<<👨🏿‍💻"
-                "<👩‍💻"
-                "<<👩🏻‍💻"
-                "<<👩🏼‍💻"
-                "<<👩🏽‍💻"
-                "<<👩🏾‍💻"
-                "<<👩🏿‍💻"
-                "<👨‍🎤"
-                "<<👨🏻‍🎤"
-                "<<👨🏼‍🎤"
-                "<<👨🏽‍🎤"
-                "<<👨🏾‍🎤"
-                "<<👨🏿‍🎤"
-                "<👩‍🎤"
-                "<<👩🏻‍🎤"
-                "<<👩🏼‍🎤"
-                "<<👩🏽‍🎤"
-                "<<👩🏾‍🎤"
-                "<<👩🏿‍🎤"
-                "<👨‍🎨"
-                "<<👨🏻‍🎨"
-                "<<👨🏼‍🎨"
-                "<<👨🏽‍🎨"
-                "<<👨🏾‍🎨"
-                "<<👨🏿‍🎨"
-                "<👩‍🎨"
-                "<<👩🏻‍🎨"
-                "<<👩🏼‍🎨"
-                "<<👩🏽‍🎨"
-                "<<👩🏾‍🎨"
-                "<<👩🏿‍🎨"
-                "<👨‍✈"
-                "<<👨🏻‍✈"
-                "<<👨🏼‍✈"
-                "<<👨🏽‍✈"
-                "<<👨🏾‍✈"
-                "<<👨🏿‍✈"
-                "<👩‍✈"
-                "<<👩🏻‍✈"
-                "<<👩🏼‍✈"
-                "<<👩🏽‍✈"
-                "<<👩🏾‍✈"
-                "<<👩🏿‍✈"
-                "<👨‍🚀"
-                "<<👨🏻‍🚀"
-                "<<👨🏼‍🚀"
-                "<<👨🏽‍🚀"
-                "<<👨🏾‍🚀"
-                "<<👨🏿‍🚀"
-                "<👩‍🚀"
-                "<<👩🏻‍🚀"
-                "<<👩🏼‍🚀"
-                "<<👩🏽‍🚀"
-                "<<👩🏾‍🚀"
-                "<<👩🏿‍🚀"
-                "<👨‍🚒"
-                "<<👨🏻‍🚒"
-                "<<👨🏼‍🚒"
-                "<<👨🏽‍🚒"
-                "<<👨🏾‍🚒"
-                "<<👨🏿‍🚒"
-                "<👩‍🚒"
-                "<<👩🏻‍🚒"
-                "<<👩🏼‍🚒"
-                "<<👩🏽‍🚒"
-                "<<👩🏾‍🚒"
-                "<<👩🏿‍🚒"
+                "<*👶🧒👦👧🧑👨👩🧓👴👵"
+                "< 🧑‍⚕ << 🧑🏻‍⚕ << 🧑🏼‍⚕ << 🧑🏽‍⚕ << 🧑🏾‍⚕ << 🧑🏿‍⚕"
+                "< 👨‍⚕ << 👨🏻‍⚕ << 👨🏼‍⚕ << 👨🏽‍⚕ << 👨🏾‍⚕ << 👨🏿‍⚕"
+                "< 👩‍⚕ << 👩🏻‍⚕ << 👩🏼‍⚕ << 👩🏽‍⚕ << 👩🏾‍⚕ << 👩🏿‍⚕"
+                "< 🧑‍🎓 << 🧑🏻‍🎓 << 🧑🏼‍🎓 << 🧑🏽‍🎓 << 🧑🏾‍🎓 << 🧑🏿‍🎓"
+                "< 👨‍🎓 << 👨🏻‍🎓 << 👨🏼‍🎓 << 👨🏽‍🎓 << 👨🏾‍🎓 << 👨🏿‍🎓"
+                "< 👩‍🎓 << 👩🏻‍🎓 << 👩🏼‍🎓 << 👩🏽‍🎓 << 👩🏾‍🎓 << 👩🏿‍🎓"
+                "< 🧑‍🏫 << 🧑🏻‍🏫 << 🧑🏼‍🏫 << 🧑🏽‍🏫 << 🧑🏾‍🏫 << 🧑🏿‍🏫"
+                "< 👨‍🏫 << 👨🏻‍🏫 << 👨🏼‍🏫 << 👨🏽‍🏫 << 👨🏾‍🏫 << 👨🏿‍🏫"
+                "< 👩‍🏫 << 👩🏻‍🏫 << 👩🏼‍🏫 << 👩🏽‍🏫 << 👩🏾‍🏫 << 👩🏿‍🏫"
+                "< 🧑‍⚖ << 🧑🏻‍⚖ << 🧑🏼‍⚖ << 🧑🏽‍⚖ << 🧑🏾‍⚖ << 🧑🏿‍⚖"
+                "< 👨‍⚖ << 👨🏻‍⚖ << 👨🏼‍⚖ << 👨🏽‍⚖ << 👨🏾‍⚖ << 👨🏿‍⚖"
+                "< 👩‍⚖ << 👩🏻‍⚖ << 👩🏼‍⚖ << 👩🏽‍⚖ << 👩🏾‍⚖ << 👩🏿‍⚖"
+                "< 🧑‍🌾 << 🧑🏻‍🌾 << 🧑🏼‍🌾 << 🧑🏽‍🌾 << 🧑🏾‍🌾 << 🧑🏿‍🌾"
+                "< 👨‍🌾 << 👨🏻‍🌾 << 👨🏼‍🌾 << 👨🏽‍🌾 << 👨🏾‍🌾 << 👨🏿‍🌾"
+                "< 👩‍🌾 << 👩🏻‍🌾 << 👩🏼‍🌾 << 👩🏽‍🌾 << 👩🏾‍🌾 << 👩🏿‍🌾"
+                "< 🧑‍🍳 << 🧑🏻‍🍳 << 🧑🏼‍🍳 << 🧑🏽‍🍳 << 🧑🏾‍🍳 << 🧑🏿‍🍳"
+                "< 👨‍🍳 << 👨🏻‍🍳 << 👨🏼‍🍳 << 👨🏽‍🍳 << 👨🏾‍🍳 << 👨🏿‍🍳"
+                "< 👩‍🍳 << 👩🏻‍🍳 << 👩🏼‍🍳 << 👩🏽‍🍳 << 👩🏾‍🍳 << 👩🏿‍🍳"
+                "< 🧑‍🔧 << 🧑🏻‍🔧 << 🧑🏼‍🔧 << 🧑🏽‍🔧 << 🧑🏾‍🔧 << 🧑🏿‍🔧"
+                "< 👨‍🔧 << 👨🏻‍🔧 << 👨🏼‍🔧 << 👨🏽‍🔧 << 👨🏾‍🔧 << 👨🏿‍🔧"
+                "< 👩‍🔧 << 👩🏻‍🔧 << 👩🏼‍🔧 << 👩🏽‍🔧 << 👩🏾‍🔧 << 👩🏿‍🔧"
+                "< 🧑‍🏭 << 🧑🏻‍🏭 << 🧑🏼‍🏭 << 🧑🏽‍🏭 << 🧑🏾‍🏭 << 🧑🏿‍🏭"
+                "< 👨‍🏭 << 👨🏻‍🏭 << 👨🏼‍🏭 << 👨🏽‍🏭 << 👨🏾‍🏭 << 👨🏿‍🏭"
+                "< 👩‍🏭 << 👩🏻‍🏭 << 👩🏼‍🏭 << 👩🏽‍🏭 << 👩🏾‍🏭 << 👩🏿‍🏭"
+                "< 🧑‍💼 << 🧑🏻‍💼 << 🧑🏼‍💼 << 🧑🏽‍💼 << 🧑🏾‍💼 << 🧑🏿‍💼"
+                "< 👨‍💼 << 👨🏻‍💼 << 👨🏼‍💼 << 👨🏽‍💼 << 👨🏾‍💼 << 👨🏿‍💼"
+                "< 👩‍💼 << 👩🏻‍💼 << 👩🏼‍💼 << 👩🏽‍💼 << 👩🏾‍💼 << 👩🏿‍💼"
+                "< 🧑‍🔬 << 🧑🏻‍🔬 << 🧑🏼‍🔬 << 🧑🏽‍🔬 << 🧑🏾‍🔬 << 🧑🏿‍🔬"
+                "< 👨‍🔬 << 👨🏻‍🔬 << 👨🏼‍🔬 << 👨🏽‍🔬 << 👨🏾‍🔬 << 👨🏿‍🔬"
+                "< 👩‍🔬 << 👩🏻‍🔬 << 👩🏼‍🔬 << 👩🏽‍🔬 << 👩🏾‍🔬 << 👩🏿‍🔬"
+                "< 🧑‍💻 << 🧑🏻‍💻 << 🧑🏼‍💻 << 🧑🏽‍💻 << 🧑🏾‍💻 << 🧑🏿‍💻"
+                "< 👨‍💻 << 👨🏻‍💻 << 👨🏼‍💻 << 👨🏽‍💻 << 👨🏾‍💻 << 👨🏿‍💻"
+                "< 👩‍💻 << 👩🏻‍💻 << 👩🏼‍💻 << 👩🏽‍💻 << 👩🏾‍💻 << 👩🏿‍💻"
+                "< 🧑‍🎤 << 🧑🏻‍🎤 << 🧑🏼‍🎤 << 🧑🏽‍🎤 << 🧑🏾‍🎤 << 🧑🏿‍🎤"
+                "< 👨‍🎤 << 👨🏻‍🎤 << 👨🏼‍🎤 << 👨🏽‍🎤 << 👨🏾‍🎤 << 👨🏿‍🎤"
+                "< 👩‍🎤 << 👩🏻‍🎤 << 👩🏼‍🎤 << 👩🏽‍🎤 << 👩🏾‍🎤 << 👩🏿‍🎤"
+                "< 🧑‍🎨 << 🧑🏻‍🎨 << 🧑🏼‍🎨 << 🧑🏽‍🎨 << 🧑🏾‍🎨 << 🧑🏿‍🎨"
+                "< 👨‍🎨 << 👨🏻‍🎨 << 👨🏼‍🎨 << 👨🏽‍🎨 << 👨🏾‍🎨 << 👨🏿‍🎨"
+                "< 👩‍🎨 << 👩🏻‍🎨 << 👩🏼‍🎨 << 👩🏽‍🎨 << 👩🏾‍🎨 << 👩🏿‍🎨"
+                "< 🧑‍✈ << 🧑🏻‍✈ << 🧑🏼‍✈ << 🧑🏽‍✈ << 🧑🏾‍✈ << 🧑🏿‍✈"
+                "< 👨‍✈ << 👨🏻‍✈ << 👨🏼‍✈ << 👨🏽‍✈ << 👨🏾‍✈ << 👨🏿‍✈"
+                "< 👩‍✈ << 👩🏻‍✈ << 👩🏼‍✈ << 👩🏽‍✈ << 👩🏾‍✈ << 👩🏿‍✈"
+                "< 🧑‍🚀 << 🧑🏻‍🚀 << 🧑🏼‍🚀 << 🧑🏽‍🚀 << 🧑🏾‍🚀 << 🧑🏿‍🚀"
+                "< 👨‍🚀 << 👨🏻‍🚀 << 👨🏼‍🚀 << 👨🏽‍🚀 << 👨🏾‍🚀 << 👨🏿‍🚀"
+                "< 👩‍🚀 << 👩🏻‍🚀 << 👩🏼‍🚀 << 👩🏽‍🚀 << 👩🏾‍🚀 << 👩🏿‍🚀"
+                "< 🧑‍🚒 << 🧑🏻‍🚒 << 🧑🏼‍🚒 << 🧑🏽‍🚒 << 🧑🏾‍🚒 << 🧑🏿‍🚒"
+                "< 👨‍🚒 << 👨🏻‍🚒 << 👨🏼‍🚒 << 👨🏽‍🚒 << 👨🏾‍🚒 << 👨🏿‍🚒"
+                "< 👩‍🚒 << 👩🏻‍🚒 << 👩🏼‍🚒 << 👩🏽‍🚒 << 👩🏾‍🚒 << 👩🏿‍🚒"
                 "<*👮"
-                "<👮‍♂"
-                "<<👮🏻‍♂"
-                "<<👮🏼‍♂"
-                "<<👮🏽‍♂"
-                "<<👮🏾‍♂"
-                "<<👮🏿‍♂"
-                "<👮‍♀"
-                "<<👮🏻‍♀"
-                "<<👮🏼‍♀"
-                "<<👮🏽‍♀"
-                "<<👮🏾‍♀"
-                "<<👮🏿‍♀"
+                "< 👮‍♂ << 👮🏻‍♂ << 👮🏼‍♂ << 👮🏽‍♂ << 👮🏾‍♂ << 👮🏿‍♂"
+                "< 👮‍♀ << 👮🏻‍♀ << 👮🏼‍♀ << 👮🏽‍♀ << 👮🏾‍♀ << 👮🏿‍♀"
                 "<*🕵"
-                "<🕵‍♂ = 🕵️‍♂"
-                "<<🕵🏻‍♂"
-                "<<🕵🏼‍♂"
-                "<<🕵🏽‍♂"
-                "<<🕵🏾‍♂"
-                "<<🕵🏿‍♂"
-                "<🕵‍♀ = 🕵️‍♀"
-                "<<🕵🏻‍♀"
-                "<<🕵🏼‍♀"
-                "<<🕵🏽‍♀"
-                "<<🕵🏾‍♀"
-                "<<🕵🏿‍♀"
+                "< 🕵‍♂ = 🕵️‍♂ << 🕵🏻‍♂ << 🕵🏼‍♂ << 🕵🏽‍♂ << 🕵🏾‍♂ << 🕵🏿‍♂"
+                "< 🕵‍♀ = 🕵️‍♀ << 🕵🏻‍♀ << 🕵🏼‍♀ << 🕵🏽‍♀ << 🕵🏾‍♀ << 🕵🏿‍♀"
                 "<*💂"
-                "<💂‍♂"
-                "<<💂🏻‍♂"
-                "<<💂🏼‍♂"
-                "<<💂🏽‍♂"
-                "<<💂🏾‍♂"
-                "<<💂🏿‍♂"
-                "<💂‍♀"
-                "<<💂🏻‍♀"
-                "<<💂🏼‍♀"
-                "<<💂🏽‍♀"
-                "<<💂🏾‍♀"
-                "<<💂🏿‍♀"
+                "< 💂‍♂ << 💂🏻‍♂ << 💂🏼‍♂ << 💂🏽‍♂ << 💂🏾‍♂ << 💂🏿‍♂"
+                "< 💂‍♀ << 💂🏻‍♀ << 💂🏼‍♀ << 💂🏽‍♀ << 💂🏾‍♀ << 💂🏿‍♀"
                 "<*👷"
-                "<👷‍♂"
-                "<<👷🏻‍♂"
-                "<<👷🏼‍♂"
-                "<<👷🏽‍♂"
-                "<<👷🏾‍♂"
-                "<<👷🏿‍♂"
-                "<👷‍♀"
-                "<<👷🏻‍♀"
-                "<<👷🏼‍♀"
-                "<<👷🏽‍♀"
-                "<<👷🏾‍♀"
-                "<<👷🏿‍♀"
-                "<*👳"
-                "<👳‍♂"
-                "<<👳🏻‍♂"
-                "<<👳🏼‍♂"
-                "<<👳🏽‍♂"
-                "<<👳🏾‍♂"
-                "<<👳🏿‍♂"
-                "<👳‍♀"
-                "<<👳🏻‍♀"
-                "<<👳🏼‍♀"
-                "<<👳🏽‍♀"
-                "<<👳🏾‍♀"
-                "<<👳🏿‍♀"
-                "<*👱"
-                "<👱‍♂"
-                "<<👱🏻‍♂"
-                "<<👱🏼‍♂"
-                "<<👱🏽‍♂"
-                "<<👱🏾‍♂"
-                "<<👱🏿‍♂"
-                "<👱‍♀"
-                "<<👱🏻‍♀"
-                "<<👱🏼‍♀"
-                "<<👱🏽‍♀"
-                "<<👱🏾‍♀"
-                "<<👱🏿‍♀"
-                "<*🎅🤶👸🤴👰🤵🤰👲"
+                "< 👷‍♂ << 👷🏻‍♂ << 👷🏼‍♂ << 👷🏽‍♂ << 👷🏾‍♂ << 👷🏿‍♂"
+                "< 👷‍♀ << 👷🏻‍♀ << 👷🏼‍♀ << 👷🏽‍♀ << 👷🏾‍♀ << 👷🏿‍♀"
+                "<*🤴👸👳"
+                "< 👳‍♂ << 👳🏻‍♂ << 👳🏼‍♂ << 👳🏽‍♂ << 👳🏾‍♂ << 👳🏿‍♂"
+                "< 👳‍♀ << 👳🏻‍♀ << 👳🏼‍♀ << 👳🏽‍♀ << 👳🏾‍♀ << 👳🏿‍♀"
+                "<*👲🧕🧔👱"
+                "< 👱‍♂ << 👱🏻‍♂ << 👱🏼‍♂ << 👱🏽‍♂ << 👱🏾‍♂ << 👱🏿‍♂"
+                "< 👱‍♀ << 👱🏻‍♀ << 👱🏼‍♀ << 👱🏽‍♀ << 👱🏾‍♀ << 👱🏿‍♀"
+                "<*🤵👰🤰🤱👼🎅🤶🧙"
+                "< 🧙‍♀ << 🧙🏻‍♀ << 🧙🏼‍♀ << 🧙🏽‍♀ << 🧙🏾‍♀ << 🧙🏿‍♀"
+                "< 🧙‍♂ << 🧙🏻‍♂ << 🧙🏼‍♂ << 🧙🏽‍♂ << 🧙🏾‍♂ << 🧙🏿‍♂"
+                "<*🧚"
+                "< 🧚‍♀ << 🧚🏻‍♀ << 🧚🏼‍♀ << 🧚🏽‍♀ << 🧚🏾‍♀ << 🧚🏿‍♀"
+                "< 🧚‍♂ << 🧚🏻‍♂ << 🧚🏼‍♂ << 🧚🏽‍♂ << 🧚🏾‍♂ << 🧚🏿‍♂"
+                "<*🧛"
+                "< 🧛‍♀ << 🧛🏻‍♀ << 🧛🏼‍♀ << 🧛🏽‍♀ << 🧛🏾‍♀ << 🧛🏿‍♀"
+                "< 🧛‍♂ << 🧛🏻‍♂ << 🧛🏼‍♂ << 🧛🏽‍♂ << 🧛🏾‍♂ << 🧛🏿‍♂"
+                "<*🧜"
+                "< 🧜‍♀ << 🧜🏻‍♀ << 🧜🏼‍♀ << 🧜🏽‍♀ << 🧜🏾‍♀ << 🧜🏿‍♀"
+                "< 🧜‍♂ << 🧜🏻‍♂ << 🧜🏼‍♂ << 🧜🏽‍♂ << 🧜🏾‍♂ << 🧜🏿‍♂"
+                "<*🧝"
+                "< 🧝‍♀ << 🧝🏻‍♀ << 🧝🏼‍♀ << 🧝🏽‍♀ << 🧝🏾‍♀ << 🧝🏿‍♀"
+                "< 🧝‍♂ << 🧝🏻‍♂ << 🧝🏼‍♂ << 🧝🏽‍♂ << 🧝🏾‍♂ << 🧝🏿‍♂"
+                "<*🧞"
+                "< 🧞‍♀"
+                "< 🧞‍♂"
+                "<*🧟"
+                "< 🧟‍♀"
+                "< 🧟‍♂"
                 "<*🙍"
-                "<🙍‍♂"
-                "<<🙍🏻‍♂"
-                "<<🙍🏼‍♂"
-                "<<🙍🏽‍♂"
-                "<<🙍🏾‍♂"
-                "<<🙍🏿‍♂"
-                "<🙍‍♀"
-                "<<🙍🏻‍♀"
-                "<<🙍🏼‍♀"
-                "<<🙍🏽‍♀"
-                "<<🙍🏾‍♀"
-                "<<🙍🏿‍♀"
+                "< 🙍‍♂ << 🙍🏻‍♂ << 🙍🏼‍♂ << 🙍🏽‍♂ << 🙍🏾‍♂ << 🙍🏿‍♂"
+                "< 🙍‍♀ << 🙍🏻‍♀ << 🙍🏼‍♀ << 🙍🏽‍♀ << 🙍🏾‍♀ << 🙍🏿‍♀"
                 "<*🙎"
-                "<🙎‍♂"
-                "<<🙎🏻‍♂"
-                "<<🙎🏼‍♂"
-                "<<🙎🏽‍♂"
-                "<<🙎🏾‍♂"
-                "<<🙎🏿‍♂"
-                "<🙎‍♀"
-                "<<🙎🏻‍♀"
-                "<<🙎🏼‍♀"
-                "<<🙎🏽‍♀"
-                "<<🙎🏾‍♀"
-                "<<🙎🏿‍♀"
+                "< 🙎‍♂ << 🙎🏻‍♂ << 🙎🏼‍♂ << 🙎🏽‍♂ << 🙎🏾‍♂ << 🙎🏿‍♂"
+                "< 🙎‍♀ << 🙎🏻‍♀ << 🙎🏼‍♀ << 🙎🏽‍♀ << 🙎🏾‍♀ << 🙎🏿‍♀"
                 "<*🙅"
-                "<🙅‍♂"
-                "<<🙅🏻‍♂"
-                "<<🙅🏼‍♂"
-                "<<🙅🏽‍♂"
-                "<<🙅🏾‍♂"
-                "<<🙅🏿‍♂"
-                "<🙅‍♀"
-                "<<🙅🏻‍♀"
-                "<<🙅🏼‍♀"
-                "<<🙅🏽‍♀"
-                "<<🙅🏾‍♀"
-                "<<🙅🏿‍♀"
+                "< 🙅‍♂ << 🙅🏻‍♂ << 🙅🏼‍♂ << 🙅🏽‍♂ << 🙅🏾‍♂ << 🙅🏿‍♂"
+                "< 🙅‍♀ << 🙅🏻‍♀ << 🙅🏼‍♀ << 🙅🏽‍♀ << 🙅🏾‍♀ << 🙅🏿‍♀"
                 "<*🙆"
-                "<🙆‍♂"
-                "<<🙆🏻‍♂"
-                "<<🙆🏼‍♂"
-                "<<🙆🏽‍♂"
-                "<<🙆🏾‍♂"
-                "<<🙆🏿‍♂"
-                "<🙆‍♀"
-                "<<🙆🏻‍♀"
-                "<<🙆🏼‍♀"
-                "<<🙆🏽‍♀"
-                "<<🙆🏾‍♀"
-                "<<🙆🏿‍♀"
+                "< 🙆‍♂ << 🙆🏻‍♂ << 🙆🏼‍♂ << 🙆🏽‍♂ << 🙆🏾‍♂ << 🙆🏿‍♂"
+                "< 🙆‍♀ << 🙆🏻‍♀ << 🙆🏼‍♀ << 🙆🏽‍♀ << 🙆🏾‍♀ << 🙆🏿‍♀"
                 "<*💁"
-                "<💁‍♂"
-                "<<💁🏻‍♂"
-                "<<💁🏼‍♂"
-                "<<💁🏽‍♂"
-                "<<💁🏾‍♂"
-                "<<💁🏿‍♂"
-                "<💁‍♀"
-                "<<💁🏻‍♀"
-                "<<💁🏼‍♀"
-                "<<💁🏽‍♀"
-                "<<💁🏾‍♀"
-                "<<💁🏿‍♀"
+                "< 💁‍♂ << 💁🏻‍♂ << 💁🏼‍♂ << 💁🏽‍♂ << 💁🏾‍♂ << 💁🏿‍♂"
+                "< 💁‍♀ << 💁🏻‍♀ << 💁🏼‍♀ << 💁🏽‍♀ << 💁🏾‍♀ << 💁🏿‍♀"
                 "<*🙋"
-                "<🙋‍♂"
-                "<<🙋🏻‍♂"
-                "<<🙋🏼‍♂"
-                "<<🙋🏽‍♂"
-                "<<🙋🏾‍♂"
-                "<<🙋🏿‍♂"
-                "<🙋‍♀"
-                "<<🙋🏻‍♀"
-                "<<🙋🏼‍♀"
-                "<<🙋🏽‍♀"
-                "<<🙋🏾‍♀"
-                "<<🙋🏿‍♀"
+                "< 🙋‍♂ << 🙋🏻‍♂ << 🙋🏼‍♂ << 🙋🏽‍♂ << 🙋🏾‍♂ << 🙋🏿‍♂"
+                "< 🙋‍♀ << 🙋🏻‍♀ << 🙋🏼‍♀ << 🙋🏽‍♀ << 🙋🏾‍♀ << 🙋🏿‍♀"
                 "<*🙇"
-                "<🙇‍♂"
-                "<<🙇🏻‍♂"
-                "<<🙇🏼‍♂"
-                "<<🙇🏽‍♂"
-                "<<🙇🏾‍♂"
-                "<<🙇🏿‍♂"
-                "<🙇‍♀"
-                "<<🙇🏻‍♀"
-                "<<🙇🏼‍♀"
-                "<<🙇🏽‍♀"
-                "<<🙇🏾‍♀"
-                "<<🙇🏿‍♀"
+                "< 🙇‍♂ << 🙇🏻‍♂ << 🙇🏼‍♂ << 🙇🏽‍♂ << 🙇🏾‍♂ << 🙇🏿‍♂"
+                "< 🙇‍♀ << 🙇🏻‍♀ << 🙇🏼‍♀ << 🙇🏽‍♀ << 🙇🏾‍♀ << 🙇🏿‍♀"
                 "<*🤦"
-                "<🤦‍♂"
-                "<<🤦🏻‍♂"
-                "<<🤦🏼‍♂"
-                "<<🤦🏽‍♂"
-                "<<🤦🏾‍♂"
-                "<<🤦🏿‍♂"
-                "<🤦‍♀"
-                "<<🤦🏻‍♀"
-                "<<🤦🏼‍♀"
-                "<<🤦🏽‍♀"
-                "<<🤦🏾‍♀"
-                "<<🤦🏿‍♀"
+                "< 🤦‍♂ << 🤦🏻‍♂ << 🤦🏼‍♂ << 🤦🏽‍♂ << 🤦🏾‍♂ << 🤦🏿‍♂"
+                "< 🤦‍♀ << 🤦🏻‍♀ << 🤦🏼‍♀ << 🤦🏽‍♀ << 🤦🏾‍♀ << 🤦🏿‍♀"
                 "<*🤷"
-                "<🤷‍♂"
-                "<<🤷🏻‍♂"
-                "<<🤷🏼‍♂"
-                "<<🤷🏽‍♂"
-                "<<🤷🏾‍♂"
-                "<<🤷🏿‍♂"
-                "<🤷‍♀"
-                "<<🤷🏻‍♀"
-                "<<🤷🏼‍♀"
-                "<<🤷🏽‍♀"
-                "<<🤷🏾‍♀"
-                "<<🤷🏿‍♀"
+                "< 🤷‍♂ << 🤷🏻‍♂ << 🤷🏼‍♂ << 🤷🏽‍♂ << 🤷🏾‍♂ << 🤷🏿‍♂"
+                "< 🤷‍♀ << 🤷🏻‍♀ << 🤷🏼‍♀ << 🤷🏽‍♀ << 🤷🏾‍♀ << 🤷🏿‍♀"
                 "<*💆"
-                "<💆‍♂"
-                "<<💆🏻‍♂"
-                "<<💆🏼‍♂"
-                "<<💆🏽‍♂"
-                "<<💆🏾‍♂"
-                "<<💆🏿‍♂"
-                "<💆‍♀"
-                "<<💆🏻‍♀"
-                "<<💆🏼‍♀"
-                "<<💆🏽‍♀"
-                "<<💆🏾‍♀"
-                "<<💆🏿‍♀"
+                "< 💆‍♂ << 💆🏻‍♂ << 💆🏼‍♂ << 💆🏽‍♂ << 💆🏾‍♂ << 💆🏿‍♂"
+                "< 💆‍♀ << 💆🏻‍♀ << 💆🏼‍♀ << 💆🏽‍♀ << 💆🏾‍♀ << 💆🏿‍♀"
                 "<*💇"
-                "<💇‍♂"
-                "<<💇🏻‍♂"
-                "<<💇🏼‍♂"
-                "<<💇🏽‍♂"
-                "<<💇🏾‍♂"
-                "<<💇🏿‍♂"
-                "<💇‍♀"
-                "<<💇🏻‍♀"
-                "<<💇🏼‍♀"
-                "<<💇🏽‍♀"
-                "<<💇🏾‍♀"
-                "<<💇🏿‍♀"
+                "< 💇‍♂ << 💇🏻‍♂ << 💇🏼‍♂ << 💇🏽‍♂ << 💇🏾‍♂ << 💇🏿‍♂"
+                "< 💇‍♀ << 💇🏻‍♀ << 💇🏼‍♀ << 💇🏽‍♀ << 💇🏾‍♀ << 💇🏿‍♀"
                 "<*🚶"
-                "<🚶‍♂"
-                "<<🚶🏻‍♂"
-                "<<🚶🏼‍♂"
-                "<<🚶🏽‍♂"
-                "<<🚶🏾‍♂"
-                "<<🚶🏿‍♂"
-                "<🚶‍♀"
-                "<<🚶🏻‍♀"
-                "<<🚶🏼‍♀"
-                "<<🚶🏽‍♀"
-                "<<🚶🏾‍♀"
-                "<<🚶🏿‍♀"
+                "< 🚶‍♂ << 🚶🏻‍♂ << 🚶🏼‍♂ << 🚶🏽‍♂ << 🚶🏾‍♂ << 🚶🏿‍♂"
+                "< 🚶‍♀ << 🚶🏻‍♀ << 🚶🏼‍♀ << 🚶🏽‍♀ << 🚶🏾‍♀ << 🚶🏿‍♀"
                 "<*🏃"
-                "<🏃‍♂"
-                "<<🏃🏻‍♂"
-                "<<🏃🏼‍♂"
-                "<<🏃🏽‍♂"
-                "<<🏃🏾‍♂"
-                "<<🏃🏿‍♂"
-                "<🏃‍♀"
-                "<<🏃🏻‍♀"
-                "<<🏃🏼‍♀"
-                "<<🏃🏽‍♀"
-                "<<🏃🏾‍♀"
-                "<<🏃🏿‍♀"
+                "< 🏃‍♂ << 🏃🏻‍♂ << 🏃🏼‍♂ << 🏃🏽‍♂ << 🏃🏾‍♂ << 🏃🏿‍♂"
+                "< 🏃‍♀ << 🏃🏻‍♀ << 🏃🏼‍♀ << 🏃🏽‍♀ << 🏃🏾‍♀ << 🏃🏿‍♀"
                 "<*💃🕺👯"
-                "<👯‍♂"
-                "<<👯🏻‍♂"
-                "<<👯🏼‍♂"
-                "<<👯🏽‍♂"
-                "<<👯🏾‍♂"
-                "<<👯🏿‍♂"
-                "<👯‍♀"
-                "<<👯🏻‍♀"
-                "<<👯🏼‍♀"
-                "<<👯🏽‍♀"
-                "<<👯🏾‍♀"
-                "<<👯🏿‍♀"
-                "<*🕴🗣👤👥"
+                "< 👯‍♂"
+                "< 👯‍♀"
+                "<*🧖"
+                "< 🧖‍♀ << 🧖🏻‍♀ << 🧖🏼‍♀ << 🧖🏽‍♀ << 🧖🏾‍♀ << 🧖🏿‍♀"
+                "< 🧖‍♂ << 🧖🏻‍♂ << 🧖🏼‍♂ << 🧖🏽‍♂ << 🧖🏾‍♂ << 🧖🏿‍♂"
+                "<*🧗"
+                "< 🧗‍♀ << 🧗🏻‍♀ << 🧗🏼‍♀ << 🧗🏽‍♀ << 🧗🏾‍♀ << 🧗🏿‍♀"
+                "< 🧗‍♂ << 🧗🏻‍♂ << 🧗🏼‍♂ << 🧗🏽‍♂ << 🧗🏾‍♂ << 🧗🏿‍♂"
+                "<*🧘"
+                "< 🧘‍♀ << 🧘🏻‍♀ << 🧘🏼‍♀ << 🧘🏽‍♀ << 🧘🏾‍♀ << 🧘🏿‍♀"
+                "< 🧘‍♂ << 🧘🏻‍♂ << 🧘🏼‍♂ << 🧘🏽‍♂ << 🧘🏾‍♂ << 🧘🏿‍♂"
+                "<*🛀🛌🕴🗣👤👥"
                 "<*🤺🏇⛷🏂🏌"
-                "<🏌‍♂ = 🏌️‍♂"
-                "<<🏌🏻‍♂"
-                "<<🏌🏼‍♂"
-                "<<🏌🏽‍♂"
-                "<<🏌🏾‍♂"
-                "<<🏌🏿‍♂"
-                "<🏌‍♀ = 🏌️‍♀"
-                "<<🏌🏻‍♀"
-                "<<🏌🏼‍♀"
-                "<<🏌🏽‍♀"
-                "<<🏌🏾‍♀"
-                "<<🏌🏿‍♀"
+                "< 🏌‍♂ = 🏌️‍♂ << 🏌🏻‍♂ << 🏌🏼‍♂ << 🏌🏽‍♂ << 🏌🏾‍♂ << 🏌🏿‍♂"
+                "< 🏌‍♀ = 🏌️‍♀ << 🏌🏻‍♀ << 🏌🏼‍♀ << 🏌🏽‍♀ << 🏌🏾‍♀ << 🏌🏿‍♀"
                 "<*🏄"
-                "<🏄‍♂"
-                "<<🏄🏻‍♂"
-                "<<🏄🏼‍♂"
-                "<<🏄🏽‍♂"
-                "<<🏄🏾‍♂"
-                "<<🏄🏿‍♂"
-                "<🏄‍♀"
-                "<<🏄🏻‍♀"
-                "<<🏄🏼‍♀"
-                "<<🏄🏽‍♀"
-                "<<🏄🏾‍♀"
-                "<<🏄🏿‍♀"
+                "< 🏄‍♂ << 🏄🏻‍♂ << 🏄🏼‍♂ << 🏄🏽‍♂ << 🏄🏾‍♂ << 🏄🏿‍♂"
+                "< 🏄‍♀ << 🏄🏻‍♀ << 🏄🏼‍♀ << 🏄🏽‍♀ << 🏄🏾‍♀ << 🏄🏿‍♀"
                 "<*🚣"
-                "<🚣‍♂"
-                "<<🚣🏻‍♂"
-                "<<🚣🏼‍♂"
-                "<<🚣🏽‍♂"
-                "<<🚣🏾‍♂"
-                "<<🚣🏿‍♂"
-                "<🚣‍♀"
-                "<<🚣🏻‍♀"
-                "<<🚣🏼‍♀"
-                "<<🚣🏽‍♀"
-                "<<🚣🏾‍♀"
-                "<<🚣🏿‍♀"
+                "< 🚣‍♂ << 🚣🏻‍♂ << 🚣🏼‍♂ << 🚣🏽‍♂ << 🚣🏾‍♂ << 🚣🏿‍♂"
+                "< 🚣‍♀ << 🚣🏻‍♀ << 🚣🏼‍♀ << 🚣🏽‍♀ << 🚣🏾‍♀ << 🚣🏿‍♀"
                 "<*🏊"
-                "<🏊‍♂"
-                "<<🏊🏻‍♂"
-                "<<🏊🏼‍♂"
-                "<<🏊🏽‍♂"
-                "<<🏊🏾‍♂"
-                "<<🏊🏿‍♂"
-                "<🏊‍♀"
-                "<<🏊🏻‍♀"
-                "<<🏊🏼‍♀"
-                "<<🏊🏽‍♀"
-                "<<🏊🏾‍♀"
-                "<<🏊🏿‍♀"
+                "< 🏊‍♂ << 🏊🏻‍♂ << 🏊🏼‍♂ << 🏊🏽‍♂ << 🏊🏾‍♂ << 🏊🏿‍♂"
+                "< 🏊‍♀ << 🏊🏻‍♀ << 🏊🏼‍♀ << 🏊🏽‍♀ << 🏊🏾‍♀ << 🏊🏿‍♀"
                 "<*⛹"
-                "<⛹‍♂ = ⛹️‍♂"
-                "<<⛹🏻‍♂"
-                "<<⛹🏼‍♂"
-                "<<⛹🏽‍♂"
-                "<<⛹🏾‍♂"
-                "<<⛹🏿‍♂"
-                "<⛹‍♀ = ⛹️‍♀"
-                "<<⛹🏻‍♀"
-                "<<⛹🏼‍♀"
-                "<<⛹🏽‍♀"
-                "<<⛹🏾‍♀"
-                "<<⛹🏿‍♀"
+                "< ⛹‍♂ = ⛹️‍♂ << ⛹🏻‍♂ << ⛹🏼‍♂ << ⛹🏽‍♂ << ⛹🏾‍♂ << ⛹🏿‍♂"
+                "< ⛹‍♀ = ⛹️‍♀ << ⛹🏻‍♀ << ⛹🏼‍♀ << ⛹🏽‍♀ << ⛹🏾‍♀ << ⛹🏿‍♀"
                 "<*🏋"
-                "<🏋‍♂ = 🏋️‍♂"
-                "<<🏋🏻‍♂"
-                "<<🏋🏼‍♂"
-                "<<🏋🏽‍♂"
-                "<<🏋🏾‍♂"
-                "<<🏋🏿‍♂"
-                "<🏋‍♀ = 🏋️‍♀"
-                "<<🏋🏻‍♀"
-                "<<🏋🏼‍♀"
-                "<<🏋🏽‍♀"
-                "<<🏋🏾‍♀"
-                "<<🏋🏿‍♀"
+                "< 🏋‍♂ = 🏋️‍♂ << 🏋🏻‍♂ << 🏋🏼‍♂ << 🏋🏽‍♂ << 🏋🏾‍♂ << 🏋🏿‍♂"
+                "< 🏋‍♀ = 🏋️‍♀ << 🏋🏻‍♀ << 🏋🏼‍♀ << 🏋🏽‍♀ << 🏋🏾‍♀ << 🏋🏿‍♀"
                 "<*🚴"
-                "<🚴‍♂"
-                "<<🚴🏻‍♂"
-                "<<🚴🏼‍♂"
-                "<<🚴🏽‍♂"
-                "<<🚴🏾‍♂"
-                "<<🚴🏿‍♂"
-                "<🚴‍♀"
-                "<<🚴🏻‍♀"
-                "<<🚴🏼‍♀"
-                "<<🚴🏽‍♀"
-                "<<🚴🏾‍♀"
-                "<<🚴🏿‍♀"
+                "< 🚴‍♂ << 🚴🏻‍♂ << 🚴🏼‍♂ << 🚴🏽‍♂ << 🚴🏾‍♂ << 🚴🏿‍♂"
+                "< 🚴‍♀ << 🚴🏻‍♀ << 🚴🏼‍♀ << 🚴🏽‍♀ << 🚴🏾‍♀ << 🚴🏿‍♀"
                 "<*🚵"
-                "<🚵‍♂"
-                "<<🚵🏻‍♂"
-                "<<🚵🏼‍♂"
-                "<<🚵🏽‍♂"
-                "<<🚵🏾‍♂"
-                "<<🚵🏿‍♂"
-                "<🚵‍♀"
-                "<<🚵🏻‍♀"
-                "<<🚵🏼‍♀"
-                "<<🚵🏽‍♀"
-                "<<🚵🏾‍♀"
-                "<<🚵🏿‍♀"
+                "< 🚵‍♂ << 🚵🏻‍♂ << 🚵🏼‍♂ << 🚵🏽‍♂ << 🚵🏾‍♂ << 🚵🏿‍♂"
+                "< 🚵‍♀ << 🚵🏻‍♀ << 🚵🏼‍♀ << 🚵🏽‍♀ << 🚵🏾‍♀ << 🚵🏿‍♀"
                 "<*🏎🏍🤸"
-                "<🤸‍♂"
-                "<<🤸🏻‍♂"
-                "<<🤸🏼‍♂"
-                "<<🤸🏽‍♂"
-                "<<🤸🏾‍♂"
-                "<<🤸🏿‍♂"
-                "<🤸‍♀"
-                "<<🤸🏻‍♀"
-                "<<🤸🏼‍♀"
-                "<<🤸🏽‍♀"
-                "<<🤸🏾‍♀"
-                "<<🤸🏿‍♀"
+                "< 🤸‍♂ << 🤸🏻‍♂ << 🤸🏼‍♂ << 🤸🏽‍♂ << 🤸🏾‍♂ << 🤸🏿‍♂"
+                "< 🤸‍♀ << 🤸🏻‍♀ << 🤸🏼‍♀ << 🤸🏽‍♀ << 🤸🏾‍♀ << 🤸🏿‍♀"
                 "<*🤼"
-                "<🤼‍♂"
-                "<<🤼🏻‍♂"
-                "<<🤼🏼‍♂"
-                "<<🤼🏽‍♂"
-                "<<🤼🏾‍♂"
-                "<<🤼🏿‍♂"
-                "<🤼‍♀"
-                "<<🤼🏻‍♀"
-                "<<🤼🏼‍♀"
-                "<<🤼🏽‍♀"
-                "<<🤼🏾‍♀"
-                "<<🤼🏿‍♀"
+                "< 🤼‍♂"
+                "< 🤼‍♀"
                 "<*🤽"
-                "<🤽‍♂"
-                "<<🤽🏻‍♂"
-                "<<🤽🏼‍♂"
-                "<<🤽🏽‍♂"
-                "<<🤽🏾‍♂"
-                "<<🤽🏿‍♂"
-                "<🤽‍♀"
-                "<<🤽🏻‍♀"
-                "<<🤽🏼‍♀"
-                "<<🤽🏽‍♀"
-                "<<🤽🏾‍♀"
-                "<<🤽🏿‍♀"
+                "< 🤽‍♂ << 🤽🏻‍♂ << 🤽🏼‍♂ << 🤽🏽‍♂ << 🤽🏾‍♂ << 🤽🏿‍♂"
+                "< 🤽‍♀ << 🤽🏻‍♀ << 🤽🏼‍♀ << 🤽🏽‍♀ << 🤽🏾‍♀ << 🤽🏿‍♀"
                 "<*🤾"
-                "<🤾‍♂"
-                "<<🤾🏻‍♂"
-                "<<🤾🏼‍♂"
-                "<<🤾🏽‍♂"
-                "<<🤾🏾‍♂"
-                "<<🤾🏿‍♂"
-                "<🤾‍♀"
-                "<<🤾🏻‍♀"
-                "<<🤾🏼‍♀"
-                "<<🤾🏽‍♀"
-                "<<🤾🏾‍♀"
-                "<<🤾🏿‍♀"
+                "< 🤾‍♂ << 🤾🏻‍♂ << 🤾🏼‍♂ << 🤾🏽‍♂ << 🤾🏾‍♂ << 🤾🏿‍♂"
+                "< 🤾‍♀ << 🤾🏻‍♀ << 🤾🏼‍♀ << 🤾🏽‍♀ << 🤾🏾‍♀ << 🤾🏿‍♀"
                 "<*🤹"
-                "<🤹‍♂"
-                "<<🤹🏻‍♂"
-                "<<🤹🏼‍♂"
-                "<<🤹🏽‍♂"
-                "<<🤹🏾‍♂"
-                "<<🤹🏿‍♂"
-                "<🤹‍♀"
-                "<<🤹🏻‍♀"
-                "<<🤹🏼‍♀"
-                "<<🤹🏽‍♀"
-                "<<🤹🏾‍♀"
-                "<<🤹🏿‍♀"
+                "< 🤹‍♂ << 🤹🏻‍♂ << 🤹🏼‍♂ << 🤹🏽‍♂ << 🤹🏾‍♂ << 🤹🏿‍♂"
+                "< 🤹‍♀ << 🤹🏻‍♀ << 🤹🏼‍♀ << 🤹🏽‍♀ << 🤹🏾‍♀ << 🤹🏿‍♀"
                 "<*👫👬👭💏"
-                "<👩‍❤‍💋‍👨 = 👩‍❤️‍💋‍👨"
-                "<👨‍❤‍💋‍👨 = 👨‍❤️‍💋‍👨"
-                "<👩‍❤‍💋‍👩 = 👩‍❤️‍💋‍👩"
+                "< 👩‍❤‍💋‍👨 = 👩‍❤️‍💋‍👨"
+                "< 👨‍❤‍💋‍👨 = 👨‍❤️‍💋‍👨"
+                "< 👩‍❤‍💋‍👩 = 👩‍❤️‍💋‍👩"
                 "<*💑"
-                "<👩‍❤‍👨 = 👩‍❤️‍👨"
-                "<👨‍❤‍👨 = 👨‍❤️‍👨"
-                "<👩‍❤‍👩 = 👩‍❤️‍👩"
+                "< 👩‍❤‍👨 = 👩‍❤️‍👨"
+                "< 👨‍❤‍👨 = 👨‍❤️‍👨"
+                "< 👩‍❤‍👩 = 👩‍❤️‍👩"
                 "<*👪"
-                "<👨‍👩‍👦"
-                "<👨‍👩‍👧"
-                "<👨‍👩‍👧‍👦"
-                "<👨‍👩‍👦‍👦"
-                "<👨‍👩‍👧‍👧"
-                "<👨‍👨‍👦"
-                "<👨‍👨‍👧"
-                "<👨‍👨‍👧‍👦"
-                "<👨‍👨‍👦‍👦"
-                "<👨‍👨‍👧‍👧"
-                "<👩‍👩‍👦"
-                "<👩‍👩‍👧"
-                "<👩‍👩‍👧‍👦"
-                "<👩‍👩‍👦‍👦"
-                "<👩‍👩‍👧‍👧"
-                "<👨‍👦"
-                "<👨‍👦‍👦"
-                "<👨‍👧"
-                "<👨‍👧‍👦"
-                "<👨‍👧‍👧"
-                "<👩‍👦"
-                "<👩‍👦‍👦"
-                "<👩‍👧"
-                "<👩‍👧‍👦"
-                "<👩‍👧‍👧"
-                "<*💪🤳👈👉☝👆🖕👇✌🤞🖖🤘🤙🖐✋👌👍👎✊👊🤛🤜🤚👋👏✍👐🙌🙏🤝💅👂👃👣👀👁"
-                "<👁‍🗨 = 👁️‍🗨"
-                "<*👅👄"
-                "<*💋💘❤💓💔💕💖💗💙💚💛💜🖤💝💞💟❣💌💤💢💣💥💦💨💫💬🗨🗯💭🕳"
-                "<*👓🕶👔👕👖👗👘👙👚👛👜👝🛍🎒👞👟👠👡👢👑👒🎩🎓⛑📿💄💍💎"
-                "<*🐵🐒🦍🐶🐕🐩🐺🦊🐱🐈🦁🐯🐅🐆🐴🐎🦌🦄🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🐘🦏🐭🐁🐀🐹🐰🐇🐿🦇🐻🐨🐼🐾"
+                "< 👨‍👩‍👦"
+                "< 👨‍👩‍👧"
+                "< 👨‍👩‍👧‍👦"
+                "< 👨‍👩‍👦‍👦"
+                "< 👨‍👩‍👧‍👧"
+                "< 👨‍👨‍👦"
+                "< 👨‍👨‍👧"
+                "< 👨‍👨‍👧‍👦"
+                "< 👨‍👨‍👦‍👦"
+                "< 👨‍👨‍👧‍👧"
+                "< 👩‍👩‍👦"
+                "< 👩‍👩‍👧"
+                "< 👩‍👩‍👧‍👦"
+                "< 👩‍👩‍👦‍👦"
+                "< 👩‍👩‍👧‍👧"
+                "< 👨‍👦"
+                "< 👨‍👦‍👦"
+                "< 👨‍👧"
+                "< 👨‍👧‍👦"
+                "< 👨‍👧‍👧"
+                "< 👩‍👦"
+                "< 👩‍👦‍👦"
+                "< 👩‍👧"
+                "< 👩‍👧‍👦"
+                "< 👩‍👧‍👧"
+                "<*🤳💪👈👉☝👆🖕👇✌🤞🖖🤘🤙🖐✋👌👍👎✊👊🤛🤜🤚👋🤟✍👏👐🙌🤲🙏🤝💅👂👃👣👀👁"
+                "< 👁‍🗨 = 👁️‍🗨"
+                "<*🧠👅👄"
+                "<*💋💘❤💓💔💕💖💗💙💚💛🧡💜🖤💝💞💟❣💌💤💢💣💥💦💨💫💬🗨🗯💭🕳"
+                "<*👓🕶👔👕👖🧣🧤🧥🧦👗👘👙👚👛👜👝🛍🎒👞👟👠👡👢👑👒🎩🎓🧢⛑📿💄💍💎"
+                "<*🐵🐒🦍🐶🐕🐩🐺🦊🐱🐈🦁🐯🐅🐆🐴🐎🦄🦓🦌🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦒🐘🦏🐭🐁🐀🐹🐰🐇🐿🦔🦇🐻🐨🐼🐾"
                 "<*🦃🐔🐓🐣🐤🐥🐦🐧🕊🦅🦆🦉"
                 "<*🐸"
-                "<*🐊🐢🦎🐍🐲🐉"
+                "<*🐊🐢🦎🐍🐲🐉🦕🦖"
                 "<*🐳🐋🐬🐟🐠🐡🦈🐙🐚🦀🦐🦑"
-                "<*🦋🐌🐛🐜🐝🐞🕷🕸🦂"
+                "<*🐌🦋🐛🐜🐝🐞🦗🕷🕸🦂"
                 "<*💐🌸💮🏵🌹🥀🌺🌻🌼🌷"
                 "<*🌱🌲🌳🌴🌵🌾🌿☘🍀🍁🍂🍃"
-                "<*🍇🍈🍉🍊🍋🍌🍍🍎🍏🍐🍑🍒🍓🥝🍅"
-                "<*🥑🍆🥔🥕🌽🌶🥒🍄🥜🌰"
-                "<*🍞🥐🥖🥞🧀🍖🍗🥓🍔🍟🍕🌭🌮🌯🥙🥚🍳🥘🍲🥗🍿"
-                "<*🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🍡"
-                "<*🍦🍧🍨🍩🍪🎂🍰🍫🍬🍭🍮🍯"
-                "<*🍼🥛☕🍵🍶🍾🍷🍸🍹🍺🍻🥂🥃"
-                "<*🍽🍴🥄🔪🏺"
+                "<*🍇🍈🍉🍊🍋🍌🍍🍎🍏🍐🍑🍒🍓🥝🍅🥥"
+                "<*🥑🍆🥔🥕🌽🌶🥒🥦🍄🥜🌰"
+                "<*🍞🥐🥖🥨🥞🧀🍖🍗🥩🥓🍔🍟🍕🌭🥪🌮🌯🥙🥚🍳🥘🍲🥣🥗🍿🥫"
+                "<*🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🍡🥟🥠🥡"
+                "<*🍦🍧🍨🍩🍪🎂🍰🥧🍫🍬🍭🍮🍯"
+                "<*🍼🥛☕🍵🍶🍾🍷🍸🍹🍺🍻🥂🥃🥤"
+                "<*🥢🍽🍴🥄🔪🏺"
                 "<*🌍🌎🌏🌐🗺🗾"
                 "<*🏔⛰🌋🗻🏕🏖🏜🏝🏞"
                 "<*🏟🏛🏗🏘🏙🏚🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽"
@@ -705,13 +260,13 @@
                 "<*⛲⛺🌁🌃🌄🌅🌆🌇🌉♨🌌🎠🎡🎢💈🎪🎭🖼🎨🎰"
                 "<*🚂🚃🚄🚅🚆🚇🚈🚉🚊🚝🚞🚋🚌🚍🚎🚐🚑🚒🚓🚔🚕🚖🚗🚘🚙🚚🚛🚜🚲🛴🛵🚏🛣🛤⛽🚨🚥🚦🚧🛑"
                 "<*⚓⛵🛶🚤🛳⛴🛥🚢"
-                "<*✈🛩🛫🛬💺🚁🚟🚠🚡🚀🛰"
-                "<*🛎🚪🛌🛏🛋🚽🚿🛀🛁"
+                "<*✈🛩🛫🛬💺🚁🚟🚠🚡🛰🚀🛸"
+                "<*🛎🚪🛏🛋🚽🚿🛁"
                 "<*⌛⏳⌚⏰⏱⏲🕰🕛🕧🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕡🕖🕢🕗🕣🕘🕤🕙🕥🕚🕦"
                 "<*🌑🌒🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜🌡☀🌝🌞⭐🌟🌠☁⛅⛈🌤🌥🌦🌧🌨🌩🌪🌫🌬🌀🌈🌂☂☔⛱⚡❄☃⛄☄🔥💧🌊"
                 "<*🎃🎄🎆🎇✨🎈🎉🎊🎋🎍🎎🎏🎐🎑🎀🎁🎗🎟🎫"
                 "<*🎖🏆🏅🥇🥈🥉"
-                "<*⚽⚾🏀🏐🏈🏉🎾🎱🎳🏏🏑🏒🏓🏸🥊🥋🥅🎯⛳⛸🎣🎽🎿"
+                "<*⚽⚾🏀🏐🏈🏉🎾🎱🎳🏏🏑🏒🏓🏸🥊🥋🥅🎯⛳⛸🎣🎽🎿🛷🥌"
                 "<*🎮🕹🎲♠♥♦♣🃏🀄🎴"
                 "<*🔇🔈🔉🔊📢📣📯🔔🔕"
                 "<*🎼🎵🎶🎙🎚🎛🎤🎧📻"
@@ -734,27 +289,30 @@
                 "<*🛐⚛🕉✡☸☯✝☦☪☮🕎🔯"
                 "<*♈♉♊♋♌♍♎♏♐♑♒♓⛎"
                 "<*🔀🔁🔂▶⏩⏭⏯◀⏪⏮🔼⏫🔽⏬⏸⏹⏺⏏🎦🔅🔆📶📳📴"
-                "<*♻📛⚜🔰🔱⭕✅☑✔✖❌❎➕♀♂⚕➖➗➰➿〽✳✴❇‼⁉❓❔❕❗〰©®™"
-                "<'#⃣' = '#️⃣'"
-                "<'*⃣' = '*️⃣'"
-                "<0⃣ = 0️⃣"
-                "<1⃣ = 1️⃣"
-                "<2⃣ = 2️⃣"
-                "<3⃣ = 3️⃣"
-                "<4⃣ = 4️⃣"
-                "<5⃣ = 5️⃣"
-                "<6⃣ = 6️⃣"
-                "<7⃣ = 7️⃣"
-                "<8⃣ = 8️⃣"
-                "<9⃣ = 9️⃣"
+                "<*♀♂⚕♻⚜🔱📛🔰⭕✅☑✔✖❌❎➕➖➗➰➿〽✳✴❇‼⁉❓❔❕❗〰©®™"
+                "< '#⃣' = '#️⃣'"
+                "< '*⃣' = '*️⃣'"
+                "< 0⃣ = 0️⃣"
+                "< 1⃣ = 1️⃣"
+                "< 2⃣ = 2️⃣"
+                "< 3⃣ = 3️⃣"
+                "< 4⃣ = 4️⃣"
+                "< 5⃣ = 5️⃣"
+                "< 6⃣ = 6️⃣"
+                "< 7⃣ = 7️⃣"
+                "< 8⃣ = 8️⃣"
+                "< 9⃣ = 9️⃣"
                 "<*🔟"
                 "<*💯🔠🔡🔢🔣🔤🅰🆎🅱🆑🆒🆓ℹ🆔Ⓜ🆕🆖🅾🆗🅿🆘🆙🆚🈁🈂🈷🈶🈯🉐🈹🈚🈲🉑🈸🈴🈳㊗㊙🈺🈵"
                 "<*▪▫◻◼◽◾⬛⬜🔶🔷🔸🔹🔺🔻💠🔘🔲🔳⚪⚫🔴🔵"
                 "<*🏁🚩🎌🏴🏳"
-                "<🏳‍🌈 = 🏳️‍🌈"
+                "< 🏳‍🌈 = 🏳️‍🌈"
                 "<*🇦🇧🇨🇩🇪🇫🇬🇭🇮🇯🇰🇱🇲🇳🇴🇵🇶🇷🇸🇹🇺🇻🇼🇽🇾🇿"
+                "< 🏴󠁧󠁢󠁥󠁮󠁧󠁿"
+                "< 🏴󠁧󠁢󠁳󠁣󠁴󠁿"
+                "< 🏴󠁧󠁢󠁷󠁬󠁳󠁿"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         eor{
             Sequence{
@@ -1294,7 +852,7 @@
                 "&ք"
                 "<և"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         private-unihan{
             Sequence{
@@ -1537,7 +1095,7 @@
                 "&龟=\uFDD0龟"
                 "&龠=\uFDD0龠"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         search{
             Sequence{
@@ -1654,11 +1212,11 @@
                 "&ᅮᅵ"
                 "=ᅱ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{""}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
     depends:process(dependency){"ucadata.icu"}
diff --git a/source/data/coll/ru.txt b/source/data/coll/ru.txt
index 7646b8b..2ab40ad 100644
--- a/source/data/coll/ru.txt
+++ b/source/data/coll/ru.txt
@@ -5,7 +5,7 @@
     collations{
         standard{
             Sequence{"[reorder Cyrl]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/se.txt b/source/data/coll/se.txt
index 28a1525..60fef5e 100644
--- a/source/data/coll/se.txt
+++ b/source/data/coll/se.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import se-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -53,7 +53,7 @@
                 "<<<Ô<<ǫ"
                 "<<<Ǫ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/si.txt b/source/data/coll/si.txt
index e02c766..6469462 100644
--- a/source/data/coll/si.txt
+++ b/source/data/coll/si.txt
@@ -10,7 +10,7 @@
                 "&ඖ<ං<ඃ"
                 "&ජ්ඤ<<ඥ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -19,7 +19,7 @@
                 "&ඖ<ං<ඃ"
                 "&ඥ<ඤ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sk.txt b/source/data/coll/sk.txt
index 8a2e070..1194247 100644
--- a/source/data/coll/sk.txt
+++ b/source/data/coll/sk.txt
@@ -21,7 +21,7 @@
                 "&Y<ý<<<Ý"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -33,7 +33,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sl.txt b/source/data/coll/sl.txt
index a2cc1ec..05f7dab 100644
--- a/source/data/coll/sl.txt
+++ b/source/data/coll/sl.txt
@@ -10,7 +10,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/smn.txt b/source/data/coll/smn.txt
index 53e917c..c62f0d6 100644
--- a/source/data/coll/smn.txt
+++ b/source/data/coll/smn.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import smn-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -19,7 +19,7 @@
                 "&S<š<<<Š"
                 "&Z<ž<<<Ž<æ<<<Æ<ø<<<Ø<å<<<Å<ã<<<Ã<ä<<<Ä<á<<<Á<ö<<<Ö"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sq.txt b/source/data/coll/sq.txt
index 789449f..7345fd5 100644
--- a/source/data/coll/sq.txt
+++ b/source/data/coll/sq.txt
@@ -17,7 +17,7 @@
                 "&[before 1]Y<xh<<<Xh<<<XH"
                 "&[before 1]Ʒ<zh<<<Zh<<<ZH"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sr.txt b/source/data/coll/sr.txt
index 0c9abeb..98413d7 100644
--- a/source/data/coll/sr.txt
+++ b/source/data/coll/sr.txt
@@ -8,7 +8,7 @@
                 "[reorder Cyrl]"
                 "[suppressContractions [Ии]]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sr_Latn.txt b/source/data/coll/sr_Latn.txt
index 10bfe23..179d060 100644
--- a/source/data/coll/sr_Latn.txt
+++ b/source/data/coll/sr_Latn.txt
@@ -5,11 +5,11 @@
     collations{
         search{
             Sequence{"[import hr-u-co-search]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{"[import hr]"}
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/sv.txt b/source/data/coll/sv.txt
index 9a19c34..1ca653c 100644
--- a/source/data/coll/sv.txt
+++ b/source/data/coll/sv.txt
@@ -12,14 +12,14 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         search{
             Sequence{
                 "[import und-u-co-search]"
                 "[import sv-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -30,7 +30,7 @@
                 "&Y<<ü<<<Ü<<ű<<<Ű"
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ta.txt b/source/data/coll/ta.txt
index 0774cfd..31803db 100644
--- a/source/data/coll/ta.txt
+++ b/source/data/coll/ta.txt
@@ -34,7 +34,7 @@
                 "&[before 1]ஹ<ஹ்"
                 "&[before 1]க்ஷ<க்ஷ்"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/te.txt b/source/data/coll/te.txt
index c2b83ba..9927d2d 100644
--- a/source/data/coll/te.txt
+++ b/source/data/coll/te.txt
@@ -9,7 +9,7 @@
                 "[reorder Telu Deva Beng Guru Gujr Orya Taml Knda Mlym Sinh]"
                 "&ఔ<ఁ<ం<ః"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/th.txt b/source/data/coll/th.txt
index f589919..c7b5dc9 100644
--- a/source/data/coll/th.txt
+++ b/source/data/coll/th.txt
@@ -17,7 +17,7 @@
                 "&ๅํ<<<ํๅ"
                 "&ไ<ฺ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/to.txt b/source/data/coll/to.txt
index 6bf06f9..85fbf20 100644
--- a/source/data/coll/to.txt
+++ b/source/data/coll/to.txt
@@ -13,7 +13,7 @@
                 "&o<<ó<<<Ó<<ō<<<Ō"
                 "&u<<ú<<<Ú<<ū<<<Ū"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/tr.txt b/source/data/coll/tr.txt
index b43ffaa..7f60536 100644
--- a/source/data/coll/tr.txt
+++ b/source/data/coll/tr.txt
@@ -8,7 +8,7 @@
                 "[import und-u-co-search]"
                 "[import tr-u-co-standard]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -20,7 +20,7 @@
                 "&S<ş<<<Ş"
                 "&U<ü<<<Ü"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ug.txt b/source/data/coll/ug.txt
index 18efddf..8ef5479 100644
--- a/source/data/coll/ug.txt
+++ b/source/data/coll/ug.txt
@@ -10,7 +10,7 @@
                 "&ك<گ<ڭ<ل"
                 "&ھ<و<ۇ<ۆ<ۈ<ۋ<ې<ى<ي"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/uk.txt b/source/data/coll/uk.txt
index b9c9375..c28e2d6 100644
--- a/source/data/coll/uk.txt
+++ b/source/data/coll/uk.txt
@@ -9,7 +9,7 @@
                 "&Г<ґ<<<Ґ"
                 "&ꙇ<ї<<<\uA676<<<Ї"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/ur.txt b/source/data/coll/ur.txt
index fee2777..10ddf44 100644
--- a/source/data/coll/ur.txt
+++ b/source/data/coll/ur.txt
@@ -12,7 +12,7 @@
                 "<<\u0651<<\u0658<<\u0653"
                 "&[last tertiary ignorable]<<<\u0610<<<\u0611<<<\u0613<<<\u0612<<<\u0614"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/uz.txt b/source/data/coll/uz.txt
index 648ab89..790408b 100644
--- a/source/data/coll/uz.txt
+++ b/source/data/coll/uz.txt
@@ -10,7 +10,7 @@
                 "<sh<<<Sh<<<SH"
                 "<ch<<<Ch<<<CH"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/vi.txt b/source/data/coll/vi.txt
index d6a645b..2ed2e46 100644
--- a/source/data/coll/vi.txt
+++ b/source/data/coll/vi.txt
@@ -13,7 +13,7 @@
                 "&o<ô<<<Ô<ơ<<<Ơ"
                 "&u<ư<<<Ư"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         traditional{
             Sequence{
@@ -32,7 +32,7 @@
                 "&T<th<<<Th<<<TH<tr<<<Tr<<<TR"
                 "&u<ư<<<Ư"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/yi.txt b/source/data/coll/yi.txt
index 79ab44c..503ddb9 100644
--- a/source/data/coll/yi.txt
+++ b/source/data/coll/yi.txt
@@ -11,7 +11,7 @@
                 "‎&״"
                 "<<'\u0022'"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         standard{
             Sequence{
@@ -28,7 +28,7 @@
                 "&ש<שׂ"
                 "&[before 1]ת<תּ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/yo.txt b/source/data/coll/yo.txt
index d68e51a..92f4b1b 100644
--- a/source/data/coll/yo.txt
+++ b/source/data/coll/yo.txt
@@ -11,7 +11,7 @@
                 "&O<ọ<<<Ọ"
                 "&S<ṣ<<<Ṣ"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/coll/zh.txt b/source/data/coll/zh.txt
index b3fa6bd..a1c1939 100644
--- a/source/data/coll/zh.txt
+++ b/source/data/coll/zh.txt
@@ -9,7 +9,7 @@
                 "[reorder Latn Hani Bopo]"
                 "&[last regular]<*兙兛兞兝兡兣嗧瓩糎一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲乂乜凵匚厂万丌乇亍囗屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛毻毼毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         default{"pinyin"}
         gb2312han{
@@ -18,7 +18,7 @@
                 "[reorder Latn Hani]"
                 "&[last regular]<*啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         pinyin{
             Sequence{
@@ -1888,7 +1888,7 @@
                 "&弞<沈阳/阳"
                 "&銺<藏文/文"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         private-pinyin{
             Sequence{
@@ -1902,7 +1902,7 @@
                 "&[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù"
                 "&U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         stroke{
             Sequence{
@@ -2604,7 +2604,7 @@
                 "&龟<<<⻳"
                 "&龠<<<⿕"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         unihan{
             Sequence{
@@ -2612,7 +2612,7 @@
                 "[import zh-u-co-private-pinyin]"
                 "[reorder Hani Bopo]"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
         zhuyin{
             Sequence{
@@ -4638,7 +4638,7 @@
                 "&龟<<<⻳"
                 "&龠<<<⿕"
             }
-            Version{"30.0.2"}
+            Version{"31.0.1"}
         }
     }
 }
diff --git a/source/data/curr/af.txt b/source/data/curr/af.txt
index bbeeb3c..f2126cf 100644
--- a/source/data/curr/af.txt
+++ b/source/data/curr/af.txt
@@ -452,7 +452,7 @@
         }
         PEN{
             "PEN",
-            "Peruaanse nuwe sol",
+            "Peruaanse sol",
         }
         PGK{
             "PGK",
@@ -1197,8 +1197,8 @@
             other{"Panamese balboa"}
         }
         PEN{
-            one{"Peruaanse nuwe sol"}
-            other{"Peruaanse nuwe sol"}
+            one{"Peruaanse sol"}
+            other{"Peruaanse sol"}
         }
         PGK{
             one{"Papoea-Nieu-Guinese kina"}
@@ -1405,5 +1405,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/af_NA.txt b/source/data/curr/af_NA.txt
index c7ecf5a..699e036 100644
--- a/source/data/curr/af_NA.txt
+++ b/source/data/curr/af_NA.txt
@@ -7,5 +7,5 @@
             "Namibiese dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/agq.txt b/source/data/curr/agq.txt
index cc133ad..526ac74 100644
--- a/source/data/curr/agq.txt
+++ b/source/data/curr/agq.txt
@@ -223,5 +223,5 @@
             "Dɔlà è Zìmbagbɛ̀",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ak.txt b/source/data/curr/ak.txt
index 5262254..e559cde 100644
--- a/source/data/curr/ak.txt
+++ b/source/data/curr/ak.txt
@@ -223,5 +223,5 @@
             "Zimbabwe Dɔla",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/am.txt b/source/data/curr/am.txt
index 52ae6e3..b530ede 100644
--- a/source/data/curr/am.txt
+++ b/source/data/curr/am.txt
@@ -440,7 +440,7 @@
         }
         PEN{
             "PEN",
-            "የፔሩቪያ ኑኤቮ ሶል",
+            "የፔሩቪያ ሶል",
         }
         PGK{
             "PGK",
@@ -1185,8 +1185,8 @@
             other{"ፓናማኒአን ባልቦአ"}
         }
         PEN{
-            one{"የፔሩቪያ ኑኤቮ ሶል"}
-            other{"የፔሩቪያ ኑኤቮ ሶል"}
+            one{"የፔሩቪያ ሶል"}
+            other{"የፔሩቪያ ሶል"}
         }
         PGK{
             one{"የፓፕዋ ኒው ጊኒ ኪና"}
@@ -1397,5 +1397,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ar.txt b/source/data/curr/ar.txt
index 7b8bb75..2eb7d27 100644
--- a/source/data/curr/ar.txt
+++ b/source/data/curr/ar.txt
@@ -648,7 +648,7 @@
         }
         PEN{
             "PEN",
-            "سول جديد البيرو",
+            "سول البيرو",
         }
         PGK{
             "PGK",
@@ -1981,12 +1981,12 @@
             zero{"بالبوا بنمي"}
         }
         PEN{
-            few{"سول جديد البيرو"}
-            many{"سول جديد البيرو"}
-            one{"سول جديد البيرو"}
-            other{"سول جديد البيرو"}
-            two{"سول جديد البيرو"}
-            zero{"سول جديد البيرو"}
+            few{"سول البيرو"}
+            many{"سول البيرو"}
+            one{"سول البيرو"}
+            other{"سول البيرو"}
+            two{"سول البيرو"}
+            zero{"سول البيرو"}
         }
         PGK{
             few{"كينا بابوا غينيا الجديدة"}
@@ -2405,5 +2405,5 @@
         two{"{0} {1}"}
         zero{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
 }
diff --git a/source/data/curr/ar_AE.txt b/source/data/curr/ar_AE.txt
index c6fe4c2..3bfec55 100644
--- a/source/data/curr/ar_AE.txt
+++ b/source/data/curr/ar_AE.txt
@@ -4,5 +4,5 @@
     Currencies%narrow{
         BND{"$"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ar_DJ.txt b/source/data/curr/ar_DJ.txt
index 8f1eb35..bfc38d3 100644
--- a/source/data/curr/ar_DJ.txt
+++ b/source/data/curr/ar_DJ.txt
@@ -7,5 +7,5 @@
             "فرنك جيبوتي",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ar_ER.txt b/source/data/curr/ar_ER.txt
index 6fca1f3..ebc2697 100644
--- a/source/data/curr/ar_ER.txt
+++ b/source/data/curr/ar_ER.txt
@@ -7,5 +7,5 @@
             "ناكفا أريتري",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ar_LB.txt b/source/data/curr/ar_LB.txt
index f564005..62d4888 100644
--- a/source/data/curr/ar_LB.txt
+++ b/source/data/curr/ar_LB.txt
@@ -7,5 +7,5 @@
             "جنيه سوداني",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ar_SA.txt b/source/data/curr/ar_SA.txt
new file mode 100644
index 0000000..d65944b
--- /dev/null
+++ b/source/data/curr/ar_SA.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+/**
+ * generated alias target
+ */
+ar_SA{
+    ___{""}
+}
diff --git a/source/data/curr/ar_SO.txt b/source/data/curr/ar_SO.txt
index 53fae79..ee6f363 100644
--- a/source/data/curr/ar_SO.txt
+++ b/source/data/curr/ar_SO.txt
@@ -7,5 +7,5 @@
             "شلن صومالي",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ar_SS.txt b/source/data/curr/ar_SS.txt
index f5b6dc8..5c5350e 100644
--- a/source/data/curr/ar_SS.txt
+++ b/source/data/curr/ar_SS.txt
@@ -11,5 +11,5 @@
             "جنيه جنوب السودان",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ars.txt b/source/data/curr/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/curr/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/curr/as.txt b/source/data/curr/as.txt
index 08c62a6..6a7b740 100644
--- a/source/data/curr/as.txt
+++ b/source/data/curr/as.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 as{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/asa.txt b/source/data/curr/asa.txt
index ff7753d..0c4291f 100644
--- a/source/data/curr/asa.txt
+++ b/source/data/curr/asa.txt
@@ -227,5 +227,5 @@
             "dola ya Dhimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ast.txt b/source/data/curr/ast.txt
index 385807b..28fcb8a 100644
--- a/source/data/curr/ast.txt
+++ b/source/data/curr/ast.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "sol nuevu peruanu",
+            "Sol peruanu",
         }
         PES{
             "PES",
@@ -2076,8 +2076,8 @@
             other{"intis peruanos"}
         }
         PEN{
-            one{"sol nuevu peruanu"}
-            other{"soles nuevos peruanos"}
+            one{"sol peruanu"}
+            other{"soles peruanos"}
         }
         PES{
             one{"sol peruanu (1863–1965)"}
@@ -2496,5 +2496,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/az.txt b/source/data/curr/az.txt
index 32e3e7d..c97596e 100644
--- a/source/data/curr/az.txt
+++ b/source/data/curr/az.txt
@@ -704,11 +704,11 @@
         }
         PEN{
             "PEN",
-            "Peru Nuevo Solu",
+            "Peru Solu",
         }
         PES{
             "PES",
-            "Peru Solu",
+            "Peru Solu (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1865,13 +1865,13 @@
             other{"Peru inti"}
         }
         PEN{
-            one{"Peru Nuevo solu"}
-            other{"Peru Nuevo solu"}
-        }
-        PES{
             one{"Peru solu"}
             other{"Peru solu"}
         }
+        PES{
+            one{"Peru solu (1863–1965)"}
+            other{"Peru solu (1863–1965)"}
+        }
         PGK{
             one{"Papua Yeni Qvineya kinası"}
             other{"Papua Yeni Qvineya kinası"}
@@ -2229,5 +2229,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/az_Cyrl.txt b/source/data/curr/az_Cyrl.txt
index 9ef56f7..aed32e8 100644
--- a/source/data/curr/az_Cyrl.txt
+++ b/source/data/curr/az_Cyrl.txt
@@ -11,5 +11,5 @@
     Currencies%variant{
         AZN{"ман."}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/az_Latn.txt b/source/data/curr/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/curr/az_Latn.txt
+++ b/source/data/curr/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/bas.txt b/source/data/curr/bas.txt
index 0a5341b..577bbb1 100644
--- a/source/data/curr/bas.txt
+++ b/source/data/curr/bas.txt
@@ -227,5 +227,5 @@
             "Dɔ̀lâr sìmbàbwê",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/be.txt b/source/data/curr/be.txt
index 08b3977..5692015 100644
--- a/source/data/curr/be.txt
+++ b/source/data/curr/be.txt
@@ -424,7 +424,7 @@
         }
         PEN{
             "PEN",
-            "перуанскі новы соль",
+            "перуанскі соль",
         }
         PGK{
             "PGK",
@@ -1358,10 +1358,10 @@
             other{"панамскага бальбоа"}
         }
         PEN{
-            few{"перуанскія новыя солі"}
-            many{"перуанскіх новых соляў"}
-            one{"перуанскі новы соль"}
-            other{"перуанскага новага соля"}
+            few{"перуанскія солі"}
+            many{"перуанскіх соляў"}
+            one{"перуанскі соль"}
+            other{"перуанскага соля"}
         }
         PGK{
             few{"кіна"}
@@ -1670,5 +1670,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/bem.txt b/source/data/curr/bem.txt
index d7d130c..baab364 100644
--- a/source/data/curr/bem.txt
+++ b/source/data/curr/bem.txt
@@ -7,5 +7,5 @@
             "ZMW",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/bez.txt b/source/data/curr/bez.txt
index 42b2b2e..9671319 100644
--- a/source/data/curr/bez.txt
+++ b/source/data/curr/bez.txt
@@ -223,5 +223,5 @@
             "Lupila lwa Huzimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/bg.txt b/source/data/curr/bg.txt
index d245bc8..86e3936 100644
--- a/source/data/curr/bg.txt
+++ b/source/data/curr/bg.txt
@@ -688,11 +688,11 @@
         }
         PEN{
             "PEN",
-            "Перуански нов сол",
+            "Перуански сол",
         }
         PES{
             "PES",
-            "Перуански сол",
+            "Перуански сол (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1771,8 +1771,8 @@
             other{"панамски балбоа"}
         }
         PEN{
-            one{"перуански нов сол"}
-            other{"перуански нови сола"}
+            one{"перуански сол"}
+            other{"перуански сола"}
         }
         PES{
             one{"перуански сол (1863–1965)"}
@@ -2095,5 +2095,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
 }
diff --git a/source/data/curr/bm.txt b/source/data/curr/bm.txt
index bc37a8b..be5ea2b 100644
--- a/source/data/curr/bm.txt
+++ b/source/data/curr/bm.txt
@@ -227,5 +227,5 @@
             "zimbabuwe Dolar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/bn.txt b/source/data/curr/bn.txt
index 517e24a..1326afb 100644
--- a/source/data/curr/bn.txt
+++ b/source/data/curr/bn.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "পেরুভিয়ান সোল নুয়েভো",
+            "পেরুভিয়ান সোল",
         }
         PES{
             "PES",
-            "পেরুভিয়ান সোল",
+            "পেরুভিয়ান সোল (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1612,8 +1612,12 @@
             other{"পানামা বেলবোয়া"}
         }
         PEN{
-            one{"পেরুভিয়ান সোল নুয়েভো"}
-            other{"পেরুভিয়ান সোল নুয়েভো"}
+            one{"পেরুভিয়ান সোল"}
+            other{"পেরুভিয়ান সোল"}
+        }
+        PES{
+            one{"পেরুভিয়ান সোল (1863–1965)"}
+            other{"পেরুভিয়ান সোল (1863–1965)"}
         }
         PGK{
             one{"পাপুয়া নিউ গিনিয়ান কিনা"}
@@ -1816,5 +1820,5 @@
             other{"জাম্বিয়ান কওয়াচা"}
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/bo.txt b/source/data/curr/bo.txt
index d522a50..d3d2c12 100644
--- a/source/data/curr/bo.txt
+++ b/source/data/curr/bo.txt
@@ -19,5 +19,5 @@
             "མ་རྟོགས་པའི་ནུས་མེད་དངུལ་ལོར",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/bo_IN.txt b/source/data/curr/bo_IN.txt
index 52427fb..480cf0d 100644
--- a/source/data/curr/bo_IN.txt
+++ b/source/data/curr/bo_IN.txt
@@ -7,5 +7,5 @@
             "ཡུ་ཨན་",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/br.txt b/source/data/curr/br.txt
index 9b55c6b..ec4148c 100644
--- a/source/data/curr/br.txt
+++ b/source/data/curr/br.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "nuevo sol Perou",
+            "sol Perou",
         }
         PES{
             "PES",
@@ -2475,11 +2475,11 @@
             two{"valboa Panamá"}
         }
         PEN{
-            few{"nuevo sol Perou"}
-            many{"nuevo sol Perou"}
-            one{"nuevo sol Perou"}
-            other{"nuevo sol Perou"}
-            two{"nuevo sol Perou"}
+            few{"sol Perou"}
+            many{"sol Perou"}
+            one{"sol Perou"}
+            other{"sol Perou"}
+            two{"sol Perou"}
         }
         PES{
             few{"sol Perou (1863–1965)"}
@@ -3105,5 +3105,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/brx.txt b/source/data/curr/brx.txt
index 67292d7..adcd7c6 100644
--- a/source/data/curr/brx.txt
+++ b/source/data/curr/brx.txt
@@ -704,11 +704,11 @@
         }
         PEN{
             "PEN",
-            "पेरुवाई नया सोल",
+            "पेरुवाई सोल",
         }
         PES{
             "PES",
-            "पेरुवाई सोल",
+            "पेरुवाई सोल (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1075,5 +1075,5 @@
             "ज़ीम्बाबवेई डॉलर",
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/bs.txt b/source/data/curr/bs.txt
index 055514b..dfac34b 100644
--- a/source/data/curr/bs.txt
+++ b/source/data/curr/bs.txt
@@ -740,7 +740,7 @@
         }
         PEN{
             "PEN",
-            "Peruanski novi sol",
+            "Peruanski sol",
         }
         PES{
             "PES",
@@ -2163,9 +2163,9 @@
             other{"peruanska inta"}
         }
         PEN{
-            few{"peruanska nova sola"}
-            one{"peruanski novi sol"}
-            other{"peruanskih novih sola"}
+            few{"peruanska sola"}
+            one{"peruanski sol"}
+            other{"peruanskih sola"}
         }
         PES{
             few{"peruanska sola (1863–1965)"}
@@ -2673,5 +2673,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/bs_Cyrl.txt b/source/data/curr/bs_Cyrl.txt
index 1147d73..30ee50f 100644
--- a/source/data/curr/bs_Cyrl.txt
+++ b/source/data/curr/bs_Cyrl.txt
@@ -717,11 +717,11 @@
         }
         PEN{
             "PEN",
-            "Перуански нуево сол",
+            "Перуански сол",
         }
         PES{
             "PES",
-            "Перуански сол",
+            "Перуански сол (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2004,15 +2004,15 @@
             other{"перувијских интија"}
         }
         PEN{
-            few{"перуанска нуево сола"}
-            one{"перуански нуево сол"}
-            other{"перуанских нуево сола"}
-        }
-        PES{
             few{"перуанска сола"}
             one{"перуански сол"}
             other{"перуанских сола"}
         }
+        PES{
+            few{"перуанска сола (1863–1965)"}
+            one{"перуански сол (1863–1965)"}
+            other{"перуанских сола (1863–1965)"}
+        }
         PGK{
             few{"папуа ново гвинејска долара"}
             one{"папуа ново гвинејски долар"}
@@ -2494,5 +2494,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
 }
diff --git a/source/data/curr/bs_Latn.txt b/source/data/curr/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/curr/bs_Latn.txt
+++ b/source/data/curr/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ca.txt b/source/data/curr/ca.txt
index 04a8246..a61e05d 100644
--- a/source/data/curr/ca.txt
+++ b/source/data/curr/ca.txt
@@ -777,11 +777,11 @@
         }
         PEN{
             "PEN",
-            "nou sol peruà",
+            "sol peruà",
         }
         PES{
             "PES",
-            "sol peruà",
+            "sol peruà (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2057,13 +2057,13 @@
             other{"intis peruans"}
         }
         PEN{
-            one{"nou sol peruà"}
-            other{"nous sols peruans"}
-        }
-        PES{
             one{"sol peruà"}
             other{"sols peruans"}
         }
+        PES{
+            one{"sol peruà (1863–1965)"}
+            other{"sols peruans (1863–1965)"}
+        }
         PGK{
             one{"kina de Papua Nova Guinea"}
             other{"kines de Papua Nova Guinea"}
@@ -2469,5 +2469,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ca_FR.txt b/source/data/curr/ca_FR.txt
index 1ecf63f..6282ace 100644
--- a/source/data/curr/ca_FR.txt
+++ b/source/data/curr/ca_FR.txt
@@ -7,5 +7,5 @@
             "franc francès",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ce.txt b/source/data/curr/ce.txt
index 681cb19..1d61500 100644
--- a/source/data/curr/ce.txt
+++ b/source/data/curr/ce.txt
@@ -424,7 +424,7 @@
         }
         PEN{
             "PEN",
-            "Перун керла соль",
+            "Перун соль",
         }
         PGK{
             "PGK",
@@ -1146,8 +1146,8 @@
             other{"Панаман бальбоаш"}
         }
         PEN{
-            one{"Перун керла соль"}
-            other{"Перун керла солаш"}
+            one{"Перун соль"}
+            other{"Перун солаш"}
         }
         PGK{
             one{"Папуа — Керла Гвинейн кина"}
@@ -1354,5 +1354,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/cgg.txt b/source/data/curr/cgg.txt
index 523825d..c51b170 100644
--- a/source/data/curr/cgg.txt
+++ b/source/data/curr/cgg.txt
@@ -223,5 +223,5 @@
             "Doora ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/chr.txt b/source/data/curr/chr.txt
index 98baaf9..1bc0116 100644
--- a/source/data/curr/chr.txt
+++ b/source/data/curr/chr.txt
@@ -1355,5 +1355,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/ckb.txt b/source/data/curr/ckb.txt
index 730bc40..77482bd 100644
--- a/source/data/curr/ckb.txt
+++ b/source/data/curr/ckb.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ckb{
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/cs.txt b/source/data/curr/cs.txt
index 786f219..f909b3d 100644
--- a/source/data/curr/cs.txt
+++ b/source/data/curr/cs.txt
@@ -776,7 +776,7 @@
         }
         PEN{
             "PEN",
-            "peruánský nový sol",
+            "peruánský sol",
         }
         PES{
             "PES",
@@ -2441,10 +2441,10 @@
             other{"peruánských inti"}
         }
         PEN{
-            few{"peruánské nové soly"}
-            many{"peruánského nového solu"}
-            one{"peruánský nový sol"}
-            other{"peruánských nových solů"}
+            few{"peruánské soly"}
+            many{"peruánského solu"}
+            one{"peruánský sol"}
+            other{"peruánských solů"}
         }
         PES{
             few{"peruánské soly (1863–1965)"}
@@ -3053,5 +3053,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/cy.txt b/source/data/curr/cy.txt
index 8714938..48ef767 100644
--- a/source/data/curr/cy.txt
+++ b/source/data/curr/cy.txt
@@ -728,7 +728,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol Periw",
+            "Sol Periw",
         }
         PES{
             "PES",
@@ -2424,12 +2424,12 @@
             zero{"inti Periw"}
         }
         PEN{
-            few{"nuevo sol Periw"}
-            many{"nuevo sol Periw"}
-            one{"nuevo sol Periw"}
-            other{"nuevo sol Periw"}
-            two{"nuevo sol Periw"}
-            zero{"nuevo sol Periw"}
+            few{"sol Periw"}
+            many{"sol Periw"}
+            one{"sol Periw"}
+            other{"sol Periw"}
+            two{"sol Periw"}
+            zero{"sol Periw"}
         }
         PES{
             few{"sol Periw (1863–1965)"}
@@ -3032,5 +3032,5 @@
         two{"{0} {1}"}
         zero{"{0} {1}"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/da.txt b/source/data/curr/da.txt
index cba2faa..7da74fc 100644
--- a/source/data/curr/da.txt
+++ b/source/data/curr/da.txt
@@ -688,15 +688,15 @@
         }
         PEI{
             "PEI",
-            "Peruviansk inti",
+            "peruviansk inti",
         }
         PEN{
             "PEN",
-            "peruviansk nuevo sol",
+            "peruviansk sol",
         }
         PES{
             "PES",
-            "Peruviansk sol (1863–1965)",
+            "peruviansk sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1861,16 +1861,16 @@
             other{"panamanske balboa"}
         }
         PEI{
-            one{"Peruviansk inti"}
-            other{"Peruvianske inti"}
+            one{"peruviansk inti"}
+            other{"peruvianske inti"}
         }
         PEN{
-            one{"peruviansk nuevo sol"}
-            other{"peruvianske nuevos soles"}
+            one{"peruviansk sol"}
+            other{"peruvianske soles"}
         }
         PES{
-            one{"Peruviansk sol (1863–1965)"}
-            other{"Peruvianske sol (1863–1965)"}
+            one{"peruviansk sol (1863–1965)"}
+            other{"peruvianske sol (1863–1965)"}
         }
         PGK{
             one{"papuansk kina"}
@@ -2217,5 +2217,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/dav.txt b/source/data/curr/dav.txt
index 253b741..cd84b5c 100644
--- a/source/data/curr/dav.txt
+++ b/source/data/curr/dav.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/de.txt b/source/data/curr/de.txt
index be1b0b8..b319798 100644
--- a/source/data/curr/de.txt
+++ b/source/data/curr/de.txt
@@ -2495,5 +2495,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/de_CH.txt b/source/data/curr/de_CH.txt
index 648df2c..d1147ce 100644
--- a/source/data/curr/de_CH.txt
+++ b/source/data/curr/de_CH.txt
@@ -21,5 +21,5 @@
             other{"Weissrussische Rubel (2000–2016)"}
         }
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/de_LI.txt b/source/data/curr/de_LI.txt
index 093ba5a..5316307 100644
--- a/source/data/curr/de_LI.txt
+++ b/source/data/curr/de_LI.txt
@@ -7,5 +7,5 @@
             "Euro",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/de_LU.txt b/source/data/curr/de_LU.txt
index cb7a805..a6fd633 100644
--- a/source/data/curr/de_LU.txt
+++ b/source/data/curr/de_LU.txt
@@ -12,5 +12,5 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/dje.txt b/source/data/curr/dje.txt
index 14f0aec..93de305 100644
--- a/source/data/curr/dje.txt
+++ b/source/data/curr/dje.txt
@@ -227,5 +227,5 @@
             "Zimbabwe Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/dsb.txt b/source/data/curr/dsb.txt
index 0509ae7..8e742c2 100644
--- a/source/data/curr/dsb.txt
+++ b/source/data/curr/dsb.txt
@@ -532,7 +532,7 @@
         }
         PEN{
             "PEN",
-            "peruski nowy sol",
+            "peruski sol",
         }
         PGK{
             "PGK",
@@ -1536,10 +1536,10 @@
             two{"panamaskej balboa"}
         }
         PEN{
-            few{"peruske nowe sole"}
-            one{"peruski nowy sol"}
-            other{"peruskich nowych solow"}
-            two{"peruskej nowej sola"}
+            few{"peruske sole"}
+            one{"peruski sol"}
+            other{"peruskich solow"}
+            two{"peruskej sola"}
         }
         PGK{
             few{"papua-neuguinejske kiny"}
@@ -1854,5 +1854,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/dua.txt b/source/data/curr/dua.txt
index df62568..635ae4b 100644
--- a/source/data/curr/dua.txt
+++ b/source/data/curr/dua.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dua{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/dyo.txt b/source/data/curr/dyo.txt
index b0aa767..e1e0c45 100644
--- a/source/data/curr/dyo.txt
+++ b/source/data/curr/dyo.txt
@@ -119,5 +119,5 @@
             "seefa yati BCEAO",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/dz.txt b/source/data/curr/dz.txt
index 48642b6..eba76e3 100644
--- a/source/data/curr/dz.txt
+++ b/source/data/curr/dz.txt
@@ -303,5 +303,5 @@
             "སཱའུཐ་ ཨཕ་རི་ཀ་གི་དངུལ་ རཱནད",
         }
     }
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/curr/ebu.txt b/source/data/curr/ebu.txt
index a2cb6f6..872ac41 100644
--- a/source/data/curr/ebu.txt
+++ b/source/data/curr/ebu.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ee.txt b/source/data/curr/ee.txt
index 6ebd0be..9439da2 100644
--- a/source/data/curr/ee.txt
+++ b/source/data/curr/ee.txt
@@ -748,11 +748,11 @@
         }
         PEN{
             "PEN",
-            "peruga nuevo sol",
+            "peruga sol",
         }
         PES{
             "PES",
-            "peruga nuevo sol (1863–1965)",
+            "peruga sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1923,12 +1923,12 @@
             other{"peruga inti"}
         }
         PEN{
-            one{"peruga nuevo sol"}
-            other{"peruga nuevo sol"}
+            one{"peruga sol"}
+            other{"peruga sol"}
         }
         PES{
-            one{"peruga nuevo sol (1863–1965)"}
-            other{"peruga nuevo sol (1863–1965)"}
+            one{"peruga sol (1863–1965)"}
+            other{"peruga sol (1863–1965)"}
         }
         PGK{
             one{"papua new giniga kina"}
@@ -2331,5 +2331,5 @@
         one{"{1} {0}"}
         other{"{1} {0}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/el.txt b/source/data/curr/el.txt
index 27fb5a0..1912323 100644
--- a/source/data/curr/el.txt
+++ b/source/data/curr/el.txt
@@ -705,11 +705,11 @@
         }
         PEN{
             "PEN",
-            "Νέο Σολ Περού",
+            "Σολ Περού",
         }
         PES{
             "PES",
-            "Σολ Περού",
+            "Σολ Περού (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1861,12 +1861,12 @@
             other{"ίντι Περού"}
         }
         PEN{
-            one{"νέο σολ Περού"}
-            other{"νέα Σολ Περού"}
+            one{"σολ Περού"}
+            other{"Σολ Περού"}
         }
         PES{
-            one{"σολ Περού"}
-            other{"σολ Περού"}
+            one{"σολ Περού (1863–1965)"}
+            other{"σολ Περού (1863–1965)"}
         }
         PGK{
             one{"κίνα Παπούας Νέας Γουινέας"}
@@ -2233,5 +2233,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/en.txt b/source/data/curr/en.txt
index c0d8910..7e27ddd 100644
--- a/source/data/curr/en.txt
+++ b/source/data/curr/en.txt
@@ -308,7 +308,7 @@
         }
         CZK{
             "CZK",
-            "Czech Republic Koruna",
+            "Czech Koruna",
         }
         DDM{
             "DDM",
@@ -1501,8 +1501,8 @@
             other{"Cypriot pounds"}
         }
         CZK{
-            one{"Czech Republic koruna"}
-            other{"Czech Republic korunas"}
+            one{"Czech koruna"}
+            other{"Czech korunas"}
         }
         DDM{
             one{"East German mark"}
@@ -2393,5 +2393,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/en_001.txt b/source/data/curr/en_001.txt
index d661305..c644d7d 100644
--- a/source/data/curr/en_001.txt
+++ b/source/data/curr/en_001.txt
@@ -69,5 +69,5 @@
             other{"Tajikistani roubles"}
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_150.txt b/source/data/curr/en_150.txt
index 5455cc7..6e17dff 100644
--- a/source/data/curr/en_150.txt
+++ b/source/data/curr/en_150.txt
@@ -13,5 +13,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_AG.txt b/source/data/curr/en_AG.txt
index 70b58ea..bc2b096 100644
--- a/source/data/curr/en_AG.txt
+++ b/source/data/curr/en_AG.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_AI.txt b/source/data/curr/en_AI.txt
index b6b8744..b746078 100644
--- a/source/data/curr/en_AI.txt
+++ b/source/data/curr/en_AI.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_AT.txt b/source/data/curr/en_AT.txt
index 13def3a..f72039e 100644
--- a/source/data/curr/en_AT.txt
+++ b/source/data/curr/en_AT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AT{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_AU.txt b/source/data/curr/en_AU.txt
index 5dd478a..42d8c65 100644
--- a/source/data/curr/en_AU.txt
+++ b/source/data/curr/en_AU.txt
@@ -200,5 +200,5 @@
             other{"Samoan talas"}
         }
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
 }
diff --git a/source/data/curr/en_BB.txt b/source/data/curr/en_BB.txt
index c299f81..d20afe5 100644
--- a/source/data/curr/en_BB.txt
+++ b/source/data/curr/en_BB.txt
@@ -8,5 +8,5 @@
             "Barbadian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BE.txt b/source/data/curr/en_BE.txt
index 9772d91..a1471bc 100644
--- a/source/data/curr/en_BE.txt
+++ b/source/data/curr/en_BE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BI.txt b/source/data/curr/en_BI.txt
index 0abc0cf..9b5b6b2 100644
--- a/source/data/curr/en_BI.txt
+++ b/source/data/curr/en_BI.txt
@@ -7,5 +7,5 @@
             "Burundian Franc",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BM.txt b/source/data/curr/en_BM.txt
index 08ef046..3db9c65 100644
--- a/source/data/curr/en_BM.txt
+++ b/source/data/curr/en_BM.txt
@@ -8,5 +8,5 @@
             "Bermudan Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BS.txt b/source/data/curr/en_BS.txt
index 5c5e56f..4455cfa 100644
--- a/source/data/curr/en_BS.txt
+++ b/source/data/curr/en_BS.txt
@@ -8,5 +8,5 @@
             "Bahamian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BW.txt b/source/data/curr/en_BW.txt
index 8acfaa2..65ac0b5 100644
--- a/source/data/curr/en_BW.txt
+++ b/source/data/curr/en_BW.txt
@@ -8,5 +8,5 @@
             "Botswanan Pula",
         }
     }
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_BZ.txt b/source/data/curr/en_BZ.txt
index bfd2702..98d82d1 100644
--- a/source/data/curr/en_BZ.txt
+++ b/source/data/curr/en_BZ.txt
@@ -8,5 +8,5 @@
             "Belize Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CA.txt b/source/data/curr/en_CA.txt
index 0f3a009..b9692a6 100644
--- a/source/data/curr/en_CA.txt
+++ b/source/data/curr/en_CA.txt
@@ -14,5 +14,5 @@
             other{"Israeli new sheqels"}
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CC.txt b/source/data/curr/en_CC.txt
index 1b3ad58..c3b4f4e 100644
--- a/source/data/curr/en_CC.txt
+++ b/source/data/curr/en_CC.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CH.txt b/source/data/curr/en_CH.txt
index 135de38..060cae5 100644
--- a/source/data/curr/en_CH.txt
+++ b/source/data/curr/en_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CH{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CK.txt b/source/data/curr/en_CK.txt
index 49ebd15..60b8362 100644
--- a/source/data/curr/en_CK.txt
+++ b/source/data/curr/en_CK.txt
@@ -8,5 +8,5 @@
             "New Zealand Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CM.txt b/source/data/curr/en_CM.txt
index c21b645..e3da63d 100644
--- a/source/data/curr/en_CM.txt
+++ b/source/data/curr/en_CM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CX.txt b/source/data/curr/en_CX.txt
index d3c44b8..f10d048 100644
--- a/source/data/curr/en_CX.txt
+++ b/source/data/curr/en_CX.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_CY.txt b/source/data/curr/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/curr/en_CY.txt
+++ b/source/data/curr/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_DE.txt b/source/data/curr/en_DE.txt
index 51c69cb..a8f9cde 100644
--- a/source/data/curr/en_DE.txt
+++ b/source/data/curr/en_DE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_DG.txt b/source/data/curr/en_DG.txt
index 8b4d817..bd59dcb 100644
--- a/source/data/curr/en_DG.txt
+++ b/source/data/curr/en_DG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_DK.txt b/source/data/curr/en_DK.txt
index de56e3d..0019a24 100644
--- a/source/data/curr/en_DK.txt
+++ b/source/data/curr/en_DK.txt
@@ -8,5 +8,5 @@
             "Danish Krone",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_DM.txt b/source/data/curr/en_DM.txt
index 8c27f12..2193f74 100644
--- a/source/data/curr/en_DM.txt
+++ b/source/data/curr/en_DM.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_ER.txt b/source/data/curr/en_ER.txt
index 20482cc..8fb925a 100644
--- a/source/data/curr/en_ER.txt
+++ b/source/data/curr/en_ER.txt
@@ -8,5 +8,5 @@
             "Eritrean Nakfa",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_FI.txt b/source/data/curr/en_FI.txt
index 8906ed5..995f6cb 100644
--- a/source/data/curr/en_FI.txt
+++ b/source/data/curr/en_FI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_FJ.txt b/source/data/curr/en_FJ.txt
index d82f49c..131f85f 100644
--- a/source/data/curr/en_FJ.txt
+++ b/source/data/curr/en_FJ.txt
@@ -8,5 +8,5 @@
             "Fijian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_FK.txt b/source/data/curr/en_FK.txt
index 3e9b71a..71e6114 100644
--- a/source/data/curr/en_FK.txt
+++ b/source/data/curr/en_FK.txt
@@ -12,5 +12,5 @@
             "British Pound",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_FM.txt b/source/data/curr/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/curr/en_FM.txt
+++ b/source/data/curr/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GB.txt b/source/data/curr/en_GB.txt
index a60a578..fd3b6e8 100644
--- a/source/data/curr/en_GB.txt
+++ b/source/data/curr/en_GB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GD.txt b/source/data/curr/en_GD.txt
index 43ba3d4..18b28a8 100644
--- a/source/data/curr/en_GD.txt
+++ b/source/data/curr/en_GD.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GG.txt b/source/data/curr/en_GG.txt
index 28e46dc..f40bd83 100644
--- a/source/data/curr/en_GG.txt
+++ b/source/data/curr/en_GG.txt
@@ -14,5 +14,5 @@
             other{"UK pounds"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GH.txt b/source/data/curr/en_GH.txt
index 97cb0d2..a055858 100644
--- a/source/data/curr/en_GH.txt
+++ b/source/data/curr/en_GH.txt
@@ -8,5 +8,5 @@
             "Ghanaian Cedi",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GI.txt b/source/data/curr/en_GI.txt
index f55427a..7c8c639 100644
--- a/source/data/curr/en_GI.txt
+++ b/source/data/curr/en_GI.txt
@@ -12,5 +12,5 @@
             "Gibraltar Pound",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GM.txt b/source/data/curr/en_GM.txt
index f975917..d569c22 100644
--- a/source/data/curr/en_GM.txt
+++ b/source/data/curr/en_GM.txt
@@ -8,5 +8,5 @@
             "Gambian Dalasi",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_GY.txt b/source/data/curr/en_GY.txt
index ce9b632..c526385 100644
--- a/source/data/curr/en_GY.txt
+++ b/source/data/curr/en_GY.txt
@@ -8,5 +8,5 @@
             "Guyanaese Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_HK.txt b/source/data/curr/en_HK.txt
index 9ad2044..d43b56c 100644
--- a/source/data/curr/en_HK.txt
+++ b/source/data/curr/en_HK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_IE.txt b/source/data/curr/en_IE.txt
index 1cbdf50..94ab93c 100644
--- a/source/data/curr/en_IE.txt
+++ b/source/data/curr/en_IE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_IL.txt b/source/data/curr/en_IL.txt
index 55e362c..55a5091 100644
--- a/source/data/curr/en_IL.txt
+++ b/source/data/curr/en_IL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_IM.txt b/source/data/curr/en_IM.txt
index a7ff526..c7288b7 100644
--- a/source/data/curr/en_IM.txt
+++ b/source/data/curr/en_IM.txt
@@ -14,5 +14,5 @@
             other{"UK pounds"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_IN.txt b/source/data/curr/en_IN.txt
index 9984e67..6dd195c 100644
--- a/source/data/curr/en_IN.txt
+++ b/source/data/curr/en_IN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IN{
     %%Parent{"en_001"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_IO.txt b/source/data/curr/en_IO.txt
index d2c4f91..3f89192 100644
--- a/source/data/curr/en_IO.txt
+++ b/source/data/curr/en_IO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_JE.txt b/source/data/curr/en_JE.txt
index 99a8a97..d48e4e8 100644
--- a/source/data/curr/en_JE.txt
+++ b/source/data/curr/en_JE.txt
@@ -14,5 +14,5 @@
             other{"UK pounds"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_JM.txt b/source/data/curr/en_JM.txt
index 62d40b0..e413d90 100644
--- a/source/data/curr/en_JM.txt
+++ b/source/data/curr/en_JM.txt
@@ -8,5 +8,5 @@
             "Jamaican Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_KE.txt b/source/data/curr/en_KE.txt
index 6a3ae52..1db09aa 100644
--- a/source/data/curr/en_KE.txt
+++ b/source/data/curr/en_KE.txt
@@ -8,5 +8,5 @@
             "Kenyan Shilling",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_KI.txt b/source/data/curr/en_KI.txt
index b592b1b..16df121 100644
--- a/source/data/curr/en_KI.txt
+++ b/source/data/curr/en_KI.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_KN.txt b/source/data/curr/en_KN.txt
index 7c4ffb9..330a081 100644
--- a/source/data/curr/en_KN.txt
+++ b/source/data/curr/en_KN.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_KY.txt b/source/data/curr/en_KY.txt
index 80c8290..167bce9 100644
--- a/source/data/curr/en_KY.txt
+++ b/source/data/curr/en_KY.txt
@@ -8,5 +8,5 @@
             "Cayman Islands Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_LC.txt b/source/data/curr/en_LC.txt
index 5e01da1..07bf683 100644
--- a/source/data/curr/en_LC.txt
+++ b/source/data/curr/en_LC.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_LR.txt b/source/data/curr/en_LR.txt
index da1384f..4fbe01c 100644
--- a/source/data/curr/en_LR.txt
+++ b/source/data/curr/en_LR.txt
@@ -8,5 +8,5 @@
             "Liberian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_LS.txt b/source/data/curr/en_LS.txt
index 212e6e8..eca64e3 100644
--- a/source/data/curr/en_LS.txt
+++ b/source/data/curr/en_LS.txt
@@ -8,5 +8,5 @@
             "South African Rand",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MG.txt b/source/data/curr/en_MG.txt
index 1f2e783..a2e42cc 100644
--- a/source/data/curr/en_MG.txt
+++ b/source/data/curr/en_MG.txt
@@ -8,5 +8,5 @@
             "Malagasy Ariary",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MO.txt b/source/data/curr/en_MO.txt
index 97e8c68..afc235d 100644
--- a/source/data/curr/en_MO.txt
+++ b/source/data/curr/en_MO.txt
@@ -8,5 +8,5 @@
             "Macanese Pataca",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MS.txt b/source/data/curr/en_MS.txt
index 3342e20..c38de2e 100644
--- a/source/data/curr/en_MS.txt
+++ b/source/data/curr/en_MS.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MT.txt b/source/data/curr/en_MT.txt
index 4227c28..0fa7c9c 100644
--- a/source/data/curr/en_MT.txt
+++ b/source/data/curr/en_MT.txt
@@ -8,5 +8,5 @@
             "British Pound",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MU.txt b/source/data/curr/en_MU.txt
index 953e4fc..1e54fb5 100644
--- a/source/data/curr/en_MU.txt
+++ b/source/data/curr/en_MU.txt
@@ -8,5 +8,5 @@
             "Mauritian Rupee",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MW.txt b/source/data/curr/en_MW.txt
index ad484e4..08a0217 100644
--- a/source/data/curr/en_MW.txt
+++ b/source/data/curr/en_MW.txt
@@ -8,5 +8,5 @@
             "Malawian Kwacha",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_MY.txt b/source/data/curr/en_MY.txt
index 590aca3..1789055 100644
--- a/source/data/curr/en_MY.txt
+++ b/source/data/curr/en_MY.txt
@@ -8,5 +8,5 @@
             "Malaysian Ringgit",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NA.txt b/source/data/curr/en_NA.txt
index 69be79b..a70c6a0 100644
--- a/source/data/curr/en_NA.txt
+++ b/source/data/curr/en_NA.txt
@@ -8,5 +8,5 @@
             "Namibian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NF.txt b/source/data/curr/en_NF.txt
index 78b7e6b..39c4ab5 100644
--- a/source/data/curr/en_NF.txt
+++ b/source/data/curr/en_NF.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NG.txt b/source/data/curr/en_NG.txt
index 49e7a14..5bb4020 100644
--- a/source/data/curr/en_NG.txt
+++ b/source/data/curr/en_NG.txt
@@ -8,5 +8,5 @@
             "Nigerian Naira",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NL.txt b/source/data/curr/en_NL.txt
index d0f6862..4566eb3 100644
--- a/source/data/curr/en_NL.txt
+++ b/source/data/curr/en_NL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NL{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NR.txt b/source/data/curr/en_NR.txt
index fab51ef..c808cc7 100644
--- a/source/data/curr/en_NR.txt
+++ b/source/data/curr/en_NR.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NU.txt b/source/data/curr/en_NU.txt
index aef7899..8a011bd 100644
--- a/source/data/curr/en_NU.txt
+++ b/source/data/curr/en_NU.txt
@@ -8,5 +8,5 @@
             "New Zealand Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_NZ.txt b/source/data/curr/en_NZ.txt
index 6f26c85..31014ed 100644
--- a/source/data/curr/en_NZ.txt
+++ b/source/data/curr/en_NZ.txt
@@ -8,5 +8,5 @@
             "New Zealand Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_PG.txt b/source/data/curr/en_PG.txt
index 33d4792..1a726d3 100644
--- a/source/data/curr/en_PG.txt
+++ b/source/data/curr/en_PG.txt
@@ -8,5 +8,5 @@
             "Papua New Guinean Kina",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_PH.txt b/source/data/curr/en_PH.txt
index bb1170c..b5bc8f0 100644
--- a/source/data/curr/en_PH.txt
+++ b/source/data/curr/en_PH.txt
@@ -8,5 +8,5 @@
             "Philippine Peso",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_PK.txt b/source/data/curr/en_PK.txt
index f367781..e0d4e37 100644
--- a/source/data/curr/en_PK.txt
+++ b/source/data/curr/en_PK.txt
@@ -8,5 +8,5 @@
             "Pakistani Rupee",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_PN.txt b/source/data/curr/en_PN.txt
index 328b527..701c432 100644
--- a/source/data/curr/en_PN.txt
+++ b/source/data/curr/en_PN.txt
@@ -8,5 +8,5 @@
             "New Zealand Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_PW.txt b/source/data/curr/en_PW.txt
index 3825c9f..43ec73a 100644
--- a/source/data/curr/en_PW.txt
+++ b/source/data/curr/en_PW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_RW.txt b/source/data/curr/en_RW.txt
index 20f55ec..c9c46be 100644
--- a/source/data/curr/en_RW.txt
+++ b/source/data/curr/en_RW.txt
@@ -8,5 +8,5 @@
             "Rwandan Franc",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SB.txt b/source/data/curr/en_SB.txt
index 1cf8dd0..339a3a0 100644
--- a/source/data/curr/en_SB.txt
+++ b/source/data/curr/en_SB.txt
@@ -8,5 +8,5 @@
             "Solomon Islands Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SC.txt b/source/data/curr/en_SC.txt
index 197fc03..471e548 100644
--- a/source/data/curr/en_SC.txt
+++ b/source/data/curr/en_SC.txt
@@ -8,5 +8,5 @@
             "Seychellois Rupee",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SD.txt b/source/data/curr/en_SD.txt
index 21a7710..8fef005 100644
--- a/source/data/curr/en_SD.txt
+++ b/source/data/curr/en_SD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SE.txt b/source/data/curr/en_SE.txt
index 6245fa3..cdc7a64 100644
--- a/source/data/curr/en_SE.txt
+++ b/source/data/curr/en_SE.txt
@@ -8,5 +8,5 @@
             "Swedish Krona",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SG.txt b/source/data/curr/en_SG.txt
index a02c7dc..b538ecf 100644
--- a/source/data/curr/en_SG.txt
+++ b/source/data/curr/en_SG.txt
@@ -8,5 +8,5 @@
             "Singapore Dollar",
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SH.txt b/source/data/curr/en_SH.txt
index f3c624c..93eb640 100644
--- a/source/data/curr/en_SH.txt
+++ b/source/data/curr/en_SH.txt
@@ -12,5 +12,5 @@
             "St. Helena Pound",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SI.txt b/source/data/curr/en_SI.txt
index 1b945e7..093b0e2 100644
--- a/source/data/curr/en_SI.txt
+++ b/source/data/curr/en_SI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SL.txt b/source/data/curr/en_SL.txt
index 34ddd4e..fabad86 100644
--- a/source/data/curr/en_SL.txt
+++ b/source/data/curr/en_SL.txt
@@ -8,5 +8,5 @@
             "Sierra Leonean Leone",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SS.txt b/source/data/curr/en_SS.txt
index b67c45a..6b71f14 100644
--- a/source/data/curr/en_SS.txt
+++ b/source/data/curr/en_SS.txt
@@ -12,5 +12,5 @@
             "South Sudanese Pound",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SX.txt b/source/data/curr/en_SX.txt
index 9b103d7..7729c64 100644
--- a/source/data/curr/en_SX.txt
+++ b/source/data/curr/en_SX.txt
@@ -8,5 +8,5 @@
             "Netherlands Antillean Guilder",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_SZ.txt b/source/data/curr/en_SZ.txt
index 6bd585e..1b5fdc6 100644
--- a/source/data/curr/en_SZ.txt
+++ b/source/data/curr/en_SZ.txt
@@ -8,5 +8,5 @@
             "Swazi Lilangeni",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TC.txt b/source/data/curr/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/curr/en_TC.txt
+++ b/source/data/curr/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TK.txt b/source/data/curr/en_TK.txt
index 348da46..e09d517 100644
--- a/source/data/curr/en_TK.txt
+++ b/source/data/curr/en_TK.txt
@@ -8,5 +8,5 @@
             "New Zealand Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TO.txt b/source/data/curr/en_TO.txt
index 366a210..30c35ca 100644
--- a/source/data/curr/en_TO.txt
+++ b/source/data/curr/en_TO.txt
@@ -8,5 +8,5 @@
             "Tongan Paʻanga",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TT.txt b/source/data/curr/en_TT.txt
index c2c72d1..3462379 100644
--- a/source/data/curr/en_TT.txt
+++ b/source/data/curr/en_TT.txt
@@ -8,5 +8,5 @@
             "Trinidad & Tobago Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TV.txt b/source/data/curr/en_TV.txt
index c113148..74b1aeb 100644
--- a/source/data/curr/en_TV.txt
+++ b/source/data/curr/en_TV.txt
@@ -8,5 +8,5 @@
             "Australian Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_TZ.txt b/source/data/curr/en_TZ.txt
index 23ea8b6..82fb476 100644
--- a/source/data/curr/en_TZ.txt
+++ b/source/data/curr/en_TZ.txt
@@ -8,5 +8,5 @@
             "Tanzanian Shilling",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_UG.txt b/source/data/curr/en_UG.txt
index 2ace29d..31da4b9 100644
--- a/source/data/curr/en_UG.txt
+++ b/source/data/curr/en_UG.txt
@@ -8,5 +8,5 @@
             "Ugandan Shilling",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_VC.txt b/source/data/curr/en_VC.txt
index 81c8d63..3808f9c 100644
--- a/source/data/curr/en_VC.txt
+++ b/source/data/curr/en_VC.txt
@@ -8,5 +8,5 @@
             "East Caribbean Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_VG.txt b/source/data/curr/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/curr/en_VG.txt
+++ b/source/data/curr/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_VU.txt b/source/data/curr/en_VU.txt
index 69c4005..a0ebff4 100644
--- a/source/data/curr/en_VU.txt
+++ b/source/data/curr/en_VU.txt
@@ -8,5 +8,5 @@
             "Vanuatu Vatu",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_WS.txt b/source/data/curr/en_WS.txt
index 59f4d7b..b94fded 100644
--- a/source/data/curr/en_WS.txt
+++ b/source/data/curr/en_WS.txt
@@ -8,5 +8,5 @@
             "Samoan Tala",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_ZA.txt b/source/data/curr/en_ZA.txt
index 9cc2fa3..46a801e 100644
--- a/source/data/curr/en_ZA.txt
+++ b/source/data/curr/en_ZA.txt
@@ -8,5 +8,5 @@
             "South African Rand",
         }
     }
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_ZM.txt b/source/data/curr/en_ZM.txt
index a601fef..d7c4d7e 100644
--- a/source/data/curr/en_ZM.txt
+++ b/source/data/curr/en_ZM.txt
@@ -8,5 +8,5 @@
             "Zambian Kwacha",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/en_ZW.txt b/source/data/curr/en_ZW.txt
index 4f5e7fa..5fb189a 100644
--- a/source/data/curr/en_ZW.txt
+++ b/source/data/curr/en_ZW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/eo.txt b/source/data/curr/eo.txt
index f741c1d..5950e87 100644
--- a/source/data/curr/eo.txt
+++ b/source/data/curr/eo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es.txt b/source/data/curr/es.txt
index b32491e..6fec8c3 100644
--- a/source/data/curr/es.txt
+++ b/source/data/curr/es.txt
@@ -708,7 +708,7 @@
         }
         PEN{
             "PEN",
-            "nuevo sol peruano",
+            "sol peruano",
         }
         PES{
             "PES",
@@ -1853,8 +1853,8 @@
             other{"intis peruanos"}
         }
         PEN{
-            one{"nuevo sol peruano"}
-            other{"nuevos soles peruanos"}
+            one{"sol peruano"}
+            other{"soles peruanos"}
         }
         PES{
             one{"sol peruano (1863–1965)"}
@@ -2189,5 +2189,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/es_419.txt b/source/data/curr/es_419.txt
index c798553..2a1b4ec 100644
--- a/source/data/curr/es_419.txt
+++ b/source/data/curr/es_419.txt
@@ -45,5 +45,5 @@
             other{"(moneda desconocida)"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_AR.txt b/source/data/curr/es_AR.txt
index 82d9298..ceec489 100644
--- a/source/data/curr/es_AR.txt
+++ b/source/data/curr/es_AR.txt
@@ -15,5 +15,5 @@
     Currencies%variant{
         GEL{"GEL"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_BO.txt b/source/data/curr/es_BO.txt
index 828d485..8c5a20b 100644
--- a/source/data/curr/es_BO.txt
+++ b/source/data/curr/es_BO.txt
@@ -8,5 +8,5 @@
             "boliviano",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_BR.txt b/source/data/curr/es_BR.txt
index 9bfa60c..f318fad 100644
--- a/source/data/curr/es_BR.txt
+++ b/source/data/curr/es_BR.txt
@@ -8,5 +8,5 @@
             "real brasileño",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_BZ.txt b/source/data/curr/es_BZ.txt
new file mode 100644
index 0000000..f3475ce
--- /dev/null
+++ b/source/data/curr/es_BZ.txt
@@ -0,0 +1,12 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Currencies{
+        BZD{
+            "$",
+            "dólar beliceño",
+        }
+    }
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/curr/es_CL.txt b/source/data/curr/es_CL.txt
index 6db4f1f..8d74867 100644
--- a/source/data/curr/es_CL.txt
+++ b/source/data/curr/es_CL.txt
@@ -12,5 +12,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_CO.txt b/source/data/curr/es_CO.txt
index 9decadb..033b306 100644
--- a/source/data/curr/es_CO.txt
+++ b/source/data/curr/es_CO.txt
@@ -12,5 +12,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_CR.txt b/source/data/curr/es_CR.txt
index e6fb093..694ba9e 100644
--- a/source/data/curr/es_CR.txt
+++ b/source/data/curr/es_CR.txt
@@ -8,5 +8,5 @@
             "colón costarricense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_CU.txt b/source/data/curr/es_CU.txt
index fb536c0..a4a9208 100644
--- a/source/data/curr/es_CU.txt
+++ b/source/data/curr/es_CU.txt
@@ -12,5 +12,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_DO.txt b/source/data/curr/es_DO.txt
index 14f412c..4228280 100644
--- a/source/data/curr/es_DO.txt
+++ b/source/data/curr/es_DO.txt
@@ -12,5 +12,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_EC.txt b/source/data/curr/es_EC.txt
index 8551944..4866fa0 100644
--- a/source/data/curr/es_EC.txt
+++ b/source/data/curr/es_EC.txt
@@ -8,5 +8,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_GQ.txt b/source/data/curr/es_GQ.txt
index 497f0ca..f8e6c0c 100644
--- a/source/data/curr/es_GQ.txt
+++ b/source/data/curr/es_GQ.txt
@@ -7,5 +7,5 @@
             "franco CFA BEAC",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_GT.txt b/source/data/curr/es_GT.txt
index 2a004f9..e930efb 100644
--- a/source/data/curr/es_GT.txt
+++ b/source/data/curr/es_GT.txt
@@ -18,5 +18,5 @@
         one{"{1} {0}"}
         other{"{1} {0}"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_HN.txt b/source/data/curr/es_HN.txt
index f93625b..103c1df 100644
--- a/source/data/curr/es_HN.txt
+++ b/source/data/curr/es_HN.txt
@@ -8,5 +8,5 @@
             "lempira hondureño",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_MX.txt b/source/data/curr/es_MX.txt
index 04ffbd5..3db955b 100644
--- a/source/data/curr/es_MX.txt
+++ b/source/data/curr/es_MX.txt
@@ -441,5 +441,5 @@
             other{"kwachas zambianos"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_NI.txt b/source/data/curr/es_NI.txt
index 0ea88d8..9f31ac1 100644
--- a/source/data/curr/es_NI.txt
+++ b/source/data/curr/es_NI.txt
@@ -8,5 +8,5 @@
             "córdoba nicaragüense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_PA.txt b/source/data/curr/es_PA.txt
index d60f94a..d1f832f 100644
--- a/source/data/curr/es_PA.txt
+++ b/source/data/curr/es_PA.txt
@@ -8,5 +8,5 @@
             "balboa panameño",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_PE.txt b/source/data/curr/es_PE.txt
index 3c7dea3..9979e40 100644
--- a/source/data/curr/es_PE.txt
+++ b/source/data/curr/es_PE.txt
@@ -5,8 +5,8 @@
     Currencies{
         PEN{
             "S/",
-            "nuevo sol peruano",
+            "sol peruano",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_PH.txt b/source/data/curr/es_PH.txt
index 4e4b0cf..f07f81b 100644
--- a/source/data/curr/es_PH.txt
+++ b/source/data/curr/es_PH.txt
@@ -7,5 +7,5 @@
             "peso filipino",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_PR.txt b/source/data/curr/es_PR.txt
index 229c05d..87383f8 100644
--- a/source/data/curr/es_PR.txt
+++ b/source/data/curr/es_PR.txt
@@ -8,5 +8,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_PY.txt b/source/data/curr/es_PY.txt
index d7769f1..83f7746 100644
--- a/source/data/curr/es_PY.txt
+++ b/source/data/curr/es_PY.txt
@@ -8,5 +8,5 @@
             "guaraní paraguayo",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_SV.txt b/source/data/curr/es_SV.txt
index 8c04d3a..77ba0dd 100644
--- a/source/data/curr/es_SV.txt
+++ b/source/data/curr/es_SV.txt
@@ -8,5 +8,5 @@
             "dólar estadounidense",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_US.txt b/source/data/curr/es_US.txt
index e2df7cb..fb2d4fc 100644
--- a/source/data/curr/es_US.txt
+++ b/source/data/curr/es_US.txt
@@ -15,5 +15,5 @@
     Currencies%narrow{
         RON{"lei"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/es_UY.txt b/source/data/curr/es_UY.txt
index 1aa4734..be298fe 100644
--- a/source/data/curr/es_UY.txt
+++ b/source/data/curr/es_UY.txt
@@ -12,5 +12,5 @@
             "peso uruguayo",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/es_VE.txt b/source/data/curr/es_VE.txt
index a74c2cb..b31d234 100644
--- a/source/data/curr/es_VE.txt
+++ b/source/data/curr/es_VE.txt
@@ -11,5 +11,5 @@
     Currencies%narrow{
         VEF{"Bs."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/et.txt b/source/data/curr/et.txt
index ebcd5a7..9d70782 100644
--- a/source/data/curr/et.txt
+++ b/source/data/curr/et.txt
@@ -705,7 +705,7 @@
         }
         PEN{
             "PEN",
-            "Peruu uus soll",
+            "Peruu soll",
         }
         PES{
             "PES",
@@ -1814,8 +1814,8 @@
             other{"Panama balboad"}
         }
         PEN{
-            one{"Peruu uus soll"}
-            other{"Peruu uut solli"}
+            one{"Peruu soll"}
+            other{"Peruu solli"}
         }
         PES{
             one{"Peruu soll (1863–1965)"}
@@ -2150,5 +2150,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/eu.txt b/source/data/curr/eu.txt
index ea89d3f..b58d49e 100644
--- a/source/data/curr/eu.txt
+++ b/source/data/curr/eu.txt
@@ -445,7 +445,7 @@
         }
         PEN{
             "PEN",
-            "Peruko sol berria",
+            "Peruko sol",
         }
         PGK{
             "PGK",
@@ -1180,8 +1180,8 @@
             other{"Panamako balboa"}
         }
         PEN{
-            one{"Peruko sol berri"}
-            other{"Peruko sol berri"}
+            one{"Peruko sol"}
+            other{"Peruko sol"}
         }
         PGK{
             one{"Papua Ginea Berriko kina"}
@@ -1388,5 +1388,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ewo.txt b/source/data/curr/ewo.txt
index 2f362c1..317bc2c 100644
--- a/source/data/curr/ewo.txt
+++ b/source/data/curr/ewo.txt
@@ -227,5 +227,5 @@
             "Dolár yá Zimbabwé",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fa.txt b/source/data/curr/fa.txt
index 7854a22..07d68ae 100644
--- a/source/data/curr/fa.txt
+++ b/source/data/curr/fa.txt
@@ -1637,5 +1637,5 @@
             other{"کواچای زامبیا"}
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/fa_AF.txt b/source/data/curr/fa_AF.txt
index fe94269..93a185f 100644
--- a/source/data/curr/fa_AF.txt
+++ b/source/data/curr/fa_AF.txt
@@ -63,5 +63,5 @@
             "دالر امریکا",
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ff.txt b/source/data/curr/ff.txt
index 555f283..350fa92 100644
--- a/source/data/curr/ff.txt
+++ b/source/data/curr/ff.txt
@@ -223,5 +223,5 @@
             "Dolaar Simbaabuwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ff_GN.txt b/source/data/curr/ff_GN.txt
index db68784..2b8f3fb 100644
--- a/source/data/curr/ff_GN.txt
+++ b/source/data/curr/ff_GN.txt
@@ -7,5 +7,5 @@
             "GNF",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ff_MR.txt b/source/data/curr/ff_MR.txt
index fa4c684..e027342 100644
--- a/source/data/curr/ff_MR.txt
+++ b/source/data/curr/ff_MR.txt
@@ -7,5 +7,5 @@
             "Ugiyya Muritani",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fi.txt b/source/data/curr/fi.txt
index ee0b3a6..fa30c09 100644
--- a/source/data/curr/fi.txt
+++ b/source/data/curr/fi.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "Perun uusi sol",
+            "Perun sol",
         }
         PES{
             "PES",
@@ -2073,8 +2073,8 @@
             other{"Perun intiä"}
         }
         PEN{
-            one{"Perun uusi sol"}
-            other{"Perun uutta solia"}
+            one{"Perun sol"}
+            other{"Perun solia"}
         }
         PES{
             one{"Perun sol (1863–1965)"}
@@ -2493,5 +2493,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/fil.txt b/source/data/curr/fil.txt
index bd9da6c..fa96c27 100644
--- a/source/data/curr/fil.txt
+++ b/source/data/curr/fil.txt
@@ -448,7 +448,7 @@
         }
         PEN{
             "PEN",
-            "Peruvian Nuevo Sol",
+            "Peruvian Sol",
         }
         PGK{
             "PGK",
@@ -1196,8 +1196,8 @@
             other{"Balboas ng Panama"}
         }
         PEN{
-            one{"Peruvian nuevo sol"}
-            other{"Peruvian nuevos soles"}
+            one{"Peruvian sol"}
+            other{"Peruvian soles"}
         }
         PGK{
             one{"Papua New Guinean kina"}
@@ -1404,5 +1404,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/fo.txt b/source/data/curr/fo.txt
index 1175ade..d7455ce 100644
--- a/source/data/curr/fo.txt
+++ b/source/data/curr/fo.txt
@@ -424,7 +424,7 @@
         }
         PEN{
             "PEN",
-            "Peru nuevo sol",
+            "Peru sol",
         }
         PGK{
             "PGK",
@@ -1163,8 +1163,8 @@
             other{"Panama balboa"}
         }
         PEN{
-            one{"Peru nuevo sol"}
-            other{"Peru nuevo sol"}
+            one{"Peru sol"}
+            other{"Peru sol"}
         }
         PGK{
             one{"Papua Nýguinea kina"}
@@ -1387,5 +1387,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/fo_DK.txt b/source/data/curr/fo_DK.txt
index 9e72f9f..ad08d5d 100644
--- a/source/data/curr/fo_DK.txt
+++ b/source/data/curr/fo_DK.txt
@@ -7,5 +7,5 @@
             "donsk króna",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr.txt b/source/data/curr/fr.txt
index 827a2f1..cf3557c 100644
--- a/source/data/curr/fr.txt
+++ b/source/data/curr/fr.txt
@@ -712,11 +712,11 @@
         }
         PEN{
             "PEN",
-            "nouveau sol péruvien",
+            "sol péruvien",
         }
         PES{
             "PES",
-            "sol péruvien",
+            "sol péruvien (1863–1985)",
         }
         PGK{
             "PGK",
@@ -1921,8 +1921,8 @@
             other{"intis péruviens"}
         }
         PEN{
-            one{"nouveau sol péruvien"}
-            other{"nouveaux sols péruviens"}
+            one{"sol péruvien"}
+            other{"sols péruviens"}
         }
         PES{
             one{"sol péruvien (1863–1985)"}
@@ -2321,5 +2321,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/fr_BI.txt b/source/data/curr/fr_BI.txt
index 464914d..32e9392 100644
--- a/source/data/curr/fr_BI.txt
+++ b/source/data/curr/fr_BI.txt
@@ -7,5 +7,5 @@
             "franc burundais",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_CA.txt b/source/data/curr/fr_CA.txt
index 6b49a57..5099a23 100644
--- a/source/data/curr/fr_CA.txt
+++ b/source/data/curr/fr_CA.txt
@@ -166,5 +166,5 @@
             other{"(devise inconnue)"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_CD.txt b/source/data/curr/fr_CD.txt
index a637b12..6171a2e 100644
--- a/source/data/curr/fr_CD.txt
+++ b/source/data/curr/fr_CD.txt
@@ -7,5 +7,5 @@
             "franc congolais",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_DJ.txt b/source/data/curr/fr_DJ.txt
index b82a04f..b4c512b 100644
--- a/source/data/curr/fr_DJ.txt
+++ b/source/data/curr/fr_DJ.txt
@@ -7,5 +7,5 @@
             "franc djiboutien",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_DZ.txt b/source/data/curr/fr_DZ.txt
index 1037838..b92baca 100644
--- a/source/data/curr/fr_DZ.txt
+++ b/source/data/curr/fr_DZ.txt
@@ -7,5 +7,5 @@
             "dinar algérien",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_GN.txt b/source/data/curr/fr_GN.txt
index 2ac6be1..9050130 100644
--- a/source/data/curr/fr_GN.txt
+++ b/source/data/curr/fr_GN.txt
@@ -7,5 +7,5 @@
             "franc guinéen",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_HT.txt b/source/data/curr/fr_HT.txt
index 6a881d4..eb9ed30 100644
--- a/source/data/curr/fr_HT.txt
+++ b/source/data/curr/fr_HT.txt
@@ -7,5 +7,5 @@
             "gourde haïtienne",
         }
     }
-    Version{"2.1.27.63"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_KM.txt b/source/data/curr/fr_KM.txt
index 0bc8eaa..fc63603 100644
--- a/source/data/curr/fr_KM.txt
+++ b/source/data/curr/fr_KM.txt
@@ -7,5 +7,5 @@
             "franc comorien",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_LU.txt b/source/data/curr/fr_LU.txt
index 4abea40..bcb7eb8 100644
--- a/source/data/curr/fr_LU.txt
+++ b/source/data/curr/fr_LU.txt
@@ -11,5 +11,5 @@
             "franc luxembourgeois",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_MG.txt b/source/data/curr/fr_MG.txt
index dae07c7..1e2add4 100644
--- a/source/data/curr/fr_MG.txt
+++ b/source/data/curr/fr_MG.txt
@@ -7,5 +7,5 @@
             "ariary malgache",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_MR.txt b/source/data/curr/fr_MR.txt
index 1c4ec07..2e4483a 100644
--- a/source/data/curr/fr_MR.txt
+++ b/source/data/curr/fr_MR.txt
@@ -7,5 +7,5 @@
             "ouguiya mauritanien",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_MU.txt b/source/data/curr/fr_MU.txt
index 111964b..5db2eb0 100644
--- a/source/data/curr/fr_MU.txt
+++ b/source/data/curr/fr_MU.txt
@@ -7,5 +7,5 @@
             "roupie mauricienne",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_RW.txt b/source/data/curr/fr_RW.txt
index a26e4b4..8cb5e29 100644
--- a/source/data/curr/fr_RW.txt
+++ b/source/data/curr/fr_RW.txt
@@ -7,5 +7,5 @@
             "franc rwandais",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_SC.txt b/source/data/curr/fr_SC.txt
index 9e2bf1f..af931a8 100644
--- a/source/data/curr/fr_SC.txt
+++ b/source/data/curr/fr_SC.txt
@@ -7,5 +7,5 @@
             "roupie des Seychelles",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_SY.txt b/source/data/curr/fr_SY.txt
index 0ee6818..7b3e1dc 100644
--- a/source/data/curr/fr_SY.txt
+++ b/source/data/curr/fr_SY.txt
@@ -7,5 +7,5 @@
             "livre syrienne",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_TN.txt b/source/data/curr/fr_TN.txt
index 43cabb4..501b31d 100644
--- a/source/data/curr/fr_TN.txt
+++ b/source/data/curr/fr_TN.txt
@@ -7,5 +7,5 @@
             "dinar tunisien",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fr_VU.txt b/source/data/curr/fr_VU.txt
index c7afb16..f4db728 100644
--- a/source/data/curr/fr_VU.txt
+++ b/source/data/curr/fr_VU.txt
@@ -7,5 +7,5 @@
             "vatu vanuatuan",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fur.txt b/source/data/curr/fur.txt
index 4ab9974..976a748 100644
--- a/source/data/curr/fur.txt
+++ b/source/data/curr/fur.txt
@@ -377,5 +377,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/fy.txt b/source/data/curr/fy.txt
index abcbee3..45c375c 100644
--- a/source/data/curr/fy.txt
+++ b/source/data/curr/fy.txt
@@ -760,11 +760,11 @@
         }
         PEN{
             "PEN",
-            "Peruaanske nieuwe sol",
+            "Peruaanske sol",
         }
         PES{
             "PES",
-            "Peruaanske sol",
+            "Peruaanske sol (1863–1985)",
         }
         PGK{
             "PGK",
@@ -1933,13 +1933,13 @@
             other{"Peruaanske inti"}
         }
         PEN{
-            one{"Peruaanske nieuwe sol"}
-            other{"Peruaanske nieuwe sol"}
-        }
-        PES{
             one{"Peruaanske sol"}
             other{"Peruaanske sol"}
         }
+        PES{
+            one{"Peruaanske sol (1863–1985)"}
+            other{"Peruaanske sol (1863–1985)"}
+        }
         PGK{
             one{"Papuaanske kina"}
             other{"Papuaanske kina"}
@@ -2353,5 +2353,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/ga.txt b/source/data/curr/ga.txt
index 50225f6..8e031c0 100644
--- a/source/data/curr/ga.txt
+++ b/source/data/curr/ga.txt
@@ -740,7 +740,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol Pheiriú",
+            "Sol Pheiriú",
         }
         PES{
             "PES",
@@ -2192,11 +2192,11 @@
             two{"bhalboa Phanama"}
         }
         PEN{
-            few{"nuevo sol Pheiriú"}
-            many{"nuevo sol Pheiriú"}
-            one{"nuevo sol Pheiriú"}
-            other{"nuevo sol Pheiriú"}
-            two{"nuevo sol Pheiriú"}
+            few{"sol Pheiriú"}
+            many{"sol Pheiriú"}
+            one{"sol Pheiriú"}
+            other{"sol Pheiriú"}
+            two{"sol Pheiriú"}
         }
         PES{
             few{"shol Pheiriú (1863–1965)"}
@@ -2675,5 +2675,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/gd.txt b/source/data/curr/gd.txt
index ded1010..1192479 100644
--- a/source/data/curr/gd.txt
+++ b/source/data/curr/gd.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "Sol ùr Pearùthach",
+            "Sol Pearùthach",
         }
         PES{
             "PES",
@@ -2462,10 +2462,10 @@
             two{"inti Pearùthach"}
         }
         PEN{
-            few{"sol ùra Pearùthach"}
-            one{"sol ùr Pearùthach"}
-            other{"sol ùr Pearùthach"}
-            two{"shol ùr Pearùthach"}
+            few{"sol Pearùthach"}
+            one{"sol Pearùthach"}
+            other{"sol Pearùthach"}
+            two{"shol Pearùthach"}
         }
         PES{
             few{"sol Pearùthach (1863–1965)"}
@@ -3092,5 +3092,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/gl.txt b/source/data/curr/gl.txt
index cfb023f..8a69e44 100644
--- a/source/data/curr/gl.txt
+++ b/source/data/curr/gl.txt
@@ -1432,6 +1432,10 @@
             one{"sol peruano"}
             other{"soles peruanos"}
         }
+        PES{
+            one{"sol peruano (1863–1965)"}
+            other{"soles peruanos (1863–1965)"}
+        }
         PGK{
             one{"kina de Papúa-Nova Guinea"}
             other{"kinas de Papúa-Nova Guinea"}
@@ -1653,5 +1657,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/gsw.txt b/source/data/curr/gsw.txt
index 3672299..85c6852 100644
--- a/source/data/curr/gsw.txt
+++ b/source/data/curr/gsw.txt
@@ -704,11 +704,11 @@
         }
         PEN{
             "PEN",
-            "Nöie Sol",
+            "Sol",
         }
         PES{
             "PES",
-            "Sol",
+            "Sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1757,13 +1757,13 @@
             other{"Peruanischi Inti"}
         }
         PEN{
-            one{"Nöie Sol"}
-            other{"Nöii Sol"}
-        }
-        PES{
             one{"Sol"}
             other{"Sol"}
         }
+        PES{
+            one{"Sol (1863–1965)"}
+            other{"Sol (1863–1965)"}
+        }
         PGK{
             one{"Kina"}
             other{"Kina"}
@@ -2137,5 +2137,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/gu.txt b/source/data/curr/gu.txt
index ba923bf..bfbbcad 100644
--- a/source/data/curr/gu.txt
+++ b/source/data/curr/gu.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "પેરુવિયન ન્યુવો સોલ",
+            "પેરુવિયન સોલ",
         }
         PGK{
             "PGK",
@@ -1172,8 +1172,8 @@
             other{"પનામેનિયન બાલ્બોઆ"}
         }
         PEN{
-            one{"પેરુવિયન ન્યુવો સોલ"}
-            other{"પેરુવિયન ન્યુવો સોલ"}
+            one{"પેરુવિયન સોલ"}
+            other{"પેરુવિયન સોલ"}
         }
         PGK{
             one{"પાપુઆ ન્યૂ ગિનીયન કિના"}
@@ -1380,5 +1380,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/guz.txt b/source/data/curr/guz.txt
index 6a34037..75d27f7 100644
--- a/source/data/curr/guz.txt
+++ b/source/data/curr/guz.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/gv.txt b/source/data/curr/gv.txt
index 5e6a4fa..9945d6c 100644
--- a/source/data/curr/gv.txt
+++ b/source/data/curr/gv.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gv{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/curr/ha.txt b/source/data/curr/ha.txt
index aa762ba..12ba3d7 100644
--- a/source/data/curr/ha.txt
+++ b/source/data/curr/ha.txt
@@ -223,5 +223,5 @@
             "Dalar zimbabuwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ha_GH.txt b/source/data/curr/ha_GH.txt
index 35c7a35..cb0c7ec 100644
--- a/source/data/curr/ha_GH.txt
+++ b/source/data/curr/ha_GH.txt
@@ -7,5 +7,5 @@
             "GHS",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/haw.txt b/source/data/curr/haw.txt
index adfab50..97bd76c 100644
--- a/source/data/curr/haw.txt
+++ b/source/data/curr/haw.txt
@@ -11,5 +11,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/he.txt b/source/data/curr/he.txt
index 9856590..f2d25ba 100644
--- a/source/data/curr/he.txt
+++ b/source/data/curr/he.txt
@@ -576,7 +576,7 @@
         }
         PEN{
             "PEN",
-            "סול פרואני חדש",
+            "סול פרואני",
         }
         PGK{
             "PGK",
@@ -1639,10 +1639,10 @@
             two{"בלבואה פנמי"}
         }
         PEN{
-            many{"סול פרואני חדש"}
-            one{"סול פרואני חדש"}
-            other{"סול פרואני חדש"}
-            two{"סול פרואני חדש"}
+            many{"סול פרואני"}
+            one{"סול פרואני"}
+            other{"סול פרואני"}
+            two{"סול פרואני"}
         }
         PGK{
             many{"קינה של פפואה גינאה החדשה"}
@@ -1957,5 +1957,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/hi.txt b/source/data/curr/hi.txt
index 9e8d947..c758d24 100644
--- a/source/data/curr/hi.txt
+++ b/source/data/curr/hi.txt
@@ -472,7 +472,7 @@
         }
         PEN{
             "PEN",
-            "पेरूवियन नुएवो सोल",
+            "पेरूवियन सोल",
         }
         PGK{
             "PGK",
@@ -1255,8 +1255,8 @@
             other{"पनामेनियन बैल्बोआ"}
         }
         PEN{
-            one{"पेरूवियन नुएवो सोल"}
-            other{"पेरूवियन नुएवो सोल"}
+            one{"पेरूवियन सोल"}
+            other{"पेरूवियन सोल"}
         }
         PGK{
             one{"पापुआ न्यू गिनीयन किना"}
@@ -1463,5 +1463,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/hr.txt b/source/data/curr/hr.txt
index 0e2bd96..5f6db74 100644
--- a/source/data/curr/hr.txt
+++ b/source/data/curr/hr.txt
@@ -780,11 +780,11 @@
         }
         PEN{
             "PEN",
-            "peruanski novi sol",
+            "peruanski sol",
         }
         PES{
             "PES",
-            "peruanski sol",
+            "peruanski sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2258,15 +2258,15 @@
             other{"peruanskih inti"}
         }
         PEN{
-            few{"peruanska nova sola"}
-            one{"peruanski novi sol"}
-            other{"peruanskih novih sola"}
-        }
-        PES{
             few{"peruanska sola"}
             one{"peruanski sol"}
             other{"peruanskih sola"}
         }
+        PES{
+            few{"peruanska sola (1863–1965)"}
+            one{"peruanski sol (1863–1965)"}
+            other{"peruanskih sola (1863–1965)"}
+        }
         PGK{
             few{"kine Papue Nove Gvineje"}
             one{"kina Papue Nove Gvineje"}
@@ -2783,5 +2783,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/hr_BA.txt b/source/data/curr/hr_BA.txt
index badaa78..6453bec 100644
--- a/source/data/curr/hr_BA.txt
+++ b/source/data/curr/hr_BA.txt
@@ -7,5 +7,5 @@
             "konvertibilna marka",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/hsb.txt b/source/data/curr/hsb.txt
index e17714e..6391ef9 100644
--- a/source/data/curr/hsb.txt
+++ b/source/data/curr/hsb.txt
@@ -532,7 +532,7 @@
         }
         PEN{
             "PEN",
-            "peruski nowy sol",
+            "peruski sol",
         }
         PGK{
             "PGK",
@@ -1536,10 +1536,10 @@
             two{"panamaskej balbowaj"}
         }
         PEN{
-            few{"peruske nowe sole"}
-            one{"peruski nowy sol"}
-            other{"peruskich nowych solow"}
-            two{"peruskej nowej solej"}
+            few{"peruske sole"}
+            one{"peruski sol"}
+            other{"peruskich solow"}
+            two{"peruskej solej"}
         }
         PGK{
             few{"papua-nowoginejske kiny"}
@@ -1854,5 +1854,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/hu.txt b/source/data/curr/hu.txt
index 5819ac6..1037563 100644
--- a/source/data/curr/hu.txt
+++ b/source/data/curr/hu.txt
@@ -704,15 +704,15 @@
         }
         PEI{
             "PEI",
-            "Perui inti",
+            "perui inti",
         }
         PEN{
             "PEN",
-            "perui sol nuevo",
+            "perui sol",
         }
         PES{
             "PES",
-            "Perui sol",
+            "perui sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1724,8 +1724,8 @@
             other{"panamai balboa"}
         }
         PEN{
-            one{"perui sol nuevo"}
-            other{"perui sol nuevo"}
+            one{"perui sol"}
+            other{"perui sol"}
         }
         PGK{
             one{"pápua új-guineai kina"}
@@ -2012,5 +2012,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/hy.txt b/source/data/curr/hy.txt
index a938a5d..4eebcd9 100644
--- a/source/data/curr/hy.txt
+++ b/source/data/curr/hy.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "Պերուի նոր սոլ",
+            "Պերուի սոլ",
         }
         PGK{
             "PGK",
@@ -1168,8 +1168,8 @@
             other{"պանամական բալբոա"}
         }
         PEN{
-            one{"Պերուի նոր սոլ"}
-            other{"Պերուի նոր սոլ"}
+            one{"Պերուի սոլ"}
+            other{"Պերուի սոլ"}
         }
         PGK{
             one{"Պապուա Նոր Գվինեայի կինա"}
@@ -1380,5 +1380,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/id.txt b/source/data/curr/id.txt
index ff7d4e7..e8f25e6 100644
--- a/source/data/curr/id.txt
+++ b/source/data/curr/id.txt
@@ -772,7 +772,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol Peru",
+            "Sol Peru",
         }
         PES{
             "PES",
@@ -1690,7 +1690,7 @@
             other{"Balboa Panama"}
         }
         PEN{
-            other{"Nuevo Sol Peru"}
+            other{"Sol Peru"}
         }
         PES{
             other{"Sol Peru (1863–1965)"}
@@ -1906,5 +1906,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ig.txt b/source/data/curr/ig.txt
index 34a4717..1664493 100644
--- a/source/data/curr/ig.txt
+++ b/source/data/curr/ig.txt
@@ -14,5 +14,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ii.txt b/source/data/curr/ii.txt
index e5af68d..b8b8614 100644
--- a/source/data/curr/ii.txt
+++ b/source/data/curr/ii.txt
@@ -14,5 +14,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/is.txt b/source/data/curr/is.txt
index 1fecff9..f82fdf0 100644
--- a/source/data/curr/is.txt
+++ b/source/data/curr/is.txt
@@ -1600,5 +1600,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/it.txt b/source/data/curr/it.txt
index f1dc186..935eaa4 100644
--- a/source/data/curr/it.txt
+++ b/source/data/curr/it.txt
@@ -697,11 +697,11 @@
         }
         PEN{
             "PEN",
-            "nuovo sol peruviano",
+            "sol peruviano",
         }
         PES{
             "PES",
-            "sol peruviano",
+            "sol peruviano (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1622,8 +1622,8 @@
             other{"balboa panamensi"}
         }
         PEN{
-            one{"nuovo sol peruviano"}
-            other{"nuovi sol peruviani"}
+            one{"sol peruviano"}
+            other{"sol peruviani"}
         }
         PGK{
             one{"kina papuana"}
@@ -1846,5 +1846,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/curr/ja.txt b/source/data/curr/ja.txt
index faedb20..eaef0fc 100644
--- a/source/data/curr/ja.txt
+++ b/source/data/curr/ja.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "ペルー 新ソル",
+            "ペルー ソル",
         }
         PES{
             "PES",
@@ -1879,7 +1879,7 @@
             other{"ペルー インティ"}
         }
         PEN{
-            other{"ペルー 新ソル"}
+            other{"ペルー ソル"}
         }
         PES{
             other{"ペルー ソル (1863–1965)"}
@@ -2194,5 +2194,5 @@
     CurrencyUnitPatterns{
         other{"{0}{1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/jgo.txt b/source/data/curr/jgo.txt
index e5790f1..9cadaa8 100644
--- a/source/data/curr/jgo.txt
+++ b/source/data/curr/jgo.txt
@@ -23,5 +23,5 @@
             "ntɛ-ŋkáp yi pɛ́ ká kɛ́ jínɛ",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/jmc.txt b/source/data/curr/jmc.txt
index 5bd7d31..346c41a 100644
--- a/source/data/curr/jmc.txt
+++ b/source/data/curr/jmc.txt
@@ -227,5 +227,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ka.txt b/source/data/curr/ka.txt
index 4b12e89..4d5a30a 100644
--- a/source/data/curr/ka.txt
+++ b/source/data/curr/ka.txt
@@ -640,11 +640,11 @@
         }
         PEN{
             "PEN",
-            "პერუს ახალი სოლი",
+            "პერუს სოლი",
         }
         PES{
             "PES",
-            "პერუს სოლი",
+            "პერუს სოლი (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1504,8 +1504,8 @@
             other{"პანამური ბალბოა"}
         }
         PEN{
-            one{"პერუს ახალი სოლი"}
-            other{"პერუს ახალი სოლი"}
+            one{"პერუს სოლი"}
+            other{"პერუს სოლი"}
         }
         PGK{
             one{"პაპუა-ახალი გვინეის კინა"}
@@ -1716,5 +1716,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/kab.txt b/source/data/curr/kab.txt
index db819d6..e25fde8 100644
--- a/source/data/curr/kab.txt
+++ b/source/data/curr/kab.txt
@@ -223,5 +223,5 @@
             "Adular Azimbabwi",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/kam.txt b/source/data/curr/kam.txt
index f5f0a8c..8d22c4f 100644
--- a/source/data/curr/kam.txt
+++ b/source/data/curr/kam.txt
@@ -223,5 +223,5 @@
             "Ndola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/kde.txt b/source/data/curr/kde.txt
index 2e2067e..985cc35 100644
--- a/source/data/curr/kde.txt
+++ b/source/data/curr/kde.txt
@@ -227,5 +227,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/kea.txt b/source/data/curr/kea.txt
index 4866b28..2e376bd 100644
--- a/source/data/curr/kea.txt
+++ b/source/data/curr/kea.txt
@@ -743,5 +743,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/khq.txt b/source/data/curr/khq.txt
index c540424..9787151 100644
--- a/source/data/curr/khq.txt
+++ b/source/data/curr/khq.txt
@@ -227,5 +227,5 @@
             "Zimbabwe Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ki.txt b/source/data/curr/ki.txt
index 332e3f3..72636a9 100644
--- a/source/data/curr/ki.txt
+++ b/source/data/curr/ki.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/kk.txt b/source/data/curr/kk.txt
index f22f113..57c36e5 100644
--- a/source/data/curr/kk.txt
+++ b/source/data/curr/kk.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "Перу жаңа солі",
+            "Перу солі",
         }
         PGK{
             "PGK",
@@ -1163,8 +1163,8 @@
             other{"Панама бальбоасы"}
         }
         PEN{
-            one{"Перу жаңа солі"}
-            other{"Перу жаңа солі"}
+            one{"Перу солі"}
+            other{"Перу солі"}
         }
         PGK{
             one{"Папуа - Жаңа Гвинея кинасы"}
@@ -1371,5 +1371,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/kkj.txt b/source/data/curr/kkj.txt
index 5134888..a99b119 100644
--- a/source/data/curr/kkj.txt
+++ b/source/data/curr/kkj.txt
@@ -7,5 +7,5 @@
             "Franc CFA",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/kl.txt b/source/data/curr/kl.txt
index 1b2d326..5309999 100644
--- a/source/data/curr/kl.txt
+++ b/source/data/curr/kl.txt
@@ -17,5 +17,5 @@
             other{"euro"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/curr/kln.txt b/source/data/curr/kln.txt
index 91e1646..3ccac1e 100644
--- a/source/data/curr/kln.txt
+++ b/source/data/curr/kln.txt
@@ -223,5 +223,5 @@
             "Dolaitab ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/km.txt b/source/data/curr/km.txt
index c5b21e5..fd95d47 100644
--- a/source/data/curr/km.txt
+++ b/source/data/curr/km.txt
@@ -1214,5 +1214,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/kn.txt b/source/data/curr/kn.txt
index 0e2a222..dd5962f 100644
--- a/source/data/curr/kn.txt
+++ b/source/data/curr/kn.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "ಪೆರುವಿಯನ್ ನುಯೆವೊ ಸೊಲ್",
+            "ಪೆರುವಿಯನ್ ಸೊಲ್",
         }
         PGK{
             "PGK",
@@ -1172,8 +1172,8 @@
             other{"ಪನಾಮಾನಿಯನ್ ಬಲ್ಬೋವಾಗಳು"}
         }
         PEN{
-            one{"ಪೆರುವಿಯನ್ ನುಯೆವೊ ಸೊಲ್"}
-            other{"ಪೆರುವಿಯನ್ ನುಯೆವೊ ಸೊಲ್‍ಗಳು"}
+            one{"ಪೆರುವಿಯನ್ ಸೊಲ್"}
+            other{"ಪೆರುವಿಯನ್ ಸೊಲ್‍ಗಳು"}
         }
         PGK{
             one{"ಪಪುವಾ ನ್ಯೂ ಗಿನಿಯನ್ ಕಿನಾ"}
@@ -1380,5 +1380,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/ko.txt b/source/data/curr/ko.txt
index 5f28e55..0bc8627 100644
--- a/source/data/curr/ko.txt
+++ b/source/data/curr/ko.txt
@@ -752,11 +752,11 @@
         }
         PEN{
             "PEN",
-            "페루 누에보 솔",
+            "페루 솔",
         }
         PES{
             "PES",
-            "페루 솔",
+            "페루 솔 (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1578,7 +1578,7 @@
             other{"파나마 발보아"}
         }
         PEN{
-            other{"페루 누에보 솔"}
+            other{"페루 솔"}
         }
         PGK{
             other{"파푸아뉴기니 키나"}
@@ -1734,5 +1734,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/kok.txt b/source/data/curr/kok.txt
index ab733bb..53c99e3 100644
--- a/source/data/curr/kok.txt
+++ b/source/data/curr/kok.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kok{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ks.txt b/source/data/curr/ks.txt
index eecc4e4..8945f3a 100644
--- a/source/data/curr/ks.txt
+++ b/source/data/curr/ks.txt
@@ -644,11 +644,11 @@
         }
         PEN{
             "PEN",
-            "پٔریوٗوِیَن نیوٗاوز سولٕز",
+            "پٔریوٗوِیَن سولٕز",
         }
         PES{
             "PES",
-            "پٔریوٗوِیَن سول",
+            "پٔریوٗوِیَن سول (۱۸۶۳–۱۹۶۵)",
         }
         PGK{
             "PGK",
@@ -1011,5 +1011,5 @@
             "زِمبابِیُک ڈالَر",
         }
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/ksb.txt b/source/data/curr/ksb.txt
index a2d3882..9e8bb2a 100644
--- a/source/data/curr/ksb.txt
+++ b/source/data/curr/ksb.txt
@@ -227,5 +227,5 @@
             "dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ksf.txt b/source/data/curr/ksf.txt
index 33dc5a5..8b33244 100644
--- a/source/data/curr/ksf.txt
+++ b/source/data/curr/ksf.txt
@@ -223,5 +223,5 @@
             "mɔni mǝ á zimbabwɛ́",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ksh.txt b/source/data/curr/ksh.txt
index 4c2c0af..4dad73e 100644
--- a/source/data/curr/ksh.txt
+++ b/source/data/curr/ksh.txt
@@ -448,7 +448,7 @@
         }
         PEN{
             "PEN",
-            "perruaanesche Nuevo Sol",
+            "perruaanesche Sol",
         }
         PGK{
             "PGK",
@@ -895,5 +895,5 @@
         other{"{0} {1}"}
         zero{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/kw.txt b/source/data/curr/kw.txt
index 29bf749..13f10c3 100644
--- a/source/data/curr/kw.txt
+++ b/source/data/curr/kw.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kw{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ky.txt b/source/data/curr/ky.txt
index e7268c7..9079583 100644
--- a/source/data/curr/ky.txt
+++ b/source/data/curr/ky.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "перу нуэво солу",
+            "перу солу",
         }
         PGK{
             "PGK",
@@ -1165,8 +1165,8 @@
             other{"панама балбоасы"}
         }
         PEN{
-            one{"перу нуэво солу"}
-            other{"перу нуэво солу"}
+            one{"перу солу"}
+            other{"перу солу"}
         }
         PGK{
             one{"Папуа Жаӊы Гвинея кинасы"}
@@ -1373,5 +1373,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/lag.txt b/source/data/curr/lag.txt
index 11952eb..8fb8cef 100644
--- a/source/data/curr/lag.txt
+++ b/source/data/curr/lag.txt
@@ -223,5 +223,5 @@
             "Dóola ya Simbáabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/lb.txt b/source/data/curr/lb.txt
index 266094f..ffdd407 100644
--- a/source/data/curr/lb.txt
+++ b/source/data/curr/lb.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "Peruaneschen Neie Sol",
+            "Peruaneschen Sol",
         }
         PES{
             "PES",
-            "Peruanesche Sol (1863–1965)",
+            "Peruaneschen Sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1825,11 +1825,11 @@
             other{"Peruanesch Inti"}
         }
         PEN{
-            one{"Peruaneschen Neie Sol"}
-            other{"Peruanesch Nei Soles"}
+            one{"Peruaneschen Sol"}
+            other{"Peruanesch Soles"}
         }
         PES{
-            one{"Peruanesche Sol (1863–1965)"}
+            one{"Peruaneschen Sol (1863–1965)"}
             other{"Peruanesch Soles (1863–1965)"}
         }
         PGK{
@@ -2225,5 +2225,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/lg.txt b/source/data/curr/lg.txt
index 8815e9c..cf46d47 100644
--- a/source/data/curr/lg.txt
+++ b/source/data/curr/lg.txt
@@ -227,5 +227,5 @@
             "Doola ey’eZimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/lkt.txt b/source/data/curr/lkt.txt
index f358233..459d5f0 100644
--- a/source/data/curr/lkt.txt
+++ b/source/data/curr/lkt.txt
@@ -7,5 +7,5 @@
             "USD",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ln.txt b/source/data/curr/ln.txt
index 43c0675..8c50c5a 100644
--- a/source/data/curr/ln.txt
+++ b/source/data/curr/ln.txt
@@ -227,5 +227,5 @@
             "Dolarɛ ya Zimbabwɛ",
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/ln_AO.txt b/source/data/curr/ln_AO.txt
index bbea9e1..58a949a 100644
--- a/source/data/curr/ln_AO.txt
+++ b/source/data/curr/ln_AO.txt
@@ -7,5 +7,5 @@
             "Kwanza ya Angóla",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/lo.txt b/source/data/curr/lo.txt
index 80c617a..e9bbb3f 100644
--- a/source/data/curr/lo.txt
+++ b/source/data/curr/lo.txt
@@ -760,7 +760,7 @@
         }
         PEN{
             "PEN",
-            "ເປ​ຣູ​ວຽນ ນູ​ໂວ ໂຊ​ລ໌",
+            "ເປ​ຣູ​ວຽນ ໂຊ​ລ໌",
         }
         PES{
             "PES",
@@ -1589,7 +1589,7 @@
             other{"ພານາມານຽນ ບອນບົວ"}
         }
         PEN{
-            other{"ເປ​ຣູ​ວຽນ ນູ​ໂວ ໂຊ​ລ໌"}
+            other{"ເປ​ຣູ​ວຽນ ໂຊ​ລ໌"}
         }
         PGK{
             other{"ປາ​ປົວ ນິວ ກິ​ນຽນ ກິ​ນາ"}
@@ -1745,5 +1745,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/lrc.txt b/source/data/curr/lrc.txt
index 025cc99..f902d8d 100644
--- a/source/data/curr/lrc.txt
+++ b/source/data/curr/lrc.txt
@@ -78,5 +78,5 @@
             other{"پیل نادیار"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/lt.txt b/source/data/curr/lt.txt
index dcbbea3..795d4a5 100644
--- a/source/data/curr/lt.txt
+++ b/source/data/curr/lt.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "Peru naujasis solis",
+            "Peru solis",
         }
         PES{
             "PES",
@@ -2462,10 +2462,10 @@
             other{"Peru intis"}
         }
         PEN{
-            few{"Peru naujieji soliai"}
-            many{"Peru naujojo solio"}
-            one{"Peru naujasis solis"}
-            other{"Peru naujųjų solių"}
+            few{"Peru soliai"}
+            many{"Peru solio"}
+            one{"Peru solis"}
+            other{"Peru solių"}
         }
         PES{
             few{"Peru soliai (1863–1965)"}
@@ -3086,5 +3086,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/lu.txt b/source/data/curr/lu.txt
index 05be447..d93af45 100644
--- a/source/data/curr/lu.txt
+++ b/source/data/curr/lu.txt
@@ -227,5 +227,5 @@
             "Ndola wa Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/luo.txt b/source/data/curr/luo.txt
index 595cce7..dd1cbad 100644
--- a/source/data/curr/luo.txt
+++ b/source/data/curr/luo.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/luy.txt b/source/data/curr/luy.txt
index b512ac3..7cbd17c 100644
--- a/source/data/curr/luy.txt
+++ b/source/data/curr/luy.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/lv.txt b/source/data/curr/lv.txt
index ffdb586..b15429c 100644
--- a/source/data/curr/lv.txt
+++ b/source/data/curr/lv.txt
@@ -312,7 +312,7 @@
         }
         ISK{
             "ISK",
-            "Īslandes krona",
+            "Islandes krona",
         }
         ITL{
             "ITL",
@@ -520,7 +520,7 @@
         }
         PEN{
             "PEN",
-            "Peru jaunais sols",
+            "Peru sols",
         }
         PGK{
             "PGK",
@@ -1259,9 +1259,9 @@
             zero{"Irānas riāli"}
         }
         ISK{
-            one{"Īslandes krona"}
-            other{"Īslandes kronas"}
-            zero{"Īslandes kronas"}
+            one{"Islandes krona"}
+            other{"Islandes kronas"}
+            zero{"Islandes kronas"}
         }
         JMD{
             one{"Jamaikas dolārs"}
@@ -1474,9 +1474,9 @@
             zero{"Panamas balboa"}
         }
         PEN{
-            one{"Peru jaunais sols"}
-            other{"Peru jaunie soli"}
-            zero{"Peru jaunie soli"}
+            one{"Peru sols"}
+            other{"Peru soli"}
+            zero{"Peru soli"}
         }
         PGK{
             one{"Papua-Jaungvinejas kina"}
@@ -1784,5 +1784,5 @@
         other{"{0} {1}"}
         zero{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/mas.txt b/source/data/curr/mas.txt
index f1ac759..f90a860 100644
--- a/source/data/curr/mas.txt
+++ b/source/data/curr/mas.txt
@@ -223,5 +223,5 @@
             "Iropiyianí e Simbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mas_TZ.txt b/source/data/curr/mas_TZ.txt
index 4bbf5d4..f90a8cd 100644
--- a/source/data/curr/mas_TZ.txt
+++ b/source/data/curr/mas_TZ.txt
@@ -7,5 +7,5 @@
             "Iropiyianí e Tanzania",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mer.txt b/source/data/curr/mer.txt
index 13c9fea..167e17a 100644
--- a/source/data/curr/mer.txt
+++ b/source/data/curr/mer.txt
@@ -223,5 +223,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mfe.txt b/source/data/curr/mfe.txt
index 6360064..d388bf4 100644
--- a/source/data/curr/mfe.txt
+++ b/source/data/curr/mfe.txt
@@ -227,5 +227,5 @@
             "dolar zimbawe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mg.txt b/source/data/curr/mg.txt
index eff0a0a..d66af0e 100644
--- a/source/data/curr/mg.txt
+++ b/source/data/curr/mg.txt
@@ -231,5 +231,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mgh.txt b/source/data/curr/mgh.txt
index 5dca1ff..e0ef64c 100644
--- a/source/data/curr/mgh.txt
+++ b/source/data/curr/mgh.txt
@@ -7,5 +7,5 @@
             "MZN",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mgo.txt b/source/data/curr/mgo.txt
index 26cd365..f65d0fa 100644
--- a/source/data/curr/mgo.txt
+++ b/source/data/curr/mgo.txt
@@ -15,5 +15,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mk.txt b/source/data/curr/mk.txt
index a594b9c..0bb43d0 100644
--- a/source/data/curr/mk.txt
+++ b/source/data/curr/mk.txt
@@ -584,11 +584,11 @@
         }
         PEN{
             "PEN",
-            "Перуански нов сол",
+            "Перуански сол",
         }
         PES{
             "PES",
-            "Перуански сол",
+            "Перуански сол (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1436,8 +1436,8 @@
             other{"Панамска балбоа"}
         }
         PEN{
-            one{"Перуански нов сол"}
-            other{"Перуански нов сол"}
+            one{"Перуански сол"}
+            other{"Перуански сол"}
         }
         PGK{
             one{"Папуа новогвинејска кина"}
@@ -1656,5 +1656,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ml.txt b/source/data/curr/ml.txt
index f84b062..b3c7b3e 100644
--- a/source/data/curr/ml.txt
+++ b/source/data/curr/ml.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "പെറുവിയൻ ന്യൂവോ സോൾ",
+            "പെറുവിയൻ സോൾ",
         }
         PES{
             "PES",
-            "പെറൂവിയൻ സോൾ",
+            "പെറൂവിയൻ സോൾ (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1872,12 +1872,12 @@
             other{"പെറൂവിയൻ ഇൻറിസ്"}
         }
         PEN{
-            one{"പെറുവിയൻ ന്യൂവോ സോൾ"}
-            other{"പെറുവിയൻ ന്യൂവോ സോൾ"}
+            one{"പെറുവിയൻ സോൾ"}
+            other{"പെറുവിയൻ സോൾ"}
         }
         PES{
-            one{"പെറൂവിയൻ സോൾ"}
-            other{"പെറൂവിയൻ സോൾസ്"}
+            one{"പെറൂവിയൻ സോൾ (1863–1965)"}
+            other{"പെറൂവിയൻ സോൾസ് (1863–1965)"}
         }
         PGK{
             one{"പാപ്പുവ ന്യൂ ഗിനിയൻ കിന"}
@@ -2212,5 +2212,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/mn.txt b/source/data/curr/mn.txt
index 4daf3e9..dd59d96 100644
--- a/source/data/curr/mn.txt
+++ b/source/data/curr/mn.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "перугийн невосоль",
+            "перугийн соль",
         }
         PGK{
             "PGK",
@@ -1168,8 +1168,8 @@
             other{"панамын бальбоа"}
         }
         PEN{
-            one{"перугийн невосоль"}
-            other{"перугийн невосоль"}
+            one{"перугийн соль"}
+            other{"перугийн соль"}
         }
         PGK{
             one{"папуа-шинэ гвинейн кина"}
@@ -1380,5 +1380,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/mr.txt b/source/data/curr/mr.txt
index fd26f60..dce4fc6 100644
--- a/source/data/curr/mr.txt
+++ b/source/data/curr/mr.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "पेरुवियन नुइव्हो सोल",
+            "पेरुवियन सोल",
         }
         PGK{
             "PGK",
@@ -1172,8 +1172,8 @@
             other{"पनामा बाल्बोआज"}
         }
         PEN{
-            one{"पेरुवियन नुइव्हो सोल"}
-            other{"पेरुवियन नुइव्हो सोल्स"}
+            one{"पेरुवियन सोल"}
+            other{"पेरुवियन सोल्स"}
         }
         PGK{
             one{"पापुआ न्यू गिनीयन किना"}
@@ -1376,5 +1376,5 @@
             other{"झांबियन क्वाचास"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/ms.txt b/source/data/curr/ms.txt
index c3899f6..4b6fd85 100644
--- a/source/data/curr/ms.txt
+++ b/source/data/curr/ms.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol Peru",
+            "Sol Peru",
         }
         PGK{
             "PGK",
@@ -1065,7 +1065,7 @@
             other{"Balboa Panama"}
         }
         PEN{
-            other{"Nuevo Sol Peru"}
+            other{"Sol Peru"}
         }
         PGK{
             other{"Kina Papua New Guinea"}
@@ -1221,5 +1221,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ms_BN.txt b/source/data/curr/ms_BN.txt
index a6f28ef..e719852 100644
--- a/source/data/curr/ms_BN.txt
+++ b/source/data/curr/ms_BN.txt
@@ -7,5 +7,5 @@
             "Dolar Brunei",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ms_SG.txt b/source/data/curr/ms_SG.txt
index 16d8a5c..02c121e 100644
--- a/source/data/curr/ms_SG.txt
+++ b/source/data/curr/ms_SG.txt
@@ -7,5 +7,5 @@
             "Dolar Singapura",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/mt.txt b/source/data/curr/mt.txt
index f9670bd..b7bf452 100644
--- a/source/data/curr/mt.txt
+++ b/source/data/curr/mt.txt
@@ -1581,5 +1581,5 @@
             other{"ZMW"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/mua.txt b/source/data/curr/mua.txt
index 1a97a92..eb5a66d 100644
--- a/source/data/curr/mua.txt
+++ b/source/data/curr/mua.txt
@@ -227,5 +227,5 @@
             "Solai Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/my.txt b/source/data/curr/my.txt
index aa43900..2294223 100644
--- a/source/data/curr/my.txt
+++ b/source/data/curr/my.txt
@@ -472,7 +472,7 @@
         }
         PEN{
             "PEN",
-            "ပီရူး နူအီဗိုဆိုးလ်",
+            "ပီရူး ဆိုးလ်",
         }
         PGK{
             "PGK",
@@ -1148,7 +1148,7 @@
             other{"ပနားမား ဘလ်ဘိုးအာ"}
         }
         PEN{
-            other{"ပီရူး နူအီဗိုဆိုးလ်"}
+            other{"ပီရူး ဆိုးလ်"}
         }
         PGK{
             other{"ပါပူအာ နယူးဂီနီ ခီးနာ"}
@@ -1301,5 +1301,5 @@
             other{"ဇင်ဘာဘွေခွါးချာ"}
         }
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
 }
diff --git a/source/data/curr/mzn.txt b/source/data/curr/mzn.txt
index db86c7d..22cb77b 100644
--- a/source/data/curr/mzn.txt
+++ b/source/data/curr/mzn.txt
@@ -412,7 +412,7 @@
         }
         PEN{
             "PEN",
-            "پروی ِنوئوو سول",
+            "پروی ِسول",
         }
         PHP{
             "PHP",
@@ -988,7 +988,7 @@
             other{"پانامای بالبوا"}
         }
         PEN{
-            other{"پروی ِنوئوو سول"}
+            other{"پروی ِسول"}
         }
         PHP{
             other{"فیلیپین ِپزو"}
@@ -1120,5 +1120,5 @@
             other{"زامبیای ِکواچا"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/naq.txt b/source/data/curr/naq.txt
index f1664f7..0e5cfdc 100644
--- a/source/data/curr/naq.txt
+++ b/source/data/curr/naq.txt
@@ -227,5 +227,5 @@
             "Zimbabwe Dollari",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nb.txt b/source/data/curr/nb.txt
index d6285e5..48635d6 100644
--- a/source/data/curr/nb.txt
+++ b/source/data/curr/nb.txt
@@ -776,15 +776,15 @@
         }
         PEI{
             "PEI",
-            "peruvianske inti",
+            "peruanske inti",
         }
         PEN{
             "PEN",
-            "peruanske nuevo sol",
+            "peruanske sol",
         }
         PES{
             "PES",
-            "peruvianske sol (1863–1965)",
+            "peruanske sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2063,16 +2063,16 @@
             other{"panamanske balboa"}
         }
         PEI{
-            one{"peruviansk inti"}
-            other{"peruvianske inti"}
+            one{"peruansk inti"}
+            other{"peruanske inti"}
         }
         PEN{
-            one{"peruansk nuevo sol"}
-            other{"peruanske nuevo sol"}
+            one{"peruansk sol"}
+            other{"peruanske sol"}
         }
         PES{
-            one{"peruviansk sol (1863–1965)"}
-            other{"peruvianske sol (1863–1965)"}
+            one{"peruansk sol (1863–1965)"}
+            other{"peruanske sol (1863–1965)"}
         }
         PGK{
             one{"papuansk kina"}
@@ -2483,5 +2483,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/nd.txt b/source/data/curr/nd.txt
index 94cd853..53c3ad9 100644
--- a/source/data/curr/nd.txt
+++ b/source/data/curr/nd.txt
@@ -227,5 +227,5 @@
             "Dola yase Zimbabwe",
         }
     }
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nds.txt b/source/data/curr/nds.txt
index f5e699c..30007b2 100644
--- a/source/data/curr/nds.txt
+++ b/source/data/curr/nds.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ne.txt b/source/data/curr/ne.txt
index 337e223..2447a8c 100644
--- a/source/data/curr/ne.txt
+++ b/source/data/curr/ne.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "पेरूभियाली न्यूभो सोल",
+            "पेरूभियाली सोल",
         }
         PGK{
             "PGK",
@@ -1173,8 +1173,8 @@
             other{"पानामानियाली बाल्बोआ"}
         }
         PEN{
-            one{"पेरूभियाली न्यूभो सोल"}
-            other{"पेरूभियाली न्यूभो सोल"}
+            one{"पेरूभियाली सोल"}
+            other{"पेरूभियाली सोल"}
         }
         PGK{
             one{"पपुआ न्यू गिनियाली किना"}
@@ -1381,5 +1381,5 @@
             other{"जाम्बियाली क्वाचा"}
         }
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/nl.txt b/source/data/curr/nl.txt
index f7b26d4..c1dd296 100644
--- a/source/data/curr/nl.txt
+++ b/source/data/curr/nl.txt
@@ -780,11 +780,11 @@
         }
         PEN{
             "PEN",
-            "Peruaanse nieuwe sol",
+            "Peruaanse sol",
         }
         PES{
             "PES",
-            "Peruaanse sol",
+            "Peruaanse sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2074,13 +2074,13 @@
             other{"Peruaanse inti"}
         }
         PEN{
-            one{"Peruaanse nieuwe sol"}
-            other{"Peruaanse nieuwe sol"}
-        }
-        PES{
             one{"Peruaanse sol"}
             other{"Peruaanse sol"}
         }
+        PES{
+            one{"Peruaanse sol (1863–1965)"}
+            other{"Peruaanse sol (1863–1965)"}
+        }
         PGK{
             one{"Papoea-Nieuw-Guinese kina"}
             other{"Papoea-Nieuw-Guinese kina"}
@@ -2494,5 +2494,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/nl_AW.txt b/source/data/curr/nl_AW.txt
index 3b2c771..5ddcdd4 100644
--- a/source/data/curr/nl_AW.txt
+++ b/source/data/curr/nl_AW.txt
@@ -7,5 +7,5 @@
             "Arubaanse gulden",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nl_BQ.txt b/source/data/curr/nl_BQ.txt
index f559dfa..6ed596e 100644
--- a/source/data/curr/nl_BQ.txt
+++ b/source/data/curr/nl_BQ.txt
@@ -7,5 +7,5 @@
             "Amerikaanse dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nl_CW.txt b/source/data/curr/nl_CW.txt
index a7b8887..e2ee405 100644
--- a/source/data/curr/nl_CW.txt
+++ b/source/data/curr/nl_CW.txt
@@ -7,5 +7,5 @@
             "Nederlands-Antilliaanse gulden",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nl_SR.txt b/source/data/curr/nl_SR.txt
index ce47495..26b4621 100644
--- a/source/data/curr/nl_SR.txt
+++ b/source/data/curr/nl_SR.txt
@@ -7,5 +7,5 @@
             "Surinaamse dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nl_SX.txt b/source/data/curr/nl_SX.txt
index a175656..2443514 100644
--- a/source/data/curr/nl_SX.txt
+++ b/source/data/curr/nl_SX.txt
@@ -7,5 +7,5 @@
             "Nederlands-Antilliaanse gulden",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nmg.txt b/source/data/curr/nmg.txt
index 0959894..500cc06 100644
--- a/source/data/curr/nmg.txt
+++ b/source/data/curr/nmg.txt
@@ -227,5 +227,5 @@
             "Dɔ́llɔ Zimbabwǝ (1980–2008)",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nn.txt b/source/data/curr/nn.txt
index fbe7e2b..0292882 100644
--- a/source/data/curr/nn.txt
+++ b/source/data/curr/nn.txt
@@ -704,11 +704,11 @@
         }
         PEN{
             "PEN",
-            "peruansk nuevo sol",
+            "peruansk sol",
         }
         PES{
             "PES",
-            "peruansk sol",
+            "peruansk sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1577,13 +1577,13 @@
             other{"peruanske inti"}
         }
         PEN{
-            one{"peruansk nuevo sol"}
-            other{"peruanske nuevo sol"}
-        }
-        PES{
             one{"peruansk sol"}
             other{"peruanske sol"}
         }
+        PES{
+            one{"peruansk sol (1863–1965)"}
+            other{"peruanske sol (1863–1965)"}
+        }
         PGK{
             one{"papuansk kina"}
             other{"papuanske kina"}
@@ -1921,5 +1921,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/nnh.txt b/source/data/curr/nnh.txt
index 75a8ece..e731a55 100644
--- a/source/data/curr/nnh.txt
+++ b/source/data/curr/nnh.txt
@@ -7,5 +7,5 @@
             "feláŋ CFA",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nus.txt b/source/data/curr/nus.txt
index db08665..189a4f3 100644
--- a/source/data/curr/nus.txt
+++ b/source/data/curr/nus.txt
@@ -11,5 +11,5 @@
             "SSP",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/nyn.txt b/source/data/curr/nyn.txt
index 4df096f..3c86577 100644
--- a/source/data/curr/nyn.txt
+++ b/source/data/curr/nyn.txt
@@ -227,5 +227,5 @@
             "Doora ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/om.txt b/source/data/curr/om.txt
index f992496..c00f7d8 100644
--- a/source/data/curr/om.txt
+++ b/source/data/curr/om.txt
@@ -43,5 +43,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/om_KE.txt b/source/data/curr/om_KE.txt
index ffbd98d..b39e771 100644
--- a/source/data/curr/om_KE.txt
+++ b/source/data/curr/om_KE.txt
@@ -7,5 +7,5 @@
             "KES",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/or.txt b/source/data/curr/or.txt
index 229e457..91f61c3 100644
--- a/source/data/curr/or.txt
+++ b/source/data/curr/or.txt
@@ -7,5 +7,5 @@
             "ଟଙକା",
         }
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/os.txt b/source/data/curr/os.txt
index 27ce44e..30eddf8 100644
--- a/source/data/curr/os.txt
+++ b/source/data/curr/os.txt
@@ -65,5 +65,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/os_RU.txt b/source/data/curr/os_RU.txt
index 1a513cd..c90d4a8 100644
--- a/source/data/curr/os_RU.txt
+++ b/source/data/curr/os_RU.txt
@@ -11,5 +11,5 @@
             "Сом",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pa.txt b/source/data/curr/pa.txt
index 394587d..196f11e 100644
--- a/source/data/curr/pa.txt
+++ b/source/data/curr/pa.txt
@@ -496,7 +496,7 @@
         }
         PEN{
             "PEN",
-            "ਪੇਰੂਵੀਅਨ ਨਿਊਵੋ ਸੋਲ",
+            "ਪੇਰੂਵੀਅਨ ਸੋਲ",
         }
         PGK{
             "PGK",
@@ -1341,8 +1341,8 @@
             other{"ਪਨਾਮੇਨੀਅਨ ਬਾਲਬੋਆ"}
         }
         PEN{
-            one{"ਪੇਰੂਵੀਅਨ ਨਿਊਵੋ ਸੋਲ"}
-            other{"ਪੇਰੂਵੀਅਨ ਨਿਊਵੋ ਸੋਲ"}
+            one{"ਪੇਰੂਵੀਅਨ ਸੋਲ"}
+            other{"ਪੇਰੂਵੀਅਨ ਸੋਲ"}
         }
         PGK{
             one{"ਪਾਪੂਆ ਨਿਊ ਗਿਨੀਆਈ ਕੀਨਾ"}
@@ -1581,5 +1581,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/pa_Arab.txt b/source/data/curr/pa_Arab.txt
index 114969c..539498e 100644
--- a/source/data/curr/pa_Arab.txt
+++ b/source/data/curr/pa_Arab.txt
@@ -16,5 +16,5 @@
             "روپئیہ",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pa_Guru.txt b/source/data/curr/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/curr/pa_Guru.txt
+++ b/source/data/curr/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pl.txt b/source/data/curr/pl.txt
index 55f2a4b..1ef14f1 100644
--- a/source/data/curr/pl.txt
+++ b/source/data/curr/pl.txt
@@ -684,11 +684,11 @@
         }
         PEN{
             "PEN",
-            "nowy sol peruwiański",
+            "sol peruwiański",
         }
         PES{
             "PES",
-            "sol peruwiański",
+            "sol peruwiański (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1900,10 +1900,16 @@
             other{"balboa panamskiego"}
         }
         PEN{
-            few{"nowe sole peruwiańskie"}
-            many{"nowych soli peruwiańskich"}
-            one{"nowy sol peruwiański"}
-            other{"nowego sola peruwiańskiego"}
+            few{"sole peruwiańskie"}
+            many{"soli peruwiańskich"}
+            one{"sol peruwiański"}
+            other{"sola peruwiańskiego"}
+        }
+        PES{
+            few{"sole peruwiańskie (1863–1965)"}
+            many{"soli peruwiańskich (1863–1965)"}
+            one{"sol peruwiański (1863–1965)"}
+            other{"sola peruwiańskiego (1863–1965)"}
         }
         PGK{
             few{"kina papuaskie"}
@@ -2284,5 +2290,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/pool.res b/source/data/curr/pool.res
index bb6c429..b41e218 100644
--- a/source/data/curr/pool.res
+++ b/source/data/curr/pool.res
Binary files differ
diff --git a/source/data/curr/ps.txt b/source/data/curr/ps.txt
index 936a371..69cc9f4 100644
--- a/source/data/curr/ps.txt
+++ b/source/data/curr/ps.txt
@@ -13,5 +13,5 @@
             other{"افغانۍ"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt.txt b/source/data/curr/pt.txt
index e9660c1..bc565ff 100644
--- a/source/data/curr/pt.txt
+++ b/source/data/curr/pt.txt
@@ -776,7 +776,7 @@
         }
         PEN{
             "PEN",
-            "Novo sol peruano",
+            "Sol peruano",
         }
         PES{
             "PES",
@@ -2057,12 +2057,12 @@
             other{"Intis peruanos"}
         }
         PEN{
-            one{"Novo sol peruano"}
-            other{"Novos sóis peruanos"}
+            one{"Sol peruano"}
+            other{"Sóis peruanos"}
         }
         PES{
-            one{"Sol peruano"}
-            other{"Soles peruanos"}
+            one{"Sol peruano (1863–1965)"}
+            other{"Sóis peruanos (1863–1965)"}
         }
         PGK{
             one{"Kina papuásia"}
@@ -2469,5 +2469,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/pt_AO.txt b/source/data/curr/pt_AO.txt
index cd71fce..e24ea13 100644
--- a/source/data/curr/pt_AO.txt
+++ b/source/data/curr/pt_AO.txt
@@ -8,5 +8,5 @@
             "Kwanza angolano",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_CH.txt b/source/data/curr/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/curr/pt_CH.txt
+++ b/source/data/curr/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_CV.txt b/source/data/curr/pt_CV.txt
index 8da52b3..b27927f 100644
--- a/source/data/curr/pt_CV.txt
+++ b/source/data/curr/pt_CV.txt
@@ -17,5 +17,5 @@
             "Escudo português",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_GQ.txt b/source/data/curr/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/curr/pt_GQ.txt
+++ b/source/data/curr/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_GW.txt b/source/data/curr/pt_GW.txt
index 67e6e72..e137e51 100644
--- a/source/data/curr/pt_GW.txt
+++ b/source/data/curr/pt_GW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_LU.txt b/source/data/curr/pt_LU.txt
index b7a9f14..0000ae6 100644
--- a/source/data/curr/pt_LU.txt
+++ b/source/data/curr/pt_LU.txt
@@ -8,5 +8,5 @@
             "Franco luxemburguês",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_MO.txt b/source/data/curr/pt_MO.txt
index 9be763d..34abbb2 100644
--- a/source/data/curr/pt_MO.txt
+++ b/source/data/curr/pt_MO.txt
@@ -8,5 +8,5 @@
             "Pataca de Macau",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_MZ.txt b/source/data/curr/pt_MZ.txt
index b77484c..5695fc4 100644
--- a/source/data/curr/pt_MZ.txt
+++ b/source/data/curr/pt_MZ.txt
@@ -8,5 +8,5 @@
             "Metical de Moçambique",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_PT.txt b/source/data/curr/pt_PT.txt
index 06e6b06..3492093 100644
--- a/source/data/curr/pt_PT.txt
+++ b/source/data/curr/pt_PT.txt
@@ -542,8 +542,12 @@
             other{"Balboas do Panamá"}
         }
         PEN{
-            one{"Novo sol peruano"}
-            other{"Novos soles peruanos"}
+            one{"Sol peruano"}
+            other{"Soles peruanos"}
+        }
+        PES{
+            one{"Sol peruano (1863–1965)"}
+            other{"Soles peruanos (1863–1965)"}
         }
         PGK{
             one{"Kina da Papua-Nova Guiné"}
@@ -642,5 +646,5 @@
             other{"Kwachas zambianos (1968–2012)"}
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/pt_ST.txt b/source/data/curr/pt_ST.txt
index 591d64f..7a19ac0 100644
--- a/source/data/curr/pt_ST.txt
+++ b/source/data/curr/pt_ST.txt
@@ -8,5 +8,5 @@
             "Dobra de São Tomé e Príncipe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/pt_TL.txt b/source/data/curr/pt_TL.txt
index 68cb641..786b602 100644
--- a/source/data/curr/pt_TL.txt
+++ b/source/data/curr/pt_TL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/qu.txt b/source/data/curr/qu.txt
index f0bce81..b5ab6a5 100644
--- a/source/data/curr/qu.txt
+++ b/source/data/curr/qu.txt
@@ -10,5 +10,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/qu_BO.txt b/source/data/curr/qu_BO.txt
index 043c957..605e998 100644
--- a/source/data/curr/qu_BO.txt
+++ b/source/data/curr/qu_BO.txt
@@ -11,5 +11,5 @@
             "PEN",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/qu_EC.txt b/source/data/curr/qu_EC.txt
index 5634891..e38e5e8 100644
--- a/source/data/curr/qu_EC.txt
+++ b/source/data/curr/qu_EC.txt
@@ -11,5 +11,5 @@
             "USD",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/resfiles.mk b/source/data/curr/resfiles.mk
index 9801913..e71a5a9 100644
--- a/source/data/curr/resfiles.mk
+++ b/source/data/curr/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-CURR_CLDR_VERSION = %version%
+CURR_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,19 +26,20 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-CURR_SYNTHETIC_ALIAS = az_AZ.txt az_Latn_AZ.txt bs_BA.txt bs_Latn_BA.txt\
- en_NH.txt en_RH.txt fil_PH.txt he_IL.txt id_ID.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP.txt\
- ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt no.txt\
- no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt pa_IN.txt\
- pa_PK.txt sh.txt sh_BA.txt sh_CS.txt sh_YU.txt\
- shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_BA.txt\
- sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Cyrl_YU.txt sr_Latn_BA.txt\
- sr_Latn_CS.txt sr_Latn_ME.txt sr_Latn_RS.txt sr_Latn_YU.txt sr_ME.txt\
- sr_RS.txt sr_XK.txt sr_YU.txt th_TH.txt th_TH_TRADITIONAL.txt\
- tl.txt tl_PH.txt uz_AF.txt uz_Arab_AF.txt uz_Latn_UZ.txt\
- uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt zh_CN.txt zh_HK.txt\
- zh_Hans_CN.txt zh_Hant_TW.txt zh_MO.txt zh_SG.txt zh_TW.txt
+CURR_SYNTHETIC_ALIAS = ar_SA.txt ars.txt az_AZ.txt az_Latn_AZ.txt\
+ bs_BA.txt bs_Latn_BA.txt en_NH.txt en_RH.txt fil_PH.txt\
+ he_IL.txt id_ID.txt in.txt in_ID.txt iw.txt\
+ iw_IL.txt ja_JP.txt ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt\
+ nn_NO.txt no.txt no_NO.txt no_NO_NY.txt pa_Arab_PK.txt\
+ pa_Guru_IN.txt pa_IN.txt pa_PK.txt sh.txt sh_BA.txt\
+ sh_CS.txt sh_YU.txt shi_MA.txt shi_Tfng_MA.txt sr_BA.txt\
+ sr_CS.txt sr_Cyrl_BA.txt sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt\
+ sr_Cyrl_YU.txt sr_Latn_BA.txt sr_Latn_CS.txt sr_Latn_ME.txt sr_Latn_RS.txt\
+ sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt\
+ th_TH.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt\
+ uz_Arab_AF.txt uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt\
+ zh_CN.txt zh_HK.txt zh_Hans_CN.txt zh_Hant_TW.txt zh_MO.txt\
+ zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -77,56 +78,56 @@
  en_TO.txt en_TT.txt en_TV.txt en_TZ.txt en_UG.txt\
  en_VC.txt en_VG.txt en_VU.txt en_WS.txt en_ZA.txt\
  en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\
- es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\
- es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GQ.txt\
- es_GT.txt es_HN.txt es_MX.txt es_NI.txt es_PA.txt\
- es_PE.txt es_PH.txt es_PR.txt es_PY.txt es_SV.txt\
- es_US.txt es_UY.txt es_VE.txt et.txt eu.txt\
- ewo.txt fa.txt fa_AF.txt ff.txt ff_GN.txt\
- ff_MR.txt fi.txt fil.txt fo.txt fo_DK.txt\
- fr.txt fr_BI.txt fr_CA.txt fr_CD.txt fr_DJ.txt\
- fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt fr_LU.txt\
- fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt fr_SC.txt\
- fr_SY.txt fr_TN.txt fr_VU.txt fur.txt fy.txt\
- ga.txt gd.txt gl.txt gsw.txt gu.txt\
- guz.txt gv.txt ha.txt ha_GH.txt haw.txt\
- he.txt hi.txt hr.txt hr_BA.txt hsb.txt\
- hu.txt hy.txt id.txt ig.txt ii.txt\
- is.txt it.txt ja.txt jgo.txt jmc.txt\
- ka.txt kab.txt kam.txt kde.txt kea.txt\
- khq.txt ki.txt kk.txt kkj.txt kl.txt\
- kln.txt km.txt kn.txt ko.txt kok.txt\
- ks.txt ksb.txt ksf.txt ksh.txt kw.txt\
- ky.txt lag.txt lb.txt lg.txt lkt.txt\
- ln.txt ln_AO.txt lo.txt lrc.txt lt.txt\
- lu.txt luo.txt luy.txt lv.txt mas.txt\
- mas_TZ.txt mer.txt mfe.txt mg.txt mgh.txt\
- mgo.txt mk.txt ml.txt mn.txt mr.txt\
- ms.txt ms_BN.txt ms_SG.txt mt.txt mua.txt\
- my.txt mzn.txt naq.txt nb.txt nd.txt\
- nds.txt ne.txt nl.txt nl_AW.txt nl_BQ.txt\
- nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt nn.txt\
- nnh.txt nus.txt nyn.txt om.txt om_KE.txt\
- or.txt os.txt os_RU.txt pa.txt pa_Arab.txt\
- pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\
- pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\
- pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\
- qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\
- ro.txt ro_MD.txt rof.txt ru.txt ru_BY.txt\
- ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt rwk.txt\
- sah.txt saq.txt sbp.txt se.txt se_SE.txt\
- seh.txt ses.txt sg.txt shi.txt shi_Latn.txt\
- shi_Tfng.txt si.txt sk.txt sl.txt smn.txt\
- sn.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\
- sq.txt sq_MK.txt sr.txt sr_Cyrl.txt sr_Latn.txt\
- sv.txt sw.txt sw_CD.txt sw_UG.txt ta.txt\
- ta_LK.txt ta_MY.txt ta_SG.txt te.txt teo.txt\
- teo_KE.txt th.txt ti.txt ti_ER.txt to.txt\
- tr.txt twq.txt tzm.txt ug.txt uk.txt\
- ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\
- uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\
- vun.txt wae.txt xog.txt yav.txt yi.txt\
- yo.txt yo_BJ.txt yue.txt zgh.txt zh.txt\
- zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt\
- zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
+ es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\
+ es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EC.txt\
+ es_GQ.txt es_GT.txt es_HN.txt es_MX.txt es_NI.txt\
+ es_PA.txt es_PE.txt es_PH.txt es_PR.txt es_PY.txt\
+ es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\
+ eu.txt ewo.txt fa.txt fa_AF.txt ff.txt\
+ ff_GN.txt ff_MR.txt fi.txt fil.txt fo.txt\
+ fo_DK.txt fr.txt fr_BI.txt fr_CA.txt fr_CD.txt\
+ fr_DJ.txt fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt\
+ fr_LU.txt fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt\
+ fr_SC.txt fr_SY.txt fr_TN.txt fr_VU.txt fur.txt\
+ fy.txt ga.txt gd.txt gl.txt gsw.txt\
+ gu.txt guz.txt gv.txt ha.txt ha_GH.txt\
+ haw.txt he.txt hi.txt hr.txt hr_BA.txt\
+ hsb.txt hu.txt hy.txt id.txt ig.txt\
+ ii.txt is.txt it.txt ja.txt jgo.txt\
+ jmc.txt ka.txt kab.txt kam.txt kde.txt\
+ kea.txt khq.txt ki.txt kk.txt kkj.txt\
+ kl.txt kln.txt km.txt kn.txt ko.txt\
+ kok.txt ks.txt ksb.txt ksf.txt ksh.txt\
+ kw.txt ky.txt lag.txt lb.txt lg.txt\
+ lkt.txt ln.txt ln_AO.txt lo.txt lrc.txt\
+ lt.txt lu.txt luo.txt luy.txt lv.txt\
+ mas.txt mas_TZ.txt mer.txt mfe.txt mg.txt\
+ mgh.txt mgo.txt mk.txt ml.txt mn.txt\
+ mr.txt ms.txt ms_BN.txt ms_SG.txt mt.txt\
+ mua.txt my.txt mzn.txt naq.txt nb.txt\
+ nd.txt nds.txt ne.txt nl.txt nl_AW.txt\
+ nl_BQ.txt nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt\
+ nn.txt nnh.txt nus.txt nyn.txt om.txt\
+ om_KE.txt or.txt os.txt os_RU.txt pa.txt\
+ pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\
+ pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\
+ pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\
+ pt_TL.txt qu.txt qu_BO.txt qu_EC.txt rm.txt\
+ rn.txt ro.txt ro_MD.txt rof.txt ru.txt\
+ ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt\
+ rwk.txt sah.txt saq.txt sbp.txt se.txt\
+ se_SE.txt seh.txt ses.txt sg.txt shi.txt\
+ shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\
+ smn.txt sn.txt so.txt so_DJ.txt so_ET.txt\
+ so_KE.txt sq.txt sq_MK.txt sr.txt sr_Cyrl.txt\
+ sr_Latn.txt sv.txt sw.txt sw_CD.txt sw_UG.txt\
+ ta.txt ta_LK.txt ta_MY.txt ta_SG.txt te.txt\
+ teo.txt teo_KE.txt th.txt ti.txt ti_ER.txt\
+ to.txt tr.txt twq.txt tzm.txt ug.txt\
+ uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\
+ uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\
+ vi.txt vun.txt wae.txt xog.txt yav.txt\
+ yi.txt yo.txt yo_BJ.txt yue.txt zgh.txt\
+ zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\
+ zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
 
diff --git a/source/data/curr/rm.txt b/source/data/curr/rm.txt
index 949abbc..ec83e01 100644
--- a/source/data/curr/rm.txt
+++ b/source/data/curr/rm.txt
@@ -772,11 +772,11 @@
         }
         PEN{
             "PEN",
-            "nov sol peruan",
+            "sol peruan",
         }
         PES{
             "PES",
-            "sol peruan",
+            "sol peruan (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1265,5 +1265,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/rn.txt b/source/data/curr/rn.txt
index dea7d56..60c44a9 100644
--- a/source/data/curr/rn.txt
+++ b/source/data/curr/rn.txt
@@ -215,5 +215,5 @@
             "Idolari ryo muri Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ro.txt b/source/data/curr/ro.txt
index c203faa..fc08f72 100644
--- a/source/data/curr/ro.txt
+++ b/source/data/curr/ro.txt
@@ -616,7 +616,7 @@
         }
         PEN{
             "PEN",
-            "sol nou peruvian",
+            "sol peruvian",
         }
         PES{
             "PES",
@@ -1788,14 +1788,14 @@
             other{"balboa panameze"}
         }
         PEN{
-            few{"soli noi peruvieni"}
-            one{"sol nou peruvian"}
-            other{"soli noi peruvieni"}
+            few{"soli peruvieni"}
+            one{"sol peruvian"}
+            other{"soli peruvieni"}
         }
         PES{
-            few{"soli Peru (1863–1965)"}
+            few{"soli peruvieni (1863–1965)"}
             one{"sol peruvian (1863–1965)"}
-            other{"soli Peru (1863–1965)"}
+            other{"soli peruvieni (1863–1965)"}
         }
         PGK{
             few{"kina din Papua-Noua Guinee"}
@@ -2188,5 +2188,5 @@
         one{"{0} {1}"}
         other{"{0} de {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/curr/ro_MD.txt b/source/data/curr/ro_MD.txt
index 01e0e9c..f0030b5 100644
--- a/source/data/curr/ro_MD.txt
+++ b/source/data/curr/ro_MD.txt
@@ -7,5 +7,5 @@
             "leu moldovenesc",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/rof.txt b/source/data/curr/rof.txt
index 7e3fd05..c8f10b7 100644
--- a/source/data/curr/rof.txt
+++ b/source/data/curr/rof.txt
@@ -223,5 +223,5 @@
             "heleri sa Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/root.txt b/source/data/curr/root.txt
index 4d2a6d3..70e7124 100644
--- a/source/data/curr/root.txt
+++ b/source/data/curr/root.txt
@@ -192,7 +192,7 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
     currencySpacing{
         afterCurrency{
             currencyMatch{"[:^S:]"}
diff --git a/source/data/curr/ru.txt b/source/data/curr/ru.txt
index ab68900..327296e 100644
--- a/source/data/curr/ru.txt
+++ b/source/data/curr/ru.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "Перуанский новый соль",
+            "Перуанский соль",
         }
         PES{
             "PES",
-            "Перуанский соль",
+            "Перуанский соль (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1865,10 +1865,16 @@
             other{"панамского бальбоа"}
         }
         PEN{
-            few{"перуанских новых соля"}
-            many{"перуанских новый солей"}
-            one{"перуанский новый соль"}
-            other{"перуанского нового соля"}
+            few{"перуанских соля"}
+            many{"перуанских солей"}
+            one{"перуанский соль"}
+            other{"перуанского соля"}
+        }
+        PES{
+            few{"перуанских соля (1863–1965)"}
+            many{"перуанских солей (1863–1965)"}
+            one{"перуанский соль (1863–1965)"}
+            other{"перуанского соля (1863–1965)"}
         }
         PGK{
             few{"кины Папуа – Новой Гвинеи"}
@@ -2189,5 +2195,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ru_BY.txt b/source/data/curr/ru_BY.txt
index 72c1205..511e94f 100644
--- a/source/data/curr/ru_BY.txt
+++ b/source/data/curr/ru_BY.txt
@@ -14,5 +14,5 @@
     Currencies%narrow{
         BYN{"Br"}
     }
-    Version{"2.1.30.5"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ru_KG.txt b/source/data/curr/ru_KG.txt
index 48616f9..55b1d0b 100644
--- a/source/data/curr/ru_KG.txt
+++ b/source/data/curr/ru_KG.txt
@@ -7,5 +7,5 @@
             "Киргизский сом",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ru_KZ.txt b/source/data/curr/ru_KZ.txt
index 26977c1..1af4732 100644
--- a/source/data/curr/ru_KZ.txt
+++ b/source/data/curr/ru_KZ.txt
@@ -7,5 +7,5 @@
             "Казахский тенге",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ru_MD.txt b/source/data/curr/ru_MD.txt
index b28ca3e..2427b14 100644
--- a/source/data/curr/ru_MD.txt
+++ b/source/data/curr/ru_MD.txt
@@ -7,5 +7,5 @@
             "Молдавский лей",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/rw.txt b/source/data/curr/rw.txt
index 0a8154e..ed63436 100644
--- a/source/data/curr/rw.txt
+++ b/source/data/curr/rw.txt
@@ -10,5 +10,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/rwk.txt b/source/data/curr/rwk.txt
index c17370c..88e1be6 100644
--- a/source/data/curr/rwk.txt
+++ b/source/data/curr/rwk.txt
@@ -227,5 +227,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sah.txt b/source/data/curr/sah.txt
index a57e32f..3544ed6 100644
--- a/source/data/curr/sah.txt
+++ b/source/data/curr/sah.txt
@@ -25,5 +25,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/saq.txt b/source/data/curr/saq.txt
index 68903cf..4f934ab 100644
--- a/source/data/curr/saq.txt
+++ b/source/data/curr/saq.txt
@@ -223,5 +223,5 @@
             "Dola eel Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sbp.txt b/source/data/curr/sbp.txt
index 6444ec8..653378d 100644
--- a/source/data/curr/sbp.txt
+++ b/source/data/curr/sbp.txt
@@ -223,5 +223,5 @@
             "Ihela ya Simbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/se.txt b/source/data/curr/se.txt
index fece573..04e7785 100644
--- a/source/data/curr/se.txt
+++ b/source/data/curr/se.txt
@@ -73,5 +73,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/se_SE.txt b/source/data/curr/se_SE.txt
index 14b066c..0631b57 100644
--- a/source/data/curr/se_SE.txt
+++ b/source/data/curr/se_SE.txt
@@ -11,5 +11,5 @@
             "ruoŧŧa kruvdno",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/seh.txt b/source/data/curr/seh.txt
index 4dc822d..ea06cd2 100644
--- a/source/data/curr/seh.txt
+++ b/source/data/curr/seh.txt
@@ -231,5 +231,5 @@
             "Dólar do Zimbábue",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ses.txt b/source/data/curr/ses.txt
index df6ee0e..29fdfc0 100644
--- a/source/data/curr/ses.txt
+++ b/source/data/curr/ses.txt
@@ -227,5 +227,5 @@
             "Zimbabwe Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sg.txt b/source/data/curr/sg.txt
index 1bf16d6..ca5a3f5 100644
--- a/source/data/curr/sg.txt
+++ b/source/data/curr/sg.txt
@@ -223,5 +223,5 @@
             "dolära tî Zimbäbwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/shi.txt b/source/data/curr/shi.txt
index 14890f8..ff71866 100644
--- a/source/data/curr/shi.txt
+++ b/source/data/curr/shi.txt
@@ -227,5 +227,5 @@
             "ⴰⴷⵓⵍⴰⵔ ⵏ ⵣⵉⵎⴱⴰⴱⵡⵉ",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/shi_Latn.txt b/source/data/curr/shi_Latn.txt
index 67db39c..41c57c7 100644
--- a/source/data/curr/shi_Latn.txt
+++ b/source/data/curr/shi_Latn.txt
@@ -228,5 +228,5 @@
             "adular n zimbabwi",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/shi_Tfng.txt b/source/data/curr/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/curr/shi_Tfng.txt
+++ b/source/data/curr/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/si.txt b/source/data/curr/si.txt
index 5f56153..ddfa3c8 100644
--- a/source/data/curr/si.txt
+++ b/source/data/curr/si.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "පේරු නියුවෝ සොල්",
+            "පේරු සොල්",
         }
         PGK{
             "PGK",
@@ -1165,8 +1165,8 @@
             other{"පැනමා බැල්බෝ"}
         }
         PEN{
-            one{"පේරු නියුවෝ සොල්"}
-            other{"පේරු නියුවෝ සොල්"}
+            one{"පේරු සොල්"}
+            other{"පේරු සොල්"}
         }
         PGK{
             one{"පැපුවා නිව් ගිනියානු කිනා"}
@@ -1373,5 +1373,5 @@
         one{"{1}{0}"}
         other{"{1}{0}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
 }
diff --git a/source/data/curr/sk.txt b/source/data/curr/sk.txt
index 75e8af6..e87fcab 100644
--- a/source/data/curr/sk.txt
+++ b/source/data/curr/sk.txt
@@ -672,11 +672,11 @@
         }
         PEN{
             "PEN",
-            "peruánsky nový sol",
+            "peruánsky sol",
         }
         PES{
             "PES",
-            "Peruvský sol",
+            "peruánsky sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1816,10 +1816,16 @@
             other{"panamských balboí"}
         }
         PEN{
-            few{"peruánske nové soly"}
-            many{"peruánskeho nového sola"}
-            one{"peruánsky nový sol"}
-            other{"peruánskych nových solov"}
+            few{"peruánske soly"}
+            many{"peruánskeho sola"}
+            one{"peruánsky sol"}
+            other{"peruánskych solov"}
+        }
+        PES{
+            few{"peruánske soly (1863–1965)"}
+            many{"peruánskeho sola (1863–1965)"}
+            one{"peruánsky sol (1863–1965)"}
+            other{"peruánskych solov (1863–1965)"}
         }
         PGK{
             few{"papuánske kiny"}
@@ -2188,5 +2194,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/sl.txt b/source/data/curr/sl.txt
index 2a72a0f..d95e69b 100644
--- a/source/data/curr/sl.txt
+++ b/source/data/curr/sl.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "perujski novi sol",
+            "perujski sol",
         }
         PES{
             "PES",
-            "perujski sol",
+            "perujski sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1838,10 +1838,16 @@
             two{"panamski balboi"}
         }
         PEN{
-            few{"perujski novi soli"}
-            one{"perujski novi sol"}
-            other{"perujskih novih solov"}
-            two{"perujska nova sola"}
+            few{"perujski soli"}
+            one{"perujski sol"}
+            other{"perujskih solov"}
+            two{"perujska sola"}
+        }
+        PES{
+            few{"perujski soli (1863–1965)"}
+            one{"perujski sol (1863–1965)"}
+            other{"perujskih solov (1863–1965)"}
+            two{"perujska sola (1863–1965)"}
         }
         PGK{
             few{"kine Papue Nove Gvineje"}
@@ -2150,5 +2156,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/smn.txt b/source/data/curr/smn.txt
index f23dc69..8895a33 100644
--- a/source/data/curr/smn.txt
+++ b/source/data/curr/smn.txt
@@ -40,5 +40,5 @@
         other{"{0} {1}"}
         two{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sn.txt b/source/data/curr/sn.txt
index a6e3fe9..6f3e043 100644
--- a/source/data/curr/sn.txt
+++ b/source/data/curr/sn.txt
@@ -231,5 +231,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/so.txt b/source/data/curr/so.txt
index 85332e6..9fcfea1 100644
--- a/source/data/curr/so.txt
+++ b/source/data/curr/so.txt
@@ -35,5 +35,5 @@
             "Lacag aan la qoon ama aan saxnayn",
         }
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
 }
diff --git a/source/data/curr/so_DJ.txt b/source/data/curr/so_DJ.txt
index 8800b8b..d9f0f0a 100644
--- a/source/data/curr/so_DJ.txt
+++ b/source/data/curr/so_DJ.txt
@@ -7,5 +7,5 @@
             "Faran Jabbuuti",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/so_ET.txt b/source/data/curr/so_ET.txt
index 9a39c34..ebddc85 100644
--- a/source/data/curr/so_ET.txt
+++ b/source/data/curr/so_ET.txt
@@ -7,5 +7,5 @@
             "Birta Itoobbiya",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/so_KE.txt b/source/data/curr/so_KE.txt
index 2e7a1af..eabfba9 100644
--- a/source/data/curr/so_KE.txt
+++ b/source/data/curr/so_KE.txt
@@ -7,5 +7,5 @@
             "KES",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sq.txt b/source/data/curr/sq.txt
index 052017d..a87abb1 100644
--- a/source/data/curr/sq.txt
+++ b/source/data/curr/sq.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "Sola nuevo-peruane",
+            "Sola peruane",
         }
         PGK{
             "PGK",
@@ -1069,8 +1069,8 @@
             other{"balboa panameze"}
         }
         PEN{
-            one{"solë nuevo-peruane"}
-            other{"sola nuevo-peruane"}
+            one{"solë peruane"}
+            other{"sola peruane"}
         }
         PGK{
             one{"kinë e Papua-Guineas së Re"}
@@ -1277,5 +1277,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/sq_MK.txt b/source/data/curr/sq_MK.txt
index 9eb6b59..2c296d8 100644
--- a/source/data/curr/sq_MK.txt
+++ b/source/data/curr/sq_MK.txt
@@ -7,5 +7,5 @@
             "Denari maqedonas",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sr.txt b/source/data/curr/sr.txt
index af83f7f..1652c73 100644
--- a/source/data/curr/sr.txt
+++ b/source/data/curr/sr.txt
@@ -716,11 +716,11 @@
         }
         PEN{
             "PEN",
-            "Перуански нови сол",
+            "Перуански сол",
         }
         PES{
             "PES",
-            "Перуански сол",
+            "Перуански сол (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2110,15 +2110,15 @@
             other{"перувијских интија"}
         }
         PEN{
-            few{"перуанска нова сола"}
-            one{"перуански нови сол"}
-            other{"перуанских нових сола"}
-        }
-        PES{
             few{"перуанска сола"}
             one{"перуански сол"}
             other{"перуанских сола"}
         }
+        PES{
+            few{"перуанска сола (1863–1965)"}
+            one{"перуански сол (1863–1965)"}
+            other{"перуанских сола (1863–1965)"}
+        }
         PGK{
             few{"папуанскe кинe"}
             one{"папуанска кина"}
@@ -2620,5 +2620,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
 }
diff --git a/source/data/curr/sr_Cyrl.txt b/source/data/curr/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/curr/sr_Cyrl.txt
+++ b/source/data/curr/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sr_Latn.txt b/source/data/curr/sr_Latn.txt
index 12abc3c..990509f 100644
--- a/source/data/curr/sr_Latn.txt
+++ b/source/data/curr/sr_Latn.txt
@@ -717,11 +717,11 @@
         }
         PEN{
             "PEN",
-            "Peruanski novi sol",
+            "Peruanski sol",
         }
         PES{
             "PES",
-            "Peruanski sol",
+            "Peruanski sol (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2111,15 +2111,15 @@
             other{"peruvijskih intija"}
         }
         PEN{
-            few{"peruanska nova sola"}
-            one{"peruanski novi sol"}
-            other{"peruanskih novih sola"}
-        }
-        PES{
             few{"peruanska sola"}
             one{"peruanski sol"}
             other{"peruanskih sola"}
         }
+        PES{
+            few{"peruanska sola (1863–1965)"}
+            one{"peruanski sol (1863–1965)"}
+            other{"peruanskih sola (1863–1965)"}
+        }
         PGK{
             few{"papuanske kine"}
             one{"papuanska kina"}
@@ -2621,5 +2621,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
 }
diff --git a/source/data/curr/sv.txt b/source/data/curr/sv.txt
index 8185a5e..9842717 100644
--- a/source/data/curr/sv.txt
+++ b/source/data/curr/sv.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "peruansk nuevo sol",
+            "peruansk sol",
         }
         PES{
             "PES",
@@ -2074,8 +2074,8 @@
             other{"peruanska intier"}
         }
         PEN{
-            one{"peruansk nuevo sol"}
-            other{"peruanska nuevo sol"}
+            one{"peruansk sol"}
+            other{"peruanska sol"}
         }
         PES{
             one{"peruansk sol (1863–1965)"}
@@ -2494,5 +2494,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/sw.txt b/source/data/curr/sw.txt
index ff1e440..94d6f05 100644
--- a/source/data/curr/sw.txt
+++ b/source/data/curr/sw.txt
@@ -448,7 +448,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol ya Peru",
+            "Sol ya Peru",
         }
         PGK{
             "PGK",
@@ -1196,8 +1196,8 @@
             other{"Balboa za Panama"}
         }
         PEN{
-            one{"Nuevo Sol ya Peru"}
-            other{"Nuevo Sol za Peru"}
+            one{"Sol ya Peru"}
+            other{"Sol za Peru"}
         }
         PGK{
             one{"Kina ya Papua New Guinea"}
@@ -1408,5 +1408,5 @@
         one{"{1} {0}"}
         other{"{1} {0}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
 }
diff --git a/source/data/curr/sw_CD.txt b/source/data/curr/sw_CD.txt
index 27a1f40..ff79828 100644
--- a/source/data/curr/sw_CD.txt
+++ b/source/data/curr/sw_CD.txt
@@ -39,5 +39,5 @@
             "Faranga CFA BCEAO",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/sw_UG.txt b/source/data/curr/sw_UG.txt
index fca317a..72827e0 100644
--- a/source/data/curr/sw_UG.txt
+++ b/source/data/curr/sw_UG.txt
@@ -7,5 +7,5 @@
             "Shilingi ya Uganda",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ta.txt b/source/data/curr/ta.txt
index a05b6f6..96fec84 100644
--- a/source/data/curr/ta.txt
+++ b/source/data/curr/ta.txt
@@ -1380,5 +1380,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
 }
diff --git a/source/data/curr/ta_LK.txt b/source/data/curr/ta_LK.txt
index 52123cd..312598f 100644
--- a/source/data/curr/ta_LK.txt
+++ b/source/data/curr/ta_LK.txt
@@ -7,5 +7,5 @@
             "இலங்கை ரூபாய்",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ta_MY.txt b/source/data/curr/ta_MY.txt
index 437fd0e..aebb8b4 100644
--- a/source/data/curr/ta_MY.txt
+++ b/source/data/curr/ta_MY.txt
@@ -11,5 +11,5 @@
             "சிங்கப்பூர் டாலர்",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ta_SG.txt b/source/data/curr/ta_SG.txt
index 0207b3f..392181c 100644
--- a/source/data/curr/ta_SG.txt
+++ b/source/data/curr/ta_SG.txt
@@ -15,5 +15,5 @@
             "அமெரிக்க டாலர்",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/te.txt b/source/data/curr/te.txt
index 5819233..d8c5482 100644
--- a/source/data/curr/te.txt
+++ b/source/data/curr/te.txt
@@ -436,7 +436,7 @@
         }
         PEN{
             "PEN",
-            "పెరువియన్ న్యూవో సోల్",
+            "పెరువియన్ సోల్",
         }
         PGK{
             "PGK",
@@ -1173,8 +1173,8 @@
             other{"పనామనియన్ బల్బోవాలు"}
         }
         PEN{
-            one{"పెరువియన్ న్యూవో సోల్"}
-            other{"పెరువియన్ న్యూవో సోల్‌లు"}
+            one{"పెరువియన్ సోల్"}
+            other{"పెరువియన్ సోల్‌లు"}
         }
         PGK{
             one{"పప్యూ న్యూ గ్యినియన్ కినా"}
@@ -1381,5 +1381,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/teo.txt b/source/data/curr/teo.txt
index cfd94fb..625a78c 100644
--- a/source/data/curr/teo.txt
+++ b/source/data/curr/teo.txt
@@ -223,5 +223,5 @@
             "Edola lok’Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/teo_KE.txt b/source/data/curr/teo_KE.txt
index 36f9b5b..7fc3db6 100644
--- a/source/data/curr/teo_KE.txt
+++ b/source/data/curr/teo_KE.txt
@@ -7,5 +7,5 @@
             "Ango’otol lok’ Kenya",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/th.txt b/source/data/curr/th.txt
index 3798157..06b6248 100644
--- a/source/data/curr/th.txt
+++ b/source/data/curr/th.txt
@@ -760,11 +760,11 @@
         }
         PEN{
             "PEN",
-            "นูโวซอลเปรู",
+            "ซอลเปรู",
         }
         PES{
             "PES",
-            "ซอลเปรู",
+            "ซอลเปรู (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1596,7 +1596,10 @@
             other{"บัลบัวปานามา"}
         }
         PEN{
-            other{"นูโวซอลเปรู"}
+            other{"ซอลเปรู"}
+        }
+        PES{
+            other{"ซอลเปรู(1863–1965)"}
         }
         PGK{
             other{"กีนาปาปัวนิวกินี"}
@@ -1758,5 +1761,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ti.txt b/source/data/curr/ti.txt
index 1220c5b..81a052d 100644
--- a/source/data/curr/ti.txt
+++ b/source/data/curr/ti.txt
@@ -43,5 +43,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ti_ER.txt b/source/data/curr/ti_ER.txt
index e6c18c5..dd3ec54 100644
--- a/source/data/curr/ti_ER.txt
+++ b/source/data/curr/ti_ER.txt
@@ -7,5 +7,5 @@
             "ERN",
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/to.txt b/source/data/curr/to.txt
index 7d6c40e..b22bbbc 100644
--- a/source/data/curr/to.txt
+++ b/source/data/curr/to.txt
@@ -71,5 +71,5 @@
     CurrencyUnitPatterns{
         other{"{1} {0}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/curr/tr.txt b/source/data/curr/tr.txt
index 12dcb45..ca8e1fc 100644
--- a/source/data/curr/tr.txt
+++ b/source/data/curr/tr.txt
@@ -780,11 +780,11 @@
         }
         PEN{
             "PEN",
-            "Peru Nuevo Solü",
+            "Peru Solü",
         }
         PES{
             "PES",
-            "Peru Solu",
+            "Peru Solü (1863–1965)",
         }
         PGK{
             "PGK",
@@ -2024,12 +2024,12 @@
             other{"Peru İnti"}
         }
         PEN{
-            one{"Peru nuevo solü"}
-            other{"Peru nuevo solü"}
+            one{"Peru solü"}
+            other{"Peru solü"}
         }
         PES{
-            one{"Peru Solu"}
-            other{"Peru Solu"}
+            one{"Peru Solü (1863–1965)"}
+            other{"Peru Solü (1863–1965)"}
         }
         PGK{
             one{"Papua Yeni Gine kinası"}
@@ -2368,5 +2368,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/twq.txt b/source/data/curr/twq.txt
index 440207f..8644b24 100644
--- a/source/data/curr/twq.txt
+++ b/source/data/curr/twq.txt
@@ -227,5 +227,5 @@
             "Zimbabwe Dollar",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/tzm.txt b/source/data/curr/tzm.txt
index 8c863f6..81f1a41 100644
--- a/source/data/curr/tzm.txt
+++ b/source/data/curr/tzm.txt
@@ -227,5 +227,5 @@
             "Ḍular Uzimbabwi",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/ug.txt b/source/data/curr/ug.txt
index c13f589..3d0a8a5 100644
--- a/source/data/curr/ug.txt
+++ b/source/data/curr/ug.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "پېرۇ يېڭى سولى",
+            "پېرۇ سولى",
         }
         PES{
             "PES",
@@ -1973,8 +1973,8 @@
             other{"پېرۇ ئىنتىسى"}
         }
         PEN{
-            one{"پېرۇ يېڭى سولى"}
-            other{"پېرۇ يېڭى سولى"}
+            one{"پېرۇ سولى"}
+            other{"پېرۇ سولى"}
         }
         PES{
             one{"پېرۇ سولى (1863–1965)"}
@@ -2393,5 +2393,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/uk.txt b/source/data/curr/uk.txt
index 8d8d9d0..36e1987 100644
--- a/source/data/curr/uk.txt
+++ b/source/data/curr/uk.txt
@@ -708,11 +708,11 @@
         }
         PEN{
             "PEN",
-            "перуанський новий сол",
+            "перуанський сол",
         }
         PES{
             "PES",
-            "перуанський сол",
+            "перуанський сол (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1906,10 +1906,16 @@
             other{"панамського бальбоа"}
         }
         PEN{
-            few{"перуанські нові соли"}
-            many{"перуанських нових солів"}
-            one{"перуанський новий сол"}
-            other{"перуанського нового сола"}
+            few{"перуанські соли"}
+            many{"перуанських солів"}
+            one{"перуанський сол"}
+            other{"перуанського сола"}
+        }
+        PES{
+            few{"перуанські соли (1863–1965)"}
+            many{"перуанських солів (1863–1965)"}
+            one{"перуанський сол (1863–1965)"}
+            other{"перуанського сола (1863–1965)"}
         }
         PGK{
             few{"кіни Папуа Нової Гвінеї"}
@@ -2266,5 +2272,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/curr/ur.txt b/source/data/curr/ur.txt
index d60aa1b..a1fd358 100644
--- a/source/data/curr/ur.txt
+++ b/source/data/curr/ur.txt
@@ -444,7 +444,7 @@
         }
         PEN{
             "PEN",
-            "پیروین نیووسول",
+            "پیرو نیووسول",
         }
         PGK{
             "PGK",
@@ -1192,8 +1192,8 @@
             other{"پنامہ کا بالبوآ"}
         }
         PEN{
-            one{"پیروین نیووسول"}
-            other{"پیروین نیووسول"}
+            one{"پیرو نیووسول"}
+            other{"پیرو نیووسول"}
         }
         PGK{
             one{"پاپوآ نیو گنی کا کینا"}
@@ -1400,5 +1400,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/ur_IN.txt b/source/data/curr/ur_IN.txt
index faba812..3f45ef4 100644
--- a/source/data/curr/ur_IN.txt
+++ b/source/data/curr/ur_IN.txt
@@ -77,5 +77,5 @@
             other{"ساموآئی ٹالا"}
         }
     }
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/uz.txt b/source/data/curr/uz.txt
index 668bb24..af3bbe6 100644
--- a/source/data/curr/uz.txt
+++ b/source/data/curr/uz.txt
@@ -432,7 +432,7 @@
         }
         PEN{
             "PEN",
-            "Peru yangi soli",
+            "Peru soli",
         }
         PGK{
             "PGK",
@@ -1164,8 +1164,8 @@
             other{"Panama balboasi"}
         }
         PEN{
-            one{"Peru yangi soli"}
-            other{"Peru yangi soli"}
+            one{"Peru soli"}
+            other{"Peru soli"}
         }
         PGK{
             one{"Papua – Yangi Gvineya kinasi"}
@@ -1372,5 +1372,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/curr/uz_Arab.txt b/source/data/curr/uz_Arab.txt
index 6985c7f..549a9d8 100644
--- a/source/data/curr/uz_Arab.txt
+++ b/source/data/curr/uz_Arab.txt
@@ -8,5 +8,5 @@
             "افغانی",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/uz_Cyrl.txt b/source/data/curr/uz_Cyrl.txt
index bedbc13..cd5bc52 100644
--- a/source/data/curr/uz_Cyrl.txt
+++ b/source/data/curr/uz_Cyrl.txt
@@ -165,7 +165,7 @@
         }
         PEN{
             "PEN",
-            "Перу нуево сол",
+            "Перу сол",
         }
         PYG{
             "PYG",
@@ -370,8 +370,8 @@
             other{"Панама бальбоаси"}
         }
         PEN{
-            one{"Перу нуево сол"}
-            other{"Перу нуево сол"}
+            one{"Перу сол"}
+            other{"Перу сол"}
         }
         PYG{
             one{"Парагвай гуарани"}
@@ -414,5 +414,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/uz_Latn.txt b/source/data/curr/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/curr/uz_Latn.txt
+++ b/source/data/curr/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/vai.txt b/source/data/curr/vai.txt
index 1e0b4d0..8b9588f 100644
--- a/source/data/curr/vai.txt
+++ b/source/data/curr/vai.txt
@@ -215,5 +215,5 @@
             "ꔽꕓꖜꔃ ꕜꕞ",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/vai_Latn.txt b/source/data/curr/vai_Latn.txt
index cbff948..634b857 100644
--- a/source/data/curr/vai_Latn.txt
+++ b/source/data/curr/vai_Latn.txt
@@ -220,5 +220,5 @@
             "Zimbhabhuwe Dala",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/vai_Vaii.txt b/source/data/curr/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/curr/vai_Vaii.txt
+++ b/source/data/curr/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/vi.txt b/source/data/curr/vi.txt
index dc3df77..d5a20b2 100644
--- a/source/data/curr/vi.txt
+++ b/source/data/curr/vi.txt
@@ -760,7 +760,7 @@
         }
         PEN{
             "PEN",
-            "Nuevo Sol Peru",
+            "Sol Peru",
         }
         PES{
             "PES",
@@ -1589,7 +1589,7 @@
             other{"Balboa Panama"}
         }
         PEN{
-            other{"Nuevo Sol Peru"}
+            other{"Sol Peru"}
         }
         PGK{
             other{"Kina Papua New Guinean"}
@@ -1748,5 +1748,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/curr/vun.txt b/source/data/curr/vun.txt
index 7b64207..7cc1d61 100644
--- a/source/data/curr/vun.txt
+++ b/source/data/curr/vun.txt
@@ -227,5 +227,5 @@
             "Dola ya Zimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/wae.txt b/source/data/curr/wae.txt
index f78f2a8..2774104 100644
--- a/source/data/curr/wae.txt
+++ b/source/data/curr/wae.txt
@@ -81,5 +81,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/xog.txt b/source/data/curr/xog.txt
index 04d5bfb..cd2635d 100644
--- a/source/data/curr/xog.txt
+++ b/source/data/curr/xog.txt
@@ -223,5 +223,5 @@
             "Doola ey’eZimbabwe",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/yav.txt b/source/data/curr/yav.txt
index cc30d50..1774f8f 100644
--- a/source/data/curr/yav.txt
+++ b/source/data/curr/yav.txt
@@ -95,5 +95,5 @@
             "́faláŋɛ u kɔmɔ́ɔl",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/yi.txt b/source/data/curr/yi.txt
index c551fcb..5fe010d 100644
--- a/source/data/curr/yi.txt
+++ b/source/data/curr/yi.txt
@@ -105,5 +105,5 @@
             other{"אומבאַוואוסטע וואַלוטע"}
         }
     }
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/yo.txt b/source/data/curr/yo.txt
index 6f6ad16..8f82b2f 100644
--- a/source/data/curr/yo.txt
+++ b/source/data/curr/yo.txt
@@ -230,5 +230,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/yo_BJ.txt b/source/data/curr/yo_BJ.txt
index 78a9936..44161d1 100644
--- a/source/data/curr/yo_BJ.txt
+++ b/source/data/curr/yo_BJ.txt
@@ -215,5 +215,5 @@
             "Dɔla ti Orílɛ́ède Siibabuwe",
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/yue.txt b/source/data/curr/yue.txt
index 945c85d..729976e 100644
--- a/source/data/curr/yue.txt
+++ b/source/data/curr/yue.txt
@@ -780,7 +780,7 @@
         }
         PEN{
             "PEN",
-            "秘魯新太陽幣",
+            "秘魯太陽幣",
         }
         PES{
             "PES",
@@ -1878,7 +1878,7 @@
             other{"祕魯因蒂"}
         }
         PEN{
-            other{"秘魯新太陽幣"}
+            other{"秘魯太陽幣"}
         }
         PES{
             other{"秘魯索爾 (1863–1965)"}
@@ -2193,5 +2193,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/curr/zgh.txt b/source/data/curr/zgh.txt
index 3a4f6b0..9a4dbf3 100644
--- a/source/data/curr/zgh.txt
+++ b/source/data/curr/zgh.txt
@@ -234,5 +234,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh.txt b/source/data/curr/zh.txt
index ec76630..dfd8477 100644
--- a/source/data/curr/zh.txt
+++ b/source/data/curr/zh.txt
@@ -776,7 +776,7 @@
         }
         PEN{
             "PEN",
-            "秘鲁新索尔",
+            "秘鲁索尔",
         }
         PES{
             "PES",
@@ -1854,7 +1854,7 @@
             other{"秘鲁印第"}
         }
         PEN{
-            other{"秘鲁新索尔"}
+            other{"秘鲁索尔"}
         }
         PES{
             other{"秘鲁索尔 (1863–1965)"}
@@ -2118,5 +2118,5 @@
     CurrencyUnitPatterns{
         other{"{0}{1}"}
     }
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
 }
diff --git a/source/data/curr/zh_Hans.txt b/source/data/curr/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/curr/zh_Hans.txt
+++ b/source/data/curr/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh_Hans_HK.txt b/source/data/curr/zh_Hans_HK.txt
index d7639be..74da7ad 100644
--- a/source/data/curr/zh_Hans_HK.txt
+++ b/source/data/curr/zh_Hans_HK.txt
@@ -29,5 +29,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh_Hans_MO.txt b/source/data/curr/zh_Hans_MO.txt
index dd8efaf..52d1666 100644
--- a/source/data/curr/zh_Hans_MO.txt
+++ b/source/data/curr/zh_Hans_MO.txt
@@ -29,5 +29,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh_Hans_SG.txt b/source/data/curr/zh_Hans_SG.txt
index 682a9c2..764434c 100644
--- a/source/data/curr/zh_Hans_SG.txt
+++ b/source/data/curr/zh_Hans_SG.txt
@@ -29,5 +29,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh_Hant.txt b/source/data/curr/zh_Hant.txt
index 86f051a..0cce49e 100644
--- a/source/data/curr/zh_Hant.txt
+++ b/source/data/curr/zh_Hant.txt
@@ -781,11 +781,11 @@
         }
         PEN{
             "PEN",
-            "秘魯新太陽幣",
+            "秘魯太陽幣",
         }
         PES{
             "PES",
-            "秘魯索爾 (1863–1965)",
+            "秘魯太陽幣 (1863–1965)",
         }
         PGK{
             "PGK",
@@ -1878,10 +1878,10 @@
             other{"祕魯因蒂"}
         }
         PEN{
-            other{"秘魯新太陽幣"}
+            other{"秘魯太陽幣"}
         }
         PES{
-            other{"秘魯索爾 (1863–1965)"}
+            other{"秘魯太陽幣 (1863–1965)"}
         }
         PGK{
             other{"巴布亞紐幾內亞基那"}
@@ -2193,5 +2193,5 @@
     CurrencyUnitPatterns{
         other{"{0} {1}"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
 }
diff --git a/source/data/curr/zh_Hant_HK.txt b/source/data/curr/zh_Hant_HK.txt
index ebdffc4..a094df0 100644
--- a/source/data/curr/zh_Hant_HK.txt
+++ b/source/data/curr/zh_Hant_HK.txt
@@ -449,5 +449,5 @@
             other{"贊比亞克瓦查"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zh_Hant_MO.txt b/source/data/curr/zh_Hant_MO.txt
index 8225e93..bb9d00f 100644
--- a/source/data/curr/zh_Hant_MO.txt
+++ b/source/data/curr/zh_Hant_MO.txt
@@ -8,5 +8,5 @@
             "澳門元",
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/curr/zu.txt b/source/data/curr/zu.txt
index 45c6b12..8347ad5 100644
--- a/source/data/curr/zu.txt
+++ b/source/data/curr/zu.txt
@@ -1372,5 +1372,5 @@
         one{"{0} {1}"}
         other{"{0} {1}"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/icu-coll-deprecates.xml b/source/data/icu-coll-deprecates.xml
index f2802be..d418fa7 100644
--- a/source/data/icu-coll-deprecates.xml
+++ b/source/data/icu-coll-deprecates.xml
@@ -9,6 +9,7 @@
 */
 -->
 <deprecates>
+	<alias from="ars" to="ar"/>
 	<alias from="de__PHONEBOOK" to="de"  rbpath="/collations/default" value="phonebook"/>
 	<alias from="es__TRADITIONAL" to="es" rbpath="/collations/default" value="traditional"/>
 	<alias from="in" to="id" />
diff --git a/source/data/icu-config.xml b/source/data/icu-config.xml
index 9c44e85..48a2420 100644
--- a/source/data/icu-config.xml
+++ b/source/data/icu-config.xml
@@ -49,6 +49,7 @@
 		<include locales="ar_TD"/>
 		<include locales="ar_TN"/>
 		<include locales="ar_YE"/>
+		<include locales="ars"/>
 		<include locales="as"/>
 		<include locales="as_IN"/>
 		<include locales="asa"/>
@@ -252,6 +253,7 @@
 		<include locales="es_AR"/>
 		<include locales="es_BO"/>
 		<include locales="es_BR"/>
+		<include locales="es_BZ"/>
 		<include locales="es_CL"/>
 		<include locales="es_CO"/>
 		<include locales="es_CR"/>
@@ -396,6 +398,7 @@
 		<include locales="it_CH"/>
 		<include locales="it_IT"/>
 		<include locales="it_SM"/>
+		<include locales="it_VA"/>
 		<include locales="iw"/>
 		<include locales="iw_IL"/>
 		<include locales="ja"/>
diff --git a/source/data/icu-locale-deprecates.xml b/source/data/icu-locale-deprecates.xml
index 566454d..fb55e58 100644
--- a/source/data/icu-locale-deprecates.xml
+++ b/source/data/icu-locale-deprecates.xml
@@ -9,6 +9,7 @@
 */
 -->
 <deprecates>
+    <alias from="ars" to="ar_SA"/>
     <alias from="az_AZ" to="az_Latn_AZ"/>
     <alias from="bs_BA" to="bs_Latn_BA" />
     <alias from="en_NH" to="en_VU"/>
diff --git a/source/data/icu-rbnf-deprecates.xml b/source/data/icu-rbnf-deprecates.xml
index 084219f..22df252 100644
--- a/source/data/icu-rbnf-deprecates.xml
+++ b/source/data/icu-rbnf-deprecates.xml
@@ -9,6 +9,7 @@
 */
 -->
 <deprecates>
+   <alias from="ars" to="ar" />
    <alias from="es_DO" to="es_419" />
    <alias from="es_GT" to="es_419" />
    <alias from="es_HN" to="es_419" />
diff --git a/source/data/in/ubidi.icu b/source/data/in/ubidi.icu
index 6e5774c..8cd7c55 100644
--- a/source/data/in/ubidi.icu
+++ b/source/data/in/ubidi.icu
Binary files differ
diff --git a/source/data/in/uprops.icu b/source/data/in/uprops.icu
index 9e3ce0e..3a986d9 100644
--- a/source/data/in/uprops.icu
+++ b/source/data/in/uprops.icu
Binary files differ
diff --git a/source/data/lang/af.txt b/source/data/lang/af.txt
index 4e7fc76..456b955 100644
--- a/source/data/lang/af.txt
+++ b/source/data/lang/af.txt
@@ -618,7 +618,7 @@
             vaii{"Vai-syfers"}
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – Alle"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/agq.txt b/source/data/lang/agq.txt
index a106aba..0174ce5 100644
--- a/source/data/lang/agq.txt
+++ b/source/data/lang/agq.txt
@@ -48,5 +48,5 @@
         zh{"Chàenê"}
         zu{"Zulù"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ak.txt b/source/data/lang/ak.txt
index d62289b..169f4db 100644
--- a/source/data/lang/ak.txt
+++ b/source/data/lang/ak.txt
@@ -47,5 +47,5 @@
         zh{"Kyaena kasa"}
         zu{"Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/am.txt b/source/data/lang/am.txt
index a2a4049..ea84558 100644
--- a/source/data/lang/am.txt
+++ b/source/data/lang/am.txt
@@ -688,7 +688,7 @@
             vaii{"የቫይ አሃዞች"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — ሁሉም"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ar.txt b/source/data/lang/ar.txt
index 28cc8de..5d31d4f 100644
--- a/source/data/lang/ar.txt
+++ b/source/data/lang/ar.txt
@@ -849,7 +849,7 @@
         VALENCIA{"بلنسية"}
         WADEGILE{"المندرين باللاتينية - ويد–جيلز"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
     characterLabelPattern{
         all{"{0} - الكل"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ar_EG.txt b/source/data/lang/ar_EG.txt
index 1cf21a2..f225848 100644
--- a/source/data/lang/ar_EG.txt
+++ b/source/data/lang/ar_EG.txt
@@ -4,5 +4,5 @@
     Languages{
         da{"الدنماركية"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ar_LY.txt b/source/data/lang/ar_LY.txt
index e5327e3..8ed8993 100644
--- a/source/data/lang/ar_LY.txt
+++ b/source/data/lang/ar_LY.txt
@@ -12,5 +12,5 @@
         sw_CD{"السواحيلية الكونغولية"}
         ti{"التيغرينية"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ar_SA.txt b/source/data/lang/ar_SA.txt
index 3173c6e..58b8eac 100644
--- a/source/data/lang/ar_SA.txt
+++ b/source/data/lang/ar_SA.txt
@@ -13,5 +13,5 @@
         sw_CD{"السواحيلية الكونغولية"}
         ti{"التيغرينية"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ars.txt b/source/data/lang/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/lang/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/lang/as.txt b/source/data/lang/as.txt
index 9d2cb3b..754c590 100644
--- a/source/data/lang/as.txt
+++ b/source/data/lang/as.txt
@@ -33,5 +33,5 @@
             traditional{"পৰম্পৰাগতভাবে শৃঙ্খলাবদ্ধ কৰাৰ ক্ৰম"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/asa.txt b/source/data/lang/asa.txt
index 3351bab..f11e423 100644
--- a/source/data/lang/asa.txt
+++ b/source/data/lang/asa.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kidhulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ast.txt b/source/data/lang/ast.txt
index e519969..4a43e14 100644
--- a/source/data/lang/ast.txt
+++ b/source/data/lang/ast.txt
@@ -1077,7 +1077,7 @@
         VALLADER{"VALLADER"}
         WADEGILE{"romanización de Wade-Giles"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — too"}
         compatibility{"{0} — compatibilidá"}
diff --git a/source/data/lang/az.txt b/source/data/lang/az.txt
index 9e9276b..716ca96 100644
--- a/source/data/lang/az.txt
+++ b/source/data/lang/az.txt
@@ -743,7 +743,7 @@
             tibt{"Tibet Rəqəmləri"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Bütün"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/az_Cyrl.txt b/source/data/lang/az_Cyrl.txt
index 10c286e..6ace69e 100644
--- a/source/data/lang/az_Cyrl.txt
+++ b/source/data/lang/az_Cyrl.txt
@@ -399,7 +399,7 @@
     Scripts{
         Cyrl{"Кирил"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
     codePatterns{
         language{"Дил: {0}"}
         script{"Скрипт: {0}"}
diff --git a/source/data/lang/az_Latn.txt b/source/data/lang/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/lang/az_Latn.txt
+++ b/source/data/lang/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/bas.txt b/source/data/lang/bas.txt
index a01c4dc..71912d5 100644
--- a/source/data/lang/bas.txt
+++ b/source/data/lang/bas.txt
@@ -48,5 +48,5 @@
         zh{"Hɔp u kinà"}
         zu{"Hɔp u zulù"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/be.txt b/source/data/lang/be.txt
index 3e15478..2a3fa3b 100644
--- a/source/data/lang/be.txt
+++ b/source/data/lang/be.txt
@@ -565,7 +565,7 @@
             tibt{"тыбецкія лічбы"}
         }
     }
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Усё"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/bem.txt b/source/data/lang/bem.txt
index 41452cf..342a4c2 100644
--- a/source/data/lang/bem.txt
+++ b/source/data/lang/bem.txt
@@ -48,5 +48,5 @@
         zh{"Ichi Chainisi"}
         zu{"Ichi Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/bez.txt b/source/data/lang/bez.txt
index 5ac0372..284fecb 100644
--- a/source/data/lang/bez.txt
+++ b/source/data/lang/bez.txt
@@ -48,5 +48,5 @@
         zh{"Hichina"}
         zu{"Hizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/bg.txt b/source/data/lang/bg.txt
index c4bdda4..2f483d8 100644
--- a/source/data/lang/bg.txt
+++ b/source/data/lang/bg.txt
@@ -828,7 +828,7 @@
         VALENCIA{"Валенсиански"}
         WADEGILE{"Уейд-Джайлс романизация"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
     characterLabelPattern{
         all{"{0} – всички"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/bm.txt b/source/data/lang/bm.txt
index 89a136f..ff189a2 100644
--- a/source/data/lang/bm.txt
+++ b/source/data/lang/bm.txt
@@ -48,5 +48,5 @@
         zh{"siniwakan"}
         zu{"zulukan"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/bn.txt b/source/data/lang/bn.txt
index a65e093..7f5f800 100644
--- a/source/data/lang/bn.txt
+++ b/source/data/lang/bn.txt
@@ -826,7 +826,7 @@
             vaii{"ভাই সংখ্যা"}
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — সমস্ত"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/bn_IN.txt b/source/data/lang/bn_IN.txt
index 59a8136..3dbfa9d 100644
--- a/source/data/lang/bn_IN.txt
+++ b/source/data/lang/bn_IN.txt
@@ -4,5 +4,5 @@
     Languages{
         ksh{"কোলোনিয়ান"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/bo.txt b/source/data/lang/bo.txt
index 71496d3..ab58a79 100644
--- a/source/data/lang/bo.txt
+++ b/source/data/lang/bo.txt
@@ -21,5 +21,5 @@
         Tibt{"བོད་ཡིག་"}
         Zxxx{"སྙན་བརྒྱུད། ཡིག་རིགས་སུ་མ་བཀོད་པའི་ཟིན་ཐོ།"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/br.txt b/source/data/lang/br.txt
index 6332778..0030014 100644
--- a/source/data/lang/br.txt
+++ b/source/data/lang/br.txt
@@ -732,7 +732,7 @@
         VALLADER{"rannyezh romañchek Vallader"}
         WADEGILE{"romanekadur Wade-Giles"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"{0}"}
         script{"{0}"}
diff --git a/source/data/lang/brx.txt b/source/data/lang/brx.txt
index d819bf6..f240e30 100644
--- a/source/data/lang/brx.txt
+++ b/source/data/lang/brx.txt
@@ -609,7 +609,7 @@
         SOLBA{"श्टोलविज़्ज़ा या सोलबीका डायलेक्ट"}
         TARASK{"तारास्कीएवीचा वर्तनी"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         script{"देवनागरी: {0}"}
         territory{"क्षेत्र:भारत {0}"}
diff --git a/source/data/lang/bs.txt b/source/data/lang/bs.txt
index 8ce8efd..8839fd6 100644
--- a/source/data/lang/bs.txt
+++ b/source/data/lang/bs.txt
@@ -788,7 +788,7 @@
         TARASK{"Taraskijevica ortografija"}
         VALENCIA{"Valencijski"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — sve"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/bs_Cyrl.txt b/source/data/lang/bs_Cyrl.txt
index 81e2bd5..9361102 100644
--- a/source/data/lang/bs_Cyrl.txt
+++ b/source/data/lang/bs_Cyrl.txt
@@ -702,7 +702,7 @@
         TARASK{"Тараскијевичка ортографија"}
         VALENCIA{"Валенцијска"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
     codePatterns{
         language{"{0}"}
         script{"{0}"}
diff --git a/source/data/lang/bs_Latn.txt b/source/data/lang/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/lang/bs_Latn.txt
+++ b/source/data/lang/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ca.txt b/source/data/lang/ca.txt
index 831943e..afe65cf 100644
--- a/source/data/lang/ca.txt
+++ b/source/data/lang/ca.txt
@@ -994,7 +994,7 @@
         VALLADER{"baix engiadinès"}
         WADEGILE{"romanització Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — tot"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ce.txt b/source/data/lang/ce.txt
index 1d04683..dce0cd3 100644
--- a/source/data/lang/ce.txt
+++ b/source/data/lang/ce.txt
@@ -295,7 +295,7 @@
             persian{"гӀажарийн"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Мотт: {0}"}
         script{"Скрипт: {0}"}
diff --git a/source/data/lang/cgg.txt b/source/data/lang/cgg.txt
index 4a6e0b6..d0775f4 100644
--- a/source/data/lang/cgg.txt
+++ b/source/data/lang/cgg.txt
@@ -48,5 +48,5 @@
         zh{"Oruchaina"}
         zu{"Oruzuru"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/chr.txt b/source/data/lang/chr.txt
index 956b04e..79722e0 100644
--- a/source/data/lang/chr.txt
+++ b/source/data/lang/chr.txt
@@ -537,7 +537,7 @@
             tibt{"ᏘᏇᏔᏂ ᏗᏎᏍᏗ"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     characterLabelPattern{
         all{"{0} — ᏂᎦᏓ"}
         compatibility{"{0} — ᎤᏠᏯᏉᏗᏙᎵᎩ"}
diff --git a/source/data/lang/ckb.txt b/source/data/lang/ckb.txt
index 7aa0db2..7a0952a 100644
--- a/source/data/lang/ckb.txt
+++ b/source/data/lang/ckb.txt
@@ -137,5 +137,5 @@
         Thaa{"تانە"}
         Thai{"تایلەندی"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/cs.txt b/source/data/lang/cs.txt
index 92e2556..e67c457 100644
--- a/source/data/lang/cs.txt
+++ b/source/data/lang/cs.txt
@@ -957,7 +957,7 @@
         SCOTLAND{"angličtina (Skotsko)"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – vše"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/cy.txt b/source/data/lang/cy.txt
index 9c1be96..c5b315c 100644
--- a/source/data/lang/cy.txt
+++ b/source/data/lang/cy.txt
@@ -732,7 +732,7 @@
         VAIDIKA{"VAIDIKA"}
         VALLADER{"VALLADER"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Popeth"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/da.txt b/source/data/lang/da.txt
index eb220e7..602faf8 100644
--- a/source/data/lang/da.txt
+++ b/source/data/lang/da.txt
@@ -953,7 +953,7 @@
         VALLADER{"vallader"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — alle"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/dav.txt b/source/data/lang/dav.txt
index e9526d0..3c6991c 100644
--- a/source/data/lang/dav.txt
+++ b/source/data/lang/dav.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/de.txt b/source/data/lang/de.txt
index 4cbb899..936fbf8 100644
--- a/source/data/lang/de.txt
+++ b/source/data/lang/de.txt
@@ -1016,7 +1016,7 @@
         VALENCIA{"Valencianisch"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Alle"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/de_AT.txt b/source/data/lang/de_AT.txt
index bee83a4..5ae553a 100644
--- a/source/data/lang/de_AT.txt
+++ b/source/data/lang/de_AT.txt
@@ -16,5 +16,5 @@
         sh{"Serbokroatisch"}
         szl{"Schlesisch"}
     }
-    Version{"2.1.28.73"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/de_CH.txt b/source/data/lang/de_CH.txt
index 64c4424..2e27c79 100644
--- a/source/data/lang/de_CH.txt
+++ b/source/data/lang/de_CH.txt
@@ -34,5 +34,5 @@
             ussystem{"US Mass-System"}
         }
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/de_LU.txt b/source/data/lang/de_LU.txt
index ecc8f30..ca86d1c 100644
--- a/source/data/lang/de_LU.txt
+++ b/source/data/lang/de_LU.txt
@@ -4,5 +4,5 @@
     Languages{
         be{"Belarussisch"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/dje.txt b/source/data/lang/dje.txt
index 8a1cbbf..faa17e0 100644
--- a/source/data/lang/dje.txt
+++ b/source/data/lang/dje.txt
@@ -48,5 +48,5 @@
         zh{"Sinuwa senni"}
         zu{"Zulu senni"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/dsb.txt b/source/data/lang/dsb.txt
index 9d10367..a6053b2 100644
--- a/source/data/lang/dsb.txt
+++ b/source/data/lang/dsb.txt
@@ -378,7 +378,7 @@
             tibt{"tibetske cyfry"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Rěc: {0}"}
         script{"Pismo: {0}"}
diff --git a/source/data/lang/dua.txt b/source/data/lang/dua.txt
index 8ac3716..4b23fbb 100644
--- a/source/data/lang/dua.txt
+++ b/source/data/lang/dua.txt
@@ -4,5 +4,5 @@
     Languages{
         dua{"duálá"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/dyo.txt b/source/data/lang/dyo.txt
index a0575a0..96c3576 100644
--- a/source/data/lang/dyo.txt
+++ b/source/data/lang/dyo.txt
@@ -48,5 +48,5 @@
         zh{"sinua"}
         zu{"sulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/dz.txt b/source/data/lang/dz.txt
index c75fb77..482613a 100644
--- a/source/data/lang/dz.txt
+++ b/source/data/lang/dz.txt
@@ -234,7 +234,7 @@
             tibt{"ང་བཅས་ཀྱི་ཨང་ཡིག"}
         }
     }
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
     codePatterns{
         language{"ཁ་སྐད་: {0}"}
         script{"ཡིག་གཟུགས་: {0}"}
diff --git a/source/data/lang/ebu.txt b/source/data/lang/ebu.txt
index 545028f..6c7d5d2 100644
--- a/source/data/lang/ebu.txt
+++ b/source/data/lang/ebu.txt
@@ -48,5 +48,5 @@
         zh{"Kĩchina"}
         zu{"Kĩzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ee.txt b/source/data/lang/ee.txt
index 7398ef0..157823a 100644
--- a/source/data/lang/ee.txt
+++ b/source/data/lang/ee.txt
@@ -299,7 +299,7 @@
             tibt{"tibet digitwo"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"gbegbɔgblɔ {0}"}
         script{"gbeŋɔŋlɔ {0}"}
diff --git a/source/data/lang/el.txt b/source/data/lang/el.txt
index a231b0a..a3ee633 100644
--- a/source/data/lang/el.txt
+++ b/source/data/lang/el.txt
@@ -876,7 +876,7 @@
         VALENCIA{"Βαλενθιανά"}
         WADEGILE{"Εκλατινισμένα Γουάντ-Γκιλς"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Όλα"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/en.txt b/source/data/lang/en.txt
index 4fbf2a9..1ad938e 100644
--- a/source/data/lang/en.txt
+++ b/source/data/lang/en.txt
@@ -17,6 +17,7 @@
         d0{"Transform Destination"}
         em{"Emoji Presentation Style"}
         fw{"First day of week"}
+        h0{"Mixed-in Language"}
         hc{"Hour Cycle (12 vs 24)"}
         i0{"Input Method"}
         k0{"Keyboard"}
@@ -934,8 +935,12 @@
             zhuyin{"Zhuyin Sort Order"}
         }
         d0{
+            accents{"To Accented Characters From ASCII Sequence"}
             ascii{"To ASCII"}
+            casefold{"To Casefolded"}
             charname{"To Unicode Character Names"}
+            fcc{"To Unicode FCC"}
+            fcd{"To Unicode FCD"}
             fwidth{"To Fullwidth"}
             hex{"To Hexadecimal Codes"}
             hwidth{"To Halfwidth"}
@@ -945,6 +950,9 @@
             nfkc{"To Unicode NFKC"}
             nfkd{"To Unicode NFKD"}
             npinyin{"To Pinyin With Numeric Tones"}
+            null{"No Change"}
+            publish{"To Publishing Characters From ASCII"}
+            remove{"To Empty String"}
             title{"To Titlecase"}
             upper{"To Uppercase"}
         }
@@ -962,12 +970,52 @@
             tue{"First Day of Week Is Tuesday"}
             wed{"First Day of Week Is Wednesday"}
         }
+        h0{
+            hybrid{"Hybrid Language"}
+        }
         hc{
             h11{"12 Hour System (0–11)"}
             h12{"12 Hour System (1–12)"}
             h23{"24 Hour System (0–23)"}
             h24{"24 Hour System (1–24)"}
         }
+        i0{
+            handwrit{"Handwriting Input Method"}
+            pinyin{"Pinyin Input Method"}
+            und{"Unspecified Input Method"}
+            wubi{"Wubi Input Method"}
+        }
+        k0{
+            101key{"101-Key Keyboard"}
+            102key{"102-Key Keyboard"}
+            600dpi{"600 dpi Keyboard"}
+            768dpi{"768 dpi Keyboard"}
+            android{"Android Keyboard"}
+            azerty{"AZERTY-Based Keyboard"}
+            chromeos{"ChromeOS Keyboard"}
+            colemak{"Colemak Keyboard"}
+            dvorak{"Dvorak Keyboard"}
+            dvorakl{"Dvorak Left-Handed Keyboard"}
+            dvorakr{"Dvorak Right-Handed Keyboard"}
+            el220{"Greek 220 Keyboard"}
+            el319{"Greek 319 Keyboard"}
+            extended{"Keyboard With Many Extra Characters"}
+            googlevk{"Google Virtual Keyboard"}
+            isiri{"Persian ISIRI Keyboard"}
+            legacy{"Legacy Keyboard"}
+            lt1205{"Lithuanian LST 1205 Keyboard"}
+            lt1582{"Lithuanian LST 1582 Keyboard"}
+            nutaaq{"Inuktitut Nutaaq Keyboard"}
+            osx{"macOS Keyboard"}
+            patta{"Thai Pattachote Keyboard"}
+            qwerty{"QWERTY-Based Keyboard"}
+            qwertz{"QWERTZ-Based Keyboard"}
+            ta99{"Tamil 99 Keyboard"}
+            und{"Unspecified Keyboard"}
+            var{"Keyboard Variant"}
+            viqr{"Vietnamese VIQR Keyboard"}
+            windows{"Windows Keyboard"}
+        }
         kr{
             currency{"Currency"}
             digit{"Digits"}
@@ -992,8 +1040,17 @@
             normal{"Normal Line Breaks For Words"}
         }
         m0{
-            bgn{"BGN"}
-            ungegn{"UNGEGN"}
+            alaloc{"US ALA-LOC Transliteration"}
+            bgn{"US BGN Transliteration"}
+            buckwalt{"Buckwalter Arabic Transliteration"}
+            din{"German DIN Transliteration"}
+            gost{"CIS GOST Transliteration"}
+            iso{"ISO Transliteration"}
+            mcst{"Korean MCST Transliteration"}
+            mns{"Mongolian National Standard Transliteration"}
+            prprname{"Personal Name Transliteration Variant"}
+            satts{"Standard Arabic Technical Transliteration"}
+            ungegn{"UN GEGN Transliteration"}
         }
         ms{
             metric{"Metric System"}
@@ -1082,10 +1139,21 @@
             vaii{"Vai Digits"}
             wara{"Warang Citi Digits"}
         }
+        s0{
+            accents{"From Accented Characters To ASCII Sequence"}
+            ascii{"From ASCII"}
+            hex{"From Hexadecimal Codes"}
+            npinyin{"From Pinyin With Numeric Tones"}
+            publish{"From Publishing Punctuation To ASCII"}
+            zawgyi{"From Zawgyi Myanmar Encoding"}
+        }
         ss{
             none{"Sentence Breaks Without Abbreviation Handling"}
             standard{"Suppress Sentence Breaks After Standard Abbreviations"}
         }
+        t0{
+            und{"Unspecified Machine Translation"}
+        }
         va{
             posix{"POSIX Compliant Locale"}
         }
@@ -1152,7 +1220,7 @@
         VALENCIA{"Valencian"}
         WADEGILE{"Wade-Giles Romanization"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — all"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/en_001.txt b/source/data/lang/en_001.txt
index 99d6676..cd6f952 100644
--- a/source/data/lang/en_001.txt
+++ b/source/data/lang/en_001.txt
@@ -10,5 +10,5 @@
             yes{"Sort Unicode Normalised"}
         }
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_150.txt b/source/data/lang/en_150.txt
index 4fa9550..f2fe9fe 100644
--- a/source/data/lang/en_150.txt
+++ b/source/data/lang/en_150.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_150{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_AG.txt b/source/data/lang/en_AG.txt
index 85efa69..ed7f63d 100644
--- a/source/data/lang/en_AG.txt
+++ b/source/data/lang/en_AG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_AI.txt b/source/data/lang/en_AI.txt
index b2ab82a..a92294b 100644
--- a/source/data/lang/en_AI.txt
+++ b/source/data/lang/en_AI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_AT.txt b/source/data/lang/en_AT.txt
index 13def3a..f72039e 100644
--- a/source/data/lang/en_AT.txt
+++ b/source/data/lang/en_AT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AT{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_AU.txt b/source/data/lang/en_AU.txt
index 177eb03..84cdf1d 100644
--- a/source/data/lang/en_AU.txt
+++ b/source/data/lang/en_AU.txt
@@ -12,5 +12,5 @@
             ethiopic{"Ethiopian Calendar"}
         }
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
 }
diff --git a/source/data/lang/en_BB.txt b/source/data/lang/en_BB.txt
index 0cc013f..2c2c05e 100644
--- a/source/data/lang/en_BB.txt
+++ b/source/data/lang/en_BB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_BE.txt b/source/data/lang/en_BE.txt
index 9772d91..a1471bc 100644
--- a/source/data/lang/en_BE.txt
+++ b/source/data/lang/en_BE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_BM.txt b/source/data/lang/en_BM.txt
index 817b1d4..a07478e 100644
--- a/source/data/lang/en_BM.txt
+++ b/source/data/lang/en_BM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_BS.txt b/source/data/lang/en_BS.txt
index de6b101..3457002 100644
--- a/source/data/lang/en_BS.txt
+++ b/source/data/lang/en_BS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_BW.txt b/source/data/lang/en_BW.txt
index b159f1d..e9eeab0 100644
--- a/source/data/lang/en_BW.txt
+++ b/source/data/lang/en_BW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_BZ.txt b/source/data/lang/en_BZ.txt
index 1c3fa39..8807b66 100644
--- a/source/data/lang/en_BZ.txt
+++ b/source/data/lang/en_BZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CA.txt b/source/data/lang/en_CA.txt
index 90f6508..1932113 100644
--- a/source/data/lang/en_CA.txt
+++ b/source/data/lang/en_CA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CA{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CC.txt b/source/data/lang/en_CC.txt
index 2859e20..67fe580 100644
--- a/source/data/lang/en_CC.txt
+++ b/source/data/lang/en_CC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CH.txt b/source/data/lang/en_CH.txt
index 135de38..060cae5 100644
--- a/source/data/lang/en_CH.txt
+++ b/source/data/lang/en_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CH{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CK.txt b/source/data/lang/en_CK.txt
index ea59600..8f3b9a4 100644
--- a/source/data/lang/en_CK.txt
+++ b/source/data/lang/en_CK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CM.txt b/source/data/lang/en_CM.txt
index c21b645..e3da63d 100644
--- a/source/data/lang/en_CM.txt
+++ b/source/data/lang/en_CM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CX.txt b/source/data/lang/en_CX.txt
index ae52aee..4e3c98e 100644
--- a/source/data/lang/en_CX.txt
+++ b/source/data/lang/en_CX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_CY.txt b/source/data/lang/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/lang/en_CY.txt
+++ b/source/data/lang/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_DE.txt b/source/data/lang/en_DE.txt
index 51c69cb..a8f9cde 100644
--- a/source/data/lang/en_DE.txt
+++ b/source/data/lang/en_DE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_DG.txt b/source/data/lang/en_DG.txt
index 8b4d817..bd59dcb 100644
--- a/source/data/lang/en_DG.txt
+++ b/source/data/lang/en_DG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_DK.txt b/source/data/lang/en_DK.txt
index 69e0cad..9b83dfa 100644
--- a/source/data/lang/en_DK.txt
+++ b/source/data/lang/en_DK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DK{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_DM.txt b/source/data/lang/en_DM.txt
index 6811cff..067f54d 100644
--- a/source/data/lang/en_DM.txt
+++ b/source/data/lang/en_DM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_ER.txt b/source/data/lang/en_ER.txt
index 82919fd..dac4b71 100644
--- a/source/data/lang/en_ER.txt
+++ b/source/data/lang/en_ER.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ER{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_FI.txt b/source/data/lang/en_FI.txt
index 8906ed5..995f6cb 100644
--- a/source/data/lang/en_FI.txt
+++ b/source/data/lang/en_FI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_FJ.txt b/source/data/lang/en_FJ.txt
index b22339a..17022d5 100644
--- a/source/data/lang/en_FJ.txt
+++ b/source/data/lang/en_FJ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FJ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_FK.txt b/source/data/lang/en_FK.txt
index cf7774e..edbb4d8 100644
--- a/source/data/lang/en_FK.txt
+++ b/source/data/lang/en_FK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_FM.txt b/source/data/lang/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/lang/en_FM.txt
+++ b/source/data/lang/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GB.txt b/source/data/lang/en_GB.txt
index a60a578..fd3b6e8 100644
--- a/source/data/lang/en_GB.txt
+++ b/source/data/lang/en_GB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GD.txt b/source/data/lang/en_GD.txt
index 69be247..a006727 100644
--- a/source/data/lang/en_GD.txt
+++ b/source/data/lang/en_GD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GG.txt b/source/data/lang/en_GG.txt
index f898103..b91b6b8 100644
--- a/source/data/lang/en_GG.txt
+++ b/source/data/lang/en_GG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GH.txt b/source/data/lang/en_GH.txt
index 54ca446..50a4429 100644
--- a/source/data/lang/en_GH.txt
+++ b/source/data/lang/en_GH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GI.txt b/source/data/lang/en_GI.txt
index f74502b..e19c4d8 100644
--- a/source/data/lang/en_GI.txt
+++ b/source/data/lang/en_GI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GM.txt b/source/data/lang/en_GM.txt
index 48193f3..9448c85 100644
--- a/source/data/lang/en_GM.txt
+++ b/source/data/lang/en_GM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_GY.txt b/source/data/lang/en_GY.txt
index 53782ef..7c5333b 100644
--- a/source/data/lang/en_GY.txt
+++ b/source/data/lang/en_GY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_HK.txt b/source/data/lang/en_HK.txt
index 9ad2044..d43b56c 100644
--- a/source/data/lang/en_HK.txt
+++ b/source/data/lang/en_HK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_IE.txt b/source/data/lang/en_IE.txt
index 1cbdf50..94ab93c 100644
--- a/source/data/lang/en_IE.txt
+++ b/source/data/lang/en_IE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_IL.txt b/source/data/lang/en_IL.txt
index 55e362c..55a5091 100644
--- a/source/data/lang/en_IL.txt
+++ b/source/data/lang/en_IL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_IM.txt b/source/data/lang/en_IM.txt
index 50ab53d..3ccab11 100644
--- a/source/data/lang/en_IM.txt
+++ b/source/data/lang/en_IM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_IN.txt b/source/data/lang/en_IN.txt
index 420fb4f..0ef91df 100644
--- a/source/data/lang/en_IN.txt
+++ b/source/data/lang/en_IN.txt
@@ -16,5 +16,5 @@
             orya{"Oriya Digits"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_IO.txt b/source/data/lang/en_IO.txt
index d2c4f91..3f89192 100644
--- a/source/data/lang/en_IO.txt
+++ b/source/data/lang/en_IO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_JE.txt b/source/data/lang/en_JE.txt
index 9f48fef..66de22d 100644
--- a/source/data/lang/en_JE.txt
+++ b/source/data/lang/en_JE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_JM.txt b/source/data/lang/en_JM.txt
index 11356e7..ad3c905 100644
--- a/source/data/lang/en_JM.txt
+++ b/source/data/lang/en_JM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_KE.txt b/source/data/lang/en_KE.txt
index 6d669e8..0af301a 100644
--- a/source/data/lang/en_KE.txt
+++ b/source/data/lang/en_KE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_KI.txt b/source/data/lang/en_KI.txt
index 8624154..f671853 100644
--- a/source/data/lang/en_KI.txt
+++ b/source/data/lang/en_KI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_KN.txt b/source/data/lang/en_KN.txt
index b68c8f1..573c389 100644
--- a/source/data/lang/en_KN.txt
+++ b/source/data/lang/en_KN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_KY.txt b/source/data/lang/en_KY.txt
index febcc6f..0d60082 100644
--- a/source/data/lang/en_KY.txt
+++ b/source/data/lang/en_KY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_LC.txt b/source/data/lang/en_LC.txt
index b781315..7033a6a 100644
--- a/source/data/lang/en_LC.txt
+++ b/source/data/lang/en_LC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_LR.txt b/source/data/lang/en_LR.txt
index f1a2ce0..8d60973 100644
--- a/source/data/lang/en_LR.txt
+++ b/source/data/lang/en_LR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_LS.txt b/source/data/lang/en_LS.txt
index ce9cd01..61d557f 100644
--- a/source/data/lang/en_LS.txt
+++ b/source/data/lang/en_LS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MG.txt b/source/data/lang/en_MG.txt
index 983530e..f5b2bfd 100644
--- a/source/data/lang/en_MG.txt
+++ b/source/data/lang/en_MG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MO.txt b/source/data/lang/en_MO.txt
index 7995d51..7c06497 100644
--- a/source/data/lang/en_MO.txt
+++ b/source/data/lang/en_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MS.txt b/source/data/lang/en_MS.txt
index 195a417..28ef10d 100644
--- a/source/data/lang/en_MS.txt
+++ b/source/data/lang/en_MS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MT.txt b/source/data/lang/en_MT.txt
index 5602dfc..0d4bc8b 100644
--- a/source/data/lang/en_MT.txt
+++ b/source/data/lang/en_MT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MU.txt b/source/data/lang/en_MU.txt
index 65efaf3..f36ff7e 100644
--- a/source/data/lang/en_MU.txt
+++ b/source/data/lang/en_MU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MW.txt b/source/data/lang/en_MW.txt
index 8e440d4..8f5bed0 100644
--- a/source/data/lang/en_MW.txt
+++ b/source/data/lang/en_MW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_MY.txt b/source/data/lang/en_MY.txt
index 4722712..fc723c2 100644
--- a/source/data/lang/en_MY.txt
+++ b/source/data/lang/en_MY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NA.txt b/source/data/lang/en_NA.txt
index b7ebdac..17f6b27 100644
--- a/source/data/lang/en_NA.txt
+++ b/source/data/lang/en_NA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NA{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NF.txt b/source/data/lang/en_NF.txt
index 1ed7316..56b1a98 100644
--- a/source/data/lang/en_NF.txt
+++ b/source/data/lang/en_NF.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NF{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NG.txt b/source/data/lang/en_NG.txt
index a6752cd..8102534 100644
--- a/source/data/lang/en_NG.txt
+++ b/source/data/lang/en_NG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NL.txt b/source/data/lang/en_NL.txt
index d0f6862..4566eb3 100644
--- a/source/data/lang/en_NL.txt
+++ b/source/data/lang/en_NL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NL{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NR.txt b/source/data/lang/en_NR.txt
index 1c1d8e7..a66b87f 100644
--- a/source/data/lang/en_NR.txt
+++ b/source/data/lang/en_NR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NU.txt b/source/data/lang/en_NU.txt
index b2fde8f..86aa256 100644
--- a/source/data/lang/en_NU.txt
+++ b/source/data/lang/en_NU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_NZ.txt b/source/data/lang/en_NZ.txt
index 202fc58..4e14f9d 100644
--- a/source/data/lang/en_NZ.txt
+++ b/source/data/lang/en_NZ.txt
@@ -5,5 +5,5 @@
     Languages{
         mi{"Māori"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_PG.txt b/source/data/lang/en_PG.txt
index 58ac3ca..6146600 100644
--- a/source/data/lang/en_PG.txt
+++ b/source/data/lang/en_PG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_PH.txt b/source/data/lang/en_PH.txt
index 5264c40..04ac66a 100644
--- a/source/data/lang/en_PH.txt
+++ b/source/data/lang/en_PH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_PK.txt b/source/data/lang/en_PK.txt
index 0df7824..3d5d2f6 100644
--- a/source/data/lang/en_PK.txt
+++ b/source/data/lang/en_PK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_PN.txt b/source/data/lang/en_PN.txt
index cd620b3..8b83a8d 100644
--- a/source/data/lang/en_PN.txt
+++ b/source/data/lang/en_PN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_PW.txt b/source/data/lang/en_PW.txt
index 3825c9f..43ec73a 100644
--- a/source/data/lang/en_PW.txt
+++ b/source/data/lang/en_PW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_RW.txt b/source/data/lang/en_RW.txt
index efe55fe..1323a28 100644
--- a/source/data/lang/en_RW.txt
+++ b/source/data/lang/en_RW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_RW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SB.txt b/source/data/lang/en_SB.txt
index a81f9eb..08287c0 100644
--- a/source/data/lang/en_SB.txt
+++ b/source/data/lang/en_SB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SC.txt b/source/data/lang/en_SC.txt
index c907a3c..9c80308 100644
--- a/source/data/lang/en_SC.txt
+++ b/source/data/lang/en_SC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SD.txt b/source/data/lang/en_SD.txt
index 21a7710..8fef005 100644
--- a/source/data/lang/en_SD.txt
+++ b/source/data/lang/en_SD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SE.txt b/source/data/lang/en_SE.txt
index 452ce9c..08c2bb4 100644
--- a/source/data/lang/en_SE.txt
+++ b/source/data/lang/en_SE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SG.txt b/source/data/lang/en_SG.txt
index cb3610b..904e860 100644
--- a/source/data/lang/en_SG.txt
+++ b/source/data/lang/en_SG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SG{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SH.txt b/source/data/lang/en_SH.txt
index d6f5383..dbaac39 100644
--- a/source/data/lang/en_SH.txt
+++ b/source/data/lang/en_SH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SI.txt b/source/data/lang/en_SI.txt
index 1b945e7..093b0e2 100644
--- a/source/data/lang/en_SI.txt
+++ b/source/data/lang/en_SI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SL.txt b/source/data/lang/en_SL.txt
index 68833a0..f3ff3f7 100644
--- a/source/data/lang/en_SL.txt
+++ b/source/data/lang/en_SL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SS.txt b/source/data/lang/en_SS.txt
index 1e11895..1b9c52e 100644
--- a/source/data/lang/en_SS.txt
+++ b/source/data/lang/en_SS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SX.txt b/source/data/lang/en_SX.txt
index 0349554..c619269 100644
--- a/source/data/lang/en_SX.txt
+++ b/source/data/lang/en_SX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_SZ.txt b/source/data/lang/en_SZ.txt
index 02bab1c..734e744 100644
--- a/source/data/lang/en_SZ.txt
+++ b/source/data/lang/en_SZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TC.txt b/source/data/lang/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/lang/en_TC.txt
+++ b/source/data/lang/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TK.txt b/source/data/lang/en_TK.txt
index 0d759ac..380b9d9 100644
--- a/source/data/lang/en_TK.txt
+++ b/source/data/lang/en_TK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TO.txt b/source/data/lang/en_TO.txt
index bb3bbcd..426b5d6 100644
--- a/source/data/lang/en_TO.txt
+++ b/source/data/lang/en_TO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TT.txt b/source/data/lang/en_TT.txt
index fdc2c64..4d6d39d 100644
--- a/source/data/lang/en_TT.txt
+++ b/source/data/lang/en_TT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TV.txt b/source/data/lang/en_TV.txt
index c473254..debe076 100644
--- a/source/data/lang/en_TV.txt
+++ b/source/data/lang/en_TV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TV{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_TZ.txt b/source/data/lang/en_TZ.txt
index 72b6a08..25e40bf 100644
--- a/source/data/lang/en_TZ.txt
+++ b/source/data/lang/en_TZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_UG.txt b/source/data/lang/en_UG.txt
index 4fa5cfd..d28e107 100644
--- a/source/data/lang/en_UG.txt
+++ b/source/data/lang/en_UG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_VC.txt b/source/data/lang/en_VC.txt
index c6d63b4..dc17ae0 100644
--- a/source/data/lang/en_VC.txt
+++ b/source/data/lang/en_VC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_VG.txt b/source/data/lang/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/lang/en_VG.txt
+++ b/source/data/lang/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_VU.txt b/source/data/lang/en_VU.txt
index 2f6cb29..433c4c9 100644
--- a/source/data/lang/en_VU.txt
+++ b/source/data/lang/en_VU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_WS.txt b/source/data/lang/en_WS.txt
index 982e5aa..0697889 100644
--- a/source/data/lang/en_WS.txt
+++ b/source/data/lang/en_WS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_WS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_ZA.txt b/source/data/lang/en_ZA.txt
index f4e3d8d..a34a7a2 100644
--- a/source/data/lang/en_ZA.txt
+++ b/source/data/lang/en_ZA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZA{
     %%Parent{"en_001"}
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_ZM.txt b/source/data/lang/en_ZM.txt
index a012334..3e9be74 100644
--- a/source/data/lang/en_ZM.txt
+++ b/source/data/lang/en_ZM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/en_ZW.txt b/source/data/lang/en_ZW.txt
index 4f5e7fa..5fb189a 100644
--- a/source/data/lang/en_ZW.txt
+++ b/source/data/lang/en_ZW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/eo.txt b/source/data/lang/eo.txt
index f94cedd..075cf0e 100644
--- a/source/data/lang/eo.txt
+++ b/source/data/lang/eo.txt
@@ -156,5 +156,5 @@
         zu{"zulua"}
         zxx{"nelingvaĵo"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es.txt b/source/data/lang/es.txt
index 3410d4b..0ab9a27 100644
--- a/source/data/lang/es.txt
+++ b/source/data/lang/es.txt
@@ -845,7 +845,7 @@
         VALENCIA{"Valenciano"}
         WADEGILE{"Romanización Wade-Giles"}
     }
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Todo"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/es_419.txt b/source/data/lang/es_419.txt
index c95e3e7..81837f5 100644
--- a/source/data/lang/es_419.txt
+++ b/source/data/lang/es_419.txt
@@ -50,7 +50,7 @@
             uksystem{"sistema inglés"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     characterLabelPattern{
         enclosed{"{0} — Adjunto"}
         extended{"{0} — Extendido"}
diff --git a/source/data/lang/es_AR.txt b/source/data/lang/es_AR.txt
index da7a6aa..5bf6ed2 100644
--- a/source/data/lang/es_AR.txt
+++ b/source/data/lang/es_AR.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_BO.txt b/source/data/lang/es_BO.txt
index 3fe89e6..194a967 100644
--- a/source/data/lang/es_BO.txt
+++ b/source/data/lang/es_BO.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_BR.txt b/source/data/lang/es_BR.txt
index 14d1f67..ee8a444 100644
--- a/source/data/lang/es_BR.txt
+++ b/source/data/lang/es_BR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BR{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_BZ.txt b/source/data/lang/es_BZ.txt
new file mode 100644
index 0000000..7734598
--- /dev/null
+++ b/source/data/lang/es_BZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/lang/es_CL.txt b/source/data/lang/es_CL.txt
index e5ea091..21c8557 100644
--- a/source/data/lang/es_CL.txt
+++ b/source/data/lang/es_CL.txt
@@ -23,5 +23,5 @@
             phonebook{"orden de directorio telefónico"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_CO.txt b/source/data/lang/es_CO.txt
index a19be15..cb2028e 100644
--- a/source/data/lang/es_CO.txt
+++ b/source/data/lang/es_CO.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_CR.txt b/source/data/lang/es_CR.txt
index 7d859d8..ec5aa8e 100644
--- a/source/data/lang/es_CR.txt
+++ b/source/data/lang/es_CR.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_CU.txt b/source/data/lang/es_CU.txt
index dbd4f56..f75d29f 100644
--- a/source/data/lang/es_CU.txt
+++ b/source/data/lang/es_CU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CU{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_DO.txt b/source/data/lang/es_DO.txt
index 2cd4d26..69615c5 100644
--- a/source/data/lang/es_DO.txt
+++ b/source/data/lang/es_DO.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_EC.txt b/source/data/lang/es_EC.txt
index 406b7d2..e2dee36 100644
--- a/source/data/lang/es_EC.txt
+++ b/source/data/lang/es_EC.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_GT.txt b/source/data/lang/es_GT.txt
index 5318299..ed1416c 100644
--- a/source/data/lang/es_GT.txt
+++ b/source/data/lang/es_GT.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_HN.txt b/source/data/lang/es_HN.txt
index 48da421..74f454a 100644
--- a/source/data/lang/es_HN.txt
+++ b/source/data/lang/es_HN.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_MX.txt b/source/data/lang/es_MX.txt
index 66de0d6..82fd032 100644
--- a/source/data/lang/es_MX.txt
+++ b/source/data/lang/es_MX.txt
@@ -87,5 +87,5 @@
             tibt{"Dígitos en tibetano"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_NI.txt b/source/data/lang/es_NI.txt
index f2b9053..ab8f991 100644
--- a/source/data/lang/es_NI.txt
+++ b/source/data/lang/es_NI.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_PA.txt b/source/data/lang/es_PA.txt
index 4e9a2b6..eec43f1 100644
--- a/source/data/lang/es_PA.txt
+++ b/source/data/lang/es_PA.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_PE.txt b/source/data/lang/es_PE.txt
index b70e19c..9ab9f55 100644
--- a/source/data/lang/es_PE.txt
+++ b/source/data/lang/es_PE.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_PR.txt b/source/data/lang/es_PR.txt
index bd29f42..8ff9a77 100644
--- a/source/data/lang/es_PR.txt
+++ b/source/data/lang/es_PR.txt
@@ -11,5 +11,5 @@
         ss{"siswati"}
         wo{"wolof"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_PY.txt b/source/data/lang/es_PY.txt
index 940a267..27221ac 100644
--- a/source/data/lang/es_PY.txt
+++ b/source/data/lang/es_PY.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_SV.txt b/source/data/lang/es_SV.txt
index a692bdc..43ba7a8 100644
--- a/source/data/lang/es_SV.txt
+++ b/source/data/lang/es_SV.txt
@@ -11,5 +11,5 @@
         ss{"siswati"}
         wo{"wolof"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_US.txt b/source/data/lang/es_US.txt
index e3c399c..efd8f63 100644
--- a/source/data/lang/es_US.txt
+++ b/source/data/lang/es_US.txt
@@ -46,5 +46,5 @@
             laoo{"números en lao"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/lang/es_UY.txt b/source/data/lang/es_UY.txt
index 363817b..1f9edc6 100644
--- a/source/data/lang/es_UY.txt
+++ b/source/data/lang/es_UY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_UY{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/es_VE.txt b/source/data/lang/es_VE.txt
index 2236308..d4af6cd 100644
--- a/source/data/lang/es_VE.txt
+++ b/source/data/lang/es_VE.txt
@@ -18,5 +18,5 @@
         wo{"wolof"}
         zgh{"tamazight marroquí estándar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/et.txt b/source/data/lang/et.txt
index 3611dcf..a3084c3 100644
--- a/source/data/lang/et.txt
+++ b/source/data/lang/et.txt
@@ -1011,7 +1011,7 @@
         VALENCIA{"valentsia"}
         WADEGILE{"Wade’i-Gilesi latinisatsioon"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Kõik"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/eu.txt b/source/data/lang/eu.txt
index 69fa280..0ef25e5 100644
--- a/source/data/lang/eu.txt
+++ b/source/data/lang/eu.txt
@@ -628,7 +628,7 @@
         SCOTLAND{"ESKOZIAR INGELESA"}
         VALENCIA{"VALENTZIERA"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Guztiak"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ewo.txt b/source/data/lang/ewo.txt
index a100a66..d04a332 100644
--- a/source/data/lang/ewo.txt
+++ b/source/data/lang/ewo.txt
@@ -48,5 +48,5 @@
         zh{"Ǹkɔ́bɔ tsainís"}
         zu{"ǹkɔ́bɔ zulú"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/fa.txt b/source/data/lang/fa.txt
index 6246fb7..44cd292 100644
--- a/source/data/lang/fa.txt
+++ b/source/data/lang/fa.txt
@@ -851,7 +851,7 @@
         SAAHO{"ساهویی"}
         SCOTLAND{"انگلیسی معیار اسکاتلند"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — همه"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/fa_AF.txt b/source/data/lang/fa_AF.txt
index 59aa346..36e533f 100644
--- a/source/data/lang/fa_AF.txt
+++ b/source/data/lang/fa_AF.txt
@@ -32,5 +32,5 @@
     Scripts{
         Mong{"مغلی"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ff.txt b/source/data/lang/ff.txt
index 5399545..1d81052 100644
--- a/source/data/lang/ff.txt
+++ b/source/data/lang/ff.txt
@@ -48,5 +48,5 @@
         zh{"Sinuwaare"}
         zu{"Suluŋkoore"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/fi.txt b/source/data/lang/fi.txt
index 9fdc341..3227f21 100644
--- a/source/data/lang/fi.txt
+++ b/source/data/lang/fi.txt
@@ -1106,7 +1106,7 @@
     Variants%secondary{
         FONUPA{"suomalais-ugrilainen tarkekirjoitus"}
     }
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – Kaikki"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/fil.txt b/source/data/lang/fil.txt
index b277fce..3543490 100644
--- a/source/data/lang/fil.txt
+++ b/source/data/lang/fil.txt
@@ -630,7 +630,7 @@
         PINYIN{"Pinyin Romanization"}
         WADEGILE{"Wade-Giles Romanization"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Lahat"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/fo.txt b/source/data/lang/fo.txt
index 5401c2d..30ae39a 100644
--- a/source/data/lang/fo.txt
+++ b/source/data/lang/fo.txt
@@ -550,7 +550,7 @@
         POLYTON{"polytonísk"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Alt"}
         compatibility{"{0} — Sambæri"}
diff --git a/source/data/lang/fr.txt b/source/data/lang/fr.txt
index 3cfc197..0d5dc1e 100644
--- a/source/data/lang/fr.txt
+++ b/source/data/lang/fr.txt
@@ -962,7 +962,7 @@
         VALENCIA{"valencien"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — tout"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/fr_BE.txt b/source/data/lang/fr_BE.txt
index 35edeb5..a81d1b9 100644
--- a/source/data/lang/fr_BE.txt
+++ b/source/data/lang/fr_BE.txt
@@ -13,5 +13,5 @@
         smn{"same d’Inari"}
         sms{"same skolt"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/fr_CA.txt b/source/data/lang/fr_CA.txt
index ff0e96e..cee10ac 100644
--- a/source/data/lang/fr_CA.txt
+++ b/source/data/lang/fr_CA.txt
@@ -88,5 +88,5 @@
             taml{"chiffres tamouls traditionnels"}
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/fr_CH.txt b/source/data/lang/fr_CH.txt
index c326a78..d26a39d 100644
--- a/source/data/lang/fr_CH.txt
+++ b/source/data/lang/fr_CH.txt
@@ -6,5 +6,5 @@
         pdc{"allemand de Pennsylvanie"}
         sdh{"kurde méridional"}
     }
-    Version{"2.1.27.96"}
+    Version{"2.1.32.48"}
 }
diff --git a/source/data/lang/fur.txt b/source/data/lang/fur.txt
index 60229da..8e11062 100644
--- a/source/data/lang/fur.txt
+++ b/source/data/lang/fur.txt
@@ -299,7 +299,7 @@
         SOLBA{"dialet di Stolvize"}
         VALENCIA{"valenzian"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"Lenghe: {0}"}
         script{"Scriture: {0}"}
diff --git a/source/data/lang/fy.txt b/source/data/lang/fy.txt
index c9d4aea..278fb5f 100644
--- a/source/data/lang/fy.txt
+++ b/source/data/lang/fy.txt
@@ -886,7 +886,7 @@
         VALLADER{"Vallader"}
         WADEGILE{"Wade-Giles-romanisering"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Taal: {0}"}
         script{"Skrift: {0}"}
diff --git a/source/data/lang/ga.txt b/source/data/lang/ga.txt
index a92054a..2cda01f 100644
--- a/source/data/lang/ga.txt
+++ b/source/data/lang/ga.txt
@@ -529,7 +529,7 @@
         VALENCIA{"Vaileinsis"}
         WADEGILE{"Rómhánú Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Uile"}
         category-list{"{0}: {1}:"}
diff --git a/source/data/lang/gd.txt b/source/data/lang/gd.txt
index 9bc3160..cc154bc 100644
--- a/source/data/lang/gd.txt
+++ b/source/data/lang/gd.txt
@@ -879,7 +879,7 @@
     Variants{
         SCOTLAND{"Beurla Bhun-Tomhasach na h-Alba"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Cànan: {0}"}
         script{"Litreadh: {0}"}
diff --git a/source/data/lang/gl.txt b/source/data/lang/gl.txt
index 7f78a4a..8306ae4 100644
--- a/source/data/lang/gl.txt
+++ b/source/data/lang/gl.txt
@@ -626,7 +626,7 @@
             vaii{"Díxitos Vai"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} (todo)"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/gsw.txt b/source/data/lang/gsw.txt
index 9b6fcdc..8e2a008 100644
--- a/source/data/lang/gsw.txt
+++ b/source/data/lang/gsw.txt
@@ -619,7 +619,7 @@
         SOLBA{"Solbica-Mundart"}
         TARASK{"Taraskievica-Rächtschriibig"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     codePatterns{
         language{"Schpraach: {0}"}
         script{"Schrift: {0}"}
diff --git a/source/data/lang/gu.txt b/source/data/lang/gu.txt
index d4f15d7..3d5ec87 100644
--- a/source/data/lang/gu.txt
+++ b/source/data/lang/gu.txt
@@ -843,7 +843,7 @@
         PINYIN{"પિનયિન રોમનાઇઝેશન"}
         WADEGILE{"વેડ-ગિલ્સ રોમનાઇઝેશન"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — તમામ"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/guz.txt b/source/data/lang/guz.txt
index 03c78ce..30c044f 100644
--- a/source/data/lang/guz.txt
+++ b/source/data/lang/guz.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/gv.txt b/source/data/lang/gv.txt
index 83fec10..83b7b04 100644
--- a/source/data/lang/gv.txt
+++ b/source/data/lang/gv.txt
@@ -4,5 +4,5 @@
     Languages{
         gv{"Gaelg"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/lang/ha.txt b/source/data/lang/ha.txt
index 6319b1c..354d6f4 100644
--- a/source/data/lang/ha.txt
+++ b/source/data/lang/ha.txt
@@ -47,5 +47,5 @@
         zh{"Harshen Sin"}
         zu{"Harshen Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/haw.txt b/source/data/lang/haw.txt
index 87080c0..03bfea2 100644
--- a/source/data/lang/haw.txt
+++ b/source/data/lang/haw.txt
@@ -40,5 +40,5 @@
         zh_Hans{"Pākē Hoʻomaʻalahi ʻia"}
         zh_Hant{"Pākē Kuʻuna"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/he.txt b/source/data/lang/he.txt
index 231f09a..fb2356b 100644
--- a/source/data/lang/he.txt
+++ b/source/data/lang/he.txt
@@ -772,7 +772,7 @@
         POSIX{"מחשב"}
         SCOTLAND{"אנגלית סקוטית סטנדרטית"}
     }
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} - הכל"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/hi.txt b/source/data/lang/hi.txt
index 1c45f5d..937a0e8 100644
--- a/source/data/lang/hi.txt
+++ b/source/data/lang/hi.txt
@@ -828,7 +828,7 @@
         POSIX{"कम्प्यूटर"}
         REVISED{"संशोधित वर्तनी"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} - सभी"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/hr.txt b/source/data/lang/hr.txt
index 4f299d0..c8cc3e0 100644
--- a/source/data/lang/hr.txt
+++ b/source/data/lang/hr.txt
@@ -910,7 +910,7 @@
         VALENCIA{"valencijski"}
         WADEGILE{"Wade-Giles romanizacija"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Sve"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/hsb.txt b/source/data/lang/hsb.txt
index 9c28d02..022846b 100644
--- a/source/data/lang/hsb.txt
+++ b/source/data/lang/hsb.txt
@@ -378,7 +378,7 @@
             tibt{"tibetske cyfry"}
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"rěč: {0}"}
         script{"pismo: {0}"}
diff --git a/source/data/lang/hu.txt b/source/data/lang/hu.txt
index d59339c..589fdb3 100644
--- a/source/data/lang/hu.txt
+++ b/source/data/lang/hu.txt
@@ -350,7 +350,7 @@
         nan{"min nan kínai"}
         nap{"nápolyi"}
         naq{"nama"}
-        nb{"norvég (bokmál)"}
+        nb{"norvég (bokmål)"}
         nd{"északi ndebele"}
         nds{"alsónémet"}
         nds_NL{"alsószász"}
@@ -362,7 +362,7 @@
         nl{"holland"}
         nl_BE{"flamand"}
         nmg{"ngumba"}
-        nn{"norvég (nynrosk)"}
+        nn{"norvég (nynorsk)"}
         nnh{"ngiemboon"}
         no{"norvég"}
         nog{"nogaj"}
@@ -894,7 +894,7 @@
         VALLADER{"Vallader"}
         WADEGILE{"Wade-Giles átírás"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Összes"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/hy.txt b/source/data/lang/hy.txt
index 16818f8..842a537 100644
--- a/source/data/lang/hy.txt
+++ b/source/data/lang/hy.txt
@@ -613,7 +613,7 @@
         AREVELA{"արևելահայերեն"}
         AREVMDA{"արեւմտահայերէն"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — բոլորը"}
         category-list{"{0}՝ {1}"}
diff --git a/source/data/lang/id.txt b/source/data/lang/id.txt
index 380996c..b37b8a3 100644
--- a/source/data/lang/id.txt
+++ b/source/data/lang/id.txt
@@ -959,7 +959,7 @@
         VALLADER{"VALLADER"}
         WADEGILE{"Wade-Giles Latin"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Semua"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ig.txt b/source/data/lang/ig.txt
index c07ba2d..073d140 100644
--- a/source/data/lang/ig.txt
+++ b/source/data/lang/ig.txt
@@ -47,5 +47,5 @@
         zh{"Mandarịịnị"}
         zu{"Zulu"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ii.txt b/source/data/lang/ii.txt
index 8f07b6a..f9d5357 100644
--- a/source/data/lang/ii.txt
+++ b/source/data/lang/ii.txt
@@ -33,7 +33,7 @@
             islamic{"ꑳꌦꇂꑍꉖ"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"ꅇꉙ: {0}"}
         script{"ꇇꁱ: {0}"}
diff --git a/source/data/lang/is.txt b/source/data/lang/is.txt
index b57e8e9..d3d9a6f 100644
--- a/source/data/lang/is.txt
+++ b/source/data/lang/is.txt
@@ -732,7 +732,7 @@
             vaii{"Vai-tölustafir"}
         }
     }
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — allt"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/it.txt b/source/data/lang/it.txt
index f7e4cf1..e17b78b 100644
--- a/source/data/lang/it.txt
+++ b/source/data/lang/it.txt
@@ -1017,7 +1017,7 @@
         VALENCIA{"valenziano"}
         WADEGILE{"romanizzazione Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     characterLabelPattern{
         all{"{0} — Tutto"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ja.txt b/source/data/lang/ja.txt
index ccd7cab..d1989a9 100644
--- a/source/data/lang/ja.txt
+++ b/source/data/lang/ja.txt
@@ -1044,7 +1044,7 @@
         VALLADER{"ヴァラダー"}
         WADEGILE{"ウェード式ローマ字表記法"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — すべて"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/jgo.txt b/source/data/lang/jgo.txt
index d4823e2..8787b10 100644
--- a/source/data/lang/jgo.txt
+++ b/source/data/lang/jgo.txt
@@ -28,5 +28,5 @@
             latn{"pɛnɔ́mba"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/jmc.txt b/source/data/lang/jmc.txt
index b09fa74..7ce7db1 100644
--- a/source/data/lang/jmc.txt
+++ b/source/data/lang/jmc.txt
@@ -48,5 +48,5 @@
         zh{"Kyichina"}
         zu{"Kyizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ka.txt b/source/data/lang/ka.txt
index b7d8700..3ffb00f 100644
--- a/source/data/lang/ka.txt
+++ b/source/data/lang/ka.txt
@@ -734,7 +734,7 @@
             tibt{"ტიბეტური ციფრები"}
         }
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — ყველა"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/kab.txt b/source/data/lang/kab.txt
index 65a67ba..9235917 100644
--- a/source/data/lang/kab.txt
+++ b/source/data/lang/kab.txt
@@ -48,5 +48,5 @@
         zh{"Tacinwat, Tamundarint"}
         zu{"Tazulut"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/kam.txt b/source/data/lang/kam.txt
index e595df0..459765d 100644
--- a/source/data/lang/kam.txt
+++ b/source/data/lang/kam.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/kde.txt b/source/data/lang/kde.txt
index 4afa4a4..c14893b 100644
--- a/source/data/lang/kde.txt
+++ b/source/data/lang/kde.txt
@@ -48,5 +48,5 @@
         zh{"Chichina"}
         zu{"Chizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/kea.txt b/source/data/lang/kea.txt
index b0b2c6f..b436998 100644
--- a/source/data/lang/kea.txt
+++ b/source/data/lang/kea.txt
@@ -249,7 +249,7 @@
             latn{"Númerus Arábikus"}
         }
     }
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
     codePatterns{
         language{"Lingua: {0}"}
         script{"Skrita: {0}"}
diff --git a/source/data/lang/khq.txt b/source/data/lang/khq.txt
index 9633fbf..7048257 100644
--- a/source/data/lang/khq.txt
+++ b/source/data/lang/khq.txt
@@ -48,5 +48,5 @@
         zh{"Sinuwa senni, Mandareŋ"}
         zu{"Julu senni"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ki.txt b/source/data/lang/ki.txt
index a6d4db9..149e846 100644
--- a/source/data/lang/ki.txt
+++ b/source/data/lang/ki.txt
@@ -48,5 +48,5 @@
         zh{"Kĩcaina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/kk.txt b/source/data/lang/kk.txt
index b15920a..0c72816 100644
--- a/source/data/lang/kk.txt
+++ b/source/data/lang/kk.txt
@@ -532,7 +532,7 @@
             tibt{"Тибет сандары"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — барлығы"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/kkj.txt b/source/data/lang/kkj.txt
index 2404409..f90d6ee 100644
--- a/source/data/lang/kkj.txt
+++ b/source/data/lang/kkj.txt
@@ -6,5 +6,5 @@
         fr{"numbu buy"}
         kkj{"kakɔ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/kl.txt b/source/data/lang/kl.txt
index d2f1d1d..f05399f 100644
--- a/source/data/lang/kl.txt
+++ b/source/data/lang/kl.txt
@@ -4,7 +4,7 @@
     Languages{
         kl{"kalaallisut"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
     localeDisplayPattern{
         keyTypePattern{"{0}: {1}"}
         pattern{"{0} ({1})"}
diff --git a/source/data/lang/kln.txt b/source/data/lang/kln.txt
index ebcedce..703208c 100644
--- a/source/data/lang/kln.txt
+++ b/source/data/lang/kln.txt
@@ -48,5 +48,5 @@
         zh{"kutitab China"}
         zu{"kutitab Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/km.txt b/source/data/lang/km.txt
index a252ebc..2a474a1 100644
--- a/source/data/lang/km.txt
+++ b/source/data/lang/km.txt
@@ -534,7 +534,7 @@
             tibt{"លេខទីបេ"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
     characterLabelPattern{
         all{"{0} — ទាំងអស់"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/kn.txt b/source/data/lang/kn.txt
index 07cda8e..2144bba 100644
--- a/source/data/lang/kn.txt
+++ b/source/data/lang/kn.txt
@@ -827,7 +827,7 @@
             vaii{"ವಾಯ್ ಅಂಕೆಗಳು"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — ಎಲ್ಲ"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ko.txt b/source/data/lang/ko.txt
index 9e61acc..1d2d90b 100644
--- a/source/data/lang/ko.txt
+++ b/source/data/lang/ko.txt
@@ -913,7 +913,7 @@
         VAIDIKA{"바이디카"}
         VALLADER{"발라더"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — 모두"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/kok.txt b/source/data/lang/kok.txt
index 9f5e356..a4758b7 100644
--- a/source/data/lang/kok.txt
+++ b/source/data/lang/kok.txt
@@ -142,5 +142,5 @@
         zh{"चीनीस्"}
         zu{"जुलू"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ks.txt b/source/data/lang/ks.txt
index 40cb5c8..f23dfd7 100644
--- a/source/data/lang/ks.txt
+++ b/source/data/lang/ks.txt
@@ -609,7 +609,7 @@
         SOLBA{"ثٹولوِزا/سولبِکا بوٗلۍ"}
         TARASK{"تاراسکیٖوِکا علمہ ہِجاِ"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"زَبان: {0}"}
         script{"رَسم الخط: {0}"}
diff --git a/source/data/lang/ksb.txt b/source/data/lang/ksb.txt
index d133337..b1c9434 100644
--- a/source/data/lang/ksb.txt
+++ b/source/data/lang/ksb.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ksf.txt b/source/data/lang/ksf.txt
index eccee7a..be55c9a 100644
--- a/source/data/lang/ksf.txt
+++ b/source/data/lang/ksf.txt
@@ -48,5 +48,5 @@
         zh{"ricinɔá"}
         zu{"rizúlu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ksh.txt b/source/data/lang/ksh.txt
index 5d46ca3..a1dcacc 100644
--- a/source/data/lang/ksh.txt
+++ b/source/data/lang/ksh.txt
@@ -512,7 +512,7 @@
         VALENCIA{"valenzijaanesche Dijaläk"}
         WADEGILE{"lateijnesche Ömschreff noh Wade-Giles"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"de Schprohch afjekööz met „{0}“"}
         script{"de Schreff afjekööz met „{0}“"}
diff --git a/source/data/lang/kw.txt b/source/data/lang/kw.txt
index 077bd58..f79afc1 100644
--- a/source/data/lang/kw.txt
+++ b/source/data/lang/kw.txt
@@ -4,5 +4,5 @@
     Languages{
         kw{"kernewek"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ky.txt b/source/data/lang/ky.txt
index 8a9bb98..2737613 100644
--- a/source/data/lang/ky.txt
+++ b/source/data/lang/ky.txt
@@ -539,7 +539,7 @@
             tibt{"Тибет сандары"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — Баары"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/lag.txt b/source/data/lang/lag.txt
index 73034c2..94e43ca 100644
--- a/source/data/lang/lag.txt
+++ b/source/data/lang/lag.txt
@@ -48,5 +48,5 @@
         zh{"Kɨchíina"}
         zu{"Kɨzúulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/lb.txt b/source/data/lang/lb.txt
index df14387..7fe397b 100644
--- a/source/data/lang/lb.txt
+++ b/source/data/lang/lb.txt
@@ -875,7 +875,7 @@
         VALENCIA{"Valencianesch"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Sprooch: {0}"}
         script{"Schrëft: {0}"}
diff --git a/source/data/lang/lg.txt b/source/data/lang/lg.txt
index 17f93fc..01be37d 100644
--- a/source/data/lang/lg.txt
+++ b/source/data/lang/lg.txt
@@ -48,5 +48,5 @@
         zh{"Lucayina"}
         zu{"Luzzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/lkt.txt b/source/data/lang/lkt.txt
index beefff9..f6c29a9 100644
--- a/source/data/lang/lkt.txt
+++ b/source/data/lang/lkt.txt
@@ -152,5 +152,5 @@
         zu{"Zulu Iyápi"}
         zza{"Zaza Iyápi"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ln.txt b/source/data/lang/ln.txt
index 973ebff..8093ef7 100644
--- a/source/data/lang/ln.txt
+++ b/source/data/lang/ln.txt
@@ -48,5 +48,5 @@
         zh{"lisinwa"}
         zu{"zulu"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/lang/lo.txt b/source/data/lang/lo.txt
index 01a6067..7e6de9d 100644
--- a/source/data/lang/lo.txt
+++ b/source/data/lang/lo.txt
@@ -874,7 +874,7 @@
         VALLADER{"ວັລລາເດີ"}
         WADEGILE{"ການຖອດອັກສອນແບບເວດ-ໄຈລ໌"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — ທັງໝົດ"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/lrc.txt b/source/data/lang/lrc.txt
index 18725c3..86d617c 100644
--- a/source/data/lang/lrc.txt
+++ b/source/data/lang/lrc.txt
@@ -296,7 +296,7 @@
             latn{"عأدأدیا لاتین"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"{0}"}
         script{"{0}"}
diff --git a/source/data/lang/lt.txt b/source/data/lang/lt.txt
index 1e15c12..aec70a4 100644
--- a/source/data/lang/lt.txt
+++ b/source/data/lang/lt.txt
@@ -1020,7 +1020,7 @@
         VALENCIA{"Valenciečiai"}
         WADEGILE{"Wade-Giles Romanization"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – visi"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/lu.txt b/source/data/lang/lu.txt
index 75ada22..33163e1 100644
--- a/source/data/lang/lu.txt
+++ b/source/data/lang/lu.txt
@@ -46,5 +46,5 @@
         zh{"shinɛ"}
         zu{"Nzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/luo.txt b/source/data/lang/luo.txt
index 201ae40..e1eabd1 100644
--- a/source/data/lang/luo.txt
+++ b/source/data/lang/luo.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/luy.txt b/source/data/lang/luy.txt
index a789eca..b4aa87f 100644
--- a/source/data/lang/luy.txt
+++ b/source/data/lang/luy.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/lv.txt b/source/data/lang/lv.txt
index 47ace46..6fc2457 100644
--- a/source/data/lang/lv.txt
+++ b/source/data/lang/lv.txt
@@ -225,7 +225,7 @@
         ilo{"iloku"}
         inh{"ingušu"}
         io{"ido"}
-        is{"īslandiešu"}
+        is{"islandiešu"}
         it{"itāļu"}
         iu{"inuītu"}
         ja{"japāņu"}
@@ -803,7 +803,7 @@
         VALENCIA{"valensiešu"}
         WADEGILE{"Veida-Džailza romanizācija"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — visas"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/mas.txt b/source/data/lang/mas.txt
index d9c393f..1f85adb 100644
--- a/source/data/lang/mas.txt
+++ b/source/data/lang/mas.txt
@@ -48,5 +48,5 @@
         zh{"nkʉtʉ́k ɔ́ɔ̄ lchina"}
         zu{"nkʉtʉ́k ɔ́ɔ̄ lzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/mer.txt b/source/data/lang/mer.txt
index be0a328..ccb4a34 100644
--- a/source/data/lang/mer.txt
+++ b/source/data/lang/mer.txt
@@ -48,5 +48,5 @@
         zh{"Kĩchina"}
         zu{"Kĩzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/mfe.txt b/source/data/lang/mfe.txt
index f9b687f..3c13898 100644
--- a/source/data/lang/mfe.txt
+++ b/source/data/lang/mfe.txt
@@ -48,5 +48,5 @@
         zh{"sinwa, mandarin"}
         zu{"zoulou"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/mg.txt b/source/data/lang/mg.txt
index 4808f2b..a9453d8 100644
--- a/source/data/lang/mg.txt
+++ b/source/data/lang/mg.txt
@@ -48,5 +48,5 @@
         zh{"Sinoa, Mandarin"}
         zu{"Zolò"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/mgh.txt b/source/data/lang/mgh.txt
index 078689a..12c3342 100644
--- a/source/data/lang/mgh.txt
+++ b/source/data/lang/mgh.txt
@@ -47,5 +47,5 @@
         zh{"Ichina"}
         zu{"Izulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/mgo.txt b/source/data/lang/mgo.txt
index f41e862..69718a3 100644
--- a/source/data/lang/mgo.txt
+++ b/source/data/lang/mgo.txt
@@ -18,7 +18,7 @@
             latn{"inu"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"{0}"}
         script{"{0}"}
diff --git a/source/data/lang/mk.txt b/source/data/lang/mk.txt
index 097a1ec..a9e4775 100644
--- a/source/data/lang/mk.txt
+++ b/source/data/lang/mk.txt
@@ -889,7 +889,7 @@
         PINYIN{"Пинјин романизација"}
         WADEGILE{"Вејд-Џајлс романизација"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} - Сите"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ml.txt b/source/data/lang/ml.txt
index 3298ae8..5fc9de3 100644
--- a/source/data/lang/ml.txt
+++ b/source/data/lang/ml.txt
@@ -853,7 +853,7 @@
         POSIX{"കമ്പ്യൂട്ടർ"}
         REVISED{"പരിഷ്ക്കരിച്ച ലിപി"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — എല്ലാം"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/mn.txt b/source/data/lang/mn.txt
index f09ea22..1b70352 100644
--- a/source/data/lang/mn.txt
+++ b/source/data/lang/mn.txt
@@ -542,7 +542,7 @@
             tibt{"төвд тоо"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} - Бүгд"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/mr.txt b/source/data/lang/mr.txt
index 608e7db..dd3a0ec 100644
--- a/source/data/lang/mr.txt
+++ b/source/data/lang/mr.txt
@@ -830,7 +830,7 @@
         PINYIN{"पिनयिन रोमनायझेशन"}
         WADEGILE{"वादे-गिलेस रोमनायझेशन"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — सर्व"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ms.txt b/source/data/lang/ms.txt
index f365465..eb9a72e 100644
--- a/source/data/lang/ms.txt
+++ b/source/data/lang/ms.txt
@@ -667,7 +667,7 @@
             vaii{"Digit Vai"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Semua"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/mt.txt b/source/data/lang/mt.txt
index d35cd90..0e6b90a 100644
--- a/source/data/lang/mt.txt
+++ b/source/data/lang/mt.txt
@@ -473,7 +473,7 @@
         uk{"Ukren"}
         umb{"Umbundu"}
         und{"Lingwa Mhix Magħrufa"}
-        ur{"ur"}
+        ur{"Urdu"}
         uz{"Uzbek"}
         vai{"Vai"}
         ve{"Venda"}
@@ -559,7 +559,7 @@
     Variants{
         REVISED{"Ortografija Irriveda"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     codePatterns{
         language{"Lingwa: {0}"}
         script{"Skript: {0}"}
diff --git a/source/data/lang/mua.txt b/source/data/lang/mua.txt
index 91c5f59..11351f4 100644
--- a/source/data/lang/mua.txt
+++ b/source/data/lang/mua.txt
@@ -48,5 +48,5 @@
         zh{"zah Syiŋ"}
         zu{"Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/my.txt b/source/data/lang/my.txt
index 0f9e0c7..6f3b131 100644
--- a/source/data/lang/my.txt
+++ b/source/data/lang/my.txt
@@ -580,7 +580,7 @@
         REVISED{"ပြန်လည်စီစစ်ထားသော ရေးထုံး"}
         SCOTLAND{"စကော့ စံ အင်္ဂလိပ်"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
     characterLabelPattern{
         all{"{0} — အားလုံး"}
         category-list{"{0} − {1}"}
diff --git a/source/data/lang/mzn.txt b/source/data/lang/mzn.txt
index 2f201ba..5720a5c 100644
--- a/source/data/lang/mzn.txt
+++ b/source/data/lang/mzn.txt
@@ -265,7 +265,7 @@
         Hans{"ساده‌بَیی هان"}
         Hant{"استاندارد ِسنتی هانت"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"زوون: {0}"}
         script{"اسکریپت: {0}"}
diff --git a/source/data/lang/naq.txt b/source/data/lang/naq.txt
index e45845c..85a342a 100644
--- a/source/data/lang/naq.txt
+++ b/source/data/lang/naq.txt
@@ -48,5 +48,5 @@
         zh{"Chineesǁî gowab, Mandarinni"}
         zu{"Zulub"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/nb.txt b/source/data/lang/nb.txt
index 8dc63ff..0745715 100644
--- a/source/data/lang/nb.txt
+++ b/source/data/lang/nb.txt
@@ -1095,7 +1095,7 @@
         VALLADER{"vallader"}
         WADEGILE{"Wade-Giles-romanisering"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – alt"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/nd.txt b/source/data/lang/nd.txt
index 53e84cb..22457ed 100644
--- a/source/data/lang/nd.txt
+++ b/source/data/lang/nd.txt
@@ -48,5 +48,5 @@
         zh{"isi-China"}
         zu{"isi-Zulu"}
     }
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/nds.txt b/source/data/lang/nds.txt
index f5e699c..30007b2 100644
--- a/source/data/lang/nds.txt
+++ b/source/data/lang/nds.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ne.txt b/source/data/lang/ne.txt
index 92c6811..fe5f6ae 100644
--- a/source/data/lang/ne.txt
+++ b/source/data/lang/ne.txt
@@ -795,7 +795,7 @@
         AREVELA{"पूर्वी आर्मेनियाली"}
         POSIX{"कम्प्युटर"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0}-सबै"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/nl.txt b/source/data/lang/nl.txt
index 26d92a8..b8c628b 100644
--- a/source/data/lang/nl.txt
+++ b/source/data/lang/nl.txt
@@ -1099,7 +1099,7 @@
         VALLADER{"Vallader"}
         WADEGILE{"Wade-Giles-romanisering"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — alle"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/nmg.txt b/source/data/lang/nmg.txt
index 35ab656..9f27c09 100644
--- a/source/data/lang/nmg.txt
+++ b/source/data/lang/nmg.txt
@@ -47,5 +47,5 @@
         zh{"Kiɛl bó chinois"}
         zu{"Zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/nn.txt b/source/data/lang/nn.txt
index ed26d19..5ef5e63 100644
--- a/source/data/lang/nn.txt
+++ b/source/data/lang/nn.txt
@@ -690,7 +690,7 @@
         TARASK{"taraskievica-ortografi"}
         VALENCIA{"valensisk dialekt"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Språk: {0}"}
         script{"Skrift: {0}"}
diff --git a/source/data/lang/nnh.txt b/source/data/lang/nnh.txt
index 8e4f989..84c98de 100644
--- a/source/data/lang/nnh.txt
+++ b/source/data/lang/nnh.txt
@@ -24,5 +24,5 @@
         yav{"Shwóŋò pʉa shÿó Mbafìa"}
         ybb{"Shwóŋò Tsaŋ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/nus.txt b/source/data/lang/nus.txt
index 1572a73..0455c91 100644
--- a/source/data/lang/nus.txt
+++ b/source/data/lang/nus.txt
@@ -48,5 +48,5 @@
         zh{"Thok cayna"}
         zu{"Thok dhuluni"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/nyn.txt b/source/data/lang/nyn.txt
index 740f1db..42d4806 100644
--- a/source/data/lang/nyn.txt
+++ b/source/data/lang/nyn.txt
@@ -48,5 +48,5 @@
         zh{"Oruchaina"}
         zu{"Oruzuru"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/om.txt b/source/data/lang/om.txt
index a5a7ea3..7cbf549 100644
--- a/source/data/lang/om.txt
+++ b/source/data/lang/om.txt
@@ -92,5 +92,5 @@
     Scripts{
         Latn{"Latin"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/or.txt b/source/data/lang/or.txt
index a34540b..d90e02e 100644
--- a/source/data/lang/or.txt
+++ b/source/data/lang/or.txt
@@ -574,5 +574,5 @@
         Zyyy{"ସାଧାରଣ"}
         Zzzz{"ଅଞ୍ଜାତ କିମ୍ବା ଅବୈଧ ସ୍କ୍ରୀପ୍ଟ"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/os.txt b/source/data/lang/os.txt
index 4ddf077..a2f2130 100644
--- a/source/data/lang/os.txt
+++ b/source/data/lang/os.txt
@@ -96,7 +96,7 @@
             latn{"Нырыккон цифрӕтӕ"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"Ӕвзаг: {0}"}
         script{"Скрипт: {0}"}
diff --git a/source/data/lang/pa.txt b/source/data/lang/pa.txt
index 696317f..3a0fa02 100644
--- a/source/data/lang/pa.txt
+++ b/source/data/lang/pa.txt
@@ -552,7 +552,7 @@
             tibt{"ਤਿੱਬਤੀ ਅੰਕ"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — ਸਭ"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/pa_Arab.txt b/source/data/lang/pa_Arab.txt
index 12b2555..047a45d 100644
--- a/source/data/lang/pa_Arab.txt
+++ b/source/data/lang/pa_Arab.txt
@@ -9,5 +9,5 @@
         Arab{"عربی"}
         Guru{"گُرمُکھی"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pa_Guru.txt b/source/data/lang/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/lang/pa_Guru.txt
+++ b/source/data/lang/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pl.txt b/source/data/lang/pl.txt
index 58b8c4a..20ee9a3 100644
--- a/source/data/lang/pl.txt
+++ b/source/data/lang/pl.txt
@@ -963,7 +963,7 @@
         VALENCIA{"walencki"}
         WADEGILE{"latynizacja Wade’a i Gilesa"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — wszystko"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/pool.res b/source/data/lang/pool.res
index bf8a5da..61fc525 100644
--- a/source/data/lang/pool.res
+++ b/source/data/lang/pool.res
Binary files differ
diff --git a/source/data/lang/ps.txt b/source/data/lang/ps.txt
index 3f83174..52d2a30 100644
--- a/source/data/lang/ps.txt
+++ b/source/data/lang/ps.txt
@@ -46,5 +46,5 @@
     Scripts{
         Arab{"عربي"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt.txt b/source/data/lang/pt.txt
index 1895c1b..40567a2 100644
--- a/source/data/lang/pt.txt
+++ b/source/data/lang/pt.txt
@@ -874,7 +874,7 @@
         VALENCIA{"valenciano"}
         WADEGILE{"romanização Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Tudo"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/pt_AO.txt b/source/data/lang/pt_AO.txt
index 7aeffb6..5a8f6f2 100644
--- a/source/data/lang/pt_AO.txt
+++ b/source/data/lang/pt_AO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_AO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_CH.txt b/source/data/lang/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/lang/pt_CH.txt
+++ b/source/data/lang/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_CV.txt b/source/data/lang/pt_CV.txt
index 7e77af3..ad4836b 100644
--- a/source/data/lang/pt_CV.txt
+++ b/source/data/lang/pt_CV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CV{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_GQ.txt b/source/data/lang/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/lang/pt_GQ.txt
+++ b/source/data/lang/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_GW.txt b/source/data/lang/pt_GW.txt
index 67e6e72..e137e51 100644
--- a/source/data/lang/pt_GW.txt
+++ b/source/data/lang/pt_GW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_LU.txt b/source/data/lang/pt_LU.txt
index 009ec80..e6d1c60 100644
--- a/source/data/lang/pt_LU.txt
+++ b/source/data/lang/pt_LU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_LU{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_MO.txt b/source/data/lang/pt_MO.txt
index e443a63..76fe46e 100644
--- a/source/data/lang/pt_MO.txt
+++ b/source/data/lang/pt_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_MZ.txt b/source/data/lang/pt_MZ.txt
index 9873941..b86fd1e 100644
--- a/source/data/lang/pt_MZ.txt
+++ b/source/data/lang/pt_MZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MZ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_PT.txt b/source/data/lang/pt_PT.txt
index e0829d2..4f687b0 100644
--- a/source/data/lang/pt_PT.txt
+++ b/source/data/lang/pt_PT.txt
@@ -217,7 +217,7 @@
         MONOTON{"monotónico"}
         POLYTON{"politónico"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} – tudo"}
         compatibility{"{0} – compatibilidade"}
diff --git a/source/data/lang/pt_ST.txt b/source/data/lang/pt_ST.txt
index 55f443a..95f596c 100644
--- a/source/data/lang/pt_ST.txt
+++ b/source/data/lang/pt_ST.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_ST{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/pt_TL.txt b/source/data/lang/pt_TL.txt
index 68cb641..786b602 100644
--- a/source/data/lang/pt_TL.txt
+++ b/source/data/lang/pt_TL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/qu.txt b/source/data/lang/qu.txt
index 613f813..8d2e7a7 100644
--- a/source/data/lang/qu.txt
+++ b/source/data/lang/qu.txt
@@ -134,5 +134,5 @@
     Variants{
         VALENCIA{"Valenciano Simi"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/resfiles.mk b/source/data/lang/resfiles.mk
index 39bf03e..17dbf88 100644
--- a/source/data/lang/resfiles.mk
+++ b/source/data/lang/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-LANG_CLDR_VERSION = %version%
+LANG_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,19 +26,19 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-LANG_SYNTHETIC_ALIAS = az_AZ.txt az_Latn_AZ.txt bs_BA.txt bs_Latn_BA.txt\
- en_NH.txt en_RH.txt fil_PH.txt he_IL.txt id_ID.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP.txt\
- ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt no.txt\
- no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt pa_IN.txt\
- pa_PK.txt sh.txt sh_BA.txt sh_CS.txt sh_YU.txt\
- shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_CS.txt\
- sr_Cyrl_RS.txt sr_Cyrl_YU.txt sr_Latn_CS.txt sr_Latn_RS.txt sr_Latn_YU.txt\
- sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt th_TH.txt\
- th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt uz_Arab_AF.txt\
- uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt zh_CN.txt\
- zh_HK.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_TW.txt zh_MO.txt\
- zh_SG.txt zh_TW.txt
+LANG_SYNTHETIC_ALIAS = ars.txt az_AZ.txt az_Latn_AZ.txt bs_BA.txt\
+ bs_Latn_BA.txt en_NH.txt en_RH.txt fil_PH.txt he_IL.txt\
+ id_ID.txt in.txt in_ID.txt iw.txt iw_IL.txt\
+ ja_JP.txt ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt\
+ no.txt no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt\
+ pa_IN.txt pa_PK.txt sh.txt sh_BA.txt sh_CS.txt\
+ sh_YU.txt shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt\
+ sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_YU.txt sr_Latn_CS.txt sr_Latn_RS.txt\
+ sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt\
+ th_TH.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt\
+ uz_Arab_AF.txt uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt\
+ zh_CN.txt zh_HK.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_TW.txt\
+ zh_MO.txt zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -76,47 +76,47 @@
  en_TT.txt en_TV.txt en_TZ.txt en_UG.txt en_VC.txt\
  en_VG.txt en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt\
  en_ZW.txt eo.txt es.txt es_419.txt es_AR.txt\
- es_BO.txt es_BR.txt es_CL.txt es_CO.txt es_CR.txt\
- es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\
- es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\
- es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\
- et.txt eu.txt ewo.txt fa.txt fa_AF.txt\
- ff.txt fi.txt fil.txt fo.txt fr.txt\
- fr_BE.txt fr_CA.txt fr_CH.txt fur.txt fy.txt\
- ga.txt gd.txt gl.txt gsw.txt gu.txt\
- guz.txt gv.txt ha.txt haw.txt he.txt\
- hi.txt hr.txt hsb.txt hu.txt hy.txt\
- id.txt ig.txt ii.txt is.txt it.txt\
- ja.txt jgo.txt jmc.txt ka.txt kab.txt\
- kam.txt kde.txt kea.txt khq.txt ki.txt\
- kk.txt kkj.txt kl.txt kln.txt km.txt\
- kn.txt ko.txt kok.txt ks.txt ksb.txt\
- ksf.txt ksh.txt kw.txt ky.txt lag.txt\
- lb.txt lg.txt lkt.txt ln.txt lo.txt\
- lrc.txt lt.txt lu.txt luo.txt luy.txt\
- lv.txt mas.txt mer.txt mfe.txt mg.txt\
- mgh.txt mgo.txt mk.txt ml.txt mn.txt\
- mr.txt ms.txt mt.txt mua.txt my.txt\
- mzn.txt naq.txt nb.txt nd.txt nds.txt\
- ne.txt nl.txt nmg.txt nn.txt nnh.txt\
- nus.txt nyn.txt om.txt or.txt os.txt\
- pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\
- pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\
- pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\
- pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\
- ro.txt ro_MD.txt rof.txt ru.txt rw.txt\
- rwk.txt sah.txt saq.txt sbp.txt se.txt\
- se_FI.txt seh.txt ses.txt sg.txt shi.txt\
- shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\
- smn.txt sn.txt so.txt sq.txt sr.txt\
- sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt sr_Latn.txt\
- sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt sv_FI.txt\
- sw.txt sw_CD.txt sw_KE.txt ta.txt te.txt\
- teo.txt th.txt ti.txt to.txt tr.txt\
- twq.txt tzm.txt ug.txt uk.txt ur.txt\
- ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\
- vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\
- wae.txt xog.txt yav.txt yi.txt yo.txt\
- yo_BJ.txt yue.txt zgh.txt zh.txt zh_Hans.txt\
- zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
+ es_BO.txt es_BR.txt es_BZ.txt es_CL.txt es_CO.txt\
+ es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GT.txt\
+ es_HN.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\
+ es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\
+ es_VE.txt et.txt eu.txt ewo.txt fa.txt\
+ fa_AF.txt ff.txt fi.txt fil.txt fo.txt\
+ fr.txt fr_BE.txt fr_CA.txt fr_CH.txt fur.txt\
+ fy.txt ga.txt gd.txt gl.txt gsw.txt\
+ gu.txt guz.txt gv.txt ha.txt haw.txt\
+ he.txt hi.txt hr.txt hsb.txt hu.txt\
+ hy.txt id.txt ig.txt ii.txt is.txt\
+ it.txt ja.txt jgo.txt jmc.txt ka.txt\
+ kab.txt kam.txt kde.txt kea.txt khq.txt\
+ ki.txt kk.txt kkj.txt kl.txt kln.txt\
+ km.txt kn.txt ko.txt kok.txt ks.txt\
+ ksb.txt ksf.txt ksh.txt kw.txt ky.txt\
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\
+ lo.txt lrc.txt lt.txt lu.txt luo.txt\
+ luy.txt lv.txt mas.txt mer.txt mfe.txt\
+ mg.txt mgh.txt mgo.txt mk.txt ml.txt\
+ mn.txt mr.txt ms.txt mt.txt mua.txt\
+ my.txt mzn.txt naq.txt nb.txt nd.txt\
+ nds.txt ne.txt nl.txt nmg.txt nn.txt\
+ nnh.txt nus.txt nyn.txt om.txt or.txt\
+ os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\
+ ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\
+ pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\
+ pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\
+ rn.txt ro.txt ro_MD.txt rof.txt ru.txt\
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\
+ se.txt se_FI.txt seh.txt ses.txt sg.txt\
+ shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\
+ sl.txt smn.txt sn.txt so.txt sq.txt\
+ sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt\
+ sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt\
+ sv_FI.txt sw.txt sw_CD.txt sw_KE.txt ta.txt\
+ te.txt teo.txt th.txt ti.txt to.txt\
+ tr.txt twq.txt tzm.txt ug.txt uk.txt\
+ ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\
+ uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\
+ vun.txt wae.txt xog.txt yav.txt yi.txt\
+ yo.txt yo_BJ.txt yue.txt zgh.txt zh.txt\
+ zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
 
diff --git a/source/data/lang/rm.txt b/source/data/lang/rm.txt
index c539838..54b9167 100644
--- a/source/data/lang/rm.txt
+++ b/source/data/lang/rm.txt
@@ -627,7 +627,7 @@
         TARASK{"ortografia taraskievica"}
         VALENCIA{"valencian"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Lingua: {0}"}
         script{"Scrittira: {0}"}
diff --git a/source/data/lang/rn.txt b/source/data/lang/rn.txt
index d81b90f..f71bd72 100644
--- a/source/data/lang/rn.txt
+++ b/source/data/lang/rn.txt
@@ -48,5 +48,5 @@
         zh{"Igishinwa"}
         zu{"Ikizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ro.txt b/source/data/lang/ro.txt
index 0b403c0..c84f108 100644
--- a/source/data/lang/ro.txt
+++ b/source/data/lang/ro.txt
@@ -774,7 +774,7 @@
         SCOTLAND{"engleză standard scoțiană"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     characterLabelPattern{
         all{"{0} – toate"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ro_MD.txt b/source/data/lang/ro_MD.txt
index 4f6d4bd..f9c3959 100644
--- a/source/data/lang/ro_MD.txt
+++ b/source/data/lang/ro_MD.txt
@@ -5,5 +5,5 @@
         sw_CD{"swahili (R. D. Congo)"}
         wal{"wolaytta"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/rof.txt b/source/data/lang/rof.txt
index 5b755ba..957eacd 100644
--- a/source/data/lang/rof.txt
+++ b/source/data/lang/rof.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/root.txt b/source/data/lang/root.txt
index 75e6d61..95764c7 100644
--- a/source/data/lang/root.txt
+++ b/source/data/lang/root.txt
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml
  */
 root{
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — all"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ru.txt b/source/data/lang/ru.txt
index 2e55044..51f10cd 100644
--- a/source/data/lang/ru.txt
+++ b/source/data/lang/ru.txt
@@ -912,7 +912,7 @@
         VALENCIA{"Валенсийский"}
         WADEGILE{"Система Уэйда – Джайлза"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – все"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/rw.txt b/source/data/lang/rw.txt
index ea45650..47446df 100644
--- a/source/data/lang/rw.txt
+++ b/source/data/lang/rw.txt
@@ -108,5 +108,5 @@
         yi{"Inyeyidishi"}
         zu{"Inyezulu"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/rwk.txt b/source/data/lang/rwk.txt
index 4bcf5fd..7d2b01f 100644
--- a/source/data/lang/rwk.txt
+++ b/source/data/lang/rwk.txt
@@ -48,5 +48,5 @@
         zh{"Kyichina"}
         zu{"Kyizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sah.txt b/source/data/lang/sah.txt
index a06dd52..591dff4 100644
--- a/source/data/lang/sah.txt
+++ b/source/data/lang/sah.txt
@@ -91,7 +91,7 @@
             h24{"24 чаастаах тиһик (0–24)"}
         }
     }
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
     characterLabelPattern{
         strokes{
             other{"{0} Strokes"}
diff --git a/source/data/lang/saq.txt b/source/data/lang/saq.txt
index 9a12cb6..46d808b 100644
--- a/source/data/lang/saq.txt
+++ b/source/data/lang/saq.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sbp.txt b/source/data/lang/sbp.txt
index eb6a227..5ab4a18 100644
--- a/source/data/lang/sbp.txt
+++ b/source/data/lang/sbp.txt
@@ -48,5 +48,5 @@
         zh{"Ishishina"}
         zu{"Ishisulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/se.txt b/source/data/lang/se.txt
index 927d9dc..4d3de76 100644
--- a/source/data/lang/se.txt
+++ b/source/data/lang/se.txt
@@ -154,7 +154,7 @@
         PINYIN{"pinyin"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"giella: {0}"}
         script{"chállin: {0}"}
diff --git a/source/data/lang/se_FI.txt b/source/data/lang/se_FI.txt
index 1beb061..ee923da 100644
--- a/source/data/lang/se_FI.txt
+++ b/source/data/lang/se_FI.txt
@@ -62,7 +62,7 @@
             fullwide{"fullwide"}
         }
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
     codePatterns{
         script{"čállin: {0}"}
     }
diff --git a/source/data/lang/seh.txt b/source/data/lang/seh.txt
index 60cbd7a..c9d18f1 100644
--- a/source/data/lang/seh.txt
+++ b/source/data/lang/seh.txt
@@ -48,5 +48,5 @@
         zh{"chinês"}
         zu{"zulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ses.txt b/source/data/lang/ses.txt
index 913a513..6d4fcac 100644
--- a/source/data/lang/ses.txt
+++ b/source/data/lang/ses.txt
@@ -48,5 +48,5 @@
         zh{"Sinuwa senni, Mandareŋ"}
         zu{"Zulu senni"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sg.txt b/source/data/lang/sg.txt
index 7116860..76660a4 100644
--- a/source/data/lang/sg.txt
+++ b/source/data/lang/sg.txt
@@ -48,5 +48,5 @@
         zh{"Shinuäa"}
         zu{"Zûlu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/shi.txt b/source/data/lang/shi.txt
index b17a3d0..8d23eb4 100644
--- a/source/data/lang/shi.txt
+++ b/source/data/lang/shi.txt
@@ -48,5 +48,5 @@
         zh{"ⵜⴰⵛⵉⵏⵡⵉⵜ"}
         zu{"ⵜⴰⵣⵓⵍⵓⵜ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/shi_Latn.txt b/source/data/lang/shi_Latn.txt
index fdb169a..f96b385 100644
--- a/source/data/lang/shi_Latn.txt
+++ b/source/data/lang/shi_Latn.txt
@@ -49,5 +49,5 @@
         zh{"Tacinwit"}
         zu{"Tazulut"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/shi_Tfng.txt b/source/data/lang/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/lang/shi_Tfng.txt
+++ b/source/data/lang/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/si.txt b/source/data/lang/si.txt
index 4989b24..d20cb60 100644
--- a/source/data/lang/si.txt
+++ b/source/data/lang/si.txt
@@ -547,7 +547,7 @@
             tibt{"ටිබෙට ඉලක්කම්"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
     characterLabelPattern{
         all{"{0} — සියල්ල"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sk.txt b/source/data/lang/sk.txt
index 62dac09..aeed47e 100644
--- a/source/data/lang/sk.txt
+++ b/source/data/lang/sk.txt
@@ -755,7 +755,7 @@
     Variants{
         SCOTLAND{"škótska štandardná angličtina"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – všetko"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sl.txt b/source/data/lang/sl.txt
index 9acb740..b3e1286 100644
--- a/source/data/lang/sl.txt
+++ b/source/data/lang/sl.txt
@@ -831,7 +831,7 @@
         VALENCIA{"valencijski pravopis"}
         WADEGILE{"romanizacija Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} – vse"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/smn.txt b/source/data/lang/smn.txt
index d41dee4..1979194 100644
--- a/source/data/lang/smn.txt
+++ b/source/data/lang/smn.txt
@@ -401,7 +401,7 @@
         en_GB{"eŋgâlâskielâ (OK)"}
         en_US{"eŋgâlâskielâ (USA)"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"kielâ: {0}"}
         script{"čäällimvuáhádâh: {0}"}
diff --git a/source/data/lang/sn.txt b/source/data/lang/sn.txt
index 5a3d961..1ab3aee 100644
--- a/source/data/lang/sn.txt
+++ b/source/data/lang/sn.txt
@@ -48,5 +48,5 @@
         zh{"chiChinese"}
         zu{"chiZulu"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/so.txt b/source/data/lang/so.txt
index 8ff2ee2..594c8b1 100644
--- a/source/data/lang/so.txt
+++ b/source/data/lang/so.txt
@@ -52,5 +52,5 @@
         Zxxx{"Aan la qorin"}
         Zzzz{"Far aan la aqoon amase aan saxnayn"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
 }
diff --git a/source/data/lang/sq.txt b/source/data/lang/sq.txt
index 9f7e0c3..38090be 100644
--- a/source/data/lang/sq.txt
+++ b/source/data/lang/sq.txt
@@ -555,7 +555,7 @@
             tibt{"shifra tibetiane"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Të gjitha"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sr.txt b/source/data/lang/sr.txt
index eb261ea..c53a1c2 100644
--- a/source/data/lang/sr.txt
+++ b/source/data/lang/sr.txt
@@ -842,7 +842,7 @@
         TARASK{"Тараскијевичка ортографија"}
         VALENCIA{"Валенцијска"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
     characterLabelPattern{
         all{"{0} — све"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sr_Cyrl.txt b/source/data/lang/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/lang/sr_Cyrl.txt
+++ b/source/data/lang/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Cyrl_BA.txt b/source/data/lang/sr_Cyrl_BA.txt
index 3fbc216..4405188 100644
--- a/source/data/lang/sr_Cyrl_BA.txt
+++ b/source/data/lang/sr_Cyrl_BA.txt
@@ -18,5 +18,5 @@
         zgh{"стандардни марокански тамашек"}
         zu{"исизулу"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Cyrl_ME.txt b/source/data/lang/sr_Cyrl_ME.txt
index af9bcac..965d765 100644
--- a/source/data/lang/sr_Cyrl_ME.txt
+++ b/source/data/lang/sr_Cyrl_ME.txt
@@ -17,5 +17,5 @@
         zgh{"стандардни марокански тамашек"}
         zu{"исизулу"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Cyrl_XK.txt b/source/data/lang/sr_Cyrl_XK.txt
index 3129b46..8f0fb68 100644
--- a/source/data/lang/sr_Cyrl_XK.txt
+++ b/source/data/lang/sr_Cyrl_XK.txt
@@ -17,5 +17,5 @@
         zgh{"стандардни марокански тамашек"}
         zu{"исизулу"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Latn.txt b/source/data/lang/sr_Latn.txt
index 6130912..1586c3a 100644
--- a/source/data/lang/sr_Latn.txt
+++ b/source/data/lang/sr_Latn.txt
@@ -843,7 +843,7 @@
         TARASK{"Taraskijevička ortografija"}
         VALENCIA{"Valencijska"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
     characterLabelPattern{
         all{"{0} — sve"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sr_Latn_BA.txt b/source/data/lang/sr_Latn_BA.txt
index 9c9178e..d2b8736 100644
--- a/source/data/lang/sr_Latn_BA.txt
+++ b/source/data/lang/sr_Latn_BA.txt
@@ -18,5 +18,5 @@
         zgh{"standardni marokanski tamašek"}
         zu{"isizulu"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Latn_ME.txt b/source/data/lang/sr_Latn_ME.txt
index dd191b2..e06b3ba 100644
--- a/source/data/lang/sr_Latn_ME.txt
+++ b/source/data/lang/sr_Latn_ME.txt
@@ -17,5 +17,5 @@
         zgh{"standardni marokanski tamašek"}
         zu{"isizulu"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sr_Latn_XK.txt b/source/data/lang/sr_Latn_XK.txt
index 3caf982..54b3007 100644
--- a/source/data/lang/sr_Latn_XK.txt
+++ b/source/data/lang/sr_Latn_XK.txt
@@ -17,5 +17,5 @@
         zgh{"standardni marokanski tamašek"}
         zu{"isizulu"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sv.txt b/source/data/lang/sv.txt
index 748a667..3161601 100644
--- a/source/data/lang/sv.txt
+++ b/source/data/lang/sv.txt
@@ -1081,7 +1081,7 @@
         VALLADER{"vallader-dialekt"}
         WADEGILE{"Wade-Giles"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — alla"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sv_FI.txt b/source/data/lang/sv_FI.txt
index 6afbf8b..0a89e2b 100644
--- a/source/data/lang/sv_FI.txt
+++ b/source/data/lang/sv_FI.txt
@@ -10,5 +10,5 @@
     Scripts%variant{
         Arab{"persisk-arabiska"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sw.txt b/source/data/lang/sw.txt
index fedf43b..b5a11dd 100644
--- a/source/data/lang/sw.txt
+++ b/source/data/lang/sw.txt
@@ -637,7 +637,7 @@
             vaii{"Dijiti za Vai"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
     characterLabelPattern{
         all{"{0} — Zote"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/sw_CD.txt b/source/data/lang/sw_CD.txt
index 5506dfa..6af6774 100644
--- a/source/data/lang/sw_CD.txt
+++ b/source/data/lang/sw_CD.txt
@@ -40,5 +40,5 @@
         wae{"Kiwalser"}
         yi{"Kiyidi"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/sw_KE.txt b/source/data/lang/sw_KE.txt
index 3a0e781..d5a4fd6 100644
--- a/source/data/lang/sw_KE.txt
+++ b/source/data/lang/sw_KE.txt
@@ -42,5 +42,5 @@
         wae{"Kiwalser"}
         zgh{"Tamazight Sanifu ya Moroko"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ta.txt b/source/data/lang/ta.txt
index 09ea67e..98364c5 100644
--- a/source/data/lang/ta.txt
+++ b/source/data/lang/ta.txt
@@ -836,7 +836,7 @@
         PINYIN{"பின்யின் ரோமானைசெஷன்"}
         WADEGILE{"வேட்-கைல்ஸ் ரோமனைஷேசன்"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
     characterLabelPattern{
         all{"{0} — அனைத்தும்"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/te.txt b/source/data/lang/te.txt
index 1d02c48..8c987d8 100644
--- a/source/data/lang/te.txt
+++ b/source/data/lang/te.txt
@@ -837,7 +837,7 @@
         REVISED{"సవరించబడిన వర్ణక్రమం"}
         WADEGILE{"వేడ్-గైల్స్ రోమనైజేషన్"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — అన్ని"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/teo.txt b/source/data/lang/teo.txt
index 9ee9fc3..97b27d1 100644
--- a/source/data/lang/teo.txt
+++ b/source/data/lang/teo.txt
@@ -48,5 +48,5 @@
         zh{"Kichina"}
         zu{"Kizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/th.txt b/source/data/lang/th.txt
index 6b829d5..b20cf30 100644
--- a/source/data/lang/th.txt
+++ b/source/data/lang/th.txt
@@ -1054,7 +1054,7 @@
         VALLADER{"วัลลาเดอร์"}
         WADEGILE{"การถอดอักษรแบบเวด-ไจลส์"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — ทั้งหมด"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ti.txt b/source/data/lang/ti.txt
index 0466b79..9feeccd 100644
--- a/source/data/lang/ti.txt
+++ b/source/data/lang/ti.txt
@@ -100,5 +100,5 @@
         Ethi{"ፊደል"}
         Latn{"ላቲን"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/to.txt b/source/data/lang/to.txt
index 2102d56..7270473 100644
--- a/source/data/lang/to.txt
+++ b/source/data/lang/to.txt
@@ -882,7 +882,7 @@
             tibt{"fika fakatipeti"}
         }
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
     codePatterns{
         language{"Lea: {0}"}
         script{"Tohinima: {0}"}
diff --git a/source/data/lang/tr.txt b/source/data/lang/tr.txt
index 7dbaa36..fe0ee0e 100644
--- a/source/data/lang/tr.txt
+++ b/source/data/lang/tr.txt
@@ -1011,7 +1011,7 @@
         VALENCIA{"Valensiyaca"}
         WADEGILE{"Wade-Giles (Latin Alfabesinde Yazımı)"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Tümü"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/twq.txt b/source/data/lang/twq.txt
index 9c4f71d..86619ce 100644
--- a/source/data/lang/twq.txt
+++ b/source/data/lang/twq.txt
@@ -48,5 +48,5 @@
         zh{"Sinuwa senni, Mandareŋ"}
         zu{"Zulu senni"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/tzm.txt b/source/data/lang/tzm.txt
index 6366758..a5f72be 100644
--- a/source/data/lang/tzm.txt
+++ b/source/data/lang/tzm.txt
@@ -48,5 +48,5 @@
         zh{"Tacinwit,Mandarin"}
         zu{"tazulut"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/ug.txt b/source/data/lang/ug.txt
index 66a7991..a547840 100644
--- a/source/data/lang/ug.txt
+++ b/source/data/lang/ug.txt
@@ -830,7 +830,7 @@
         VALENCIA{"ۋالېنسىيە"}
         WADEGILE{"ۋېي ئائىلىسى پىنيىن لاتىنلاشتۇرۇش"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"تىل: {0}"}
         script{"يېزىق: {0}"}
diff --git a/source/data/lang/uk.txt b/source/data/lang/uk.txt
index 9be8846..6223241 100644
--- a/source/data/lang/uk.txt
+++ b/source/data/lang/uk.txt
@@ -878,7 +878,7 @@
         VALENCIA{"Валенсійська"}
         WADEGILE{"Романізація Вейда-Джайлза"}
     }
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
     characterLabelPattern{
         all{"{0} — усі"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ur.txt b/source/data/lang/ur.txt
index c720de8..6b11469 100644
--- a/source/data/lang/ur.txt
+++ b/source/data/lang/ur.txt
@@ -626,7 +626,7 @@
             vaii{"وائی ہندسے"}
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — تمام"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/ur_IN.txt b/source/data/lang/ur_IN.txt
index beb1a7c..0163f7c 100644
--- a/source/data/lang/ur_IN.txt
+++ b/source/data/lang/ur_IN.txt
@@ -25,5 +25,5 @@
             tibt{"تبتی ہندسے"}
         }
     }
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/uz.txt b/source/data/lang/uz.txt
index 0a04cdb..11a3232 100644
--- a/source/data/lang/uz.txt
+++ b/source/data/lang/uz.txt
@@ -521,7 +521,7 @@
             tibt{"tibet raqamlari"}
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
     characterLabelPattern{
         all{"{0} — hammasi"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/uz_Arab.txt b/source/data/lang/uz_Arab.txt
index 7b85e1e..3bdbd59 100644
--- a/source/data/lang/uz_Arab.txt
+++ b/source/data/lang/uz_Arab.txt
@@ -10,5 +10,5 @@
     Scripts{
         Arab{"عربی"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/uz_Cyrl.txt b/source/data/lang/uz_Cyrl.txt
index fc03661..27d736b 100644
--- a/source/data/lang/uz_Cyrl.txt
+++ b/source/data/lang/uz_Cyrl.txt
@@ -407,7 +407,7 @@
             tibt{"Тибет рақамлари"}
         }
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
     codePatterns{
         language{"Тил: {0}"}
         script{"{0}"}
diff --git a/source/data/lang/uz_Latn.txt b/source/data/lang/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/lang/uz_Latn.txt
+++ b/source/data/lang/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/vai.txt b/source/data/lang/vai.txt
index de88a03..f3387c1 100644
--- a/source/data/lang/vai.txt
+++ b/source/data/lang/vai.txt
@@ -48,5 +48,5 @@
         zh{"ꕦꕇꔧ"}
         zu{"ꖮꖨ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/vai_Latn.txt b/source/data/lang/vai_Latn.txt
index b8b3423..c95f797 100644
--- a/source/data/lang/vai_Latn.txt
+++ b/source/data/lang/vai_Latn.txt
@@ -49,5 +49,5 @@
         zh{"Chaniĩ"}
         zu{"Zúlu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/vai_Vaii.txt b/source/data/lang/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/lang/vai_Vaii.txt
+++ b/source/data/lang/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/vi.txt b/source/data/lang/vi.txt
index 9d38205..76e0800 100644
--- a/source/data/lang/vi.txt
+++ b/source/data/lang/vi.txt
@@ -979,7 +979,7 @@
         VALLADER{"VALLADER"}
         WADEGILE{"La Mã hóa Wade-Giles"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     characterLabelPattern{
         all{"{0} — Tất cả"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/vun.txt b/source/data/lang/vun.txt
index d8d657f..a7bbf05 100644
--- a/source/data/lang/vun.txt
+++ b/source/data/lang/vun.txt
@@ -48,5 +48,5 @@
         zh{"Kyichina"}
         zu{"Kyizulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/wae.txt b/source/data/lang/wae.txt
index 84276ec..152d28e 100644
--- a/source/data/lang/wae.txt
+++ b/source/data/lang/wae.txt
@@ -193,7 +193,7 @@
             latn{"Arabiši Zálä"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"Sprač: {0}"}
         script{"Alfabét: {0}"}
diff --git a/source/data/lang/xog.txt b/source/data/lang/xog.txt
index 063e6ed..ac02ef9 100644
--- a/source/data/lang/xog.txt
+++ b/source/data/lang/xog.txt
@@ -48,5 +48,5 @@
         zh{"Olucayina"}
         zu{"Oluzzulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/yav.txt b/source/data/lang/yav.txt
index 152f5e7..e8691ec 100644
--- a/source/data/lang/yav.txt
+++ b/source/data/lang/yav.txt
@@ -48,5 +48,5 @@
         zh{"sinúɛ"}
         zu{"nusulú"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/yi.txt b/source/data/lang/yi.txt
index 47e7154..2d0cc1e 100644
--- a/source/data/lang/yi.txt
+++ b/source/data/lang/yi.txt
@@ -171,7 +171,7 @@
             gregorian{"גרעגארישער קאַלענדאַר"}
         }
     }
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
     codePatterns{
         language{"שפראַך: {0}"}
         script{"שריפֿט: {0}"}
diff --git a/source/data/lang/yo.txt b/source/data/lang/yo.txt
index 2d75107..edb51fa 100644
--- a/source/data/lang/yo.txt
+++ b/source/data/lang/yo.txt
@@ -101,5 +101,5 @@
         zh{"Èdè Mandari"}
         zu{"Èdè Ṣulu"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/yo_BJ.txt b/source/data/lang/yo_BJ.txt
index 4668758..2c80679 100644
--- a/source/data/lang/yo_BJ.txt
+++ b/source/data/lang/yo_BJ.txt
@@ -11,5 +11,5 @@
         tr{"Èdè Tɔɔkisi"}
         zu{"Èdè Shulu"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/yue.txt b/source/data/lang/yue.txt
index 555613a..d27ec90 100644
--- a/source/data/lang/yue.txt
+++ b/source/data/lang/yue.txt
@@ -1024,7 +1024,7 @@
         VALLADER{"瑞士瓦勒德方言"}
         WADEGILE{"威妥瑪式拼音"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     characterLabelPattern{
         all{"{0} — 全部"}
         compatibility{"{0} — 相容性"}
diff --git a/source/data/lang/zgh.txt b/source/data/lang/zgh.txt
index 5ad1d28..59541b7 100644
--- a/source/data/lang/zgh.txt
+++ b/source/data/lang/zgh.txt
@@ -61,5 +61,5 @@
             islamic{"ⴰⵙⵎⵍⵓⵙⵙⴰⵏ ⵏ ⵍⵉⵙⵍⴰⵎ"}
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/zh.txt b/source/data/lang/zh.txt
index 1f3e95a..666852d 100644
--- a/source/data/lang/zh.txt
+++ b/source/data/lang/zh.txt
@@ -954,7 +954,7 @@
         VALLADER{"瑞士瓦勒德方言"}
         WADEGILE{"WG 威氏拼音法"}
     }
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
     characterLabelPattern{
         all{"{0} — 全部"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/zh_Hans.txt b/source/data/lang/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/lang/zh_Hans.txt
+++ b/source/data/lang/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/zh_Hant.txt b/source/data/lang/zh_Hant.txt
index a14141f..1eb787f 100644
--- a/source/data/lang/zh_Hant.txt
+++ b/source/data/lang/zh_Hant.txt
@@ -1025,7 +1025,7 @@
         VALLADER{"瑞士瓦勒德方言"}
         WADEGILE{"威妥瑪式拼音"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
     characterLabelPattern{
         all{"{0} — 全部"}
         category-list{"{0}: {1}"}
diff --git a/source/data/lang/zh_Hant_HK.txt b/source/data/lang/zh_Hant_HK.txt
index 266c6cb..170a13a 100644
--- a/source/data/lang/zh_Hant_HK.txt
+++ b/source/data/lang/zh_Hant_HK.txt
@@ -127,7 +127,7 @@
         REVISED{"已修訂拼字法"}
         SCOTLAND{"蘇格蘭標準英語"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     characterLabelPattern{
         enclosed{"{0} — 包含"}
         historic{"{0} — 舊式"}
diff --git a/source/data/lang/zh_Hant_MO.txt b/source/data/lang/zh_Hant_MO.txt
index 1814082..78fdee5 100644
--- a/source/data/lang/zh_Hant_MO.txt
+++ b/source/data/lang/zh_Hant_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_MO{
     %%Parent{"zh_Hant_HK"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/lang/zu.txt b/source/data/lang/zu.txt
index 2b3e0ef..a943379 100644
--- a/source/data/lang/zu.txt
+++ b/source/data/lang/zu.txt
@@ -629,7 +629,7 @@
             vaii{"Izinhlazu Zezinombolo ze-Vai"}
         }
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
     characterLabelPattern{
         all{"{0} — All"}
         category-list{"{0}: {1}"}
diff --git a/source/data/locales/af.txt b/source/data/locales/af.txt
index ace5a13..a3d44cf 100644
--- a/source/data/locales/af.txt
+++ b/source/data/locales/af.txt
@@ -200,10 +200,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Neem die {0}e afdraai na regs."}
+            }
+            plural{
+                one{"{0} dag"}
+                other{"{0} dae"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/af_NA.txt b/source/data/locales/af_NA.txt
index ee56d35..c3d061f 100644
--- a/source/data/locales/af_NA.txt
+++ b/source/data/locales/af_NA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 af_NA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/af_ZA.txt b/source/data/locales/af_ZA.txt
index 3e2d9fe..ecf1741 100644
--- a/source/data/locales/af_ZA.txt
+++ b/source/data/locales/af_ZA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 af_ZA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/agq.txt b/source/data/locales/agq.txt
index 501182c..52a7704 100644
--- a/source/data/locales/agq.txt
+++ b/source/data/locales/agq.txt
@@ -22,7 +22,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/agq_CM.txt b/source/data/locales/agq_CM.txt
index 5f26917..4608fa6 100644
--- a/source/data/locales/agq_CM.txt
+++ b/source/data/locales/agq_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 agq_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ak.txt b/source/data/locales/ak.txt
index 2cd26d9..45664d7 100644
--- a/source/data/locales/ak.txt
+++ b/source/data/locales/ak.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ak_GH.txt b/source/data/locales/ak_GH.txt
index bad6af6..6b0fd7f 100644
--- a/source/data/locales/ak_GH.txt
+++ b/source/data/locales/ak_GH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ak_GH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/am.txt b/source/data/locales/am.txt
index 8bcce37..5e81691 100644
--- a/source/data/locales/am.txt
+++ b/source/data/locales/am.txt
@@ -205,11 +205,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"በቀኝ በኩል ባለው በ{0}ኛው መታጠፊያ ግባ።"}
+            }
+            plural{
+                one{"{0} ቀን"}
+                other{"{0} ቀናት"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
         traditional{"ethi"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/am_ET.txt b/source/data/locales/am_ET.txt
index c52ff33..819ecf1 100644
--- a/source/data/locales/am_ET.txt
+++ b/source/data/locales/am_ET.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 am_ET{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar.txt b/source/data/locales/ar.txt
index 033f996..39bbe17 100644
--- a/source/data/locales/ar.txt
+++ b/source/data/locales/ar.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar{
-    AuxExemplarCharacters{"[\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]"}
+    AuxExemplarCharacters{"[\u0640 \u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]"}
     Ellipsis{
         final{"{0}…"}
         initial{"…{0}"}
@@ -15,7 +15,7 @@
         "آ ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى ي]"
     }
     ExemplarCharactersIndex{"[ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]"}
-    ExemplarCharactersPunctuation{"[\\- ‐ – — ، ؛ \\: ! ؟ . ' \u0022 ( ) \\[ \\]]"}
+    ExemplarCharactersPunctuation{"[\\- ‐ – — ، ؛ \\: ! ؟ . ' \u0022 ( ) \\[ \\] « » \u2026]"}
     MoreInformation{"؟"}
     NumberElements{
         arab{
@@ -366,10 +366,23 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"اتجه إلى المنعطف الـ {0} يمينًا."}
+            }
+            plural{
+                few{"{0} أولاد حضروا"}
+                many{"{0} ولدًا حضروا"}
+                one{"ولد واحد حضر"}
+                other{"{0} ولد حضروا"}
+                two{"ولدان حضرا"}
+                zero{"{0} كتاب"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"arab"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ar_001.txt b/source/data/locales/ar_001.txt
index ac645cf..7982326 100644
--- a/source/data/locales/ar_001.txt
+++ b/source/data/locales/ar_001.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_001{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_AE.txt b/source/data/locales/ar_AE.txt
index 8ebe218..ff3ecba 100644
--- a/source/data/locales/ar_AE.txt
+++ b/source/data/locales/ar_AE.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_AE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             eras{
diff --git a/source/data/locales/ar_BH.txt b/source/data/locales/ar_BH.txt
index c0b01ca..899a250 100644
--- a/source/data/locales/ar_BH.txt
+++ b/source/data/locales/ar_BH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_BH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_DJ.txt b/source/data/locales/ar_DJ.txt
index b4d143c..5769f2a 100644
--- a/source/data/locales/ar_DJ.txt
+++ b/source/data/locales/ar_DJ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_DJ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_DZ.txt b/source/data/locales/ar_DZ.txt
index 31263e2..9387b64 100644
--- a/source/data/locales/ar_DZ.txt
+++ b/source/data/locales/ar_DZ.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_EG.txt b/source/data/locales/ar_EG.txt
index 8cc23f3..5e606a9 100644
--- a/source/data/locales/ar_EG.txt
+++ b/source/data/locales/ar_EG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_EG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_EH.txt b/source/data/locales/ar_EH.txt
index 1415739..9cbc091 100644
--- a/source/data/locales/ar_EH.txt
+++ b/source/data/locales/ar_EH.txt
@@ -4,5 +4,5 @@
     NumberElements{
         default{"latn"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_ER.txt b/source/data/locales/ar_ER.txt
index d341664..ec96d38 100644
--- a/source/data/locales/ar_ER.txt
+++ b/source/data/locales/ar_ER.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_ER{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_IL.txt b/source/data/locales/ar_IL.txt
index 5d8cd71..efcbe78 100644
--- a/source/data/locales/ar_IL.txt
+++ b/source/data/locales/ar_IL.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_IL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ar_IQ.txt b/source/data/locales/ar_IQ.txt
index 1c11f28..661c639 100644
--- a/source/data/locales/ar_IQ.txt
+++ b/source/data/locales/ar_IQ.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_IQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_JO.txt b/source/data/locales/ar_JO.txt
index 1838ff7..e4cdc2a 100644
--- a/source/data/locales/ar_JO.txt
+++ b/source/data/locales/ar_JO.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_JO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_KM.txt b/source/data/locales/ar_KM.txt
index 8a556e6..349a367 100644
--- a/source/data/locales/ar_KM.txt
+++ b/source/data/locales/ar_KM.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_KM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ar_KW.txt b/source/data/locales/ar_KW.txt
index 7c18169..201b69f 100644
--- a/source/data/locales/ar_KW.txt
+++ b/source/data/locales/ar_KW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_KW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_LB.txt b/source/data/locales/ar_LB.txt
index dbfe5e4..bde0e82 100644
--- a/source/data/locales/ar_LB.txt
+++ b/source/data/locales/ar_LB.txt
@@ -9,7 +9,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_LY.txt b/source/data/locales/ar_LY.txt
index 58dff98..e5dfbd2 100644
--- a/source/data/locales/ar_LY.txt
+++ b/source/data/locales/ar_LY.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/ar_MA.txt b/source/data/locales/ar_MA.txt
index 77fcaf8..b25f618 100644
--- a/source/data/locales/ar_MA.txt
+++ b/source/data/locales/ar_MA.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ar_MR.txt b/source/data/locales/ar_MR.txt
index 4380386..7cd04d8 100644
--- a/source/data/locales/ar_MR.txt
+++ b/source/data/locales/ar_MR.txt
@@ -9,7 +9,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_OM.txt b/source/data/locales/ar_OM.txt
index 01a883c..61788ee 100644
--- a/source/data/locales/ar_OM.txt
+++ b/source/data/locales/ar_OM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_OM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_PS.txt b/source/data/locales/ar_PS.txt
index 4e9b451..e18fc9f 100644
--- a/source/data/locales/ar_PS.txt
+++ b/source/data/locales/ar_PS.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_PS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_QA.txt b/source/data/locales/ar_QA.txt
index 2a6ec2a..ab422ea 100644
--- a/source/data/locales/ar_QA.txt
+++ b/source/data/locales/ar_QA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_QA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_SA.txt b/source/data/locales/ar_SA.txt
index cdf6f3c..2ff9110 100644
--- a/source/data/locales/ar_SA.txt
+++ b/source/data/locales/ar_SA.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         default{"islamic-umalqura"}
         gregorian{
diff --git a/source/data/locales/ar_SD.txt b/source/data/locales/ar_SD.txt
index a470d3a..bd18ac5 100644
--- a/source/data/locales/ar_SD.txt
+++ b/source/data/locales/ar_SD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_SD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_SO.txt b/source/data/locales/ar_SO.txt
index d81d7d8..a7820e8 100644
--- a/source/data/locales/ar_SO.txt
+++ b/source/data/locales/ar_SO.txt
@@ -8,5 +8,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_SS.txt b/source/data/locales/ar_SS.txt
index 5b6318b..9f385f4 100644
--- a/source/data/locales/ar_SS.txt
+++ b/source/data/locales/ar_SS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_SS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_SY.txt b/source/data/locales/ar_SY.txt
index 2ad4283..1b471c2 100644
--- a/source/data/locales/ar_SY.txt
+++ b/source/data/locales/ar_SY.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_SY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_TD.txt b/source/data/locales/ar_TD.txt
index 2f53642..299be31 100644
--- a/source/data/locales/ar_TD.txt
+++ b/source/data/locales/ar_TD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_TD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ar_TN.txt b/source/data/locales/ar_TN.txt
index 81cd970..ae6bbd6 100644
--- a/source/data/locales/ar_TN.txt
+++ b/source/data/locales/ar_TN.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/ar_YE.txt b/source/data/locales/ar_YE.txt
index c009b37..bb0f274 100644
--- a/source/data/locales/ar_YE.txt
+++ b/source/data/locales/ar_YE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar_YE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ars.txt b/source/data/locales/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/locales/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/locales/as.txt b/source/data/locales/as.txt
index 84b93c0..6893d71 100644
--- a/source/data/locales/as.txt
+++ b/source/data/locales/as.txt
@@ -18,7 +18,7 @@
         }
         native{"beng"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/as_IN.txt b/source/data/locales/as_IN.txt
index 93ce6ea..3801d88 100644
--- a/source/data/locales/as_IN.txt
+++ b/source/data/locales/as_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 as_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/asa.txt b/source/data/locales/asa.txt
index 4b02111..dc615c7 100644
--- a/source/data/locales/asa.txt
+++ b/source/data/locales/asa.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/asa_TZ.txt b/source/data/locales/asa_TZ.txt
index f43366f..06e6e4c 100644
--- a/source/data/locales/asa_TZ.txt
+++ b/source/data/locales/asa_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 asa_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ast.txt b/source/data/locales/ast.txt
index 38f3adf..bce113a 100644
--- a/source/data/locales/ast.txt
+++ b/source/data/locales/ast.txt
@@ -221,10 +221,16 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            plural{
+                one{"{0} día"}
+                other{"{0} díes"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/ast_ES.txt b/source/data/locales/ast_ES.txt
index 2ce0bc8..eafdc8f 100644
--- a/source/data/locales/ast_ES.txt
+++ b/source/data/locales/ast_ES.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ast_ES{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/az.txt b/source/data/locales/az.txt
index f1383b9..585dab4 100644
--- a/source/data/locales/az.txt
+++ b/source/data/locales/az.txt
@@ -200,10 +200,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}-cü sağ döngəni seçin."}
+                many{"{0}-cı sağ döngəni seçin."}
+                one{"{0}-ci sağ döngəni seçin."}
+                other{"{0}-cu sağ döngəni seçin."}
+            }
+            plural{
+                one{"Alış-veriş katınızda {0} X var. Almaq istəyirsiniz?"}
+                other{"Alış-veriş kartınızda {0} X var. Almaq istəyirsiniz?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
@@ -242,7 +254,7 @@
                 yyyyMEd{"GGGGG dd.MM.y, E"}
                 yyyyMMM{"G MMM y"}
                 yyyyMMMEd{"G d MMM y, E"}
-                yyyyMMMM{"G y MMMM"}
+                yyyyMMMM{"G MMMM y"}
                 yyyyMMMd{"G d MMM y"}
                 yyyyMd{"GGGGG dd.MM.y"}
                 yyyyQQQ{"G y QQQ"}
@@ -382,7 +394,7 @@
                 yMEd{"dd.MM.y, E"}
                 yMMM{"MMM y"}
                 yMMMEd{"d MMM y, E"}
-                yMMMM{"y MMMM"}
+                yMMMM{"MMMM y"}
                 yMMMd{"d MMM y"}
                 yMd{"dd.MM.y"}
                 yQQQ{"y QQQ"}
diff --git a/source/data/locales/az_Cyrl.txt b/source/data/locales/az_Cyrl.txt
index e629a81..97e9ec5 100644
--- a/source/data/locales/az_Cyrl.txt
+++ b/source/data/locales/az_Cyrl.txt
@@ -26,7 +26,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/az_Cyrl_AZ.txt b/source/data/locales/az_Cyrl_AZ.txt
index c80603d..423abc8 100644
--- a/source/data/locales/az_Cyrl_AZ.txt
+++ b/source/data/locales/az_Cyrl_AZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Cyrl_AZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/az_Latn.txt b/source/data/locales/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/locales/az_Latn.txt
+++ b/source/data/locales/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/az_Latn_AZ.txt b/source/data/locales/az_Latn_AZ.txt
index b95556a..0f07101 100644
--- a/source/data/locales/az_Latn_AZ.txt
+++ b/source/data/locales/az_Latn_AZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn_AZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bas.txt b/source/data/locales/bas.txt
index e9b993d..d771d55 100644
--- a/source/data/locales/bas.txt
+++ b/source/data/locales/bas.txt
@@ -23,7 +23,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bas_CM.txt b/source/data/locales/bas_CM.txt
index b4c19f9..b928dff 100644
--- a/source/data/locales/bas_CM.txt
+++ b/source/data/locales/bas_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bas_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/be.txt b/source/data/locales/be.txt
index add7324..661696f 100644
--- a/source/data/locales/be.txt
+++ b/source/data/locales/be.txt
@@ -271,10 +271,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}-і дом злева"}
+                other{"{0}-ы дом злева"}
+            }
+            plural{
+                few{"з {0} кніг за {0} дні"}
+                many{"з {0} кніг за {0} дзён"}
+                one{"з {0} кнігі за {0} дзень"}
+                other{"з {0} кніги за {0} дні"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/be_BY.txt b/source/data/locales/be_BY.txt
index 85327e2..614eeec 100644
--- a/source/data/locales/be_BY.txt
+++ b/source/data/locales/be_BY.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 be_BY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bem.txt b/source/data/locales/bem.txt
index 43ddcfd..efa21c8 100644
--- a/source/data/locales/bem.txt
+++ b/source/data/locales/bem.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bem_ZM.txt b/source/data/locales/bem_ZM.txt
index 9bfd49a..bfbcc15 100644
--- a/source/data/locales/bem_ZM.txt
+++ b/source/data/locales/bem_ZM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bem_ZM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bez.txt b/source/data/locales/bez.txt
index 1f84612..ccdf34f 100644
--- a/source/data/locales/bez.txt
+++ b/source/data/locales/bez.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bez_TZ.txt b/source/data/locales/bez_TZ.txt
index 3f5cc5a..97144bb 100644
--- a/source/data/locales/bez_TZ.txt
+++ b/source/data/locales/bez_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bez_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bg.txt b/source/data/locales/bg.txt
index ba97c2b..00af0bb 100644
--- a/source/data/locales/bg.txt
+++ b/source/data/locales/bg.txt
@@ -22,8 +22,8 @@
                 range{"{0} – {1}"}
             }
             patterns{
-                accountingFormat{"#0.00 ¤;(#0.00 ¤)"}
-                currencyFormat{"#0.00 ¤"}
+                accountingFormat{"0.00 ¤;(0.00 ¤)"}
+                currencyFormat{"0.00 ¤"}
                 decimalFormat{"#,##0.###"}
                 percentFormat{"#,##0%"}
                 scientificFormat{"#E0"}
@@ -197,10 +197,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Завийте надясно по {0}-ата пресечка."}
+            }
+            plural{
+                one{"{0} ден"}
+                other{"{0} дена"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bg_BG.txt b/source/data/locales/bg_BG.txt
index 8d15348..4389928 100644
--- a/source/data/locales/bg_BG.txt
+++ b/source/data/locales/bg_BG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bg_BG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bm.txt b/source/data/locales/bm.txt
index 49d34c3..39452e2 100644
--- a/source/data/locales/bm.txt
+++ b/source/data/locales/bm.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bm_ML.txt b/source/data/locales/bm_ML.txt
index e146c65..31da58d 100644
--- a/source/data/locales/bm_ML.txt
+++ b/source/data/locales/bm_ML.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bm_ML{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bn.txt b/source/data/locales/bn.txt
index e83ad74..0e7f754 100644
--- a/source/data/locales/bn.txt
+++ b/source/data/locales/bn.txt
@@ -219,10 +219,23 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"ডান দিকে {0}র্থ বাঁকটি নিন।"}
+                many{"ডান দিকে {0}ষ্ঠ বাঁকটি নিন।"}
+                one{"ডান দিকে {0}ম বাঁকটি নিন।"}
+                other{"ডান দিকে {0}তম বাঁকটি নিন।"}
+                two{"ডান দিকে {0}য় বাঁকটি নিন।"}
+            }
+            plural{
+                one{"সসে {0}টি আপেল খেল, সেটা ভাল"}
+                other{"সসে {0}টি আপেল খেল, সেগুলি ভাল"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"beng"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bn_BD.txt b/source/data/locales/bn_BD.txt
index ea56a08..06fe8dd 100644
--- a/source/data/locales/bn_BD.txt
+++ b/source/data/locales/bn_BD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bn_BD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bn_IN.txt b/source/data/locales/bn_IN.txt
index c0372f5..a8365ed 100644
--- a/source/data/locales/bn_IN.txt
+++ b/source/data/locales/bn_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bn_IN{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bo.txt b/source/data/locales/bo.txt
index 53b28b5..d76bc71 100644
--- a/source/data/locales/bo.txt
+++ b/source/data/locales/bo.txt
@@ -32,7 +32,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bo_CN.txt b/source/data/locales/bo_CN.txt
index 3f92f4d..bc197c6 100644
--- a/source/data/locales/bo_CN.txt
+++ b/source/data/locales/bo_CN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bo_CN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bo_IN.txt b/source/data/locales/bo_IN.txt
index e60d433..caa844f 100644
--- a/source/data/locales/bo_IN.txt
+++ b/source/data/locales/bo_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bo_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/br.txt b/source/data/locales/br.txt
index 8b676ea..0698e14 100644
--- a/source/data/locales/br.txt
+++ b/source/data/locales/br.txt
@@ -47,10 +47,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            plural{
+                few{"{0} deiz"}
+                many{"{0} a zeizioù"}
+                one{"{0} deiz"}
+                other{"{0} deiz"}
+                two{"{0} zeiz"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/br_FR.txt b/source/data/locales/br_FR.txt
index 41f752e..253b4a9 100644
--- a/source/data/locales/br_FR.txt
+++ b/source/data/locales/br_FR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 br_FR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/brx.txt b/source/data/locales/brx.txt
index 74e2d56..7a42a2a 100644
--- a/source/data/locales/brx.txt
+++ b/source/data/locales/brx.txt
@@ -35,7 +35,7 @@
         }
         native{"deva"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/brx_IN.txt b/source/data/locales/brx_IN.txt
index fead065..38d535f 100644
--- a/source/data/locales/brx_IN.txt
+++ b/source/data/locales/brx_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 brx_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bs.txt b/source/data/locales/bs.txt
index 343e107..637045d 100644
--- a/source/data/locales/bs.txt
+++ b/source/data/locales/bs.txt
@@ -230,10 +230,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Skrenite na {0}. križanju desno."}
+            }
+            plural{
+                few{"za {0} mjeseca"}
+                many{"za {0} mjeseci"}
+                one{"za {0} mjesec"}
+                other{"za {0} mjeseci"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/bs_Cyrl.txt b/source/data/locales/bs_Cyrl.txt
index 03b685d..85d80be 100644
--- a/source/data/locales/bs_Cyrl.txt
+++ b/source/data/locales/bs_Cyrl.txt
@@ -159,7 +159,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/bs_Cyrl_BA.txt b/source/data/locales/bs_Cyrl_BA.txt
index 4fa9c34..4286646 100644
--- a/source/data/locales/bs_Cyrl_BA.txt
+++ b/source/data/locales/bs_Cyrl_BA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Cyrl_BA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bs_Latn.txt b/source/data/locales/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/locales/bs_Latn.txt
+++ b/source/data/locales/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/bs_Latn_BA.txt b/source/data/locales/bs_Latn_BA.txt
index c629b91..e8e2c0a 100644
--- a/source/data/locales/bs_Latn_BA.txt
+++ b/source/data/locales/bs_Latn_BA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn_BA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ca.txt b/source/data/locales/ca.txt
index 67d7530..a49abdc 100644
--- a/source/data/locales/ca.txt
+++ b/source/data/locales/ca.txt
@@ -200,10 +200,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"Agafa el {0}t a la dreta."}
+                one{"Agafa el {0}r a la dreta."}
+                other{"Agafa el {0}è a la dreta."}
+                two{"Agafa el {0}n a la dreta."}
+            }
+            plural{
+                one{"{0} dia"}
+                other{"{0} dies"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/ca_AD.txt b/source/data/locales/ca_AD.txt
index 4370b15..0065b43 100644
--- a/source/data/locales/ca_AD.txt
+++ b/source/data/locales/ca_AD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca_AD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ca_ES.txt b/source/data/locales/ca_ES.txt
index a3bee45..3c81370 100644
--- a/source/data/locales/ca_ES.txt
+++ b/source/data/locales/ca_ES.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca_ES{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ca_FR.txt b/source/data/locales/ca_FR.txt
index fe1f982..2460090 100644
--- a/source/data/locales/ca_FR.txt
+++ b/source/data/locales/ca_FR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca_FR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ca_IT.txt b/source/data/locales/ca_IT.txt
index 568231d..52d7e53 100644
--- a/source/data/locales/ca_IT.txt
+++ b/source/data/locales/ca_IT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca_IT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ce.txt b/source/data/locales/ce.txt
index 49f2f83..bb0103b 100644
--- a/source/data/locales/ce.txt
+++ b/source/data/locales/ce.txt
@@ -192,7 +192,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ce_RU.txt b/source/data/locales/ce_RU.txt
index d8440ee..758b560 100644
--- a/source/data/locales/ce_RU.txt
+++ b/source/data/locales/ce_RU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ce_RU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/cgg.txt b/source/data/locales/cgg.txt
index 7428fcc..a52a39f 100644
--- a/source/data/locales/cgg.txt
+++ b/source/data/locales/cgg.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/cgg_UG.txt b/source/data/locales/cgg_UG.txt
index 809d2ac..5270152 100644
--- a/source/data/locales/cgg_UG.txt
+++ b/source/data/locales/cgg_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cgg_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/chr.txt b/source/data/locales/chr.txt
index 40efe7e..c13a51a 100644
--- a/source/data/locales/chr.txt
+++ b/source/data/locales/chr.txt
@@ -203,7 +203,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/chr_US.txt b/source/data/locales/chr_US.txt
index 84ad349..034f2ed 100644
--- a/source/data/locales/chr_US.txt
+++ b/source/data/locales/chr_US.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 chr_US{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ckb.txt b/source/data/locales/ckb.txt
index 8867d9d..3880d6a 100644
--- a/source/data/locales/ckb.txt
+++ b/source/data/locales/ckb.txt
@@ -54,7 +54,7 @@
         minimumGroupingDigits{"1"}
         native{"arab"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ckb_IQ.txt b/source/data/locales/ckb_IQ.txt
index 2ae53cb..7513418 100644
--- a/source/data/locales/ckb_IQ.txt
+++ b/source/data/locales/ckb_IQ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ckb_IQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ckb_IR.txt b/source/data/locales/ckb_IR.txt
index b8fb48e..be873cd 100644
--- a/source/data/locales/ckb_IR.txt
+++ b/source/data/locales/ckb_IR.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ckb_IR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         default{"persian"}
         gregorian{
diff --git a/source/data/locales/cs.txt b/source/data/locales/cs.txt
index 59826af..09bbedd 100644
--- a/source/data/locales/cs.txt
+++ b/source/data/locales/cs.txt
@@ -282,10 +282,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Na {0}. křižovatce odbočte vpravo."}
+            }
+            plural{
+                few{"{0} dny"}
+                many{"{0} dne"}
+                one{"{0} den"}
+                other{"{0} dní"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             availableFormats{
diff --git a/source/data/locales/cs_CZ.txt b/source/data/locales/cs_CZ.txt
index 5797b58..c689e8d 100644
--- a/source/data/locales/cs_CZ.txt
+++ b/source/data/locales/cs_CZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cs_CZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/cy.txt b/source/data/locales/cy.txt
index af177c1..b9593fb 100644
--- a/source/data/locales/cy.txt
+++ b/source/data/locales/cy.txt
@@ -355,10 +355,28 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}ydd ci"}
+                many{"{0}ed ci"}
+                one{"ci {0}af"}
+                other{"ci rhif {0}"}
+                two{"{0}il gi"}
+                zero{"{0}fed ci"}
+            }
+            plural{
+                few{"{0} chi, {0} cath"}
+                many{"{0} chi, {0} chath"}
+                one{"{0} ci, {0} gath"}
+                other{"{0} ci, {0} cath"}
+                two{"{0} gi, {0} gath"}
+                zero{"{0} cŵn, {0} cathod"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/cy_GB.txt b/source/data/locales/cy_GB.txt
index 86724d6..17ba0ca 100644
--- a/source/data/locales/cy_GB.txt
+++ b/source/data/locales/cy_GB.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cy_GB{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/da.txt b/source/data/locales/da.txt
index bc74ed5..722b60b 100644
--- a/source/data/locales/da.txt
+++ b/source/data/locales/da.txt
@@ -197,10 +197,19 @@
                 timeSeparator{"."}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Tag den {0}. vej til højre."}
+            }
+            plural{
+                one{"{0} dag"}
+                other{"{0} dage"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/da_DK.txt b/source/data/locales/da_DK.txt
index 410cf1d..63822e6 100644
--- a/source/data/locales/da_DK.txt
+++ b/source/data/locales/da_DK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 da_DK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/da_GL.txt b/source/data/locales/da_GL.txt
index 6ea4498..88898b0 100644
--- a/source/data/locales/da_GL.txt
+++ b/source/data/locales/da_GL.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 da_GL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/dav.txt b/source/data/locales/dav.txt
index 8f9359a..0943501 100644
--- a/source/data/locales/dav.txt
+++ b/source/data/locales/dav.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dav_KE.txt b/source/data/locales/dav_KE.txt
index 5327e22..c0f0adf 100644
--- a/source/data/locales/dav_KE.txt
+++ b/source/data/locales/dav_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dav_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/de.txt b/source/data/locales/de.txt
index b1f43a2..c7ec147 100644
--- a/source/data/locales/de.txt
+++ b/source/data/locales/de.txt
@@ -139,16 +139,16 @@
                 }
                 decimalFormat{
                     1000{
-                        one{"0 Tsd'.'"}
-                        other{"0 Tsd'.'"}
+                        one{"0"}
+                        other{"0"}
                     }
                     10000{
-                        one{"00 Tsd'.'"}
-                        other{"00 Tsd'.'"}
+                        one{"0"}
+                        other{"0"}
                     }
                     100000{
-                        one{"000 Tsd'.'"}
-                        other{"000 Tsd'.'"}
+                        one{"0"}
+                        other{"0"}
                     }
                     1000000{
                         one{"0 Mio'.'"}
@@ -203,10 +203,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}. Abzweigung nach rechts nehmen"}
+            }
+            plural{
+                one{"{0} Tag"}
+                other{"{0} Tage"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/de_AT.txt b/source/data/locales/de_AT.txt
index 9b106f8..1cab4db 100644
--- a/source/data/locales/de_AT.txt
+++ b/source/data/locales/de_AT.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.28.73"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/de_BE.txt b/source/data/locales/de_BE.txt
index f2c6201..1997b14 100644
--- a/source/data/locales/de_BE.txt
+++ b/source/data/locales/de_BE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de_BE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/de_CH.txt b/source/data/locales/de_CH.txt
index 5342779..3d1e47d 100644
--- a/source/data/locales/de_CH.txt
+++ b/source/data/locales/de_CH.txt
@@ -14,9 +14,9 @@
             }
             symbols{
                 decimal{"."}
-                group{"'"}
+                group{"’"}
             }
         }
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/de_DE.txt b/source/data/locales/de_DE.txt
index c30818c..573d78c 100644
--- a/source/data/locales/de_DE.txt
+++ b/source/data/locales/de_DE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de_DE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/de_IT.txt b/source/data/locales/de_IT.txt
index c15c426..5fa4d68 100644
--- a/source/data/locales/de_IT.txt
+++ b/source/data/locales/de_IT.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de_IT{
-    Version{"2.1.28.58"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             monthNames{
diff --git a/source/data/locales/de_LI.txt b/source/data/locales/de_LI.txt
index 7588c92..507beba 100644
--- a/source/data/locales/de_LI.txt
+++ b/source/data/locales/de_LI.txt
@@ -9,11 +9,11 @@
             }
             symbols{
                 decimal{"."}
-                group{"'"}
+                group{"’"}
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/de_LU.txt b/source/data/locales/de_LU.txt
index 7a26975..1cc34d0 100644
--- a/source/data/locales/de_LU.txt
+++ b/source/data/locales/de_LU.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de_LU{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkersNarrow{
diff --git a/source/data/locales/dje.txt b/source/data/locales/dje.txt
index 5719a1c..12e6557 100644
--- a/source/data/locales/dje.txt
+++ b/source/data/locales/dje.txt
@@ -17,7 +17,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dje_NE.txt b/source/data/locales/dje_NE.txt
index ef63522..d0bc72a 100644
--- a/source/data/locales/dje_NE.txt
+++ b/source/data/locales/dje_NE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dje_NE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/dsb.txt b/source/data/locales/dsb.txt
index 4936926..fbf78c2 100644
--- a/source/data/locales/dsb.txt
+++ b/source/data/locales/dsb.txt
@@ -195,7 +195,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dsb_DE.txt b/source/data/locales/dsb_DE.txt
index f924dd6..0f5100e 100644
--- a/source/data/locales/dsb_DE.txt
+++ b/source/data/locales/dsb_DE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dsb_DE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/dua.txt b/source/data/locales/dua.txt
index e96ee4a..abbcc79 100644
--- a/source/data/locales/dua.txt
+++ b/source/data/locales/dua.txt
@@ -20,7 +20,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dua_CM.txt b/source/data/locales/dua_CM.txt
index 30ee974..15ea4e3 100644
--- a/source/data/locales/dua_CM.txt
+++ b/source/data/locales/dua_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dua_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/dyo.txt b/source/data/locales/dyo.txt
index 6389359..c807292 100644
--- a/source/data/locales/dyo.txt
+++ b/source/data/locales/dyo.txt
@@ -17,7 +17,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dyo_SN.txt b/source/data/locales/dyo_SN.txt
index f8229d4..65ccae5 100644
--- a/source/data/locales/dyo_SN.txt
+++ b/source/data/locales/dyo_SN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dyo_SN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/dz.txt b/source/data/locales/dz.txt
index 04bca70..67ce3d4 100644
--- a/source/data/locales/dz.txt
+++ b/source/data/locales/dz.txt
@@ -84,6 +84,11 @@
                 plusSign{"+"}
             }
         }
+        minimalPairs{
+            plural{
+                other{"ཉིནམ་ {0} "}
+            }
+        }
         native{"tibt"}
         tibt{
             symbols{
@@ -100,7 +105,7 @@
             }
         }
     }
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/dz_BT.txt b/source/data/locales/dz_BT.txt
index a114a5c..aaf05c7 100644
--- a/source/data/locales/dz_BT.txt
+++ b/source/data/locales/dz_BT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dz_BT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ebu.txt b/source/data/locales/ebu.txt
index 7ad3900..f9bc646 100644
--- a/source/data/locales/ebu.txt
+++ b/source/data/locales/ebu.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ebu_KE.txt b/source/data/locales/ebu_KE.txt
index 77c74ab..c71213f 100644
--- a/source/data/locales/ebu_KE.txt
+++ b/source/data/locales/ebu_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ebu_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ee.txt b/source/data/locales/ee.txt
index e3f3be4..8d89477 100644
--- a/source/data/locales/ee.txt
+++ b/source/data/locales/ee.txt
@@ -75,7 +75,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ee_GH.txt b/source/data/locales/ee_GH.txt
index 138ff4f..5cd0e19 100644
--- a/source/data/locales/ee_GH.txt
+++ b/source/data/locales/ee_GH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ee_GH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ee_TG.txt b/source/data/locales/ee_TG.txt
index 624fc35..b40bcd1 100644
--- a/source/data/locales/ee_TG.txt
+++ b/source/data/locales/ee_TG.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ee_TG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/el.txt b/source/data/locales/el.txt
index d1d422d..bb97177 100644
--- a/source/data/locales/el.txt
+++ b/source/data/locales/el.txt
@@ -200,11 +200,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Στρίψτε στην {0}η γωνία δεξιά."}
+            }
+            plural{
+                one{"{0} ημέρα"}
+                other{"{0} ημέρες"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
         traditional{"grek"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/el_CY.txt b/source/data/locales/el_CY.txt
index eadcd5e..07707c6 100644
--- a/source/data/locales/el_CY.txt
+++ b/source/data/locales/el_CY.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 el_CY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/el_GR.txt b/source/data/locales/el_GR.txt
index e3bf6eb..8241aab 100644
--- a/source/data/locales/el_GR.txt
+++ b/source/data/locales/el_GR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 el_GR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en.txt b/source/data/locales/en.txt
index 2a81202..5953ac9 100644
--- a/source/data/locales/en.txt
+++ b/source/data/locales/en.txt
@@ -191,8 +191,20 @@
                 superscriptingExponent{"×"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"Take the {0}rd right."}
+                one{"Take the {0}st right."}
+                other{"Take the {0}th right."}
+                two{"Take the {0}nd right."}
+            }
+            plural{
+                one{"{0} day"}
+                other{"{0} days"}
+            }
+        }
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
@@ -1232,13 +1244,26 @@
                 }
             }
         }
+        dayOfYear{
+            dn{"day of year"}
+        }
+        dayOfYear-short{
+            dn{"day of yr."}
+        }
         dayperiod{
             dn{"AM/PM"}
             dn%variant{"am/pm"}
         }
+        dayperiod-short{
+            dn{"AM/PM"}
+            dn%variant{"am/pm"}
+        }
         era{
             dn{"era"}
         }
+        era-short{
+            dn{"era"}
+        }
         fri{
             relative{
                 "-1"{"last Friday"}
@@ -1795,9 +1820,24 @@
                 }
             }
         }
+        weekOfMonth{
+            dn{"week of month"}
+        }
+        weekOfMonth-short{
+            dn{"wk. of mo."}
+        }
         weekday{
             dn{"day of the week"}
         }
+        weekday-short{
+            dn{"day of wk."}
+        }
+        weekdayOfMonth{
+            dn{"weekday of the month"}
+        }
+        weekdayOfMonth-short{
+            dn{"wkday. of mo."}
+        }
         year{
             dn{"year"}
             relative{
@@ -1837,6 +1877,9 @@
         zone{
             dn{"time zone"}
         }
+        zone-short{
+            dn{"zone"}
+        }
     }
     listPattern{
         standard{
diff --git a/source/data/locales/en_001.txt b/source/data/locales/en_001.txt
index 3bef802..20f07b9 100644
--- a/source/data/locales/en_001.txt
+++ b/source/data/locales/en_001.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_001{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     calendar{
         chinese{
             DateTimePatterns{
diff --git a/source/data/locales/en_150.txt b/source/data/locales/en_150.txt
index 789ac22..9725397 100644
--- a/source/data/locales/en_150.txt
+++ b/source/data/locales/en_150.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_AG.txt b/source/data/locales/en_AG.txt
index 85efa69..ed7f63d 100644
--- a/source/data/locales/en_AG.txt
+++ b/source/data/locales/en_AG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_AI.txt b/source/data/locales/en_AI.txt
index cc2c802..c5cb011 100644
--- a/source/data/locales/en_AI.txt
+++ b/source/data/locales/en_AI.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_AS.txt b/source/data/locales/en_AS.txt
index d440769..cc46bee 100644
--- a/source/data/locales/en_AS.txt
+++ b/source/data/locales/en_AS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_AT.txt b/source/data/locales/en_AT.txt
index 9c45ab2..d0b1782 100644
--- a/source/data/locales/en_AT.txt
+++ b/source/data/locales/en_AT.txt
@@ -14,5 +14,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_AU.txt b/source/data/locales/en_AU.txt
index 6d50953..06d7e48 100644
--- a/source/data/locales/en_AU.txt
+++ b/source/data/locales/en_AU.txt
@@ -9,7 +9,7 @@
             }
         }
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/en_BB.txt b/source/data/locales/en_BB.txt
index 0cc013f..2c2c05e 100644
--- a/source/data/locales/en_BB.txt
+++ b/source/data/locales/en_BB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_BE.txt b/source/data/locales/en_BE.txt
index f195955..ec82310 100644
--- a/source/data/locales/en_BE.txt
+++ b/source/data/locales/en_BE.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_BI.txt b/source/data/locales/en_BI.txt
index 20496ae..1862f81 100644
--- a/source/data/locales/en_BI.txt
+++ b/source/data/locales/en_BI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_BM.txt b/source/data/locales/en_BM.txt
index 817b1d4..a07478e 100644
--- a/source/data/locales/en_BM.txt
+++ b/source/data/locales/en_BM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_BS.txt b/source/data/locales/en_BS.txt
index de6b101..3457002 100644
--- a/source/data/locales/en_BS.txt
+++ b/source/data/locales/en_BS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_BW.txt b/source/data/locales/en_BW.txt
index cc5265a..3bdb135 100644
--- a/source/data/locales/en_BW.txt
+++ b/source/data/locales/en_BW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_BZ.txt b/source/data/locales/en_BZ.txt
index eee117d..8b0dbb9 100644
--- a/source/data/locales/en_BZ.txt
+++ b/source/data/locales/en_BZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_CA.txt b/source/data/locales/en_CA.txt
index 99aba65..a002f9d 100644
--- a/source/data/locales/en_CA.txt
+++ b/source/data/locales/en_CA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CA{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     calendar{
         chinese{
             DateTimePatterns{
diff --git a/source/data/locales/en_CC.txt b/source/data/locales/en_CC.txt
index c25e644..f43f429 100644
--- a/source/data/locales/en_CC.txt
+++ b/source/data/locales/en_CC.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_CH.txt b/source/data/locales/en_CH.txt
index 27380ee..a6fcb1d 100644
--- a/source/data/locales/en_CH.txt
+++ b/source/data/locales/en_CH.txt
@@ -13,5 +13,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_CK.txt b/source/data/locales/en_CK.txt
index 47f04bd..547be9b 100644
--- a/source/data/locales/en_CK.txt
+++ b/source/data/locales/en_CK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_CM.txt b/source/data/locales/en_CM.txt
index 8968ddd..b81e529 100644
--- a/source/data/locales/en_CM.txt
+++ b/source/data/locales/en_CM.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_CX.txt b/source/data/locales/en_CX.txt
index 9146c1e..b5fbece 100644
--- a/source/data/locales/en_CX.txt
+++ b/source/data/locales/en_CX.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_CY.txt b/source/data/locales/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/locales/en_CY.txt
+++ b/source/data/locales/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_DE.txt b/source/data/locales/en_DE.txt
index d4a7bde..78da738 100644
--- a/source/data/locales/en_DE.txt
+++ b/source/data/locales/en_DE.txt
@@ -12,5 +12,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_DG.txt b/source/data/locales/en_DG.txt
index 3b0557a..d037886 100644
--- a/source/data/locales/en_DG.txt
+++ b/source/data/locales/en_DG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_DK.txt b/source/data/locales/en_DK.txt
index a41fc4a..fb53c87 100644
--- a/source/data/locales/en_DK.txt
+++ b/source/data/locales/en_DK.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/en_DM.txt b/source/data/locales/en_DM.txt
index 6811cff..067f54d 100644
--- a/source/data/locales/en_DM.txt
+++ b/source/data/locales/en_DM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_ER.txt b/source/data/locales/en_ER.txt
index 82919fd..dac4b71 100644
--- a/source/data/locales/en_ER.txt
+++ b/source/data/locales/en_ER.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ER{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_FI.txt b/source/data/locales/en_FI.txt
index 593c00a..343091a 100644
--- a/source/data/locales/en_FI.txt
+++ b/source/data/locales/en_FI.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/en_FJ.txt b/source/data/locales/en_FJ.txt
index b22339a..17022d5 100644
--- a/source/data/locales/en_FJ.txt
+++ b/source/data/locales/en_FJ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FJ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_FK.txt b/source/data/locales/en_FK.txt
index 9a400d6..1773dc6 100644
--- a/source/data/locales/en_FK.txt
+++ b/source/data/locales/en_FK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_FM.txt b/source/data/locales/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/locales/en_FM.txt
+++ b/source/data/locales/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_GB.txt b/source/data/locales/en_GB.txt
index 9718c9d..5a3c262 100644
--- a/source/data/locales/en_GB.txt
+++ b/source/data/locales/en_GB.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/en_GD.txt b/source/data/locales/en_GD.txt
index 69be247..a006727 100644
--- a/source/data/locales/en_GD.txt
+++ b/source/data/locales/en_GD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_GG.txt b/source/data/locales/en_GG.txt
index ee3ec22..d1e5a2d 100644
--- a/source/data/locales/en_GG.txt
+++ b/source/data/locales/en_GG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_GH.txt b/source/data/locales/en_GH.txt
index 54ca446..50a4429 100644
--- a/source/data/locales/en_GH.txt
+++ b/source/data/locales/en_GH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_GI.txt b/source/data/locales/en_GI.txt
index 3296a7c..58cd65b 100644
--- a/source/data/locales/en_GI.txt
+++ b/source/data/locales/en_GI.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_GM.txt b/source/data/locales/en_GM.txt
index 48193f3..9448c85 100644
--- a/source/data/locales/en_GM.txt
+++ b/source/data/locales/en_GM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_GU.txt b/source/data/locales/en_GU.txt
index 354af29..3f9fbc6 100644
--- a/source/data/locales/en_GU.txt
+++ b/source/data/locales/en_GU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_GY.txt b/source/data/locales/en_GY.txt
index 53782ef..7c5333b 100644
--- a/source/data/locales/en_GY.txt
+++ b/source/data/locales/en_GY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_HK.txt b/source/data/locales/en_HK.txt
index 1bfc85e..5b3cd3c 100644
--- a/source/data/locales/en_HK.txt
+++ b/source/data/locales/en_HK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_IE.txt b/source/data/locales/en_IE.txt
index 52a831c..ecf496b 100644
--- a/source/data/locales/en_IE.txt
+++ b/source/data/locales/en_IE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_IL.txt b/source/data/locales/en_IL.txt
index 7bc194d..4c99db4 100644
--- a/source/data/locales/en_IL.txt
+++ b/source/data/locales/en_IL.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/en_IM.txt b/source/data/locales/en_IM.txt
index 56a20c6..f424a5f 100644
--- a/source/data/locales/en_IM.txt
+++ b/source/data/locales/en_IM.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_IN.txt b/source/data/locales/en_IN.txt
index d07c383..fbbc794 100644
--- a/source/data/locales/en_IN.txt
+++ b/source/data/locales/en_IN.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_IO.txt b/source/data/locales/en_IO.txt
index 90a0a58..91937a3 100644
--- a/source/data/locales/en_IO.txt
+++ b/source/data/locales/en_IO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_JE.txt b/source/data/locales/en_JE.txt
index 4ef344e..299b52e 100644
--- a/source/data/locales/en_JE.txt
+++ b/source/data/locales/en_JE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_JM.txt b/source/data/locales/en_JM.txt
index 11356e7..ad3c905 100644
--- a/source/data/locales/en_JM.txt
+++ b/source/data/locales/en_JM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_KE.txt b/source/data/locales/en_KE.txt
index 72ed0fe..bc5062d 100644
--- a/source/data/locales/en_KE.txt
+++ b/source/data/locales/en_KE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_KI.txt b/source/data/locales/en_KI.txt
index 8624154..f671853 100644
--- a/source/data/locales/en_KI.txt
+++ b/source/data/locales/en_KI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_KN.txt b/source/data/locales/en_KN.txt
index b68c8f1..573c389 100644
--- a/source/data/locales/en_KN.txt
+++ b/source/data/locales/en_KN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_KY.txt b/source/data/locales/en_KY.txt
index febcc6f..0d60082 100644
--- a/source/data/locales/en_KY.txt
+++ b/source/data/locales/en_KY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_LC.txt b/source/data/locales/en_LC.txt
index b781315..7033a6a 100644
--- a/source/data/locales/en_LC.txt
+++ b/source/data/locales/en_LC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_LR.txt b/source/data/locales/en_LR.txt
index f1a2ce0..8d60973 100644
--- a/source/data/locales/en_LR.txt
+++ b/source/data/locales/en_LR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_LS.txt b/source/data/locales/en_LS.txt
index ce9cd01..61d557f 100644
--- a/source/data/locales/en_LS.txt
+++ b/source/data/locales/en_LS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_MG.txt b/source/data/locales/en_MG.txt
index 4c4e138..90ed5ba 100644
--- a/source/data/locales/en_MG.txt
+++ b/source/data/locales/en_MG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_MH.txt b/source/data/locales/en_MH.txt
index 99447d1..85717c1 100644
--- a/source/data/locales/en_MH.txt
+++ b/source/data/locales/en_MH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_MO.txt b/source/data/locales/en_MO.txt
index 7995d51..7c06497 100644
--- a/source/data/locales/en_MO.txt
+++ b/source/data/locales/en_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_MP.txt b/source/data/locales/en_MP.txt
index f5e89b8..2acfccc 100644
--- a/source/data/locales/en_MP.txt
+++ b/source/data/locales/en_MP.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_MS.txt b/source/data/locales/en_MS.txt
index 8dc532a..7c41de3 100644
--- a/source/data/locales/en_MS.txt
+++ b/source/data/locales/en_MS.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_MT.txt b/source/data/locales/en_MT.txt
index 0f07f7a..2cd751d 100644
--- a/source/data/locales/en_MT.txt
+++ b/source/data/locales/en_MT.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_MU.txt b/source/data/locales/en_MU.txt
index 48632dc..5afb421 100644
--- a/source/data/locales/en_MU.txt
+++ b/source/data/locales/en_MU.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_MW.txt b/source/data/locales/en_MW.txt
index 8e440d4..8f5bed0 100644
--- a/source/data/locales/en_MW.txt
+++ b/source/data/locales/en_MW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_MY.txt b/source/data/locales/en_MY.txt
index 4722712..fc723c2 100644
--- a/source/data/locales/en_MY.txt
+++ b/source/data/locales/en_MY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_NA.txt b/source/data/locales/en_NA.txt
index b7ebdac..17f6b27 100644
--- a/source/data/locales/en_NA.txt
+++ b/source/data/locales/en_NA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NA{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_NF.txt b/source/data/locales/en_NF.txt
index 034b067..ead26b8 100644
--- a/source/data/locales/en_NF.txt
+++ b/source/data/locales/en_NF.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NF{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_NG.txt b/source/data/locales/en_NG.txt
index a6752cd..8102534 100644
--- a/source/data/locales/en_NG.txt
+++ b/source/data/locales/en_NG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_NL.txt b/source/data/locales/en_NL.txt
index cb15889..f7b478f 100644
--- a/source/data/locales/en_NL.txt
+++ b/source/data/locales/en_NL.txt
@@ -10,5 +10,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_NR.txt b/source/data/locales/en_NR.txt
index 27c79d6..f73856d 100644
--- a/source/data/locales/en_NR.txt
+++ b/source/data/locales/en_NR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_NU.txt b/source/data/locales/en_NU.txt
index 8dcd6ba..7659da3 100644
--- a/source/data/locales/en_NU.txt
+++ b/source/data/locales/en_NU.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_NZ.txt b/source/data/locales/en_NZ.txt
index b81cb1b..68ffb5d 100644
--- a/source/data/locales/en_NZ.txt
+++ b/source/data/locales/en_NZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_PG.txt b/source/data/locales/en_PG.txt
index 58ac3ca..6146600 100644
--- a/source/data/locales/en_PG.txt
+++ b/source/data/locales/en_PG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_PH.txt b/source/data/locales/en_PH.txt
index 5264c40..04ac66a 100644
--- a/source/data/locales/en_PH.txt
+++ b/source/data/locales/en_PH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_PK.txt b/source/data/locales/en_PK.txt
index 98b9d8d..919acbb 100644
--- a/source/data/locales/en_PK.txt
+++ b/source/data/locales/en_PK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_PN.txt b/source/data/locales/en_PN.txt
index 1400af5..d8d8280 100644
--- a/source/data/locales/en_PN.txt
+++ b/source/data/locales/en_PN.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_PR.txt b/source/data/locales/en_PR.txt
index eb75fff..2d86a68 100644
--- a/source/data/locales/en_PR.txt
+++ b/source/data/locales/en_PR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_PW.txt b/source/data/locales/en_PW.txt
index 3825c9f..43ec73a 100644
--- a/source/data/locales/en_PW.txt
+++ b/source/data/locales/en_PW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_RW.txt b/source/data/locales/en_RW.txt
index 60f22c5..564630e 100644
--- a/source/data/locales/en_RW.txt
+++ b/source/data/locales/en_RW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_RW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_SB.txt b/source/data/locales/en_SB.txt
index a81f9eb..08287c0 100644
--- a/source/data/locales/en_SB.txt
+++ b/source/data/locales/en_SB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_SC.txt b/source/data/locales/en_SC.txt
index 7d625a3..1d54d45 100644
--- a/source/data/locales/en_SC.txt
+++ b/source/data/locales/en_SC.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_SD.txt b/source/data/locales/en_SD.txt
index 21a7710..8fef005 100644
--- a/source/data/locales/en_SD.txt
+++ b/source/data/locales/en_SD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_SE.txt b/source/data/locales/en_SE.txt
index 2c17467..b6524c1 100644
--- a/source/data/locales/en_SE.txt
+++ b/source/data/locales/en_SE.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_SG.txt b/source/data/locales/en_SG.txt
index 1462bf2..7c9da82 100644
--- a/source/data/locales/en_SG.txt
+++ b/source/data/locales/en_SG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SG{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_SH.txt b/source/data/locales/en_SH.txt
index c09b9a5..467f1c5 100644
--- a/source/data/locales/en_SH.txt
+++ b/source/data/locales/en_SH.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_SI.txt b/source/data/locales/en_SI.txt
index 163a70e..2702fad 100644
--- a/source/data/locales/en_SI.txt
+++ b/source/data/locales/en_SI.txt
@@ -12,5 +12,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_SL.txt b/source/data/locales/en_SL.txt
index 68833a0..f3ff3f7 100644
--- a/source/data/locales/en_SL.txt
+++ b/source/data/locales/en_SL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_SS.txt b/source/data/locales/en_SS.txt
index 1e11895..1b9c52e 100644
--- a/source/data/locales/en_SS.txt
+++ b/source/data/locales/en_SS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_SX.txt b/source/data/locales/en_SX.txt
index 0c4b61a..e349a5b 100644
--- a/source/data/locales/en_SX.txt
+++ b/source/data/locales/en_SX.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_SZ.txt b/source/data/locales/en_SZ.txt
index 02bab1c..734e744 100644
--- a/source/data/locales/en_SZ.txt
+++ b/source/data/locales/en_SZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_TC.txt b/source/data/locales/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/locales/en_TC.txt
+++ b/source/data/locales/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_TK.txt b/source/data/locales/en_TK.txt
index b1b973f..4bc5d7a 100644
--- a/source/data/locales/en_TK.txt
+++ b/source/data/locales/en_TK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_TO.txt b/source/data/locales/en_TO.txt
index bb3bbcd..426b5d6 100644
--- a/source/data/locales/en_TO.txt
+++ b/source/data/locales/en_TO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_TT.txt b/source/data/locales/en_TT.txt
index fdc2c64..4d6d39d 100644
--- a/source/data/locales/en_TT.txt
+++ b/source/data/locales/en_TT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_TV.txt b/source/data/locales/en_TV.txt
index 202f31b..d8886c8 100644
--- a/source/data/locales/en_TV.txt
+++ b/source/data/locales/en_TV.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TV{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_TZ.txt b/source/data/locales/en_TZ.txt
index 00c9c88..26d3ea5 100644
--- a/source/data/locales/en_TZ.txt
+++ b/source/data/locales/en_TZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_UG.txt b/source/data/locales/en_UG.txt
index d96a949..c00c2b5 100644
--- a/source/data/locales/en_UG.txt
+++ b/source/data/locales/en_UG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/en_UM.txt b/source/data/locales/en_UM.txt
index f1ebe32..f64eece 100644
--- a/source/data/locales/en_UM.txt
+++ b/source/data/locales/en_UM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_US.txt b/source/data/locales/en_US.txt
index 080bc2e..3ea240d 100644
--- a/source/data/locales/en_US.txt
+++ b/source/data/locales/en_US.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_US{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_US_POSIX.txt b/source/data/locales/en_US_POSIX.txt
index 1210b7b..16efced 100644
--- a/source/data/locales/en_US_POSIX.txt
+++ b/source/data/locales/en_US_POSIX.txt
@@ -15,5 +15,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_VC.txt b/source/data/locales/en_VC.txt
index c6d63b4..dc17ae0 100644
--- a/source/data/locales/en_VC.txt
+++ b/source/data/locales/en_VC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_VG.txt b/source/data/locales/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/locales/en_VG.txt
+++ b/source/data/locales/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_VI.txt b/source/data/locales/en_VI.txt
index 4d316f1..6884981 100644
--- a/source/data/locales/en_VI.txt
+++ b/source/data/locales/en_VI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_VU.txt b/source/data/locales/en_VU.txt
index 2f6cb29..433c4c9 100644
--- a/source/data/locales/en_VU.txt
+++ b/source/data/locales/en_VU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_WS.txt b/source/data/locales/en_WS.txt
index 982e5aa..0697889 100644
--- a/source/data/locales/en_WS.txt
+++ b/source/data/locales/en_WS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_WS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_ZA.txt b/source/data/locales/en_ZA.txt
index 3ba8b46..890d5bc 100644
--- a/source/data/locales/en_ZA.txt
+++ b/source/data/locales/en_ZA.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/en_ZM.txt b/source/data/locales/en_ZM.txt
index a012334..3e9be74 100644
--- a/source/data/locales/en_ZM.txt
+++ b/source/data/locales/en_ZM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/en_ZW.txt b/source/data/locales/en_ZW.txt
index ae00176..73a8354 100644
--- a/source/data/locales/en_ZW.txt
+++ b/source/data/locales/en_ZW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/eo.txt b/source/data/locales/eo.txt
index 90dd689..30a668b 100644
--- a/source/data/locales/eo.txt
+++ b/source/data/locales/eo.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es.txt b/source/data/locales/es.txt
index b79ea8a..7d5deb7 100644
--- a/source/data/locales/es.txt
+++ b/source/data/locales/es.txt
@@ -200,10 +200,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Toma la {0}.ª a la derecha."}
+            }
+            plural{
+                one{"{0} día"}
+                other{"{0} días"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
@@ -980,7 +989,7 @@
         japanese_kana{"Kana japoneses"}
         kanbun{"Kanbun"}
         kanji{"Kanji"}
-        keycap{"tecla 10"}
+        keycap{"tecla"}
         leftwards_arrows{"Flechas hacia la izquierda"}
         leftwards_rightwards_arrows{"Flechas hacia la izquierda y la derecha"}
         letterlike_symbols{"Símbolos con letras"}
diff --git a/source/data/locales/es_419.txt b/source/data/locales/es_419.txt
index 6d55779..17898f4 100644
--- a/source/data/locales/es_419.txt
+++ b/source/data/locales/es_419.txt
@@ -42,7 +42,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_AR.txt b/source/data/locales/es_AR.txt
index e381622..512e9d0 100644
--- a/source/data/locales/es_AR.txt
+++ b/source/data/locales/es_AR.txt
@@ -15,7 +15,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/es_BO.txt b/source/data/locales/es_BO.txt
index 6b4504d..84f1510 100644
--- a/source/data/locales/es_BO.txt
+++ b/source/data/locales/es_BO.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_BR.txt b/source/data/locales/es_BR.txt
index 14d1f67..ee8a444 100644
--- a/source/data/locales/es_BR.txt
+++ b/source/data/locales/es_BR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BR{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_BZ.txt b/source/data/locales/es_BZ.txt
new file mode 100644
index 0000000..7734598
--- /dev/null
+++ b/source/data/locales/es_BZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/locales/es_CL.txt b/source/data/locales/es_CL.txt
index 4b94b1a..5b72b25 100644
--- a/source/data/locales/es_CL.txt
+++ b/source/data/locales/es_CL.txt
@@ -14,7 +14,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_CO.txt b/source/data/locales/es_CO.txt
index ad562de..8d05058 100644
--- a/source/data/locales/es_CO.txt
+++ b/source/data/locales/es_CO.txt
@@ -15,7 +15,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_CR.txt b/source/data/locales/es_CR.txt
index e78adc0..4d85cc2 100644
--- a/source/data/locales/es_CR.txt
+++ b/source/data/locales/es_CR.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_CU.txt b/source/data/locales/es_CU.txt
index dbd4f56..f75d29f 100644
--- a/source/data/locales/es_CU.txt
+++ b/source/data/locales/es_CU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CU{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_DO.txt b/source/data/locales/es_DO.txt
index 25a42fa..3815c2c 100644
--- a/source/data/locales/es_DO.txt
+++ b/source/data/locales/es_DO.txt
@@ -11,7 +11,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_EA.txt b/source/data/locales/es_EA.txt
index 929973a..0b689f6 100644
--- a/source/data/locales/es_EA.txt
+++ b/source/data/locales/es_EA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_EA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_EC.txt b/source/data/locales/es_EC.txt
index 1861bd0..db473b2 100644
--- a/source/data/locales/es_EC.txt
+++ b/source/data/locales/es_EC.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_ES.txt b/source/data/locales/es_ES.txt
index 20d3c4a..64a537a 100644
--- a/source/data/locales/es_ES.txt
+++ b/source/data/locales/es_ES.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_ES{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_GQ.txt b/source/data/locales/es_GQ.txt
index 3e5d9da..3e7c3bf 100644
--- a/source/data/locales/es_GQ.txt
+++ b/source/data/locales/es_GQ.txt
@@ -8,5 +8,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_GT.txt b/source/data/locales/es_GT.txt
index 421d5a0..b6e1c23 100644
--- a/source/data/locales/es_GT.txt
+++ b/source/data/locales/es_GT.txt
@@ -59,7 +59,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_HN.txt b/source/data/locales/es_HN.txt
index 1d240f4..beb51e8 100644
--- a/source/data/locales/es_HN.txt
+++ b/source/data/locales/es_HN.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_HN{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_IC.txt b/source/data/locales/es_IC.txt
index 386b374..c42f579 100644
--- a/source/data/locales/es_IC.txt
+++ b/source/data/locales/es_IC.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_IC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/es_MX.txt b/source/data/locales/es_MX.txt
index 709e610..9d9f61c 100644
--- a/source/data/locales/es_MX.txt
+++ b/source/data/locales/es_MX.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_NI.txt b/source/data/locales/es_NI.txt
index 154399e..ba8ad19 100644
--- a/source/data/locales/es_NI.txt
+++ b/source/data/locales/es_NI.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_NI{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_PA.txt b/source/data/locales/es_PA.txt
index 6b40c3c..425c693 100644
--- a/source/data/locales/es_PA.txt
+++ b/source/data/locales/es_PA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PA{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_PE.txt b/source/data/locales/es_PE.txt
index 67a7466..1165a25 100644
--- a/source/data/locales/es_PE.txt
+++ b/source/data/locales/es_PE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PE{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_PH.txt b/source/data/locales/es_PH.txt
index c070d2f..81aeeae 100644
--- a/source/data/locales/es_PH.txt
+++ b/source/data/locales/es_PH.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/es_PR.txt b/source/data/locales/es_PR.txt
index 5484048..e1f4764 100644
--- a/source/data/locales/es_PR.txt
+++ b/source/data/locales/es_PR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/es_PY.txt b/source/data/locales/es_PY.txt
index 495c665..01550ba 100644
--- a/source/data/locales/es_PY.txt
+++ b/source/data/locales/es_PY.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_SV.txt b/source/data/locales/es_SV.txt
index 9e76c59..6506f74 100644
--- a/source/data/locales/es_SV.txt
+++ b/source/data/locales/es_SV.txt
@@ -5,7 +5,7 @@
     NumberElements{
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_US.txt b/source/data/locales/es_US.txt
index 592a79e..cd08b21 100644
--- a/source/data/locales/es_US.txt
+++ b/source/data/locales/es_US.txt
@@ -22,7 +22,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_UY.txt b/source/data/locales/es_UY.txt
index 50260c5..72316bb 100644
--- a/source/data/locales/es_UY.txt
+++ b/source/data/locales/es_UY.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/es_VE.txt b/source/data/locales/es_VE.txt
index 0191ac2..5caa8bb 100644
--- a/source/data/locales/es_VE.txt
+++ b/source/data/locales/es_VE.txt
@@ -13,7 +13,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/et.txt b/source/data/locales/et.txt
index 4a80987..4fa163c 100644
--- a/source/data/locales/et.txt
+++ b/source/data/locales/et.txt
@@ -196,10 +196,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Tehke {0}. parempööre."}
+            }
+            plural{
+                one{"{0} ööpäev"}
+                other{"{0} ööpäeva"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         chinese{
             cyclicNameSets{
diff --git a/source/data/locales/et_EE.txt b/source/data/locales/et_EE.txt
index b599050..f302847 100644
--- a/source/data/locales/et_EE.txt
+++ b/source/data/locales/et_EE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 et_EE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/eu.txt b/source/data/locales/eu.txt
index a586f2b..6eb6d56 100644
--- a/source/data/locales/eu.txt
+++ b/source/data/locales/eu.txt
@@ -150,10 +150,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}. bira eskuinetara"}
+            }
+            plural{
+                one{"Nire {0} lagunarekin nago"}
+                other{"Nire {0} lagunekin nago"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
@@ -326,10 +335,6 @@
                 "AM",
                 "PM",
             }
-            AmPmMarkersNarrow{
-                "g",
-                "a",
-            }
             DateTimePatterns{
                 "HH:mm:ss (zzzz)",
                 "HH:mm:ss (z)",
@@ -480,53 +485,34 @@
             dayPeriod{
                 format{
                     abbreviated{
-                        afternoon1{"arratsaldeko"}
-                        afternoon2{"arratsaldea"}
-                        evening1{"arratsaldeko"}
+                        afternoon1{"eguerd."}
+                        afternoon2{"arrats."}
+                        evening1{"iluntz."}
                         midnight{"gauerdia"}
-                        morning1{"goizeko"}
-                        morning2{"goiza"}
-                        night1{"gaueko"}
-                    }
-                    narrow{
-                        afternoon1{"arratsaldeko"}
-                        afternoon2{"arratsaldea"}
-                        evening1{"arratsaldeko"}
-                        midnight{"gauerdia"}
-                        morning1{"goizeko"}
-                        morning2{"goiza"}
-                        night1{"gauean"}
+                        morning1{"goiz."}
+                        morning2{"goizeko"}
+                        night1{"gau."}
                     }
                     wide{
-                        afternoon1{"arratsaldeko"}
-                        afternoon2{"arratsaldea"}
-                        evening1{"arratsaldeko"}
+                        afternoon1{"eguerdiko"}
+                        afternoon2{"arratsaldeko"}
+                        evening1{"iluntzeko"}
                         midnight{"gauerdia"}
-                        morning1{"goizeko"}
-                        morning2{"goiza"}
+                        morning1{"goizaldeko"}
+                        morning2{"goizeko"}
                         night1{"gaueko"}
                     }
                 }
                 stand-alone{
                     abbreviated{
-                        afternoon1{"eguerdia"}
-                        afternoon2{"arratsaldea"}
+                        afternoon1{"eguerd."}
+                        afternoon2{"arrats."}
                         am{"AM"}
                         evening1{"iluntz."}
                         midnight{"gauerdia"}
-                        morning1{"goizaldea"}
+                        morning1{"goiz."}
                         morning2{"goiza"}
-                        night1{"gau."}
-                        pm{"PM"}
-                    }
-                    narrow{
-                        afternoon1{"eguerdia"}
-                        afternoon2{"arratsaldea"}
-                        am{"AM"}
-                        evening1{"iluntz."}
-                        morning1{"goizaldea"}
-                        morning2{"goiza"}
-                        night1{"gau."}
+                        night1{"gaua"}
                         pm{"PM"}
                     }
                     wide{
diff --git a/source/data/locales/eu_ES.txt b/source/data/locales/eu_ES.txt
index f6a863d..2173095 100644
--- a/source/data/locales/eu_ES.txt
+++ b/source/data/locales/eu_ES.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eu_ES{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ewo.txt b/source/data/locales/ewo.txt
index b7bedb3..888b563 100644
--- a/source/data/locales/ewo.txt
+++ b/source/data/locales/ewo.txt
@@ -22,7 +22,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ewo_CM.txt b/source/data/locales/ewo_CM.txt
index 8fc0651..32ef6c1 100644
--- a/source/data/locales/ewo_CM.txt
+++ b/source/data/locales/ewo_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ewo_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fa.txt b/source/data/locales/fa.txt
index 557ee68..70c59d1 100644
--- a/source/data/locales/fa.txt
+++ b/source/data/locales/fa.txt
@@ -15,7 +15,7 @@
         "ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ة ی]"
     }
     ExemplarCharactersIndex{"[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]"}
-    ExemplarCharactersPunctuation{"[\\- ‐ ، ٫ ٬ ؛ \\: ! ؟ . … ‹ › « » ( ) \\[ \\] * / \\\\]"}
+    ExemplarCharactersPunctuation{"[\u0640 \\- ‐ ، ٫ ٬ ؛ \\: ! ؟ . … ‹ › « » ( ) \\[ \\] * / \\\\]"}
     MoreInformation{"؟"}
     NumberElements{
         arab{
@@ -238,10 +238,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"در پیچ {0}ام سمت راست بپیچید."}
+            }
+            plural{
+                one{"او {0} فیلم در هفته می‌بیند که کمدی است."}
+                other{"او {0} فیلم در هفته می‌بیند که کمدی هستند."}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"arabext"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     calendar{
         chinese{
             cyclicNameSets{
@@ -1158,6 +1167,34 @@
             }
         }
         persian{
+            DateTimePatterns{
+                "H:mm:ss (zzzz)",
+                "H:mm:ss (z)",
+                "H:mm:ss",
+                "H:mm",
+                "y MMMM d, EEEE",
+                "d MMMM y",
+                "d MMM y",
+                "y/M/d",
+                "{1}،‏ {0}",
+                "{1}، ساعت {0}",
+                "{1}، ساعت {0}",
+                "{1}،‏ {0}",
+                "{1}،‏ {0}",
+            }
+            availableFormats{
+                y{"y"}
+                yyyy{"y"}
+                yyyyM{"y/M"}
+                yyyyMEd{"E y/M/d"}
+                yyyyMMM{"MMM y"}
+                yyyyMMMEd{"E d MMM y"}
+                yyyyMMMM{"y MMMM"}
+                yyyyMMMd{"d MMM y"}
+                yyyyMd{"y/M/d"}
+                yyyyQQQ{"QQQQ y"}
+                yyyyQQQQ{"QQQQ y"}
+            }
             eras{
                 abbreviated{
                     "ه‍.ش.",
@@ -1166,6 +1203,43 @@
                     "هجری شمسی",
                 }
             }
+            intervalFormats{
+                y{
+                    y{"y تا y"}
+                }
+                yM{
+                    M{"y/M تا y/M"}
+                    y{"y/M تا y/M"}
+                }
+                yMEd{
+                    M{"E y/M/d تا E y/M/d"}
+                    d{"E y/M/d تا E y/M/d"}
+                    y{"E y/M/d تا E y/M/d"}
+                }
+                yMMM{
+                    M{"LLL تا MMM y"}
+                    y{"MMM y تا MMM y"}
+                }
+                yMMMEd{
+                    M{"E d LLL تا E d MMM y"}
+                    d{"E d LLL تا E d MMM y"}
+                    y{"E d MMM y تا E d MMM y"}
+                }
+                yMMMM{
+                    M{"LLLL تا MMMM y"}
+                    y{"MMMM y تا MMMM y"}
+                }
+                yMMMd{
+                    M{"d LLL تا d MMM y"}
+                    d{"d تا d MMM y"}
+                    y{"d MMM y تا d MMM y"}
+                }
+                yMd{
+                    M{"y/M/d تا y/M/d"}
+                    d{"y/M/d تا y/M/d"}
+                    y{"y/M/d تا y/M/d"}
+                }
+            }
             monthNames{
                 format{
                     abbreviated{
diff --git a/source/data/locales/fa_AF.txt b/source/data/locales/fa_AF.txt
index 01e2fc7..2d66fd3 100644
--- a/source/data/locales/fa_AF.txt
+++ b/source/data/locales/fa_AF.txt
@@ -18,7 +18,7 @@
             }
         }
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             appendItems{
diff --git a/source/data/locales/fa_IR.txt b/source/data/locales/fa_IR.txt
index 4470823..ce04110 100644
--- a/source/data/locales/fa_IR.txt
+++ b/source/data/locales/fa_IR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fa_IR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ff.txt b/source/data/locales/ff.txt
index cc0baf0..ef04aff 100644
--- a/source/data/locales/ff.txt
+++ b/source/data/locales/ff.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ff_CM.txt b/source/data/locales/ff_CM.txt
index eb73913..7e02135 100644
--- a/source/data/locales/ff_CM.txt
+++ b/source/data/locales/ff_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ff_GN.txt b/source/data/locales/ff_GN.txt
index cc41431..334d533 100644
--- a/source/data/locales/ff_GN.txt
+++ b/source/data/locales/ff_GN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff_GN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ff_MR.txt b/source/data/locales/ff_MR.txt
index 10140a2..eece95d 100644
--- a/source/data/locales/ff_MR.txt
+++ b/source/data/locales/ff_MR.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff_MR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ff_SN.txt b/source/data/locales/ff_SN.txt
index 9308922..ceebdf5 100644
--- a/source/data/locales/ff_SN.txt
+++ b/source/data/locales/ff_SN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff_SN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fi.txt b/source/data/locales/fi.txt
index b2b88e2..702dbd1 100644
--- a/source/data/locales/fi.txt
+++ b/source/data/locales/fi.txt
@@ -16,7 +16,7 @@
     }
     ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s š t u v w x y z ž å ä ö]"}
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö]"}
-    ExemplarCharactersPunctuation{"[‐ – , ; \\: ! ? . … ’ ” » ( ) \\[ \\] § @ * / \\\\ \\& #]"}
+    ExemplarCharactersPunctuation{"[\\- ‐ – , ; \\: ! ? . … ’ ” » ( ) \\[ \\] § @ * / \\\\ \\& #]"}
     MoreInformation{"?"}
     NumberElements{
         default{"latn"}
@@ -201,10 +201,19 @@
                 timeSeparator{"."}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Käänny {0}. risteyksestä oikealle."}
+            }
+            plural{
+                one{"{0} päivä"}
+                other{"{0} päivää"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/fi_FI.txt b/source/data/locales/fi_FI.txt
index da14eb7..82ca41e 100644
--- a/source/data/locales/fi_FI.txt
+++ b/source/data/locales/fi_FI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fi_FI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fil.txt b/source/data/locales/fil.txt
index 4ca68b4..71dae74 100644
--- a/source/data/locales/fil.txt
+++ b/source/data/locales/fil.txt
@@ -197,10 +197,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Lumiko sa unang kanan."}
+                other{"Lumiko sa ika-{0} kanan."}
+            }
+            plural{
+                one{"{0} mansanas"}
+                other{"{0} na mansanas"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fil_PH.txt b/source/data/locales/fil_PH.txt
index e9fce71..524c505 100644
--- a/source/data/locales/fil_PH.txt
+++ b/source/data/locales/fil_PH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fil_PH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fo.txt b/source/data/locales/fo.txt
index f61a826..cdbc015 100644
--- a/source/data/locales/fo.txt
+++ b/source/data/locales/fo.txt
@@ -200,7 +200,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fo_DK.txt b/source/data/locales/fo_DK.txt
index 911e44c..1b7e17c 100644
--- a/source/data/locales/fo_DK.txt
+++ b/source/data/locales/fo_DK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fo_DK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fo_FO.txt b/source/data/locales/fo_FO.txt
index d3298bb..89df7ff 100644
--- a/source/data/locales/fo_FO.txt
+++ b/source/data/locales/fo_FO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fo_FO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr.txt b/source/data/locales/fr.txt
index 40a9173..d16b5c9 100644
--- a/source/data/locales/fr.txt
+++ b/source/data/locales/fr.txt
@@ -200,10 +200,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Prenez la {0}re à droite."}
+                other{"Prenez la {0}e à droite."}
+            }
+            plural{
+                one{"{0} jour"}
+                other{"{0} jours"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/fr_BE.txt b/source/data/locales/fr_BE.txt
index 19a6647..d593bc5 100644
--- a/source/data/locales/fr_BE.txt
+++ b/source/data/locales/fr_BE.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_BE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fr_BF.txt b/source/data/locales/fr_BF.txt
index a485858..4ca723d 100644
--- a/source/data/locales/fr_BF.txt
+++ b/source/data/locales/fr_BF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_BF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_BI.txt b/source/data/locales/fr_BI.txt
index 52adec8..91c68ea 100644
--- a/source/data/locales/fr_BI.txt
+++ b/source/data/locales/fr_BI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_BI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_BJ.txt b/source/data/locales/fr_BJ.txt
index 2b0f30f..c26257e 100644
--- a/source/data/locales/fr_BJ.txt
+++ b/source/data/locales/fr_BJ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_BJ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_BL.txt b/source/data/locales/fr_BL.txt
index 6daf2ea..9bb98c1 100644
--- a/source/data/locales/fr_BL.txt
+++ b/source/data/locales/fr_BL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_BL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_CA.txt b/source/data/locales/fr_CA.txt
index 46a3c26..f1c27c7 100644
--- a/source/data/locales/fr_CA.txt
+++ b/source/data/locales/fr_CA.txt
@@ -99,7 +99,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fr_CD.txt b/source/data/locales/fr_CD.txt
index 07440f9..5be30d4 100644
--- a/source/data/locales/fr_CD.txt
+++ b/source/data/locales/fr_CD.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/fr_CF.txt b/source/data/locales/fr_CF.txt
index 17d6dd4..ba5b542 100644
--- a/source/data/locales/fr_CF.txt
+++ b/source/data/locales/fr_CF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_CF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_CG.txt b/source/data/locales/fr_CG.txt
index fadfc6e..54debb6 100644
--- a/source/data/locales/fr_CG.txt
+++ b/source/data/locales/fr_CG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_CG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_CH.txt b/source/data/locales/fr_CH.txt
index 3c167e3..099beac 100644
--- a/source/data/locales/fr_CH.txt
+++ b/source/data/locales/fr_CH.txt
@@ -4,15 +4,14 @@
     NumberElements{
         latn{
             patterns{
-                currencyFormat{"¤ #,##0.00;¤-#,##0.00"}
                 percentFormat{"#,##0%"}
             }
             symbols{
-                decimal{"."}
+                currencyDecimal{"."}
             }
         }
     }
-    Version{"2.1.27.96"}
+    Version{"2.1.32.48"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fr_CI.txt b/source/data/locales/fr_CI.txt
index 3be9bd1..3737eb2 100644
--- a/source/data/locales/fr_CI.txt
+++ b/source/data/locales/fr_CI.txt
@@ -8,5 +8,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_CM.txt b/source/data/locales/fr_CM.txt
index 8b42e8d..a9c95a7 100644
--- a/source/data/locales/fr_CM.txt
+++ b/source/data/locales/fr_CM.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/fr_DJ.txt b/source/data/locales/fr_DJ.txt
index 10f8c54..ca9aecc 100644
--- a/source/data/locales/fr_DJ.txt
+++ b/source/data/locales/fr_DJ.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_DJ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_DZ.txt b/source/data/locales/fr_DZ.txt
index 9adb0f1..2a348b5 100644
--- a/source/data/locales/fr_DZ.txt
+++ b/source/data/locales/fr_DZ.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_DZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_FR.txt b/source/data/locales/fr_FR.txt
index aabcd9f..1b747a4 100644
--- a/source/data/locales/fr_FR.txt
+++ b/source/data/locales/fr_FR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_FR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_GA.txt b/source/data/locales/fr_GA.txt
index f94754b..e6fa2ac 100644
--- a/source/data/locales/fr_GA.txt
+++ b/source/data/locales/fr_GA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_GF.txt b/source/data/locales/fr_GF.txt
index 8e6830c..84c5ab2 100644
--- a/source/data/locales/fr_GF.txt
+++ b/source/data/locales/fr_GF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_GN.txt b/source/data/locales/fr_GN.txt
index d6f54c5..c908c10 100644
--- a/source/data/locales/fr_GN.txt
+++ b/source/data/locales/fr_GN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_GP.txt b/source/data/locales/fr_GP.txt
index 0462ded..436b1a5 100644
--- a/source/data/locales/fr_GP.txt
+++ b/source/data/locales/fr_GP.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_GQ.txt b/source/data/locales/fr_GQ.txt
index 20124ae..4c3bf6e 100644
--- a/source/data/locales/fr_GQ.txt
+++ b/source/data/locales/fr_GQ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_HT.txt b/source/data/locales/fr_HT.txt
index d74e94d..d342043 100644
--- a/source/data/locales/fr_HT.txt
+++ b/source/data/locales/fr_HT.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_HT{
-    Version{"2.1.27.63"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/fr_KM.txt b/source/data/locales/fr_KM.txt
index 95e4786..fbc5900 100644
--- a/source/data/locales/fr_KM.txt
+++ b/source/data/locales/fr_KM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_KM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_LU.txt b/source/data/locales/fr_LU.txt
index 803f83d..1a10504 100644
--- a/source/data/locales/fr_LU.txt
+++ b/source/data/locales/fr_LU.txt
@@ -8,5 +8,5 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_MA.txt b/source/data/locales/fr_MA.txt
index 00f38c6..e50af08 100644
--- a/source/data/locales/fr_MA.txt
+++ b/source/data/locales/fr_MA.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/fr_MC.txt b/source/data/locales/fr_MC.txt
index 724fdf5..f5566e2 100644
--- a/source/data/locales/fr_MC.txt
+++ b/source/data/locales/fr_MC.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_MF.txt b/source/data/locales/fr_MF.txt
index 7eeda29..ff2d0b6 100644
--- a/source/data/locales/fr_MF.txt
+++ b/source/data/locales/fr_MF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_MG.txt b/source/data/locales/fr_MG.txt
index d9e6cf4..d65bc51 100644
--- a/source/data/locales/fr_MG.txt
+++ b/source/data/locales/fr_MG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_ML.txt b/source/data/locales/fr_ML.txt
index 33eee9c..19c77c6 100644
--- a/source/data/locales/fr_ML.txt
+++ b/source/data/locales/fr_ML.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.63"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_MQ.txt b/source/data/locales/fr_MQ.txt
index cec1941..36602da 100644
--- a/source/data/locales/fr_MQ.txt
+++ b/source/data/locales/fr_MQ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_MR.txt b/source/data/locales/fr_MR.txt
index f8df572..1d15c7c 100644
--- a/source/data/locales/fr_MR.txt
+++ b/source/data/locales/fr_MR.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_MU.txt b/source/data/locales/fr_MU.txt
index 2bbf534..951444f 100644
--- a/source/data/locales/fr_MU.txt
+++ b/source/data/locales/fr_MU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_MU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_NC.txt b/source/data/locales/fr_NC.txt
index 9d263b7..b9da89a 100644
--- a/source/data/locales/fr_NC.txt
+++ b/source/data/locales/fr_NC.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_NC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_NE.txt b/source/data/locales/fr_NE.txt
index c4e6e2d..cc057e8 100644
--- a/source/data/locales/fr_NE.txt
+++ b/source/data/locales/fr_NE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_NE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_PF.txt b/source/data/locales/fr_PF.txt
index 7656bbc..d97d957 100644
--- a/source/data/locales/fr_PF.txt
+++ b/source/data/locales/fr_PF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_PF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_PM.txt b/source/data/locales/fr_PM.txt
index ab6eb45..d8182af 100644
--- a/source/data/locales/fr_PM.txt
+++ b/source/data/locales/fr_PM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_PM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_RE.txt b/source/data/locales/fr_RE.txt
index 3518e74..0175995 100644
--- a/source/data/locales/fr_RE.txt
+++ b/source/data/locales/fr_RE.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/fr_RW.txt b/source/data/locales/fr_RW.txt
index 8395346..e5cfc50 100644
--- a/source/data/locales/fr_RW.txt
+++ b/source/data/locales/fr_RW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_RW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_SC.txt b/source/data/locales/fr_SC.txt
index cc64cf0..5ec6d7a 100644
--- a/source/data/locales/fr_SC.txt
+++ b/source/data/locales/fr_SC.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_SC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_SN.txt b/source/data/locales/fr_SN.txt
index 5ce23e2..9a148bf 100644
--- a/source/data/locales/fr_SN.txt
+++ b/source/data/locales/fr_SN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_SN{
-    Version{"2.1.27.63"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayPeriod{
diff --git a/source/data/locales/fr_SY.txt b/source/data/locales/fr_SY.txt
index a1ff01d..adcb794 100644
--- a/source/data/locales/fr_SY.txt
+++ b/source/data/locales/fr_SY.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_SY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_TD.txt b/source/data/locales/fr_TD.txt
index 0fce940..a0266a7 100644
--- a/source/data/locales/fr_TD.txt
+++ b/source/data/locales/fr_TD.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_TD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_TG.txt b/source/data/locales/fr_TG.txt
index 7a0758a..edba47d 100644
--- a/source/data/locales/fr_TG.txt
+++ b/source/data/locales/fr_TG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_TG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_TN.txt b/source/data/locales/fr_TN.txt
index 614a012..69178be 100644
--- a/source/data/locales/fr_TN.txt
+++ b/source/data/locales/fr_TN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_TN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_VU.txt b/source/data/locales/fr_VU.txt
index 53aebbe..4d327c2 100644
--- a/source/data/locales/fr_VU.txt
+++ b/source/data/locales/fr_VU.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_VU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/fr_WF.txt b/source/data/locales/fr_WF.txt
index c1680b9..9a21cf8 100644
--- a/source/data/locales/fr_WF.txt
+++ b/source/data/locales/fr_WF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_WF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fr_YT.txt b/source/data/locales/fr_YT.txt
index 49692b0..40ead0e 100644
--- a/source/data/locales/fr_YT.txt
+++ b/source/data/locales/fr_YT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_YT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fur.txt b/source/data/locales/fur.txt
index 5917ba3..fcec188 100644
--- a/source/data/locales/fur.txt
+++ b/source/data/locales/fur.txt
@@ -26,7 +26,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/fur_IT.txt b/source/data/locales/fur_IT.txt
index ae4b48c..a27dd4a 100644
--- a/source/data/locales/fur_IT.txt
+++ b/source/data/locales/fur_IT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fur_IT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/fy.txt b/source/data/locales/fy.txt
index ccf3024..ce40ec8 100644
--- a/source/data/locales/fy.txt
+++ b/source/data/locales/fy.txt
@@ -154,7 +154,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/fy_NL.txt b/source/data/locales/fy_NL.txt
index 9adeb7c..7f8f301 100644
--- a/source/data/locales/fy_NL.txt
+++ b/source/data/locales/fy_NL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fy_NL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ga.txt b/source/data/locales/ga.txt
index db5890c..b567fbc 100644
--- a/source/data/locales/ga.txt
+++ b/source/data/locales/ga.txt
@@ -302,10 +302,23 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Glac an {0}ú chasadh ar dheis."}
+                other{"Glac an {0}ú casadh ar dheis."}
+            }
+            plural{
+                few{"{0} chi, {0} cath"}
+                many{"{0} chi, {0} chath"}
+                one{"{0} ci, {0} gath"}
+                other{"{0} ci, {0} cath"}
+                two{"{0} gi, {0} gath"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/ga_IE.txt b/source/data/locales/ga_IE.txt
index cb90315..d0e7b96 100644
--- a/source/data/locales/ga_IE.txt
+++ b/source/data/locales/ga_IE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ga_IE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gd.txt b/source/data/locales/gd.txt
index a23211a..4b209eb 100644
--- a/source/data/locales/gd.txt
+++ b/source/data/locales/gd.txt
@@ -900,7 +900,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             intervalFormats{
diff --git a/source/data/locales/gd_GB.txt b/source/data/locales/gd_GB.txt
index bc4338b..d942da9 100644
--- a/source/data/locales/gd_GB.txt
+++ b/source/data/locales/gd_GB.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gd_GB{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gl.txt b/source/data/locales/gl.txt
index a30c1cc..7c7cc6b 100644
--- a/source/data/locales/gl.txt
+++ b/source/data/locales/gl.txt
@@ -200,10 +200,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Colle a {0}.ª curva á dereita."}
+            }
+            plural{
+                one{"{0} día"}
+                other{"{0} días"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/gl_ES.txt b/source/data/locales/gl_ES.txt
index 64bc51e..617a70f 100644
--- a/source/data/locales/gl_ES.txt
+++ b/source/data/locales/gl_ES.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gl_ES{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gsw.txt b/source/data/locales/gsw.txt
index 15b4b06..613e02d 100644
--- a/source/data/locales/gsw.txt
+++ b/source/data/locales/gsw.txt
@@ -11,6 +11,160 @@
                 percentFormat{"#,##0 %"}
                 scientificFormat{"#E0"}
             }
+            patternsLong{
+                decimalFormat{
+                    1000{
+                        one{"0 Tuusig"}
+                        other{"0 Tuusig"}
+                    }
+                    10000{
+                        one{"00 Tuusig"}
+                        other{"00 Tuusig"}
+                    }
+                    100000{
+                        one{"000 Tuusig"}
+                        other{"000 Tuusig"}
+                    }
+                    1000000{
+                        one{"0 Millioon"}
+                        other{"0 Millioone"}
+                    }
+                    10000000{
+                        one{"00 Millioon"}
+                        other{"00 Millioone"}
+                    }
+                    100000000{
+                        one{"000 Millioon"}
+                        other{"000 Millioone"}
+                    }
+                    1000000000{
+                        one{"0 Milliarde"}
+                        other{"0 Milliarde"}
+                    }
+                    10000000000{
+                        one{"00 Milliarde"}
+                        other{"00 Milliarde"}
+                    }
+                    100000000000{
+                        one{"000 Milliarde"}
+                        other{"000 Milliarde"}
+                    }
+                    1000000000000{
+                        one{"0 Billioon"}
+                        other{"0 Billioone"}
+                    }
+                    10000000000000{
+                        one{"00 Billioon"}
+                        other{"00 Billioone"}
+                    }
+                    100000000000000{
+                        one{"000 Billioon"}
+                        other{"000 Billioone"}
+                    }
+                }
+            }
+            patternsShort{
+                currencyFormat{
+                    1000{
+                        one{"0 Tsg'.' ¤"}
+                        other{"0 Tsg'.' ¤"}
+                    }
+                    10000{
+                        one{"00 Tsg'.' ¤"}
+                        other{"00 Tsg'.' ¤"}
+                    }
+                    100000{
+                        one{"000 Tsg'.' ¤"}
+                        other{"000 Tsg'.' ¤"}
+                    }
+                    1000000{
+                        one{"0 Mio'.' ¤"}
+                        other{"0 Mio'.' ¤"}
+                    }
+                    10000000{
+                        one{"00 Mio'.' ¤"}
+                        other{"00 Mio'.' ¤"}
+                    }
+                    100000000{
+                        one{"000 Mio'.' ¤"}
+                        other{"000 Mio'.' ¤"}
+                    }
+                    1000000000{
+                        one{"0 Mrd'.' ¤"}
+                        other{"0 Mrd'.' ¤"}
+                    }
+                    10000000000{
+                        one{"00 Mrd'.' ¤"}
+                        other{"00 Mrd'.' ¤"}
+                    }
+                    100000000000{
+                        one{"000 Mrd'.' ¤"}
+                        other{"000 Mrd'.' ¤"}
+                    }
+                    1000000000000{
+                        one{"0 Bio'.' ¤"}
+                        other{"0 Bio'.' ¤"}
+                    }
+                    10000000000000{
+                        one{"00 Bio'.' ¤"}
+                        other{"00 Bio'.' ¤"}
+                    }
+                    100000000000000{
+                        one{"000 Bio'.' ¤"}
+                        other{"000 Bio'.' ¤"}
+                    }
+                }
+                decimalFormat{
+                    1000{
+                        one{"0 Tsg'.'"}
+                        other{"0 Tsg'.'"}
+                    }
+                    10000{
+                        one{"00 Tsg'.'"}
+                        other{"00 Tsg'.'"}
+                    }
+                    100000{
+                        one{"000 Tsg'.'"}
+                        other{"000 Tsg'.'"}
+                    }
+                    1000000{
+                        one{"0 Mio'.'"}
+                        other{"0 Mio'.'"}
+                    }
+                    10000000{
+                        one{"00 Mio'.'"}
+                        other{"00 Mio'.'"}
+                    }
+                    100000000{
+                        one{"000 Mio'.'"}
+                        other{"000 Mio'.'"}
+                    }
+                    1000000000{
+                        one{"0 Mrd'.'"}
+                        other{"0 Mrd'.'"}
+                    }
+                    10000000000{
+                        one{"00 Mrd'.'"}
+                        other{"00 Mrd'.'"}
+                    }
+                    100000000000{
+                        one{"000 Mrd'.'"}
+                        other{"000 Mrd'.'"}
+                    }
+                    1000000000000{
+                        one{"0 Bio'.'"}
+                        other{"0 Bio'.'"}
+                    }
+                    10000000000000{
+                        one{"00 Bio'.'"}
+                        other{"00 Bio'.'"}
+                    }
+                    100000000000000{
+                        one{"000 Bio'.'"}
+                        other{"000 Bio'.'"}
+                    }
+                }
+            }
             symbols{
                 decimal{"."}
                 exponential{"E"}
@@ -25,7 +179,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
@@ -190,12 +344,12 @@
         }
         gregorian{
             AmPmMarkers{
-                "vorm.",
-                "nam.",
+                "am Vormittag",
+                "am Namittag",
             }
             AmPmMarkersAbbr{
-                "v.m.",
-                "n.m.",
+                "vorm.",
+                "nam.",
             }
             DateTimePatterns{
                 "HH:mm:ss zzzz",
@@ -274,6 +428,38 @@
                     }
                 }
             }
+            dayPeriod{
+                format{
+                    abbreviated{
+                        afternoon1{"zmittag"}
+                        afternoon2{"am Namittag"}
+                        evening1{"zaabig"}
+                        midnight{"Mitternacht"}
+                        morning1{"am Morge"}
+                        night1{"znacht"}
+                    }
+                    wide{
+                        afternoon1{"zmittag"}
+                        afternoon2{"am Namittag"}
+                        evening1{"zaabig"}
+                        midnight{"Mitternacht"}
+                        morning1{"am Morge"}
+                        night1{"znacht"}
+                    }
+                }
+                stand-alone{
+                    wide{
+                        afternoon1{"Mittag"}
+                        afternoon2{"Namittag"}
+                        am{"Vormittag"}
+                        evening1{"Aabig"}
+                        midnight{"Mitternacht"}
+                        morning1{"Morge"}
+                        night1{"Nacht"}
+                        pm{"Namittag"}
+                    }
+                }
+            }
             eras{
                 abbreviated{
                     "v. Chr.",
diff --git a/source/data/locales/gsw_CH.txt b/source/data/locales/gsw_CH.txt
index 4155480..a49edf4 100644
--- a/source/data/locales/gsw_CH.txt
+++ b/source/data/locales/gsw_CH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gsw_CH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gsw_FR.txt b/source/data/locales/gsw_FR.txt
index 87679da..655981a 100644
--- a/source/data/locales/gsw_FR.txt
+++ b/source/data/locales/gsw_FR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gsw_FR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gsw_LI.txt b/source/data/locales/gsw_LI.txt
index 73207e5..8b52b8c 100644
--- a/source/data/locales/gsw_LI.txt
+++ b/source/data/locales/gsw_LI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gsw_LI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gu.txt b/source/data/locales/gu.txt
index a0d58e0..6fbf3f5 100644
--- a/source/data/locales/gu.txt
+++ b/source/data/locales/gu.txt
@@ -232,10 +232,23 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"જમણી બાજુએ {0}થો વળાંક લો."}
+                many{"જમણી બાજુએ {0}ઠો વળાંક લો."}
+                one{"જમણી બાજુએ {0}લો વળાંક લો."}
+                other{"જમણી બાજુએ {0}મો વળાંક લો."}
+                two{"જમણી બાજુએ {0}જો વળાંક લો."}
+            }
+            plural{
+                one{"{0} કિલોગ્રામ"}
+                other{"{0} કિલોગ્રામ્સ"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"gujr"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/gu_IN.txt b/source/data/locales/gu_IN.txt
index bcbaae7..99e6221 100644
--- a/source/data/locales/gu_IN.txt
+++ b/source/data/locales/gu_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gu_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/guz.txt b/source/data/locales/guz.txt
index 7f34739..0981568 100644
--- a/source/data/locales/guz.txt
+++ b/source/data/locales/guz.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/guz_KE.txt b/source/data/locales/guz_KE.txt
index f1b30a8..9de7fc9 100644
--- a/source/data/locales/guz_KE.txt
+++ b/source/data/locales/guz_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 guz_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/gv.txt b/source/data/locales/gv.txt
index d31f28b..b7642dc 100644
--- a/source/data/locales/gv.txt
+++ b/source/data/locales/gv.txt
@@ -8,8 +8,17 @@
                 currencyFormat{"¤#,##0.00"}
             }
         }
+        minimalPairs{
+            plural{
+                few{"{0} thunnag/muc/ooyl"}
+                many{"{0} dy hunnagyn/dy vucyn/dy ooylyn"}
+                one{"{0} thunnag/vuc/ooyl"}
+                other{"{0} thunnagyn/mucyn/ooylyn"}
+                two{"{0} hunnag/vuc/ooyl"}
+            }
+        }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/gv_IM.txt b/source/data/locales/gv_IM.txt
index 9845d28..d59bb4b 100644
--- a/source/data/locales/gv_IM.txt
+++ b/source/data/locales/gv_IM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gv_IM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ha.txt b/source/data/locales/ha.txt
index 43675f4..b56b20b 100644
--- a/source/data/locales/ha.txt
+++ b/source/data/locales/ha.txt
@@ -172,7 +172,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ha_GH.txt b/source/data/locales/ha_GH.txt
index 93d9604..c853f1a 100644
--- a/source/data/locales/ha_GH.txt
+++ b/source/data/locales/ha_GH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ha_GH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ha_NE.txt b/source/data/locales/ha_NE.txt
index 1531608..879225e 100644
--- a/source/data/locales/ha_NE.txt
+++ b/source/data/locales/ha_NE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ha_NE{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ha_NG.txt b/source/data/locales/ha_NG.txt
index 30269c9..eb448f8 100644
--- a/source/data/locales/ha_NG.txt
+++ b/source/data/locales/ha_NG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ha_NG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/haw.txt b/source/data/locales/haw.txt
index 50adab2..f285be4 100644
--- a/source/data/locales/haw.txt
+++ b/source/data/locales/haw.txt
@@ -31,7 +31,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/haw_US.txt b/source/data/locales/haw_US.txt
index 0787a46..249d39e 100644
--- a/source/data/locales/haw_US.txt
+++ b/source/data/locales/haw_US.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 haw_US{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/he.txt b/source/data/locales/he.txt
index 3d0eb88..89f2d9b 100644
--- a/source/data/locales/he.txt
+++ b/source/data/locales/he.txt
@@ -272,11 +272,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"פנה ימינה בפנייה ה-{0}"}
+            }
+            plural{
+                many{"{0} שנה"}
+                one{"שנה"}
+                other{"{0} שנים"}
+                two{"שנתיים"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
         traditional{"hebr"}
     }
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/he_IL.txt b/source/data/locales/he_IL.txt
index ab2c6f5..24cae18 100644
--- a/source/data/locales/he_IL.txt
+++ b/source/data/locales/he_IL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 he_IL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/hi.txt b/source/data/locales/hi.txt
index 4e90c97..d48265f 100644
--- a/source/data/locales/hi.txt
+++ b/source/data/locales/hi.txt
@@ -219,10 +219,23 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}था दाहिना मोड़ लें."}
+                many{"{0}ठा दाहिना मोड़ लें."}
+                one{"{0}ला दाहिना मोड़ लें."}
+                other{"{0}वां दाहिना मोड़ लें."}
+                two{"{0}रा दाहिना मोड़ लें."}
+            }
+            plural{
+                one{"{0} घंटा"}
+                other{"{0} घंटे"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"deva"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         ethiopic{
             monthNames{
diff --git a/source/data/locales/hi_IN.txt b/source/data/locales/hi_IN.txt
index 1c96a94..006fb3a 100644
--- a/source/data/locales/hi_IN.txt
+++ b/source/data/locales/hi_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hi_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/hr.txt b/source/data/locales/hr.txt
index caa27d6..8f8b46b 100644
--- a/source/data/locales/hr.txt
+++ b/source/data/locales/hr.txt
@@ -236,10 +236,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Skrenite na {0}. križanju desno."}
+            }
+            plural{
+                few{"za {0} mjeseca"}
+                many{"za {0} mjeseci"}
+                one{"za {0} mjesec"}
+                other{"za {0} mjeseci"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/hr_BA.txt b/source/data/locales/hr_BA.txt
index 98670c1..25d2636 100644
--- a/source/data/locales/hr_BA.txt
+++ b/source/data/locales/hr_BA.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hr_BA{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/hr_HR.txt b/source/data/locales/hr_HR.txt
index a11d358..c098116 100644
--- a/source/data/locales/hr_HR.txt
+++ b/source/data/locales/hr_HR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hr_HR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/hsb.txt b/source/data/locales/hsb.txt
index bb7a61c..225d1e0 100644
--- a/source/data/locales/hsb.txt
+++ b/source/data/locales/hsb.txt
@@ -195,7 +195,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/hsb_DE.txt b/source/data/locales/hsb_DE.txt
index 6dd3c7e..04d3611 100644
--- a/source/data/locales/hsb_DE.txt
+++ b/source/data/locales/hsb_DE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hsb_DE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/hu.txt b/source/data/locales/hu.txt
index 8e40921..c21835d 100644
--- a/source/data/locales/hu.txt
+++ b/source/data/locales/hu.txt
@@ -207,10 +207,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Az {0}. lehetőségnél forduljon jobbra."}
+                other{"A {0}. lehetőségnél forduljon jobbra."}
+            }
+            plural{
+                one{"A kosár tartalma: {0} X. Megveszi?"}
+                other{"A kosár tartalma: {0} X. Megveszi őket?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/hu_HU.txt b/source/data/locales/hu_HU.txt
index 0d121c4..edaf618 100644
--- a/source/data/locales/hu_HU.txt
+++ b/source/data/locales/hu_HU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hu_HU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/hy.txt b/source/data/locales/hy.txt
index 96077c2..7c17e57 100644
--- a/source/data/locales/hy.txt
+++ b/source/data/locales/hy.txt
@@ -199,11 +199,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Թեքվեք աջ {0}-ին խաչմերուկից:"}
+                other{"Թեքվեք աջ {0}-րդ խաչմերուկից:"}
+            }
+            plural{
+                one{"այդ {0} ժամը"}
+                other{"այդ {0} ժամերը"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
         traditional{"armn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/hy_AM.txt b/source/data/locales/hy_AM.txt
index 445e79f..0a88e3c 100644
--- a/source/data/locales/hy_AM.txt
+++ b/source/data/locales/hy_AM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hy_AM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/id.txt b/source/data/locales/id.txt
index c3c4da4..3565d16 100644
--- a/source/data/locales/id.txt
+++ b/source/data/locales/id.txt
@@ -12,7 +12,7 @@
     }
     ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
-    ExemplarCharactersPunctuation{"[‐ – — , ; \\: ! ? . … ' ‘ ’ “ ” ( ) \\[ \\] /]"}
+    ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ “ ” ( ) \\[ \\] /]"}
     MoreInformation{"?"}
     NumberElements{
         default{"latn"}
@@ -161,10 +161,18 @@
                 timeSeparator{"."}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Ambil belokan kanan ke-{0}."}
+            }
+            plural{
+                other{"{0} hari"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/id_ID.txt b/source/data/locales/id_ID.txt
index d6f836e..99bd9f4 100644
--- a/source/data/locales/id_ID.txt
+++ b/source/data/locales/id_ID.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 id_ID{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ig.txt b/source/data/locales/ig.txt
index e07590a..7211c3a 100644
--- a/source/data/locales/ig.txt
+++ b/source/data/locales/ig.txt
@@ -86,7 +86,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ig_NG.txt b/source/data/locales/ig_NG.txt
index 2ca18d9..0eb225d 100644
--- a/source/data/locales/ig_NG.txt
+++ b/source/data/locales/ig_NG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ig_NG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ii.txt b/source/data/locales/ii.txt
index 90669f1..3b8be9d 100644
--- a/source/data/locales/ii.txt
+++ b/source/data/locales/ii.txt
@@ -19,7 +19,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/ii_CN.txt b/source/data/locales/ii_CN.txt
index add3f5b..802ee4f 100644
--- a/source/data/locales/ii_CN.txt
+++ b/source/data/locales/ii_CN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ii_CN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/is.txt b/source/data/locales/is.txt
index 1d27300..12e419b 100644
--- a/source/data/locales/is.txt
+++ b/source/data/locales/is.txt
@@ -188,10 +188,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Taktu {0}. beygju til hægri."}
+            }
+            plural{
+                one{"{0} dagur"}
+                other{"{0} dagar"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/is_IS.txt b/source/data/locales/is_IS.txt
index 961268c..b727c18 100644
--- a/source/data/locales/is_IS.txt
+++ b/source/data/locales/is_IS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 is_IS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/it.txt b/source/data/locales/it.txt
index 71894ff..932a3b5 100644
--- a/source/data/locales/it.txt
+++ b/source/data/locales/it.txt
@@ -31,7 +31,7 @@
             patternsLong{
                 decimalFormat{
                     1000{
-                        one{"0 mila"}
+                        one{"0 mille"}
                         other{"0 mila"}
                     }
                     10000{
@@ -67,7 +67,7 @@
                         other{"000 miliardi"}
                     }
                     1000000000000{
-                        one{"0 mila miliardi"}
+                        one{"0 mille miliardi"}
                         other{"0 mila miliardi"}
                     }
                     10000000000000{
@@ -197,10 +197,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                many{"Prendi l’{0}° a destra."}
+                other{"Prendi la {0}° a destra."}
+            }
+            plural{
+                one{"{0} giorno"}
+                other{"{0} giorni"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/it_CH.txt b/source/data/locales/it_CH.txt
index 4195578..f62f2f3 100644
--- a/source/data/locales/it_CH.txt
+++ b/source/data/locales/it_CH.txt
@@ -8,11 +8,11 @@
             }
             symbols{
                 decimal{"."}
-                group{"'"}
+                group{"’"}
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/it_IT.txt b/source/data/locales/it_IT.txt
index c66b207..8a1344d 100644
--- a/source/data/locales/it_IT.txt
+++ b/source/data/locales/it_IT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 it_IT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/it_SM.txt b/source/data/locales/it_SM.txt
index 91d92f5..d754d33 100644
--- a/source/data/locales/it_SM.txt
+++ b/source/data/locales/it_SM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 it_SM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/it_VA.txt b/source/data/locales/it_VA.txt
new file mode 100644
index 0000000..b075886
--- /dev/null
+++ b/source/data/locales/it_VA.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+it_VA{
+    Version{"2.1.32.51"}
+}
diff --git a/source/data/locales/ja.txt b/source/data/locales/ja.txt
index 8ab1a59..5e34734 100644
--- a/source/data/locales/ja.txt
+++ b/source/data/locales/ja.txt
@@ -64,7 +64,7 @@
         "鑑 長 門 閉 開 閏 閑 間 関 閣 閥 閲 闘 阪 防 阻 附 降 限 陛 院-陥 陪 陰 陳 陵 陶 陸 険 陽 隅 隆 隊 階 随 隔 際 障 "
         "隠 隣 隷 隻 雄-雇 雉 雌 雑 離 難 雨 雪 雰 雲 零 雷 電 需 震 霊 霜 霧 露 青 静 非 面 革 靴 韓 音 韻 響 頂 頃 項 順 "
         "預-頒 領 頭 頻 頼 題 額 顔 顕 願 類 顧 風 飛 食 飢 飯 飲 飼-飾 養 餓 館 首 香 馬 駄-駆 駐 騎 騒 験 騰 驚 骨 髄 高 "
-        "髪 鬼 魂 魅 魔 魚 鮮 鯨 鳥 鳴 鶏 鹿 麗 麦 麻 黄 黒 黙 鼓 鼠 鼻 齢]"
+        "髪 鬼 魂 魅 魔 魚 鮮 鯨 鳥 鳴 鶏 鹿 麗 麦 麻 黄 黒 黙 鼓 鼠 鼻 齢 叱 剥 填 頬]"
     }
     ExemplarCharactersIndex{"[あ か さ た な は ま や ら わ]"}
     ExemplarCharactersPunctuation{
@@ -221,11 +221,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0} 番目の角を右折します。"}
+            }
+            plural{
+                other{"{0}日"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
         traditional{"jpan"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/ja_JP.txt b/source/data/locales/ja_JP.txt
index 8aaaf2d..47a9381 100644
--- a/source/data/locales/ja_JP.txt
+++ b/source/data/locales/ja_JP.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ja_JP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/jgo.txt b/source/data/locales/jgo.txt
index d4700de..ea4d5ee 100644
--- a/source/data/locales/jgo.txt
+++ b/source/data/locales/jgo.txt
@@ -38,7 +38,7 @@
         }
         native{"latn"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/jgo_CM.txt b/source/data/locales/jgo_CM.txt
index 2d39052..04883eb 100644
--- a/source/data/locales/jgo_CM.txt
+++ b/source/data/locales/jgo_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jgo_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/jmc.txt b/source/data/locales/jmc.txt
index 888465e..512a801 100644
--- a/source/data/locales/jmc.txt
+++ b/source/data/locales/jmc.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/jmc_TZ.txt b/source/data/locales/jmc_TZ.txt
index 71f2e6c..45009e9 100644
--- a/source/data/locales/jmc_TZ.txt
+++ b/source/data/locales/jmc_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jmc_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ka.txt b/source/data/locales/ka.txt
index 11f2c02..eed19ab 100644
--- a/source/data/locales/ka.txt
+++ b/source/data/locales/ka.txt
@@ -203,11 +203,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                many{"მე-{0}"}
+                one{"{0}-ლი"}
+                other{"{0}-ე"}
+            }
+            plural{
+                one{"კალათში {0} X-ია. შეიძენთ მას?"}
+                other{"კალათში {0} X-ია. შეიძენთ მათ?"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
         traditional{"geor"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ka_GE.txt b/source/data/locales/ka_GE.txt
index faa8da4..cc4e174 100644
--- a/source/data/locales/ka_GE.txt
+++ b/source/data/locales/ka_GE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ka_GE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kab.txt b/source/data/locales/kab.txt
index d30dc0b..9aeb6aa 100644
--- a/source/data/locales/kab.txt
+++ b/source/data/locales/kab.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kab_DZ.txt b/source/data/locales/kab_DZ.txt
index e49cf58..0206933 100644
--- a/source/data/locales/kab_DZ.txt
+++ b/source/data/locales/kab_DZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kab_DZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kam.txt b/source/data/locales/kam.txt
index e34bdca..087266c 100644
--- a/source/data/locales/kam.txt
+++ b/source/data/locales/kam.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kam_KE.txt b/source/data/locales/kam_KE.txt
index 5871e21..f2e2a29 100644
--- a/source/data/locales/kam_KE.txt
+++ b/source/data/locales/kam_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kam_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kde.txt b/source/data/locales/kde.txt
index ec98d0b..87e4326 100644
--- a/source/data/locales/kde.txt
+++ b/source/data/locales/kde.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kde_TZ.txt b/source/data/locales/kde_TZ.txt
index 1892347..b0f9589 100644
--- a/source/data/locales/kde_TZ.txt
+++ b/source/data/locales/kde_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kde_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kea.txt b/source/data/locales/kea.txt
index 29cd1c9..4f7a46f 100644
--- a/source/data/locales/kea.txt
+++ b/source/data/locales/kea.txt
@@ -128,7 +128,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kea_CV.txt b/source/data/locales/kea_CV.txt
index 69c2a1b..2ba78e3 100644
--- a/source/data/locales/kea_CV.txt
+++ b/source/data/locales/kea_CV.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kea_CV{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/khq.txt b/source/data/locales/khq.txt
index ba38ce0..950a5a6 100644
--- a/source/data/locales/khq.txt
+++ b/source/data/locales/khq.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/khq_ML.txt b/source/data/locales/khq_ML.txt
index 972ddba..8f71801 100644
--- a/source/data/locales/khq_ML.txt
+++ b/source/data/locales/khq_ML.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 khq_ML{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ki.txt b/source/data/locales/ki.txt
index 32b55fb..83f77a3 100644
--- a/source/data/locales/ki.txt
+++ b/source/data/locales/ki.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ki_KE.txt b/source/data/locales/ki_KE.txt
index 570e15f..5e2dd21 100644
--- a/source/data/locales/ki_KE.txt
+++ b/source/data/locales/ki_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ki_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kk.txt b/source/data/locales/kk.txt
index 08b92b8..ee7bc16 100644
--- a/source/data/locales/kk.txt
+++ b/source/data/locales/kk.txt
@@ -205,10 +205,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                many{"{0}-ші бұрылыстан оңға бұрылыңыз."}
+                other{"{0}-шы бұрылыстан оңға бұрылыңыз."}
+            }
+            plural{
+                one{"Cебетте {0} Х бар. Ол сіздікі ме?"}
+                other{"Себетте {0} Х бар. Олар сіздікі ме?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kk_KZ.txt b/source/data/locales/kk_KZ.txt
index 49afefa..338db74 100644
--- a/source/data/locales/kk_KZ.txt
+++ b/source/data/locales/kk_KZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kk_KZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kkj.txt b/source/data/locales/kkj.txt
index 0c14975..125f2ea 100644
--- a/source/data/locales/kkj.txt
+++ b/source/data/locales/kkj.txt
@@ -23,7 +23,7 @@
         }
         native{"latn"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kkj_CM.txt b/source/data/locales/kkj_CM.txt
index c927d51..973868b 100644
--- a/source/data/locales/kkj_CM.txt
+++ b/source/data/locales/kkj_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kkj_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kl.txt b/source/data/locales/kl.txt
index d2975a1..6a032ff 100644
--- a/source/data/locales/kl.txt
+++ b/source/data/locales/kl.txt
@@ -17,8 +17,14 @@
                 group{"."}
             }
         }
+        minimalPairs{
+            plural{
+                one{"{0} Ulloq"}
+                other{"{0} Ullut"}
+            }
+        }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/kl_GL.txt b/source/data/locales/kl_GL.txt
index b810ae0..dd127fb 100644
--- a/source/data/locales/kl_GL.txt
+++ b/source/data/locales/kl_GL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kl_GL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kln.txt b/source/data/locales/kln.txt
index 4e8cf2a..1d728cc 100644
--- a/source/data/locales/kln.txt
+++ b/source/data/locales/kln.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kln_KE.txt b/source/data/locales/kln_KE.txt
index 1d9b782..fc26bf6 100644
--- a/source/data/locales/kln_KE.txt
+++ b/source/data/locales/kln_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kln_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/km.txt b/source/data/locales/km.txt
index 8033a84..b883a94 100644
--- a/source/data/locales/km.txt
+++ b/source/data/locales/km.txt
@@ -164,10 +164,18 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"បត់​ស្តាំ​លើក​ទី​ {0}"}
+            }
+            plural{
+                other{"{0} ថ្ងៃ"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"khmr"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/km_KH.txt b/source/data/locales/km_KH.txt
index 9874cbd..ba6a34f 100644
--- a/source/data/locales/km_KH.txt
+++ b/source/data/locales/km_KH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 km_KH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kn.txt b/source/data/locales/kn.txt
index c219549..c15b27d 100644
--- a/source/data/locales/kn.txt
+++ b/source/data/locales/kn.txt
@@ -220,10 +220,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}ನೇ ಬಲತಿರುವನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ."}
+            }
+            plural{
+                one{"{0} ದಿನ"}
+                other{"{0} ದಿನಗಳು"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"knda"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/kn_IN.txt b/source/data/locales/kn_IN.txt
index c8e9e64..3deb135 100644
--- a/source/data/locales/kn_IN.txt
+++ b/source/data/locales/kn_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kn_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ko.txt b/source/data/locales/ko.txt
index 8b4a3e8..8c9dd7d 100644
--- a/source/data/locales/ko.txt
+++ b/source/data/locales/ko.txt
@@ -187,10 +187,18 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}번째 길목에서 우회전하세요."}
+            }
+            plural{
+                other{"{0}일"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ko_KP.txt b/source/data/locales/ko_KP.txt
index a282979..fd457d8 100644
--- a/source/data/locales/ko_KP.txt
+++ b/source/data/locales/ko_KP.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ko_KP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ko_KR.txt b/source/data/locales/ko_KR.txt
index 9f1cce0..02a34f5 100644
--- a/source/data/locales/ko_KR.txt
+++ b/source/data/locales/ko_KR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ko_KR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kok.txt b/source/data/locales/kok.txt
index 61aa6bb..1af2cb1 100644
--- a/source/data/locales/kok.txt
+++ b/source/data/locales/kok.txt
@@ -19,7 +19,7 @@
         }
         native{"deva"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/kok_IN.txt b/source/data/locales/kok_IN.txt
index 923f45d..8ef3196 100644
--- a/source/data/locales/kok_IN.txt
+++ b/source/data/locales/kok_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kok_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ks.txt b/source/data/locales/ks.txt
index 6e93d3f..5084f60 100644
--- a/source/data/locales/ks.txt
+++ b/source/data/locales/ks.txt
@@ -31,7 +31,7 @@
         }
         native{"arabext"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ks_IN.txt b/source/data/locales/ks_IN.txt
index 8680b96..1cbe895 100644
--- a/source/data/locales/ks_IN.txt
+++ b/source/data/locales/ks_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ks_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ksb.txt b/source/data/locales/ksb.txt
index 390b3e3..5c0e649 100644
--- a/source/data/locales/ksb.txt
+++ b/source/data/locales/ksb.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ksb_TZ.txt b/source/data/locales/ksb_TZ.txt
index 825120d..7d39888 100644
--- a/source/data/locales/ksb_TZ.txt
+++ b/source/data/locales/ksb_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksb_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ksf.txt b/source/data/locales/ksf.txt
index be3e328..8563ec8 100644
--- a/source/data/locales/ksf.txt
+++ b/source/data/locales/ksf.txt
@@ -19,7 +19,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ksf_CM.txt b/source/data/locales/ksf_CM.txt
index 3f09084..4202708 100644
--- a/source/data/locales/ksf_CM.txt
+++ b/source/data/locales/ksf_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksf_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ksh.txt b/source/data/locales/ksh.txt
index 79b7a73..b20c464 100644
--- a/source/data/locales/ksh.txt
+++ b/source/data/locales/ksh.txt
@@ -160,7 +160,7 @@
         }
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/ksh_DE.txt b/source/data/locales/ksh_DE.txt
index b51f658..4592225 100644
--- a/source/data/locales/ksh_DE.txt
+++ b/source/data/locales/ksh_DE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksh_DE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/kw.txt b/source/data/locales/kw.txt
index dac4fda..e8887cd 100644
--- a/source/data/locales/kw.txt
+++ b/source/data/locales/kw.txt
@@ -9,7 +9,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/kw_GB.txt b/source/data/locales/kw_GB.txt
index 8492bd3..896f6b8 100644
--- a/source/data/locales/kw_GB.txt
+++ b/source/data/locales/kw_GB.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kw_GB{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ky.txt b/source/data/locales/ky.txt
index d80259a..8c65b6f 100644
--- a/source/data/locales/ky.txt
+++ b/source/data/locales/ky.txt
@@ -199,10 +199,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}-бурулуштан оңго бурулуңуз."}
+            }
+            plural{
+                one{"Себетте {0} Х бар. Аны аласызбы?"}
+                other{"Себетте {0} Х бар. Аларды аласызбы?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ky_KG.txt b/source/data/locales/ky_KG.txt
index 5bf5f6f..9e55b2c 100644
--- a/source/data/locales/ky_KG.txt
+++ b/source/data/locales/ky_KG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ky_KG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lag.txt b/source/data/locales/lag.txt
index 7fe21c2..07607b7 100644
--- a/source/data/locales/lag.txt
+++ b/source/data/locales/lag.txt
@@ -3,7 +3,7 @@
 lag{
     ExemplarCharacters{"[a á b c d e é f g h i í ɨ j k l m n o ó p q r s t u ú ʉ v w x y z]"}
     ExemplarCharactersIndex{"[A B C D E F G H I Ɨ J K L M N O P Q R S T U Ʉ V W X Y Z]"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/lag_TZ.txt b/source/data/locales/lag_TZ.txt
index 475cdbf..1813e8a 100644
--- a/source/data/locales/lag_TZ.txt
+++ b/source/data/locales/lag_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lag_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lb.txt b/source/data/locales/lb.txt
index bbf6b1f..5d3c006 100644
--- a/source/data/locales/lb.txt
+++ b/source/data/locales/lb.txt
@@ -155,7 +155,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/lb_LU.txt b/source/data/locales/lb_LU.txt
index 4057980..54b59b4 100644
--- a/source/data/locales/lb_LU.txt
+++ b/source/data/locales/lb_LU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lb_LU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lg.txt b/source/data/locales/lg.txt
index ac6290b..4a4e91a 100644
--- a/source/data/locales/lg.txt
+++ b/source/data/locales/lg.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/lg_UG.txt b/source/data/locales/lg_UG.txt
index 251c8e0..e2a232f 100644
--- a/source/data/locales/lg_UG.txt
+++ b/source/data/locales/lg_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lg_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lkt.txt b/source/data/locales/lkt.txt
index fcabd41..1aae944 100644
--- a/source/data/locales/lkt.txt
+++ b/source/data/locales/lkt.txt
@@ -8,7 +8,7 @@
     }
     ExemplarCharactersIndex{"[A B Č E G Ǧ H Ȟ I K L M N Ŋ O P S Š T U W Y Z Ž]"}
     ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . \u0022 “ ” ( ) \\[ \\] @ * / \\& #]"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/lkt_US.txt b/source/data/locales/lkt_US.txt
index 29e2e77..a57b4d0 100644
--- a/source/data/locales/lkt_US.txt
+++ b/source/data/locales/lkt_US.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lkt_US{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ln.txt b/source/data/locales/ln.txt
index f17cc17..78e92d1 100644
--- a/source/data/locales/ln.txt
+++ b/source/data/locales/ln.txt
@@ -23,7 +23,7 @@
             }
         }
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ln_AO.txt b/source/data/locales/ln_AO.txt
index 4059797..b8dc09d 100644
--- a/source/data/locales/ln_AO.txt
+++ b/source/data/locales/ln_AO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln_AO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ln_CD.txt b/source/data/locales/ln_CD.txt
index 1b07b76..7d83aea 100644
--- a/source/data/locales/ln_CD.txt
+++ b/source/data/locales/ln_CD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln_CD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ln_CF.txt b/source/data/locales/ln_CF.txt
index 6d72f4f..20d49ba 100644
--- a/source/data/locales/ln_CF.txt
+++ b/source/data/locales/ln_CF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln_CF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ln_CG.txt b/source/data/locales/ln_CG.txt
index 48891f3..f469f37 100644
--- a/source/data/locales/ln_CG.txt
+++ b/source/data/locales/ln_CG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln_CG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lo.txt b/source/data/locales/lo.txt
index 705eb4e..3f3e62c 100644
--- a/source/data/locales/lo.txt
+++ b/source/data/locales/lo.txt
@@ -249,10 +249,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"ລ້ຽວຂວາທຳອິດ."}
+                other{"ລ້ຽວຂວາທີ {0}."}
+            }
+            plural{
+                other{"{0} ມື້"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"laoo"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         chinese{
             DateTimePatterns{
@@ -705,7 +714,7 @@
                 yyyyMEd{"E, G d/M/y"}
                 yyyyMMM{"G MMM y"}
                 yyyyMMMEd{"E, G d MMM y"}
-                yyyyMMMM{"G y MMMM"}
+                yyyyMMMM{"G MMMM y"}
                 yyyyMMMd{"G d MMM y"}
                 yyyyMd{"G d/M/y"}
                 yyyyQQQ{"G QQQ y"}
@@ -876,7 +885,7 @@
                 yMEd{"E, d/M/y"}
                 yMMM{"MMM y"}
                 yMMMEd{"E, d MMM y"}
-                yMMMM{"y MMMM"}
+                yMMMM{"MMMM y"}
                 yMMMd{"d MMM y"}
                 yMd{"d/M/y"}
                 yQQQ{"QQQ y"}
diff --git a/source/data/locales/lo_LA.txt b/source/data/locales/lo_LA.txt
index 22c26d2..05a5354 100644
--- a/source/data/locales/lo_LA.txt
+++ b/source/data/locales/lo_LA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lo_LA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lrc.txt b/source/data/locales/lrc.txt
index 72789d7..ad86509 100644
--- a/source/data/locales/lrc.txt
+++ b/source/data/locales/lrc.txt
@@ -30,7 +30,7 @@
         }
         native{"arabext"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         default{"persian"}
         generic{
diff --git a/source/data/locales/lrc_IQ.txt b/source/data/locales/lrc_IQ.txt
index 1c31402..ef56a86 100644
--- a/source/data/locales/lrc_IQ.txt
+++ b/source/data/locales/lrc_IQ.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lrc_IQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         default{"gregorian"}
         gregorian{
diff --git a/source/data/locales/lrc_IR.txt b/source/data/locales/lrc_IR.txt
index 7f08aae..626b597 100644
--- a/source/data/locales/lrc_IR.txt
+++ b/source/data/locales/lrc_IR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lrc_IR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lt.txt b/source/data/locales/lt.txt
index 60a9bf6..68f6149 100644
--- a/source/data/locales/lt.txt
+++ b/source/data/locales/lt.txt
@@ -275,10 +275,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}-ame posūkyje sukite į dešinę."}
+            }
+            plural{
+                few{"{0} obuoliai"}
+                many{"{0} obuolio"}
+                one{"{0} obuolys"}
+                other{"{0} obuolių"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/lt_LT.txt b/source/data/locales/lt_LT.txt
index bd838d4..6b8889e 100644
--- a/source/data/locales/lt_LT.txt
+++ b/source/data/locales/lt_LT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lt_LT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lu.txt b/source/data/locales/lu.txt
index 6908d8e..cdba0f8 100644
--- a/source/data/locales/lu.txt
+++ b/source/data/locales/lu.txt
@@ -19,7 +19,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/lu_CD.txt b/source/data/locales/lu_CD.txt
index a8fc3ba..e8544c5 100644
--- a/source/data/locales/lu_CD.txt
+++ b/source/data/locales/lu_CD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lu_CD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/luo.txt b/source/data/locales/luo.txt
index 709b3f3..30f5ac3 100644
--- a/source/data/locales/luo.txt
+++ b/source/data/locales/luo.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/luo_KE.txt b/source/data/locales/luo_KE.txt
index 23c5edc..1526f11 100644
--- a/source/data/locales/luo_KE.txt
+++ b/source/data/locales/luo_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luo_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/luy.txt b/source/data/locales/luy.txt
index 52389b8..20a27ed 100644
--- a/source/data/locales/luy.txt
+++ b/source/data/locales/luy.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/luy_KE.txt b/source/data/locales/luy_KE.txt
index 8f5f8dc..668cfc2 100644
--- a/source/data/locales/luy_KE.txt
+++ b/source/data/locales/luy_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luy_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/lv.txt b/source/data/locales/lv.txt
index b45e538..0f89147 100644
--- a/source/data/locales/lv.txt
+++ b/source/data/locales/lv.txt
@@ -236,10 +236,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Dodieties {0}. pagriezienā pa labi."}
+            }
+            plural{
+                one{"{0} diennakts"}
+                other{"{0} diennaktis"}
+                zero{"{0} diennakšu"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/lv_LV.txt b/source/data/locales/lv_LV.txt
index f0f7f26..fc43b39 100644
--- a/source/data/locales/lv_LV.txt
+++ b/source/data/locales/lv_LV.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lv_LV{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mas.txt b/source/data/locales/mas.txt
index 10cc25d..4e4fa83 100644
--- a/source/data/locales/mas.txt
+++ b/source/data/locales/mas.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mas_KE.txt b/source/data/locales/mas_KE.txt
index bf400ab..3260852 100644
--- a/source/data/locales/mas_KE.txt
+++ b/source/data/locales/mas_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mas_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mas_TZ.txt b/source/data/locales/mas_TZ.txt
index bd80f88..a330ac3 100644
--- a/source/data/locales/mas_TZ.txt
+++ b/source/data/locales/mas_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mas_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mer.txt b/source/data/locales/mer.txt
index e2cbc39..42a123c 100644
--- a/source/data/locales/mer.txt
+++ b/source/data/locales/mer.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mer_KE.txt b/source/data/locales/mer_KE.txt
index e47d26d..1ec8451 100644
--- a/source/data/locales/mer_KE.txt
+++ b/source/data/locales/mer_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mer_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mfe.txt b/source/data/locales/mfe.txt
index 37eb110..f903544 100644
--- a/source/data/locales/mfe.txt
+++ b/source/data/locales/mfe.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mfe_MU.txt b/source/data/locales/mfe_MU.txt
index e8dd72a..0c72cf4 100644
--- a/source/data/locales/mfe_MU.txt
+++ b/source/data/locales/mfe_MU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mfe_MU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mg.txt b/source/data/locales/mg.txt
index 5a53447..4785f00 100644
--- a/source/data/locales/mg.txt
+++ b/source/data/locales/mg.txt
@@ -32,7 +32,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mg_MG.txt b/source/data/locales/mg_MG.txt
index b28ac02..dbc7d17 100644
--- a/source/data/locales/mg_MG.txt
+++ b/source/data/locales/mg_MG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mg_MG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mgh.txt b/source/data/locales/mgh.txt
index ecd691c..78b33cf 100644
--- a/source/data/locales/mgh.txt
+++ b/source/data/locales/mgh.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mgh_MZ.txt b/source/data/locales/mgh_MZ.txt
index 0fb3ed4..0f80867 100644
--- a/source/data/locales/mgh_MZ.txt
+++ b/source/data/locales/mgh_MZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgh_MZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mgo.txt b/source/data/locales/mgo.txt
index bc576a0..f8ea46e 100644
--- a/source/data/locales/mgo.txt
+++ b/source/data/locales/mgo.txt
@@ -38,7 +38,7 @@
         }
         native{"latn"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mgo_CM.txt b/source/data/locales/mgo_CM.txt
index aea5d4d..8e68210 100644
--- a/source/data/locales/mgo_CM.txt
+++ b/source/data/locales/mgo_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgo_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mk.txt b/source/data/locales/mk.txt
index 9e83f14..35739eb 100644
--- a/source/data/locales/mk.txt
+++ b/source/data/locales/mk.txt
@@ -197,10 +197,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                many{"Сврти на {0}-мата улица десно."}
+                one{"Сврти на {0}-вата улица десно."}
+                other{"Сврти на {0}-тата улица десно."}
+                two{"Сврти на {0}-рата улица десно."}
+            }
+            plural{
+                one{"{0} ден"}
+                other{"{0} дена"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mk_MK.txt b/source/data/locales/mk_MK.txt
index a3e1813..1045b85 100644
--- a/source/data/locales/mk_MK.txt
+++ b/source/data/locales/mk_MK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mk_MK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ml.txt b/source/data/locales/ml.txt
index ea9501c..d5419f5 100644
--- a/source/data/locales/ml.txt
+++ b/source/data/locales/ml.txt
@@ -204,6 +204,15 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}-ാമത്തെ വലത്തേക്ക് തിരിയുക."}
+            }
+            plural{
+                one{"{0} വ്യക്തി"}
+                other{"{0} വ്യക്തികൾ"}
+            }
+        }
         minimumGroupingDigits{"1"}
         mlym{
             patterns{
@@ -229,7 +238,7 @@
         }
         native{"mlym"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ml_IN.txt b/source/data/locales/ml_IN.txt
index d44254d..08c3960 100644
--- a/source/data/locales/ml_IN.txt
+++ b/source/data/locales/ml_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ml_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mn.txt b/source/data/locales/mn.txt
index 01cf154..71ae95f 100644
--- a/source/data/locales/mn.txt
+++ b/source/data/locales/mn.txt
@@ -199,10 +199,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}-р баруун эргэлтээр орно уу"}
+            }
+            plural{
+                one{"Картанд {0} Х байна. Үүнийг авах уу?"}
+                other{"Картанд {0} Х байна. Тэднийг авах уу?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mn_MN.txt b/source/data/locales/mn_MN.txt
index ca2527c..906e22a 100644
--- a/source/data/locales/mn_MN.txt
+++ b/source/data/locales/mn_MN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mn_MN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mr.txt b/source/data/locales/mr.txt
index 6d433f5..221b297 100644
--- a/source/data/locales/mr.txt
+++ b/source/data/locales/mr.txt
@@ -11,9 +11,9 @@
         word-medial{"{0} … {1}"}
     }
     ExemplarCharacters{
-        "[\u093C ॐ \u0902 \u0901 ः अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट "
-        "ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ा ि ी \u0941 \u0942 \u0943 "
-        "\u0944 \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"
+        "[{\u0931} \u093C ॐ \u0902 \u0901 ः अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ"
+        " ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ा ि ी \u0941 \u0942"
+        " \u0943 \u0944 \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"
     }
     ExemplarCharactersIndex{
         "[\u200D ॐ \u0902 ः अ आ इ ई उ ऊ ऋ ऌ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त"
@@ -225,10 +225,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}थे उजवे वळण घ्या."}
+                one{"{0}ले उजवे वळण घ्या."}
+                other{"{0}वे उजवे वळण घ्या."}
+                two{"{0}रे उजवे वळण घ्या."}
+            }
+            plural{
+                one{"{0} घर"}
+                other{"{0} घरे"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"deva"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mr_IN.txt b/source/data/locales/mr_IN.txt
index 1cc8844..549a126 100644
--- a/source/data/locales/mr_IN.txt
+++ b/source/data/locales/mr_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mr_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ms.txt b/source/data/locales/ms.txt
index 1d5fdf5..bd30dd7 100644
--- a/source/data/locales/ms.txt
+++ b/source/data/locales/ms.txt
@@ -167,10 +167,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Ambil belokan kanan yang pertama."}
+                other{"Ambil belokan kanan yang ke-{0}."}
+            }
+            plural{
+                other{"{0} hari"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ms_BN.txt b/source/data/locales/ms_BN.txt
index 5271e44..e97dd47 100644
--- a/source/data/locales/ms_BN.txt
+++ b/source/data/locales/ms_BN.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ms_MY.txt b/source/data/locales/ms_MY.txt
index 30acaf3..46eb161 100644
--- a/source/data/locales/ms_MY.txt
+++ b/source/data/locales/ms_MY.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ms_MY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ms_SG.txt b/source/data/locales/ms_SG.txt
index 4ea166a..6af17c7 100644
--- a/source/data/locales/ms_SG.txt
+++ b/source/data/locales/ms_SG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ms_SG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mt.txt b/source/data/locales/mt.txt
index 677334d..c5970f6 100644
--- a/source/data/locales/mt.txt
+++ b/source/data/locales/mt.txt
@@ -44,7 +44,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mt_MT.txt b/source/data/locales/mt_MT.txt
index 7e568bb..a3e6593 100644
--- a/source/data/locales/mt_MT.txt
+++ b/source/data/locales/mt_MT.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mt_MT{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mua.txt b/source/data/locales/mua.txt
index ec2fa59..cc07d2c 100644
--- a/source/data/locales/mua.txt
+++ b/source/data/locales/mua.txt
@@ -18,7 +18,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/mua_CM.txt b/source/data/locales/mua_CM.txt
index 7a26e84..c877d27 100644
--- a/source/data/locales/mua_CM.txt
+++ b/source/data/locales/mua_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mua_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/my.txt b/source/data/locales/my.txt
index 598a0fe..b90f629 100644
--- a/source/data/locales/my.txt
+++ b/source/data/locales/my.txt
@@ -11,9 +11,9 @@
         word-medial{"{0} … {1}"}
     }
     ExemplarCharacters{
-        "[က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ ဣ ဤ ဥ ဦ"
-        " ဧ ဩ ဪ ာ ါ \u102D \u102E \u102F \u1030 ေ \u1032 \u1036 ဿ ျ ြ \u103D \u103E "
-        "\u1039 \u103A \u1037 း]"
+        "[{\u104F} က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ "
+        "အ ဣ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ \u102D \u102E \u102F \u1030 ေ \u1032 \u1036 ဿ ျ ြ \u103D"
+        " \u103E \u1039 \u103A \u1037 း]"
     }
     ExemplarCharactersIndex{"[က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ]"}
     ExemplarCharactersPunctuation{"[၊ ။ ‘ ’ “ ”]"}
@@ -165,6 +165,14 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0} အုပ်မြောက်"}
+            }
+            plural{
+                other{"{0}ရက်"}
+            }
+        }
         minimumGroupingDigits{"1"}
         mymr{
             patterns{
@@ -184,7 +192,7 @@
         }
         native{"mymr"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/my_MM.txt b/source/data/locales/my_MM.txt
index 957b25e..799b2d8 100644
--- a/source/data/locales/my_MM.txt
+++ b/source/data/locales/my_MM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 my_MM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/mzn.txt b/source/data/locales/mzn.txt
index 580fc9f..f691891 100644
--- a/source/data/locales/mzn.txt
+++ b/source/data/locales/mzn.txt
@@ -21,7 +21,7 @@
         default{"arabext"}
         native{"arabext"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         default{"persian"}
         gregorian{
diff --git a/source/data/locales/mzn_IR.txt b/source/data/locales/mzn_IR.txt
index 9c1adb8..2cef1ac 100644
--- a/source/data/locales/mzn_IR.txt
+++ b/source/data/locales/mzn_IR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mzn_IR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/naq.txt b/source/data/locales/naq.txt
index 0d19649..6d38428 100644
--- a/source/data/locales/naq.txt
+++ b/source/data/locales/naq.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/naq_NA.txt b/source/data/locales/naq_NA.txt
index 3727740..66e41ab 100644
--- a/source/data/locales/naq_NA.txt
+++ b/source/data/locales/naq_NA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 naq_NA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nb.txt b/source/data/locales/nb.txt
index f245579..847d9ed 100644
--- a/source/data/locales/nb.txt
+++ b/source/data/locales/nb.txt
@@ -233,10 +233,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Ta {0}. svingen til høyre."}
+            }
+            plural{
+                one{"{0} dag"}
+                other{"{0} dager"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             availableFormats{
diff --git a/source/data/locales/nb_NO.txt b/source/data/locales/nb_NO.txt
index 8add9f8..0a2e388 100644
--- a/source/data/locales/nb_NO.txt
+++ b/source/data/locales/nb_NO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nb_NO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nb_SJ.txt b/source/data/locales/nb_SJ.txt
index 865768d..c122357 100644
--- a/source/data/locales/nb_SJ.txt
+++ b/source/data/locales/nb_SJ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nb_SJ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nd.txt b/source/data/locales/nd.txt
index 0a98cff..9eb4e47 100644
--- a/source/data/locales/nd.txt
+++ b/source/data/locales/nd.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nd_ZW.txt b/source/data/locales/nd_ZW.txt
index 80e495f..7bb76b9 100644
--- a/source/data/locales/nd_ZW.txt
+++ b/source/data/locales/nd_ZW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nd_ZW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nds.txt b/source/data/locales/nds.txt
index f171bbd..8fe2a11 100644
--- a/source/data/locales/nds.txt
+++ b/source/data/locales/nds.txt
@@ -3,5 +3,5 @@
 nds{
     AuxExemplarCharacters{"[á à ă â ā æ ç é è ĕ ê ë ę ē í ì ĭ î ï ī ñ ó ò ŏ ô ø ō œ ú ù ŭ û ū ÿ]"}
     ExemplarCharacters{"[a å ä b c d e f g h i j k l m n o ö p q r s t u ü v w x y z]"}
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nds_DE.txt b/source/data/locales/nds_DE.txt
index 897a6d9..06b962f 100644
--- a/source/data/locales/nds_DE.txt
+++ b/source/data/locales/nds_DE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds_DE{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nds_NL.txt b/source/data/locales/nds_NL.txt
index 5a8e7bb..c049e62 100644
--- a/source/data/locales/nds_NL.txt
+++ b/source/data/locales/nds_NL.txt
@@ -8,5 +8,5 @@
         "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "
         "″]"
     }
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ne.txt b/source/data/locales/ne.txt
index be3ad4c..6c4de4a 100644
--- a/source/data/locales/ne.txt
+++ b/source/data/locales/ne.txt
@@ -220,10 +220,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"{0} ओ दायाँ घुम्ति लिनुहोस्"}
+                other{"{0} औं दायाँ घुम्ति लिनुहोस्"}
+            }
+            plural{
+                one{"तपाईँसँग {0} निम्तो छ"}
+                other{"तपाईँसँग {0} निम्ता छन््"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"deva"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ne_IN.txt b/source/data/locales/ne_IN.txt
index a56870b..0273c23 100644
--- a/source/data/locales/ne_IN.txt
+++ b/source/data/locales/ne_IN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ne_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ne_NP.txt b/source/data/locales/ne_NP.txt
index ec373c3..ce6916b 100644
--- a/source/data/locales/ne_NP.txt
+++ b/source/data/locales/ne_NP.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ne_NP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl.txt b/source/data/locales/nl.txt
index 771fcea..87c8948 100644
--- a/source/data/locales/nl.txt
+++ b/source/data/locales/nl.txt
@@ -236,10 +236,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Neem de {0}e afslag rechts."}
+            }
+            plural{
+                one{"{0} dag"}
+                other{"{0} dagen"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/nl_AW.txt b/source/data/locales/nl_AW.txt
index 0f499e6..87cf5fe 100644
--- a/source/data/locales/nl_AW.txt
+++ b/source/data/locales/nl_AW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_AW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl_BE.txt b/source/data/locales/nl_BE.txt
index fe435ad..bedf45a 100644
--- a/source/data/locales/nl_BE.txt
+++ b/source/data/locales/nl_BE.txt
@@ -8,7 +8,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nl_BQ.txt b/source/data/locales/nl_BQ.txt
index 3561c80..ce670df 100644
--- a/source/data/locales/nl_BQ.txt
+++ b/source/data/locales/nl_BQ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_BQ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl_CW.txt b/source/data/locales/nl_CW.txt
index 8881f52..c138fea 100644
--- a/source/data/locales/nl_CW.txt
+++ b/source/data/locales/nl_CW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_CW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl_NL.txt b/source/data/locales/nl_NL.txt
index b86d871..9a55e1b 100644
--- a/source/data/locales/nl_NL.txt
+++ b/source/data/locales/nl_NL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_NL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl_SR.txt b/source/data/locales/nl_SR.txt
index fe29eab..3f1089f 100644
--- a/source/data/locales/nl_SR.txt
+++ b/source/data/locales/nl_SR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_SR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nl_SX.txt b/source/data/locales/nl_SX.txt
index 666c262..5f552bd 100644
--- a/source/data/locales/nl_SX.txt
+++ b/source/data/locales/nl_SX.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_SX{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nmg.txt b/source/data/locales/nmg.txt
index 3c12abc..bd82e70 100644
--- a/source/data/locales/nmg.txt
+++ b/source/data/locales/nmg.txt
@@ -21,7 +21,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nmg_CM.txt b/source/data/locales/nmg_CM.txt
index b35788f..7767ea9 100644
--- a/source/data/locales/nmg_CM.txt
+++ b/source/data/locales/nmg_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nmg_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nn.txt b/source/data/locales/nn.txt
index a43c2d3..c9a410b 100644
--- a/source/data/locales/nn.txt
+++ b/source/data/locales/nn.txt
@@ -36,7 +36,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nn_NO.txt b/source/data/locales/nn_NO.txt
index 6203951..916d807 100644
--- a/source/data/locales/nn_NO.txt
+++ b/source/data/locales/nn_NO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nn_NO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nnh.txt b/source/data/locales/nnh.txt
index 9102891..72d86a1 100644
--- a/source/data/locales/nnh.txt
+++ b/source/data/locales/nnh.txt
@@ -27,7 +27,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nnh_CM.txt b/source/data/locales/nnh_CM.txt
index 87a3ac7..d59b706 100644
--- a/source/data/locales/nnh_CM.txt
+++ b/source/data/locales/nnh_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nnh_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nus.txt b/source/data/locales/nus.txt
index 1dc32c2..11b1930 100644
--- a/source/data/locales/nus.txt
+++ b/source/data/locales/nus.txt
@@ -21,7 +21,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nus_SS.txt b/source/data/locales/nus_SS.txt
index eb4753b..96ae0dd 100644
--- a/source/data/locales/nus_SS.txt
+++ b/source/data/locales/nus_SS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nus_SS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/nyn.txt b/source/data/locales/nyn.txt
index f07d292..2c61f86 100644
--- a/source/data/locales/nyn.txt
+++ b/source/data/locales/nyn.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/nyn_UG.txt b/source/data/locales/nyn_UG.txt
index d11fed2..89dd530 100644
--- a/source/data/locales/nyn_UG.txt
+++ b/source/data/locales/nyn_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nyn_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/om.txt b/source/data/locales/om.txt
index d34b4c3..e144af9 100644
--- a/source/data/locales/om.txt
+++ b/source/data/locales/om.txt
@@ -34,7 +34,7 @@
         native{"latn"}
         traditional{"ethi"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/om_ET.txt b/source/data/locales/om_ET.txt
index 2ee4784..bd452f3 100644
--- a/source/data/locales/om_ET.txt
+++ b/source/data/locales/om_ET.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 om_ET{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/om_KE.txt b/source/data/locales/om_KE.txt
index 690de1b..f092530 100644
--- a/source/data/locales/om_KE.txt
+++ b/source/data/locales/om_KE.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 om_KE{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/or.txt b/source/data/locales/or.txt
index af01633..5fd53ae 100644
--- a/source/data/locales/or.txt
+++ b/source/data/locales/or.txt
@@ -26,7 +26,7 @@
         }
         native{"orya"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/or_IN.txt b/source/data/locales/or_IN.txt
index 693e639..93e5fa2 100644
--- a/source/data/locales/or_IN.txt
+++ b/source/data/locales/or_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 or_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/os.txt b/source/data/locales/os.txt
index 52cd718..04bfec3 100644
--- a/source/data/locales/os.txt
+++ b/source/data/locales/os.txt
@@ -43,7 +43,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/os_GE.txt b/source/data/locales/os_GE.txt
index a07c7c6..c1d7390 100644
--- a/source/data/locales/os_GE.txt
+++ b/source/data/locales/os_GE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 os_GE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/os_RU.txt b/source/data/locales/os_RU.txt
index 352e125..5a03778 100644
--- a/source/data/locales/os_RU.txt
+++ b/source/data/locales/os_RU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 os_RU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pa.txt b/source/data/locales/pa.txt
index 4df4052..f88c06f 100644
--- a/source/data/locales/pa.txt
+++ b/source/data/locales/pa.txt
@@ -240,10 +240,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"ਸਜੇ ਪਾਸੇ {0} ਮੋੜ ਲਵੋ"}
+            }
+            plural{
+                one{"{0} ਘੰਟਾ"}
+                other{"{0} ਘੰਟੇ"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"guru"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
@@ -286,7 +295,7 @@
                 yyyyMEd{"E, d/M/y GGGGG"}
                 yyyyMMM{"MMM y G"}
                 yyyyMMMEd{"E, d MMM y G"}
-                yyyyMMMM{"G y MMMM"}
+                yyyyMMMM{"MMMM y G"}
                 yyyyMMMd{"d MMM y G"}
                 yyyyMd{"d/M/y GGGGG"}
                 yyyyQQQ{"QQQ y G"}
@@ -427,7 +436,7 @@
                 yMEd{"E, d/M/y"}
                 yMMM{"MMM y"}
                 yMMMEd{"E, d MMM y"}
-                yMMMM{"y MMMM"}
+                yMMMM{"MMMM y"}
                 yMMMd{"d MMM y"}
                 yMd{"d/M/y"}
                 yQQQ{"QQQ y"}
diff --git a/source/data/locales/pa_Arab.txt b/source/data/locales/pa_Arab.txt
index f95ff8f..738354e 100644
--- a/source/data/locales/pa_Arab.txt
+++ b/source/data/locales/pa_Arab.txt
@@ -17,7 +17,7 @@
         }
         native{"arabext"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/pa_Arab_PK.txt b/source/data/locales/pa_Arab_PK.txt
index 29992d3..b154751 100644
--- a/source/data/locales/pa_Arab_PK.txt
+++ b/source/data/locales/pa_Arab_PK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Arab_PK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pa_Guru.txt b/source/data/locales/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/locales/pa_Guru.txt
+++ b/source/data/locales/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pa_Guru_IN.txt b/source/data/locales/pa_Guru_IN.txt
index e0ef887..cce945c 100644
--- a/source/data/locales/pa_Guru_IN.txt
+++ b/source/data/locales/pa_Guru_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pl.txt b/source/data/locales/pl.txt
index 4fd6f55..c371f59 100644
--- a/source/data/locales/pl.txt
+++ b/source/data/locales/pl.txt
@@ -272,10 +272,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Skręć w {0} w prawo."}
+            }
+            plural{
+                few{"{0} miesiące"}
+                many{"{0} miesięcy"}
+                one{"{0} miesiąc"}
+                other{"{0} miesiąca"}
+            }
+        }
         minimumGroupingDigits{"2"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/pl_PL.txt b/source/data/locales/pl_PL.txt
index 62416f1..410d179 100644
--- a/source/data/locales/pl_PL.txt
+++ b/source/data/locales/pl_PL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pl_PL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pool.res b/source/data/locales/pool.res
index 99ef76c..4e500b9 100644
--- a/source/data/locales/pool.res
+++ b/source/data/locales/pool.res
Binary files differ
diff --git a/source/data/locales/ps.txt b/source/data/locales/ps.txt
index 90c9ba5..4548c66 100644
--- a/source/data/locales/ps.txt
+++ b/source/data/locales/ps.txt
@@ -57,7 +57,7 @@
         minimumGroupingDigits{"1"}
         native{"arabext"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         default{"persian"}
         generic{
diff --git a/source/data/locales/ps_AF.txt b/source/data/locales/ps_AF.txt
index 7bd1cd8..7507ea5 100644
--- a/source/data/locales/ps_AF.txt
+++ b/source/data/locales/ps_AF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ps_AF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt.txt b/source/data/locales/pt.txt
index 83feb66..d394d44 100644
--- a/source/data/locales/pt.txt
+++ b/source/data/locales/pt.txt
@@ -203,10 +203,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}º livro"}
+            }
+            plural{
+                one{"{0} ponto"}
+                other{"{0} pontos"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/pt_AO.txt b/source/data/locales/pt_AO.txt
index e5f5a3b..96477f4 100644
--- a/source/data/locales/pt_AO.txt
+++ b/source/data/locales/pt_AO.txt
@@ -5,5 +5,5 @@
     NumberElements{
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_BR.txt b/source/data/locales/pt_BR.txt
index 855e261..79d6b24 100644
--- a/source/data/locales/pt_BR.txt
+++ b/source/data/locales/pt_BR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_BR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_CH.txt b/source/data/locales/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/locales/pt_CH.txt
+++ b/source/data/locales/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_CV.txt b/source/data/locales/pt_CV.txt
index 7e77af3..ad4836b 100644
--- a/source/data/locales/pt_CV.txt
+++ b/source/data/locales/pt_CV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CV{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_GQ.txt b/source/data/locales/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/locales/pt_GQ.txt
+++ b/source/data/locales/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_GW.txt b/source/data/locales/pt_GW.txt
index 67e6e72..e137e51 100644
--- a/source/data/locales/pt_GW.txt
+++ b/source/data/locales/pt_GW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_LU.txt b/source/data/locales/pt_LU.txt
index 009ec80..e6d1c60 100644
--- a/source/data/locales/pt_LU.txt
+++ b/source/data/locales/pt_LU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_LU{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_MO.txt b/source/data/locales/pt_MO.txt
index bbb10f9..b010000 100644
--- a/source/data/locales/pt_MO.txt
+++ b/source/data/locales/pt_MO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/pt_MZ.txt b/source/data/locales/pt_MZ.txt
index 9873941..b86fd1e 100644
--- a/source/data/locales/pt_MZ.txt
+++ b/source/data/locales/pt_MZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MZ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_PT.txt b/source/data/locales/pt_PT.txt
index c84c434..e6521b1 100644
--- a/source/data/locales/pt_PT.txt
+++ b/source/data/locales/pt_PT.txt
@@ -141,7 +141,7 @@
         }
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/pt_ST.txt b/source/data/locales/pt_ST.txt
index 55f443a..95f596c 100644
--- a/source/data/locales/pt_ST.txt
+++ b/source/data/locales/pt_ST.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_ST{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/pt_TL.txt b/source/data/locales/pt_TL.txt
index 68cb641..786b602 100644
--- a/source/data/locales/pt_TL.txt
+++ b/source/data/locales/pt_TL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/qu.txt b/source/data/locales/qu.txt
index 2bbaa7d..394c581 100644
--- a/source/data/locales/qu.txt
+++ b/source/data/locales/qu.txt
@@ -34,7 +34,7 @@
             }
         }
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/qu_BO.txt b/source/data/locales/qu_BO.txt
index 3412285..8f8853c 100644
--- a/source/data/locales/qu_BO.txt
+++ b/source/data/locales/qu_BO.txt
@@ -9,5 +9,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/qu_EC.txt b/source/data/locales/qu_EC.txt
index 473cfb8..df92db8 100644
--- a/source/data/locales/qu_EC.txt
+++ b/source/data/locales/qu_EC.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu_EC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/qu_PE.txt b/source/data/locales/qu_PE.txt
index 4f2636c..9707bf0 100644
--- a/source/data/locales/qu_PE.txt
+++ b/source/data/locales/qu_PE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu_PE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/resfiles.mk b/source/data/locales/resfiles.mk
index ab67e0f..bc59916 100644
--- a/source/data/locales/resfiles.mk
+++ b/source/data/locales/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-GENRB_CLDR_VERSION = %version%
+GENRB_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,15 +26,15 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-GENRB_SYNTHETIC_ALIAS = az_AZ.txt bs_BA.txt en_NH.txt en_RH.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP_TRADITIONAL.txt\
- mo.txt no.txt no_NO.txt no_NO_NY.txt pa_IN.txt\
- pa_PK.txt sh.txt sh_BA.txt sh_CS.txt sh_YU.txt\
- shi_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_CS.txt sr_Cyrl_YU.txt\
- sr_Latn_CS.txt sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt\
- sr_YU.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt\
- uz_UZ.txt vai_LR.txt zh_CN.txt zh_HK.txt zh_MO.txt\
- zh_SG.txt zh_TW.txt
+GENRB_SYNTHETIC_ALIAS = ars.txt az_AZ.txt bs_BA.txt en_NH.txt\
+ en_RH.txt in.txt in_ID.txt iw.txt iw_IL.txt\
+ ja_JP_TRADITIONAL.txt mo.txt no.txt no_NO.txt no_NO_NY.txt\
+ pa_IN.txt pa_PK.txt sh.txt sh_BA.txt sh_CS.txt\
+ sh_YU.txt shi_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_CS.txt\
+ sr_Cyrl_YU.txt sr_Latn_CS.txt sr_Latn_YU.txt sr_ME.txt sr_RS.txt\
+ sr_XK.txt sr_YU.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt\
+ uz_AF.txt uz_UZ.txt vai_LR.txt zh_CN.txt zh_HK.txt\
+ zh_MO.txt zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -89,99 +89,100 @@
  en_UG.txt en_UM.txt en_US.txt en_US_POSIX.txt en_VC.txt\
  en_VG.txt en_VI.txt en_VU.txt en_WS.txt en_ZA.txt\
  en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\
- es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\
- es_CR.txt es_CU.txt es_DO.txt es_EA.txt es_EC.txt\
- es_ES.txt es_GQ.txt es_GT.txt es_HN.txt es_IC.txt\
- es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PH.txt\
- es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\
- es_VE.txt et.txt et_EE.txt eu.txt eu_ES.txt\
- ewo.txt ewo_CM.txt fa.txt fa_AF.txt fa_IR.txt\
- ff.txt ff_CM.txt ff_GN.txt ff_MR.txt ff_SN.txt\
- fi.txt fi_FI.txt fil.txt fil_PH.txt fo.txt\
- fo_DK.txt fo_FO.txt fr.txt fr_BE.txt fr_BF.txt\
- fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt\
- fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt\
- fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt\
- fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt\
- fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt\
- fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt\
- fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt\
- fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt\
- fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt fur.txt\
- fur_IT.txt fy.txt fy_NL.txt ga.txt ga_IE.txt\
- gd.txt gd_GB.txt gl.txt gl_ES.txt gsw.txt\
- gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt\
- guz.txt guz_KE.txt gv.txt gv_IM.txt ha.txt\
- ha_GH.txt ha_NE.txt ha_NG.txt haw.txt haw_US.txt\
- he.txt he_IL.txt hi.txt hi_IN.txt hr.txt\
- hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt hu.txt\
- hu_HU.txt hy.txt hy_AM.txt id.txt id_ID.txt\
- ig.txt ig_NG.txt ii.txt ii_CN.txt is.txt\
- is_IS.txt it.txt it_CH.txt it_IT.txt it_SM.txt\
- ja.txt ja_JP.txt jgo.txt jgo_CM.txt jmc.txt\
- jmc_TZ.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\
- kam.txt kam_KE.txt kde.txt kde_TZ.txt kea.txt\
- kea_CV.txt khq.txt khq_ML.txt ki.txt ki_KE.txt\
- kk.txt kk_KZ.txt kkj.txt kkj_CM.txt kl.txt\
- kl_GL.txt kln.txt kln_KE.txt km.txt km_KH.txt\
- kn.txt kn_IN.txt ko.txt ko_KP.txt ko_KR.txt\
- kok.txt kok_IN.txt ks.txt ks_IN.txt ksb.txt\
- ksb_TZ.txt ksf.txt ksf_CM.txt ksh.txt ksh_DE.txt\
- kw.txt kw_GB.txt ky.txt ky_KG.txt lag.txt\
- lag_TZ.txt lb.txt lb_LU.txt lg.txt lg_UG.txt\
- lkt.txt lkt_US.txt ln.txt ln_AO.txt ln_CD.txt\
- ln_CF.txt ln_CG.txt lo.txt lo_LA.txt lrc.txt\
- lrc_IQ.txt lrc_IR.txt lt.txt lt_LT.txt lu.txt\
- lu_CD.txt luo.txt luo_KE.txt luy.txt luy_KE.txt\
- lv.txt lv_LV.txt mas.txt mas_KE.txt mas_TZ.txt\
- mer.txt mer_KE.txt mfe.txt mfe_MU.txt mg.txt\
- mg_MG.txt mgh.txt mgh_MZ.txt mgo.txt mgo_CM.txt\
- mk.txt mk_MK.txt ml.txt ml_IN.txt mn.txt\
- mn_MN.txt mr.txt mr_IN.txt ms.txt ms_BN.txt\
- ms_MY.txt ms_SG.txt mt.txt mt_MT.txt mua.txt\
- mua_CM.txt my.txt my_MM.txt mzn.txt mzn_IR.txt\
- naq.txt naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt\
- nd.txt nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt\
- ne.txt ne_IN.txt ne_NP.txt nl.txt nl_AW.txt\
- nl_BE.txt nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt\
- nl_SX.txt nmg.txt nmg_CM.txt nn.txt nn_NO.txt\
- nnh.txt nnh_CM.txt nus.txt nus_SS.txt nyn.txt\
- nyn_UG.txt om.txt om_ET.txt om_KE.txt or.txt\
- or_IN.txt os.txt os_GE.txt os_RU.txt pa.txt\
- pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt\
- pl_PL.txt ps.txt ps_AF.txt pt.txt pt_AO.txt\
- pt_BR.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\
- pt_TL.txt qu.txt qu_BO.txt qu_EC.txt qu_PE.txt\
- rm.txt rm_CH.txt rn.txt rn_BI.txt ro.txt\
- ro_MD.txt ro_RO.txt rof.txt rof_TZ.txt ru.txt\
- ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt\
- ru_UA.txt rw.txt rw_RW.txt rwk.txt rwk_TZ.txt\
- sah.txt sah_RU.txt saq.txt saq_KE.txt sbp.txt\
- sbp_TZ.txt se.txt se_FI.txt se_NO.txt se_SE.txt\
- seh.txt seh_MZ.txt ses.txt ses_ML.txt sg.txt\
- sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt shi_Tfng.txt\
- shi_Tfng_MA.txt si.txt si_LK.txt sk.txt sk_SK.txt\
- sl.txt sl_SI.txt smn.txt smn_FI.txt sn.txt\
- sn_ZW.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\
- so_SO.txt sq.txt sq_AL.txt sq_MK.txt sq_XK.txt\
- sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt\
- sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_RS.txt\
- sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt sv_SE.txt\
- sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt sw_UG.txt\
- ta.txt ta_IN.txt ta_LK.txt ta_MY.txt ta_SG.txt\
- te.txt te_IN.txt teo.txt teo_KE.txt teo_UG.txt\
- th.txt th_TH.txt ti.txt ti_ER.txt ti_ET.txt\
- to.txt to_TO.txt tr.txt tr_CY.txt tr_TR.txt\
- twq.txt twq_NE.txt tzm.txt tzm_MA.txt ug.txt\
- ug_CN.txt uk.txt uk_UA.txt ur.txt ur_IN.txt\
- ur_PK.txt uz.txt uz_Arab.txt uz_Arab_AF.txt uz_Cyrl.txt\
- uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt vai.txt vai_Latn.txt\
- vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt vi.txt vi_VN.txt\
- vun.txt vun_TZ.txt wae.txt wae_CH.txt xog.txt\
- xog_UG.txt yav.txt yav_CM.txt yi.txt yi_001.txt\
- yo.txt yo_BJ.txt yo_NG.txt yue.txt yue_HK.txt\
- zgh.txt zgh_MA.txt zh.txt zh_Hans.txt zh_Hans_CN.txt\
- zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt\
- zh_Hant_MO.txt zh_Hant_TW.txt zu.txt zu_ZA.txt
+ es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\
+ es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EA.txt\
+ es_EC.txt es_ES.txt es_GQ.txt es_GT.txt es_HN.txt\
+ es_IC.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\
+ es_PH.txt es_PR.txt es_PY.txt es_SV.txt es_US.txt\
+ es_UY.txt es_VE.txt et.txt et_EE.txt eu.txt\
+ eu_ES.txt ewo.txt ewo_CM.txt fa.txt fa_AF.txt\
+ fa_IR.txt ff.txt ff_CM.txt ff_GN.txt ff_MR.txt\
+ ff_SN.txt fi.txt fi_FI.txt fil.txt fil_PH.txt\
+ fo.txt fo_DK.txt fo_FO.txt fr.txt fr_BE.txt\
+ fr_BF.txt fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt\
+ fr_CD.txt fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt\
+ fr_CM.txt fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt\
+ fr_GF.txt fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt\
+ fr_KM.txt fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt\
+ fr_MG.txt fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt\
+ fr_NC.txt fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt\
+ fr_RW.txt fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt\
+ fr_TG.txt fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt\
+ fur.txt fur_IT.txt fy.txt fy_NL.txt ga.txt\
+ ga_IE.txt gd.txt gd_GB.txt gl.txt gl_ES.txt\
+ gsw.txt gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt\
+ gu_IN.txt guz.txt guz_KE.txt gv.txt gv_IM.txt\
+ ha.txt ha_GH.txt ha_NE.txt ha_NG.txt haw.txt\
+ haw_US.txt he.txt he_IL.txt hi.txt hi_IN.txt\
+ hr.txt hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt\
+ hu.txt hu_HU.txt hy.txt hy_AM.txt id.txt\
+ id_ID.txt ig.txt ig_NG.txt ii.txt ii_CN.txt\
+ is.txt is_IS.txt it.txt it_CH.txt it_IT.txt\
+ it_SM.txt it_VA.txt ja.txt ja_JP.txt jgo.txt\
+ jgo_CM.txt jmc.txt jmc_TZ.txt ka.txt ka_GE.txt\
+ kab.txt kab_DZ.txt kam.txt kam_KE.txt kde.txt\
+ kde_TZ.txt kea.txt kea_CV.txt khq.txt khq_ML.txt\
+ ki.txt ki_KE.txt kk.txt kk_KZ.txt kkj.txt\
+ kkj_CM.txt kl.txt kl_GL.txt kln.txt kln_KE.txt\
+ km.txt km_KH.txt kn.txt kn_IN.txt ko.txt\
+ ko_KP.txt ko_KR.txt kok.txt kok_IN.txt ks.txt\
+ ks_IN.txt ksb.txt ksb_TZ.txt ksf.txt ksf_CM.txt\
+ ksh.txt ksh_DE.txt kw.txt kw_GB.txt ky.txt\
+ ky_KG.txt lag.txt lag_TZ.txt lb.txt lb_LU.txt\
+ lg.txt lg_UG.txt lkt.txt lkt_US.txt ln.txt\
+ ln_AO.txt ln_CD.txt ln_CF.txt ln_CG.txt lo.txt\
+ lo_LA.txt lrc.txt lrc_IQ.txt lrc_IR.txt lt.txt\
+ lt_LT.txt lu.txt lu_CD.txt luo.txt luo_KE.txt\
+ luy.txt luy_KE.txt lv.txt lv_LV.txt mas.txt\
+ mas_KE.txt mas_TZ.txt mer.txt mer_KE.txt mfe.txt\
+ mfe_MU.txt mg.txt mg_MG.txt mgh.txt mgh_MZ.txt\
+ mgo.txt mgo_CM.txt mk.txt mk_MK.txt ml.txt\
+ ml_IN.txt mn.txt mn_MN.txt mr.txt mr_IN.txt\
+ ms.txt ms_BN.txt ms_MY.txt ms_SG.txt mt.txt\
+ mt_MT.txt mua.txt mua_CM.txt my.txt my_MM.txt\
+ mzn.txt mzn_IR.txt naq.txt naq_NA.txt nb.txt\
+ nb_NO.txt nb_SJ.txt nd.txt nd_ZW.txt nds.txt\
+ nds_DE.txt nds_NL.txt ne.txt ne_IN.txt ne_NP.txt\
+ nl.txt nl_AW.txt nl_BE.txt nl_BQ.txt nl_CW.txt\
+ nl_NL.txt nl_SR.txt nl_SX.txt nmg.txt nmg_CM.txt\
+ nn.txt nn_NO.txt nnh.txt nnh_CM.txt nus.txt\
+ nus_SS.txt nyn.txt nyn_UG.txt om.txt om_ET.txt\
+ om_KE.txt or.txt or_IN.txt os.txt os_GE.txt\
+ os_RU.txt pa.txt pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt\
+ pa_Guru_IN.txt pl.txt pl_PL.txt ps.txt ps_AF.txt\
+ pt.txt pt_AO.txt pt_BR.txt pt_CH.txt pt_CV.txt\
+ pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\
+ pt_PT.txt pt_ST.txt pt_TL.txt qu.txt qu_BO.txt\
+ qu_EC.txt qu_PE.txt rm.txt rm_CH.txt rn.txt\
+ rn_BI.txt ro.txt ro_MD.txt ro_RO.txt rof.txt\
+ rof_TZ.txt ru.txt ru_BY.txt ru_KG.txt ru_KZ.txt\
+ ru_MD.txt ru_RU.txt ru_UA.txt rw.txt rw_RW.txt\
+ rwk.txt rwk_TZ.txt sah.txt sah_RU.txt saq.txt\
+ saq_KE.txt sbp.txt sbp_TZ.txt se.txt se_FI.txt\
+ se_NO.txt se_SE.txt seh.txt seh_MZ.txt ses.txt\
+ ses_ML.txt sg.txt sg_CF.txt shi.txt shi_Latn.txt\
+ shi_Latn_MA.txt shi_Tfng.txt shi_Tfng_MA.txt si.txt si_LK.txt\
+ sk.txt sk_SK.txt sl.txt sl_SI.txt smn.txt\
+ smn_FI.txt sn.txt sn_ZW.txt so.txt so_DJ.txt\
+ so_ET.txt so_KE.txt so_SO.txt sq.txt sq_AL.txt\
+ sq_MK.txt sq_XK.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt\
+ sr_Cyrl_ME.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt\
+ sr_Latn_ME.txt sr_Latn_RS.txt sr_Latn_XK.txt sv.txt sv_AX.txt\
+ sv_FI.txt sv_SE.txt sw.txt sw_CD.txt sw_KE.txt\
+ sw_TZ.txt sw_UG.txt ta.txt ta_IN.txt ta_LK.txt\
+ ta_MY.txt ta_SG.txt te.txt te_IN.txt teo.txt\
+ teo_KE.txt teo_UG.txt th.txt th_TH.txt ti.txt\
+ ti_ER.txt ti_ET.txt to.txt to_TO.txt tr.txt\
+ tr_CY.txt tr_TR.txt twq.txt twq_NE.txt tzm.txt\
+ tzm_MA.txt ug.txt ug_CN.txt uk.txt uk_UA.txt\
+ ur.txt ur_IN.txt ur_PK.txt uz.txt uz_Arab.txt\
+ uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt\
+ vai.txt vai_Latn.txt vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt\
+ vi.txt vi_VN.txt vun.txt vun_TZ.txt wae.txt\
+ wae_CH.txt xog.txt xog_UG.txt yav.txt yav_CM.txt\
+ yi.txt yi_001.txt yo.txt yo_BJ.txt yo_NG.txt\
+ yue.txt yue_HK.txt zgh.txt zgh_MA.txt zh.txt\
+ zh_Hans.txt zh_Hans_CN.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\
+ zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zh_Hant_TW.txt zu.txt\
+ zu_ZA.txt
 
diff --git a/source/data/locales/rm.txt b/source/data/locales/rm.txt
index cc7ad45..546a1b8 100644
--- a/source/data/locales/rm.txt
+++ b/source/data/locales/rm.txt
@@ -34,7 +34,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rm_CH.txt b/source/data/locales/rm_CH.txt
index 4f55d8d..62fcb64 100644
--- a/source/data/locales/rm_CH.txt
+++ b/source/data/locales/rm_CH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rm_CH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/rn.txt b/source/data/locales/rn.txt
index 8f28c5a..9bd73e8 100644
--- a/source/data/locales/rn.txt
+++ b/source/data/locales/rn.txt
@@ -16,7 +16,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rn_BI.txt b/source/data/locales/rn_BI.txt
index 67387a4..09c2afb 100644
--- a/source/data/locales/rn_BI.txt
+++ b/source/data/locales/rn_BI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rn_BI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ro.txt b/source/data/locales/ro.txt
index 4a2c58d..9d99884 100644
--- a/source/data/locales/ro.txt
+++ b/source/data/locales/ro.txt
@@ -233,10 +233,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Faceți virajul nr. {0} la dreapta."}
+                other{"Faceți virajul al {0}-lea la dreapta."}
+            }
+            plural{
+                few{"{0} zile"}
+                one{"{0} zi"}
+                other{"{0} de zile"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ro_MD.txt b/source/data/locales/ro_MD.txt
index 5963f3d..2eb4fea 100644
--- a/source/data/locales/ro_MD.txt
+++ b/source/data/locales/ro_MD.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ro_MD{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/ro_RO.txt b/source/data/locales/ro_RO.txt
index ad40a52..ba86b4b 100644
--- a/source/data/locales/ro_RO.txt
+++ b/source/data/locales/ro_RO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ro_RO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/rof.txt b/source/data/locales/rof.txt
index 7271cb4..d87c949 100644
--- a/source/data/locales/rof.txt
+++ b/source/data/locales/rof.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rof_TZ.txt b/source/data/locales/rof_TZ.txt
index 20b0ddf..7e6ec67 100644
--- a/source/data/locales/rof_TZ.txt
+++ b/source/data/locales/rof_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rof_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/root.txt b/source/data/locales/root.txt
index 849a56b..c9d2327 100644
--- a/source/data/locales/root.txt
+++ b/source/data/locales/root.txt
@@ -160,10 +160,18 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}?"}
+            }
+            plural{
+                other{"{0}?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             AmPmMarkers:alias{"/LOCALE/calendar/gregorian/AmPmMarkers"}
@@ -2126,12 +2134,21 @@
         }
         day-narrow:alias{"/LOCALE/fields/day-short"}
         day-short:alias{"/LOCALE/fields/day"}
+        dayOfYear{
+            dn{"Day Of Year"}
+        }
+        dayOfYear-narrow:alias{"/LOCALE/fields/dayOfYear-short"}
+        dayOfYear-short:alias{"/LOCALE/fields/dayOfYear"}
         dayperiod{
             dn{"Dayperiod"}
         }
+        dayperiod-narrow:alias{"/LOCALE/fields/dayperiod-short"}
+        dayperiod-short:alias{"/LOCALE/fields/dayperiod"}
         era{
             dn{"Era"}
         }
+        era-narrow:alias{"/LOCALE/fields/era-short"}
+        era-short:alias{"/LOCALE/fields/era"}
         fri{
             relative{
                 "-1"{"last Friday"}
@@ -2354,9 +2371,21 @@
         }
         week-narrow:alias{"/LOCALE/fields/week-short"}
         week-short:alias{"/LOCALE/fields/week"}
+        weekOfMonth{
+            dn{"Week Of Month"}
+        }
+        weekOfMonth-narrow:alias{"/LOCALE/fields/weekOfMonth-short"}
+        weekOfMonth-short:alias{"/LOCALE/fields/weekOfMonth"}
         weekday{
             dn{"Day of the Week"}
         }
+        weekday-narrow:alias{"/LOCALE/fields/weekday-short"}
+        weekday-short:alias{"/LOCALE/fields/weekday"}
+        weekdayOfMonth{
+            dn{"Weekday Of Month"}
+        }
+        weekdayOfMonth-narrow:alias{"/LOCALE/fields/weekdayOfMonth-short"}
+        weekdayOfMonth-short:alias{"/LOCALE/fields/weekdayOfMonth"}
         year{
             dn{"Year"}
             relative{
@@ -2378,6 +2407,8 @@
         zone{
             dn{"Zone"}
         }
+        zone-narrow:alias{"/LOCALE/fields/zone-short"}
+        zone-short:alias{"/LOCALE/fields/zone"}
     }
     layout{
         characters{"left-to-right"}
@@ -2420,4 +2451,31 @@
         US{"US"}
         metric{"Metric"}
     }
+    parse{
+        date{
+            lenient{
+                "[\\-./]",
+                "[\\:∶]",
+            }
+        }
+        general{
+            lenient{
+                "[..․﹒ 。︒。]",
+                "[$﹩$$]",
+                "[£₤]",
+                "[₨₹{Rs}{Rp}]",
+            }
+        }
+        number{
+            lenient{
+                "[\\--﹣ −⁻₋ ➖‒]",
+                "[,,﹐︐ ، ٫ 、﹑︑、]",
+                "[++﬩﹢⁺₊ ➕]",
+            }
+            stricter{
+                "[,,﹐︐ ٫]",
+                "[..․﹒ 。]",
+            }
+        }
+    }
 }
diff --git a/source/data/locales/ru.txt b/source/data/locales/ru.txt
index 03fd4d9..1fe09d3 100644
--- a/source/data/locales/ru.txt
+++ b/source/data/locales/ru.txt
@@ -275,10 +275,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Сверните направо на {0}-м перекрестке."}
+            }
+            plural{
+                few{"из {0} книг за {0} дня"}
+                many{"из {0} книг за {0} дней"}
+                one{"из {0} книги за {0} день"}
+                other{"из {0} книги за {0} дня"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ru_BY.txt b/source/data/locales/ru_BY.txt
index 24f2c28..2a8f81e 100644
--- a/source/data/locales/ru_BY.txt
+++ b/source/data/locales/ru_BY.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru_BY{
-    Version{"2.1.30.5"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ru_KG.txt b/source/data/locales/ru_KG.txt
index 32a695a..525ff34 100644
--- a/source/data/locales/ru_KG.txt
+++ b/source/data/locales/ru_KG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru_KG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ru_KZ.txt b/source/data/locales/ru_KZ.txt
index 9e66853..c07d5bc 100644
--- a/source/data/locales/ru_KZ.txt
+++ b/source/data/locales/ru_KZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru_KZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ru_MD.txt b/source/data/locales/ru_MD.txt
index d4c1930..085734a 100644
--- a/source/data/locales/ru_MD.txt
+++ b/source/data/locales/ru_MD.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru_MD{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ru_RU.txt b/source/data/locales/ru_RU.txt
index 25d603e..15adf54 100644
--- a/source/data/locales/ru_RU.txt
+++ b/source/data/locales/ru_RU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru_RU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ru_UA.txt b/source/data/locales/ru_UA.txt
index 37a7473..e32d001 100644
--- a/source/data/locales/ru_UA.txt
+++ b/source/data/locales/ru_UA.txt
@@ -4,7 +4,7 @@
     NumberElements{
         minimumGroupingDigits{"2"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rw.txt b/source/data/locales/rw.txt
index d6ea281..3338637 100644
--- a/source/data/locales/rw.txt
+++ b/source/data/locales/rw.txt
@@ -31,7 +31,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rw_RW.txt b/source/data/locales/rw_RW.txt
index bd860ea..f08e646 100644
--- a/source/data/locales/rw_RW.txt
+++ b/source/data/locales/rw_RW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rw_RW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/rwk.txt b/source/data/locales/rwk.txt
index f4af85a..0f65b8e 100644
--- a/source/data/locales/rwk.txt
+++ b/source/data/locales/rwk.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/rwk_TZ.txt b/source/data/locales/rwk_TZ.txt
index 6c483ab..e904291 100644
--- a/source/data/locales/rwk_TZ.txt
+++ b/source/data/locales/rwk_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rwk_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sah.txt b/source/data/locales/sah.txt
index 1da9e11..84f9bdd 100644
--- a/source/data/locales/sah.txt
+++ b/source/data/locales/sah.txt
@@ -163,7 +163,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sah_RU.txt b/source/data/locales/sah_RU.txt
index fa6eca2..86129e3 100644
--- a/source/data/locales/sah_RU.txt
+++ b/source/data/locales/sah_RU.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sah_RU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/saq.txt b/source/data/locales/saq.txt
index 325d2d4..846b0a9 100644
--- a/source/data/locales/saq.txt
+++ b/source/data/locales/saq.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/saq_KE.txt b/source/data/locales/saq_KE.txt
index 4a3bfbe..d5045a4 100644
--- a/source/data/locales/saq_KE.txt
+++ b/source/data/locales/saq_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 saq_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sbp.txt b/source/data/locales/sbp.txt
index 32d02bd..d24504c 100644
--- a/source/data/locales/sbp.txt
+++ b/source/data/locales/sbp.txt
@@ -17,7 +17,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sbp_TZ.txt b/source/data/locales/sbp_TZ.txt
index e2876e9..87bac8d 100644
--- a/source/data/locales/sbp_TZ.txt
+++ b/source/data/locales/sbp_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sbp_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/se.txt b/source/data/locales/se.txt
index d98cded..732fa2d 100644
--- a/source/data/locales/se.txt
+++ b/source/data/locales/se.txt
@@ -165,7 +165,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/se_FI.txt b/source/data/locales/se_FI.txt
index a279c8c..a826621 100644
--- a/source/data/locales/se_FI.txt
+++ b/source/data/locales/se_FI.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 se_FI{
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/se_NO.txt b/source/data/locales/se_NO.txt
index 633b51b..cc82d07 100644
--- a/source/data/locales/se_NO.txt
+++ b/source/data/locales/se_NO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 se_NO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/se_SE.txt b/source/data/locales/se_SE.txt
index 4ccc6ee..aa1b0e7 100644
--- a/source/data/locales/se_SE.txt
+++ b/source/data/locales/se_SE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 se_SE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/seh.txt b/source/data/locales/seh.txt
index d8892a0..b4f50d1 100644
--- a/source/data/locales/seh.txt
+++ b/source/data/locales/seh.txt
@@ -17,7 +17,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/seh_MZ.txt b/source/data/locales/seh_MZ.txt
index 666718c..08a83a1 100644
--- a/source/data/locales/seh_MZ.txt
+++ b/source/data/locales/seh_MZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 seh_MZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ses.txt b/source/data/locales/ses.txt
index 66d5728..522e488 100644
--- a/source/data/locales/ses.txt
+++ b/source/data/locales/ses.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ses_ML.txt b/source/data/locales/ses_ML.txt
index 6eafaaa..05ece0f 100644
--- a/source/data/locales/ses_ML.txt
+++ b/source/data/locales/ses_ML.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ses_ML{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sg.txt b/source/data/locales/sg.txt
index 51e633a..ce7952c 100644
--- a/source/data/locales/sg.txt
+++ b/source/data/locales/sg.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sg_CF.txt b/source/data/locales/sg_CF.txt
index 7e7b878..0cccdf3 100644
--- a/source/data/locales/sg_CF.txt
+++ b/source/data/locales/sg_CF.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sg_CF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/shi.txt b/source/data/locales/shi.txt
index 06d0876..9a07094 100644
--- a/source/data/locales/shi.txt
+++ b/source/data/locales/shi.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/shi_Latn.txt b/source/data/locales/shi_Latn.txt
index b2b5073..3f026b8 100644
--- a/source/data/locales/shi_Latn.txt
+++ b/source/data/locales/shi_Latn.txt
@@ -16,7 +16,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/shi_Latn_MA.txt b/source/data/locales/shi_Latn_MA.txt
index 47f0f6c..545342c 100644
--- a/source/data/locales/shi_Latn_MA.txt
+++ b/source/data/locales/shi_Latn_MA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Latn_MA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/shi_Tfng.txt b/source/data/locales/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/locales/shi_Tfng.txt
+++ b/source/data/locales/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/shi_Tfng_MA.txt b/source/data/locales/shi_Tfng_MA.txt
index db3b054..7c55162 100644
--- a/source/data/locales/shi_Tfng_MA.txt
+++ b/source/data/locales/shi_Tfng_MA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng_MA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/si.txt b/source/data/locales/si.txt
index bb81004..5a37c0b 100644
--- a/source/data/locales/si.txt
+++ b/source/data/locales/si.txt
@@ -206,10 +206,19 @@
                 timeSeparator{"."}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0} වන හැරවුම දකුණට"}
+            }
+            plural{
+                one{"{0} පොතක් ඇත. එය කියවීමි."}
+                other{"පොත් {0}ක් ඇත. ඒවා කියවීමි."}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/si_LK.txt b/source/data/locales/si_LK.txt
index 1e84cb5..fd62c4c 100644
--- a/source/data/locales/si_LK.txt
+++ b/source/data/locales/si_LK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 si_LK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sk.txt b/source/data/locales/sk.txt
index addc264..6531ff0 100644
--- a/source/data/locales/sk.txt
+++ b/source/data/locales/sk.txt
@@ -272,10 +272,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Na {0}. križovatke odbočte doprava."}
+            }
+            plural{
+                few{"{0} dni"}
+                many{"{0} dňa"}
+                one{"{0} deň"}
+                other{"{0} dní"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sk_SK.txt b/source/data/locales/sk_SK.txt
index 55c4db9..5e0310e 100644
--- a/source/data/locales/sk_SK.txt
+++ b/source/data/locales/sk_SK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sk_SK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sl.txt b/source/data/locales/sl.txt
index c87925e..b86bdff 100644
--- a/source/data/locales/sl.txt
+++ b/source/data/locales/sl.txt
@@ -262,7 +262,7 @@
                 group{"."}
                 infinity{"∞"}
                 list{";"}
-                minusSign{"–"}
+                minusSign{"−"}
                 nan{"NaN"}
                 perMille{"‰"}
                 percentSign{"%"}
@@ -271,10 +271,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"V {0}. križišču zavijte desno."}
+            }
+            plural{
+                few{"{0} ure"}
+                one{"{0} ura"}
+                other{"{0} ur"}
+                two{"{0} uri"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sl_SI.txt b/source/data/locales/sl_SI.txt
index fa08c41..34132e7 100644
--- a/source/data/locales/sl_SI.txt
+++ b/source/data/locales/sl_SI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sl_SI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/smn.txt b/source/data/locales/smn.txt
index c721fa9..47b1f15 100644
--- a/source/data/locales/smn.txt
+++ b/source/data/locales/smn.txt
@@ -97,7 +97,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/smn_FI.txt b/source/data/locales/smn_FI.txt
index 1cc99d4..f76c55c 100644
--- a/source/data/locales/smn_FI.txt
+++ b/source/data/locales/smn_FI.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 smn_FI{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sn.txt b/source/data/locales/sn.txt
index 2be66d4..1b06985 100644
--- a/source/data/locales/sn.txt
+++ b/source/data/locales/sn.txt
@@ -32,7 +32,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sn_ZW.txt b/source/data/locales/sn_ZW.txt
index fd0b7a4..341039b 100644
--- a/source/data/locales/sn_ZW.txt
+++ b/source/data/locales/sn_ZW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sn_ZW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/so.txt b/source/data/locales/so.txt
index 75184e0..8dbc917 100644
--- a/source/data/locales/so.txt
+++ b/source/data/locales/so.txt
@@ -10,7 +10,7 @@
             patternsLong{
                 decimalFormat{
                     1000{
-                        one{"Kun"}
+                        one{"0K"}
                         other{"0K"}
                     }
                     10000{
@@ -29,7 +29,7 @@
             }
         }
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/so_DJ.txt b/source/data/locales/so_DJ.txt
index f4b7eb2..3ee31fc 100644
--- a/source/data/locales/so_DJ.txt
+++ b/source/data/locales/so_DJ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so_DJ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/so_ET.txt b/source/data/locales/so_ET.txt
index 4ac580e..4f59952 100644
--- a/source/data/locales/so_ET.txt
+++ b/source/data/locales/so_ET.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so_ET{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/so_KE.txt b/source/data/locales/so_KE.txt
index f56d909..a35014f 100644
--- a/source/data/locales/so_KE.txt
+++ b/source/data/locales/so_KE.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/so_SO.txt b/source/data/locales/so_SO.txt
index 4b7d93b..c8d718d 100644
--- a/source/data/locales/so_SO.txt
+++ b/source/data/locales/so_SO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so_SO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sq.txt b/source/data/locales/sq.txt
index 2460e46..f3311cc 100644
--- a/source/data/locales/sq.txt
+++ b/source/data/locales/sq.txt
@@ -205,10 +205,21 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                many{"Merrni kthesën e {0}-t në të djathtë."}
+                one{"Merrni kthesën e {0}-rë në të djathtë."}
+                other{"Merrni kthesën e {0}-të në të djathtë."}
+            }
+            plural{
+                one{"{0} libër"}
+                other{"{0} libra"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sq_AL.txt b/source/data/locales/sq_AL.txt
index 55ea995..baafec9 100644
--- a/source/data/locales/sq_AL.txt
+++ b/source/data/locales/sq_AL.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sq_AL{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sq_MK.txt b/source/data/locales/sq_MK.txt
index 04d4008..f1b8374 100644
--- a/source/data/locales/sq_MK.txt
+++ b/source/data/locales/sq_MK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sq_MK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/sq_XK.txt b/source/data/locales/sq_XK.txt
index 4501d05..ffbc2a3 100644
--- a/source/data/locales/sq_XK.txt
+++ b/source/data/locales/sq_XK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sq_XK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/sr.txt b/source/data/locales/sr.txt
index 65511f4..31e7b08 100644
--- a/source/data/locales/sr.txt
+++ b/source/data/locales/sr.txt
@@ -230,13 +230,24 @@
                 percentSign{"%"}
                 plusSign{"+"}
                 superscriptingExponent{"×"}
-                timeSeparator{"."}
+                timeSeparator{":"}
+            }
+        }
+        minimalPairs{
+            ordinal{
+                other{"Скрените у {0}. десно."}
+            }
+            plural{
+                few{"{0} сата"}
+                many{"{0} сати"}
+                one{"{0} сат"}
+                other{"{0} сати"}
             }
         }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
     calendar{
         buddhist{
             eras{
@@ -311,8 +322,8 @@
                 GyMMMEd{"E, d. MMM y. G"}
                 GyMMMd{"d. MMM y. G"}
                 H{"HH"}
-                Hm{"HH.mm"}
-                Hms{"HH.mm.ss"}
+                Hm{"HH:mm"}
+                Hms{"HH:mm:ss"}
                 M{"L"}
                 MEd{"E, d.M."}
                 MMM{"LLL"}
@@ -325,9 +336,9 @@
                 Md{"d.M."}
                 d{"d"}
                 h{"hh a"}
-                hm{"hh.mm a"}
-                hms{"hh.mm.ss a"}
-                ms{"mm.ss"}
+                hm{"hh:mm a"}
+                hms{"hh:mm:ss a"}
+                ms{"mm:ss"}
                 y{"y. G"}
                 yyyy{"y. G"}
                 yyyyM{"M.y. GGGGG"}
@@ -347,12 +358,12 @@
                     H{"HH–HH"}
                 }
                 Hm{
-                    H{"HH.mm–HH.mm"}
-                    m{"HH.mm–HH.mm"}
+                    H{"HH:mm–HH:mm"}
+                    m{"HH:mm–HH:mm"}
                 }
                 Hmv{
-                    H{"HH.mm–HH.mm v"}
-                    m{"HH.mm–HH.mm v"}
+                    H{"HH:mm–HH:mm v"}
+                    m{"HH:mm–HH:mm v"}
                 }
                 Hv{
                     H{"HH–HH v"}
@@ -388,14 +399,14 @@
                     h{"h–h a"}
                 }
                 hm{
-                    a{"h.mm a – h.mm a"}
-                    h{"h.mm–h.mm a"}
-                    m{"h.mm–h.mm a"}
+                    a{"h:mm a – h:mm a"}
+                    h{"h:mm–h:mm a"}
+                    m{"h:mm–h:mm a"}
                 }
                 hmv{
-                    a{"h.mm a – h.mm a v"}
-                    h{"h.mm–h.mm a v"}
-                    m{"h.mm–h.mm a v"}
+                    a{"h:mm a – h:mm a v"}
+                    h{"h:mm–h:mm a v"}
+                    m{"h:mm–h:mm a v"}
                 }
                 hv{
                     a{"h a – h a v"}
@@ -682,12 +693,12 @@
                     H{"HH–HH"}
                 }
                 Hm{
-                    H{"HH.mm–HH.mm"}
-                    m{"HH.mm–HH.mm"}
+                    H{"HH:mm–HH:mm"}
+                    m{"HH:mm–HH:mm"}
                 }
                 Hmv{
-                    H{"HH.mm–HH.mm v"}
-                    m{"HH.mm–HH.mm v"}
+                    H{"HH:mm–HH:mm v"}
+                    m{"HH:mm–HH:mm v"}
                 }
                 Hv{
                     H{"HH–HH v"}
@@ -723,14 +734,14 @@
                     h{"h–h a"}
                 }
                 hm{
-                    a{"h.mm a – h.mm a"}
-                    h{"h.mm–h.mm a"}
-                    m{"h.mm–h.mm a"}
+                    a{"h:mm a – h:mm a"}
+                    h{"h:mm–h:mm a"}
+                    m{"h:mm–h:mm a"}
                 }
                 hmv{
-                    a{"h.mm a – h.mm a v"}
-                    h{"h.mm–h.mm a v"}
-                    m{"h.mm–h.mm a v"}
+                    a{"h:mm a – h:mm a v"}
+                    h{"h:mm–h:mm a v"}
+                    m{"h:mm–h:mm a v"}
                 }
                 hv{
                     a{"h a – h a v"}
diff --git a/source/data/locales/sr_Cyrl.txt b/source/data/locales/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/locales/sr_Cyrl.txt
+++ b/source/data/locales/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sr_Cyrl_BA.txt b/source/data/locales/sr_Cyrl_BA.txt
index 389b47c..7ea30d3 100644
--- a/source/data/locales/sr_Cyrl_BA.txt
+++ b/source/data/locales/sr_Cyrl_BA.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl_BA{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sr_Cyrl_ME.txt b/source/data/locales/sr_Cyrl_ME.txt
index 2f022a9..3dbe3a9 100644
--- a/source/data/locales/sr_Cyrl_ME.txt
+++ b/source/data/locales/sr_Cyrl_ME.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl_ME{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sr_Cyrl_RS.txt b/source/data/locales/sr_Cyrl_RS.txt
index 41c286c..7a8ea8f 100644
--- a/source/data/locales/sr_Cyrl_RS.txt
+++ b/source/data/locales/sr_Cyrl_RS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl_RS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sr_Cyrl_XK.txt b/source/data/locales/sr_Cyrl_XK.txt
index 853b229..8e7f7a5 100644
--- a/source/data/locales/sr_Cyrl_XK.txt
+++ b/source/data/locales/sr_Cyrl_XK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl_XK{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sr_Latn.txt b/source/data/locales/sr_Latn.txt
index c879c41..cca7c39 100644
--- a/source/data/locales/sr_Latn.txt
+++ b/source/data/locales/sr_Latn.txt
@@ -231,13 +231,24 @@
                 percentSign{"%"}
                 plusSign{"+"}
                 superscriptingExponent{"×"}
-                timeSeparator{"."}
+                timeSeparator{":"}
+            }
+        }
+        minimalPairs{
+            ordinal{
+                other{"Skrenite u {0}. desno."}
+            }
+            plural{
+                few{"{0} sata"}
+                many{"{0} sati"}
+                one{"{0} sat"}
+                other{"{0} sati"}
             }
         }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
     calendar{
         buddhist{
             eras{
@@ -312,8 +323,8 @@
                 GyMMMEd{"E, d. MMM y. G"}
                 GyMMMd{"d. MMM y. G"}
                 H{"HH"}
-                Hm{"HH.mm"}
-                Hms{"HH.mm.ss"}
+                Hm{"HH:mm"}
+                Hms{"HH:mm:ss"}
                 M{"L"}
                 MEd{"E, d.M."}
                 MMM{"LLL"}
@@ -326,9 +337,9 @@
                 Md{"d.M."}
                 d{"d"}
                 h{"hh a"}
-                hm{"hh.mm a"}
-                hms{"hh.mm.ss a"}
-                ms{"mm.ss"}
+                hm{"hh:mm a"}
+                hms{"hh:mm:ss a"}
+                ms{"mm:ss"}
                 y{"y. G"}
                 yyyy{"y. G"}
                 yyyyM{"M.y. GGGGG"}
@@ -348,12 +359,12 @@
                     H{"HH–HH"}
                 }
                 Hm{
-                    H{"HH.mm–HH.mm"}
-                    m{"HH.mm–HH.mm"}
+                    H{"HH:mm–HH:mm"}
+                    m{"HH:mm–HH:mm"}
                 }
                 Hmv{
-                    H{"HH.mm–HH.mm v"}
-                    m{"HH.mm–HH.mm v"}
+                    H{"HH:mm–HH:mm v"}
+                    m{"HH:mm–HH:mm v"}
                 }
                 Hv{
                     H{"HH–HH v"}
@@ -389,14 +400,14 @@
                     h{"h–h a"}
                 }
                 hm{
-                    a{"h.mm a – h.mm a"}
-                    h{"h.mm–h.mm a"}
-                    m{"h.mm–h.mm a"}
+                    a{"h:mm a – h:mm a"}
+                    h{"h:mm–h:mm a"}
+                    m{"h:mm–h:mm a"}
                 }
                 hmv{
-                    a{"h.mm a – h.mm a v"}
-                    h{"h.mm–h.mm a v"}
-                    m{"h.mm–h.mm a v"}
+                    a{"h:mm a – h:mm a v"}
+                    h{"h:mm–h:mm a v"}
+                    m{"h:mm–h:mm a v"}
                 }
                 hv{
                     a{"h a – h a v"}
@@ -683,12 +694,12 @@
                     H{"HH–HH"}
                 }
                 Hm{
-                    H{"HH.mm–HH.mm"}
-                    m{"HH.mm–HH.mm"}
+                    H{"HH:mm–HH:mm"}
+                    m{"HH:mm–HH:mm"}
                 }
                 Hmv{
-                    H{"HH.mm–HH.mm v"}
-                    m{"HH.mm–HH.mm v"}
+                    H{"HH:mm–HH:mm v"}
+                    m{"HH:mm–HH:mm v"}
                 }
                 Hv{
                     H{"HH–HH v"}
@@ -724,14 +735,14 @@
                     h{"h–h a"}
                 }
                 hm{
-                    a{"h.mm a – h.mm a"}
-                    h{"h.mm–h.mm a"}
-                    m{"h.mm–h.mm a"}
+                    a{"h:mm a – h:mm a"}
+                    h{"h:mm–h:mm a"}
+                    m{"h:mm–h:mm a"}
                 }
                 hmv{
-                    a{"h.mm a – h.mm a v"}
-                    h{"h.mm–h.mm a v"}
-                    m{"h.mm–h.mm a v"}
+                    a{"h:mm a – h:mm a v"}
+                    h{"h:mm–h:mm a v"}
+                    m{"h:mm–h:mm a v"}
                 }
                 hv{
                     a{"h a – h a v"}
diff --git a/source/data/locales/sr_Latn_BA.txt b/source/data/locales/sr_Latn_BA.txt
index 0dd51d8..8e1e8f4 100644
--- a/source/data/locales/sr_Latn_BA.txt
+++ b/source/data/locales/sr_Latn_BA.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn_BA{
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sr_Latn_ME.txt b/source/data/locales/sr_Latn_ME.txt
index 7dcd7d3..e362f7c 100644
--- a/source/data/locales/sr_Latn_ME.txt
+++ b/source/data/locales/sr_Latn_ME.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn_ME{
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sr_Latn_RS.txt b/source/data/locales/sr_Latn_RS.txt
index 9a062ac..c5b4bac 100644
--- a/source/data/locales/sr_Latn_RS.txt
+++ b/source/data/locales/sr_Latn_RS.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn_RS{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sr_Latn_XK.txt b/source/data/locales/sr_Latn_XK.txt
index 9206302..930f78a 100644
--- a/source/data/locales/sr_Latn_XK.txt
+++ b/source/data/locales/sr_Latn_XK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn_XK{
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             intervalFormats{
diff --git a/source/data/locales/sv.txt b/source/data/locales/sv.txt
index de009d7..7bc7bb6 100644
--- a/source/data/locales/sv.txt
+++ b/source/data/locales/sv.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv{
-    AuxExemplarCharacters{"[á â ã ā ç ë í î ï ī ñ ó ú ÿ ü æ ø]"}
+    AuxExemplarCharacters{"[á â ã ā ç è ë í î ï ī ñ ó ú ÿ ü æ ø]"}
     Ellipsis{
         final{"{0}…"}
         initial{"…{0}"}
@@ -216,10 +216,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Ta {0}:a svängen till höger"}
+                other{"Ta {0}:e svängen till höger"}
+            }
+            plural{
+                one{"om {0} dag"}
+                other{"om {0} dagar"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/sv_AX.txt b/source/data/locales/sv_AX.txt
index 4507268..3d5b2e8 100644
--- a/source/data/locales/sv_AX.txt
+++ b/source/data/locales/sv_AX.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv_AX{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sv_FI.txt b/source/data/locales/sv_FI.txt
index 3860131..834c2ef 100644
--- a/source/data/locales/sv_FI.txt
+++ b/source/data/locales/sv_FI.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv_FI{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/sv_SE.txt b/source/data/locales/sv_SE.txt
index 6261958..81d88fb 100644
--- a/source/data/locales/sv_SE.txt
+++ b/source/data/locales/sv_SE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv_SE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sw.txt b/source/data/locales/sw.txt
index ef7028f..be1ac5c 100644
--- a/source/data/locales/sw.txt
+++ b/source/data/locales/sw.txt
@@ -29,154 +29,154 @@
             patternsLong{
                 decimalFormat{
                     1000{
-                        one{"Elfu 0"}
-                        other{"Elfu 0"}
+                        one{"Elfu 0;Elfu -0"}
+                        other{"Elfu 0;Elfu -0"}
                     }
                     10000{
-                        one{"Elfu 00"}
-                        other{"Elfu 00"}
+                        one{"Elfu 00;Elfu -00"}
+                        other{"Elfu 00;Elfu -00"}
                     }
                     100000{
-                        one{"Elfu 000"}
-                        other{"Elfu 000"}
+                        one{"Elfu 000;Elfu -000"}
+                        other{"Elfu 000;Elfu -000"}
                     }
                     1000000{
-                        one{"Milioni 0"}
-                        other{"Milioni 0"}
+                        one{"Milioni 0;Milioni -0"}
+                        other{"Milioni 0;Milioni -0"}
                     }
                     10000000{
-                        one{"Milioni 00"}
-                        other{"Milioni 00"}
+                        one{"Milioni 00;Milioni -00"}
+                        other{"Milioni 00;Milioni -00"}
                     }
                     100000000{
-                        one{"Milioni 000"}
-                        other{"Milioni 000"}
+                        one{"Milioni 000;Milioni -000"}
+                        other{"Milioni 000;Milioni -000"}
                     }
                     1000000000{
-                        one{"Bilioni 0"}
-                        other{"Bilioni 0"}
+                        one{"Bilioni 0;Bilioni -0"}
+                        other{"Bilioni 0;Bilioni -0"}
                     }
                     10000000000{
-                        one{"Bilioni 00"}
-                        other{"Bilioni 00"}
+                        one{"Bilioni 00;Bilioni -00"}
+                        other{"Bilioni 00;Bilioni -00"}
                     }
                     100000000000{
-                        one{"Bilioni 000"}
-                        other{"Bilioni 000"}
+                        one{"Bilioni 000;Bilioni -000"}
+                        other{"Bilioni 000;Bilioni -000"}
                     }
                     1000000000000{
-                        one{"Trilioni 0"}
-                        other{"Trilioni 0"}
+                        one{"Trilioni 0;Trilioni -0"}
+                        other{"Trilioni 0;Trilioni -0"}
                     }
                     10000000000000{
-                        one{"Trilioni 00"}
-                        other{"Trilioni 00"}
+                        one{"Trilioni 00;Trilioni -00"}
+                        other{"Trilioni 00;Trilioni -00"}
                     }
                     100000000000000{
-                        one{"Trilioni 000"}
-                        other{"Trilioni 000"}
+                        one{"Trilioni 000;Trilioni -000"}
+                        other{"Trilioni 000;Trilioni -000"}
                     }
                 }
             }
             patternsShort{
                 currencyFormat{
                     1000{
-                        one{"¤elfu 0"}
-                        other{"¤elfu 0"}
+                        one{"¤elfu 0;¤elfu -0"}
+                        other{"¤elfu 0;¤elfu -0"}
                     }
                     10000{
-                        one{"¤elfu 00"}
-                        other{"¤elfu 00"}
+                        one{"¤elfu 00;¤elfu -00"}
+                        other{"¤elfu 00;¤elfu -00"}
                     }
                     100000{
-                        one{"¤laki 000"}
-                        other{"¤laki 000"}
+                        one{"¤laki 000;¤laki -000"}
+                        other{"¤laki 000;¤laki -000"}
                     }
                     1000000{
-                        one{"¤M0"}
-                        other{"¤M0"}
+                        one{"¤M0;¤M-0"}
+                        other{"¤M0;¤M-0"}
                     }
                     10000000{
-                        one{"¤M00"}
-                        other{"¤M00"}
+                        one{"¤M00;¤M-00"}
+                        other{"¤M00;¤M-00"}
                     }
                     100000000{
-                        one{"¤M000"}
-                        other{"¤M000"}
+                        one{"¤M000;¤M-000"}
+                        other{"¤M000;¤M-000"}
                     }
                     1000000000{
-                        one{"¤B0"}
-                        other{"¤B0"}
+                        one{"¤B0;¤B-0"}
+                        other{"¤B0;¤B-0"}
                     }
                     10000000000{
-                        one{"¤B00"}
-                        other{"¤B00"}
+                        one{"¤B00;¤B-00"}
+                        other{"¤B00;¤B-00"}
                     }
                     100000000000{
-                        one{"¤B000"}
-                        other{"¤B000"}
+                        one{"¤B000;¤B-000"}
+                        other{"¤B000;¤B-000"}
                     }
                     1000000000000{
-                        one{"¤T0"}
-                        other{"¤T0"}
+                        one{"¤T0;¤T-0"}
+                        other{"¤T0;¤T-0"}
                     }
                     10000000000000{
-                        one{"¤T00"}
-                        other{"¤T00"}
+                        one{"¤T00;¤T-00"}
+                        other{"¤T00;¤T-00"}
                     }
                     100000000000000{
-                        one{"¤T000"}
-                        other{"¤T000"}
+                        one{"¤T000;¤T-000"}
+                        other{"¤T000;¤T-000"}
                     }
                 }
                 decimalFormat{
                     1000{
-                        one{"elfu 0"}
-                        other{"elfu 0"}
+                        one{"elfu 0;elfu -0"}
+                        other{"elfu 0;elfu -0"}
                     }
                     10000{
-                        one{"elfu 00"}
-                        other{"elfu 00"}
+                        one{"elfu 00;elfu -00"}
+                        other{"elfu 00;elfu -00"}
                     }
                     100000{
-                        one{"elfu 000"}
-                        other{"elfu 000"}
+                        one{"elfu 000;elfu -000"}
+                        other{"elfu 000;elfu -000"}
                     }
                     1000000{
-                        one{"M0"}
-                        other{"M0"}
+                        one{"M0;M-0"}
+                        other{"M0;M-0"}
                     }
                     10000000{
-                        one{"M00"}
-                        other{"M00"}
+                        one{"M00;M-00"}
+                        other{"M00;M-00"}
                     }
                     100000000{
-                        one{"M000"}
-                        other{"M000"}
+                        one{"M000;M-000"}
+                        other{"M000;M-000"}
                     }
                     1000000000{
-                        one{"B0"}
-                        other{"B0"}
+                        one{"B0;B-0"}
+                        other{"B0;B-0"}
                     }
                     10000000000{
-                        one{"B00"}
-                        other{"B00"}
+                        one{"B00;B-00"}
+                        other{"B00;B-00"}
                     }
                     100000000000{
-                        one{"B000"}
-                        other{"B000"}
+                        one{"B000;B-000"}
+                        other{"B000;B-000"}
                     }
                     1000000000000{
-                        one{"T0"}
-                        other{"T0"}
+                        one{"T0;T-0"}
+                        other{"T0;T-0"}
                     }
                     10000000000000{
-                        one{"T00"}
-                        other{"T00"}
+                        one{"T00;T-00"}
+                        other{"T00;T-00"}
                     }
                     100000000000000{
-                        one{"T000"}
-                        other{"T000"}
+                        one{"T000;T-000"}
+                        other{"T000;T-000"}
                     }
                 }
             }
@@ -195,10 +195,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Chukua mpinduko wa {0} kulia."}
+            }
+            plural{
+                one{"siku {0} iliyopita"}
+                other{"siku {0} zilizopita"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sw_CD.txt b/source/data/locales/sw_CD.txt
index 2af774e..bf71eee 100644
--- a/source/data/locales/sw_CD.txt
+++ b/source/data/locales/sw_CD.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             availableFormats{
diff --git a/source/data/locales/sw_KE.txt b/source/data/locales/sw_KE.txt
index 28a9bc6..40dfc58 100644
--- a/source/data/locales/sw_KE.txt
+++ b/source/data/locales/sw_KE.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sw_KE{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/sw_TZ.txt b/source/data/locales/sw_TZ.txt
index f21eaf3..1422ca3 100644
--- a/source/data/locales/sw_TZ.txt
+++ b/source/data/locales/sw_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sw_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/sw_UG.txt b/source/data/locales/sw_UG.txt
index 811bbb2..e557327 100644
--- a/source/data/locales/sw_UG.txt
+++ b/source/data/locales/sw_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sw_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ta.txt b/source/data/locales/ta.txt
index 7287423..c380703 100644
--- a/source/data/locales/ta.txt
+++ b/source/data/locales/ta.txt
@@ -202,6 +202,15 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}வது வலது திருப்பத்தை எடு."}
+            }
+            plural{
+                one{"{0} நாள்"}
+                other{"{0} நாட்கள்"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"tamldec"}
         tamldec{
@@ -225,7 +234,7 @@
         }
         traditional{"taml"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
     calendar{
         chinese{
             DateTimePatterns{
diff --git a/source/data/locales/ta_IN.txt b/source/data/locales/ta_IN.txt
index 1e76487..a48c549 100644
--- a/source/data/locales/ta_IN.txt
+++ b/source/data/locales/ta_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ta_LK.txt b/source/data/locales/ta_LK.txt
index 1c47a61..ade1eaa 100644
--- a/source/data/locales/ta_LK.txt
+++ b/source/data/locales/ta_LK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta_LK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/ta_MY.txt b/source/data/locales/ta_MY.txt
index 22047ee..4079324 100644
--- a/source/data/locales/ta_MY.txt
+++ b/source/data/locales/ta_MY.txt
@@ -10,5 +10,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ta_SG.txt b/source/data/locales/ta_SG.txt
index 95b05ec..6cd57c6 100644
--- a/source/data/locales/ta_SG.txt
+++ b/source/data/locales/ta_SG.txt
@@ -10,5 +10,5 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/te.txt b/source/data/locales/te.txt
index 56be912..c63fd70 100644
--- a/source/data/locales/te.txt
+++ b/source/data/locales/te.txt
@@ -204,6 +204,15 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}వ కుడి మలుపు తీసుకోండి."}
+            }
+            plural{
+                one{"{0} రోజు"}
+                other{"{0} రోజులు"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"telu"}
         telu{
@@ -228,7 +237,7 @@
             }
         }
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/te_IN.txt b/source/data/locales/te_IN.txt
index 8d8ffbd..1ab2a86 100644
--- a/source/data/locales/te_IN.txt
+++ b/source/data/locales/te_IN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 te_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/teo.txt b/source/data/locales/teo.txt
index 78e00ac..3db1ed7 100644
--- a/source/data/locales/teo.txt
+++ b/source/data/locales/teo.txt
@@ -12,7 +12,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/teo_KE.txt b/source/data/locales/teo_KE.txt
index 3d48ab4..32b3926 100644
--- a/source/data/locales/teo_KE.txt
+++ b/source/data/locales/teo_KE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 teo_KE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/teo_UG.txt b/source/data/locales/teo_UG.txt
index a6730de..19c4cc7 100644
--- a/source/data/locales/teo_UG.txt
+++ b/source/data/locales/teo_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 teo_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/th.txt b/source/data/locales/th.txt
index 4ffeb0a..e08e2a7 100644
--- a/source/data/locales/th.txt
+++ b/source/data/locales/th.txt
@@ -78,78 +78,78 @@
             patternsShort{
                 currencyFormat{
                     1000{
-                        other{"¤0 พ'.'"}
+                        other{"¤0K"}
                     }
                     10000{
-                        other{"¤0 ม'.'"}
+                        other{"¤00K"}
                     }
                     100000{
-                        other{"¤0 ส'.'"}
+                        other{"¤000K"}
                     }
                     1000000{
-                        other{"¤0 ล'.'"}
+                        other{"¤0M"}
                     }
                     10000000{
-                        other{"¤00 ล'.'"}
+                        other{"¤00M"}
                     }
                     100000000{
-                        other{"¤000 ล'.'"}
+                        other{"¤000M"}
                     }
                     1000000000{
-                        other{"¤0 พ'.'ล'.'"}
+                        other{"¤0B"}
                     }
                     10000000000{
-                        other{"¤0 ม'.'ล'.'"}
+                        other{"¤00B"}
                     }
                     100000000000{
-                        other{"¤0 ส'.'ล'.'"}
+                        other{"¤000B"}
                     }
                     1000000000000{
-                        other{"¤0 ล'.'ล'.'"}
+                        other{"¤0T"}
                     }
                     10000000000000{
-                        other{"¤00 ล'.'ล'.'"}
+                        other{"¤00T"}
                     }
                     100000000000000{
-                        other{"¤000 ล'.'ล'.'"}
+                        other{"¤000T"}
                     }
                 }
                 decimalFormat{
                     1000{
-                        other{"0 พ'.'"}
+                        other{"0K"}
                     }
                     10000{
-                        other{"0 ม'.'"}
+                        other{"00K"}
                     }
                     100000{
-                        other{"0 ส'.'"}
+                        other{"000K"}
                     }
                     1000000{
-                        other{"0 ล'.'"}
+                        other{"0M"}
                     }
                     10000000{
-                        other{"00 ล'.'"}
+                        other{"00M"}
                     }
                     100000000{
-                        other{"000 ล'.'"}
+                        other{"000M"}
                     }
                     1000000000{
-                        other{"0 พ'.'ล'.'"}
+                        other{"0B"}
                     }
                     10000000000{
-                        other{"0 ม'.'ล'.'"}
+                        other{"00B"}
                     }
                     100000000000{
-                        other{"0 ส'.'ล'.'"}
+                        other{"000B"}
                     }
                     1000000000000{
-                        other{"0 ล'.'ล'.'"}
+                        other{"0T"}
                     }
                     10000000000000{
-                        other{"00 ล'.'ล'.'"}
+                        other{"00T"}
                     }
                     100000000000000{
-                        other{"000 ล'.'ล'.'"}
+                        other{"000T"}
                     }
                 }
             }
@@ -168,10 +168,18 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"เลี้ยวขวาที่ทางเลี้ยวที่ {0}"}
+            }
+            plural{
+                other{"{0} วัน"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"thai"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/th_TH.txt b/source/data/locales/th_TH.txt
index ba7a44f..d251ddf 100644
--- a/source/data/locales/th_TH.txt
+++ b/source/data/locales/th_TH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 th_TH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ti.txt b/source/data/locales/ti.txt
index 7afaf71..7f245e8 100644
--- a/source/data/locales/ti.txt
+++ b/source/data/locales/ti.txt
@@ -47,7 +47,7 @@
         native{"latn"}
         traditional{"ethi"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ti_ER.txt b/source/data/locales/ti_ER.txt
index 623ae0f..e6ad240 100644
--- a/source/data/locales/ti_ER.txt
+++ b/source/data/locales/ti_ER.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ti_ER{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/ti_ET.txt b/source/data/locales/ti_ET.txt
index 3486556..4cb7be8 100644
--- a/source/data/locales/ti_ET.txt
+++ b/source/data/locales/ti_ET.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ti_ET{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/to.txt b/source/data/locales/to.txt
index 78d40c6..bf52762 100644
--- a/source/data/locales/to.txt
+++ b/source/data/locales/to.txt
@@ -131,7 +131,7 @@
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/to_TO.txt b/source/data/locales/to_TO.txt
index ff267ed..97a16ae 100644
--- a/source/data/locales/to_TO.txt
+++ b/source/data/locales/to_TO.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 to_TO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/tr.txt b/source/data/locales/tr.txt
index 06d13ea..76c52b4 100644
--- a/source/data/locales/tr.txt
+++ b/source/data/locales/tr.txt
@@ -203,10 +203,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}. sağdan dönün."}
+            }
+            plural{
+                one{"Sepetinizde {0} X var. Bunu almak istiyor musunuz?"}
+                other{"Sepetinizde {0} X var. Bunları almak istiyor musunuz?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/tr_CY.txt b/source/data/locales/tr_CY.txt
index 54d7e7b..ad482b7 100644
--- a/source/data/locales/tr_CY.txt
+++ b/source/data/locales/tr_CY.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tr_CY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/source/data/locales/tr_TR.txt b/source/data/locales/tr_TR.txt
index 014c7d2..dd4f99f 100644
--- a/source/data/locales/tr_TR.txt
+++ b/source/data/locales/tr_TR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tr_TR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/twq.txt b/source/data/locales/twq.txt
index 056962a..e2fcc0f 100644
--- a/source/data/locales/twq.txt
+++ b/source/data/locales/twq.txt
@@ -16,7 +16,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/twq_NE.txt b/source/data/locales/twq_NE.txt
index 550fb61..a7c756d 100644
--- a/source/data/locales/twq_NE.txt
+++ b/source/data/locales/twq_NE.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 twq_NE{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/tzm.txt b/source/data/locales/tzm.txt
index 222a65c..49517c0 100644
--- a/source/data/locales/tzm.txt
+++ b/source/data/locales/tzm.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/tzm_MA.txt b/source/data/locales/tzm_MA.txt
index bafeffb..e503aa7 100644
--- a/source/data/locales/tzm_MA.txt
+++ b/source/data/locales/tzm_MA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tzm_MA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ug.txt b/source/data/locales/ug.txt
index 978f61f..9aa65bc 100644
--- a/source/data/locales/ug.txt
+++ b/source/data/locales/ug.txt
@@ -133,9 +133,15 @@
                 superscriptingExponent{"×"}
             }
         }
+        minimalPairs{
+            plural{
+                one{"{0}  كىتاب"}
+                other{"{0} بېلىق كۆردۈم ۋە ئۇنى يەۋەتتىم."}
+            }
+        }
         native{"arabext"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             eras{
diff --git a/source/data/locales/ug_CN.txt b/source/data/locales/ug_CN.txt
index 89014e0..ee7ab2c 100644
--- a/source/data/locales/ug_CN.txt
+++ b/source/data/locales/ug_CN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ug_CN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/uk.txt b/source/data/locales/uk.txt
index a0297a6..d2d2cec 100644
--- a/source/data/locales/uk.txt
+++ b/source/data/locales/uk.txt
@@ -15,7 +15,7 @@
     }
     ExemplarCharacters{"[а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ь ю я ʼ]"}
     ExemplarCharactersIndex{"[А Б В Г Ґ Д Е Є Ж З И І Ї Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ю Я]"}
-    ExemplarCharactersPunctuation{"[\\- – , ; \\: ! ? . ' \u0022 “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\\\ №]"}
+    ExemplarCharactersPunctuation{"[\\- – , ; \\: ! ? . ' ’ \u0022 “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\\\ №]"}
     MoreInformation{"?"}
     NumberElements{
         default{"latn"}
@@ -272,10 +272,22 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                few{"{0}-я дивізія, {0}-є коло"}
+                other{"{0}-а дивізія, {0}-е коло"}
+            }
+            plural{
+                few{"{0} дні"}
+                many{"{0} днів"}
+                one{"{0} день"}
+                other{"{0} дня"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
     calendar{
         coptic{
             monthNames{
diff --git a/source/data/locales/uk_UA.txt b/source/data/locales/uk_UA.txt
index b26a119..4e2add6 100644
--- a/source/data/locales/uk_UA.txt
+++ b/source/data/locales/uk_UA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uk_UA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/ur.txt b/source/data/locales/ur.txt
index 5fe1f56..d6b2e2d 100644
--- a/source/data/locales/ur.txt
+++ b/source/data/locales/ur.txt
@@ -227,10 +227,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"دایاں موڑ نمبر {0} مڑیں۔"}
+            }
+            plural{
+                one{"{0} گھنٹہ"}
+                other{"{0} گھنٹے"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"arabext"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         generic{
             DateTimePatterns{
@@ -276,7 +285,7 @@
                 yyyyMEd{"E، d/M/y G"}
                 yyyyMMM{"MMM y G"}
                 yyyyMMMEd{"E، d MMM، y G"}
-                yyyyMMMM{"G y MMMM"}
+                yyyyMMMM{"MMMM y G"}
                 yyyyMMMd{"d MMM، y G"}
                 yyyyMd{"d/M/y G"}
                 yyyyQQQ{"QQQ y G"}
@@ -448,7 +457,7 @@
                 yMEd{"E، d/M/y"}
                 yMMM{"MMM y"}
                 yMMMEd{"E، d MMM، y"}
-                yMMMM{"y MMMM"}
+                yMMMM{"MMMM y"}
                 yMMMd{"d MMM، y"}
                 yMd{"d/M/y"}
                 yQQQ{"QQQ y"}
diff --git a/source/data/locales/ur_IN.txt b/source/data/locales/ur_IN.txt
index 6e0bc29..866b0e8 100644
--- a/source/data/locales/ur_IN.txt
+++ b/source/data/locales/ur_IN.txt
@@ -14,7 +14,7 @@
             }
         }
     }
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/ur_PK.txt b/source/data/locales/ur_PK.txt
index bae3581..ecf1f7e 100644
--- a/source/data/locales/ur_PK.txt
+++ b/source/data/locales/ur_PK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ur_PK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/uz.txt b/source/data/locales/uz.txt
index c913e02..4ffea60 100644
--- a/source/data/locales/uz.txt
+++ b/source/data/locales/uz.txt
@@ -220,10 +220,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"{0}chi chorraxada oʼngga buriling."}
+            }
+            plural{
+                one{"Savatingizda {0}X bor. Uni sotib olasizmi?"}
+                other{"Savatingizda {0}X bor. Ularni sotib olasizmi?"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/uz_Arab.txt b/source/data/locales/uz_Arab.txt
index 153d21b..b156eec 100644
--- a/source/data/locales/uz_Arab.txt
+++ b/source/data/locales/uz_Arab.txt
@@ -27,7 +27,7 @@
         }
         native{"arabext"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             dayNames{
diff --git a/source/data/locales/uz_Arab_AF.txt b/source/data/locales/uz_Arab_AF.txt
index 29a0078..62deb71 100644
--- a/source/data/locales/uz_Arab_AF.txt
+++ b/source/data/locales/uz_Arab_AF.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Arab_AF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         default{"persian"}
     }
diff --git a/source/data/locales/uz_Cyrl.txt b/source/data/locales/uz_Cyrl.txt
index 0f5c3e0..73b24bc 100644
--- a/source/data/locales/uz_Cyrl.txt
+++ b/source/data/locales/uz_Cyrl.txt
@@ -164,7 +164,7 @@
             }
         }
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/uz_Cyrl_UZ.txt b/source/data/locales/uz_Cyrl_UZ.txt
index 4fd6eb3..7eeb177 100644
--- a/source/data/locales/uz_Cyrl_UZ.txt
+++ b/source/data/locales/uz_Cyrl_UZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Cyrl_UZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/uz_Latn.txt b/source/data/locales/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/locales/uz_Latn.txt
+++ b/source/data/locales/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/uz_Latn_UZ.txt b/source/data/locales/uz_Latn_UZ.txt
index ab597e4..871f1ee 100644
--- a/source/data/locales/uz_Latn_UZ.txt
+++ b/source/data/locales/uz_Latn_UZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn_UZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/vai.txt b/source/data/locales/vai.txt
index a247acc..0138d47 100644
--- a/source/data/locales/vai.txt
+++ b/source/data/locales/vai.txt
@@ -27,7 +27,7 @@
         }
         native{"vaii"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/vai_Latn.txt b/source/data/locales/vai_Latn.txt
index 1f344d0..69b21c9 100644
--- a/source/data/locales/vai_Latn.txt
+++ b/source/data/locales/vai_Latn.txt
@@ -22,7 +22,7 @@
         }
         native{"vaii"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/vai_Latn_LR.txt b/source/data/locales/vai_Latn_LR.txt
index 41c5285..f8a96ff 100644
--- a/source/data/locales/vai_Latn_LR.txt
+++ b/source/data/locales/vai_Latn_LR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Latn_LR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/vai_Vaii.txt b/source/data/locales/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/locales/vai_Vaii.txt
+++ b/source/data/locales/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/vai_Vaii_LR.txt b/source/data/locales/vai_Vaii_LR.txt
index 4e5f2cf..37fdc3c 100644
--- a/source/data/locales/vai_Vaii_LR.txt
+++ b/source/data/locales/vai_Vaii_LR.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii_LR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/vi.txt b/source/data/locales/vi.txt
index 0f73144..7f2c6b3 100644
--- a/source/data/locales/vi.txt
+++ b/source/data/locales/vi.txt
@@ -168,10 +168,20 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                one{"Rẽ vào lối rẽ thứ nhất bên phải."}
+                other{"Rẽ vào lối rẽ thứ {0} bên phải."}
+            }
+            plural{
+                one{"Rẽ vào lối rẽ thứ nhất bên phải."}
+                other{"Rẽ vào lối rẽ thứ {0} bên phải."}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/vi_VN.txt b/source/data/locales/vi_VN.txt
index 7a56449..d806d1a 100644
--- a/source/data/locales/vi_VN.txt
+++ b/source/data/locales/vi_VN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vi_VN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/vun.txt b/source/data/locales/vun.txt
index d67a7db..169d7bb 100644
--- a/source/data/locales/vun.txt
+++ b/source/data/locales/vun.txt
@@ -11,7 +11,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/vun_TZ.txt b/source/data/locales/vun_TZ.txt
index 6b88b32..ad0140d 100644
--- a/source/data/locales/vun_TZ.txt
+++ b/source/data/locales/vun_TZ.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vun_TZ{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/wae.txt b/source/data/locales/wae.txt
index a0d4d23..3d395f4 100644
--- a/source/data/locales/wae.txt
+++ b/source/data/locales/wae.txt
@@ -15,7 +15,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/wae_CH.txt b/source/data/locales/wae_CH.txt
index 0c5e093..13645e8 100644
--- a/source/data/locales/wae_CH.txt
+++ b/source/data/locales/wae_CH.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 wae_CH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/xog.txt b/source/data/locales/xog.txt
index 3bf7a31..e2340b2 100644
--- a/source/data/locales/xog.txt
+++ b/source/data/locales/xog.txt
@@ -10,7 +10,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/xog_UG.txt b/source/data/locales/xog_UG.txt
index 71b61d5..3a0bde7 100644
--- a/source/data/locales/xog_UG.txt
+++ b/source/data/locales/xog_UG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 xog_UG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/yav.txt b/source/data/locales/yav.txt
index d8207c8..e0073a9 100644
--- a/source/data/locales/yav.txt
+++ b/source/data/locales/yav.txt
@@ -21,7 +21,7 @@
             }
         }
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/yav_CM.txt b/source/data/locales/yav_CM.txt
index 33e6316..2f4b9dc 100644
--- a/source/data/locales/yav_CM.txt
+++ b/source/data/locales/yav_CM.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yav_CM{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/yi.txt b/source/data/locales/yi.txt
index 85feed5..135d1e6 100644
--- a/source/data/locales/yi.txt
+++ b/source/data/locales/yi.txt
@@ -28,7 +28,7 @@
         native{"latn"}
         traditional{"hebr"}
     }
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/yi_001.txt b/source/data/locales/yi_001.txt
index 60e0dbe..3a0addf 100644
--- a/source/data/locales/yi_001.txt
+++ b/source/data/locales/yi_001.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yi_001{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/yo.txt b/source/data/locales/yo.txt
index c4e47c3..dec27ad 100644
--- a/source/data/locales/yo.txt
+++ b/source/data/locales/yo.txt
@@ -35,7 +35,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/yo_BJ.txt b/source/data/locales/yo_BJ.txt
index 4d05f1d..d6da52e 100644
--- a/source/data/locales/yo_BJ.txt
+++ b/source/data/locales/yo_BJ.txt
@@ -5,7 +5,7 @@
         "[a á à b d e é è ɛ {ɛ\u0301} {ɛ\u0300} f g {gb} h i í ì j k l m n o ó ò ɔ {ɔ"
         "\u0301} {ɔ\u0300} p r s {sh} t u ú ù w y]"
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/source/data/locales/yo_NG.txt b/source/data/locales/yo_NG.txt
index 9bc854f..8ca4a58 100644
--- a/source/data/locales/yo_NG.txt
+++ b/source/data/locales/yo_NG.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yo_NG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/yue.txt b/source/data/locales/yue.txt
index 56d6a72..793aee6 100644
--- a/source/data/locales/yue.txt
+++ b/source/data/locales/yue.txt
@@ -247,11 +247,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"第 {0} 本書"}
+            }
+            plural{
+                other{"{0} 本書"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"hanidec"}
         traditional{"hant"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/yue_HK.txt b/source/data/locales/yue_HK.txt
index b414295..cd0605e 100644
--- a/source/data/locales/yue_HK.txt
+++ b/source/data/locales/yue_HK.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yue_HK{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zgh.txt b/source/data/locales/zgh.txt
index 72a2528..b46b4ba 100644
--- a/source/data/locales/zgh.txt
+++ b/source/data/locales/zgh.txt
@@ -31,7 +31,7 @@
         }
         minimumGroupingDigits{"1"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/zgh_MA.txt b/source/data/locales/zgh_MA.txt
index bf8fc92..d6598a6 100644
--- a/source/data/locales/zgh_MA.txt
+++ b/source/data/locales/zgh_MA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zgh_MA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zh.txt b/source/data/locales/zh.txt
index ee48ec1..17a3c7d 100644
--- a/source/data/locales/zh.txt
+++ b/source/data/locales/zh.txt
@@ -1,7 +1,13 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh{
-    AuxExemplarCharacters{"[仂 侣 傈 傣 僳 卑 卞 厘 吕 坝 堤 奎 屿 巽 撤 楔 楠 滕 瑚 甫 盲 碑 禄 粟 脚 艮 谬 钯 铂 锑 镑 魁]"}
+    AuxExemplarCharacters{
+        "[仂 侣 傈 傣 僳 卑 卞 厘 吕 坝 堤 奎 屿 巽 撤 楔 楠 滕 瑚 甫 盲 碑 禄 粟 脚 艮 谬 钯 铂 锑 镑 魁 乒 乓 仓 伞 冥 凉"
+        " 刨 匕 厦 厨 呣 唇 啤 啮 喱 嗅 噘 噢 墟 妆 婴 媚 宅 寺 尬 尴 屑 巾 弓 彗 惊 戟 扔 扰 扳 抛 挂 捂 摇 撅 杆 杖 柜 柱"
+        " 栗 栽 桶 棍 棕 棺 榈 槟 橙 洒 浆 涌 淇 滚 滩 灾 烛 烟 焰 煎 犬 猫 瓢 皱 盆 盔 眨 眯 瞌 矿 祈 祭 祷 稻 竿 笼 筒 篷"
+        " 粮 纠 纬 缆 缎 耸 舔 舵 艇 芽 苜 苞 菇 菱 葫 葵 蒸 蓿 蔽 薯 蘑 蚂 蛛 蜗 蜘 蜡 蝎 蝴 螃 裹 谍 豚 账 跤 踪 躬 轴 辐"
+        " 迹 郁 鄙 酢 钉 钥 钮 铅 铛 锄 锚 锤 闺 阱 隧 雕 霾 靴 靶 鞠 颠 馏 驼 骆 髦 鲤 鲸 鳄 鸽]"
+    }
     Ellipsis{
         final{"{0}…"}
         initial{"…{0}"}
@@ -146,7 +152,7 @@
             patternsLong{
                 decimalFormat{
                     1000{
-                        other{"0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"0万"}
@@ -186,7 +192,7 @@
             patternsShort{
                 currencyFormat{
                     1000{
-                        other{"¤0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"¤0万"}
@@ -224,7 +230,7 @@
                 }
                 decimalFormat{
                     1000{
-                        other{"0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"0万"}
@@ -276,11 +282,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"在第 {0} 个路口右转。"}
+            }
+            plural{
+                other{"{0} 天"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"hanidec"}
         traditional{"hans"}
     }
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/zh_Hans.txt b/source/data/locales/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/locales/zh_Hans.txt
+++ b/source/data/locales/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zh_Hans_CN.txt b/source/data/locales/zh_Hans_CN.txt
index c7a96ec..c5fe732 100644
--- a/source/data/locales/zh_Hans_CN.txt
+++ b/source/data/locales/zh_Hans_CN.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_CN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zh_Hans_HK.txt b/source/data/locales/zh_Hans_HK.txt
index 7535762..bcf0e93 100644
--- a/source/data/locales/zh_Hans_HK.txt
+++ b/source/data/locales/zh_Hans_HK.txt
@@ -31,7 +31,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/zh_Hans_MO.txt b/source/data/locales/zh_Hans_MO.txt
index 107d68b..7dd9f20 100644
--- a/source/data/locales/zh_Hans_MO.txt
+++ b/source/data/locales/zh_Hans_MO.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_MO{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         chinese{
             DateTimePatterns{
diff --git a/source/data/locales/zh_Hans_SG.txt b/source/data/locales/zh_Hans_SG.txt
index 442bc7d..17fe915 100644
--- a/source/data/locales/zh_Hans_SG.txt
+++ b/source/data/locales/zh_Hans_SG.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_SG{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/zh_Hant.txt b/source/data/locales/zh_Hant.txt
index dc2400d..cd52cf3 100644
--- a/source/data/locales/zh_Hant.txt
+++ b/source/data/locales/zh_Hant.txt
@@ -4,7 +4,9 @@
     %%Parent{"root"}
     AuxExemplarCharacters{
         "[乍 仂 伏 佐 侶 僳 兆 兌 兹 别 券 勳 卑 卞 占 叶 堤 墎 壤 奥 孜 峇 嶼 巽 栗 楔 涅 渾 澎 燦 狄 琳 瑚 甫 碑 礁 芒 苗"
-        " 茨 蓬 蚩 蜀 裘 謬 酋 隴]"
+        " 茨 蓬 蚩 蜀 裘 謬 酋 隴 乳 划 匕 匙 匣 叉 吻 嘟 噘 妖 巾 帆 廁 廚 弋 弓 懸 戟 扳 捂 摔 暈 框 桶 桿 櫃 煎 燭 牡 皺"
+        " 盒 眨 眩 筒 簍 糰 紋 紗 纏 纜 羯 聳 肖 艇 虹 蛛 蜘 蝴 蝸 蠟 裙 豚 躬 釘 鈔 鈕 鉛 鎚 鎬 鐺 鑰 鑽 霄 鞠 骰 骷 髏 鯉"
+        " 鳶]"
     }
     Ellipsis{
         final{"{0}…"}
@@ -119,7 +121,7 @@
             patternsLong{
                 decimalFormat{
                     1000{
-                        other{"0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"0萬"}
@@ -159,7 +161,7 @@
             patternsShort{
                 currencyFormat{
                     1000{
-                        other{"¤0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"¤0萬"}
@@ -197,7 +199,7 @@
                 }
                 decimalFormat{
                     1000{
-                        other{"0千"}
+                        other{"0"}
                     }
                     10000{
                         other{"0萬"}
@@ -249,10 +251,18 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"在第 {0} 個路口右轉。"}
+            }
+            plural{
+                other{"{0} 日"}
+            }
+        }
         native{"hanidec"}
         traditional{"hant"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/source/data/locales/zh_Hant_HK.txt b/source/data/locales/zh_Hant_HK.txt
index d804c08..633823c 100644
--- a/source/data/locales/zh_Hant_HK.txt
+++ b/source/data/locales/zh_Hant_HK.txt
@@ -91,7 +91,7 @@
             }
         }
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     calendar{
         buddhist{
             availableFormats{
diff --git a/source/data/locales/zh_Hant_MO.txt b/source/data/locales/zh_Hant_MO.txt
index 1814082..78fdee5 100644
--- a/source/data/locales/zh_Hant_MO.txt
+++ b/source/data/locales/zh_Hant_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_MO{
     %%Parent{"zh_Hant_HK"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zh_Hant_TW.txt b/source/data/locales/zh_Hant_TW.txt
index 0d57f50..dbc6d3a 100644
--- a/source/data/locales/zh_Hant_TW.txt
+++ b/source/data/locales/zh_Hant_TW.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_TW{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/locales/zu.txt b/source/data/locales/zu.txt
index 97d218e..6812d8e 100644
--- a/source/data/locales/zu.txt
+++ b/source/data/locales/zu.txt
@@ -203,10 +203,19 @@
                 timeSeparator{":"}
             }
         }
+        minimalPairs{
+            ordinal{
+                other{"Thatha indlela ejikela kwesokudla engu-{0}"}
+            }
+            plural{
+                one{"{0} usuku"}
+                other{"{0} izinsuku"}
+            }
+        }
         minimumGroupingDigits{"1"}
         native{"latn"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
     calendar{
         generic{
             DateTimePatterns{
diff --git a/source/data/locales/zu_ZA.txt b/source/data/locales/zu_ZA.txt
index f66c474..350b1f8 100644
--- a/source/data/locales/zu_ZA.txt
+++ b/source/data/locales/zu_ZA.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zu_ZA{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/makedata.mak b/source/data/makedata.mak
index 44adaff..246229c 100644
--- a/source/data/makedata.mak
+++ b/source/data/makedata.mak
@@ -12,8 +12,11 @@
 
 ##############################################################################
 # Keep the following in sync with the version - see common/unicode/uvernum.h
-U_ICUDATA_NAME=icudt58
+U_ICUDATA_NAME=icudt59
 ##############################################################################
+!IF "$(UWP)" == "UWP"
+U_ICUDATA_NAME=icudt
+!ENDIF
 U_ICUDATA_ENDIAN_SUFFIX=l
 UNICODE_VERSION=9.0
 ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
@@ -119,10 +122,14 @@
 #      This is the same place that all of the other ICU DLLs go (the code-containing DLLs)
 #      The lib file for the data DLL goes in $(DLL_OUTPUT)/../lib/
 #
-!IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
-DLL_OUTPUT=$(ICUP)\bin64
+!IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
+DLL_OUTPUT=$(ICUP)\binARM$(UWP)
+!ELSE IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
+DLL_OUTPUT=$(ICUP)\bin64$(UWP)
+!ELSE IF "$(UWP)" == "UWP"
+DLL_OUTPUT=$(ICUP)\bin32$(UWP)
 !ELSE
-DLL_OUTPUT=$(ICUP)\bin
+DLL_OUTPUT=$(ICUP)\bin$(UWP)
 !ENDIF
 
 #
@@ -147,14 +154,28 @@
 #       Directory under which all of the ICU data building tools live.
 #
 ICUTOOLS=$(ICUP)\source\tools
+!MESSAGE ICU tools path is $(ICUTOOLS)
+
+#
+#  TOOLS CFG PATH
+#      ARM needs to use one of the other tools, so make sure to get an usable cfg path
+#      Since tools, particularly pkggen, have architecture built-in, we made x64 on
+#      Windows be machine-independent and use those tools.
+#
+CFGTOOLS=$(CFG)
+!IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
+CFGTOOLS=x64\Release
+!ENDIF
+!MESSAGE ICU tools CFG subpath is $(CFGTOOLS)
 
 # The current ICU tools need to be in the path first.
-!IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
-PATH = $(ICUP)\bin64;$(PATH)
-ICUPBIN=$(ICUP)\bin64
-!ELSE
+# x86 uses x86, x64 and arm use x64
+!IF "$(CFG)" == "x86\Release" || "$(CFG)" == "x86\Debug"
 PATH = $(ICUP)\bin;$(PATH)
 ICUPBIN=$(ICUP)\bin
+!ELSE
+PATH = $(ICUP)\bin64;$(PATH)
+ICUPBIN=$(ICUP)\bin64
 !ENDIF
 
 
@@ -492,6 +513,12 @@
 # Common defines for both ways of building ICU's data library.
 COMMON_ICUDATA_DEPENDENCIES="$(ICUPBIN)\pkgdata.exe" "$(ICUTMP)\icudata.res" "$(ICUP)\source\stubdata\stubdatabuilt.txt"
 COMMON_ICUDATA_ARGUMENTS=-f -e $(U_ICUDATA_NAME) -v $(ICU_PACKAGE_MODE) -c -p $(ICUPKG) -T "$(ICUTMP)" -L $(U_ICUDATA_NAME) -d "$(ICUBLD_PKG)" -s .
+!IF "$(UWP)" == "UWP"
+COMMON_ICUDATA_ARGUMENTS=$(COMMON_ICUDATA_ARGUMENTS) -u
+!IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
+COMMON_ICUDATA_ARGUMENTS=$(COMMON_ICUDATA_ARGUMENTS) -a
+!ENDIF
+!ENDIF
 
 #############################################################################
 #
@@ -505,6 +532,11 @@
 ALL : GODATA "$(ICU_LIB_TARGET)"
 	@echo All targets are up to date
 
+!IF "$(UWP)" == "UWP"
+	@if not exist "$(ICUMAKE)\..\..\commondata\" mkdir "$(ICUMAKE)\..\..\commondata\"
+    copy "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat" "$(ICUMAKE)\..\..\commondata\"
+!ENDIF
+
 # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu)
 # are hardcoded in the common DLL and therefore not included in the data package any more.
 # They are not built by default but need to be built for ICU4J data and for getting the .c source files
@@ -556,9 +588,9 @@
 DEBUGUTILITIESDATA_SRC=DebugUtilitiesData.java
 
 # Build DebugUtilitiesData.java
-"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
+"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)" : {"$(ICUTOOLS)\gentest\$(CFGTOOLS)"}gentest.exe
 	if not exist "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)" mkdir "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
-	"$(ICUTOOLS)\gentest\$(CFG)\gentest" -j -d"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
+	"$(ICUTOOLS)\gentest\$(CFGTOOLS)\gentest" -j -d"$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)"
 
 ICU4J_DATA="$(ICUOUT)\icu4j\icudata.jar" "$(ICUOUT)\icu4j\testdata.jar"  "$(ICUOUT)\icu4j\src\$(DEBUGUTILITIESDATA_DIR)\$(DEBUGUTILITIESDATA_SRC)"
 
@@ -602,10 +634,10 @@
 #
 # testdata - nmake will invoke pkgdata, which will create testdata.dat
 #
-"$(TESTDATAOUT)\testdata.dat": "$(TESTDATA)\*" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu" $(TRANSLIT_RES_FILES) $(MISC_FILES) $(RB_FILES) {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe
+"$(TESTDATAOUT)\testdata.dat": "$(TESTDATA)\*" "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu" $(TRANSLIT_RES_FILES) $(MISC_FILES) $(RB_FILES) {"$(ICUTOOLS)\genrb\$(CFGTOOLS)"}genrb.exe
 	@cd "$(TESTDATA)"
 	@echo building testdata...
-	nmake /nologo /f "$(TESTDATA)\testdata.mak" TESTDATA=. ICUTOOLS="$(ICUTOOLS)" ICUPBIN="$(ICUPBIN)" ICUP="$(ICUP)" CFG=$(CFG) TESTDATAOUT="$(TESTDATAOUT)" TESTDATABLD="$(TESTDATABLD)"
+	nmake /nologo /f "$(TESTDATA)\testdata.mak" TESTDATA=. ICUTOOLS="$(ICUTOOLS)" ICUPBIN="$(ICUPBIN)" ICUP="$(ICUP)" CFG=$(CFGTOOLS) TESTDATAOUT="$(TESTDATAOUT)" TESTDATABLD="$(TESTDATABLD)"
 
 #invoke pkgdata for ICU common data
 #  pkgdata will drop all output files (.dat, .dll, .lib) into the target (ICUBLD_PKG) directory.
@@ -670,6 +702,7 @@
 )
 <<KEEP
 	-@erase "$(ICU_LIB_TARGET)"
+    @if not exist "$(DLL_OUTPUT)" mkdir "$(DLL_OUTPUT)"
 	copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
 	-@erase "$(U_ICUDATA_NAME).dll"
 	copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
@@ -758,40 +791,40 @@
 # RBBI .brk file generation.
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\rules}.txt.brk:
 	@echo Creating $@
-	@"$(ICUTOOLS)\genbrk\$(CFG)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
+	@"$(ICUTOOLS)\genbrk\$(CFGTOOLS)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
 
 #RBBI .dict file generation.
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries}.txt.dict:
     @echo Creating $@
-    @"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --uchars $<  "$(ICUBLD_PKG)\$@"
+    @"$(ICUTOOLS)\gendict\$(CFGTOOLS)\gendict" -c --uchars $<  "$(ICUBLD_PKG)\$@"
 
 $(ICUBRK)\thaidict.dict:
 	@echo Creating $(ICUBRK)\thaidict.dict
-	@"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x0e00 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\thaidict.txt "$(ICUBLD_PKG)\$(ICUBRK)\thaidict.dict"
+	@"$(ICUTOOLS)\gendict\$(CFGTOOLS)\gendict" -c --bytes --transform offset-0x0e00 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\thaidict.txt "$(ICUBLD_PKG)\$(ICUBRK)\thaidict.dict"
 
 $(ICUBRK)\laodict.dict:
 	@echo Creating $(ICUBRK)\laodict.dict
-	@"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x0e80 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\laodict.txt "$(ICUBLD_PKG)\$(ICUBRK)\laodict.dict"
+	@"$(ICUTOOLS)\gendict\$(CFGTOOLS)\gendict" -c --bytes --transform offset-0x0e80 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\laodict.txt "$(ICUBLD_PKG)\$(ICUBRK)\laodict.dict"
 
 $(ICUBRK)\burmesedict.dict:
 	@echo Creating $(ICUBRK)\burmesedict.dict
-	@"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x1000 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\burmesedict.txt "$(ICUBLD_PKG)\$(ICUBRK)\burmesedict.dict"
+	@"$(ICUTOOLS)\gendict\$(CFGTOOLS)\gendict" -c --bytes --transform offset-0x1000 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\burmesedict.txt "$(ICUBLD_PKG)\$(ICUBRK)\burmesedict.dict"
 
 $(ICUBRK)\khmerdict.dict:
 	@echo Creating $(ICUBRK)\khmerdict.dict
-	@"$(ICUTOOLS)\gendict\$(CFG)\gendict" -c --bytes --transform offset-0x1780 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\khmerdict.txt "$(ICUBLD_PKG)\$(ICUBRK)\khmerdict.dict"
+	@"$(ICUTOOLS)\gendict\$(CFGTOOLS)\gendict" -c --bytes --transform offset-0x1780 $(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)\dictionaries\khmerdict.txt "$(ICUBLD_PKG)\$(ICUBRK)\khmerdict.dict"
 
 !IFNDEF ICUDATA_SOURCE_ARCHIVE
 # Rule for creating converters
 $(CNV_FILES): $(UCM_SOURCE)
 	@echo Building Charset Conversion table $(@B)
-	@"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
+	@"$(ICUTOOLS)\makeconv\$(CFGTOOLS)\makeconv" -c -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
 !ENDIF
 
 !IFDEF BUILD_SPECIAL_CNV_FILES
 $(CNV_FILES_SPECIAL): $(UCM_SOURCE_SPECIAL)
 	@echo Building Special Charset Conversion table $(@B)
-	@"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -c --ignore-siso-check -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
+	@"$(ICUTOOLS)\makeconv\$(CFGTOOLS)\makeconv" -c --ignore-siso-check -d"$(ICUBLD_PKG)" $(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)\$(@B).ucm
 !ENDIF
 
 # Batch inference rule for creating miscellaneous resource files
@@ -801,12 +834,12 @@
 #       way, remove the -q.
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUMISC2)}.txt.res::
 	@echo Making Miscellaneous Resource Bundle files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -q -d"$(ICUBLD_PKG)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -q -d"$(ICUBLD_PKG)" $<
 
 # Inference rule for creating resource bundle files
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC)}.txt.res::
 	@echo Making Locale Resource Bundle files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC) -k -d"$(ICUBLD_PKG)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\$(ICULOC) -k -d"$(ICUBLD_PKG)" $<
 
 # copy the locales/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -823,12 +856,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)" .\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)" .\res_index.txt
 	
 
 {$(ICUSRCDATA_RELATIVE_PATH)\curr}.txt{curr}.res::
 	@echo Making currency display name files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\curr -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\curr" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\curr -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\curr" $<
 
 # copy the curr/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -845,12 +878,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\curr" .\curr\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\curr" .\curr\res_index.txt
 
 
 {$(ICUSRCDATA_RELATIVE_PATH)\lang}.txt{lang}.res::
 	@echo Making language/script display name files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\lang -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\lang" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\lang -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\lang" $<
 
 # copy the lang/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -867,12 +900,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\lang" .\lang\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\lang" .\lang\res_index.txt
 
 
 {$(ICUSRCDATA_RELATIVE_PATH)\region}.txt{region}.res::
 	@echo Making region display name files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\region -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\region" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\region -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\region" $<
 
 # copy the region/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -889,12 +922,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\region" .\region\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\region" .\region\res_index.txt
 
 
 {$(ICUSRCDATA_RELATIVE_PATH)\zone}.txt{zone}.res::
 	@echo Making time zone display name files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\zone -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\zone" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\zone -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\zone" $<
 
 # copy the zone/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -911,12 +944,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\zone" .\zone\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\zone" .\zone\res_index.txt
 
 
 {$(ICUSRCDATA_RELATIVE_PATH)\unit}.txt{unit}.res::
 	@echo Making unit display name files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\unit -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\unit" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" --usePoolBundle $(ICUSRCDATA_RELATIVE_PATH)\unit -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\unit" $<
 
 # copy the unit/pool.res file from the source folder to the build output folder
 # and swap it to native endianness
@@ -933,12 +966,12 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\unit" .\unit\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\unit" .\unit\res_index.txt
 
 
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUCOL)}.txt{$(ICUCOL)}.res::
 	@echo Making Collation files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUCOL)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUCOL)" $<
 
 $(ICUCOL)\res_index.res:
 	@echo Generating <<$(ICUCOL)\res_index.txt
@@ -950,11 +983,11 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUCOL)" .\$(ICUCOL)\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUCOL)" .\$(ICUCOL)\res_index.txt
 
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICURBNF)}.txt{$(ICURBNF)}.res::
 	@echo Making RBNF files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICURBNF)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICURBNF)" $<
 
 $(ICURBNF)\res_index.res:
 	@echo Generating <<$(ICURBNF)\res_index.txt
@@ -966,7 +999,7 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
 
 $(ICUBRK)\res_index.res:
 	@echo Generating <<$(ICUBRK)\res_index.txt
@@ -978,15 +1011,15 @@
     }
 }
 <<KEEP
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
 
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt{$(ICUBRK)}.res::
 	@echo Making Break Iterator Resource files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
 
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUTRNS)}.txt{$(ICUTRNS)}.res::
 	@echo Making Transliterator files
-	@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
+	@"$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
 
 
 # DLL version information
@@ -996,9 +1029,9 @@
 	@rc.exe /i "..\..\..\..\common" /r /fo $@ $**
 
 # Targets for converters
-"$(ICUBLD_PKG)\cnvalias.icu" : {"$(ICUSRCDATA)\$(ICUUCM)"}\convrtrs.txt "$(ICUTOOLS)\gencnval\$(CFG)\gencnval.exe"
+"$(ICUBLD_PKG)\cnvalias.icu" : {"$(ICUSRCDATA)\$(ICUUCM)"}\convrtrs.txt "$(ICUTOOLS)\gencnval\$(CFGTOOLS)\gencnval.exe"
 	@echo Creating data file for Converter Aliases
-	@"$(ICUTOOLS)\gencnval\$(CFG)\gencnval" -d "$(ICUBLD_PKG)" "$(ICUSRCDATA)\$(ICUUCM)\convrtrs.txt"
+	@"$(ICUTOOLS)\gencnval\$(CFGTOOLS)\gencnval" -d "$(ICUBLD_PKG)" "$(ICUSRCDATA)\$(ICUUCM)\convrtrs.txt"
 
 # Targets for prebuilt Unicode data
 "$(ICUBLD_PKG)\pnames.icu": $(ICUSRCDATA_RELATIVE_PATH)\in\pnames.icu
@@ -1034,32 +1067,32 @@
 # Stringprep .spp file generation.
 {$(ICUSRCDATA_RELATIVE_PATH)\$(ICUSPREP)}.txt.spp:
 	@echo Creating $@
-	@"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s $(<D) -d "$(ICUBLD_PKG)" -b $(@B) -m "$(ICUUNIDATA)" -u 3.2.0 $(<F)
+	@"$(ICUTOOLS)\gensprep\$(CFGTOOLS)\gensprep" -s $(<D) -d "$(ICUBLD_PKG)" -b $(@B) -m "$(ICUUNIDATA)" -u 3.2.0 $(<F)
 
 # Confusables .cfu file generation
 #     Can't use an inference rule because two .txt source files combine to produce a single .cfu output file
-"$(ICUBLD_PKG)\confusables.cfu": "$(ICUUNIDATA)\confusables.txt" "$(ICUUNIDATA)\confusablesWholeScript.txt" "$(ICUTOOLS)\gencfu\$(CFG)\gencfu.exe"
+"$(ICUBLD_PKG)\confusables.cfu": "$(ICUUNIDATA)\confusables.txt" "$(ICUUNIDATA)\confusablesWholeScript.txt" "$(ICUTOOLS)\gencfu\$(CFGTOOLS)\gencfu.exe"
 	@echo Creating $@
-	@"$(ICUTOOLS)\gencfu\$(CFG)\gencfu" -c -r "$(ICUUNIDATA)\confusables.txt" -w "$(ICUUNIDATA)\confusablesWholeScript.txt" -o $@ -i "$(ICUBLD_PKG)"
+	@"$(ICUTOOLS)\gencfu\$(CFGTOOLS)\gencfu" -c -r "$(ICUUNIDATA)\confusables.txt" -w "$(ICUUNIDATA)\confusablesWholeScript.txt" -o $@ -i "$(ICUBLD_PKG)"
 
 !IFDEF ICUDATA_ARCHIVE
-"$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFG)\icupkg.exe"
-	"$(ICUTOOLS)\icupkg\$(CFG)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
+"$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFGTOOLS)\icupkg.exe"
+	"$(ICUTOOLS)\icupkg\$(CFGTOOLS)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
 !ENDIF
 
 # Dependencies on the tools for the batch inference rules
 
 !IFNDEF ICUDATA_SOURCE_ARCHIVE
-$(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
+$(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFGTOOLS)"}makeconv.exe
 
 !IFDEF BUILD_SPECIAL_CNV_FILES
-$(UCM_SOURCE_SPECIAL): {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
+$(UCM_SOURCE_SPECIAL): {"$(ICUTOOLS)\makeconv\$(CFGTOOLS)"}makeconv.exe
 !ENDIF
 
 # This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
 # This data is now hard coded as a part of the library.
 # See Jitterbug 4497 for details.
-$(MISC_SOURCE) $(RB_FILES) $(CURR_FILES) $(LANG_FILES) $(REGION_FILES) $(ZONE_FILES) $(UNIT_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(BRK_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu"
+$(MISC_SOURCE) $(RB_FILES) $(CURR_FILES) $(LANG_FILES) $(REGION_FILES) $(ZONE_FILES) $(UNIT_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(BRK_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFGTOOLS)"}genrb.exe "$(ICUBLD_PKG)\$(ICUCOL)\ucadata.icu"
 
 # This used to depend on "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu"
 # These are now hardcoded in ICU4C and only loaded in ICU4J.
diff --git a/source/data/mappings/gsm-03.38-2009.ucm b/source/data/mappings/gsm-03.38-2009.ucm
new file mode 100644
index 0000000..80bc756
--- /dev/null
+++ b/source/data/mappings/gsm-03.38-2009.ucm
@@ -0,0 +1,218 @@
+# Copyright (C) 2017 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
+#
+# Name:             GSM 03.38 to Unicode
+# Unicode version:  3.0
+# Table version:    2.0
+# Date:             2009 Nov 10
+# Authors:          Ken Whistler
+#                   Kent Karlsson
+#                   Markus Kuhn
+#
+# Source:           http://www.unicode.org/Public/MAPPINGS/ETSI/GSM0338.TXT
+# See there for the license and for a description of the charset.
+# Formatted into ICU .ucm format by Markus Scherer on 2006-nov-02.
+# Updated to table version 2.0 by Fredrik Roubert on 2017-feb-08.
+# Commented-out mappings are turned into fallbacks (|1), all others are turned
+# into round-trips (|0).
+# Multi-byte mappings are preserved as multi-single-byte character mappings,
+# using ICU's m:n conversion capability.
+#
+# The substitution character is not documented in the Unicode file.
+# \x3F is chosen here because \x1A is a graphic character.
+#
+# Other deviations from the Unicode file:
+# a)
+# The GSM standard specifies that one or two ESC bytes (\x1B), if not followed
+# by a recognized final byte, be mapped to spaces (that is, reverse fallbacks
+# to U+0020).
+# The Unicode file round-trips a single \x1B to U+00A0 (NBSP) and has no mapping
+# for \x1B\x1B.
+# (Reverse fallbacks to U+00A0 would result in Unicode text that cannot be
+# converted back to GSM 03.38. A roundtrip for U+00A0 adds a character that is
+# not mappable in the standard.)
+#
+# See the ietf-charsets list email "Re: GSM 03.38 substitution character?"
+# at http://mail.apps.ietf.org/ietf/charsets/msg01696.html
+#
+# b)
+# The GSM standard maps U+00C7 capital C-cedilla to \x09 but the Unicode file
+# contains and documents a "fix" to map U+00E7 small c-cedilla instead, based on
+# an interpretation of the intent of the standard. Prevailing implementations
+# in mobile phones follow the standard.
+#
+# This file follows the GSM standard.
+#
+# See the GSM standard at
+# http://www.3gpp.org/ftp/Specs/archive/03_series/03.38/0338-720.zip
+#
+# For problems with the table format please submit a bug
+# at http://www.icu-project.org/ .
+# For issues with the mappings please contact Unicode
+# at http://www.unicode.org/reporting.html
+
+<code_set_name>     "gsm-03.38-2009"
+<char_name_mask>    "AXXXX"
+<mb_cur_max>        1
+<mb_cur_min>        1
+<uconv_class>       "SBCS"
+<icu:state>         0-7f
+<subchar>           \x3F
+<icu:charsetFamily> "ASCII"
+
+CHARMAP
+<U0000> \x00 |1
+<U000A> \x0A |0
+<U000C> \x1B\x0A |0
+<U000D> \x0D |0
+<U0020> \x20 |0
+<U0020> \x1B |3
+<U0020> \x1B\x1B |3
+<U0021> \x21 |0
+<U0022> \x22 |0
+<U0023> \x23 |0
+<U0024> \x02 |0
+<U0025> \x25 |0
+<U0026> \x26 |0
+<U0027> \x27 |0
+<U0028> \x28 |0
+<U0029> \x29 |0
+<U002A> \x2A |0
+<U002B> \x2B |0
+<U002C> \x2C |0
+<U002D> \x2D |0
+<U002E> \x2E |0
+<U002F> \x2F |0
+<U0030> \x30 |0
+<U0031> \x31 |0
+<U0032> \x32 |0
+<U0033> \x33 |0
+<U0034> \x34 |0
+<U0035> \x35 |0
+<U0036> \x36 |0
+<U0037> \x37 |0
+<U0038> \x38 |0
+<U0039> \x39 |0
+<U003A> \x3A |0
+<U003B> \x3B |0
+<U003C> \x3C |0
+<U003D> \x3D |0
+<U003E> \x3E |0
+<U003F> \x3F |0
+<U0040> \x00 |0
+<U0041> \x41 |0
+<U0042> \x42 |0
+<U0043> \x43 |0
+<U0044> \x44 |0
+<U0045> \x45 |0
+<U0046> \x46 |0
+<U0047> \x47 |0
+<U0048> \x48 |0
+<U0049> \x49 |0
+<U004A> \x4A |0
+<U004B> \x4B |0
+<U004C> \x4C |0
+<U004D> \x4D |0
+<U004E> \x4E |0
+<U004F> \x4F |0
+<U0050> \x50 |0
+<U0051> \x51 |0
+<U0052> \x52 |0
+<U0053> \x53 |0
+<U0054> \x54 |0
+<U0055> \x55 |0
+<U0056> \x56 |0
+<U0057> \x57 |0
+<U0058> \x58 |0
+<U0059> \x59 |0
+<U005A> \x5A |0
+<U005B> \x1B\x3C |0
+<U005C> \x1B\x2F |0
+<U005D> \x1B\x3E |0
+<U005E> \x1B\x14 |0
+<U005F> \x11 |0
+<U0061> \x61 |0
+<U0062> \x62 |0
+<U0063> \x63 |0
+<U0064> \x64 |0
+<U0065> \x65 |0
+<U0066> \x66 |0
+<U0067> \x67 |0
+<U0068> \x68 |0
+<U0069> \x69 |0
+<U006A> \x6A |0
+<U006B> \x6B |0
+<U006C> \x6C |0
+<U006D> \x6D |0
+<U006E> \x6E |0
+<U006F> \x6F |0
+<U0070> \x70 |0
+<U0071> \x71 |0
+<U0072> \x72 |0
+<U0073> \x73 |0
+<U0074> \x74 |0
+<U0075> \x75 |0
+<U0076> \x76 |0
+<U0077> \x77 |0
+<U0078> \x78 |0
+<U0079> \x79 |0
+<U007A> \x7A |0
+<U007B> \x1B\x28 |0
+<U007C> \x1B\x40 |0
+<U007D> \x1B\x29 |0
+<U007E> \x1B\x3D |0
+<U00A1> \x40 |0
+<U00A3> \x01 |0
+<U00A4> \x24 |0
+<U00A5> \x03 |0
+<U00A7> \x5F |0
+<U00BF> \x60 |0
+<U00C4> \x5B |0
+<U00C5> \x0E |0
+<U00C6> \x1C |0
+<U00C7> \x09 |0
+<U00C9> \x1F |0
+<U00D1> \x5D |0
+<U00D6> \x5C |0
+<U00D8> \x0B |0
+<U00DC> \x5E |0
+<U00DF> \x1E |0
+<U00E0> \x7F |0
+<U00E4> \x7B |0
+<U00E5> \x0F |0
+<U00E6> \x1D |0
+<U00E8> \x04 |0
+<U00E9> \x05 |0
+<U00EC> \x07 |0
+<U00F1> \x7D |0
+<U00F2> \x08 |0
+<U00F6> \x7C |0
+<U00F8> \x0C |0
+<U00F9> \x06 |0
+<U00FC> \x7E |0
+<U0391> \x41 |1
+<U0392> \x42 |1
+<U0393> \x13 |0
+<U0394> \x10 |0
+<U0395> \x45 |1
+<U0396> \x5A |1
+<U0397> \x48 |1
+<U0398> \x19 |0
+<U0399> \x49 |1
+<U039A> \x4B |1
+<U039B> \x14 |0
+<U039C> \x4D |1
+<U039D> \x4E |1
+<U039E> \x1A |0
+<U039F> \x4F |1
+<U03A0> \x16 |0
+<U03A1> \x50 |1
+<U03A3> \x18 |0
+<U03A4> \x54 |1
+<U03A5> \x59 |1
+<U03A6> \x12 |0
+<U03A7> \x58 |1
+<U03A8> \x17 |0
+<U03A9> \x15 |0
+<U20AC> \x1B\x65 |0
+END CHARMAP
diff --git a/source/data/mappings/ucmfiles.mk b/source/data/mappings/ucmfiles.mk
index 124f50d..ab27790 100644
--- a/source/data/mappings/ucmfiles.mk
+++ b/source/data/mappings/ucmfiles.mk
@@ -120,5 +120,5 @@
 icu-internal-compound-d5.ucm icu-internal-compound-d6.ucm icu-internal-compound-d7.ucm \
 icu-internal-compound-s1.ucm icu-internal-compound-s2.ucm icu-internal-compound-s3.ucm icu-internal-compound-t.ucm \
 euc-jp-2007.ucm\
-euc-tw-2014.ucm
-
+euc-tw-2014.ucm\
+gsm-03.38-2009.ucm
diff --git a/source/data/misc/dayPeriods.txt b/source/data/misc/dayPeriods.txt
index 8438ee4..f12f2c2 100644
--- a/source/data/misc/dayPeriods.txt
+++ b/source/data/misc/dayPeriods.txt
@@ -3,159 +3,161 @@
 dayPeriods:table(nofallback){
     locales{
         af{"set3"}
-        am{"set67"}
-        ar{"set65"}
-        az{"set61"}
-        bg{"set20"}
-        bn{"set33"}
-        bs{"set24"}
-        ca{"set14"}
-        chr{"set75"}
-        cs{"set26"}
-        da{"set6"}
-        de{"set5"}
-        ee{"set76"}
-        el{"set39"}
+        am{"set68"}
+        ar{"set66"}
+        az{"set62"}
+        bg{"set21"}
+        bn{"set34"}
+        bs{"set25"}
+        ca{"set15"}
+        chr{"set76"}
+        cs{"set27"}
+        da{"set7"}
+        de{"set6"}
+        ee{"set77"}
+        el{"set40"}
         en{"set2"}
-        es{"set12"}
-        es_CO{"set13"}
-        et{"set48"}
-        eu{"set73"}
-        fa{"set42"}
-        fi{"set47"}
-        fil{"set59"}
-        fr{"set17"}
-        gl{"set11"}
-        gu{"set34"}
-        he{"set66"}
-        hi{"set32"}
-        hr{"set23"}
-        hu{"set49"}
-        hy{"set41"}
-        id{"set57"}
-        is{"set9"}
-        it{"set15"}
-        ja{"set52"}
-        ka{"set72"}
-        kk{"set62"}
-        km{"set69"}
-        kn{"set46"}
-        ko{"set53"}
-        ky{"set63"}
-        lo{"set56"}
-        lt{"set29"}
-        lv{"set30"}
-        mk{"set21"}
-        ml{"set45"}
-        mn{"set74"}
-        mr{"set35"}
-        ms{"set58"}
-        my{"set54"}
-        nb{"set7"}
-        ne{"set36"}
+        es{"set13"}
+        es_CO{"set14"}
+        et{"set49"}
+        eu{"set74"}
+        fa{"set43"}
+        fi{"set48"}
+        fil{"set60"}
+        fr{"set18"}
+        gl{"set12"}
+        gsw{"set5"}
+        gu{"set35"}
+        he{"set67"}
+        hi{"set33"}
+        hr{"set24"}
+        hu{"set50"}
+        hy{"set42"}
+        id{"set58"}
+        is{"set10"}
+        it{"set16"}
+        ja{"set53"}
+        ka{"set73"}
+        kk{"set63"}
+        km{"set70"}
+        kn{"set47"}
+        ko{"set54"}
+        ky{"set64"}
+        lo{"set57"}
+        lt{"set30"}
+        lv{"set31"}
+        mk{"set22"}
+        ml{"set46"}
+        mn{"set75"}
+        mr{"set36"}
+        ms{"set59"}
+        my{"set55"}
+        nb{"set8"}
+        ne{"set37"}
         nl{"set4"}
-        pa{"set37"}
-        pl{"set28"}
-        pt{"set10"}
-        ro{"set16"}
+        pa{"set38"}
+        pl{"set29"}
+        pt{"set11"}
+        ro{"set17"}
         root{"set1"}
-        ru{"set18"}
-        si{"set38"}
-        sk{"set27"}
-        sl{"set25"}
-        sq{"set40"}
-        sr{"set22"}
-        sv{"set8"}
-        sw{"set70"}
-        ta{"set43"}
-        te{"set44"}
-        th{"set55"}
-        tr{"set60"}
-        uk{"set19"}
-        ur{"set31"}
-        uz{"set64"}
-        vi{"set68"}
-        yue{"set51"}
-        zh{"set50"}
-        zu{"set71"}
+        ru{"set19"}
+        si{"set39"}
+        sk{"set28"}
+        sl{"set26"}
+        sq{"set41"}
+        sr{"set23"}
+        sv{"set9"}
+        sw{"set71"}
+        ta{"set44"}
+        te{"set45"}
+        th{"set56"}
+        tr{"set61"}
+        uk{"set20"}
+        ur{"set32"}
+        uz{"set65"}
+        vi{"set69"}
+        yue{"set52"}
+        zh{"set51"}
+        zu{"set72"}
     }
     locales_selection{
-        af{"set79"}
-        am{"set147"}
-        ar{"set138"}
-        az{"set129"}
-        bg{"set101"}
-        bn{"set114"}
-        bs{"set95"}
-        ca{"set90"}
-        chr{"set151"}
-        cs{"set98"}
-        da{"set82"}
-        de{"set81"}
-        ee{"set152"}
-        el{"set107"}
-        en{"set78"}
-        es{"set88"}
-        es_CO{"set89"}
-        et{"set133"}
-        eu{"set148"}
-        fa{"set108"}
-        fi{"set134"}
-        fil{"set142"}
-        fr{"set93"}
-        gl{"set87"}
-        gu{"set115"}
-        he{"set139"}
-        hi{"set113"}
-        hr{"set94"}
-        hu{"set135"}
-        hy{"set109"}
-        id{"set140"}
-        is{"set85"}
-        it{"set91"}
-        ja{"set126"}
-        ka{"set110"}
-        kk{"set130"}
-        km{"set144"}
-        kn{"set123"}
-        ko{"set127"}
-        ky{"set131"}
-        lo{"set137"}
-        lt{"set105"}
-        lv{"set106"}
-        mk{"set102"}
-        ml{"set122"}
-        mn{"set149"}
-        mr{"set116"}
-        ms{"set141"}
-        my{"set150"}
-        nb{"set83"}
-        ne{"set117"}
-        nl{"set80"}
-        pa{"set118"}
-        pl{"set100"}
-        pt{"set86"}
-        ro{"set92"}
-        root{"set77"}
-        ru{"set103"}
-        si{"set119"}
-        sk{"set99"}
-        sl{"set97"}
-        sq{"set111"}
-        sr{"set96"}
-        sv{"set84"}
-        sw{"set145"}
-        ta{"set120"}
-        te{"set121"}
-        th{"set136"}
-        tr{"set128"}
-        uk{"set104"}
-        ur{"set112"}
-        uz{"set132"}
-        vi{"set143"}
-        yue{"set125"}
-        zh{"set124"}
-        zu{"set146"}
+        af{"set80"}
+        am{"set149"}
+        ar{"set140"}
+        az{"set131"}
+        bg{"set103"}
+        bn{"set116"}
+        bs{"set97"}
+        ca{"set92"}
+        chr{"set153"}
+        cs{"set100"}
+        da{"set84"}
+        de{"set83"}
+        ee{"set154"}
+        el{"set109"}
+        en{"set79"}
+        es{"set90"}
+        es_CO{"set91"}
+        et{"set135"}
+        eu{"set150"}
+        fa{"set110"}
+        fi{"set136"}
+        fil{"set144"}
+        fr{"set95"}
+        gl{"set89"}
+        gsw{"set82"}
+        gu{"set117"}
+        he{"set141"}
+        hi{"set115"}
+        hr{"set96"}
+        hu{"set137"}
+        hy{"set111"}
+        id{"set142"}
+        is{"set87"}
+        it{"set93"}
+        ja{"set128"}
+        ka{"set112"}
+        kk{"set132"}
+        km{"set146"}
+        kn{"set125"}
+        ko{"set129"}
+        ky{"set133"}
+        lo{"set139"}
+        lt{"set107"}
+        lv{"set108"}
+        mk{"set104"}
+        ml{"set124"}
+        mn{"set151"}
+        mr{"set118"}
+        ms{"set143"}
+        my{"set152"}
+        nb{"set85"}
+        ne{"set119"}
+        nl{"set81"}
+        pa{"set120"}
+        pl{"set102"}
+        pt{"set88"}
+        ro{"set94"}
+        root{"set78"}
+        ru{"set105"}
+        si{"set121"}
+        sk{"set101"}
+        sl{"set99"}
+        sq{"set113"}
+        sr{"set98"}
+        sv{"set86"}
+        sw{"set147"}
+        ta{"set122"}
+        te{"set123"}
+        th{"set138"}
+        tr{"set130"}
+        uk{"set106"}
+        ur{"set114"}
+        uz{"set134"}
+        vi{"set145"}
+        yue{"set127"}
+        zh{"set126"}
+        zu{"set148"}
     }
     rules{
         set1{
@@ -170,6 +172,230 @@
         }
         set10{
             afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set100{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"22:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"09:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"09:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"22:00"}
+            }
+        }
+        set101{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"22:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"09:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"09:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"22:00"}
+            }
+        }
+        set102{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"10:00"}
+                from{"06:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"21:00"}
+            }
+        }
+        set103{
+            afternoon1{
+                before{"18:00"}
+                from{"14:00"}
+            }
+            evening1{
+                before{"22:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"11:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"14:00"}
+                from{"11:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"22:00"}
+            }
+        }
+        set104{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"10:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"00:00"}
+            }
+        }
+        set105{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"00:00"}
+            }
+        }
+        set106{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"00:00"}
+            }
+        }
+        set107{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+        }
+        set108{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"23:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"23:00"}
+            }
+        }
+        set109{
+            afternoon1{
+                before{"17:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"20:00"}
+                from{"17:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"20:00"}
+            }
+        }
+        set11{
+            afternoon1{
                 before{"19:00"}
                 from{"12:00"}
             }
@@ -192,163 +418,7 @@
                 at{"12:00"}
             }
         }
-        set100{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"06:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"21:00"}
-            }
-        }
-        set101{
-            afternoon1{
-                before{"18:00"}
-                from{"14:00"}
-            }
-            evening1{
-                before{"22:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"11:00"}
-                from{"04:00"}
-            }
-            morning2{
-                before{"14:00"}
-                from{"11:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"22:00"}
-            }
-        }
-        set102{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"04:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"00:00"}
-            }
-        }
-        set103{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"00:00"}
-            }
-        }
-        set104{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"00:00"}
-            }
-        }
-        set105{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-        }
-        set106{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"23:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"23:00"}
-            }
-        }
-        set107{
-            afternoon1{
-                before{"17:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"20:00"}
-                from{"17:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"20:00"}
-            }
-        }
-        set108{
+        set110{
             afternoon1{
                 before{"17:00"}
                 from{"12:00"}
@@ -366,7 +436,7 @@
                 from{"19:00"}
             }
         }
-        set109{
+        set111{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -384,32 +454,7 @@
                 from{"00:00"}
             }
         }
-        set11{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"13:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"21:00"}
-            }
-        }
-        set110{
+        set112{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -427,7 +472,7 @@
                 from{"21:00"}
             }
         }
-        set111{
+        set113{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -449,46 +494,6 @@
                 from{"00:00"}
             }
         }
-        set112{
-            afternoon1{
-                before{"16:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"18:00"}
-                from{"16:00"}
-            }
-            evening1{
-                before{"20:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"20:00"}
-            }
-        }
-        set113{
-            afternoon1{
-                before{"16:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"20:00"}
-                from{"16:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"20:00"}
-            }
-        }
         set114{
             afternoon1{
                 before{"16:00"}
@@ -503,12 +508,8 @@
                 from{"18:00"}
             }
             morning1{
-                before{"06:00"}
-                from{"04:00"}
-            }
-            morning2{
                 before{"12:00"}
-                from{"06:00"}
+                from{"04:00"}
             }
             night1{
                 before{"04:00"}
@@ -538,6 +539,50 @@
                 before{"16:00"}
                 from{"12:00"}
             }
+            afternoon2{
+                before{"18:00"}
+                from{"16:00"}
+            }
+            evening1{
+                before{"20:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"06:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"20:00"}
+            }
+        }
+        set117{
+            afternoon1{
+                before{"16:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"20:00"}
+                from{"16:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"20:00"}
+            }
+        }
+        set118{
+            afternoon1{
+                before{"16:00"}
+                from{"12:00"}
+            }
             evening1{
                 before{"18:00"}
                 from{"16:00"}
@@ -559,7 +604,7 @@
                 from{"21:00"}
             }
         }
-        set117{
+        set119{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -581,7 +626,32 @@
                 from{"22:00"}
             }
         }
-        set118{
+        set12{
+            afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"13:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"24:00"}
+                from{"21:00"}
+            }
+        }
+        set120{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -599,7 +669,7 @@
                 from{"21:00"}
             }
         }
-        set119{
+        set121{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -625,28 +695,7 @@
                 from{"00:00"}
             }
         }
-        set12{
-            evening1{
-                before{"20:00"}
-                from{"12:00"}
-            }
-            morning1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"20:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
-        set120{
+        set122{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -676,7 +725,7 @@
                 from{"21:00"}
             }
         }
-        set121{
+        set123{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -694,7 +743,7 @@
                 from{"21:00"}
             }
         }
-        set122{
+        set124{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -724,7 +773,7 @@
                 from{"19:00"}
             }
         }
-        set123{
+        set125{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -742,60 +791,60 @@
                 from{"21:00"}
             }
         }
-        set124{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"19:00"}
-                from{"13:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"19:00"}
-            }
-            morning1{
-                before{"08:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"08:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
-        set125{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"19:00"}
-                from{"13:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"19:00"}
-            }
-            morning1{
-                before{"08:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"08:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
         set126{
             afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"19:00"}
+                from{"13:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"19:00"}
+            }
+            morning1{
+                before{"08:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"08:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set127{
+            afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"19:00"}
+                from{"13:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"19:00"}
+            }
+            morning1{
+                before{"08:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"08:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set128{
+            afternoon1{
                 before{"16:00"}
                 from{"12:00"}
             }
@@ -816,7 +865,7 @@
                 from{"23:00"}
             }
         }
-        set127{
+        set129{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -838,7 +887,28 @@
                 from{"21:00"}
             }
         }
-        set128{
+        set13{
+            evening1{
+                before{"20:00"}
+                from{"12:00"}
+            }
+            morning1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"24:00"}
+                from{"20:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set130{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -864,7 +934,7 @@
                 from{"21:00"}
             }
         }
-        set129{
+        set131{
             afternoon1{
                 before{"17:00"}
                 from{"12:00"}
@@ -890,62 +960,45 @@
                 from{"00:00"}
             }
         }
-        set13{
-            evening1{
-                before{"20:00"}
-                from{"12:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"00:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"20:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
-        set130{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"21:00"}
-            }
-        }
-        set131{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"21:00"}
-            }
-        }
         set132{
             afternoon1{
                 before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"21:00"}
+            }
+        }
+        set133{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"21:00"}
+            }
+        }
+        set134{
+            afternoon1{
+                before{"18:00"}
                 from{"11:00"}
             }
             evening1{
@@ -961,7 +1014,7 @@
                 from{"22:00"}
             }
         }
-        set133{
+        set135{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -979,7 +1032,7 @@
                 from{"23:00"}
             }
         }
-        set134{
+        set136{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1001,7 +1054,7 @@
                 from{"23:00"}
             }
         }
-        set135{
+        set137{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1027,7 +1080,7 @@
                 from{"04:00"}
             }
         }
-        set136{
+        set138{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -1053,7 +1106,7 @@
                 from{"21:00"}
             }
         }
-        set137{
+        set139{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1071,7 +1124,24 @@
                 from{"20:00"}
             }
         }
-        set138{
+        set14{
+            evening1{
+                before{"20:00"}
+                from{"12:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"00:00"}
+            }
+            night1{
+                before{"24:00"}
+                from{"20:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set140{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -1101,7 +1171,7 @@
                 from{"01:00"}
             }
         }
-        set139{
+        set141{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1127,36 +1197,7 @@
                 from{"03:00"}
             }
         }
-        set14{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"19:00"}
-                from{"13:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"19:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"21:00"}
-            }
-        }
-        set140{
+        set142{
             afternoon1{
                 before{"15:00"}
                 from{"10:00"}
@@ -1174,7 +1215,7 @@
                 from{"18:00"}
             }
         }
-        set141{
+        set143{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -1196,7 +1237,7 @@
                 from{"19:00"}
             }
         }
-        set142{
+        set144{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1218,7 +1259,7 @@
                 from{"18:00"}
             }
         }
-        set143{
+        set145{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1236,7 +1277,7 @@
                 from{"21:00"}
             }
         }
-        set144{
+        set146{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1254,7 +1295,7 @@
                 from{"21:00"}
             }
         }
-        set145{
+        set147{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1276,7 +1317,7 @@
                 from{"19:00"}
             }
         }
-        set146{
+        set148{
             afternoon1{
                 before{"13:00"}
                 from{"10:00"}
@@ -1298,7 +1339,7 @@
                 from{"19:00"}
             }
         }
-        set147{
+        set149{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1316,7 +1357,36 @@
                 from{"00:00"}
             }
         }
-        set148{
+        set15{
+            afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"19:00"}
+                from{"13:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"19:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"24:00"}
+                from{"21:00"}
+            }
+        }
+        set150{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -1342,7 +1412,7 @@
                 from{"21:00"}
             }
         }
-        set149{
+        set151{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1360,31 +1430,7 @@
                 from{"21:00"}
             }
         }
-        set15{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
-        set150{
+        set152{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1402,7 +1448,7 @@
                 from{"19:00"}
             }
         }
-        set151{
+        set153{
             afternoon1{
                 before{"24:00"}
                 from{"12:00"}
@@ -1412,7 +1458,7 @@
                 from{"00:00"}
             }
         }
-        set152{
+        set154{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -1444,6 +1490,30 @@
                 from{"12:00"}
             }
             evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set17{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
                 before{"22:00"}
                 from{"18:00"}
             }
@@ -1462,30 +1532,6 @@
                 at{"12:00"}
             }
         }
-        set17{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"00:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
         set18{
             afternoon1{
                 before{"18:00"}
@@ -1561,6 +1607,30 @@
         set20{
             afternoon1{
                 before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"00:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set21{
+            afternoon1{
+                before{"18:00"}
                 from{"14:00"}
             }
             evening1{
@@ -1583,7 +1653,7 @@
                 from{"22:00"}
             }
         }
-        set21{
+        set22{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1611,7 +1681,7 @@
                 at{"12:00"}
             }
         }
-        set22{
+        set23{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -1635,30 +1705,6 @@
                 at{"12:00"}
             }
         }
-        set23{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"21:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
         set24{
             afternoon1{
                 before{"18:00"}
@@ -1689,23 +1735,19 @@
                 from{"12:00"}
             }
             evening1{
-                before{"22:00"}
+                before{"21:00"}
                 from{"18:00"}
             }
             midnight{
                 at{"00:00"}
             }
             morning1{
-                before{"10:00"}
-                from{"06:00"}
-            }
-            morning2{
                 before{"12:00"}
-                from{"10:00"}
+                from{"04:00"}
             }
             night1{
-                before{"06:00"}
-                from{"22:00"}
+                before{"04:00"}
+                from{"21:00"}
             }
             noon{
                 at{"12:00"}
@@ -1724,15 +1766,15 @@
                 at{"00:00"}
             }
             morning1{
-                before{"09:00"}
-                from{"04:00"}
+                before{"10:00"}
+                from{"06:00"}
             }
             morning2{
                 before{"12:00"}
-                from{"09:00"}
+                from{"10:00"}
             }
             night1{
-                before{"04:00"}
+                before{"06:00"}
                 from{"22:00"}
             }
             noon{
@@ -1773,6 +1815,34 @@
                 from{"12:00"}
             }
             evening1{
+                before{"22:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"09:00"}
+                from{"04:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"09:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"22:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set29{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
                 before{"21:00"}
                 from{"18:00"}
             }
@@ -1795,30 +1865,6 @@
                 at{"12:00"}
             }
         }
-        set29{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
         set3{
             afternoon1{
                 before{"18:00"}
@@ -1846,6 +1892,30 @@
                 from{"12:00"}
             }
             evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set31{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
                 before{"23:00"}
                 from{"18:00"}
             }
@@ -1864,7 +1934,7 @@
                 at{"12:00"}
             }
         }
-        set31{
+        set32{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1889,7 +1959,7 @@
                 from{"20:00"}
             }
         }
-        set32{
+        set33{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1910,7 +1980,7 @@
                 from{"20:00"}
             }
         }
-        set33{
+        set34{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1936,7 +2006,7 @@
                 from{"20:00"}
             }
         }
-        set34{
+        set35{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1957,7 +2027,7 @@
                 from{"20:00"}
             }
         }
-        set35{
+        set36{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -1989,7 +2059,7 @@
                 at{"12:00"}
             }
         }
-        set36{
+        set37{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2017,7 +2087,7 @@
                 at{"12:00"}
             }
         }
-        set37{
+        set38{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2038,7 +2108,7 @@
                 from{"21:00"}
             }
         }
-        set38{
+        set39{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -2070,24 +2140,6 @@
                 at{"12:00"}
             }
         }
-        set39{
-            afternoon1{
-                before{"17:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"20:00"}
-                from{"17:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"20:00"}
-            }
-        }
         set4{
             afternoon1{
                 before{"18:00"}
@@ -2111,6 +2163,24 @@
         }
         set40{
             afternoon1{
+                before{"17:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"20:00"}
+                from{"17:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"20:00"}
+            }
+        }
+        set41{
+            afternoon1{
                 before{"18:00"}
                 from{"12:00"}
             }
@@ -2137,7 +2207,7 @@
                 at{"12:00"}
             }
         }
-        set41{
+        set42{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2161,7 +2231,7 @@
                 at{"12:00"}
             }
         }
-        set42{
+        set43{
             afternoon1{
                 before{"17:00"}
                 from{"12:00"}
@@ -2185,7 +2255,7 @@
                 at{"12:00"}
             }
         }
-        set43{
+        set44{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -2221,7 +2291,7 @@
                 at{"12:00"}
             }
         }
-        set44{
+        set45{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2242,7 +2312,7 @@
                 from{"21:00"}
             }
         }
-        set45{
+        set46{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -2278,7 +2348,7 @@
                 at{"12:00"}
             }
         }
-        set46{
+        set47{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2299,7 +2369,7 @@
                 from{"21:00"}
             }
         }
-        set47{
+        set48{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2327,7 +2397,7 @@
                 at{"12:00"}
             }
         }
-        set48{
+        set49{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2351,7 +2421,32 @@
                 at{"12:00"}
             }
         }
-        set49{
+        set5{
+            afternoon1{
+                before{"14:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"18:00"}
+                from{"14:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"05:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set50{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2383,64 +2478,6 @@
                 at{"12:00"}
             }
         }
-        set5{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"18:00"}
-                from{"13:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
-        set50{
-            afternoon1{
-                before{"13:00"}
-                from{"12:00"}
-            }
-            afternoon2{
-                before{"19:00"}
-                from{"13:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"19:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"08:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"08:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
         set51{
             afternoon1{
                 before{"13:00"}
@@ -2472,6 +2509,35 @@
         }
         set52{
             afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"19:00"}
+                from{"13:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"19:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"08:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"08:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set53{
+            afternoon1{
                 before{"16:00"}
                 from{"12:00"}
             }
@@ -2498,7 +2564,7 @@
                 at{"12:00"}
             }
         }
-        set53{
+        set54{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2526,7 +2592,7 @@
                 at{"12:00"}
             }
         }
-        set54{
+        set55{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2550,7 +2616,7 @@
                 at{"12:00"}
             }
         }
-        set55{
+        set56{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -2582,7 +2648,7 @@
                 at{"12:00"}
             }
         }
-        set56{
+        set57{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2606,7 +2672,7 @@
                 at{"12:00"}
             }
         }
-        set57{
+        set58{
             afternoon1{
                 before{"15:00"}
                 from{"10:00"}
@@ -2630,7 +2696,7 @@
                 at{"12:00"}
             }
         }
-        set58{
+        set59{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -2652,7 +2718,36 @@
                 from{"19:00"}
             }
         }
-        set59{
+        set6{
+            afternoon1{
+                before{"13:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"18:00"}
+                from{"13:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"10:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set60{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2680,32 +2775,7 @@
                 at{"12:00"}
             }
         }
-        set6{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
-        set60{
+        set61{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2737,7 +2807,7 @@
                 at{"12:00"}
             }
         }
-        set61{
+        set62{
             afternoon1{
                 before{"17:00"}
                 from{"12:00"}
@@ -2769,30 +2839,6 @@
                 at{"12:00"}
             }
         }
-        set62{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"21:00"}
-            }
-            noon{
-                at{"12:00"}
-            }
-        }
         set63{
             afternoon1{
                 before{"18:00"}
@@ -2820,6 +2866,30 @@
         set64{
             afternoon1{
                 before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"06:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"21:00"}
+            }
+            noon{
+                at{"12:00"}
+            }
+        }
+        set65{
+            afternoon1{
+                before{"18:00"}
                 from{"11:00"}
             }
             evening1{
@@ -2841,7 +2911,7 @@
                 at{"12:00"}
             }
         }
-        set65{
+        set66{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -2871,7 +2941,7 @@
                 from{"01:00"}
             }
         }
-        set66{
+        set67{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -2900,7 +2970,7 @@
                 from{"03:00"}
             }
         }
-        set67{
+        set68{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2924,7 +2994,7 @@
                 at{"12:00"}
             }
         }
-        set68{
+        set69{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2948,7 +3018,32 @@
                 at{"12:00"}
             }
         }
-        set69{
+        set7{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"10:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set70{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -2972,32 +3067,7 @@
                 at{"12:00"}
             }
         }
-        set7{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            midnight{
-                at{"00:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"06:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-        }
-        set70{
+        set71{
             afternoon1{
                 before{"16:00"}
                 from{"12:00"}
@@ -3025,7 +3095,7 @@
                 at{"12:00"}
             }
         }
-        set71{
+        set72{
             afternoon1{
                 before{"13:00"}
                 from{"10:00"}
@@ -3047,7 +3117,7 @@
                 from{"19:00"}
             }
         }
-        set72{
+        set73{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3071,7 +3141,7 @@
                 at{"12:00"}
             }
         }
-        set73{
+        set74{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -3100,7 +3170,7 @@
                 from{"21:00"}
             }
         }
-        set74{
+        set75{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3124,7 +3194,7 @@
                 at{"12:00"}
             }
         }
-        set75{
+        set76{
             afternoon1{
                 before{"24:00"}
                 from{"12:00"}
@@ -3137,7 +3207,7 @@
                 at{"12:00"}
             }
         }
-        set76{
+        set77{
             afternoon1{
                 before{"14:00"}
                 from{"12:00"}
@@ -3163,7 +3233,7 @@
                 from{"21:00"}
             }
         }
-        set77{
+        set78{
             am{
                 before{"12:00"}
                 from{"00:00"}
@@ -3173,7 +3243,7 @@
                 from{"12:00"}
             }
         }
-        set78{
+        set79{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3191,24 +3261,6 @@
                 from{"21:00"}
             }
         }
-        set79{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"05:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
         set8{
             afternoon1{
                 before{"18:00"}
@@ -3223,14 +3275,14 @@
             }
             morning1{
                 before{"10:00"}
-                from{"05:00"}
+                from{"06:00"}
             }
             morning2{
                 before{"12:00"}
                 from{"10:00"}
             }
             night1{
-                before{"05:00"}
+                before{"06:00"}
                 from{"00:00"}
             }
         }
@@ -3245,6 +3297,24 @@
             }
             morning1{
                 before{"12:00"}
+                from{"05:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set81{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
                 from{"06:00"}
             }
             night1{
@@ -3252,7 +3322,32 @@
                 from{"00:00"}
             }
         }
-        set81{
+        set82{
+            afternoon1{
+                before{"14:00"}
+                from{"12:00"}
+            }
+            afternoon2{
+                before{"18:00"}
+                from{"14:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            midnight{
+                at{"00:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"05:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set83{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -3278,50 +3373,6 @@
                 from{"00:00"}
             }
         }
-        set82{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"05:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"05:00"}
-                from{"00:00"}
-            }
-        }
-        set83{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"24:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"10:00"}
-                from{"06:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"10:00"}
-            }
-            night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-        }
         set84{
             afternoon1{
                 before{"18:00"}
@@ -3354,6 +3405,50 @@
                 from{"18:00"}
             }
             morning1{
+                before{"10:00"}
+                from{"06:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+        }
+        set86{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"10:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set87{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"24:00"}
+                from{"18:00"}
+            }
+            morning1{
                 before{"12:00"}
                 from{"06:00"}
             }
@@ -3362,7 +3457,7 @@
                 from{"00:00"}
             }
         }
-        set86{
+        set88{
             afternoon1{
                 before{"19:00"}
                 from{"12:00"}
@@ -3380,7 +3475,7 @@
                 from{"00:00"}
             }
         }
-        set87{
+        set89{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -3402,38 +3497,6 @@
                 from{"21:00"}
             }
         }
-        set88{
-            evening1{
-                before{"20:00"}
-                from{"12:00"}
-            }
-            morning1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"06:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"20:00"}
-            }
-        }
-        set89{
-            evening1{
-                before{"20:00"}
-                from{"12:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"00:00"}
-            }
-            night1{
-                before{"24:00"}
-                from{"20:00"}
-            }
-        }
         set9{
             afternoon1{
                 before{"18:00"}
@@ -3447,18 +3510,51 @@
                 at{"00:00"}
             }
             morning1{
+                before{"10:00"}
+                from{"05:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"10:00"}
+            }
+            night1{
+                before{"05:00"}
+                from{"00:00"}
+            }
+        }
+        set90{
+            evening1{
+                before{"20:00"}
+                from{"12:00"}
+            }
+            morning1{
+                before{"06:00"}
+                from{"00:00"}
+            }
+            morning2{
                 before{"12:00"}
                 from{"06:00"}
             }
             night1{
-                before{"06:00"}
-                from{"00:00"}
-            }
-            noon{
-                at{"12:00"}
+                before{"24:00"}
+                from{"20:00"}
             }
         }
-        set90{
+        set91{
+            evening1{
+                before{"20:00"}
+                from{"12:00"}
+            }
+            morning2{
+                before{"12:00"}
+                from{"00:00"}
+            }
+            night1{
+                before{"24:00"}
+                from{"20:00"}
+            }
+        }
+        set92{
             afternoon1{
                 before{"13:00"}
                 from{"12:00"}
@@ -3484,7 +3580,7 @@
                 from{"21:00"}
             }
         }
-        set91{
+        set93{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3502,7 +3598,7 @@
                 from{"00:00"}
             }
         }
-        set92{
+        set94{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3520,7 +3616,7 @@
                 from{"22:00"}
             }
         }
-        set93{
+        set95{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3538,42 +3634,6 @@
                 from{"00:00"}
             }
         }
-        set94{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"21:00"}
-            }
-        }
-        set95{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"21:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"12:00"}
-                from{"04:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"21:00"}
-            }
-        }
         set96{
             afternoon1{
                 before{"18:00"}
@@ -3585,6 +3645,42 @@
             }
             morning1{
                 before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"21:00"}
+            }
+        }
+        set97{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
+                from{"04:00"}
+            }
+            night1{
+                before{"04:00"}
+                from{"21:00"}
+            }
+        }
+        set98{
+            afternoon1{
+                before{"18:00"}
+                from{"12:00"}
+            }
+            evening1{
+                before{"21:00"}
+                from{"18:00"}
+            }
+            morning1{
+                before{"12:00"}
                 from{"06:00"}
             }
             night1{
@@ -3592,7 +3688,7 @@
                 from{"21:00"}
             }
         }
-        set97{
+        set99{
             afternoon1{
                 before{"18:00"}
                 from{"12:00"}
@@ -3614,49 +3710,5 @@
                 from{"22:00"}
             }
         }
-        set98{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"22:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"09:00"}
-                from{"04:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"09:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"22:00"}
-            }
-        }
-        set99{
-            afternoon1{
-                before{"18:00"}
-                from{"12:00"}
-            }
-            evening1{
-                before{"22:00"}
-                from{"18:00"}
-            }
-            morning1{
-                before{"09:00"}
-                from{"04:00"}
-            }
-            morning2{
-                before{"12:00"}
-                from{"09:00"}
-            }
-            night1{
-                before{"04:00"}
-                from{"22:00"}
-            }
-        }
     }
 }
diff --git a/source/data/misc/icuver.txt b/source/data/misc/icuver.txt
index 114bfaa..1938d4f 100644
--- a/source/data/misc/icuver.txt
+++ b/source/data/misc/icuver.txt
@@ -8,6 +8,6 @@
 // ***************************************************************************
 
 icuver:table(nofallback){ 
-    DataVersion { "58.1.0.0" }
-    ICUVersion  { "58.1.0.0" }
+    DataVersion { "59.1.0.0" }
+    ICUVersion  { "59.1.0.0" }
 }
diff --git a/source/data/misc/keyTypeData.txt b/source/data/misc/keyTypeData.txt
index 4fc4ba3..1a8d70d 100644
--- a/source/data/misc/keyTypeData.txt
+++ b/source/data/misc/keyTypeData.txt
@@ -14,6 +14,7 @@
         }
         valueType{
             ca{"incremental"}
+            h0{"single"}
             kr{"multiple"}
             vt{"multiple"}
             x0{"any"}
@@ -36,6 +37,7 @@
         d0{""}
         em{""}
         fw{""}
+        h0{""}
         hours{"hc"}
         i0{""}
         k0{""}
@@ -216,6 +218,7 @@
             buk{""}
             bwp{""}
             byb{""}
+            byn{""}
             byr{""}
             bzd{""}
             cad{""}
@@ -497,6 +500,9 @@
             tue{""}
             wed{""}
         }
+        h0{
+            hybrid{""}
+        }
         hours{
             h11{""}
             h12{""}
diff --git a/source/data/misc/likelySubtags.txt b/source/data/misc/likelySubtags.txt
index e60d048..eba898d 100644
--- a/source/data/misc/likelySubtags.txt
+++ b/source/data/misc/likelySubtags.txt
@@ -7,6 +7,7 @@
     aau{"aau_Latn_ZZ"}
     ab{"ab_Cyrl_GE"}
     abi{"abi_Latn_ZZ"}
+    abq{"abq_Cyrl_ZZ"}
     abr{"abr_Latn_GH"}
     abt{"abt_Latn_ZZ"}
     aby{"aby_Latn_ZZ"}
@@ -154,6 +155,7 @@
     bjn{"bjn_Latn_ID"}
     bjo{"bjo_Latn_ZZ"}
     bjr{"bjr_Latn_ZZ"}
+    bjt{"bjt_Latn_SN"}
     bjz{"bjz_Latn_ZZ"}
     bkc{"bkc_Latn_ZZ"}
     bkm{"bkm_Latn_CM"}
@@ -220,8 +222,7 @@
     can{"can_Latn_ZZ"}
     cbj{"cbj_Latn_ZZ"}
     cch{"cch_Latn_NG"}
-    ccp{"ccp_Beng_IN"}
-    ccp_Cakm{"ccp_Cakm_BD"}
+    ccp{"ccp_Cakm_BD"}
     ce{"ce_Cyrl_RU"}
     ceb{"ceb_Latn_PH"}
     cfa{"cfa_Latn_ZZ"}
@@ -245,6 +246,7 @@
     cop{"cop_Copt_EG"}
     cps{"cps_Latn_PH"}
     cr{"cr_Cans_CA"}
+    crh{"crh_Cyrl_UA"}
     crj{"crj_Cans_CA"}
     crk{"crk_Cans_CA"}
     crl{"crl_Cans_CA"}
@@ -309,6 +311,7 @@
     efi{"efi_Latn_NG"}
     egl{"egl_Latn_IT"}
     egy{"egy_Egyp_EG"}
+    eka{"eka_Latn_ZZ"}
     eky{"eky_Kali_MM"}
     el{"el_Grek_GR"}
     ema{"ema_Latn_ZZ"}
@@ -416,6 +419,7 @@
     gor{"gor_Latn_ID"}
     gos{"gos_Latn_NL"}
     got{"got_Goth_UA"}
+    grb{"grb_Latn_ZZ"}
     grc{"grc_Cprt_CY"}
     grc_Linb{"grc_Linb_GR"}
     grt{"grt_Beng_IN"}
@@ -488,6 +492,7 @@
     idd{"idd_Latn_ZZ"}
     idi{"idi_Latn_ZZ"}
     idu{"idu_Latn_ZZ"}
+    ife{"ife_Latn_TG"}
     ig{"ig_Latn_NG"}
     igb{"igb_Latn_ZZ"}
     ige{"ige_Latn_ZZ"}
@@ -597,6 +602,7 @@
     kmu{"kmu_Latn_ZZ"}
     kmw{"kmw_Latn_ZZ"}
     kn{"kn_Knda_IN"}
+    knf{"knf_Latn_SN"}
     knp{"knp_Latn_ZZ"}
     ko{"ko_Kore_KR"}
     koi{"koi_Cyrl_RU"}
@@ -1021,6 +1027,7 @@
     saq{"saq_Latn_KE"}
     sas{"sas_Latn_ID"}
     sat{"sat_Latn_IN"}
+    sav{"sav_Latn_SN"}
     saz{"saz_Saur_IN"}
     sba{"sba_Latn_ZZ"}
     sbe{"sbe_Latn_ZZ"}
@@ -1345,7 +1352,6 @@
     und_Cyrl_GE{"ab_Cyrl_GE"}
     und_Cyrl_GR{"mk_Cyrl_GR"}
     und_Cyrl_MD{"uk_Cyrl_MD"}
-    und_Cyrl_PL{"be_Cyrl_PL"}
     und_Cyrl_RO{"bg_Cyrl_RO"}
     und_Cyrl_SK{"uk_Cyrl_SK"}
     und_Cyrl_TR{"kbd_Cyrl_TR"}
diff --git a/source/data/misc/metadata.txt b/source/data/misc/metadata.txt
index 4a530c5..5454cd7 100644
--- a/source/data/misc/metadata.txt
+++ b/source/data/misc/metadata.txt
@@ -1279,6 +1279,14 @@
                 reason{"overlong"}
                 replacement{"yo"}
             }
+            yue_CN{
+                reason{"legacy"}
+                replacement{"yue_Hans_CN"}
+            }
+            yue_HK{
+                reason{"legacy"}
+                replacement{"yue_Hant_HK"}
+            }
             zai{
                 reason{"macrolanguage"}
                 replacement{"zap"}
@@ -1347,163 +1355,311 @@
             }
         }
         subdivision{
-            CN-71{
+            cn71{
                 reason{"overlong"}
                 replacement{"TW"}
             }
-            CN-91{
+            cn91{
                 reason{"overlong"}
                 replacement{"HK"}
             }
-            CN-92{
+            cn92{
                 reason{"overlong"}
                 replacement{"MO"}
             }
-            FR-BL{
+            czjc{
+                reason{"deprecated"}
+                replacement{"cz31"}
+            }
+            czka{
+                reason{"deprecated"}
+                replacement{"cz41"}
+            }
+            czkr{
+                reason{"deprecated"}
+                replacement{"cz52"}
+            }
+            czli{
+                reason{"deprecated"}
+                replacement{"cz51"}
+            }
+            czmo{
+                reason{"deprecated"}
+                replacement{"cz80"}
+            }
+            czol{
+                reason{"deprecated"}
+                replacement{"cz71"}
+            }
+            czpa{
+                reason{"deprecated"}
+                replacement{"cz53"}
+            }
+            czpl{
+                reason{"deprecated"}
+                replacement{"cz32"}
+            }
+            czst{
+                reason{"deprecated"}
+                replacement{"cz20"}
+            }
+            czus{
+                reason{"deprecated"}
+                replacement{"cz42"}
+            }
+            czzl{
+                reason{"deprecated"}
+                replacement{"cz72"}
+            }
+            escn{
+                reason{"overlong"}
+                replacement{"IC"}
+            }
+            fi01{
+                reason{"overlong"}
+                replacement{"AX"}
+            }
+            fra{
+                reason{"deprecated"}
+                replacement{"frges"}
+            }
+            frb{
+                reason{"deprecated"}
+                replacement{"frnaq"}
+            }
+            frbl{
                 reason{"overlong"}
                 replacement{"BL"}
             }
-            FR-GF{
+            frc{
+                reason{"deprecated"}
+                replacement{"frara"}
+            }
+            frcp{
+                reason{"overlong"}
+                replacement{"CP"}
+            }
+            frd{
+                reason{"deprecated"}
+                replacement{"frbfc"}
+            }
+            fre{
+                reason{"deprecated"}
+                replacement{"frbre"}
+            }
+            frf{
+                reason{"deprecated"}
+                replacement{"frcvl"}
+            }
+            frg{
+                reason{"deprecated"}
+                replacement{"frges"}
+            }
+            frgf{
                 reason{"overlong"}
                 replacement{"GF"}
             }
-            FR-GP{
+            frgp{
                 reason{"overlong"}
                 replacement{"GP"}
             }
-            FR-MF{
+            frh{
+                reason{"deprecated"}
+                replacement{"frcor"}
+            }
+            fri{
+                reason{"deprecated"}
+                replacement{"frbfc"}
+            }
+            frj{
+                reason{"deprecated"}
+                replacement{"fridf"}
+            }
+            frk{
+                reason{"deprecated"}
+                replacement{"frocc"}
+            }
+            frl{
+                reason{"deprecated"}
+                replacement{"frnaq"}
+            }
+            frm{
+                reason{"deprecated"}
+                replacement{"frges"}
+            }
+            frmf{
                 reason{"overlong"}
                 replacement{"MF"}
             }
-            FR-MQ{
+            frmq{
                 reason{"overlong"}
                 replacement{"MQ"}
             }
-            FR-NC{
+            frn{
+                reason{"deprecated"}
+                replacement{"frocc"}
+            }
+            frnc{
                 reason{"overlong"}
                 replacement{"NC"}
             }
-            FR-PF{
+            fro{
+                reason{"deprecated"}
+                replacement{"frhdf"}
+            }
+            frp{
+                reason{"deprecated"}
+                replacement{"frnor"}
+            }
+            frpf{
                 reason{"overlong"}
                 replacement{"PF"}
             }
-            FR-PM{
+            frpm{
                 reason{"overlong"}
                 replacement{"PM"}
             }
-            FR-RE{
+            frq{
+                reason{"deprecated"}
+                replacement{"frnor"}
+            }
+            frr{
+                reason{"deprecated"}
+                replacement{"frpdl"}
+            }
+            frre{
                 reason{"overlong"}
                 replacement{"RE"}
             }
-            FR-TF{
+            frs{
+                reason{"deprecated"}
+                replacement{"frhdf"}
+            }
+            frt{
+                reason{"deprecated"}
+                replacement{"frnaq"}
+            }
+            frtf{
                 reason{"overlong"}
                 replacement{"TF"}
             }
-            FR-WF{
+            fru{
+                reason{"deprecated"}
+                replacement{"frpac"}
+            }
+            frv{
+                reason{"deprecated"}
+                replacement{"frara"}
+            }
+            frwf{
                 reason{"overlong"}
                 replacement{"WF"}
             }
-            FR-YT{
+            fryt{
                 reason{"overlong"}
                 replacement{"YT"}
             }
-            LA-XN{
+            laxn{
                 reason{"deprecated"}
-                replacement{"LA-XS"}
+                replacement{"laxs"}
             }
-            LU-D{
+            lud{
                 reason{"deprecated"}
-                replacement{"LU-CL LU-DI LU-RD LU-VD LU-WI"}
+                replacement{"lucl ludi lurd luvd luwi"}
             }
-            LU-G{
+            lug{
                 reason{"deprecated"}
-                replacement{"LU-EC LU-GR LU-RM"}
+                replacement{"luec lugr lurm"}
             }
-            LU-L{
+            lul{
                 reason{"deprecated"}
-                replacement{"LU-CA LU-ES LU-LU LU-ME"}
+                replacement{"luca lues lulu lume"}
             }
-            MR-NKC{
+            mrnkc{
                 reason{"deprecated"}
-                replacement{"MR-13 MR-14 MR-15"}
+                replacement{"mr13 mr14 mr15"}
             }
-            NL-AW{
+            nlaw{
                 reason{"overlong"}
                 replacement{"AW"}
             }
-            NL-CW{
+            nlcw{
                 reason{"overlong"}
                 replacement{"CW"}
             }
-            NL-SX{
+            nlsx{
                 reason{"overlong"}
                 replacement{"SX"}
             }
-            NZ-N{
+            nzn{
                 reason{"deprecated"}
-                replacement{"NZ-AUK NZ-BOP NZ-GIS NZ-HKB NZ-MWT NZ-NTL NZ-TKI NZ-WGN NZ-WKO"}
+                replacement{"nzauk nzbop nzgis nzhkb nzmwt nzntl nztki nzwgn nzwko"}
             }
-            NZ-S{
+            nzs{
                 reason{"deprecated"}
-                replacement{"NZ-CAN NZ-MBH NZ-NSN NZ-OTA NZ-STL NZ-TAS NZ-WTC"}
+                replacement{"nzcan nzmbh nznsn nzota nzstl nztas nzwtc"}
             }
-            OM-BA{
+            omba{
                 reason{"deprecated"}
-                replacement{"OM-BJ OM-BS"}
+                replacement{"ombj ombs"}
             }
-            OM-SH{
+            omsh{
                 reason{"deprecated"}
-                replacement{"OM-SJ OM-SS"}
+                replacement{"omsj omss"}
             }
-            TT-ETO{
+            shta{
+                reason{"overlong"}
+                replacement{"TA"}
+            }
+            tteto{
                 reason{"deprecated"}
-                replacement{"TT-TOB"}
+                replacement{"tttob"}
             }
-            TT-RCM{
+            ttrcm{
                 reason{"deprecated"}
-                replacement{"TT-MRC"}
+                replacement{"ttmrc"}
             }
-            TT-WTO{
+            ttwto{
                 reason{"deprecated"}
-                replacement{"TT-TOB"}
+                replacement{"tttob"}
             }
-            TW-KHQ{
+            twkhq{
                 reason{"deprecated"}
-                replacement{"TW-KHH"}
+                replacement{"twkhh"}
             }
-            TW-TNQ{
+            twtnq{
                 reason{"deprecated"}
-                replacement{"TW-TNN"}
+                replacement{"twtnn"}
             }
-            TW-TPQ{
+            twtpq{
                 reason{"deprecated"}
-                replacement{"TW-NWT"}
+                replacement{"twnwt"}
             }
-            TW-TXQ{
+            twtxq{
                 reason{"deprecated"}
-                replacement{"TW-TXG"}
+                replacement{"twtxg"}
             }
-            US-AS{
+            usas{
                 reason{"overlong"}
                 replacement{"AS"}
             }
-            US-GU{
+            usgu{
                 reason{"overlong"}
                 replacement{"GU"}
             }
-            US-MP{
+            usmp{
                 reason{"overlong"}
                 replacement{"MP"}
             }
-            US-PR{
+            uspr{
                 reason{"overlong"}
                 replacement{"PR"}
             }
-            US-UM{
+            usum{
                 reason{"overlong"}
                 replacement{"UM"}
             }
-            US-VI{
+            usvi{
                 reason{"overlong"}
                 replacement{"VI"}
             }
@@ -4107,6 +4263,7 @@
         "bez_TZ",
         "bg_BG",
         "bgn_PK",
+        "blt_Tavt_VN",
         "bm_ML",
         "bm_Nkoo_ML",
         "bn_BD",
@@ -4120,6 +4277,7 @@
         "byn_ER",
         "ca_ES",
         "cch_NG",
+        "ccp_BD",
         "ce_RU",
         "cgg_UG",
         "chr_US",
diff --git a/source/data/misc/plurals.txt b/source/data/misc/plurals.txt
index 1d80c06..2fd7a76 100644
--- a/source/data/misc/plurals.txt
+++ b/source/data/misc/plurals.txt
@@ -3,79 +3,79 @@
 plurals:table(nofallback){
     locales{
         af{"set8"}
-        ak{"set5"}
+        ak{"set6"}
         am{"set1"}
-        ar{"set34"}
-        ars{"set34"}
+        ar{"set33"}
+        ars{"set33"}
         as{"set1"}
         asa{"set8"}
-        ast{"set3"}
+        ast{"set4"}
         az{"set8"}
-        be{"set27"}
+        be{"set26"}
         bem{"set8"}
         bez{"set8"}
         bg{"set8"}
-        bh{"set5"}
+        bh{"set6"}
         bm{"set0"}
         bn{"set1"}
         bo{"set0"}
-        br{"set31"}
+        br{"set30"}
         brx{"set8"}
-        bs{"set20"}
-        ca{"set3"}
+        bs{"set19"}
+        ca{"set4"}
         ce{"set8"}
         cgg{"set8"}
         chr{"set8"}
         ckb{"set8"}
-        cs{"set25"}
-        cy{"set35"}
-        da{"set10"}
-        de{"set3"}
-        dsb{"set23"}
+        cs{"set24"}
+        cy{"set34"}
+        da{"set9"}
+        de{"set4"}
+        dsb{"set22"}
         dv{"set8"}
         dz{"set0"}
         ee{"set8"}
         el{"set8"}
-        en{"set3"}
+        en{"set4"}
         eo{"set8"}
         es{"set8"}
-        et{"set3"}
+        et{"set4"}
         eu{"set8"}
         fa{"set1"}
         ff{"set2"}
-        fi{"set3"}
-        fil{"set13"}
+        fi{"set4"}
+        fil{"set12"}
         fo{"set8"}
         fr{"set2"}
         fur{"set8"}
-        fy{"set3"}
-        ga{"set32"}
-        gd{"set21"}
-        gl{"set3"}
+        fy{"set4"}
+        ga{"set31"}
+        gd{"set20"}
+        gl{"set4"}
         gsw{"set8"}
         gu{"set1"}
-        guw{"set5"}
-        gv{"set33"}
+        guw{"set6"}
+        gv{"set32"}
         ha{"set8"}
         haw{"set8"}
-        he{"set24"}
+        he{"set23"}
         hi{"set1"}
-        hr{"set20"}
-        hsb{"set23"}
+        hr{"set19"}
+        hsb{"set22"}
         hu{"set8"}
         hy{"set2"}
         id{"set0"}
         ig{"set0"}
         ii{"set0"}
         in{"set0"}
-        is{"set11"}
-        it{"set3"}
-        iu{"set17"}
-        iw{"set24"}
+        is{"set10"}
+        it{"set4"}
+        iu{"set16"}
+        iw{"set23"}
         ja{"set0"}
         jbo{"set0"}
         jgo{"set8"}
-        ji{"set3"}
+        ji{"set4"}
         jmc{"set8"}
         jv{"set0"}
         jw{"set0"}
@@ -93,206 +93,206 @@
         ko{"set0"}
         ks{"set8"}
         ksb{"set8"}
-        ksh{"set16"}
+        ksh{"set15"}
         ku{"set8"}
-        kw{"set17"}
+        kw{"set16"}
         ky{"set8"}
-        lag{"set15"}
+        lag{"set14"}
         lb{"set8"}
         lg{"set8"}
         lkt{"set0"}
-        ln{"set5"}
+        ln{"set6"}
         lo{"set0"}
-        lt{"set28"}
-        lv{"set14"}
+        lt{"set27"}
+        lv{"set13"}
         mas{"set8"}
-        mg{"set5"}
+        mg{"set6"}
         mgo{"set8"}
-        mk{"set12"}
+        mk{"set11"}
         ml{"set8"}
         mn{"set8"}
-        mo{"set19"}
+        mo{"set18"}
         mr{"set1"}
         ms{"set0"}
-        mt{"set29"}
+        mt{"set28"}
         my{"set0"}
         nah{"set8"}
-        naq{"set17"}
+        naq{"set16"}
         nb{"set8"}
         nd{"set8"}
         ne{"set8"}
-        nl{"set3"}
+        nl{"set4"}
         nn{"set8"}
         nnh{"set8"}
         no{"set8"}
         nqo{"set0"}
         nr{"set8"}
-        nso{"set5"}
+        nso{"set6"}
         ny{"set8"}
         nyn{"set8"}
         om{"set8"}
         or{"set8"}
         os{"set8"}
-        pa{"set5"}
+        pa{"set6"}
         pap{"set8"}
-        pl{"set26"}
-        prg{"set14"}
+        pl{"set25"}
+        prg{"set13"}
         ps{"set8"}
-        pt{"set7"}
-        pt_PT{"set9"}
+        pt{"set3"}
         rm{"set8"}
-        ro{"set19"}
+        ro{"set18"}
         rof{"set8"}
         root{"set0"}
-        ru{"set30"}
+        ru{"set29"}
         rwk{"set8"}
         sah{"set0"}
         saq{"set8"}
         sdh{"set8"}
-        se{"set17"}
+        se{"set16"}
         seh{"set8"}
         ses{"set0"}
         sg{"set0"}
-        sh{"set20"}
-        shi{"set18"}
-        si{"set4"}
-        sk{"set25"}
-        sl{"set22"}
-        sma{"set17"}
-        smi{"set17"}
-        smj{"set17"}
-        smn{"set17"}
-        sms{"set17"}
+        sh{"set19"}
+        shi{"set17"}
+        si{"set5"}
+        sk{"set24"}
+        sl{"set21"}
+        sma{"set16"}
+        smi{"set16"}
+        smj{"set16"}
+        smn{"set16"}
+        sms{"set16"}
         sn{"set8"}
         so{"set8"}
         sq{"set8"}
-        sr{"set20"}
+        sr{"set19"}
         ss{"set8"}
         ssy{"set8"}
         st{"set8"}
-        sv{"set3"}
-        sw{"set3"}
+        sv{"set4"}
+        sw{"set4"}
         syr{"set8"}
         ta{"set8"}
         te{"set8"}
         teo{"set8"}
         th{"set0"}
-        ti{"set5"}
+        ti{"set6"}
         tig{"set8"}
         tk{"set8"}
-        tl{"set13"}
+        tl{"set12"}
         tn{"set8"}
         to{"set0"}
         tr{"set8"}
         ts{"set8"}
-        tzm{"set6"}
+        tzm{"set7"}
         ug{"set8"}
-        uk{"set30"}
-        ur{"set3"}
+        uk{"set29"}
+        ur{"set4"}
         uz{"set8"}
         ve{"set8"}
         vi{"set0"}
         vo{"set8"}
         vun{"set8"}
-        wa{"set5"}
+        wa{"set6"}
         wae{"set8"}
         wo{"set0"}
         xh{"set8"}
         xog{"set8"}
-        yi{"set3"}
+        yi{"set4"}
         yo{"set0"}
         yue{"set0"}
         zh{"set0"}
         zu{"set1"}
     }
     locales_ordinals{
-        af{"set36"}
-        am{"set36"}
-        ar{"set36"}
-        as{"set53"}
-        az{"set51"}
-        be{"set41"}
-        bg{"set36"}
-        bn{"set53"}
-        bs{"set36"}
-        ca{"set49"}
-        ce{"set36"}
-        cs{"set36"}
-        cy{"set54"}
-        da{"set36"}
-        de{"set36"}
-        dsb{"set36"}
-        el{"set36"}
-        en{"set47"}
-        es{"set36"}
-        et{"set36"}
-        eu{"set36"}
-        fa{"set36"}
-        fi{"set36"}
-        fil{"set38"}
-        fr{"set38"}
-        fy{"set36"}
-        ga{"set38"}
-        gl{"set36"}
-        gu{"set52"}
-        he{"set36"}
-        hi{"set52"}
-        hr{"set36"}
-        hsb{"set36"}
-        hu{"set39"}
-        hy{"set38"}
-        id{"set36"}
-        in{"set36"}
-        is{"set36"}
-        it{"set44"}
-        iw{"set36"}
-        ja{"set36"}
-        ka{"set45"}
-        kk{"set43"}
-        km{"set36"}
-        kn{"set36"}
-        ko{"set36"}
-        ky{"set36"}
-        lo{"set38"}
-        lt{"set36"}
-        lv{"set36"}
-        mk{"set50"}
-        ml{"set36"}
-        mn{"set36"}
-        mo{"set38"}
-        mr{"set48"}
-        ms{"set38"}
-        my{"set36"}
-        nb{"set36"}
-        ne{"set40"}
-        nl{"set36"}
-        pa{"set36"}
-        pl{"set36"}
-        prg{"set36"}
-        pt{"set36"}
-        ro{"set38"}
-        root{"set36"}
-        ru{"set36"}
-        sh{"set36"}
-        si{"set36"}
-        sk{"set36"}
-        sl{"set36"}
-        sq{"set46"}
-        sr{"set36"}
-        sv{"set37"}
-        sw{"set36"}
-        ta{"set36"}
-        te{"set36"}
-        th{"set36"}
-        tl{"set38"}
-        tr{"set36"}
-        uk{"set42"}
-        ur{"set36"}
-        uz{"set36"}
-        vi{"set38"}
-        yue{"set36"}
-        zh{"set36"}
-        zu{"set36"}
+        af{"set35"}
+        am{"set35"}
+        ar{"set35"}
+        as{"set52"}
+        az{"set50"}
+        be{"set40"}
+        bg{"set35"}
+        bn{"set52"}
+        bs{"set35"}
+        ca{"set48"}
+        ce{"set35"}
+        cs{"set35"}
+        cy{"set53"}
+        da{"set35"}
+        de{"set35"}
+        dsb{"set35"}
+        el{"set35"}
+        en{"set46"}
+        es{"set35"}
+        et{"set35"}
+        eu{"set35"}
+        fa{"set35"}
+        fi{"set35"}
+        fil{"set37"}
+        fr{"set37"}
+        fy{"set35"}
+        ga{"set37"}
+        gl{"set35"}
+        gsw{"set35"}
+        gu{"set51"}
+        he{"set35"}
+        hi{"set51"}
+        hr{"set35"}
+        hsb{"set35"}
+        hu{"set38"}
+        hy{"set37"}
+        id{"set35"}
+        in{"set35"}
+        is{"set35"}
+        it{"set43"}
+        iw{"set35"}
+        ja{"set35"}
+        ka{"set44"}
+        kk{"set42"}
+        km{"set35"}
+        kn{"set35"}
+        ko{"set35"}
+        ky{"set35"}
+        lo{"set37"}
+        lt{"set35"}
+        lv{"set35"}
+        mk{"set49"}
+        ml{"set35"}
+        mn{"set35"}
+        mo{"set37"}
+        mr{"set47"}
+        ms{"set37"}
+        my{"set35"}
+        nb{"set35"}
+        ne{"set39"}
+        nl{"set35"}
+        pa{"set35"}
+        pl{"set35"}
+        prg{"set35"}
+        pt{"set35"}
+        ro{"set37"}
+        root{"set35"}
+        ru{"set35"}
+        sh{"set35"}
+        si{"set35"}
+        sk{"set35"}
+        sl{"set35"}
+        sq{"set45"}
+        sr{"set35"}
+        sv{"set36"}
+        sw{"set35"}
+        ta{"set35"}
+        te{"set35"}
+        th{"set35"}
+        tl{"set37"}
+        tr{"set35"}
+        uk{"set41"}
+        ur{"set35"}
+        uz{"set35"}
+        vi{"set37"}
+        yue{"set35"}
+        zh{"set35"}
+        zu{"set35"}
     }
     rules{
         set0{
@@ -309,13 +309,6 @@
             }
         }
         set10{
-            one{"n = 1 or t != 0 and i = 0,1 @integer 1 @decimal 0.1~1.6"}
-            other{
-                " @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0"
-                ", 2.0~3.4, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
-        set11{
             one{
                 "t = 0 and i % 10 = 1 and i % 100 != 11 or t != 0 @integer 1, 21, 31,"
                 " 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1~1.6, 10.1, 100.1, 100"
@@ -327,7 +320,7 @@
                 "00000.0, 1000000.0, …"
             }
         }
-        set12{
+        set11{
             one{
                 "v = 0 and i % 10 = 1 or f % 10 = 1 @integer 1, 11, 21, 31, 41, 51, 6"
                 "1, 71, 101, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1,"
@@ -339,7 +332,7 @@
                 "000000.0, …"
             }
         }
-        set13{
+        set12{
             one{
                 "v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 1"
                 "0 != 4,6,9 @integer 0~3, 5, 7, 8, 10~13, 15, 17, 18, 20, 21, 100, 10"
@@ -352,7 +345,7 @@
                 "6, 0.9, 1.4, 1.6, 1.9, 2.4, 2.6, 10.4, 100.4, 1000.4, …"
             }
         }
-        set14{
+        set13{
             one{
                 "n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != "
                 "11 or v != 2 and f % 10 = 1 @integer 1, 21, 31, 41, 51, 61, 71, 81, "
@@ -370,7 +363,7 @@
                 "10000.0, 100000.0, 1000000.0, …"
             }
         }
-        set15{
+        set14{
             one{"i = 0,1 and n != 0 @integer 1 @decimal 0.1~1.6"}
             other{
                 " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3."
@@ -378,7 +371,7 @@
             }
             zero{"n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000"}
         }
-        set16{
+        set15{
             one{"n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000"}
             other{
                 " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0."
@@ -386,7 +379,7 @@
             }
             zero{"n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000"}
         }
-        set17{
+        set16{
             one{"n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000"}
             other{
                 " @integer 0, 3~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0"
@@ -394,7 +387,7 @@
             }
             two{"n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000"}
         }
-        set18{
+        set17{
             few{
                 "n = 2..10 @integer 2~10 @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, "
                 "9.0, 10.0, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00"
@@ -405,7 +398,7 @@
                 ".9, 2.1~2.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
             }
         }
-        set19{
+        set18{
             few{
                 "v != 0 or n = 0 or n != 1 and n % 100 = 1..19 @integer 0, 2~16, 101,"
                 " 1001, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1"
@@ -414,14 +407,7 @@
             one{"i = 1 and v = 0 @integer 1"}
             other{" @integer 20~35, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set2{
-            one{"i = 0,1 @integer 0, 1 @decimal 0.0~1.5"}
-            other{
-                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3."
-                "5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
-        set20{
+        set19{
             few{
                 "v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f"
                 " % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, "
@@ -439,7 +425,14 @@
                 " 1000000.0, …"
             }
         }
-        set21{
+        set2{
+            one{"i = 0,1 @integer 0, 1 @decimal 0.0~1.5"}
+            other{
+                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3."
+                "5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+            }
+        }
+        set20{
             few{
                 "n = 3..10,13..19 @integer 3~10, 13~19 @decimal 3.0, 4.0, 5.0, 6.0, 7"
                 ".0, 8.0, 9.0, 10.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 3.00"
@@ -457,7 +450,7 @@
                 "00, 2.0000"
             }
         }
-        set22{
+        set21{
             few{
                 "v = 0 and i % 100 = 3..4 or v != 0 @integer 3, 4, 103, 104, 203, 204"
                 ", 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … @decimal"
@@ -473,7 +466,7 @@
                 " 1002, …"
             }
         }
-        set23{
+        set22{
             few{
                 "v = 0 and i % 100 = 3..4 or f % 100 = 3..4 @integer 3, 4, 103, 104, "
                 "203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … "
@@ -496,7 +489,7 @@
                 "7.2, 10.2, 100.2, 1000.2, …"
             }
         }
-        set24{
+        set23{
             many{
                 "v = 0 and n != 0..10 and n % 10 = 0 @integer 20, 30, 40, 50, 60, 70,"
                 " 80, 90, 100, 1000, 10000, 100000, 1000000, …"
@@ -508,7 +501,7 @@
             }
             two{"i = 2 and v = 0 @integer 2"}
         }
-        set25{
+        set24{
             few{"i = 2..4 and v = 0 @integer 2~4"}
             many{
                 "v != 0   @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1"
@@ -517,7 +510,7 @@
             one{"i = 1 and v = 0 @integer 1"}
             other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set26{
+        set25{
             few{
                 "v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 3"
                 "2~34, 42~44, 52~54, 62, 102, 1002, …"
@@ -533,7 +526,7 @@
                 ".0, …"
             }
         }
-        set27{
+        set26{
             few{
                 "n % 10 = 2..4 and n % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~4"
                 "4, 52~54, 62, 102, 1002, … @decimal 2.0, 3.0, 4.0, 22.0, 23.0, 24.0,"
@@ -551,7 +544,7 @@
             }
             other{"   @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …"}
         }
-        set28{
+        set27{
             few{
                 "n % 10 = 2..9 and n % 100 != 11..19 @integer 2~9, 22~29, 102, 1002, "
                 "… @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 22.0, 102.0, 1002"
@@ -569,7 +562,7 @@
                 "1000.0, 10000.0, 100000.0, 1000000.0, …"
             }
         }
-        set29{
+        set28{
             few{
                 "n = 0 or n % 100 = 2..10 @integer 0, 2~10, 102~107, 1002, … @decimal"
                 " 0.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 102.0, 1002.0, …"
@@ -584,14 +577,7 @@
                 ".9, 1.1~1.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
             }
         }
-        set3{
-            one{"i = 1 and v = 0 @integer 1"}
-            other{
-                " @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0"
-                "~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
-        set30{
+        set29{
             few{
                 "v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 3"
                 "2~34, 42~44, 52~54, 62, 102, 1002, …"
@@ -609,7 +595,14 @@
                 ".0, …"
             }
         }
-        set31{
+        set3{
+            one{"i = 0..1 @integer 0, 1 @decimal 0.0~1.5"}
+            other{
+                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3."
+                "5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+            }
+        }
+        set30{
             few{
                 "n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99 @integer 3, 4, 9"
                 ", 23, 24, 29, 33, 34, 39, 43, 44, 49, 103, 1003, … @decimal 3.0, 4.0"
@@ -634,7 +627,7 @@
                 "2.0, 1002.0, …"
             }
         }
-        set32{
+        set31{
             few{
                 "n = 3..6 @integer 3~6 @decimal 3.0, 4.0, 5.0, 6.0, 3.00, 4.00, 5.00,"
                 " 6.00, 3.000, 4.000, 5.000, 6.000, 3.0000, 4.0000, 5.0000, 6.0000"
@@ -651,7 +644,7 @@
             }
             two{"n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000"}
         }
-        set33{
+        set32{
             few{
                 "v = 0 and i % 100 = 0,20,40,60,80 @integer 0, 20, 40, 60, 80, 100, 1"
                 "20, 140, 1000, 10000, 100000, 1000000, …"
@@ -670,7 +663,7 @@
                 "02, …"
             }
         }
-        set34{
+        set33{
             few{
                 "n % 100 = 3..10 @integer 3~10, 103~110, 1003, … @decimal 3.0, 4.0, 5"
                 ".0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …"
@@ -688,7 +681,7 @@
             two{"n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000"}
             zero{"n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000"}
         }
-        set35{
+        set34{
             few{"n = 3 @integer 3 @decimal 3.0, 3.00, 3.000, 3.0000"}
             many{"n = 6 @integer 6 @decimal 6.0, 6.00, 6.000, 6.0000"}
             one{"n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000"}
@@ -700,53 +693,50 @@
             two{"n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000"}
             zero{"n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000"}
         }
-        set36{
+        set35{
             other{" @integer 0~15, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set37{
+        set36{
             one{
                 "n % 10 = 1,2 and n % 100 != 11,12 @integer 1, 2, 21, 22, 31, 32, 41,"
                 " 42, 51, 52, 61, 62, 71, 72, 81, 82, 101, 1001, …"
             }
             other{" @integer 0, 3~17, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set38{
+        set37{
             one{"n = 1 @integer 1"}
             other{" @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set39{
+        set38{
             one{"n = 1,5 @integer 1, 5"}
             other{" @integer 0, 2~4, 6~17, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set4{
-            one{
-                "n = 0,1 or i = 0 and f = 1 @integer 0, 1 @decimal 0.0, 0.1, 1.0, 0.0"
-                "0, 0.01, 1.00, 0.000, 0.001, 1.000, 0.0000, 0.0001, 1.0000"
-            }
-            other{
-                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.2~0."
-                "9, 1.1~1.8, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
-        set40{
+        set39{
             one{"n = 1..4 @integer 1~4"}
             other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set41{
+        set4{
+            one{"i = 1 and v = 0 @integer 1"}
+            other{
+                " @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0"
+                "~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+            }
+        }
+        set40{
             few{
                 "n % 10 = 2,3 and n % 100 != 12,13 @integer 2, 3, 22, 23, 32, 33, 42,"
                 " 43, 52, 53, 62, 63, 72, 73, 82, 83, 102, 1002, …"
             }
             other{" @integer 0, 1, 4~17, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set42{
+        set41{
             few{
                 "n % 10 = 3 and n % 100 != 13 @integer 3, 23, 33, 43, 53, 63, 73, 83,"
                 " 103, 1003, …"
             }
             other{" @integer 0~2, 4~16, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set43{
+        set42{
             many{
                 "n % 10 = 6 or n % 10 = 9 or n % 10 = 0 and n != 0 @integer 6, 9, 10,"
                 " 16, 19, 20, 26, 29, 30, 36, 39, 40, 100, 1000, 10000, 100000, 10000"
@@ -754,16 +744,16 @@
             }
             other{" @integer 0~5, 7, 8, 11~15, 17, 18, 21, 101, 1001, …"}
         }
-        set44{
+        set43{
             many{"n = 11,8,80,800 @integer 8, 11, 80, 800"}
             other{" @integer 0~7, 9, 10, 12~17, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set45{
+        set44{
             many{"i = 0 or i % 100 = 2..20,40,60,80 @integer 0, 2~16, 102, 1002, …"}
             one{"i = 1 @integer 1"}
             other{" @integer 21~36, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set46{
+        set45{
             many{
                 "n % 10 = 4 and n % 100 != 14 @integer 4, 24, 34, 44, 54, 64, 74, 84,"
                 " 104, 1004, …"
@@ -771,7 +761,7 @@
             one{"n = 1 @integer 1"}
             other{" @integer 0, 2, 3, 5~17, 100, 1000, 10000, 100000, 1000000, …"}
         }
-        set47{
+        set46{
             few{
                 "n % 10 = 3 and n % 100 != 13 @integer 3, 23, 33, 43, 53, 63, 73, 83,"
                 " 103, 1003, …"
@@ -786,29 +776,19 @@
                 " 102, 1002, …"
             }
         }
-        set48{
+        set47{
             few{"n = 4 @integer 4"}
             one{"n = 1 @integer 1"}
             other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}
             two{"n = 2,3 @integer 2, 3"}
         }
-        set49{
+        set48{
             few{"n = 4 @integer 4"}
             one{"n = 1,3 @integer 1, 3"}
             other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}
             two{"n = 2 @integer 2"}
         }
-        set5{
-            one{
-                "n = 0..1 @integer 0, 1 @decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, "
-                "0.0000, 1.0000"
-            }
-            other{
-                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0."
-                "9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
-        set50{
+        set49{
             many{
                 "i % 10 = 7,8 and i % 100 != 17,18 @integer 7, 8, 27, 28, 37, 38, 47,"
                 " 48, 57, 58, 67, 68, 77, 78, 87, 88, 107, 1007, …"
@@ -823,7 +803,17 @@
                 " 102, 1002, …"
             }
         }
-        set51{
+        set5{
+            one{
+                "n = 0,1 or i = 0 and f = 1 @integer 0, 1 @decimal 0.0, 0.1, 1.0, 0.0"
+                "0, 0.01, 1.00, 0.000, 0.001, 1.000, 0.0000, 0.0001, 1.0000"
+            }
+            other{
+                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.2~0."
+                "9, 1.1~1.8, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+            }
+        }
+        set50{
             few{
                 "i % 10 = 3,4 or i % 1000 = 100,200,300,400,500,600,700,800,900 @inte"
                 "ger 3, 4, 13, 14, 23, 24, 33, 34, 43, 44, 53, 54, 63, 64, 73, 74, 10"
@@ -842,21 +832,21 @@
                 "00000, 1000000, …"
             }
         }
-        set52{
+        set51{
             few{"n = 4 @integer 4"}
             many{"n = 6 @integer 6"}
             one{"n = 1 @integer 1"}
             other{" @integer 0, 5, 7~20, 100, 1000, 10000, 100000, 1000000, …"}
             two{"n = 2,3 @integer 2, 3"}
         }
-        set53{
+        set52{
             few{"n = 4 @integer 4"}
             many{"n = 6 @integer 6"}
             one{"n = 1,5,7,8,9,10 @integer 1, 5, 7~10"}
             other{" @integer 0, 11~25, 100, 1000, 10000, 100000, 1000000, …"}
             two{"n = 2,3 @integer 2, 3"}
         }
-        set54{
+        set53{
             few{"n = 3,4 @integer 3, 4"}
             many{"n = 5,6 @integer 5, 6"}
             one{"n = 1 @integer 1"}
@@ -866,6 +856,16 @@
         }
         set6{
             one{
+                "n = 0..1 @integer 0, 1 @decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, "
+                "0.0000, 1.0000"
+            }
+            other{
+                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0."
+                "9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+            }
+        }
+        set7{
+            one{
                 "n = 0..1 or n = 11..99 @integer 0, 1, 11~24 @decimal 0.0, 1.0, 11.0,"
                 " 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 2"
                 "3.0, 24.0"
@@ -875,16 +875,6 @@
                 "1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
             }
         }
-        set7{
-            one{
-                "n = 0..2 and n != 2 @integer 0, 1 @decimal 0.0, 1.0, 0.00, 1.00, 0.0"
-                "00, 1.000, 0.0000, 1.0000"
-            }
-            other{
-                " @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0."
-                "9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
-            }
-        }
         set8{
             one{"n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000"}
             other{
@@ -893,10 +883,10 @@
             }
         }
         set9{
-            one{"n = 1 and v = 0 @integer 1"}
+            one{"n = 1 or t != 0 and i = 0,1 @integer 1 @decimal 0.1~1.6"}
             other{
                 " @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0"
-                "~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
+                ", 2.0~3.4, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
             }
         }
     }
diff --git a/source/data/misc/supplementalData.txt b/source/data/misc/supplementalData.txt
index f57d7f9..3a46a4f 100644
--- a/source/data/misc/supplementalData.txt
+++ b/source/data/misc/supplementalData.txt
@@ -1841,7 +1841,7 @@
             "islamic-tbla",
         }
     }
-    cldrVersion{"30.0.2"}
+    cldrVersion{"31.0.1"}
     codeMappings{
         {
             "AA",
@@ -4230,7 +4230,6 @@
                 "BTN",
                 "BWP",
                 "BYN",
-                "BYR",
                 "BZD",
                 "CAD",
                 "CDF",
@@ -7356,20 +7355,53 @@
                 "ba01~9",
                 "ba10",
                 "bh16",
+                "cdbn",
+                "cdka",
+                "cdkw",
+                "cdor",
                 "ci01~9",
                 "ci10~9",
                 "cn71",
                 "cn91~2",
+                "cz10a~f",
+                "cz611~5",
+                "cz621~7",
+                "czjc",
+                "czjm",
+                "czka",
+                "czkr",
+                "czli",
+                "czmo",
+                "czol",
+                "czpa",
+                "czpl",
+                "czpr",
+                "czst",
+                "czus",
+                "czvy",
+                "czzl",
+                "escn",
+                "fi01",
+                "fra~b",
                 "frbl",
+                "frc",
+                "frcp",
+                "frd~g",
                 "frgf",
                 "frgp",
+                "frh~m",
                 "frmf",
                 "frmq",
+                "frn",
                 "frnc",
+                "fro~p",
                 "frpf",
                 "frpm",
+                "frq~r",
                 "frre",
+                "frs~t",
                 "frtf",
+                "fru~v",
                 "frwf",
                 "fryt",
                 "gbant",
@@ -7397,6 +7429,18 @@
                 "gbnym",
                 "gbomh",
                 "gbstb",
+                "gr01",
+                "gr03~7",
+                "gr11~7",
+                "gr21~4",
+                "gr31~4",
+                "gr41~4",
+                "gr51~9",
+                "gr61~4",
+                "gr71~3",
+                "gr81~5",
+                "gr91~4",
+                "gra1",
                 "is0",
                 "laxn",
                 "lud",
@@ -7415,6 +7459,7 @@
                 "mk79",
                 "mk84",
                 "mrnkc",
+                "mxdif",
                 "nlaw",
                 "nlcw",
                 "nlsx",
@@ -7422,6 +7467,7 @@
                 "nzs",
                 "omba",
                 "omsh",
+                "shta",
                 "tteto",
                 "ttrcm",
                 "ttwto",
@@ -7429,6 +7475,7 @@
                 "twtnq",
                 "twtpq",
                 "twtxq",
+                "ug331",
                 "usas",
                 "usgu",
                 "usmp",
@@ -7610,7 +7657,7 @@
                 "bd40~9",
                 "bd50~9",
                 "bd60~4",
-                "bda~g",
+                "bda~h",
                 "bebru",
                 "bevan",
                 "bevbr",
@@ -7812,16 +7859,29 @@
                 "cask",
                 "cayt",
                 "cdbc",
-                "cdbn",
+                "cdbu",
                 "cdeq",
-                "cdka",
+                "cdhk~l",
+                "cdhu",
+                "cdit",
+                "cdkc",
                 "cdke",
+                "cdkg",
+                "cdkl",
                 "cdkn",
-                "cdkw",
+                "cdks",
+                "cdlo",
+                "cdlu",
                 "cdma",
+                "cdmn~o",
                 "cdnk",
-                "cdor",
+                "cdnu",
+                "cdsa",
                 "cdsk",
+                "cdsu",
+                "cdta",
+                "cdto",
+                "cdtu",
                 "cfac",
                 "cfbb",
                 "cfbgf",
@@ -7980,36 +8040,37 @@
                 "cvta",
                 "cvts",
                 "cy01~6",
+                "cz10",
                 "cz101~9",
-                "cz10a~f",
+                "cz110~9",
+                "cz120~2",
+                "cz20",
                 "cz201~9",
                 "cz20a~c",
+                "cz31",
                 "cz311~7",
+                "cz32",
                 "cz321~7",
+                "cz41",
                 "cz411~3",
+                "cz42",
                 "cz421~7",
+                "cz51",
                 "cz511~4",
+                "cz52",
                 "cz521~5",
+                "cz53",
                 "cz531~4",
-                "cz611~5",
-                "cz621~7",
+                "cz63",
+                "cz631~5",
+                "cz64",
+                "cz641~7",
+                "cz71",
                 "cz711~5",
+                "cz72",
                 "cz721~4",
+                "cz80",
                 "cz801~6",
-                "czjc",
-                "czjm",
-                "czka",
-                "czkr",
-                "czli",
-                "czmo",
-                "czol",
-                "czpa",
-                "czpl",
-                "czpr",
-                "czst",
-                "czus",
-                "czvy",
-                "czzl",
                 "debb",
                 "debe",
                 "debw",
@@ -8110,7 +8171,8 @@
                 "esc",
                 "esca~c",
                 "esce",
-                "escl~o",
+                "escl~m",
+                "esco",
                 "escr~u",
                 "esex",
                 "esga",
@@ -8165,7 +8227,7 @@
                 "etor",
                 "etsn~o",
                 "etti",
-                "fi01~9",
+                "fi02~9",
                 "fi10~9",
                 "fj01~9",
                 "fj10~4",
@@ -8189,9 +8251,22 @@
                 "fr70~9",
                 "fr80~9",
                 "fr90~5",
-                "fra~c",
-                "frcp",
-                "frd~v",
+                "frara",
+                "frbfc",
+                "frbre",
+                "frcor",
+                "frcvl",
+                "frges",
+                "frgua",
+                "frhdf",
+                "fridf",
+                "frlre",
+                "frmay",
+                "frnaq",
+                "frnor",
+                "frocc",
+                "frpac",
+                "frpdl",
                 "ga1~9",
                 "gbabc~e",
                 "gbagb",
@@ -8481,21 +8556,8 @@
                 "gqkn",
                 "gqli",
                 "gqwn",
-                "gr01",
-                "gr03~7",
-                "gr11~7",
-                "gr21~4",
-                "gr31~4",
-                "gr41~4",
-                "gr51~9",
-                "gr61~4",
                 "gr69",
-                "gr71~3",
-                "gr81~5",
-                "gr91~4",
-                "gra",
-                "gra1",
-                "grb~m",
+                "gra~m",
                 "gtav",
                 "gtbv",
                 "gtcm",
@@ -8889,6 +8951,7 @@
                 "kzalm",
                 "kzast",
                 "kzaty",
+                "kzbay",
                 "kzkar",
                 "kzkus",
                 "kzkzy",
@@ -9291,9 +9354,9 @@
                 "mxcam",
                 "mxchh",
                 "mxchp",
+                "mxcmx",
                 "mxcoa",
                 "mxcol",
-                "mxdif",
                 "mxdur",
                 "mxgro",
                 "mxgua",
@@ -9825,7 +9888,6 @@
                 "sg01~5",
                 "shac",
                 "shhl",
-                "shta",
                 "si001~9",
                 "si010~9",
                 "si020~9",
@@ -9848,7 +9910,7 @@
                 "si180~9",
                 "si190~9",
                 "si200~9",
-                "si210~2",
+                "si210~3",
                 "skbc",
                 "skbl",
                 "skki",
@@ -9987,6 +10049,7 @@
                 "tjdu",
                 "tjgb",
                 "tjkt",
+                "tjra",
                 "tjsu",
                 "tlal",
                 "tlan",
@@ -10109,10 +10172,10 @@
                 "ug301~9",
                 "ug310~9",
                 "ug320~9",
-                "ug330~1",
+                "ug330",
                 "ug401~9",
                 "ug410~9",
-                "ug420~5",
+                "ug420~6",
                 "ugc",
                 "uge",
                 "ugn",
@@ -10743,6 +10806,7 @@
                 "nulik",
                 "osojs",
                 "oxendict",
+                "pahawh2~4",
                 "pamaka",
                 "petr1708",
                 "pinyin",
@@ -11566,10 +11630,10 @@
         }
         ccp{
             primary{
-                scripts{"Beng"}
-            }
-            secondary{
-                scripts{"Cakm"}
+                scripts{
+                    "Beng",
+                    "Cakm",
+                }
             }
         }
         ce{
@@ -11832,7 +11896,6 @@
                     "BE",
                     "CH",
                     "DE",
-                    "IT",
                     "LI",
                     "LU",
                 }
@@ -12998,6 +13061,11 @@
                 scripts{"Arab"}
             }
         }
+        ife{
+            primary{
+                scripts{"Latn"}
+            }
+        }
         ig{
             primary{
                 scripts{"Latn"}
@@ -13061,6 +13129,7 @@
                     "CH",
                     "IT",
                     "SM",
+                    "VA",
                 }
             }
             secondary{
@@ -13070,7 +13139,6 @@
                     "HR",
                     "MT",
                     "US",
-                    "VA",
                 }
             }
         }
@@ -13118,9 +13186,6 @@
             primary{
                 scripts{"Deva"}
             }
-            secondary{
-                territories{"NP"}
-            }
         }
         jpr{
             primary{
@@ -14353,9 +14418,6 @@
             primary{
                 scripts{"Deva"}
             }
-            secondary{
-                territories{"NP"}
-            }
         }
         ng{
             primary{
@@ -16476,6 +16538,66 @@
     languageMatching{
         written{
             {
+                "nb",
+                "no",
+                "99",
+                "0",
+            }
+            {
+                "hr",
+                "bs",
+                "96",
+                "0",
+            }
+            {
+                "sh",
+                "bs",
+                "96",
+                "0",
+            }
+            {
+                "sh",
+                "hr",
+                "96",
+                "0",
+            }
+            {
+                "sh",
+                "sr",
+                "96",
+                "0",
+            }
+            {
+                "ssy",
+                "aa",
+                "96",
+                "0",
+            }
+            {
+                "gsw",
+                "de",
+                "96",
+                "1",
+            }
+            {
+                "lb",
+                "de",
+                "96",
+                "1",
+            }
+            {
+                "da",
+                "no",
+                "92",
+                "0",
+            }
+            {
+                "da",
+                "nb",
+                "92",
+                "0",
+            }
+            {
                 "ab",
                 "ru",
                 "90",
@@ -16512,13 +16634,19 @@
                 "1",
             }
             {
+                "az",
+                "ru",
+                "90",
+                "1",
+            }
+            {
                 "az_Latn",
                 "ru_Cyrl",
                 "90",
                 "1",
             }
             {
-                "az",
+                "be",
                 "ru",
                 "90",
                 "1",
@@ -16530,30 +16658,24 @@
                 "1",
             }
             {
-                "be",
-                "ru",
-                "90",
-                "1",
-            }
-            {
-                "bh",
+                "bho",
                 "hi",
                 "90",
                 "1",
             }
             {
-                "bn_Beng",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "bn",
                 "en",
                 "90",
                 "1",
             }
             {
+                "bn_Beng",
+                "en_Latn",
+                "90",
+                "1",
+            }
+            {
                 "br",
                 "fr",
                 "90",
@@ -16578,12 +16700,6 @@
                 "1",
             }
             {
-                "ckb",
-                "ku",
-                "92",
-                "0",
-            }
-            {
                 "co",
                 "fr",
                 "90",
@@ -16602,72 +16718,18 @@
                 "1",
             }
             {
-                "da",
-                "nb",
-                "92",
-                "0",
-            }
-            {
-                "da",
-                "no",
-                "92",
-                "0",
-            }
-            {
                 "ee",
                 "en",
                 "90",
                 "1",
             }
             {
-                "en_*_001",
-                "en_*_*",
-                "96",
-                "0",
-            }
-            {
-                "en_*_GB",
-                "en_*_*",
-                "96",
-                "0",
-            }
-            {
-                "en_*_US",
-                "en_*_*",
-                "94",
-                "0",
-            }
-            {
-                "en_*_*",
-                "en_*_*",
-                "95",
-                "0",
-            }
-            {
                 "eo",
                 "en",
                 "90",
                 "1",
             }
             {
-                "es_*_419",
-                "es_*_*",
-                "96",
-                "0",
-            }
-            {
-                "es_*_ES",
-                "es_*_*",
-                "92",
-                "0",
-            }
-            {
-                "es_*_*",
-                "es_*_*",
-                "95",
-                "0",
-            }
-            {
                 "et",
                 "fi",
                 "90",
@@ -16692,13 +16754,13 @@
                 "1",
             }
             {
-                "gaa",
+                "ga",
                 "en",
                 "90",
                 "1",
             }
             {
-                "ga",
+                "gaa",
                 "en",
                 "90",
                 "1",
@@ -16722,12 +16784,6 @@
                 "1",
             }
             {
-                "gsw",
-                "de",
-                "96",
-                "1",
-            }
-            {
                 "gu",
                 "hi",
                 "90",
@@ -16746,26 +16802,20 @@
                 "1",
             }
             {
-                "hr",
-                "bs",
-                "96",
-                "0",
-            }
-            {
                 "ht",
                 "fr",
                 "90",
                 "1",
             }
             {
-                "hy_Armn",
-                "ru_Cyrl",
+                "hy",
+                "ru",
                 "90",
                 "1",
             }
             {
-                "hy",
-                "ru",
+                "hy_Armn",
+                "ru_Cyrl",
                 "90",
                 "1",
             }
@@ -16818,19 +16868,13 @@
                 "1",
             }
             {
-                "km_Khmr",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "km",
                 "en",
                 "90",
                 "1",
             }
             {
-                "kn_Knda",
+                "km_Khmr",
                 "en_Latn",
                 "90",
                 "1",
@@ -16842,16 +16886,16 @@
                 "1",
             }
             {
-                "kri",
-                "en",
+                "kn_Knda",
+                "en_Latn",
                 "90",
                 "1",
             }
             {
-                "ku",
-                "ckb",
-                "96",
-                "0",
+                "kri",
+                "en",
+                "90",
+                "1",
             }
             {
                 "ku",
@@ -16872,12 +16916,6 @@
                 "1",
             }
             {
-                "lb",
-                "de",
-                "96",
-                "1",
-            }
-            {
                 "lg",
                 "en",
                 "90",
@@ -16890,14 +16928,14 @@
                 "1",
             }
             {
-                "lo_Laoo",
-                "en_Latn",
+                "lo",
+                "en",
                 "90",
                 "1",
             }
             {
-                "lo",
-                "en",
+                "lo_Laoo",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -16938,14 +16976,14 @@
                 "1",
             }
             {
-                "ml_Mlym",
-                "en_Latn",
+                "ml",
+                "en",
                 "90",
                 "1",
             }
             {
-                "ml",
-                "en",
+                "ml_Mlym",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -16974,25 +17012,13 @@
                 "1",
             }
             {
-                "my_Mymr",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "my",
                 "en",
                 "90",
                 "1",
             }
             {
-                "nb",
-                "no",
-                "99",
-                "0",
-            }
-            {
-                "ne_Deva",
+                "my_Mymr",
                 "en_Latn",
                 "90",
                 "1",
@@ -17004,8 +17030,8 @@
                 "1",
             }
             {
-                "nn",
-                "nb",
+                "ne_Deva",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -17016,6 +17042,12 @@
                 "0",
             }
             {
+                "nn",
+                "nb",
+                "90",
+                "1",
+            }
+            {
                 "nso",
                 "en",
                 "90",
@@ -17046,19 +17078,13 @@
                 "1",
             }
             {
-                "or_Orya",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "or",
                 "en",
                 "90",
                 "1",
             }
             {
-                "pa_Guru",
+                "or_Orya",
                 "en_Latn",
                 "90",
                 "1",
@@ -17070,14 +17096,14 @@
                 "1",
             }
             {
-                "pcm",
-                "en",
+                "pa_Guru",
+                "en_Latn",
                 "90",
                 "1",
             }
             {
-                "ps_Arab",
-                "en_Latn",
+                "pcm",
+                "en",
                 "90",
                 "1",
             }
@@ -17088,28 +17114,10 @@
                 "1",
             }
             {
-                "pt_*_BR",
-                "pt_*_US",
-                "96",
-                "0",
-            }
-            {
-                "pt_*_BR",
-                "pt_*_*",
-                "92",
-                "0",
-            }
-            {
-                "pt_*_US",
-                "pt_*_*",
-                "92",
-                "0",
-            }
-            {
-                "pt_*_*",
-                "pt_*_*",
-                "96",
-                "0",
+                "ps_Arab",
+                "en_Latn",
+                "90",
+                "1",
             }
             {
                 "qu",
@@ -17142,37 +17150,13 @@
                 "1",
             }
             {
-                "sd_Arab",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "sd",
                 "en",
                 "90",
                 "1",
             }
             {
-                "sh",
-                "bs",
-                "96",
-                "0",
-            }
-            {
-                "sh",
-                "hr",
-                "96",
-                "0",
-            }
-            {
-                "sh",
-                "sr",
-                "96",
-                "0",
-            }
-            {
-                "si_Sinh",
+                "sd_Arab",
                 "en_Latn",
                 "90",
                 "1",
@@ -17184,6 +17168,12 @@
                 "1",
             }
             {
+                "si_Sinh",
+                "en_Latn",
+                "90",
+                "1",
+            }
+            {
                 "sn",
                 "en",
                 "90",
@@ -17202,30 +17192,6 @@
                 "1",
             }
             {
-                "sr_Latn",
-                "sr_Cyrl",
-                "95",
-                "0",
-            }
-            {
-                "sr",
-                "bs",
-                "96",
-                "0",
-            }
-            {
-                "sr",
-                "hr",
-                "96",
-                "0",
-            }
-            {
-                "ssy",
-                "aa",
-                "96",
-                "0",
-            }
-            {
                 "st",
                 "en",
                 "90",
@@ -17244,19 +17210,13 @@
                 "1",
             }
             {
-                "ta_Taml",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "ta",
                 "en",
                 "90",
                 "1",
             }
             {
-                "te_Telu",
+                "ta_Taml",
                 "en_Latn",
                 "90",
                 "1",
@@ -17268,14 +17228,14 @@
                 "1",
             }
             {
-                "tg",
-                "ru",
+                "te_Telu",
+                "en_Latn",
                 "90",
                 "1",
             }
             {
-                "ti_Ethi",
-                "en_Latn",
+                "tg",
+                "ru",
                 "90",
                 "1",
             }
@@ -17286,8 +17246,8 @@
                 "1",
             }
             {
-                "tk_Latn",
-                "ru_Cyrl",
+                "ti_Ethi",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -17298,6 +17258,12 @@
                 "1",
             }
             {
+                "tk_Latn",
+                "ru_Cyrl",
+                "90",
+                "1",
+            }
+            {
                 "tlh",
                 "en",
                 "90",
@@ -17334,20 +17300,14 @@
                 "1",
             }
             {
-                "ur_Arab",
-                "en_Latn",
-                "90",
-                "1",
-            }
-            {
                 "ur",
                 "en",
                 "90",
                 "1",
             }
             {
-                "uz_Latn",
-                "ru_Cyrl",
+                "ur_Arab",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -17358,6 +17318,12 @@
                 "1",
             }
             {
+                "uz_Latn",
+                "ru_Cyrl",
+                "90",
+                "1",
+            }
+            {
                 "wo",
                 "fr",
                 "90",
@@ -17370,14 +17336,14 @@
                 "1",
             }
             {
-                "yi_Hebr",
-                "en_Latn",
+                "yi",
+                "en",
                 "90",
                 "1",
             }
             {
-                "yi",
-                "en",
+                "yi_Hebr",
+                "en_Latn",
                 "90",
                 "1",
             }
@@ -17388,45 +17354,1081 @@
                 "1",
             }
             {
-                "zh_Hant_HK",
-                "zh_Hant_MO",
-                "97",
-                "0",
-            }
-            {
                 "zu",
                 "en",
                 "90",
                 "1",
             }
             {
-                "*_Hans",
-                "*_Hant",
+                "sr_Latn",
+                "sr_Cyrl",
+                "95",
+                "0",
+            }
+            {
+                "zh_Hans",
+                "zh_Hant",
                 "85",
                 "1",
             }
             {
-                "*_Hant",
-                "*_Hans",
+                "zh_Hant",
+                "zh_Hans",
                 "81",
                 "1",
             }
             {
-                "*_*_*",
-                "*_*_*",
+                "zh_Hant_HK",
+                "zh_Hant_MO",
+                "97",
+                "0",
+            }
+            {
+                "pt_*_BR",
+                "pt_*_US",
                 "96",
                 "0",
             }
             {
+                "pt_*_US",
+                "pt_*_*",
+                "92",
+                "0",
+            }
+            {
+                "pt_*_BR",
+                "pt_*_*",
+                "92",
+                "0",
+            }
+            {
+                "pt_*_*",
+                "pt_*_*",
+                "96",
+                "0",
+            }
+            {
+                "en_*_US",
+                "en_*_*",
+                "94",
+                "0",
+            }
+            {
+                "en_*_GB",
+                "en_*_*",
+                "96",
+                "0",
+            }
+            {
+                "en_*_001",
+                "en_*_*",
+                "96",
+                "0",
+            }
+            {
+                "en_*_*",
+                "en_*_*",
+                "95",
+                "0",
+            }
+            {
+                "es_*_ES",
+                "es_*_*",
+                "92",
+                "0",
+            }
+            {
+                "es_*_419",
+                "es_*_*",
+                "96",
+                "0",
+            }
+            {
+                "es_*_*",
+                "es_*_*",
+                "95",
+                "0",
+            }
+            {
+                "*",
+                "*",
+                "20",
+                "0",
+            }
+            {
                 "*_*",
                 "*_*",
                 "60",
                 "0",
             }
             {
+                "*_*_*",
+                "*_*_*",
+                "96",
+                "0",
+            }
+        }
+    }
+    languageMatchingInfo{
+        written{
+            matchVariable{
+                americas{"019"}
+                cnsar{"HK+MO"}
+                enUS{"AS+GU+MH+MP+PR+UM+US+VI"}
+                maghreb{"MA+DZ+TN+LY+MR+EH"}
+            }
+            paradigmLocales{
+                "en",
+                "en-GB",
+                "es",
+                "es-419",
+                "pt-BR",
+                "pt-PT",
+            }
+        }
+    }
+    languageMatchingNew{
+        written{
+            {
+                "no",
+                "nb",
+                "1",
+                "0",
+            }
+            {
+                "hr",
+                "bs",
+                "4",
+                "0",
+            }
+            {
+                "sh",
+                "bs",
+                "4",
+                "0",
+            }
+            {
+                "sh",
+                "hr",
+                "4",
+                "0",
+            }
+            {
+                "sh",
+                "sr",
+                "4",
+                "0",
+            }
+            {
+                "ssy",
+                "aa",
+                "4",
+                "0",
+            }
+            {
+                "gsw",
+                "de",
+                "4",
+                "1",
+            }
+            {
+                "lb",
+                "de",
+                "4",
+                "1",
+            }
+            {
+                "da",
+                "no",
+                "8",
+                "0",
+            }
+            {
+                "da",
+                "nb",
+                "8",
+                "0",
+            }
+            {
+                "ab",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "ach",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "af",
+                "nl",
+                "10",
+                "1",
+            }
+            {
+                "ak",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ay",
+                "es",
+                "10",
+                "1",
+            }
+            {
+                "az",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "be",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "bem",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "bh",
+                "hi",
+                "10",
+                "1",
+            }
+            {
+                "bn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "br",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "ceb",
+                "fil",
+                "10",
+                "1",
+            }
+            {
+                "chr",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ckb",
+                "ar",
+                "10",
+                "1",
+            }
+            {
+                "co",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "crs",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "cy",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ee",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "eo",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "et",
+                "fi",
+                "10",
+                "1",
+            }
+            {
+                "eu",
+                "es",
+                "10",
+                "1",
+            }
+            {
+                "fo",
+                "da",
+                "10",
+                "1",
+            }
+            {
+                "fy",
+                "nl",
+                "10",
+                "1",
+            }
+            {
+                "ga",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "gaa",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "gd",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "gl",
+                "es",
+                "10",
+                "1",
+            }
+            {
+                "gn",
+                "es",
+                "10",
+                "1",
+            }
+            {
+                "gu",
+                "hi",
+                "10",
+                "1",
+            }
+            {
+                "ha",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "haw",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ht",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "hy",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "ia",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ig",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "is",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "jv",
+                "id",
+                "10",
+                "1",
+            }
+            {
+                "ka",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "kg",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "kk",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "km",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "kn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "kri",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ku",
+                "tr",
+                "10",
+                "1",
+            }
+            {
+                "ky",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "la",
+                "it",
+                "10",
+                "1",
+            }
+            {
+                "lg",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ln",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "lo",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "loz",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "lua",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "mfe",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "mg",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "mi",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "mk",
+                "bg",
+                "10",
+                "1",
+            }
+            {
+                "ml",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "mn",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "mr",
+                "hi",
+                "10",
+                "1",
+            }
+            {
+                "ms",
+                "id",
+                "10",
+                "1",
+            }
+            {
+                "mt",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "my",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ne",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "nn",
+                "nb",
+                "10",
+                "0",
+            }
+            {
+                "nn",
+                "no",
+                "10",
+                "1",
+            }
+            {
+                "nso",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ny",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "nyn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "oc",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "om",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "or",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "pa",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "pcm",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ps",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "qu",
+                "es",
+                "10",
+                "1",
+            }
+            {
+                "rm",
+                "de",
+                "10",
+                "1",
+            }
+            {
+                "rn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "rw",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "sa",
+                "hi",
+                "10",
+                "1",
+            }
+            {
+                "sd",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "si",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "sn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "so",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "sq",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "st",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "su",
+                "id",
+                "10",
+                "1",
+            }
+            {
+                "sw",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ta",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "te",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "tg",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "ti",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "tk",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "tlh",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "tn",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "to",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "tt",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "tum",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "ug",
+                "zh",
+                "10",
+                "1",
+            }
+            {
+                "ur",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "uz",
+                "ru",
+                "10",
+                "1",
+            }
+            {
+                "wo",
+                "fr",
+                "10",
+                "1",
+            }
+            {
+                "xh",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "yi",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "yo",
+                "en",
+                "10",
+                "1",
+            }
+            {
+                "zu",
+                "en",
+                "10",
+                "1",
+            }
+            {
                 "*",
                 "*",
-                "20",
+                "80",
+                "0",
+            }
+            {
+                "az_Latn",
+                "ru_Cyrl",
+                "10",
+                "1",
+            }
+            {
+                "bn_Beng",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "hy_Armn",
+                "ru_Cyrl",
+                "10",
+                "1",
+            }
+            {
+                "ka_Geor",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "km_Khmr",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "kn_Knda",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "lo_Laoo",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "ml_Mlym",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "my_Mymr",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "ne_Deva",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "or_Orya",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "pa_Guru",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "ps_Arab",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "sd_Arab",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "si_Sinh",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "ta_Taml",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "te_Telu",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "ti_Ethi",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "tk_Latn",
+                "ru_Cyrl",
+                "10",
+                "1",
+            }
+            {
+                "ur_Arab",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "uz_Latn",
+                "ru_Cyrl",
+                "10",
+                "1",
+            }
+            {
+                "yi_Hebr",
+                "en_Latn",
+                "10",
+                "1",
+            }
+            {
+                "sr_Latn",
+                "sr_Cyrl",
+                "5",
+                "0",
+            }
+            {
+                "zh_Hans",
+                "zh_Hant",
+                "15",
+                "1",
+            }
+            {
+                "zh_Hant",
+                "zh_Hans",
+                "19",
+                "1",
+            }
+            {
+                "*_*",
+                "*_*",
+                "50",
+                "0",
+            }
+            {
+                "ar_*_$maghreb",
+                "ar_*_$maghreb",
+                "4",
+                "0",
+            }
+            {
+                "ar_*_$!maghreb",
+                "ar_*_$!maghreb",
+                "4",
+                "0",
+            }
+            {
+                "ar_*_*",
+                "ar_*_*",
+                "5",
+                "0",
+            }
+            {
+                "en_*_$enUS",
+                "en_*_$enUS",
+                "4",
+                "0",
+            }
+            {
+                "en_*_$!enUS",
+                "en_*_$!enUS",
+                "4",
+                "0",
+            }
+            {
+                "en_*_*",
+                "en_*_*",
+                "5",
+                "0",
+            }
+            {
+                "es_*_$americas",
+                "es_*_$americas",
+                "4",
+                "0",
+            }
+            {
+                "es_*_$!americas",
+                "es_*_$!americas",
+                "4",
+                "0",
+            }
+            {
+                "es_*_*",
+                "es_*_*",
+                "5",
+                "0",
+            }
+            {
+                "pt_*_$americas",
+                "pt_*_$americas",
+                "4",
+                "0",
+            }
+            {
+                "pt_*_$!americas",
+                "pt_*_$!americas",
+                "4",
+                "0",
+            }
+            {
+                "pt_*_*",
+                "pt_*_*",
+                "5",
+                "0",
+            }
+            {
+                "zh_Hant_$cnsar",
+                "zh_Hant_$cnsar",
+                "4",
+                "0",
+            }
+            {
+                "zh_Hant_$!cnsar",
+                "zh_Hant_$!cnsar",
+                "4",
+                "0",
+            }
+            {
+                "zh_Hant_*",
+                "zh_Hant_*",
+                "5",
+                "0",
+            }
+            {
+                "*_*_*",
+                "*_*_*",
+                "4",
                 "0",
             }
         }
@@ -17664,6 +18666,7 @@
             "es_AR",
             "es_BO",
             "es_BR",
+            "es_BZ",
             "es_CL",
             "es_CO",
             "es_CR",
@@ -17719,5797 +18722,5734 @@
     }
     subdivisionContainment{
         AD{
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
+            "ad02",
+            "ad03",
+            "ad04",
+            "ad05",
+            "ad06",
+            "ad07",
+            "ad08",
         }
         AE{
-            "AJ",
-            "AZ",
-            "DU",
-            "FU",
-            "RK",
-            "SH",
-            "UQ",
+            "aeaj",
+            "aeaz",
+            "aedu",
+            "aefu",
+            "aerk",
+            "aesh",
+            "aeuq",
         }
         AF{
-            "BAL",
-            "BAM",
-            "BDG",
-            "BDS",
-            "BGL",
-            "DAY",
-            "FRA",
-            "FYB",
-            "GHA",
-            "GHO",
-            "HEL",
-            "HER",
-            "JOW",
-            "KAB",
-            "KAN",
-            "KAP",
-            "KDZ",
-            "KHO",
-            "KNR",
-            "LAG",
-            "LOG",
-            "NAN",
-            "NIM",
-            "NUR",
-            "PAN",
-            "PAR",
-            "PIA",
-            "PKA",
-            "SAM",
-            "SAR",
-            "TAK",
-            "URU",
-            "WAR",
-            "ZAB",
+            "afbal",
+            "afbam",
+            "afbdg",
+            "afbds",
+            "afbgl",
+            "afday",
+            "affra",
+            "affyb",
+            "afgha",
+            "afgho",
+            "afhel",
+            "afher",
+            "afjow",
+            "afkab",
+            "afkan",
+            "afkap",
+            "afkdz",
+            "afkho",
+            "afknr",
+            "aflag",
+            "aflog",
+            "afnan",
+            "afnim",
+            "afnur",
+            "afpan",
+            "afpar",
+            "afpia",
+            "afpka",
+            "afsam",
+            "afsar",
+            "aftak",
+            "afuru",
+            "afwar",
+            "afzab",
         }
         AG{
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "10",
-            "11",
+            "ag03",
+            "ag04",
+            "ag05",
+            "ag06",
+            "ag07",
+            "ag08",
+            "ag10",
+            "ag11",
         }
         AL{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
+            "al01",
+            "al02",
+            "al03",
+            "al04",
+            "al05",
+            "al06",
+            "al07",
+            "al08",
+            "al09",
+            "al10",
+            "al11",
+            "al12",
         }
         AM{
-            "AG",
-            "AR",
-            "AV",
-            "ER",
-            "GR",
-            "KT",
-            "LO",
-            "SH",
-            "SU",
-            "TV",
-            "VD",
+            "amag",
+            "amar",
+            "amav",
+            "amer",
+            "amgr",
+            "amkt",
+            "amlo",
+            "amsh",
+            "amsu",
+            "amtv",
+            "amvd",
         }
         AO{
-            "BGO",
-            "BGU",
-            "BIE",
-            "CAB",
-            "CCU",
-            "CNN",
-            "CNO",
-            "CUS",
-            "HUA",
-            "HUI",
-            "LNO",
-            "LSU",
-            "LUA",
-            "MAL",
-            "MOX",
-            "NAM",
-            "UIG",
-            "ZAI",
+            "aobgo",
+            "aobgu",
+            "aobie",
+            "aocab",
+            "aoccu",
+            "aocnn",
+            "aocno",
+            "aocus",
+            "aohua",
+            "aohui",
+            "aolno",
+            "aolsu",
+            "aolua",
+            "aomal",
+            "aomox",
+            "aonam",
+            "aouig",
+            "aozai",
         }
         AR{
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "J",
-            "K",
-            "L",
-            "M",
-            "N",
-            "P",
-            "Q",
-            "R",
-            "S",
-            "T",
-            "U",
-            "V",
-            "W",
-            "X",
-            "Y",
-            "Z",
+            "ara",
+            "arb",
+            "arc",
+            "ard",
+            "are",
+            "arf",
+            "arg",
+            "arh",
+            "arj",
+            "ark",
+            "arl",
+            "arm",
+            "arn",
+            "arp",
+            "arq",
+            "arr",
+            "ars",
+            "art",
+            "aru",
+            "arv",
+            "arw",
+            "arx",
+            "ary",
+            "arz",
         }
         AT{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
+            "at1",
+            "at2",
+            "at3",
+            "at4",
+            "at5",
+            "at6",
+            "at7",
+            "at8",
+            "at9",
         }
         AU{
-            "ACT",
-            "NSW",
-            "NT",
-            "QLD",
-            "SA",
-            "TAS",
-            "VIC",
-            "WA",
+            "auact",
+            "aunsw",
+            "aunt",
+            "auqld",
+            "ausa",
+            "autas",
+            "auvic",
+            "auwa",
         }
         AZ{
-            "ABS",
-            "AGA",
-            "AGC",
-            "AGM",
-            "AGS",
-            "AGU",
-            "AST",
-            "BA",
-            "BAL",
-            "BAR",
-            "BEY",
-            "BIL",
-            "CAB",
-            "CAL",
-            "DAS",
-            "FUZ",
-            "GA",
-            "GAD",
-            "GOR",
-            "GOY",
-            "GYG",
-            "HAC",
-            "IMI",
-            "ISM",
-            "KAL",
-            "KUR",
-            "LA",
-            "LAC",
-            "LAN",
-            "LER",
-            "MAS",
-            "MI",
-            "NA",
-            "NEF",
-            "NX",
-            "OGU",
-            "QAB",
-            "QAX",
-            "QAZ",
-            "QBA",
-            "QBI",
-            "QOB",
-            "QUS",
-            "SA",
-            "SAB",
-            "SAK",
-            "SAL",
-            "SAT",
-            "SBN",
-            "SIY",
-            "SKR",
-            "SM",
-            "SMI",
-            "SMX",
-            "SR",
-            "SUS",
-            "TAR",
-            "TOV",
-            "UCA",
-            "XA",
-            "XAC",
-            "XCI",
-            "XIZ",
-            "XVD",
-            "YAR",
-            "YE",
-            "YEV",
-            "ZAN",
-            "ZAQ",
-            "ZAR",
-        }
-        AZ-NX{
-            "BAB",
-            "CUL",
-            "KAN",
-            "NV",
-            "ORD",
-            "SAD",
-            "SAH",
-            "SAR",
+            "azabs",
+            "azaga",
+            "azagc",
+            "azagm",
+            "azags",
+            "azagu",
+            "azast",
+            "azba",
+            "azbal",
+            "azbar",
+            "azbey",
+            "azbil",
+            "azcab",
+            "azcal",
+            "azdas",
+            "azfuz",
+            "azga",
+            "azgad",
+            "azgor",
+            "azgoy",
+            "azgyg",
+            "azhac",
+            "azimi",
+            "azism",
+            "azkal",
+            "azkur",
+            "azla",
+            "azlac",
+            "azlan",
+            "azler",
+            "azmas",
+            "azmi",
+            "azna",
+            "aznef",
+            "aznx",
+            "azogu",
+            "azqab",
+            "azqax",
+            "azqaz",
+            "azqba",
+            "azqbi",
+            "azqob",
+            "azqus",
+            "azsa",
+            "azsab",
+            "azsak",
+            "azsal",
+            "azsat",
+            "azsbn",
+            "azsiy",
+            "azskr",
+            "azsm",
+            "azsmi",
+            "azsmx",
+            "azsr",
+            "azsus",
+            "aztar",
+            "aztov",
+            "azuca",
+            "azxa",
+            "azxac",
+            "azxci",
+            "azxiz",
+            "azxvd",
+            "azyar",
+            "azye",
+            "azyev",
+            "azzan",
+            "azzaq",
+            "azzar",
         }
         BA{
-            "BIH",
-            "BRC",
-            "SRP",
+            "babih",
+            "babrc",
+            "basrp",
         }
         BB{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
+            "bb01",
+            "bb02",
+            "bb03",
+            "bb04",
+            "bb05",
+            "bb06",
+            "bb07",
+            "bb08",
+            "bb09",
+            "bb10",
+            "bb11",
         }
         BD{
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-        }
-        BD-A{
-            "02",
-            "06",
-            "07",
-            "25",
-            "50",
-            "51",
-        }
-        BD-B{
-            "01",
-            "04",
-            "08",
-            "09",
-            "10",
-            "11",
-            "16",
-            "29",
-            "31",
-            "47",
-            "56",
-        }
-        BD-C{
-            "13",
-            "15",
-            "17",
-            "18",
-            "21",
-            "26",
-            "33",
-            "34",
-            "35",
-            "36",
-            "40",
-            "41",
-            "42",
-            "53",
-            "57",
-            "62",
-            "63",
-        }
-        BD-D{
-            "05",
-            "12",
-            "22",
-            "23",
-            "27",
-            "30",
-            "37",
-            "39",
-            "43",
-            "58",
-        }
-        BD-E{
-            "03",
-            "24",
-            "44",
-            "45",
-            "48",
-            "49",
-            "54",
-            "55",
-            "59",
-        }
-        BD-F{
-            "14",
-            "19",
-            "28",
-            "32",
-            "46",
-            "52",
-            "64",
-        }
-        BD-G{
-            "20",
-            "38",
-            "60",
-            "61",
+            "bda",
+            "bdb",
+            "bdc",
+            "bdd",
+            "bde",
+            "bdf",
+            "bdg",
+            "bdh",
         }
         BE{
-            "BRU",
-            "VLG",
-            "WAL",
-        }
-        BE-VLG{
-            "VAN",
-            "VBR",
-            "VLI",
-            "VOV",
-            "VWV",
-        }
-        BE-WAL{
-            "WBR",
-            "WHT",
-            "WLG",
-            "WLX",
-            "WNA",
+            "bebru",
+            "bevlg",
+            "bewal",
         }
         BF{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-        }
-        BF-01{
-            "BAL",
-            "BAN",
-            "KOS",
-            "MOU",
-            "NAY",
-            "SOR",
-        }
-        BF-02{
-            "COM",
-            "LER",
-        }
-        BF-03{"KAD"}
-        BF-04{
-            "BLG",
-            "KOP",
-            "KOT",
-        }
-        BF-05{
-            "BAM",
-            "NAM",
-            "SMT",
-        }
-        BF-06{
-            "BLK",
-            "SIS",
-            "SNG",
-            "ZIR",
-        }
-        BF-07{
-            "BAZ",
-            "NAO",
-            "ZOU",
-        }
-        BF-08{
-            "GNA",
-            "GOU",
-            "KMD",
-            "KMP",
-            "TAP",
-        }
-        BF-09{
-            "HOU",
-            "KEN",
-            "TUI",
-        }
-        BF-10{
-            "LOR",
-            "PAS",
-            "YAT",
-            "ZON",
-        }
-        BF-11{
-            "GAN",
-            "KOW",
-            "OUB",
-        }
-        BF-12{
-            "OUD",
-            "SEN",
-            "SOM",
-            "YAG",
-        }
-        BF-13{
-            "BGR",
-            "IOB",
-            "NOU",
-            "PON",
+            "bf01",
+            "bf02",
+            "bf03",
+            "bf04",
+            "bf05",
+            "bf06",
+            "bf07",
+            "bf08",
+            "bf09",
+            "bf10",
+            "bf11",
+            "bf12",
+            "bf13",
         }
         BG{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
+            "bg01",
+            "bg02",
+            "bg03",
+            "bg04",
+            "bg05",
+            "bg06",
+            "bg07",
+            "bg08",
+            "bg09",
+            "bg10",
+            "bg11",
+            "bg12",
+            "bg13",
+            "bg14",
+            "bg15",
+            "bg16",
+            "bg17",
+            "bg18",
+            "bg19",
+            "bg20",
+            "bg21",
+            "bg22",
+            "bg23",
+            "bg24",
+            "bg25",
+            "bg26",
+            "bg27",
+            "bg28",
         }
         BH{
-            "13",
-            "14",
-            "15",
-            "17",
+            "bh13",
+            "bh14",
+            "bh15",
+            "bh17",
         }
         BI{
-            "BB",
-            "BL",
-            "BM",
-            "BR",
-            "CA",
-            "CI",
-            "GI",
-            "KI",
-            "KR",
-            "KY",
-            "MA",
-            "MU",
-            "MW",
-            "MY",
-            "NG",
-            "RM",
-            "RT",
-            "RY",
+            "bibb",
+            "bibl",
+            "bibm",
+            "bibr",
+            "bica",
+            "bici",
+            "bigi",
+            "biki",
+            "bikr",
+            "biky",
+            "bima",
+            "bimu",
+            "bimw",
+            "bimy",
+            "bing",
+            "birm",
+            "birt",
+            "biry",
         }
         BJ{
-            "AK",
-            "AL",
-            "AQ",
-            "BO",
-            "CO",
-            "DO",
-            "KO",
-            "LI",
-            "MO",
-            "OU",
-            "PL",
-            "ZO",
+            "bjak",
+            "bjal",
+            "bjaq",
+            "bjbo",
+            "bjco",
+            "bjdo",
+            "bjko",
+            "bjli",
+            "bjmo",
+            "bjou",
+            "bjpl",
+            "bjzo",
         }
         BN{
-            "BE",
-            "BM",
-            "TE",
-            "TU",
+            "bnbe",
+            "bnbm",
+            "bnte",
+            "bntu",
         }
         BO{
-            "B",
-            "C",
-            "H",
-            "L",
-            "N",
-            "O",
-            "P",
-            "S",
-            "T",
+            "bob",
+            "boc",
+            "boh",
+            "bol",
+            "bon",
+            "boo",
+            "bop",
+            "bos",
+            "bot",
         }
         BQ{
-            "BO",
-            "SA",
-            "SE",
+            "bqbo",
+            "bqsa",
+            "bqse",
         }
         BR{
-            "AC",
-            "AL",
-            "AM",
-            "AP",
-            "BA",
-            "CE",
-            "DF",
-            "ES",
-            "GO",
-            "MA",
-            "MG",
-            "MS",
-            "MT",
-            "PA",
-            "PB",
-            "PE",
-            "PI",
-            "PR",
-            "RJ",
-            "RN",
-            "RO",
-            "RR",
-            "RS",
-            "SC",
-            "SE",
-            "SP",
-            "TO",
+            "brac",
+            "bral",
+            "bram",
+            "brap",
+            "brba",
+            "brce",
+            "brdf",
+            "bres",
+            "brgo",
+            "brma",
+            "brmg",
+            "brms",
+            "brmt",
+            "brpa",
+            "brpb",
+            "brpe",
+            "brpi",
+            "brpr",
+            "brrj",
+            "brrn",
+            "brro",
+            "brrr",
+            "brrs",
+            "brsc",
+            "brse",
+            "brsp",
+            "brto",
         }
         BS{
-            "AK",
-            "BI",
-            "BP",
-            "BY",
-            "CE",
-            "CI",
-            "CK",
-            "CO",
-            "CS",
-            "EG",
-            "EX",
-            "FP",
-            "GC",
-            "HI",
-            "HT",
-            "IN",
-            "LI",
-            "MC",
-            "MG",
-            "MI",
-            "NE",
-            "NO",
-            "NS",
-            "RC",
-            "RI",
-            "SA",
-            "SE",
-            "SO",
-            "SS",
-            "SW",
-            "WG",
+            "bsak",
+            "bsbi",
+            "bsbp",
+            "bsby",
+            "bsce",
+            "bsci",
+            "bsck",
+            "bsco",
+            "bscs",
+            "bseg",
+            "bsex",
+            "bsfp",
+            "bsgc",
+            "bshi",
+            "bsht",
+            "bsin",
+            "bsli",
+            "bsmc",
+            "bsmg",
+            "bsmi",
+            "bsne",
+            "bsno",
+            "bsns",
+            "bsrc",
+            "bsri",
+            "bssa",
+            "bsse",
+            "bsso",
+            "bsss",
+            "bssw",
+            "bswg",
         }
         BT{
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "21",
-            "22",
-            "23",
-            "24",
-            "31",
-            "32",
-            "33",
-            "34",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "GA",
-            "TY",
+            "bt11",
+            "bt12",
+            "bt13",
+            "bt14",
+            "bt15",
+            "bt21",
+            "bt22",
+            "bt23",
+            "bt24",
+            "bt31",
+            "bt32",
+            "bt33",
+            "bt34",
+            "bt41",
+            "bt42",
+            "bt43",
+            "bt44",
+            "bt45",
+            "btga",
+            "btty",
         }
         BW{
-            "CE",
-            "CH",
-            "FR",
-            "GA",
-            "GH",
-            "JW",
-            "KG",
-            "KL",
-            "KW",
-            "LO",
-            "NE",
-            "NW",
-            "SE",
-            "SO",
-            "SP",
-            "ST",
+            "bwce",
+            "bwch",
+            "bwfr",
+            "bwga",
+            "bwgh",
+            "bwjw",
+            "bwkg",
+            "bwkl",
+            "bwkw",
+            "bwlo",
+            "bwne",
+            "bwnw",
+            "bwse",
+            "bwso",
+            "bwsp",
+            "bwst",
         }
         BY{
-            "BR",
-            "HM",
-            "HO",
-            "HR",
-            "MA",
-            "MI",
-            "VI",
+            "bybr",
+            "byhm",
+            "byho",
+            "byhr",
+            "byma",
+            "bymi",
+            "byvi",
         }
         BZ{
-            "BZ",
-            "CY",
-            "CZL",
-            "OW",
-            "SC",
-            "TOL",
+            "bzbz",
+            "bzcy",
+            "bzczl",
+            "bzow",
+            "bzsc",
+            "bztol",
         }
         CA{
-            "AB",
-            "BC",
-            "MB",
-            "NB",
-            "NL",
-            "NS",
-            "NT",
-            "NU",
-            "ON",
-            "PE",
-            "QC",
-            "SK",
-            "YT",
+            "caab",
+            "cabc",
+            "camb",
+            "canb",
+            "canl",
+            "cans",
+            "cant",
+            "canu",
+            "caon",
+            "cape",
+            "caqc",
+            "cask",
+            "cayt",
         }
         CD{
-            "BC",
-            "BN",
-            "EQ",
-            "KA",
-            "KE",
-            "KN",
-            "KW",
-            "MA",
-            "NK",
-            "OR",
-            "SK",
+            "cdbc",
+            "cdbu",
+            "cdeq",
+            "cdhk",
+            "cdhl",
+            "cdhu",
+            "cdit",
+            "cdkc",
+            "cdke",
+            "cdkg",
+            "cdkl",
+            "cdkn",
+            "cdks",
+            "cdlo",
+            "cdlu",
+            "cdma",
+            "cdmn",
+            "cdmo",
+            "cdnk",
+            "cdnu",
+            "cdsa",
+            "cdsk",
+            "cdsu",
+            "cdta",
+            "cdto",
+            "cdtu",
         }
         CF{
-            "AC",
-            "BB",
-            "BGF",
-            "BK",
-            "HK",
-            "HM",
-            "HS",
-            "KB",
-            "KG",
-            "LB",
-            "MB",
-            "MP",
-            "NM",
-            "OP",
-            "SE",
-            "UK",
-            "VK",
+            "cfac",
+            "cfbb",
+            "cfbgf",
+            "cfbk",
+            "cfhk",
+            "cfhm",
+            "cfhs",
+            "cfkb",
+            "cfkg",
+            "cflb",
+            "cfmb",
+            "cfmp",
+            "cfnm",
+            "cfop",
+            "cfse",
+            "cfuk",
+            "cfvk",
         }
         CG{
-            "2",
-            "5",
-            "7",
-            "8",
-            "9",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "BZV",
+            "cg2",
+            "cg5",
+            "cg7",
+            "cg8",
+            "cg9",
+            "cg11",
+            "cg12",
+            "cg13",
+            "cg14",
+            "cg15",
+            "cg16",
+            "cgbzv",
         }
         CH{
-            "AG",
-            "AI",
-            "AR",
-            "BE",
-            "BL",
-            "BS",
-            "FR",
-            "GE",
-            "GL",
-            "GR",
-            "JU",
-            "LU",
-            "NE",
-            "NW",
-            "OW",
-            "SG",
-            "SH",
-            "SO",
-            "SZ",
-            "TG",
-            "TI",
-            "UR",
-            "VD",
-            "VS",
-            "ZG",
-            "ZH",
+            "chag",
+            "chai",
+            "char",
+            "chbe",
+            "chbl",
+            "chbs",
+            "chfr",
+            "chge",
+            "chgl",
+            "chgr",
+            "chju",
+            "chlu",
+            "chne",
+            "chnw",
+            "chow",
+            "chsg",
+            "chsh",
+            "chso",
+            "chsz",
+            "chtg",
+            "chti",
+            "chur",
+            "chvd",
+            "chvs",
+            "chzg",
+            "chzh",
         }
         CI{
-            "AB",
-            "BS",
-            "CM",
-            "DN",
-            "GD",
-            "LC",
-            "LG",
-            "MG",
-            "SM",
-            "SV",
-            "VB",
-            "WR",
-            "YM",
-            "ZZ",
+            "ciab",
+            "cibs",
+            "cicm",
+            "cidn",
+            "cigd",
+            "cilc",
+            "cilg",
+            "cimg",
+            "cism",
+            "cisv",
+            "civb",
+            "ciwr",
+            "ciym",
+            "cizz",
         }
         CL{
-            "AI",
-            "AN",
-            "AP",
-            "AR",
-            "AT",
-            "BI",
-            "CO",
-            "LI",
-            "LL",
-            "LR",
-            "MA",
-            "ML",
-            "RM",
-            "TA",
-            "VS",
+            "clai",
+            "clan",
+            "clap",
+            "clar",
+            "clat",
+            "clbi",
+            "clco",
+            "clli",
+            "clll",
+            "cllr",
+            "clma",
+            "clml",
+            "clrm",
+            "clta",
+            "clvs",
         }
         CM{
-            "AD",
-            "CE",
-            "EN",
-            "ES",
-            "LT",
-            "NO",
-            "NW",
-            "OU",
-            "SU",
-            "SW",
+            "cmad",
+            "cmce",
+            "cmen",
+            "cmes",
+            "cmlt",
+            "cmno",
+            "cmnw",
+            "cmou",
+            "cmsu",
+            "cmsw",
         }
         CN{
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "21",
-            "22",
-            "23",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "61",
-            "62",
-            "63",
-            "64",
-            "65",
-            "71",
-            "91",
-            "92",
+            "cn11",
+            "cn12",
+            "cn13",
+            "cn14",
+            "cn15",
+            "cn21",
+            "cn22",
+            "cn23",
+            "cn31",
+            "cn32",
+            "cn33",
+            "cn34",
+            "cn35",
+            "cn36",
+            "cn37",
+            "cn41",
+            "cn42",
+            "cn43",
+            "cn44",
+            "cn45",
+            "cn46",
+            "cn50",
+            "cn51",
+            "cn52",
+            "cn53",
+            "cn54",
+            "cn61",
+            "cn62",
+            "cn63",
+            "cn64",
+            "cn65",
+            "cn71",
+            "cn91",
+            "cn92",
         }
         CO{
-            "AMA",
-            "ANT",
-            "ARA",
-            "ATL",
-            "BOL",
-            "BOY",
-            "CAL",
-            "CAQ",
-            "CAS",
-            "CAU",
-            "CES",
-            "CHO",
-            "COR",
-            "CUN",
-            "DC",
-            "GUA",
-            "GUV",
-            "HUI",
-            "LAG",
-            "MAG",
-            "MET",
-            "NAR",
-            "NSA",
-            "PUT",
-            "QUI",
-            "RIS",
-            "SAN",
-            "SAP",
-            "SUC",
-            "TOL",
-            "VAC",
-            "VAU",
-            "VID",
+            "coama",
+            "coant",
+            "coara",
+            "coatl",
+            "cobol",
+            "coboy",
+            "cocal",
+            "cocaq",
+            "cocas",
+            "cocau",
+            "coces",
+            "cocho",
+            "cocor",
+            "cocun",
+            "codc",
+            "cogua",
+            "coguv",
+            "cohui",
+            "colag",
+            "comag",
+            "comet",
+            "conar",
+            "consa",
+            "coput",
+            "coqui",
+            "coris",
+            "cosan",
+            "cosap",
+            "cosuc",
+            "cotol",
+            "covac",
+            "covau",
+            "covid",
         }
         CR{
-            "A",
-            "C",
-            "G",
-            "H",
-            "L",
-            "P",
-            "SJ",
+            "cra",
+            "crc",
+            "crg",
+            "crh",
+            "crl",
+            "crp",
+            "crsj",
         }
         CU{
-            "01",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "99",
+            "cu01",
+            "cu03",
+            "cu04",
+            "cu05",
+            "cu06",
+            "cu07",
+            "cu08",
+            "cu09",
+            "cu10",
+            "cu11",
+            "cu12",
+            "cu13",
+            "cu14",
+            "cu15",
+            "cu16",
+            "cu99",
         }
         CV{
-            "B",
-            "S",
-        }
-        CV-B{
-            "BV",
-            "PA",
-            "PN",
-            "RB",
-            "RG",
-            "SL",
-            "SV",
-            "TS",
-        }
-        CV-S{
-            "BR",
-            "CA",
-            "CF",
-            "CR",
-            "MA",
-            "MO",
-            "PR",
-            "RS",
-            "SD",
-            "SF",
-            "SM",
-            "SO",
-            "SS",
-            "TA",
+            "cvb",
+            "cvs",
         }
         CY{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
+            "cy01",
+            "cy02",
+            "cy03",
+            "cy04",
+            "cy05",
+            "cy06",
         }
         CZ{
-            "JC",
-            "JM",
-            "KA",
-            "KR",
-            "LI",
-            "MO",
-            "OL",
-            "PA",
-            "PL",
-            "PR",
-            "ST",
-            "US",
-            "VY",
-            "ZL",
-        }
-        CZ-JC{
-            "311",
-            "312",
-            "313",
-            "314",
-            "315",
-            "316",
-            "317",
-        }
-        CZ-JM{
-            "621",
-            "622",
-            "623",
-            "624",
-            "625",
-            "626",
-            "627",
-        }
-        CZ-KA{
-            "411",
-            "412",
-            "413",
-        }
-        CZ-KR{
-            "521",
-            "522",
-            "523",
-            "524",
-            "525",
-        }
-        CZ-LI{
-            "511",
-            "512",
-            "513",
-            "514",
-        }
-        CZ-MO{
-            "801",
-            "802",
-            "803",
-            "804",
-            "805",
-            "806",
-        }
-        CZ-OL{
-            "711",
-            "712",
-            "713",
-            "714",
-            "715",
-        }
-        CZ-PA{
-            "531",
-            "532",
-            "533",
-            "534",
-        }
-        CZ-PL{
-            "321",
-            "322",
-            "323",
-            "324",
-            "325",
-            "326",
-            "327",
-        }
-        CZ-PR{
-            "10A",
-            "10B",
-            "10C",
-            "10D",
-            "10E",
-            "10F",
-            "101",
-            "102",
-            "103",
-            "104",
-            "105",
-            "106",
-            "107",
-            "108",
-            "109",
-        }
-        CZ-ST{
-            "20A",
-            "20B",
-            "20C",
-            "201",
-            "202",
-            "203",
-            "204",
-            "205",
-            "206",
-            "207",
-            "208",
-            "209",
-        }
-        CZ-US{
-            "421",
-            "422",
-            "423",
-            "424",
-            "425",
-            "426",
-            "427",
-        }
-        CZ-VY{
-            "611",
-            "612",
-            "613",
-            "614",
-            "615",
-        }
-        CZ-ZL{
-            "721",
-            "722",
-            "723",
-            "724",
+            "cz10",
+            "cz20",
+            "cz31",
+            "cz32",
+            "cz41",
+            "cz42",
+            "cz51",
+            "cz52",
+            "cz53",
+            "cz63",
+            "cz64",
+            "cz71",
+            "cz72",
+            "cz80",
         }
         DE{
-            "BB",
-            "BE",
-            "BW",
-            "BY",
-            "HB",
-            "HE",
-            "HH",
-            "MV",
-            "NI",
-            "NW",
-            "RP",
-            "SH",
-            "SL",
-            "SN",
-            "ST",
-            "TH",
+            "debb",
+            "debe",
+            "debw",
+            "deby",
+            "dehb",
+            "dehe",
+            "dehh",
+            "demv",
+            "deni",
+            "denw",
+            "derp",
+            "desh",
+            "desl",
+            "desn",
+            "dest",
+            "deth",
         }
         DJ{
-            "AR",
-            "AS",
-            "DI",
-            "DJ",
-            "OB",
-            "TA",
+            "djar",
+            "djas",
+            "djdi",
+            "djdj",
+            "djob",
+            "djta",
         }
         DK{
-            "81",
-            "82",
-            "83",
-            "84",
-            "85",
+            "dk81",
+            "dk82",
+            "dk83",
+            "dk84",
+            "dk85",
         }
         DM{
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
+            "dm02",
+            "dm03",
+            "dm04",
+            "dm05",
+            "dm06",
+            "dm07",
+            "dm08",
+            "dm09",
+            "dm10",
+            "dm11",
         }
         DO{
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-        }
-        DO-33{
-            "06",
-            "14",
-            "19",
-            "20",
-        }
-        DO-34{
-            "05",
-            "15",
-            "26",
-            "27",
-        }
-        DO-35{
-            "09",
-            "18",
-            "25",
-        }
-        DO-36{
-            "13",
-            "24",
-            "28",
-        }
-        DO-37{
-            "07",
-            "22",
-        }
-        DO-38{
-            "03",
-            "04",
-            "10",
-            "16",
-        }
-        DO-39{
-            "23",
-            "29",
-            "30",
-        }
-        DO-40{
-            "01",
-            "32",
-        }
-        DO-41{
-            "02",
-            "17",
-            "21",
-            "31",
-        }
-        DO-42{
-            "08",
-            "11",
-            "12",
+            "do33",
+            "do34",
+            "do35",
+            "do36",
+            "do37",
+            "do38",
+            "do39",
+            "do40",
+            "do41",
+            "do42",
         }
         DZ{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
+            "dz01",
+            "dz02",
+            "dz03",
+            "dz04",
+            "dz05",
+            "dz06",
+            "dz07",
+            "dz08",
+            "dz09",
+            "dz10",
+            "dz11",
+            "dz12",
+            "dz13",
+            "dz14",
+            "dz15",
+            "dz16",
+            "dz17",
+            "dz18",
+            "dz19",
+            "dz20",
+            "dz21",
+            "dz22",
+            "dz23",
+            "dz24",
+            "dz25",
+            "dz26",
+            "dz27",
+            "dz28",
+            "dz29",
+            "dz30",
+            "dz31",
+            "dz32",
+            "dz33",
+            "dz34",
+            "dz35",
+            "dz36",
+            "dz37",
+            "dz38",
+            "dz39",
+            "dz40",
+            "dz41",
+            "dz42",
+            "dz43",
+            "dz44",
+            "dz45",
+            "dz46",
+            "dz47",
+            "dz48",
         }
         EC{
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "I",
-            "L",
-            "M",
-            "N",
-            "O",
-            "P",
-            "R",
-            "S",
-            "SD",
-            "SE",
-            "T",
-            "U",
-            "W",
-            "X",
-            "Y",
-            "Z",
+            "eca",
+            "ecb",
+            "ecc",
+            "ecd",
+            "ece",
+            "ecf",
+            "ecg",
+            "ech",
+            "eci",
+            "ecl",
+            "ecm",
+            "ecn",
+            "eco",
+            "ecp",
+            "ecr",
+            "ecs",
+            "ecsd",
+            "ecse",
+            "ect",
+            "ecu",
+            "ecw",
+            "ecx",
+            "ecy",
+            "ecz",
         }
         EE{
-            "37",
-            "39",
-            "44",
-            "49",
-            "51",
-            "57",
-            "59",
-            "65",
-            "67",
-            "70",
-            "74",
-            "78",
-            "82",
-            "84",
-            "86",
+            "ee37",
+            "ee39",
+            "ee44",
+            "ee49",
+            "ee51",
+            "ee57",
+            "ee59",
+            "ee65",
+            "ee67",
+            "ee70",
+            "ee74",
+            "ee78",
+            "ee82",
+            "ee84",
+            "ee86",
         }
         EG{
-            "ALX",
-            "ASN",
-            "AST",
-            "BA",
-            "BH",
-            "BNS",
-            "C",
-            "DK",
-            "DT",
-            "FYM",
-            "GH",
-            "GZ",
-            "IS",
-            "JS",
-            "KB",
-            "KFS",
-            "KN",
-            "LX",
-            "MN",
-            "MNF",
-            "MT",
-            "PTS",
-            "SHG",
-            "SHR",
-            "SIN",
-            "SUZ",
-            "WAD",
+            "egalx",
+            "egasn",
+            "egast",
+            "egba",
+            "egbh",
+            "egbns",
+            "egc",
+            "egdk",
+            "egdt",
+            "egfym",
+            "eggh",
+            "eggz",
+            "egis",
+            "egjs",
+            "egkb",
+            "egkfs",
+            "egkn",
+            "eglx",
+            "egmn",
+            "egmnf",
+            "egmt",
+            "egpts",
+            "egshg",
+            "egshr",
+            "egsin",
+            "egsuz",
+            "egwad",
         }
         ER{
-            "AN",
-            "DK",
-            "DU",
-            "GB",
-            "MA",
-            "SK",
+            "eran",
+            "erdk",
+            "erdu",
+            "ergb",
+            "erma",
+            "ersk",
         }
         ES{
-            "AN",
-            "AR",
-            "AS",
-            "CB",
-            "CE",
-            "CL",
-            "CM",
-            "CN",
-            "CT",
-            "EX",
-            "GA",
-            "IB",
-            "MC",
-            "MD",
-            "ML",
-            "NC",
-            "PV",
-            "RI",
-            "VC",
-        }
-        ES-AN{
-            "AL",
-            "CA",
-            "CO",
-            "GR",
-            "H",
-            "J",
-            "MA",
-            "SE",
-        }
-        ES-AR{
-            "HU",
-            "TE",
-            "Z",
-        }
-        ES-AS{"O"}
-        ES-CB{"S"}
-        ES-CL{
-            "AV",
-            "BU",
-            "LE",
-            "P",
-            "SA",
-            "SG",
-            "SO",
-            "VA",
-            "ZA",
-        }
-        ES-CM{
-            "AB",
-            "CR",
-            "CU",
-            "GU",
-            "TO",
-        }
-        ES-CN{
-            "GC",
-            "TF",
-        }
-        ES-CT{
-            "B",
-            "GI",
-            "L",
-            "T",
-        }
-        ES-EX{
-            "BA",
-            "CC",
-        }
-        ES-GA{
-            "C",
-            "LU",
-            "OR",
-            "PO",
-        }
-        ES-IB{"PM"}
-        ES-MC{"MU"}
-        ES-MD{"M"}
-        ES-NC{"NA"}
-        ES-PV{
-            "BI",
-            "SS",
-            "VI",
-        }
-        ES-RI{"LO"}
-        ES-VC{
-            "A",
-            "CS",
-            "V",
+            "esan",
+            "esar",
+            "esas",
+            "escb",
+            "esce",
+            "escl",
+            "escm",
+            "escn",
+            "esct",
+            "esex",
+            "esga",
+            "esib",
+            "esmc",
+            "esmd",
+            "esml",
+            "esnc",
+            "espv",
+            "esri",
+            "esvc",
         }
         ET{
-            "AA",
-            "AF",
-            "AM",
-            "BE",
-            "DD",
-            "GA",
-            "HA",
-            "OR",
-            "SN",
-            "SO",
-            "TI",
+            "etaa",
+            "etaf",
+            "etam",
+            "etbe",
+            "etdd",
+            "etga",
+            "etha",
+            "etor",
+            "etsn",
+            "etso",
+            "etti",
         }
         FI{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
+            "fi01",
+            "fi02",
+            "fi03",
+            "fi04",
+            "fi05",
+            "fi06",
+            "fi07",
+            "fi08",
+            "fi09",
+            "fi10",
+            "fi11",
+            "fi12",
+            "fi13",
+            "fi14",
+            "fi15",
+            "fi16",
+            "fi17",
+            "fi18",
+            "fi19",
         }
         FJ{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "C",
-            "E",
-            "N",
-            "R",
-            "W",
+            "fjc",
+            "fje",
+            "fjn",
+            "fjr",
+            "fjw",
         }
         FM{
-            "KSA",
-            "PNI",
-            "TRK",
-            "YAP",
+            "fmksa",
+            "fmpni",
+            "fmtrk",
+            "fmyap",
         }
         FR{
-            "A",
-            "B",
-            "BL",
-            "C",
-            "CP",
-            "D",
-            "E",
-            "F",
-            "G",
-            "GF",
-            "GP",
-            "H",
-            "I",
-            "J",
-            "K",
-            "L",
-            "M",
-            "MF",
-            "MQ",
-            "N",
-            "NC",
-            "O",
-            "P",
-            "PF",
-            "PM",
-            "Q",
-            "R",
-            "RE",
-            "S",
-            "T",
-            "TF",
-            "U",
-            "V",
-            "WF",
-            "YT",
-        }
-        FR-A{
-            "67",
-            "68",
-        }
-        FR-B{
-            "24",
-            "33",
-            "40",
-            "47",
-            "64",
-        }
-        FR-C{
-            "03",
-            "15",
-            "43",
-            "63",
-        }
-        FR-D{
-            "21",
-            "58",
-            "71",
-            "89",
-        }
-        FR-E{
-            "22",
-            "29",
-            "35",
-            "56",
-        }
-        FR-F{
-            "18",
-            "28",
-            "36",
-            "37",
-            "41",
-            "45",
-        }
-        FR-G{
-            "08",
-            "10",
-            "51",
-            "52",
-        }
-        FR-H{
-            "2A",
-            "2B",
-        }
-        FR-I{
-            "25",
-            "39",
-            "70",
-            "90",
-        }
-        FR-J{
-            "75",
-            "77",
-            "78",
-            "91",
-            "92",
-            "93",
-            "94",
-            "95",
-        }
-        FR-K{
-            "11",
-            "30",
-            "34",
-            "48",
-            "66",
-        }
-        FR-L{
-            "19",
-            "23",
-            "87",
-        }
-        FR-M{
-            "54",
-            "55",
-            "57",
-            "88",
-        }
-        FR-N{
-            "09",
-            "12",
-            "31",
-            "32",
-            "46",
-            "65",
-            "81",
-            "82",
-        }
-        FR-O{
-            "59",
-            "62",
-        }
-        FR-P{
-            "14",
-            "50",
-            "61",
-        }
-        FR-Q{
-            "27",
-            "76",
-        }
-        FR-R{
-            "44",
-            "49",
-            "53",
-            "72",
-            "85",
-        }
-        FR-S{
-            "02",
-            "60",
-            "80",
-        }
-        FR-T{
-            "16",
-            "17",
-            "79",
-            "86",
-        }
-        FR-U{
-            "04",
-            "05",
-            "06",
-            "13",
-            "83",
-            "84",
-        }
-        FR-V{
-            "01",
-            "07",
-            "26",
-            "38",
-            "42",
-            "69",
-            "73",
-            "74",
+            "frara",
+            "frbfc",
+            "frbl",
+            "frbre",
+            "frcor",
+            "frcp",
+            "frcvl",
+            "frges",
+            "frgf",
+            "frgua",
+            "frhdf",
+            "fridf",
+            "frlre",
+            "frmay",
+            "frmf",
+            "frmq",
+            "frnaq",
+            "frnc",
+            "frnor",
+            "frocc",
+            "frpac",
+            "frpdl",
+            "frpf",
+            "frpm",
+            "frtf",
+            "frwf",
         }
         GA{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
+            "ga1",
+            "ga2",
+            "ga3",
+            "ga4",
+            "ga5",
+            "ga6",
+            "ga7",
+            "ga8",
+            "ga9",
         }
         GB{
-            "EAW",
-            "ENG",
-            "GBN",
-            "NIR",
-            "SCT",
-            "UKM",
-            "WLS",
-        }
-        GB-ENG{
-            "BAS",
-            "BBD",
-            "BDF",
-            "BDG",
-            "BEN",
-            "BEX",
-            "BIR",
-            "BKM",
-            "BMH",
-            "BNE",
-            "BNH",
-            "BNS",
-            "BOL",
-            "BPL",
-            "BRC",
-            "BRD",
-            "BRY",
-            "BST",
-            "BUR",
-            "CAM",
-            "CBF",
-            "CHE",
-            "CHW",
-            "CLD",
-            "CMA",
-            "CMD",
-            "CON",
-            "COV",
-            "CRY",
-            "DAL",
-            "DBY",
-            "DER",
-            "DEV",
-            "DNC",
-            "DOR",
-            "DUD",
-            "DUR",
-            "EAL",
-            "ENF",
-            "ERY",
-            "ESS",
-            "ESX",
-            "GAT",
-            "GLS",
-            "GRE",
-            "HAL",
-            "HAM",
-            "HAV",
-            "HCK",
-            "HEF",
-            "HIL",
-            "HMF",
-            "HNS",
-            "HPL",
-            "HRT",
-            "HRW",
-            "HRY",
-            "IOS",
-            "IOW",
-            "ISL",
-            "KEC",
-            "KEN",
-            "KHL",
-            "KIR",
-            "KTT",
-            "KWL",
-            "LAN",
-            "LBH",
-            "LCE",
-            "LDS",
-            "LEC",
-            "LEW",
-            "LIN",
-            "LIV",
-            "LND",
-            "LUT",
-            "MAN",
-            "MDB",
-            "MDW",
-            "MIK",
-            "MRT",
-            "NBL",
-            "NEL",
-            "NET",
-            "NFK",
-            "NGM",
-            "NLN",
-            "NSM",
-            "NTH",
-            "NTT",
-            "NTY",
-            "NWM",
-            "NYK",
-            "OLD",
-            "OXF",
-            "PLY",
-            "POL",
-            "POR",
-            "PTE",
-            "RCC",
-            "RCH",
-            "RDB",
-            "RDG",
-            "RIC",
-            "ROT",
-            "RUT",
-            "SAW",
-            "SFK",
-            "SFT",
-            "SGC",
-            "SHF",
-            "SHN",
-            "SHR",
-            "SKP",
-            "SLF",
-            "SLG",
-            "SND",
-            "SOL",
-            "SOM",
-            "SOS",
-            "SRY",
-            "STE",
-            "STH",
-            "STN",
-            "STS",
-            "STT",
-            "STY",
-            "SWD",
-            "SWK",
-            "TAM",
-            "TFW",
-            "THR",
-            "TOB",
-            "TRF",
-            "TWH",
-            "WAR",
-            "WBK",
-            "WFT",
-            "WGN",
-            "WIL",
-            "WKF",
-            "WLL",
-            "WLV",
-            "WND",
-            "WNM",
-            "WOK",
-            "WOR",
-            "WRL",
-            "WRT",
-            "WSM",
-            "WSX",
-            "YOR",
-        }
-        GB-NIR{
-            "ABC",
-            "AND",
-            "ANN",
-            "BFS",
-            "CCG",
-            "DRS",
-            "FMO",
-            "LBC",
-            "MEA",
-            "MUL",
-            "NMD",
-        }
-        GB-SCT{
-            "ABD",
-            "ABE",
-            "AGB",
-            "ANS",
-            "CLK",
-            "DGY",
-            "DND",
-            "EAY",
-            "EDH",
-            "EDU",
-            "ELN",
-            "ELS",
-            "ERW",
-            "FAL",
-            "FIF",
-            "GLG",
-            "HLD",
-            "IVC",
-            "MLN",
-            "MRY",
-            "NAY",
-            "NLK",
-            "ORK",
-            "PKN",
-            "RFW",
-            "SAY",
-            "SCB",
-            "SLK",
-            "STG",
-            "WDU",
-            "WLN",
-            "ZET",
-        }
-        GB-WLS{
-            "AGY",
-            "BGE",
-            "BGW",
-            "CAY",
-            "CGN",
-            "CMN",
-            "CRF",
-            "CWY",
-            "DEN",
-            "FLN",
-            "GWN",
-            "MON",
-            "MTY",
-            "NTL",
-            "NWP",
-            "PEM",
-            "POW",
-            "RCT",
-            "SWA",
-            "TOF",
-            "VGL",
-            "WRX",
+            "gbeaw",
+            "gbeng",
+            "gbgbn",
+            "gbnir",
+            "gbsct",
+            "gbukm",
+            "gbwls",
         }
         GD{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "10",
+            "gd01",
+            "gd02",
+            "gd03",
+            "gd04",
+            "gd05",
+            "gd06",
+            "gd10",
         }
         GE{
-            "AB",
-            "AJ",
-            "GU",
-            "IM",
-            "KA",
-            "KK",
-            "MM",
-            "RL",
-            "SJ",
-            "SK",
-            "SZ",
-            "TB",
+            "geab",
+            "geaj",
+            "gegu",
+            "geim",
+            "geka",
+            "gekk",
+            "gemm",
+            "gerl",
+            "gesj",
+            "gesk",
+            "gesz",
+            "getb",
         }
         GH{
-            "AA",
-            "AH",
-            "BA",
-            "CP",
-            "EP",
-            "NP",
-            "TV",
-            "UE",
-            "UW",
-            "WP",
+            "ghaa",
+            "ghah",
+            "ghba",
+            "ghcp",
+            "ghep",
+            "ghnp",
+            "ghtv",
+            "ghue",
+            "ghuw",
+            "ghwp",
         }
         GL{
-            "KU",
-            "QA",
-            "QE",
-            "SM",
+            "glku",
+            "glqa",
+            "glqe",
+            "glsm",
         }
         GM{
-            "B",
-            "L",
-            "M",
-            "N",
-            "U",
-            "W",
+            "gmb",
+            "gml",
+            "gmm",
+            "gmn",
+            "gmu",
+            "gmw",
         }
         GN{
-            "B",
-            "C",
-            "D",
-            "F",
-            "K",
-            "L",
-            "M",
-            "N",
-        }
-        GN-B{
-            "BF",
-            "BK",
-            "FR",
-            "GA",
-            "KN",
-        }
-        GN-D{
-            "CO",
-            "DU",
-            "FO",
-            "KD",
-            "TE",
-        }
-        GN-F{
-            "DB",
-            "DI",
-            "FA",
-            "KS",
-        }
-        GN-K{
-            "KA",
-            "KE",
-            "KO",
-            "MD",
-            "SI",
-        }
-        GN-L{
-            "KB",
-            "LA",
-            "LE",
-            "ML",
-            "TO",
-        }
-        GN-M{
-            "DL",
-            "MM",
-            "PI",
-        }
-        GN-N{
-            "BE",
-            "GU",
-            "LO",
-            "MC",
-            "NZ",
-            "YO",
+            "gnb",
+            "gnc",
+            "gnd",
+            "gnf",
+            "gnk",
+            "gnl",
+            "gnm",
+            "gnn",
         }
         GQ{
-            "C",
-            "I",
-        }
-        GQ-C{
-            "CS",
-            "KN",
-            "LI",
-            "WN",
-        }
-        GQ-I{
-            "AN",
-            "BN",
-            "BS",
+            "gqc",
+            "gqi",
         }
         GR{
-            "69",
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "I",
-            "J",
-            "K",
-            "L",
-            "M",
-        }
-        GR-A{
-            "52",
-            "55",
-            "71",
-            "72",
-            "73",
-        }
-        GR-B{
-            "53",
-            "54",
-            "57",
-            "59",
-            "61",
-            "62",
-            "64",
-        }
-        GR-C{
-            "51",
-            "56",
-            "58",
-            "63",
-        }
-        GR-D{
-            "31",
-            "32",
-            "33",
-            "34",
-        }
-        GR-E{
-            "41",
-            "42",
-            "43",
-            "44",
-        }
-        GR-F{
-            "21",
-            "22",
-            "23",
-            "24",
-        }
-        GR-G{
-            "01",
-            "13",
-            "14",
-        }
-        GR-H{
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-        }
-        GR-I{"A1"}
-        GR-J{
-            "11",
-            "12",
-            "15",
-            "16",
-            "17",
-        }
-        GR-K{
-            "83",
-            "84",
-            "85",
-        }
-        GR-L{
-            "81",
-            "82",
-        }
-        GR-M{
-            "91",
-            "92",
-            "93",
-            "94",
+            "gr69",
+            "gra",
+            "grb",
+            "grc",
+            "grd",
+            "gre",
+            "grf",
+            "grg",
+            "grh",
+            "gri",
+            "grj",
+            "grk",
+            "grl",
+            "grm",
         }
         GT{
-            "AV",
-            "BV",
-            "CM",
-            "CQ",
-            "ES",
-            "GU",
-            "HU",
-            "IZ",
-            "JA",
-            "JU",
-            "PE",
-            "PR",
-            "QC",
-            "QZ",
-            "RE",
-            "SA",
-            "SM",
-            "SO",
-            "SR",
-            "SU",
-            "TO",
-            "ZA",
+            "gtav",
+            "gtbv",
+            "gtcm",
+            "gtcq",
+            "gtes",
+            "gtgu",
+            "gthu",
+            "gtiz",
+            "gtja",
+            "gtju",
+            "gtpe",
+            "gtpr",
+            "gtqc",
+            "gtqz",
+            "gtre",
+            "gtsa",
+            "gtsm",
+            "gtso",
+            "gtsr",
+            "gtsu",
+            "gtto",
+            "gtza",
         }
         GW{
-            "BS",
-            "L",
-            "N",
-            "S",
-        }
-        GW-L{
-            "BA",
-            "GA",
-        }
-        GW-N{
-            "BM",
-            "CA",
-            "OI",
-        }
-        GW-S{
-            "BL",
-            "QU",
-            "TO",
+            "gwbs",
+            "gwl",
+            "gwn",
+            "gws",
         }
         GY{
-            "BA",
-            "CU",
-            "DE",
-            "EB",
-            "ES",
-            "MA",
-            "PM",
-            "PT",
-            "UD",
-            "UT",
+            "gyba",
+            "gycu",
+            "gyde",
+            "gyeb",
+            "gyes",
+            "gyma",
+            "gypm",
+            "gypt",
+            "gyud",
+            "gyut",
         }
         HN{
-            "AT",
-            "CH",
-            "CL",
-            "CM",
-            "CP",
-            "CR",
-            "EP",
-            "FM",
-            "GD",
-            "IB",
-            "IN",
-            "LE",
-            "LP",
-            "OC",
-            "OL",
-            "SB",
-            "VA",
-            "YO",
+            "hnat",
+            "hnch",
+            "hncl",
+            "hncm",
+            "hncp",
+            "hncr",
+            "hnep",
+            "hnfm",
+            "hngd",
+            "hnib",
+            "hnin",
+            "hnle",
+            "hnlp",
+            "hnoc",
+            "hnol",
+            "hnsb",
+            "hnva",
+            "hnyo",
         }
         HR{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
+            "hr01",
+            "hr02",
+            "hr03",
+            "hr04",
+            "hr05",
+            "hr06",
+            "hr07",
+            "hr08",
+            "hr09",
+            "hr10",
+            "hr11",
+            "hr12",
+            "hr13",
+            "hr14",
+            "hr15",
+            "hr16",
+            "hr17",
+            "hr18",
+            "hr19",
+            "hr20",
+            "hr21",
         }
         HT{
-            "AR",
-            "CE",
-            "GA",
-            "ND",
-            "NE",
-            "NI",
-            "NO",
-            "OU",
-            "SD",
-            "SE",
+            "htar",
+            "htce",
+            "htga",
+            "htnd",
+            "htne",
+            "htni",
+            "htno",
+            "htou",
+            "htsd",
+            "htse",
         }
         HU{
-            "BA",
-            "BC",
-            "BE",
-            "BK",
-            "BU",
-            "BZ",
-            "CS",
-            "DE",
-            "DU",
-            "EG",
-            "ER",
-            "FE",
-            "GS",
-            "GY",
-            "HB",
-            "HE",
-            "HV",
-            "JN",
-            "KE",
-            "KM",
-            "KV",
-            "MI",
-            "NK",
-            "NO",
-            "NY",
-            "PE",
-            "PS",
-            "SD",
-            "SF",
-            "SH",
-            "SK",
-            "SN",
-            "SO",
-            "SS",
-            "ST",
-            "SZ",
-            "TB",
-            "TO",
-            "VA",
-            "VE",
-            "VM",
-            "ZA",
-            "ZE",
+            "huba",
+            "hubc",
+            "hube",
+            "hubk",
+            "hubu",
+            "hubz",
+            "hucs",
+            "hude",
+            "hudu",
+            "hueg",
+            "huer",
+            "hufe",
+            "hugs",
+            "hugy",
+            "huhb",
+            "huhe",
+            "huhv",
+            "hujn",
+            "huke",
+            "hukm",
+            "hukv",
+            "humi",
+            "hunk",
+            "huno",
+            "huny",
+            "hupe",
+            "hups",
+            "husd",
+            "husf",
+            "hush",
+            "husk",
+            "husn",
+            "huso",
+            "huss",
+            "hust",
+            "husz",
+            "hutb",
+            "huto",
+            "huva",
+            "huve",
+            "huvm",
+            "huza",
+            "huze",
         }
         ID{
-            "JW",
-            "KA",
-            "ML",
-            "NU",
-            "PP",
-            "SL",
-            "SM",
-        }
-        ID-JW{
-            "BT",
-            "JB",
-            "JI",
-            "JK",
-            "JT",
-            "YO",
-        }
-        ID-KA{
-            "KB",
-            "KI",
-            "KS",
-            "KT",
-            "KU",
-        }
-        ID-ML{
-            "MA",
-            "MU",
-        }
-        ID-NU{
-            "BA",
-            "NB",
-            "NT",
-        }
-        ID-PP{
-            "PA",
-            "PB",
-        }
-        ID-SL{
-            "GO",
-            "SA",
-            "SG",
-            "SN",
-            "SR",
-            "ST",
-        }
-        ID-SM{
-            "AC",
-            "BB",
-            "BE",
-            "JA",
-            "KR",
-            "LA",
-            "RI",
-            "SB",
-            "SS",
-            "SU",
+            "idjw",
+            "idka",
+            "idml",
+            "idnu",
+            "idpp",
+            "idsl",
+            "idsm",
         }
         IE{
-            "C",
-            "L",
-            "M",
-            "U",
-        }
-        IE-C{
-            "G",
-            "LM",
-            "MO",
-            "RN",
-            "SO",
-        }
-        IE-L{
-            "CW",
-            "D",
-            "KE",
-            "KK",
-            "LD",
-            "LH",
-            "LS",
-            "MH",
-            "OY",
-            "WH",
-            "WW",
-            "WX",
-        }
-        IE-M{
-            "CE",
-            "CO",
-            "KY",
-            "LK",
-            "TA",
-            "WD",
-        }
-        IE-U{
-            "CN",
-            "DL",
-            "MN",
+            "iec",
+            "iel",
+            "iem",
+            "ieu",
         }
         IL{
-            "D",
-            "HA",
-            "JM",
-            "M",
-            "TA",
-            "Z",
+            "ild",
+            "ilha",
+            "iljm",
+            "ilm",
+            "ilta",
+            "ilz",
         }
         IN{
-            "AN",
-            "AP",
-            "AR",
-            "AS",
-            "BR",
-            "CH",
-            "CT",
-            "DD",
-            "DL",
-            "DN",
-            "GA",
-            "GJ",
-            "HP",
-            "HR",
-            "JH",
-            "JK",
-            "KA",
-            "KL",
-            "LD",
-            "MH",
-            "ML",
-            "MN",
-            "MP",
-            "MZ",
-            "NL",
-            "OR",
-            "PB",
-            "PY",
-            "RJ",
-            "SK",
-            "TG",
-            "TN",
-            "TR",
-            "UP",
-            "UT",
-            "WB",
+            "inan",
+            "inap",
+            "inar",
+            "inas",
+            "inbr",
+            "inch",
+            "inct",
+            "indd",
+            "indl",
+            "indn",
+            "inga",
+            "ingj",
+            "inhp",
+            "inhr",
+            "injh",
+            "injk",
+            "inka",
+            "inkl",
+            "inld",
+            "inmh",
+            "inml",
+            "inmn",
+            "inmp",
+            "inmz",
+            "innl",
+            "inor",
+            "inpb",
+            "inpy",
+            "inrj",
+            "insk",
+            "intg",
+            "intn",
+            "intr",
+            "inup",
+            "inut",
+            "inwb",
         }
         IQ{
-            "AN",
-            "AR",
-            "BA",
-            "BB",
-            "BG",
-            "DA",
-            "DI",
-            "DQ",
-            "KA",
-            "KI",
-            "MA",
-            "MU",
-            "NA",
-            "NI",
-            "QA",
-            "SD",
-            "SU",
-            "WA",
+            "iqan",
+            "iqar",
+            "iqba",
+            "iqbb",
+            "iqbg",
+            "iqda",
+            "iqdi",
+            "iqdq",
+            "iqka",
+            "iqki",
+            "iqma",
+            "iqmu",
+            "iqna",
+            "iqni",
+            "iqqa",
+            "iqsd",
+            "iqsu",
+            "iqwa",
         }
         IR{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
+            "ir01",
+            "ir02",
+            "ir03",
+            "ir04",
+            "ir05",
+            "ir06",
+            "ir07",
+            "ir08",
+            "ir10",
+            "ir11",
+            "ir12",
+            "ir13",
+            "ir14",
+            "ir15",
+            "ir16",
+            "ir17",
+            "ir18",
+            "ir19",
+            "ir20",
+            "ir21",
+            "ir22",
+            "ir23",
+            "ir24",
+            "ir25",
+            "ir26",
+            "ir27",
+            "ir28",
+            "ir29",
+            "ir30",
+            "ir31",
+            "ir32",
         }
         IS{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
+            "is1",
+            "is2",
+            "is3",
+            "is4",
+            "is5",
+            "is6",
+            "is7",
+            "is8",
         }
         IT{
-            "21",
-            "23",
-            "25",
-            "32",
-            "34",
-            "36",
-            "42",
-            "45",
-            "52",
-            "55",
-            "57",
-            "62",
-            "65",
-            "67",
-            "72",
-            "75",
-            "77",
-            "78",
-            "82",
-            "88",
-        }
-        IT-21{
-            "AL",
-            "AT",
-            "BI",
-            "CN",
-            "NO",
-            "TO",
-            "VB",
-            "VC",
-        }
-        IT-23{"AO"}
-        IT-25{
-            "BG",
-            "BS",
-            "CO",
-            "CR",
-            "LC",
-            "LO",
-            "MB",
-            "MI",
-            "MN",
-            "PV",
-            "SO",
-            "VA",
-        }
-        IT-32{
-            "BZ",
-            "TN",
-        }
-        IT-34{
-            "BL",
-            "PD",
-            "RO",
-            "TV",
-            "VE",
-            "VI",
-            "VR",
-        }
-        IT-36{
-            "GO",
-            "PN",
-            "TS",
-            "UD",
-        }
-        IT-42{
-            "GE",
-            "IM",
-            "SP",
-            "SV",
-        }
-        IT-45{
-            "BO",
-            "FC",
-            "FE",
-            "MO",
-            "PC",
-            "PR",
-            "RA",
-            "RE",
-            "RN",
-        }
-        IT-52{
-            "AR",
-            "FI",
-            "GR",
-            "LI",
-            "LU",
-            "MS",
-            "PI",
-            "PO",
-            "PT",
-            "SI",
-        }
-        IT-55{
-            "PG",
-            "TR",
-        }
-        IT-57{
-            "AN",
-            "AP",
-            "FM",
-            "MC",
-            "PU",
-        }
-        IT-62{
-            "FR",
-            "LT",
-            "RI",
-            "RM",
-            "VT",
-        }
-        IT-65{
-            "AQ",
-            "CH",
-            "PE",
-            "TE",
-        }
-        IT-67{
-            "CB",
-            "IS",
-        }
-        IT-72{
-            "AV",
-            "BN",
-            "CE",
-            "NA",
-            "SA",
-        }
-        IT-75{
-            "BA",
-            "BR",
-            "BT",
-            "FG",
-            "LE",
-            "TA",
-        }
-        IT-77{
-            "MT",
-            "PZ",
-        }
-        IT-78{
-            "CS",
-            "CZ",
-            "KR",
-            "RC",
-            "VV",
-        }
-        IT-82{
-            "AG",
-            "CL",
-            "CT",
-            "EN",
-            "ME",
-            "PA",
-            "RG",
-            "SR",
-            "TP",
-        }
-        IT-88{
-            "CA",
-            "CI",
-            "NU",
-            "OG",
-            "OR",
-            "OT",
-            "SS",
-            "VS",
+            "it21",
+            "it23",
+            "it25",
+            "it32",
+            "it34",
+            "it36",
+            "it42",
+            "it45",
+            "it52",
+            "it55",
+            "it57",
+            "it62",
+            "it65",
+            "it67",
+            "it72",
+            "it75",
+            "it77",
+            "it78",
+            "it82",
+            "it88",
         }
         JM{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
+            "jm01",
+            "jm02",
+            "jm03",
+            "jm04",
+            "jm05",
+            "jm06",
+            "jm07",
+            "jm08",
+            "jm09",
+            "jm10",
+            "jm11",
+            "jm12",
+            "jm13",
+            "jm14",
         }
         JO{
-            "AJ",
-            "AM",
-            "AQ",
-            "AT",
-            "AZ",
-            "BA",
-            "IR",
-            "JA",
-            "KA",
-            "MA",
-            "MD",
-            "MN",
+            "joaj",
+            "joam",
+            "joaq",
+            "joat",
+            "joaz",
+            "joba",
+            "joir",
+            "joja",
+            "joka",
+            "joma",
+            "jomd",
+            "jomn",
         }
         JP{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
+            "jp01",
+            "jp02",
+            "jp03",
+            "jp04",
+            "jp05",
+            "jp06",
+            "jp07",
+            "jp08",
+            "jp09",
+            "jp10",
+            "jp11",
+            "jp12",
+            "jp13",
+            "jp14",
+            "jp15",
+            "jp16",
+            "jp17",
+            "jp18",
+            "jp19",
+            "jp20",
+            "jp21",
+            "jp22",
+            "jp23",
+            "jp24",
+            "jp25",
+            "jp26",
+            "jp27",
+            "jp28",
+            "jp29",
+            "jp30",
+            "jp31",
+            "jp32",
+            "jp33",
+            "jp34",
+            "jp35",
+            "jp36",
+            "jp37",
+            "jp38",
+            "jp39",
+            "jp40",
+            "jp41",
+            "jp42",
+            "jp43",
+            "jp44",
+            "jp45",
+            "jp46",
+            "jp47",
         }
         KE{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
+            "ke01",
+            "ke02",
+            "ke03",
+            "ke04",
+            "ke05",
+            "ke06",
+            "ke07",
+            "ke08",
+            "ke09",
+            "ke10",
+            "ke11",
+            "ke12",
+            "ke13",
+            "ke14",
+            "ke15",
+            "ke16",
+            "ke17",
+            "ke18",
+            "ke19",
+            "ke20",
+            "ke21",
+            "ke22",
+            "ke23",
+            "ke24",
+            "ke25",
+            "ke26",
+            "ke27",
+            "ke28",
+            "ke29",
+            "ke30",
+            "ke31",
+            "ke32",
+            "ke33",
+            "ke34",
+            "ke35",
+            "ke36",
+            "ke37",
+            "ke38",
+            "ke39",
+            "ke40",
+            "ke41",
+            "ke42",
+            "ke43",
+            "ke44",
+            "ke45",
+            "ke46",
+            "ke47",
         }
         KG{
-            "B",
-            "C",
-            "GB",
-            "GO",
-            "J",
-            "N",
-            "O",
-            "T",
-            "Y",
+            "kgb",
+            "kgc",
+            "kggb",
+            "kggo",
+            "kgj",
+            "kgn",
+            "kgo",
+            "kgt",
+            "kgy",
         }
         KH{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
+            "kh1",
+            "kh2",
+            "kh3",
+            "kh4",
+            "kh5",
+            "kh6",
+            "kh7",
+            "kh8",
+            "kh9",
+            "kh10",
+            "kh11",
+            "kh12",
+            "kh13",
+            "kh14",
+            "kh15",
+            "kh16",
+            "kh17",
+            "kh18",
+            "kh19",
+            "kh20",
+            "kh21",
+            "kh22",
+            "kh23",
+            "kh24",
+            "kh25",
         }
         KI{
-            "G",
-            "L",
-            "P",
+            "kig",
+            "kil",
+            "kip",
         }
         KM{
-            "A",
-            "G",
-            "M",
+            "kma",
+            "kmg",
+            "kmm",
         }
         KN{
-            "K",
-            "N",
-        }
-        KN-K{
-            "01",
-            "02",
-            "03",
-            "06",
-            "08",
-            "09",
-            "11",
-            "13",
-            "15",
-        }
-        KN-N{
-            "04",
-            "05",
-            "07",
-            "10",
-            "12",
+            "knk",
+            "knn",
         }
         KP{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "13",
+            "kp01",
+            "kp02",
+            "kp03",
+            "kp04",
+            "kp05",
+            "kp06",
+            "kp07",
+            "kp08",
+            "kp09",
+            "kp10",
+            "kp13",
         }
         KR{
-            "11",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
+            "kr11",
+            "kr26",
+            "kr27",
+            "kr28",
+            "kr29",
+            "kr30",
+            "kr31",
+            "kr41",
+            "kr42",
+            "kr43",
+            "kr44",
+            "kr45",
+            "kr46",
+            "kr47",
+            "kr48",
+            "kr49",
+            "kr50",
         }
         KW{
-            "AH",
-            "FA",
-            "HA",
-            "JA",
-            "KU",
-            "MU",
+            "kwah",
+            "kwfa",
+            "kwha",
+            "kwja",
+            "kwku",
+            "kwmu",
         }
         KZ{
-            "AKM",
-            "AKT",
-            "ALA",
-            "ALM",
-            "AST",
-            "ATY",
-            "KAR",
-            "KUS",
-            "KZY",
-            "MAN",
-            "PAV",
-            "SEV",
-            "VOS",
-            "YUZ",
-            "ZAP",
-            "ZHA",
+            "kzakm",
+            "kzakt",
+            "kzala",
+            "kzalm",
+            "kzast",
+            "kzaty",
+            "kzbay",
+            "kzkar",
+            "kzkus",
+            "kzkzy",
+            "kzman",
+            "kzpav",
+            "kzsev",
+            "kzvos",
+            "kzyuz",
+            "kzzap",
+            "kzzha",
         }
         LA{
-            "AT",
-            "BK",
-            "BL",
-            "CH",
-            "HO",
-            "KH",
-            "LM",
-            "LP",
-            "OU",
-            "PH",
-            "SL",
-            "SV",
-            "VI",
-            "VT",
-            "XA",
-            "XE",
-            "XI",
-            "XS",
+            "laat",
+            "labk",
+            "labl",
+            "lach",
+            "laho",
+            "lakh",
+            "lalm",
+            "lalp",
+            "laou",
+            "laph",
+            "lasl",
+            "lasv",
+            "lavi",
+            "lavt",
+            "laxa",
+            "laxe",
+            "laxi",
+            "laxs",
         }
         LB{
-            "AK",
-            "AS",
-            "BA",
-            "BH",
-            "BI",
-            "JA",
-            "JL",
-            "NA",
+            "lbak",
+            "lbas",
+            "lbba",
+            "lbbh",
+            "lbbi",
+            "lbja",
+            "lbjl",
+            "lbna",
         }
         LC{
-            "01",
-            "02",
-            "03",
-            "05",
-            "06",
-            "07",
-            "08",
-            "10",
-            "11",
-            "12",
+            "lc01",
+            "lc02",
+            "lc03",
+            "lc05",
+            "lc06",
+            "lc07",
+            "lc08",
+            "lc10",
+            "lc11",
+            "lc12",
         }
         LI{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
+            "li01",
+            "li02",
+            "li03",
+            "li04",
+            "li05",
+            "li06",
+            "li07",
+            "li08",
+            "li09",
+            "li10",
+            "li11",
         }
         LK{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
-        }
-        LK-1{
-            "52",
-            "71",
-            "81",
-        }
-        LK-2{
-            "11",
-            "31",
-            "51",
-        }
-        LK-3{
-            "12",
-            "33",
-            "41",
-        }
-        LK-4{
-            "13",
-            "21",
-            "42",
-            "61",
-            "92",
-        }
-        LK-5{
-            "22",
-            "32",
-            "43",
-        }
-        LK-6{
-            "45",
-            "82",
-        }
-        LK-7{
-            "23",
-            "72",
-        }
-        LK-8{
-            "62",
-            "91",
-        }
-        LK-9{
-            "44",
-            "53",
+            "lk1",
+            "lk2",
+            "lk3",
+            "lk4",
+            "lk5",
+            "lk6",
+            "lk7",
+            "lk8",
+            "lk9",
         }
         LR{
-            "BG",
-            "BM",
-            "CM",
-            "GB",
-            "GG",
-            "GK",
-            "GP",
-            "LO",
-            "MG",
-            "MO",
-            "MY",
-            "NI",
-            "RG",
-            "RI",
-            "SI",
+            "lrbg",
+            "lrbm",
+            "lrcm",
+            "lrgb",
+            "lrgg",
+            "lrgk",
+            "lrgp",
+            "lrlo",
+            "lrmg",
+            "lrmo",
+            "lrmy",
+            "lrni",
+            "lrrg",
+            "lrri",
+            "lrsi",
         }
         LS{
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "J",
-            "K",
+            "lsa",
+            "lsb",
+            "lsc",
+            "lsd",
+            "lse",
+            "lsf",
+            "lsg",
+            "lsh",
+            "lsj",
+            "lsk",
         }
         LT{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "57",
-            "58",
-            "59",
-            "60",
-            "AL",
-            "KL",
-            "KU",
-            "MR",
-            "PN",
-            "SA",
-            "TA",
-            "TE",
-            "UT",
-            "VL",
+            "lt01",
+            "lt02",
+            "lt03",
+            "lt04",
+            "lt05",
+            "lt06",
+            "lt07",
+            "lt08",
+            "lt09",
+            "lt10",
+            "lt11",
+            "lt12",
+            "lt13",
+            "lt14",
+            "lt15",
+            "lt16",
+            "lt17",
+            "lt18",
+            "lt19",
+            "lt20",
+            "lt21",
+            "lt22",
+            "lt23",
+            "lt24",
+            "lt25",
+            "lt26",
+            "lt27",
+            "lt28",
+            "lt29",
+            "lt30",
+            "lt31",
+            "lt32",
+            "lt33",
+            "lt34",
+            "lt35",
+            "lt36",
+            "lt37",
+            "lt38",
+            "lt39",
+            "lt40",
+            "lt41",
+            "lt42",
+            "lt43",
+            "lt44",
+            "lt45",
+            "lt46",
+            "lt47",
+            "lt48",
+            "lt49",
+            "lt50",
+            "lt51",
+            "lt52",
+            "lt53",
+            "lt54",
+            "lt55",
+            "lt56",
+            "lt57",
+            "lt58",
+            "lt59",
+            "lt60",
+            "ltal",
+            "ltkl",
+            "ltku",
+            "ltmr",
+            "ltpn",
+            "ltsa",
+            "ltta",
+            "ltte",
+            "ltut",
+            "ltvl",
         }
         LU{
-            "CA",
-            "CL",
-            "DI",
-            "EC",
-            "ES",
-            "GR",
-            "LU",
-            "ME",
-            "RD",
-            "RM",
-            "VD",
-            "WI",
+            "luca",
+            "lucl",
+            "ludi",
+            "luec",
+            "lues",
+            "lugr",
+            "lulu",
+            "lume",
+            "lurd",
+            "lurm",
+            "luvd",
+            "luwi",
         }
         LV{
-            "001",
-            "002",
-            "003",
-            "004",
-            "005",
-            "006",
-            "007",
-            "008",
-            "009",
-            "010",
-            "011",
-            "012",
-            "013",
-            "014",
-            "015",
-            "016",
-            "017",
-            "018",
-            "019",
-            "020",
-            "021",
-            "022",
-            "023",
-            "024",
-            "025",
-            "026",
-            "027",
-            "028",
-            "029",
-            "030",
-            "031",
-            "032",
-            "033",
-            "034",
-            "035",
-            "036",
-            "037",
-            "038",
-            "039",
-            "040",
-            "041",
-            "042",
-            "043",
-            "044",
-            "045",
-            "046",
-            "047",
-            "048",
-            "049",
-            "050",
-            "051",
-            "052",
-            "053",
-            "054",
-            "055",
-            "056",
-            "057",
-            "058",
-            "059",
-            "060",
-            "061",
-            "062",
-            "063",
-            "064",
-            "065",
-            "066",
-            "067",
-            "068",
-            "069",
-            "070",
-            "071",
-            "072",
-            "073",
-            "074",
-            "075",
-            "076",
-            "077",
-            "078",
-            "079",
-            "080",
-            "081",
-            "082",
-            "083",
-            "084",
-            "085",
-            "086",
-            "087",
-            "088",
-            "089",
-            "090",
-            "091",
-            "092",
-            "093",
-            "094",
-            "095",
-            "096",
-            "097",
-            "098",
-            "099",
-            "100",
-            "101",
-            "102",
-            "103",
-            "104",
-            "105",
-            "106",
-            "107",
-            "108",
-            "109",
-            "110",
-            "DGV",
-            "JEL",
-            "JKB",
-            "JUR",
-            "LPX",
-            "REZ",
-            "RIX",
-            "VEN",
-            "VMR",
+            "lv001",
+            "lv002",
+            "lv003",
+            "lv004",
+            "lv005",
+            "lv006",
+            "lv007",
+            "lv008",
+            "lv009",
+            "lv010",
+            "lv011",
+            "lv012",
+            "lv013",
+            "lv014",
+            "lv015",
+            "lv016",
+            "lv017",
+            "lv018",
+            "lv019",
+            "lv020",
+            "lv021",
+            "lv022",
+            "lv023",
+            "lv024",
+            "lv025",
+            "lv026",
+            "lv027",
+            "lv028",
+            "lv029",
+            "lv030",
+            "lv031",
+            "lv032",
+            "lv033",
+            "lv034",
+            "lv035",
+            "lv036",
+            "lv037",
+            "lv038",
+            "lv039",
+            "lv040",
+            "lv041",
+            "lv042",
+            "lv043",
+            "lv044",
+            "lv045",
+            "lv046",
+            "lv047",
+            "lv048",
+            "lv049",
+            "lv050",
+            "lv051",
+            "lv052",
+            "lv053",
+            "lv054",
+            "lv055",
+            "lv056",
+            "lv057",
+            "lv058",
+            "lv059",
+            "lv060",
+            "lv061",
+            "lv062",
+            "lv063",
+            "lv064",
+            "lv065",
+            "lv066",
+            "lv067",
+            "lv068",
+            "lv069",
+            "lv070",
+            "lv071",
+            "lv072",
+            "lv073",
+            "lv074",
+            "lv075",
+            "lv076",
+            "lv077",
+            "lv078",
+            "lv079",
+            "lv080",
+            "lv081",
+            "lv082",
+            "lv083",
+            "lv084",
+            "lv085",
+            "lv086",
+            "lv087",
+            "lv088",
+            "lv089",
+            "lv090",
+            "lv091",
+            "lv092",
+            "lv093",
+            "lv094",
+            "lv095",
+            "lv096",
+            "lv097",
+            "lv098",
+            "lv099",
+            "lv100",
+            "lv101",
+            "lv102",
+            "lv103",
+            "lv104",
+            "lv105",
+            "lv106",
+            "lv107",
+            "lv108",
+            "lv109",
+            "lv110",
+            "lvdgv",
+            "lvjel",
+            "lvjkb",
+            "lvjur",
+            "lvlpx",
+            "lvrez",
+            "lvrix",
+            "lvven",
+            "lvvmr",
         }
         LY{
-            "BA",
-            "BU",
-            "DR",
-            "GT",
-            "JA",
-            "JG",
-            "JI",
-            "JU",
-            "KF",
-            "MB",
-            "MI",
-            "MJ",
-            "MQ",
-            "NL",
-            "NQ",
-            "SB",
-            "SR",
-            "TB",
-            "WA",
-            "WD",
-            "WS",
-            "ZA",
+            "lyba",
+            "lybu",
+            "lydr",
+            "lygt",
+            "lyja",
+            "lyjg",
+            "lyji",
+            "lyju",
+            "lykf",
+            "lymb",
+            "lymi",
+            "lymj",
+            "lymq",
+            "lynl",
+            "lynq",
+            "lysb",
+            "lysr",
+            "lytb",
+            "lywa",
+            "lywd",
+            "lyws",
+            "lyza",
         }
         MA{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-        }
-        MA-01{
-            "CHE",
-            "FAH",
-            "LAR",
-            "TET",
-            "TNG",
-        }
-        MA-02{
-            "KEN",
-            "SIK",
-        }
-        MA-03{
-            "HOC",
-            "TAO",
-            "TAZ",
-        }
-        MA-04{
-            "BER",
-            "FIG",
-            "JRA",
-            "NAD",
-            "OUJ",
-            "TAI",
-        }
-        MA-05{
-            "BOM",
-            "FES",
-            "MOU",
-            "SEF",
-        }
-        MA-06{
-            "ERR",
-            "HAJ",
-            "IFR",
-            "KHN",
-            "MEK",
-        }
-        MA-07{
-            "KHE",
-            "RAB",
-            "SAL",
-            "SKH",
-        }
-        MA-08{
-            "CAS",
-            "MED",
-            "MOH",
-            "NOU",
-        }
-        MA-09{
-            "BES",
-            "KHO",
-            "SET",
-        }
-        MA-10{
-            "JDI",
-            "SAF",
-        }
-        MA-11{
-            "CHI",
-            "ESI",
-            "HAO",
-            "KES",
-            "MMD",
-            "MMN",
-            "SYB",
-        }
-        MA-12{
-            "AZI",
-            "BEM",
-        }
-        MA-13{
-            "AGD",
-            "CHT",
-            "INE",
-            "OUA",
-            "TAR",
-            "TIZ",
-            "ZAG",
-        }
-        MA-14{
-            "ASZ",
-            "ESM",
-            "GUE",
-            "TAT",
-            "TNT",
-        }
-        MA-15{
-            "BOD",
-            "LAA",
-        }
-        MA-16{
-            "AOU",
-            "OUD",
+            "ma01",
+            "ma02",
+            "ma03",
+            "ma04",
+            "ma05",
+            "ma06",
+            "ma07",
+            "ma08",
+            "ma09",
+            "ma10",
+            "ma11",
+            "ma12",
+            "ma13",
+            "ma14",
+            "ma15",
+            "ma16",
         }
         MC{
-            "CL",
-            "CO",
-            "FO",
-            "GA",
-            "JE",
-            "LA",
-            "MA",
-            "MC",
-            "MG",
-            "MO",
-            "MU",
-            "PH",
-            "SD",
-            "SO",
-            "SP",
-            "SR",
-            "VR",
+            "mccl",
+            "mcco",
+            "mcfo",
+            "mcga",
+            "mcje",
+            "mcla",
+            "mcma",
+            "mcmc",
+            "mcmg",
+            "mcmo",
+            "mcmu",
+            "mcph",
+            "mcsd",
+            "mcso",
+            "mcsp",
+            "mcsr",
+            "mcvr",
         }
         MD{
-            "AN",
-            "BA",
-            "BD",
-            "BR",
-            "BS",
-            "CA",
-            "CL",
-            "CM",
-            "CR",
-            "CS",
-            "CT",
-            "CU",
-            "DO",
-            "DR",
-            "DU",
-            "ED",
-            "FA",
-            "FL",
-            "GA",
-            "GL",
-            "HI",
-            "IA",
-            "LE",
-            "NI",
-            "OC",
-            "OR",
-            "RE",
-            "RI",
-            "SD",
-            "SI",
-            "SN",
-            "SO",
-            "ST",
-            "SV",
-            "TA",
-            "TE",
-            "UN",
+            "mdan",
+            "mdba",
+            "mdbd",
+            "mdbr",
+            "mdbs",
+            "mdca",
+            "mdcl",
+            "mdcm",
+            "mdcr",
+            "mdcs",
+            "mdct",
+            "mdcu",
+            "mddo",
+            "mddr",
+            "mddu",
+            "mded",
+            "mdfa",
+            "mdfl",
+            "mdga",
+            "mdgl",
+            "mdhi",
+            "mdia",
+            "mdle",
+            "mdni",
+            "mdoc",
+            "mdor",
+            "mdre",
+            "mdri",
+            "mdsd",
+            "mdsi",
+            "mdsn",
+            "mdso",
+            "mdst",
+            "mdsv",
+            "mdta",
+            "mdte",
+            "mdun",
         }
         ME{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
+            "me01",
+            "me02",
+            "me03",
+            "me04",
+            "me05",
+            "me06",
+            "me07",
+            "me08",
+            "me09",
+            "me10",
+            "me11",
+            "me12",
+            "me13",
+            "me14",
+            "me15",
+            "me16",
+            "me17",
+            "me18",
+            "me19",
+            "me20",
+            "me21",
+            "me22",
+            "me23",
         }
         MG{
-            "A",
-            "D",
-            "F",
-            "M",
-            "T",
-            "U",
+            "mga",
+            "mgd",
+            "mgf",
+            "mgm",
+            "mgt",
+            "mgu",
         }
         MH{
-            "L",
-            "T",
-        }
-        MH-L{
-            "ALL",
-            "EBO",
-            "ENI",
-            "JAB",
-            "JAL",
-            "KIL",
-            "KWA",
-            "LAE",
-            "LIB",
-            "NMK",
-            "NMU",
-            "RON",
-            "UJA",
-            "WTH",
-        }
-        MH-T{
-            "ALK",
-            "ARN",
-            "AUR",
-            "LIK",
-            "MAJ",
-            "MAL",
-            "MEJ",
-            "MIL",
-            "UTI",
-            "WTJ",
+            "mhl",
+            "mht",
         }
         MK{
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "16",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "30",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "58",
-            "59",
-            "60",
-            "61",
-            "62",
-            "63",
-            "64",
-            "65",
-            "66",
-            "67",
-            "69",
-            "70",
-            "71",
-            "72",
-            "73",
-            "74",
-            "75",
-            "76",
-            "78",
-            "80",
-            "81",
-            "82",
-            "83",
-            "85",
+            "mk02",
+            "mk03",
+            "mk04",
+            "mk05",
+            "mk06",
+            "mk07",
+            "mk08",
+            "mk10",
+            "mk11",
+            "mk12",
+            "mk13",
+            "mk14",
+            "mk16",
+            "mk18",
+            "mk19",
+            "mk20",
+            "mk21",
+            "mk22",
+            "mk23",
+            "mk24",
+            "mk25",
+            "mk26",
+            "mk27",
+            "mk30",
+            "mk32",
+            "mk33",
+            "mk34",
+            "mk35",
+            "mk36",
+            "mk37",
+            "mk40",
+            "mk41",
+            "mk42",
+            "mk43",
+            "mk44",
+            "mk45",
+            "mk46",
+            "mk47",
+            "mk48",
+            "mk49",
+            "mk50",
+            "mk51",
+            "mk52",
+            "mk53",
+            "mk54",
+            "mk55",
+            "mk56",
+            "mk58",
+            "mk59",
+            "mk60",
+            "mk61",
+            "mk62",
+            "mk63",
+            "mk64",
+            "mk65",
+            "mk66",
+            "mk67",
+            "mk69",
+            "mk70",
+            "mk71",
+            "mk72",
+            "mk73",
+            "mk74",
+            "mk75",
+            "mk76",
+            "mk78",
+            "mk80",
+            "mk81",
+            "mk82",
+            "mk83",
+            "mk85",
         }
         ML{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "BKO",
+            "ml1",
+            "ml2",
+            "ml3",
+            "ml4",
+            "ml5",
+            "ml6",
+            "ml7",
+            "ml8",
+            "mlbko",
         }
         MM{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
+            "mm01",
+            "mm02",
+            "mm03",
+            "mm04",
+            "mm05",
+            "mm06",
+            "mm07",
+            "mm11",
+            "mm12",
+            "mm13",
+            "mm14",
+            "mm15",
+            "mm16",
+            "mm17",
+            "mm18",
         }
         MN{
-            "1",
-            "035",
-            "037",
-            "039",
-            "041",
-            "043",
-            "046",
-            "047",
-            "049",
-            "051",
-            "053",
-            "055",
-            "057",
-            "059",
-            "061",
-            "063",
-            "064",
-            "065",
-            "067",
-            "069",
-            "071",
-            "073",
+            "mn1",
+            "mn035",
+            "mn037",
+            "mn039",
+            "mn041",
+            "mn043",
+            "mn046",
+            "mn047",
+            "mn049",
+            "mn051",
+            "mn053",
+            "mn055",
+            "mn057",
+            "mn059",
+            "mn061",
+            "mn063",
+            "mn064",
+            "mn065",
+            "mn067",
+            "mn069",
+            "mn071",
+            "mn073",
         }
         MR{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
+            "mr01",
+            "mr02",
+            "mr03",
+            "mr04",
+            "mr05",
+            "mr06",
+            "mr07",
+            "mr08",
+            "mr09",
+            "mr10",
+            "mr11",
+            "mr12",
+            "mr13",
+            "mr14",
+            "mr15",
         }
         MT{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "57",
-            "58",
-            "59",
-            "60",
-            "61",
-            "62",
-            "63",
-            "64",
-            "65",
-            "66",
-            "67",
-            "68",
+            "mt01",
+            "mt02",
+            "mt03",
+            "mt04",
+            "mt05",
+            "mt06",
+            "mt07",
+            "mt08",
+            "mt09",
+            "mt10",
+            "mt11",
+            "mt12",
+            "mt13",
+            "mt14",
+            "mt15",
+            "mt16",
+            "mt17",
+            "mt18",
+            "mt19",
+            "mt20",
+            "mt21",
+            "mt22",
+            "mt23",
+            "mt24",
+            "mt25",
+            "mt26",
+            "mt27",
+            "mt28",
+            "mt29",
+            "mt30",
+            "mt31",
+            "mt32",
+            "mt33",
+            "mt34",
+            "mt35",
+            "mt36",
+            "mt37",
+            "mt38",
+            "mt39",
+            "mt40",
+            "mt41",
+            "mt42",
+            "mt43",
+            "mt44",
+            "mt45",
+            "mt46",
+            "mt47",
+            "mt48",
+            "mt49",
+            "mt50",
+            "mt51",
+            "mt52",
+            "mt53",
+            "mt54",
+            "mt55",
+            "mt56",
+            "mt57",
+            "mt58",
+            "mt59",
+            "mt60",
+            "mt61",
+            "mt62",
+            "mt63",
+            "mt64",
+            "mt65",
+            "mt66",
+            "mt67",
+            "mt68",
         }
         MU{
-            "AG",
-            "BL",
-            "BR",
-            "CC",
-            "CU",
-            "FL",
-            "GP",
-            "MO",
-            "PA",
-            "PL",
-            "PU",
-            "PW",
-            "QB",
-            "RO",
-            "RR",
-            "SA",
-            "VP",
+            "muag",
+            "mubl",
+            "mubr",
+            "mucc",
+            "mucu",
+            "mufl",
+            "mugp",
+            "mumo",
+            "mupa",
+            "mupl",
+            "mupu",
+            "mupw",
+            "muqb",
+            "muro",
+            "murr",
+            "musa",
+            "muvp",
         }
         MV{
-            "CE",
-            "MLE",
-            "NC",
-            "NO",
-            "SC",
-            "SU",
-            "UN",
-            "US",
-        }
-        MV-CE{
-            "12",
-            "14",
-            "17",
-        }
-        MV-NC{
-            "00",
-            "02",
-            "04",
-            "26",
-        }
-        MV-NO{
-            "03",
-            "13",
-            "20",
-            "25",
-        }
-        MV-SC{
-            "27",
-            "28",
-        }
-        MV-SU{
-            "01",
-            "29",
-        }
-        MV-UN{
-            "07",
-            "23",
-            "24",
-        }
-        MV-US{
-            "05",
-            "08",
+            "mvce",
+            "mvmle",
+            "mvnc",
+            "mvno",
+            "mvsc",
+            "mvsu",
+            "mvun",
+            "mvus",
         }
         MW{
-            "C",
-            "N",
-            "S",
-        }
-        MW-C{
-            "DE",
-            "DO",
-            "KS",
-            "LI",
-            "MC",
-            "NI",
-            "NK",
-            "NU",
-            "SA",
-        }
-        MW-N{
-            "CT",
-            "KR",
-            "LK",
-            "MZ",
-            "NB",
-            "RU",
-        }
-        MW-S{
-            "BA",
-            "BL",
-            "CK",
-            "CR",
-            "MG",
-            "MH",
-            "MU",
-            "MW",
-            "NE",
-            "NS",
-            "PH",
-            "TH",
-            "ZO",
+            "mwc",
+            "mwn",
+            "mws",
         }
         MX{
-            "AGU",
-            "BCN",
-            "BCS",
-            "CAM",
-            "CHH",
-            "CHP",
-            "COA",
-            "COL",
-            "DIF",
-            "DUR",
-            "GRO",
-            "GUA",
-            "HID",
-            "JAL",
-            "MEX",
-            "MIC",
-            "MOR",
-            "NAY",
-            "NLE",
-            "OAX",
-            "PUE",
-            "QUE",
-            "ROO",
-            "SIN",
-            "SLP",
-            "SON",
-            "TAB",
-            "TAM",
-            "TLA",
-            "VER",
-            "YUC",
-            "ZAC",
+            "mxagu",
+            "mxbcn",
+            "mxbcs",
+            "mxcam",
+            "mxchh",
+            "mxchp",
+            "mxcmx",
+            "mxcoa",
+            "mxcol",
+            "mxdur",
+            "mxgro",
+            "mxgua",
+            "mxhid",
+            "mxjal",
+            "mxmex",
+            "mxmic",
+            "mxmor",
+            "mxnay",
+            "mxnle",
+            "mxoax",
+            "mxpue",
+            "mxque",
+            "mxroo",
+            "mxsin",
+            "mxslp",
+            "mxson",
+            "mxtab",
+            "mxtam",
+            "mxtla",
+            "mxver",
+            "mxyuc",
+            "mxzac",
         }
         MY{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
+            "my01",
+            "my02",
+            "my03",
+            "my04",
+            "my05",
+            "my06",
+            "my07",
+            "my08",
+            "my09",
+            "my10",
+            "my11",
+            "my12",
+            "my13",
+            "my14",
+            "my15",
+            "my16",
         }
         MZ{
-            "A",
-            "B",
-            "G",
-            "I",
-            "L",
-            "MPM",
-            "N",
-            "P",
-            "Q",
-            "S",
-            "T",
+            "mza",
+            "mzb",
+            "mzg",
+            "mzi",
+            "mzl",
+            "mzmpm",
+            "mzn",
+            "mzp",
+            "mzq",
+            "mzs",
+            "mzt",
         }
         NA{
-            "CA",
-            "ER",
-            "HA",
-            "KA",
-            "KE",
-            "KH",
-            "KU",
-            "KW",
-            "OD",
-            "OH",
-            "ON",
-            "OS",
-            "OT",
-            "OW",
+            "naca",
+            "naer",
+            "naha",
+            "naka",
+            "nake",
+            "nakh",
+            "naku",
+            "nakw",
+            "naod",
+            "naoh",
+            "naon",
+            "naos",
+            "naot",
+            "naow",
         }
         NE{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
+            "ne1",
+            "ne2",
+            "ne3",
+            "ne4",
+            "ne5",
+            "ne6",
+            "ne7",
+            "ne8",
         }
         NG{
-            "AB",
-            "AD",
-            "AK",
-            "AN",
-            "BA",
-            "BE",
-            "BO",
-            "BY",
-            "CR",
-            "DE",
-            "EB",
-            "ED",
-            "EK",
-            "EN",
-            "FC",
-            "GO",
-            "IM",
-            "JI",
-            "KD",
-            "KE",
-            "KN",
-            "KO",
-            "KT",
-            "KW",
-            "LA",
-            "NA",
-            "NI",
-            "OG",
-            "ON",
-            "OS",
-            "OY",
-            "PL",
-            "RI",
-            "SO",
-            "TA",
-            "YO",
-            "ZA",
+            "ngab",
+            "ngad",
+            "ngak",
+            "ngan",
+            "ngba",
+            "ngbe",
+            "ngbo",
+            "ngby",
+            "ngcr",
+            "ngde",
+            "ngeb",
+            "nged",
+            "ngek",
+            "ngen",
+            "ngfc",
+            "nggo",
+            "ngim",
+            "ngji",
+            "ngkd",
+            "ngke",
+            "ngkn",
+            "ngko",
+            "ngkt",
+            "ngkw",
+            "ngla",
+            "ngna",
+            "ngni",
+            "ngog",
+            "ngon",
+            "ngos",
+            "ngoy",
+            "ngpl",
+            "ngri",
+            "ngso",
+            "ngta",
+            "ngyo",
+            "ngza",
         }
         NI{
-            "AN",
-            "AS",
-            "BO",
-            "CA",
-            "CI",
-            "CO",
-            "ES",
-            "GR",
-            "JI",
-            "LE",
-            "MD",
-            "MN",
-            "MS",
-            "MT",
-            "NS",
-            "RI",
-            "SJ",
+            "nian",
+            "nias",
+            "nibo",
+            "nica",
+            "nici",
+            "nico",
+            "nies",
+            "nigr",
+            "niji",
+            "nile",
+            "nimd",
+            "nimn",
+            "nims",
+            "nimt",
+            "nins",
+            "niri",
+            "nisj",
         }
         NL{
-            "AW",
-            "BQ1",
-            "BQ2",
-            "BQ3",
-            "CW",
-            "DR",
-            "FL",
-            "FR",
-            "GE",
-            "GR",
-            "LI",
-            "NB",
-            "NH",
-            "OV",
-            "SX",
-            "UT",
-            "ZE",
-            "ZH",
+            "nlaw",
+            "nlbq1",
+            "nlbq2",
+            "nlbq3",
+            "nlcw",
+            "nldr",
+            "nlfl",
+            "nlfr",
+            "nlge",
+            "nlgr",
+            "nlli",
+            "nlnb",
+            "nlnh",
+            "nlov",
+            "nlsx",
+            "nlut",
+            "nlze",
+            "nlzh",
         }
         NO{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
+            "no01",
+            "no02",
+            "no03",
+            "no04",
+            "no05",
+            "no06",
+            "no07",
+            "no08",
+            "no09",
+            "no10",
+            "no11",
+            "no12",
+            "no14",
+            "no15",
+            "no16",
+            "no17",
+            "no18",
+            "no19",
+            "no20",
+            "no21",
+            "no22",
         }
         NP{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-        }
-        NP-1{
-            "BA",
-            "JA",
-            "NA",
-        }
-        NP-2{
-            "BH",
-            "KA",
-            "RA",
-        }
-        NP-3{
-            "DH",
-            "GA",
-            "LU",
-        }
-        NP-4{
-            "KO",
-            "ME",
-            "SA",
-        }
-        NP-5{
-            "MA",
-            "SE",
+            "np1",
+            "np2",
+            "np3",
+            "np4",
+            "np5",
         }
         NR{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
+            "nr01",
+            "nr02",
+            "nr03",
+            "nr04",
+            "nr05",
+            "nr06",
+            "nr07",
+            "nr08",
+            "nr09",
+            "nr10",
+            "nr11",
+            "nr12",
+            "nr13",
+            "nr14",
         }
         NZ{
-            "AUK",
-            "BOP",
-            "CAN",
-            "CIT",
-            "GIS",
-            "HKB",
-            "MBH",
-            "MWT",
-            "NSN",
-            "NTL",
-            "OTA",
-            "STL",
-            "TAS",
-            "TKI",
-            "WGN",
-            "WKO",
-            "WTC",
+            "nzauk",
+            "nzbop",
+            "nzcan",
+            "nzcit",
+            "nzgis",
+            "nzhkb",
+            "nzmbh",
+            "nzmwt",
+            "nznsn",
+            "nzntl",
+            "nzota",
+            "nzstl",
+            "nztas",
+            "nztki",
+            "nzwgn",
+            "nzwko",
+            "nzwtc",
         }
         OM{
-            "BJ",
-            "BS",
-            "BU",
-            "DA",
-            "MA",
-            "MU",
-            "SJ",
-            "SS",
-            "WU",
-            "ZA",
-            "ZU",
+            "ombj",
+            "ombs",
+            "ombu",
+            "omda",
+            "omma",
+            "ommu",
+            "omsj",
+            "omss",
+            "omwu",
+            "omza",
+            "omzu",
         }
         PA{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
-            "10",
-            "EM",
-            "KY",
-            "NB",
+            "pa1",
+            "pa2",
+            "pa3",
+            "pa4",
+            "pa5",
+            "pa6",
+            "pa7",
+            "pa8",
+            "pa9",
+            "pa10",
+            "paem",
+            "paky",
+            "panb",
         }
         PE{
-            "AMA",
-            "ANC",
-            "APU",
-            "ARE",
-            "AYA",
-            "CAJ",
-            "CAL",
-            "CUS",
-            "HUC",
-            "HUV",
-            "ICA",
-            "JUN",
-            "LAL",
-            "LAM",
-            "LIM",
-            "LMA",
-            "LOR",
-            "MDD",
-            "MOQ",
-            "PAS",
-            "PIU",
-            "PUN",
-            "SAM",
-            "TAC",
-            "TUM",
-            "UCA",
+            "peama",
+            "peanc",
+            "peapu",
+            "peare",
+            "peaya",
+            "pecaj",
+            "pecal",
+            "pecus",
+            "pehuc",
+            "pehuv",
+            "peica",
+            "pejun",
+            "pelal",
+            "pelam",
+            "pelim",
+            "pelma",
+            "pelor",
+            "pemdd",
+            "pemoq",
+            "pepas",
+            "pepiu",
+            "pepun",
+            "pesam",
+            "petac",
+            "petum",
+            "peuca",
         }
         PG{
-            "CPK",
-            "CPM",
-            "EBR",
-            "EHG",
-            "EPW",
-            "ESW",
-            "GPK",
-            "HLA",
-            "JWK",
-            "MBA",
-            "MPL",
-            "MPM",
-            "MRL",
-            "NCD",
-            "NIK",
-            "NPP",
-            "NSB",
-            "SAN",
-            "SHM",
-            "WBK",
-            "WHM",
-            "WPD",
+            "pgcpk",
+            "pgcpm",
+            "pgebr",
+            "pgehg",
+            "pgepw",
+            "pgesw",
+            "pggpk",
+            "pghla",
+            "pgjwk",
+            "pgmba",
+            "pgmpl",
+            "pgmpm",
+            "pgmrl",
+            "pgncd",
+            "pgnik",
+            "pgnpp",
+            "pgnsb",
+            "pgsan",
+            "pgshm",
+            "pgwbk",
+            "pgwhm",
+            "pgwpd",
         }
         PH{
-            "00",
-            "01",
-            "02",
-            "03",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "40",
-            "41",
-        }
-        PH-01{
-            "ILN",
-            "ILS",
-            "LUN",
-            "PAN",
-        }
-        PH-02{
-            "BTN",
-            "CAG",
-            "ISA",
-            "NUV",
-            "QUI",
-        }
-        PH-03{
-            "AUR",
-            "BAN",
-            "BUL",
-            "NUE",
-            "PAM",
-            "TAR",
-            "ZMB",
-        }
-        PH-05{
-            "ALB",
-            "CAN",
-            "CAS",
-            "CAT",
-            "MAS",
-            "SOR",
-        }
-        PH-06{
-            "AKL",
-            "ANT",
-            "CAP",
-            "GUI",
-            "ILI",
-            "NEC",
-        }
-        PH-07{
-            "BOH",
-            "CEB",
-            "NER",
-            "SIG",
-        }
-        PH-08{
-            "BIL",
-            "EAS",
-            "LEY",
-            "NSA",
-            "SLE",
-            "WSA",
-        }
-        PH-09{
-            "BAS",
-            "ZAN",
-            "ZAS",
-            "ZSI",
-        }
-        PH-10{
-            "BUK",
-            "CAM",
-            "MSC",
-            "MSR",
-        }
-        PH-11{
-            "COM",
-            "DAO",
-            "DAS",
-            "DAV",
-            "DVO",
-            "SAR",
-            "SCO",
-        }
-        PH-12{
-            "LAN",
-            "NCO",
-            "SUK",
-        }
-        PH-13{
-            "AGN",
-            "AGS",
-            "DIN",
-            "SUN",
-            "SUR",
-        }
-        PH-14{
-            "LAS",
-            "MAG",
-            "SLU",
-            "TAW",
-        }
-        PH-15{
-            "ABR",
-            "APA",
-            "BEN",
-            "IFU",
-            "KAL",
-            "MOU",
-        }
-        PH-40{
-            "BTG",
-            "CAV",
-            "LAG",
-            "QUE",
-            "RIZ",
-        }
-        PH-41{
-            "MAD",
-            "MDC",
-            "MDR",
-            "PLW",
-            "ROM",
+            "ph00",
+            "ph01",
+            "ph02",
+            "ph03",
+            "ph05",
+            "ph06",
+            "ph07",
+            "ph08",
+            "ph09",
+            "ph10",
+            "ph11",
+            "ph12",
+            "ph13",
+            "ph14",
+            "ph15",
+            "ph40",
+            "ph41",
         }
         PK{
-            "BA",
-            "GB",
-            "IS",
-            "JK",
-            "KP",
-            "PB",
-            "SD",
-            "TA",
+            "pkba",
+            "pkgb",
+            "pkis",
+            "pkjk",
+            "pkkp",
+            "pkpb",
+            "pksd",
+            "pkta",
         }
         PL{
-            "DS",
-            "KP",
-            "LB",
-            "LD",
-            "LU",
-            "MA",
-            "MZ",
-            "OP",
-            "PD",
-            "PK",
-            "PM",
-            "SK",
-            "SL",
-            "WN",
-            "WP",
-            "ZP",
+            "plds",
+            "plkp",
+            "pllb",
+            "plld",
+            "pllu",
+            "plma",
+            "plmz",
+            "plop",
+            "plpd",
+            "plpk",
+            "plpm",
+            "plsk",
+            "plsl",
+            "plwn",
+            "plwp",
+            "plzp",
         }
         PS{
-            "BTH",
-            "DEB",
-            "GZA",
-            "HBN",
-            "JEM",
-            "JEN",
-            "JRH",
-            "KYS",
-            "NBS",
-            "NGZ",
-            "QQA",
-            "RBH",
-            "RFH",
-            "SLT",
-            "TBS",
-            "TKM",
+            "psbth",
+            "psdeb",
+            "psgza",
+            "pshbn",
+            "psjem",
+            "psjen",
+            "psjrh",
+            "pskys",
+            "psnbs",
+            "psngz",
+            "psqqa",
+            "psrbh",
+            "psrfh",
+            "psslt",
+            "pstbs",
+            "pstkm",
         }
         PT{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "20",
-            "30",
+            "pt01",
+            "pt02",
+            "pt03",
+            "pt04",
+            "pt05",
+            "pt06",
+            "pt07",
+            "pt08",
+            "pt09",
+            "pt10",
+            "pt11",
+            "pt12",
+            "pt13",
+            "pt14",
+            "pt15",
+            "pt16",
+            "pt17",
+            "pt18",
+            "pt20",
+            "pt30",
         }
         PW{
-            "002",
-            "004",
-            "010",
-            "050",
-            "100",
-            "150",
-            "212",
-            "214",
-            "218",
-            "222",
-            "224",
-            "226",
-            "227",
-            "228",
-            "350",
-            "370",
+            "pw002",
+            "pw004",
+            "pw010",
+            "pw050",
+            "pw100",
+            "pw150",
+            "pw212",
+            "pw214",
+            "pw218",
+            "pw222",
+            "pw224",
+            "pw226",
+            "pw227",
+            "pw228",
+            "pw350",
+            "pw370",
         }
         PY{
-            "1",
-            "2",
-            "3",
-            "4",
-            "5",
-            "6",
-            "7",
-            "8",
-            "9",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "19",
-            "ASU",
+            "py1",
+            "py2",
+            "py3",
+            "py4",
+            "py5",
+            "py6",
+            "py7",
+            "py8",
+            "py9",
+            "py10",
+            "py11",
+            "py12",
+            "py13",
+            "py14",
+            "py15",
+            "py16",
+            "py19",
+            "pyasu",
         }
         QA{
-            "DA",
-            "KH",
-            "MS",
-            "RA",
-            "US",
-            "WA",
-            "ZA",
+            "qada",
+            "qakh",
+            "qams",
+            "qara",
+            "qaus",
+            "qawa",
+            "qaza",
         }
         RO{
-            "AB",
-            "AG",
-            "AR",
-            "B",
-            "BC",
-            "BH",
-            "BN",
-            "BR",
-            "BT",
-            "BV",
-            "BZ",
-            "CJ",
-            "CL",
-            "CS",
-            "CT",
-            "CV",
-            "DB",
-            "DJ",
-            "GJ",
-            "GL",
-            "GR",
-            "HD",
-            "HR",
-            "IF",
-            "IL",
-            "IS",
-            "MH",
-            "MM",
-            "MS",
-            "NT",
-            "OT",
-            "PH",
-            "SB",
-            "SJ",
-            "SM",
-            "SV",
-            "TL",
-            "TM",
-            "TR",
-            "VL",
-            "VN",
-            "VS",
+            "roab",
+            "roag",
+            "roar",
+            "rob",
+            "robc",
+            "robh",
+            "robn",
+            "robr",
+            "robt",
+            "robv",
+            "robz",
+            "rocj",
+            "rocl",
+            "rocs",
+            "roct",
+            "rocv",
+            "rodb",
+            "rodj",
+            "rogj",
+            "rogl",
+            "rogr",
+            "rohd",
+            "rohr",
+            "roif",
+            "roil",
+            "rois",
+            "romh",
+            "romm",
+            "roms",
+            "ront",
+            "root",
+            "roph",
+            "rosb",
+            "rosj",
+            "rosm",
+            "rosv",
+            "rotl",
+            "rotm",
+            "rotr",
+            "rovl",
+            "rovn",
+            "rovs",
         }
         RS{
-            "00",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "KM",
-            "VO",
-        }
-        RS-KM{
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-        }
-        RS-VO{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
+            "rs00",
+            "rs08",
+            "rs09",
+            "rs10",
+            "rs11",
+            "rs12",
+            "rs13",
+            "rs14",
+            "rs15",
+            "rs16",
+            "rs17",
+            "rs18",
+            "rs19",
+            "rs20",
+            "rs21",
+            "rs22",
+            "rs23",
+            "rs24",
+            "rskm",
+            "rsvo",
         }
         RU{
-            "AD",
-            "AL",
-            "ALT",
-            "AMU",
-            "ARK",
-            "AST",
-            "BA",
-            "BEL",
-            "BRY",
-            "BU",
-            "CE",
-            "CHE",
-            "CHU",
-            "CU",
-            "DA",
-            "IN",
-            "IRK",
-            "IVA",
-            "KAM",
-            "KB",
-            "KC",
-            "KDA",
-            "KEM",
-            "KGD",
-            "KGN",
-            "KHA",
-            "KHM",
-            "KIR",
-            "KK",
-            "KL",
-            "KLU",
-            "KO",
-            "KOS",
-            "KR",
-            "KRS",
-            "KYA",
-            "LEN",
-            "LIP",
-            "MAG",
-            "ME",
-            "MO",
-            "MOS",
-            "MOW",
-            "MUR",
-            "NEN",
-            "NGR",
-            "NIZ",
-            "NVS",
-            "OMS",
-            "ORE",
-            "ORL",
-            "PER",
-            "PNZ",
-            "PRI",
-            "PSK",
-            "ROS",
-            "RYA",
-            "SA",
-            "SAK",
-            "SAM",
-            "SAR",
-            "SE",
-            "SMO",
-            "SPE",
-            "STA",
-            "SVE",
-            "TA",
-            "TAM",
-            "TOM",
-            "TUL",
-            "TVE",
-            "TY",
-            "TYU",
-            "UD",
-            "ULY",
-            "VGG",
-            "VLA",
-            "VLG",
-            "VOR",
-            "YAN",
-            "YAR",
-            "YEV",
-            "ZAB",
+            "ruad",
+            "rual",
+            "rualt",
+            "ruamu",
+            "ruark",
+            "ruast",
+            "ruba",
+            "rubel",
+            "rubry",
+            "rubu",
+            "ruce",
+            "ruche",
+            "ruchu",
+            "rucu",
+            "ruda",
+            "ruin",
+            "ruirk",
+            "ruiva",
+            "rukam",
+            "rukb",
+            "rukc",
+            "rukda",
+            "rukem",
+            "rukgd",
+            "rukgn",
+            "rukha",
+            "rukhm",
+            "rukir",
+            "rukk",
+            "rukl",
+            "ruklu",
+            "ruko",
+            "rukos",
+            "rukr",
+            "rukrs",
+            "rukya",
+            "rulen",
+            "rulip",
+            "rumag",
+            "rume",
+            "rumo",
+            "rumos",
+            "rumow",
+            "rumur",
+            "runen",
+            "rungr",
+            "runiz",
+            "runvs",
+            "ruoms",
+            "ruore",
+            "ruorl",
+            "ruper",
+            "rupnz",
+            "rupri",
+            "rupsk",
+            "ruros",
+            "rurya",
+            "rusa",
+            "rusak",
+            "rusam",
+            "rusar",
+            "ruse",
+            "rusmo",
+            "ruspe",
+            "rusta",
+            "rusve",
+            "ruta",
+            "rutam",
+            "rutom",
+            "rutul",
+            "rutve",
+            "ruty",
+            "rutyu",
+            "ruud",
+            "ruuly",
+            "ruvgg",
+            "ruvla",
+            "ruvlg",
+            "ruvor",
+            "ruyan",
+            "ruyar",
+            "ruyev",
+            "ruzab",
         }
         RW{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
+            "rw01",
+            "rw02",
+            "rw03",
+            "rw04",
+            "rw05",
         }
         SA{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "14",
+            "sa01",
+            "sa02",
+            "sa03",
+            "sa04",
+            "sa05",
+            "sa06",
+            "sa07",
+            "sa08",
+            "sa09",
+            "sa10",
+            "sa11",
+            "sa12",
+            "sa14",
         }
         SB{
-            "CE",
-            "CH",
-            "CT",
-            "GU",
-            "IS",
-            "MK",
-            "ML",
-            "RB",
-            "TE",
-            "WE",
+            "sbce",
+            "sbch",
+            "sbct",
+            "sbgu",
+            "sbis",
+            "sbmk",
+            "sbml",
+            "sbrb",
+            "sbte",
+            "sbwe",
         }
         SC{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
+            "sc01",
+            "sc02",
+            "sc03",
+            "sc04",
+            "sc05",
+            "sc06",
+            "sc07",
+            "sc08",
+            "sc09",
+            "sc10",
+            "sc11",
+            "sc12",
+            "sc13",
+            "sc14",
+            "sc15",
+            "sc16",
+            "sc17",
+            "sc18",
+            "sc19",
+            "sc20",
+            "sc21",
+            "sc22",
+            "sc23",
+            "sc24",
+            "sc25",
         }
         SD{
-            "DC",
-            "DE",
-            "DN",
-            "DS",
-            "DW",
-            "GD",
-            "GK",
-            "GZ",
-            "KA",
-            "KH",
-            "KN",
-            "KS",
-            "NB",
-            "NO",
-            "NR",
-            "NW",
-            "RS",
-            "SI",
+            "sddc",
+            "sdde",
+            "sddn",
+            "sdds",
+            "sddw",
+            "sdgd",
+            "sdgk",
+            "sdgz",
+            "sdka",
+            "sdkh",
+            "sdkn",
+            "sdks",
+            "sdnb",
+            "sdno",
+            "sdnr",
+            "sdnw",
+            "sdrs",
+            "sdsi",
         }
         SE{
-            "AB",
-            "AC",
-            "BD",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "I",
-            "K",
-            "M",
-            "N",
-            "O",
-            "S",
-            "T",
-            "U",
-            "W",
-            "X",
-            "Y",
-            "Z",
+            "seab",
+            "seac",
+            "sebd",
+            "sec",
+            "sed",
+            "see",
+            "sef",
+            "seg",
+            "seh",
+            "sei",
+            "sek",
+            "sem",
+            "sen",
+            "seo",
+            "ses",
+            "set",
+            "seu",
+            "sew",
+            "sex",
+            "sey",
+            "sez",
         }
         SG{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
+            "sg01",
+            "sg02",
+            "sg03",
+            "sg04",
+            "sg05",
         }
         SH{
-            "AC",
-            "HL",
-            "TA",
+            "shac",
+            "shhl",
+            "shta",
         }
         SI{
-            "001",
-            "002",
-            "003",
-            "004",
-            "005",
-            "006",
-            "007",
-            "008",
-            "009",
-            "010",
-            "011",
-            "012",
-            "013",
-            "014",
-            "015",
-            "016",
-            "017",
-            "018",
-            "019",
-            "020",
-            "021",
-            "022",
-            "023",
-            "024",
-            "025",
-            "026",
-            "027",
-            "028",
-            "029",
-            "030",
-            "031",
-            "032",
-            "033",
-            "034",
-            "035",
-            "036",
-            "037",
-            "038",
-            "039",
-            "040",
-            "041",
-            "042",
-            "043",
-            "044",
-            "045",
-            "046",
-            "047",
-            "048",
-            "049",
-            "050",
-            "051",
-            "052",
-            "053",
-            "054",
-            "055",
-            "056",
-            "057",
-            "058",
-            "059",
-            "060",
-            "061",
-            "062",
-            "063",
-            "064",
-            "065",
-            "066",
-            "067",
-            "068",
-            "069",
-            "070",
-            "071",
-            "072",
-            "073",
-            "074",
-            "075",
-            "076",
-            "077",
-            "078",
-            "079",
-            "080",
-            "081",
-            "082",
-            "083",
-            "084",
-            "085",
-            "086",
-            "087",
-            "088",
-            "089",
-            "090",
-            "091",
-            "092",
-            "093",
-            "094",
-            "095",
-            "096",
-            "097",
-            "098",
-            "099",
-            "100",
-            "101",
-            "102",
-            "103",
-            "104",
-            "105",
-            "106",
-            "107",
-            "108",
-            "109",
-            "110",
-            "111",
-            "112",
-            "113",
-            "114",
-            "115",
-            "116",
-            "117",
-            "118",
-            "119",
-            "120",
-            "121",
-            "122",
-            "123",
-            "124",
-            "125",
-            "126",
-            "127",
-            "128",
-            "129",
-            "130",
-            "131",
-            "132",
-            "133",
-            "134",
-            "135",
-            "136",
-            "137",
-            "138",
-            "139",
-            "140",
-            "141",
-            "142",
-            "143",
-            "144",
-            "146",
-            "147",
-            "148",
-            "149",
-            "150",
-            "151",
-            "152",
-            "153",
-            "154",
-            "155",
-            "156",
-            "157",
-            "158",
-            "159",
-            "160",
-            "161",
-            "162",
-            "163",
-            "164",
-            "165",
-            "166",
-            "167",
-            "168",
-            "169",
-            "170",
-            "171",
-            "172",
-            "173",
-            "174",
-            "175",
-            "176",
-            "177",
-            "178",
-            "179",
-            "180",
-            "181",
-            "182",
-            "183",
-            "184",
-            "185",
-            "186",
-            "187",
-            "188",
-            "189",
-            "190",
-            "191",
-            "192",
-            "193",
-            "194",
-            "195",
-            "196",
-            "197",
-            "198",
-            "199",
-            "200",
-            "201",
-            "202",
-            "203",
-            "204",
-            "205",
-            "206",
-            "207",
-            "208",
-            "209",
-            "210",
-            "211",
-            "212",
+            "si001",
+            "si002",
+            "si003",
+            "si004",
+            "si005",
+            "si006",
+            "si007",
+            "si008",
+            "si009",
+            "si010",
+            "si011",
+            "si012",
+            "si013",
+            "si014",
+            "si015",
+            "si016",
+            "si017",
+            "si018",
+            "si019",
+            "si020",
+            "si021",
+            "si022",
+            "si023",
+            "si024",
+            "si025",
+            "si026",
+            "si027",
+            "si028",
+            "si029",
+            "si030",
+            "si031",
+            "si032",
+            "si033",
+            "si034",
+            "si035",
+            "si036",
+            "si037",
+            "si038",
+            "si039",
+            "si040",
+            "si041",
+            "si042",
+            "si043",
+            "si044",
+            "si045",
+            "si046",
+            "si047",
+            "si048",
+            "si049",
+            "si050",
+            "si051",
+            "si052",
+            "si053",
+            "si054",
+            "si055",
+            "si056",
+            "si057",
+            "si058",
+            "si059",
+            "si060",
+            "si061",
+            "si062",
+            "si063",
+            "si064",
+            "si065",
+            "si066",
+            "si067",
+            "si068",
+            "si069",
+            "si070",
+            "si071",
+            "si072",
+            "si073",
+            "si074",
+            "si075",
+            "si076",
+            "si077",
+            "si078",
+            "si079",
+            "si080",
+            "si081",
+            "si082",
+            "si083",
+            "si084",
+            "si085",
+            "si086",
+            "si087",
+            "si088",
+            "si089",
+            "si090",
+            "si091",
+            "si092",
+            "si093",
+            "si094",
+            "si095",
+            "si096",
+            "si097",
+            "si098",
+            "si099",
+            "si100",
+            "si101",
+            "si102",
+            "si103",
+            "si104",
+            "si105",
+            "si106",
+            "si107",
+            "si108",
+            "si109",
+            "si110",
+            "si111",
+            "si112",
+            "si113",
+            "si114",
+            "si115",
+            "si116",
+            "si117",
+            "si118",
+            "si119",
+            "si120",
+            "si121",
+            "si122",
+            "si123",
+            "si124",
+            "si125",
+            "si126",
+            "si127",
+            "si128",
+            "si129",
+            "si130",
+            "si131",
+            "si132",
+            "si133",
+            "si134",
+            "si135",
+            "si136",
+            "si137",
+            "si138",
+            "si139",
+            "si140",
+            "si141",
+            "si142",
+            "si143",
+            "si144",
+            "si146",
+            "si147",
+            "si148",
+            "si149",
+            "si150",
+            "si151",
+            "si152",
+            "si153",
+            "si154",
+            "si155",
+            "si156",
+            "si157",
+            "si158",
+            "si159",
+            "si160",
+            "si161",
+            "si162",
+            "si163",
+            "si164",
+            "si165",
+            "si166",
+            "si167",
+            "si168",
+            "si169",
+            "si170",
+            "si171",
+            "si172",
+            "si173",
+            "si174",
+            "si175",
+            "si176",
+            "si177",
+            "si178",
+            "si179",
+            "si180",
+            "si181",
+            "si182",
+            "si183",
+            "si184",
+            "si185",
+            "si186",
+            "si187",
+            "si188",
+            "si189",
+            "si190",
+            "si191",
+            "si192",
+            "si193",
+            "si194",
+            "si195",
+            "si196",
+            "si197",
+            "si198",
+            "si199",
+            "si200",
+            "si201",
+            "si202",
+            "si203",
+            "si204",
+            "si205",
+            "si206",
+            "si207",
+            "si208",
+            "si209",
+            "si210",
+            "si211",
+            "si212",
+            "si213",
         }
         SK{
-            "BC",
-            "BL",
-            "KI",
-            "NI",
-            "PV",
-            "TA",
-            "TC",
-            "ZI",
+            "skbc",
+            "skbl",
+            "skki",
+            "skni",
+            "skpv",
+            "skta",
+            "sktc",
+            "skzi",
         }
         SL{
-            "E",
-            "N",
-            "S",
-            "W",
+            "sle",
+            "sln",
+            "sls",
+            "slw",
         }
         SM{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
+            "sm01",
+            "sm02",
+            "sm03",
+            "sm04",
+            "sm05",
+            "sm06",
+            "sm07",
+            "sm08",
+            "sm09",
         }
         SN{
-            "DB",
-            "DK",
-            "FK",
-            "KA",
-            "KD",
-            "KE",
-            "KL",
-            "LG",
-            "MT",
-            "SE",
-            "SL",
-            "TC",
-            "TH",
-            "ZG",
+            "sndb",
+            "sndk",
+            "snfk",
+            "snka",
+            "snkd",
+            "snke",
+            "snkl",
+            "snlg",
+            "snmt",
+            "snse",
+            "snsl",
+            "sntc",
+            "snth",
+            "snzg",
         }
         SO{
-            "AW",
-            "BK",
-            "BN",
-            "BR",
-            "BY",
-            "GA",
-            "GE",
-            "HI",
-            "JD",
-            "JH",
-            "MU",
-            "NU",
-            "SA",
-            "SD",
-            "SH",
-            "SO",
-            "TO",
-            "WO",
+            "soaw",
+            "sobk",
+            "sobn",
+            "sobr",
+            "soby",
+            "soga",
+            "soge",
+            "sohi",
+            "sojd",
+            "sojh",
+            "somu",
+            "sonu",
+            "sosa",
+            "sosd",
+            "sosh",
+            "soso",
+            "soto",
+            "sowo",
         }
         SR{
-            "BR",
-            "CM",
-            "CR",
-            "MA",
-            "NI",
-            "PM",
-            "PR",
-            "SA",
-            "SI",
-            "WA",
+            "srbr",
+            "srcm",
+            "srcr",
+            "srma",
+            "srni",
+            "srpm",
+            "srpr",
+            "srsa",
+            "srsi",
+            "srwa",
         }
         SS{
-            "BN",
-            "BW",
-            "EC",
-            "EE",
-            "EW",
-            "JG",
-            "LK",
-            "NU",
-            "UY",
-            "WR",
+            "ssbn",
+            "ssbw",
+            "ssec",
+            "ssee",
+            "ssew",
+            "ssjg",
+            "sslk",
+            "ssnu",
+            "ssuy",
+            "sswr",
         }
         ST{
-            "P",
-            "S",
+            "stp",
+            "sts",
         }
         SV{
-            "AH",
-            "CA",
-            "CH",
-            "CU",
-            "LI",
-            "MO",
-            "PA",
-            "SA",
-            "SM",
-            "SO",
-            "SS",
-            "SV",
-            "UN",
-            "US",
+            "svah",
+            "svca",
+            "svch",
+            "svcu",
+            "svli",
+            "svmo",
+            "svpa",
+            "svsa",
+            "svsm",
+            "svso",
+            "svss",
+            "svsv",
+            "svun",
+            "svus",
         }
         SY{
-            "DI",
-            "DR",
-            "DY",
-            "HA",
-            "HI",
-            "HL",
-            "HM",
-            "ID",
-            "LA",
-            "QU",
-            "RA",
-            "RD",
-            "SU",
-            "TA",
+            "sydi",
+            "sydr",
+            "sydy",
+            "syha",
+            "syhi",
+            "syhl",
+            "syhm",
+            "syid",
+            "syla",
+            "syqu",
+            "syra",
+            "syrd",
+            "sysu",
+            "syta",
         }
         SZ{
-            "HH",
-            "LU",
-            "MA",
-            "SH",
+            "szhh",
+            "szlu",
+            "szma",
+            "szsh",
         }
         TD{
-            "BA",
-            "BG",
-            "BO",
-            "CB",
-            "EE",
-            "EO",
-            "GR",
-            "HL",
-            "KA",
-            "LC",
-            "LO",
-            "LR",
-            "MA",
-            "MC",
-            "ME",
-            "MO",
-            "ND",
-            "OD",
-            "SA",
-            "SI",
-            "TA",
-            "TI",
-            "WF",
+            "tdba",
+            "tdbg",
+            "tdbo",
+            "tdcb",
+            "tdee",
+            "tdeo",
+            "tdgr",
+            "tdhl",
+            "tdka",
+            "tdlc",
+            "tdlo",
+            "tdlr",
+            "tdma",
+            "tdmc",
+            "tdme",
+            "tdmo",
+            "tdnd",
+            "tdod",
+            "tdsa",
+            "tdsi",
+            "tdta",
+            "tdti",
+            "tdwf",
         }
         TG{
-            "C",
-            "K",
-            "M",
-            "P",
-            "S",
+            "tgc",
+            "tgk",
+            "tgm",
+            "tgp",
+            "tgs",
         }
         TH{
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "57",
-            "58",
-            "60",
-            "61",
-            "62",
-            "63",
-            "64",
-            "65",
-            "66",
-            "67",
-            "70",
-            "71",
-            "72",
-            "73",
-            "74",
-            "75",
-            "76",
-            "77",
-            "80",
-            "81",
-            "82",
-            "83",
-            "84",
-            "85",
-            "86",
-            "90",
-            "91",
-            "92",
-            "93",
-            "94",
-            "95",
-            "96",
-            "S",
+            "th10",
+            "th11",
+            "th12",
+            "th13",
+            "th14",
+            "th15",
+            "th16",
+            "th17",
+            "th18",
+            "th19",
+            "th20",
+            "th21",
+            "th22",
+            "th23",
+            "th24",
+            "th25",
+            "th26",
+            "th27",
+            "th30",
+            "th31",
+            "th32",
+            "th33",
+            "th34",
+            "th35",
+            "th36",
+            "th37",
+            "th38",
+            "th39",
+            "th40",
+            "th41",
+            "th42",
+            "th43",
+            "th44",
+            "th45",
+            "th46",
+            "th47",
+            "th48",
+            "th49",
+            "th50",
+            "th51",
+            "th52",
+            "th53",
+            "th54",
+            "th55",
+            "th56",
+            "th57",
+            "th58",
+            "th60",
+            "th61",
+            "th62",
+            "th63",
+            "th64",
+            "th65",
+            "th66",
+            "th67",
+            "th70",
+            "th71",
+            "th72",
+            "th73",
+            "th74",
+            "th75",
+            "th76",
+            "th77",
+            "th80",
+            "th81",
+            "th82",
+            "th83",
+            "th84",
+            "th85",
+            "th86",
+            "th90",
+            "th91",
+            "th92",
+            "th93",
+            "th94",
+            "th95",
+            "th96",
+            "ths",
         }
         TJ{
-            "DU",
-            "GB",
-            "KT",
-            "SU",
+            "tjdu",
+            "tjgb",
+            "tjkt",
+            "tjra",
+            "tjsu",
         }
         TL{
-            "AL",
-            "AN",
-            "BA",
-            "BO",
-            "CO",
-            "DI",
-            "ER",
-            "LA",
-            "LI",
-            "MF",
-            "MT",
-            "OE",
-            "VI",
+            "tlal",
+            "tlan",
+            "tlba",
+            "tlbo",
+            "tlco",
+            "tldi",
+            "tler",
+            "tlla",
+            "tlli",
+            "tlmf",
+            "tlmt",
+            "tloe",
+            "tlvi",
         }
         TM{
-            "A",
-            "B",
-            "D",
-            "L",
-            "M",
-            "S",
+            "tma",
+            "tmb",
+            "tmd",
+            "tml",
+            "tmm",
+            "tms",
         }
         TN{
-            "11",
-            "12",
-            "13",
-            "14",
-            "21",
-            "22",
-            "23",
-            "31",
-            "32",
-            "33",
-            "34",
-            "41",
-            "42",
-            "43",
-            "51",
-            "52",
-            "53",
-            "61",
-            "71",
-            "72",
-            "73",
-            "81",
-            "82",
-            "83",
+            "tn11",
+            "tn12",
+            "tn13",
+            "tn14",
+            "tn21",
+            "tn22",
+            "tn23",
+            "tn31",
+            "tn32",
+            "tn33",
+            "tn34",
+            "tn41",
+            "tn42",
+            "tn43",
+            "tn51",
+            "tn52",
+            "tn53",
+            "tn61",
+            "tn71",
+            "tn72",
+            "tn73",
+            "tn81",
+            "tn82",
+            "tn83",
         }
         TO{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
+            "to01",
+            "to02",
+            "to03",
+            "to04",
+            "to05",
         }
         TR{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "38",
-            "39",
-            "40",
-            "41",
-            "42",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "48",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "57",
-            "58",
-            "59",
-            "60",
-            "61",
-            "62",
-            "63",
-            "64",
-            "65",
-            "66",
-            "67",
-            "68",
-            "69",
-            "70",
-            "71",
-            "72",
-            "73",
-            "74",
-            "75",
-            "76",
-            "77",
-            "78",
-            "79",
-            "80",
-            "81",
+            "tr01",
+            "tr02",
+            "tr03",
+            "tr04",
+            "tr05",
+            "tr06",
+            "tr07",
+            "tr08",
+            "tr09",
+            "tr10",
+            "tr11",
+            "tr12",
+            "tr13",
+            "tr14",
+            "tr15",
+            "tr16",
+            "tr17",
+            "tr18",
+            "tr19",
+            "tr20",
+            "tr21",
+            "tr22",
+            "tr23",
+            "tr24",
+            "tr25",
+            "tr26",
+            "tr27",
+            "tr28",
+            "tr29",
+            "tr30",
+            "tr31",
+            "tr32",
+            "tr33",
+            "tr34",
+            "tr35",
+            "tr36",
+            "tr37",
+            "tr38",
+            "tr39",
+            "tr40",
+            "tr41",
+            "tr42",
+            "tr43",
+            "tr44",
+            "tr45",
+            "tr46",
+            "tr47",
+            "tr48",
+            "tr49",
+            "tr50",
+            "tr51",
+            "tr52",
+            "tr53",
+            "tr54",
+            "tr55",
+            "tr56",
+            "tr57",
+            "tr58",
+            "tr59",
+            "tr60",
+            "tr61",
+            "tr62",
+            "tr63",
+            "tr64",
+            "tr65",
+            "tr66",
+            "tr67",
+            "tr68",
+            "tr69",
+            "tr70",
+            "tr71",
+            "tr72",
+            "tr73",
+            "tr74",
+            "tr75",
+            "tr76",
+            "tr77",
+            "tr78",
+            "tr79",
+            "tr80",
+            "tr81",
         }
         TT{
-            "ARI",
-            "CHA",
-            "CTT",
-            "DMN",
-            "MRC",
-            "PED",
-            "POS",
-            "PRT",
-            "PTF",
-            "SFO",
-            "SGE",
-            "SIP",
-            "SJL",
-            "TOB",
-            "TUP",
+            "ttari",
+            "ttcha",
+            "ttctt",
+            "ttdmn",
+            "ttmrc",
+            "ttped",
+            "ttpos",
+            "ttprt",
+            "ttptf",
+            "ttsfo",
+            "ttsge",
+            "ttsip",
+            "ttsjl",
+            "tttob",
+            "tttup",
         }
         TV{
-            "FUN",
-            "NIT",
-            "NKF",
-            "NKL",
-            "NMA",
-            "NMG",
-            "NUI",
-            "VAI",
+            "tvfun",
+            "tvnit",
+            "tvnkf",
+            "tvnkl",
+            "tvnma",
+            "tvnmg",
+            "tvnui",
+            "tvvai",
         }
         TW{
-            "CHA",
-            "CYI",
-            "CYQ",
-            "HSQ",
-            "HSZ",
-            "HUA",
-            "ILA",
-            "KEE",
-            "KHH",
-            "KIN",
-            "LIE",
-            "MIA",
-            "NAN",
-            "NWT",
-            "PEN",
-            "PIF",
-            "TAO",
-            "TNN",
-            "TPE",
-            "TTT",
-            "TXG",
-            "YUN",
+            "twcha",
+            "twcyi",
+            "twcyq",
+            "twhsq",
+            "twhsz",
+            "twhua",
+            "twila",
+            "twkee",
+            "twkhh",
+            "twkin",
+            "twlie",
+            "twmia",
+            "twnan",
+            "twnwt",
+            "twpen",
+            "twpif",
+            "twtao",
+            "twtnn",
+            "twtpe",
+            "twttt",
+            "twtxg",
+            "twyun",
         }
         TZ{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
-            "11",
-            "12",
-            "13",
-            "14",
-            "15",
-            "16",
-            "17",
-            "18",
-            "19",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
+            "tz01",
+            "tz02",
+            "tz03",
+            "tz04",
+            "tz05",
+            "tz06",
+            "tz07",
+            "tz08",
+            "tz09",
+            "tz10",
+            "tz11",
+            "tz12",
+            "tz13",
+            "tz14",
+            "tz15",
+            "tz16",
+            "tz17",
+            "tz18",
+            "tz19",
+            "tz20",
+            "tz21",
+            "tz22",
+            "tz23",
+            "tz24",
+            "tz25",
+            "tz26",
+            "tz27",
+            "tz28",
+            "tz29",
+            "tz30",
         }
         UA{
-            "05",
-            "07",
-            "09",
-            "12",
-            "14",
-            "18",
-            "21",
-            "23",
-            "26",
-            "30",
-            "32",
-            "35",
-            "40",
-            "43",
-            "46",
-            "48",
-            "51",
-            "53",
-            "56",
-            "59",
-            "61",
-            "63",
-            "65",
-            "68",
-            "71",
-            "74",
-            "77",
+            "ua05",
+            "ua07",
+            "ua09",
+            "ua12",
+            "ua14",
+            "ua18",
+            "ua21",
+            "ua23",
+            "ua26",
+            "ua30",
+            "ua32",
+            "ua35",
+            "ua40",
+            "ua43",
+            "ua46",
+            "ua48",
+            "ua51",
+            "ua53",
+            "ua56",
+            "ua59",
+            "ua61",
+            "ua63",
+            "ua65",
+            "ua68",
+            "ua71",
+            "ua74",
+            "ua77",
         }
         UG{
-            "C",
-            "E",
-            "N",
-            "W",
-        }
-        UG-C{
-            "101",
-            "102",
-            "103",
-            "104",
-            "105",
-            "106",
-            "107",
-            "108",
-            "109",
-            "110",
-            "111",
-            "112",
-            "113",
-            "114",
-            "115",
-            "116",
-            "117",
-            "118",
-            "119",
-            "120",
-            "121",
-            "122",
-            "123",
-            "124",
-        }
-        UG-E{
-            "201",
-            "202",
-            "203",
-            "204",
-            "205",
-            "206",
-            "207",
-            "208",
-            "209",
-            "210",
-            "211",
-            "212",
-            "213",
-            "214",
-            "215",
-            "216",
-            "217",
-            "218",
-            "219",
-            "220",
-            "221",
-            "222",
-            "223",
-            "224",
-            "225",
-            "226",
-            "227",
-            "228",
-            "229",
-            "230",
-            "231",
-            "232",
-        }
-        UG-N{
-            "301",
-            "302",
-            "303",
-            "304",
-            "305",
-            "306",
-            "307",
-            "308",
-            "309",
-            "310",
-            "311",
-            "312",
-            "313",
-            "314",
-            "315",
-            "316",
-            "317",
-            "318",
-            "319",
-            "320",
-            "321",
-            "322",
-            "323",
-            "324",
-            "325",
-            "326",
-            "327",
-            "328",
-            "329",
-            "330",
-            "331",
-        }
-        UG-W{
-            "401",
-            "402",
-            "403",
-            "404",
-            "405",
-            "406",
-            "407",
-            "408",
-            "409",
-            "410",
-            "411",
-            "412",
-            "413",
-            "414",
-            "415",
-            "416",
-            "417",
-            "418",
-            "419",
-            "420",
-            "421",
-            "422",
-            "423",
-            "424",
-            "425",
+            "ugc",
+            "uge",
+            "ugn",
+            "ugw",
         }
         UM{
-            "67",
-            "71",
-            "76",
-            "79",
-            "81",
-            "84",
-            "86",
-            "89",
-            "95",
+            "um67",
+            "um71",
+            "um76",
+            "um79",
+            "um81",
+            "um84",
+            "um86",
+            "um89",
+            "um95",
         }
         US{
-            "AK",
-            "AL",
-            "AR",
-            "AS",
-            "AZ",
-            "CA",
-            "CO",
-            "CT",
-            "DC",
-            "DE",
-            "FL",
-            "GA",
-            "GU",
-            "HI",
-            "IA",
-            "ID",
-            "IL",
-            "IN",
-            "KS",
-            "KY",
-            "LA",
-            "MA",
-            "MD",
-            "ME",
-            "MI",
-            "MN",
-            "MO",
-            "MP",
-            "MS",
-            "MT",
-            "NC",
-            "ND",
-            "NE",
-            "NH",
-            "NJ",
-            "NM",
-            "NV",
-            "NY",
-            "OH",
-            "OK",
-            "OR",
-            "PA",
-            "PR",
-            "RI",
-            "SC",
-            "SD",
-            "TN",
-            "TX",
-            "UM",
-            "UT",
-            "VA",
-            "VI",
-            "VT",
-            "WA",
-            "WI",
-            "WV",
-            "WY",
+            "usak",
+            "usal",
+            "usar",
+            "usas",
+            "usaz",
+            "usca",
+            "usco",
+            "usct",
+            "usdc",
+            "usde",
+            "usfl",
+            "usga",
+            "usgu",
+            "ushi",
+            "usia",
+            "usid",
+            "usil",
+            "usin",
+            "usks",
+            "usky",
+            "usla",
+            "usma",
+            "usmd",
+            "usme",
+            "usmi",
+            "usmn",
+            "usmo",
+            "usmp",
+            "usms",
+            "usmt",
+            "usnc",
+            "usnd",
+            "usne",
+            "usnh",
+            "usnj",
+            "usnm",
+            "usnv",
+            "usny",
+            "usoh",
+            "usok",
+            "usor",
+            "uspa",
+            "uspr",
+            "usri",
+            "ussc",
+            "ussd",
+            "ustn",
+            "ustx",
+            "usum",
+            "usut",
+            "usva",
+            "usvi",
+            "usvt",
+            "uswa",
+            "uswi",
+            "uswv",
+            "uswy",
         }
         UY{
-            "AR",
-            "CA",
-            "CL",
-            "CO",
-            "DU",
-            "FD",
-            "FS",
-            "LA",
-            "MA",
-            "MO",
-            "PA",
-            "RN",
-            "RO",
-            "RV",
-            "SA",
-            "SJ",
-            "SO",
-            "TA",
-            "TT",
+            "uyar",
+            "uyca",
+            "uycl",
+            "uyco",
+            "uydu",
+            "uyfd",
+            "uyfs",
+            "uyla",
+            "uyma",
+            "uymo",
+            "uypa",
+            "uyrn",
+            "uyro",
+            "uyrv",
+            "uysa",
+            "uysj",
+            "uyso",
+            "uyta",
+            "uytt",
         }
         UZ{
-            "AN",
-            "BU",
-            "FA",
-            "JI",
-            "NG",
-            "NW",
-            "QA",
-            "QR",
-            "SA",
-            "SI",
-            "SU",
-            "TK",
-            "TO",
-            "XO",
+            "uzan",
+            "uzbu",
+            "uzfa",
+            "uzji",
+            "uzng",
+            "uznw",
+            "uzqa",
+            "uzqr",
+            "uzsa",
+            "uzsi",
+            "uzsu",
+            "uztk",
+            "uzto",
+            "uzxo",
         }
         VC{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
+            "vc01",
+            "vc02",
+            "vc03",
+            "vc04",
+            "vc05",
+            "vc06",
         }
         VE{
-            "A",
-            "B",
-            "C",
-            "D",
-            "E",
-            "F",
-            "G",
-            "H",
-            "I",
-            "J",
-            "K",
-            "L",
-            "M",
-            "N",
-            "O",
-            "P",
-            "R",
-            "S",
-            "T",
-            "U",
-            "V",
-            "W",
-            "X",
-            "Y",
-            "Z",
+            "vea",
+            "veb",
+            "vec",
+            "ved",
+            "vee",
+            "vef",
+            "veg",
+            "veh",
+            "vei",
+            "vej",
+            "vek",
+            "vel",
+            "vem",
+            "ven",
+            "veo",
+            "vep",
+            "ver",
+            "ves",
+            "vet",
+            "veu",
+            "vev",
+            "vew",
+            "vex",
+            "vey",
+            "vez",
         }
         VN{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "09",
-            "13",
-            "14",
-            "18",
-            "20",
-            "21",
-            "22",
-            "23",
-            "24",
-            "25",
-            "26",
-            "27",
-            "28",
-            "29",
-            "30",
-            "31",
-            "32",
-            "33",
-            "34",
-            "35",
-            "36",
-            "37",
-            "39",
-            "40",
-            "41",
-            "43",
-            "44",
-            "45",
-            "46",
-            "47",
-            "49",
-            "50",
-            "51",
-            "52",
-            "53",
-            "54",
-            "55",
-            "56",
-            "57",
-            "58",
-            "59",
-            "61",
-            "63",
-            "66",
-            "67",
-            "68",
-            "69",
-            "70",
-            "71",
-            "72",
-            "73",
-            "CT",
-            "DN",
-            "HN",
-            "HP",
-            "SG",
+            "vn01",
+            "vn02",
+            "vn03",
+            "vn04",
+            "vn05",
+            "vn06",
+            "vn07",
+            "vn09",
+            "vn13",
+            "vn14",
+            "vn18",
+            "vn20",
+            "vn21",
+            "vn22",
+            "vn23",
+            "vn24",
+            "vn25",
+            "vn26",
+            "vn27",
+            "vn28",
+            "vn29",
+            "vn30",
+            "vn31",
+            "vn32",
+            "vn33",
+            "vn34",
+            "vn35",
+            "vn36",
+            "vn37",
+            "vn39",
+            "vn40",
+            "vn41",
+            "vn43",
+            "vn44",
+            "vn45",
+            "vn46",
+            "vn47",
+            "vn49",
+            "vn50",
+            "vn51",
+            "vn52",
+            "vn53",
+            "vn54",
+            "vn55",
+            "vn56",
+            "vn57",
+            "vn58",
+            "vn59",
+            "vn61",
+            "vn63",
+            "vn66",
+            "vn67",
+            "vn68",
+            "vn69",
+            "vn70",
+            "vn71",
+            "vn72",
+            "vn73",
+            "vnct",
+            "vndn",
+            "vnhn",
+            "vnhp",
+            "vnsg",
         }
         VU{
-            "MAP",
-            "PAM",
-            "SAM",
-            "SEE",
-            "TAE",
-            "TOB",
+            "vumap",
+            "vupam",
+            "vusam",
+            "vusee",
+            "vutae",
+            "vutob",
         }
         WF{
-            "AL",
-            "SG",
-            "UV",
+            "wfal",
+            "wfsg",
+            "wfuv",
         }
         WS{
-            "AA",
-            "AL",
-            "AT",
-            "FA",
-            "GE",
-            "GI",
-            "PA",
-            "SA",
-            "TU",
-            "VF",
-            "VS",
+            "wsaa",
+            "wsal",
+            "wsat",
+            "wsfa",
+            "wsge",
+            "wsgi",
+            "wspa",
+            "wssa",
+            "wstu",
+            "wsvf",
+            "wsvs",
         }
         YE{
-            "AB",
-            "AD",
-            "AM",
-            "BA",
-            "DA",
-            "DH",
-            "HD",
-            "HJ",
-            "HU",
-            "IB",
-            "JA",
-            "LA",
-            "MA",
-            "MR",
-            "MW",
-            "RA",
-            "SA",
-            "SD",
-            "SH",
-            "SN",
-            "SU",
-            "TA",
+            "yeab",
+            "yead",
+            "yeam",
+            "yeba",
+            "yeda",
+            "yedh",
+            "yehd",
+            "yehj",
+            "yehu",
+            "yeib",
+            "yeja",
+            "yela",
+            "yema",
+            "yemr",
+            "yemw",
+            "yera",
+            "yesa",
+            "yesd",
+            "yesh",
+            "yesn",
+            "yesu",
+            "yeta",
         }
         ZA{
-            "EC",
-            "FS",
-            "GT",
-            "LP",
-            "MP",
-            "NC",
-            "NL",
-            "NW",
-            "WC",
+            "zaec",
+            "zafs",
+            "zagt",
+            "zalp",
+            "zamp",
+            "zanc",
+            "zanl",
+            "zanw",
+            "zawc",
         }
         ZM{
-            "01",
-            "02",
-            "03",
-            "04",
-            "05",
-            "06",
-            "07",
-            "08",
-            "09",
-            "10",
+            "zm01",
+            "zm02",
+            "zm03",
+            "zm04",
+            "zm05",
+            "zm06",
+            "zm07",
+            "zm08",
+            "zm09",
+            "zm10",
         }
         ZW{
-            "BU",
-            "HA",
-            "MA",
-            "MC",
-            "ME",
-            "MI",
-            "MN",
-            "MS",
-            "MV",
-            "MW",
+            "zwbu",
+            "zwha",
+            "zwma",
+            "zwmc",
+            "zwme",
+            "zwmi",
+            "zwmn",
+            "zwms",
+            "zwmv",
+            "zwmw",
+        }
+        aznx{
+            "azbab",
+            "azcul",
+            "azkan",
+            "aznv",
+            "azord",
+            "azsad",
+            "azsah",
+            "azsar",
+        }
+        bda{
+            "bd02",
+            "bd06",
+            "bd07",
+            "bd25",
+            "bd50",
+            "bd51",
+        }
+        bdb{
+            "bd01",
+            "bd04",
+            "bd08",
+            "bd09",
+            "bd10",
+            "bd11",
+            "bd16",
+            "bd29",
+            "bd31",
+            "bd47",
+            "bd56",
+        }
+        bdc{
+            "bd13",
+            "bd15",
+            "bd17",
+            "bd18",
+            "bd26",
+            "bd33",
+            "bd35",
+            "bd36",
+            "bd40",
+            "bd42",
+            "bd53",
+            "bd62",
+            "bd63",
+        }
+        bdd{
+            "bd05",
+            "bd12",
+            "bd22",
+            "bd23",
+            "bd27",
+            "bd30",
+            "bd37",
+            "bd39",
+            "bd43",
+            "bd58",
+        }
+        bde{
+            "bd03",
+            "bd24",
+            "bd44",
+            "bd45",
+            "bd48",
+            "bd49",
+            "bd54",
+            "bd59",
+        }
+        bdf{
+            "bd14",
+            "bd19",
+            "bd28",
+            "bd32",
+            "bd46",
+            "bd52",
+            "bd55",
+            "bd64",
+        }
+        bdg{
+            "bd20",
+            "bd38",
+            "bd60",
+            "bd61",
+        }
+        bdh{
+            "bd21",
+            "bd34",
+            "bd41",
+            "bd57",
+        }
+        bevlg{
+            "bevan",
+            "bevbr",
+            "bevli",
+            "bevov",
+            "bevwv",
+        }
+        bewal{
+            "bewbr",
+            "bewht",
+            "bewlg",
+            "bewlx",
+            "bewna",
+        }
+        bf01{
+            "bfbal",
+            "bfban",
+            "bfkos",
+            "bfmou",
+            "bfnay",
+            "bfsor",
+        }
+        bf02{
+            "bfcom",
+            "bfler",
+        }
+        bf03{"bfkad"}
+        bf04{
+            "bfblg",
+            "bfkop",
+            "bfkot",
+        }
+        bf05{
+            "bfbam",
+            "bfnam",
+            "bfsmt",
+        }
+        bf06{
+            "bfblk",
+            "bfsis",
+            "bfsng",
+            "bfzir",
+        }
+        bf07{
+            "bfbaz",
+            "bfnao",
+            "bfzou",
+        }
+        bf08{
+            "bfgna",
+            "bfgou",
+            "bfkmd",
+            "bfkmp",
+            "bftap",
+        }
+        bf09{
+            "bfhou",
+            "bfken",
+            "bftui",
+        }
+        bf10{
+            "bflor",
+            "bfpas",
+            "bfyat",
+            "bfzon",
+        }
+        bf11{
+            "bfgan",
+            "bfkow",
+            "bfoub",
+        }
+        bf12{
+            "bfoud",
+            "bfsen",
+            "bfsom",
+            "bfyag",
+        }
+        bf13{
+            "bfbgr",
+            "bfiob",
+            "bfnou",
+            "bfpon",
+        }
+        cvb{
+            "cvbv",
+            "cvpa",
+            "cvpn",
+            "cvrb",
+            "cvrg",
+            "cvsl",
+            "cvsv",
+            "cvts",
+        }
+        cvs{
+            "cvbr",
+            "cvca",
+            "cvcf",
+            "cvcr",
+            "cvma",
+            "cvmo",
+            "cvpr",
+            "cvrs",
+            "cvsd",
+            "cvsf",
+            "cvsm",
+            "cvso",
+            "cvss",
+            "cvta",
+        }
+        cz10{
+            "cz101",
+            "cz102",
+            "cz103",
+            "cz104",
+            "cz105",
+            "cz106",
+            "cz107",
+            "cz108",
+            "cz109",
+            "cz110",
+            "cz111",
+            "cz112",
+            "cz113",
+            "cz114",
+            "cz115",
+            "cz116",
+            "cz117",
+            "cz118",
+            "cz119",
+            "cz120",
+            "cz121",
+            "cz122",
+        }
+        cz20{
+            "cz20a",
+            "cz20b",
+            "cz20c",
+            "cz201",
+            "cz202",
+            "cz203",
+            "cz204",
+            "cz205",
+            "cz206",
+            "cz207",
+            "cz208",
+            "cz209",
+        }
+        cz31{
+            "cz311",
+            "cz312",
+            "cz313",
+            "cz314",
+            "cz315",
+            "cz316",
+            "cz317",
+        }
+        cz32{
+            "cz321",
+            "cz322",
+            "cz323",
+            "cz324",
+            "cz325",
+            "cz326",
+            "cz327",
+        }
+        cz41{
+            "cz411",
+            "cz412",
+            "cz413",
+        }
+        cz42{
+            "cz421",
+            "cz422",
+            "cz423",
+            "cz424",
+            "cz425",
+            "cz426",
+            "cz427",
+        }
+        cz51{
+            "cz511",
+            "cz512",
+            "cz513",
+            "cz514",
+        }
+        cz52{
+            "cz521",
+            "cz522",
+            "cz523",
+            "cz524",
+            "cz525",
+        }
+        cz53{
+            "cz531",
+            "cz532",
+            "cz533",
+            "cz534",
+        }
+        cz63{
+            "cz631",
+            "cz632",
+            "cz633",
+            "cz634",
+            "cz635",
+        }
+        cz64{
+            "cz641",
+            "cz642",
+            "cz643",
+            "cz644",
+            "cz645",
+            "cz646",
+            "cz647",
+        }
+        cz71{
+            "cz711",
+            "cz712",
+            "cz713",
+            "cz714",
+            "cz715",
+        }
+        cz72{
+            "cz721",
+            "cz722",
+            "cz723",
+            "cz724",
+        }
+        cz80{
+            "cz801",
+            "cz802",
+            "cz803",
+            "cz804",
+            "cz805",
+            "cz806",
+        }
+        do33{
+            "do06",
+            "do14",
+            "do19",
+            "do20",
+        }
+        do34{
+            "do05",
+            "do15",
+            "do26",
+            "do27",
+        }
+        do35{
+            "do09",
+            "do18",
+            "do25",
+        }
+        do36{
+            "do13",
+            "do24",
+            "do28",
+        }
+        do37{
+            "do07",
+            "do22",
+        }
+        do38{
+            "do03",
+            "do04",
+            "do10",
+            "do16",
+        }
+        do39{
+            "do23",
+            "do29",
+            "do30",
+        }
+        do40{
+            "do01",
+            "do32",
+        }
+        do41{
+            "do02",
+            "do17",
+            "do21",
+            "do31",
+        }
+        do42{
+            "do08",
+            "do11",
+            "do12",
+        }
+        esan{
+            "esal",
+            "esca",
+            "esco",
+            "esgr",
+            "esh",
+            "esj",
+            "esma",
+            "esse",
+        }
+        esar{
+            "eshu",
+            "este",
+            "esz",
+        }
+        esas{"eso"}
+        escb{"ess"}
+        escl{
+            "esav",
+            "esbu",
+            "esle",
+            "esp",
+            "essa",
+            "essg",
+            "esso",
+            "esva",
+            "esza",
+        }
+        escm{
+            "esab",
+            "escr",
+            "escu",
+            "esgu",
+            "esto",
+        }
+        escn{
+            "esgc",
+            "estf",
+        }
+        esct{
+            "esb",
+            "esgi",
+            "esl",
+            "est",
+        }
+        esex{
+            "esba",
+            "escc",
+        }
+        esga{
+            "esc",
+            "eslu",
+            "esor",
+            "espo",
+        }
+        esib{"espm"}
+        esmc{"esmu"}
+        esmd{"esm"}
+        esnc{"esna"}
+        espv{
+            "esbi",
+            "esss",
+            "esvi",
+        }
+        esri{"eslo"}
+        esvc{
+            "esa",
+            "escs",
+            "esv",
+        }
+        fjc{
+            "fj09",
+            "fj10",
+            "fj12",
+            "fj13",
+            "fj14",
+        }
+        fje{
+            "fj04",
+            "fj05",
+            "fj06",
+        }
+        fjn{
+            "fj02",
+            "fj03",
+            "fj07",
+        }
+        fjw{
+            "fj01",
+            "fj08",
+            "fj11",
+        }
+        frara{
+            "fr01",
+            "fr03",
+            "fr07",
+            "fr15",
+            "fr26",
+            "fr38",
+            "fr42",
+            "fr43",
+            "fr63",
+            "fr69",
+            "fr73",
+            "fr74",
+        }
+        frbfc{
+            "fr21",
+            "fr25",
+            "fr39",
+            "fr58",
+            "fr70",
+            "fr71",
+            "fr89",
+            "fr90",
+        }
+        frbre{
+            "fr22",
+            "fr29",
+            "fr35",
+            "fr56",
+        }
+        frcor{
+            "fr2a",
+            "fr2b",
+        }
+        frcvl{
+            "fr18",
+            "fr28",
+            "fr36",
+            "fr37",
+            "fr41",
+            "fr45",
+        }
+        frges{
+            "fr08",
+            "fr10",
+            "fr51",
+            "fr52",
+            "fr54",
+            "fr55",
+            "fr57",
+            "fr67",
+            "fr68",
+            "fr88",
+        }
+        frgua{"frgp"}
+        frhdf{
+            "fr02",
+            "fr59",
+            "fr60",
+            "fr62",
+            "fr80",
+        }
+        fridf{
+            "fr75",
+            "fr77",
+            "fr78",
+            "fr91",
+            "fr92",
+            "fr93",
+            "fr94",
+            "fr95",
+        }
+        frlre{"frre"}
+        frmay{"fryt"}
+        frnaq{
+            "fr16",
+            "fr17",
+            "fr19",
+            "fr23",
+            "fr24",
+            "fr33",
+            "fr40",
+            "fr47",
+            "fr64",
+            "fr79",
+            "fr86",
+            "fr87",
+        }
+        frnor{
+            "fr14",
+            "fr27",
+            "fr50",
+            "fr61",
+            "fr76",
+        }
+        frocc{
+            "fr09",
+            "fr11",
+            "fr12",
+            "fr30",
+            "fr31",
+            "fr32",
+            "fr34",
+            "fr46",
+            "fr48",
+            "fr65",
+            "fr66",
+            "fr81",
+            "fr82",
+        }
+        frpac{
+            "fr04",
+            "fr05",
+            "fr06",
+            "fr13",
+            "fr83",
+            "fr84",
+        }
+        frpdl{
+            "fr44",
+            "fr49",
+            "fr53",
+            "fr72",
+            "fr85",
+        }
+        gbeng{
+            "gbbas",
+            "gbbbd",
+            "gbbdf",
+            "gbbdg",
+            "gbben",
+            "gbbex",
+            "gbbir",
+            "gbbkm",
+            "gbbmh",
+            "gbbne",
+            "gbbnh",
+            "gbbns",
+            "gbbol",
+            "gbbpl",
+            "gbbrc",
+            "gbbrd",
+            "gbbry",
+            "gbbst",
+            "gbbur",
+            "gbcam",
+            "gbcbf",
+            "gbche",
+            "gbchw",
+            "gbcld",
+            "gbcma",
+            "gbcmd",
+            "gbcon",
+            "gbcov",
+            "gbcry",
+            "gbdal",
+            "gbdby",
+            "gbder",
+            "gbdev",
+            "gbdnc",
+            "gbdor",
+            "gbdud",
+            "gbdur",
+            "gbeal",
+            "gbenf",
+            "gbery",
+            "gbess",
+            "gbesx",
+            "gbgat",
+            "gbgls",
+            "gbgre",
+            "gbhal",
+            "gbham",
+            "gbhav",
+            "gbhck",
+            "gbhef",
+            "gbhil",
+            "gbhmf",
+            "gbhns",
+            "gbhpl",
+            "gbhrt",
+            "gbhrw",
+            "gbhry",
+            "gbios",
+            "gbiow",
+            "gbisl",
+            "gbkec",
+            "gbken",
+            "gbkhl",
+            "gbkir",
+            "gbktt",
+            "gbkwl",
+            "gblan",
+            "gblbh",
+            "gblce",
+            "gblds",
+            "gblec",
+            "gblew",
+            "gblin",
+            "gbliv",
+            "gblnd",
+            "gblut",
+            "gbman",
+            "gbmdb",
+            "gbmdw",
+            "gbmik",
+            "gbmrt",
+            "gbnbl",
+            "gbnel",
+            "gbnet",
+            "gbnfk",
+            "gbngm",
+            "gbnln",
+            "gbnsm",
+            "gbnth",
+            "gbntt",
+            "gbnty",
+            "gbnwm",
+            "gbnyk",
+            "gbold",
+            "gboxf",
+            "gbply",
+            "gbpol",
+            "gbpor",
+            "gbpte",
+            "gbrcc",
+            "gbrch",
+            "gbrdb",
+            "gbrdg",
+            "gbric",
+            "gbrot",
+            "gbrut",
+            "gbsaw",
+            "gbsfk",
+            "gbsft",
+            "gbsgc",
+            "gbshf",
+            "gbshn",
+            "gbshr",
+            "gbskp",
+            "gbslf",
+            "gbslg",
+            "gbsnd",
+            "gbsol",
+            "gbsom",
+            "gbsos",
+            "gbsry",
+            "gbste",
+            "gbsth",
+            "gbstn",
+            "gbsts",
+            "gbstt",
+            "gbsty",
+            "gbswd",
+            "gbswk",
+            "gbtam",
+            "gbtfw",
+            "gbthr",
+            "gbtob",
+            "gbtrf",
+            "gbtwh",
+            "gbwar",
+            "gbwbk",
+            "gbwft",
+            "gbwgn",
+            "gbwil",
+            "gbwkf",
+            "gbwll",
+            "gbwlv",
+            "gbwnd",
+            "gbwnm",
+            "gbwok",
+            "gbwor",
+            "gbwrl",
+            "gbwrt",
+            "gbwsm",
+            "gbwsx",
+            "gbyor",
+        }
+        gbnir{
+            "gbabc",
+            "gband",
+            "gbann",
+            "gbbfs",
+            "gbccg",
+            "gbdrs",
+            "gbfmo",
+            "gblbc",
+            "gbmea",
+            "gbmul",
+            "gbnmd",
+        }
+        gbsct{
+            "gbabd",
+            "gbabe",
+            "gbagb",
+            "gbans",
+            "gbclk",
+            "gbdgy",
+            "gbdnd",
+            "gbeay",
+            "gbedh",
+            "gbedu",
+            "gbeln",
+            "gbels",
+            "gberw",
+            "gbfal",
+            "gbfif",
+            "gbglg",
+            "gbhld",
+            "gbivc",
+            "gbmln",
+            "gbmry",
+            "gbnay",
+            "gbnlk",
+            "gbork",
+            "gbpkn",
+            "gbrfw",
+            "gbsay",
+            "gbscb",
+            "gbslk",
+            "gbstg",
+            "gbwdu",
+            "gbwln",
+            "gbzet",
+        }
+        gbwls{
+            "gbagy",
+            "gbbge",
+            "gbbgw",
+            "gbcay",
+            "gbcgn",
+            "gbcmn",
+            "gbcrf",
+            "gbcwy",
+            "gbden",
+            "gbfln",
+            "gbgwn",
+            "gbmon",
+            "gbmty",
+            "gbntl",
+            "gbnwp",
+            "gbpem",
+            "gbpow",
+            "gbrct",
+            "gbswa",
+            "gbtof",
+            "gbvgl",
+            "gbwrx",
+        }
+        gnb{
+            "gnbf",
+            "gnbk",
+            "gnfr",
+            "gnga",
+            "gnkn",
+        }
+        gnd{
+            "gnco",
+            "gndu",
+            "gnfo",
+            "gnkd",
+            "gnte",
+        }
+        gnf{
+            "gndb",
+            "gndi",
+            "gnfa",
+            "gnks",
+        }
+        gnk{
+            "gnka",
+            "gnke",
+            "gnko",
+            "gnmd",
+            "gnsi",
+        }
+        gnl{
+            "gnkb",
+            "gnla",
+            "gnle",
+            "gnml",
+            "gnto",
+        }
+        gnm{
+            "gndl",
+            "gnmm",
+            "gnpi",
+        }
+        gnn{
+            "gnbe",
+            "gngu",
+            "gnlo",
+            "gnmc",
+            "gnnz",
+            "gnyo",
+        }
+        gqc{
+            "gqcs",
+            "gqkn",
+            "gqli",
+            "gqwn",
+        }
+        gqi{
+            "gqan",
+            "gqbn",
+            "gqbs",
+        }
+        gwl{
+            "gwba",
+            "gwga",
+        }
+        gwn{
+            "gwbm",
+            "gwca",
+            "gwoi",
+        }
+        gws{
+            "gwbl",
+            "gwqu",
+            "gwto",
+        }
+        idjw{
+            "idbt",
+            "idjb",
+            "idji",
+            "idjk",
+            "idjt",
+            "idyo",
+        }
+        idka{
+            "idkb",
+            "idki",
+            "idks",
+            "idkt",
+            "idku",
+        }
+        idml{
+            "idma",
+            "idmu",
+        }
+        idnu{
+            "idba",
+            "idnb",
+            "idnt",
+        }
+        idpp{
+            "idpa",
+            "idpb",
+        }
+        idsl{
+            "idgo",
+            "idsa",
+            "idsg",
+            "idsn",
+            "idsr",
+            "idst",
+        }
+        idsm{
+            "idac",
+            "idbb",
+            "idbe",
+            "idja",
+            "idkr",
+            "idla",
+            "idri",
+            "idsb",
+            "idss",
+            "idsu",
+        }
+        iec{
+            "ieg",
+            "ielm",
+            "iemo",
+            "iern",
+            "ieso",
+        }
+        iel{
+            "iecw",
+            "ied",
+            "ieke",
+            "iekk",
+            "ield",
+            "ielh",
+            "iels",
+            "iemh",
+            "ieoy",
+            "iewh",
+            "ieww",
+            "iewx",
+        }
+        iem{
+            "iece",
+            "ieco",
+            "ieky",
+            "ielk",
+            "ieta",
+            "iewd",
+        }
+        ieu{
+            "iecn",
+            "iedl",
+            "iemn",
+        }
+        it21{
+            "ital",
+            "itat",
+            "itbi",
+            "itcn",
+            "itno",
+            "itto",
+            "itvb",
+            "itvc",
+        }
+        it23{"itao"}
+        it25{
+            "itbg",
+            "itbs",
+            "itco",
+            "itcr",
+            "itlc",
+            "itlo",
+            "itmb",
+            "itmi",
+            "itmn",
+            "itpv",
+            "itso",
+            "itva",
+        }
+        it32{
+            "itbz",
+            "ittn",
+        }
+        it34{
+            "itbl",
+            "itpd",
+            "itro",
+            "ittv",
+            "itve",
+            "itvi",
+            "itvr",
+        }
+        it36{
+            "itgo",
+            "itpn",
+            "itts",
+            "itud",
+        }
+        it42{
+            "itge",
+            "itim",
+            "itsp",
+            "itsv",
+        }
+        it45{
+            "itbo",
+            "itfc",
+            "itfe",
+            "itmo",
+            "itpc",
+            "itpr",
+            "itra",
+            "itre",
+            "itrn",
+        }
+        it52{
+            "itar",
+            "itfi",
+            "itgr",
+            "itli",
+            "itlu",
+            "itms",
+            "itpi",
+            "itpo",
+            "itpt",
+            "itsi",
+        }
+        it55{
+            "itpg",
+            "ittr",
+        }
+        it57{
+            "itan",
+            "itap",
+            "itfm",
+            "itmc",
+            "itpu",
+        }
+        it62{
+            "itfr",
+            "itlt",
+            "itri",
+            "itrm",
+            "itvt",
+        }
+        it65{
+            "itaq",
+            "itch",
+            "itpe",
+            "itte",
+        }
+        it67{
+            "itcb",
+            "itis",
+        }
+        it72{
+            "itav",
+            "itbn",
+            "itce",
+            "itna",
+            "itsa",
+        }
+        it75{
+            "itba",
+            "itbr",
+            "itbt",
+            "itfg",
+            "itle",
+            "itta",
+        }
+        it77{
+            "itmt",
+            "itpz",
+        }
+        it78{
+            "itcs",
+            "itcz",
+            "itkr",
+            "itrc",
+            "itvv",
+        }
+        it82{
+            "itag",
+            "itcl",
+            "itct",
+            "iten",
+            "itme",
+            "itpa",
+            "itrg",
+            "itsr",
+            "ittp",
+        }
+        it88{
+            "itca",
+            "itci",
+            "itnu",
+            "itog",
+            "itor",
+            "itot",
+            "itss",
+            "itvs",
+        }
+        knk{
+            "kn01",
+            "kn02",
+            "kn03",
+            "kn06",
+            "kn08",
+            "kn09",
+            "kn11",
+            "kn13",
+            "kn15",
+        }
+        knn{
+            "kn04",
+            "kn05",
+            "kn07",
+            "kn10",
+            "kn12",
+        }
+        lk1{
+            "lk52",
+            "lk71",
+            "lk81",
+        }
+        lk2{
+            "lk11",
+            "lk31",
+            "lk51",
+        }
+        lk3{
+            "lk12",
+            "lk33",
+            "lk41",
+        }
+        lk4{
+            "lk13",
+            "lk21",
+            "lk42",
+            "lk61",
+            "lk92",
+        }
+        lk5{
+            "lk22",
+            "lk32",
+            "lk43",
+        }
+        lk6{
+            "lk45",
+            "lk82",
+        }
+        lk7{
+            "lk23",
+            "lk72",
+        }
+        lk8{
+            "lk62",
+            "lk91",
+        }
+        lk9{
+            "lk44",
+            "lk53",
+        }
+        ma01{
+            "mache",
+            "mafah",
+            "malar",
+            "matet",
+            "matng",
+        }
+        ma02{
+            "maken",
+            "masik",
+        }
+        ma03{
+            "mahoc",
+            "matao",
+            "mataz",
+        }
+        ma04{
+            "maber",
+            "mafig",
+            "majra",
+            "manad",
+            "maouj",
+            "matai",
+        }
+        ma05{
+            "mabom",
+            "mafes",
+            "mamou",
+            "masef",
+        }
+        ma06{
+            "maerr",
+            "mahaj",
+            "maifr",
+            "makhn",
+            "mamek",
+        }
+        ma07{
+            "makhe",
+            "marab",
+            "masal",
+            "maskh",
+        }
+        ma08{
+            "macas",
+            "mamed",
+            "mamoh",
+            "manou",
+        }
+        ma09{
+            "mabes",
+            "makho",
+            "maset",
+        }
+        ma10{
+            "majdi",
+            "masaf",
+        }
+        ma11{
+            "machi",
+            "maesi",
+            "mahao",
+            "makes",
+            "mammd",
+            "mammn",
+            "masyb",
+        }
+        ma12{
+            "maazi",
+            "mabem",
+        }
+        ma13{
+            "maagd",
+            "macht",
+            "maine",
+            "maoua",
+            "matar",
+            "matiz",
+            "mazag",
+        }
+        ma14{
+            "maasz",
+            "maesm",
+            "mague",
+            "matat",
+            "matnt",
+        }
+        ma15{
+            "mabod",
+            "malaa",
+        }
+        ma16{
+            "maaou",
+            "maoud",
+        }
+        mhl{
+            "mhall",
+            "mhebo",
+            "mheni",
+            "mhjab",
+            "mhjal",
+            "mhkil",
+            "mhkwa",
+            "mhlae",
+            "mhlib",
+            "mhnmk",
+            "mhnmu",
+            "mhron",
+            "mhuja",
+            "mhwth",
+        }
+        mht{
+            "mhalk",
+            "mharn",
+            "mhaur",
+            "mhlik",
+            "mhmaj",
+            "mhmal",
+            "mhmej",
+            "mhmil",
+            "mhuti",
+            "mhwtj",
+        }
+        mvce{
+            "mv12",
+            "mv14",
+            "mv17",
+        }
+        mvnc{
+            "mv00",
+            "mv02",
+            "mv04",
+            "mv26",
+        }
+        mvno{
+            "mv03",
+            "mv13",
+            "mv20",
+            "mv25",
+        }
+        mvsc{
+            "mv27",
+            "mv28",
+        }
+        mvsu{
+            "mv01",
+            "mv29",
+        }
+        mvun{
+            "mv07",
+            "mv23",
+            "mv24",
+        }
+        mvus{
+            "mv05",
+            "mv08",
+        }
+        mwc{
+            "mwde",
+            "mwdo",
+            "mwks",
+            "mwli",
+            "mwmc",
+            "mwni",
+            "mwnk",
+            "mwnu",
+            "mwsa",
+        }
+        mwn{
+            "mwct",
+            "mwkr",
+            "mwlk",
+            "mwmz",
+            "mwnb",
+            "mwru",
+        }
+        mws{
+            "mwba",
+            "mwbl",
+            "mwck",
+            "mwcr",
+            "mwmg",
+            "mwmh",
+            "mwmu",
+            "mwmw",
+            "mwne",
+            "mwns",
+            "mwph",
+            "mwth",
+            "mwzo",
+        }
+        np1{
+            "npba",
+            "npja",
+            "npna",
+        }
+        np2{
+            "npbh",
+            "npka",
+            "npra",
+        }
+        np3{
+            "npdh",
+            "npga",
+            "nplu",
+        }
+        np4{
+            "npko",
+            "npme",
+            "npsa",
+        }
+        np5{
+            "npma",
+            "npse",
+        }
+        ph01{
+            "philn",
+            "phils",
+            "phlun",
+            "phpan",
+        }
+        ph02{
+            "phbtn",
+            "phcag",
+            "phisa",
+            "phnuv",
+            "phqui",
+        }
+        ph03{
+            "phaur",
+            "phban",
+            "phbul",
+            "phnue",
+            "phpam",
+            "phtar",
+            "phzmb",
+        }
+        ph05{
+            "phalb",
+            "phcan",
+            "phcas",
+            "phcat",
+            "phmas",
+            "phsor",
+        }
+        ph06{
+            "phakl",
+            "phant",
+            "phcap",
+            "phgui",
+            "phili",
+            "phnec",
+        }
+        ph07{
+            "phboh",
+            "phceb",
+            "phner",
+            "phsig",
+        }
+        ph08{
+            "phbil",
+            "pheas",
+            "phley",
+            "phnsa",
+            "phsle",
+            "phwsa",
+        }
+        ph09{
+            "phbas",
+            "phzan",
+            "phzas",
+            "phzsi",
+        }
+        ph10{
+            "phbuk",
+            "phcam",
+            "phmsc",
+            "phmsr",
+        }
+        ph11{
+            "phcom",
+            "phdao",
+            "phdas",
+            "phdav",
+            "phdvo",
+            "phsar",
+            "phsco",
+        }
+        ph12{
+            "phlan",
+            "phnco",
+            "phsuk",
+        }
+        ph13{
+            "phagn",
+            "phags",
+            "phdin",
+            "phsun",
+            "phsur",
+        }
+        ph14{
+            "phlas",
+            "phmag",
+            "phslu",
+            "phtaw",
+        }
+        ph15{
+            "phabr",
+            "phapa",
+            "phben",
+            "phifu",
+            "phkal",
+            "phmou",
+        }
+        ph40{
+            "phbtg",
+            "phcav",
+            "phlag",
+            "phque",
+            "phriz",
+        }
+        ph41{
+            "phmad",
+            "phmdc",
+            "phmdr",
+            "phplw",
+            "phrom",
+        }
+        rskm{
+            "rs25",
+            "rs26",
+            "rs27",
+            "rs28",
+            "rs29",
+        }
+        rsvo{
+            "rs01",
+            "rs02",
+            "rs03",
+            "rs04",
+            "rs05",
+            "rs06",
+            "rs07",
+        }
+        ugc{
+            "ug101",
+            "ug102",
+            "ug103",
+            "ug104",
+            "ug105",
+            "ug106",
+            "ug107",
+            "ug108",
+            "ug109",
+            "ug110",
+            "ug111",
+            "ug112",
+            "ug113",
+            "ug114",
+            "ug115",
+            "ug116",
+            "ug117",
+            "ug118",
+            "ug119",
+            "ug120",
+            "ug121",
+            "ug122",
+            "ug123",
+            "ug124",
+        }
+        uge{
+            "ug201",
+            "ug202",
+            "ug203",
+            "ug204",
+            "ug205",
+            "ug206",
+            "ug207",
+            "ug208",
+            "ug209",
+            "ug210",
+            "ug211",
+            "ug212",
+            "ug213",
+            "ug214",
+            "ug215",
+            "ug216",
+            "ug217",
+            "ug218",
+            "ug219",
+            "ug220",
+            "ug221",
+            "ug222",
+            "ug223",
+            "ug224",
+            "ug225",
+            "ug226",
+            "ug227",
+            "ug228",
+            "ug229",
+            "ug230",
+            "ug231",
+            "ug232",
+        }
+        ugn{
+            "ug301",
+            "ug302",
+            "ug303",
+            "ug304",
+            "ug305",
+            "ug306",
+            "ug307",
+            "ug308",
+            "ug309",
+            "ug310",
+            "ug311",
+            "ug312",
+            "ug313",
+            "ug314",
+            "ug315",
+            "ug316",
+            "ug317",
+            "ug318",
+            "ug319",
+            "ug320",
+            "ug321",
+            "ug322",
+            "ug323",
+            "ug324",
+            "ug325",
+            "ug326",
+            "ug327",
+            "ug328",
+            "ug329",
+            "ug330",
+        }
+        ugw{
+            "ug401",
+            "ug402",
+            "ug403",
+            "ug404",
+            "ug405",
+            "ug406",
+            "ug407",
+            "ug408",
+            "ug409",
+            "ug410",
+            "ug411",
+            "ug412",
+            "ug413",
+            "ug414",
+            "ug415",
+            "ug416",
+            "ug417",
+            "ug418",
+            "ug419",
+            "ug420",
+            "ug421",
+            "ug422",
+            "ug423",
+            "ug424",
+            "ug425",
+            "ug426",
         }
     }
     telephoneCodeData{
@@ -24786,6 +25726,9 @@
                 code{"381"}
             }
             {
+                code{"383"}
+            }
+            {
                 code{"386"}
             }
         }
@@ -25205,7 +26148,7 @@
                 populationShareF:int{49990000}
             }
             territoryF:intvector{
-                57376800,
+                57406800,
                 49990000,
                 52940000,
             }
@@ -25219,12 +26162,12 @@
                 populationShareF:int{49430000}
             }
             fr{
-                populationShareF:int{48680000}
+                populationShareF:int{48670000}
             }
             territoryF:intvector{
                 59316300,
                 50100000,
-                54855800,
+                54856600,
             }
         }
         AE{
@@ -25245,9 +26188,9 @@
                 populationShareF:int{48290000}
             }
             territoryF:intvector{
-                61617100,
+                61667200,
                 49900000,
-                56577976,
+                56592748,
             }
         }
         AF{
@@ -25267,7 +26210,7 @@
                 populationShareF:int{48590000}
             }
             kk_Arab{
-                populationShareF:int{45610000}
+                populationShareF:int{45600000}
             }
             prd{
                 populationShareF:int{48120000}
@@ -25277,16 +26220,16 @@
                 populationShareF:int{49430000}
             }
             territoryF:intvector{
-                60608100,
+                60640800,
                 49281000,
-                57325643,
+                57333320,
             }
-            tk_Latn{
+            tk{
                 officialStatus{"official_regional"}
                 populationShareF:int{48170000}
             }
-            ug_Arab{
-                populationShareF:int{45920000}
+            ug{
+                populationShareF:int{45900000}
             }
             uz_Arab{
                 officialStatus{"official_regional"}
@@ -25302,9 +26245,9 @@
                 populationShareF:int{48170000}
             }
             territoryF:intvector{
-                59203200,
+                59217100,
                 49990000,
-                54924360,
+                54935810,
             }
         }
         AI{
@@ -25315,7 +26258,7 @@
             territoryF:intvector{
                 58175400,
                 49950000,
-                54164180,
+                54167520,
             }
         }
         AL{
@@ -25330,32 +26273,32 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                60315900,
+                60342100,
                 49968000,
-                56302928,
+                56303859,
             }
         }
         AM{
-            az_Latn{
+            az{
                 populationShareF:int{0}
             }
             hy{
                 officialStatus{"official"}
                 populationShareF:int{49980000}
             }
-            ku_Latn{
+            ku{
                 populationShareF:int{48330000}
             }
             territoryF:intvector{
-                60243700,
+                60265600,
                 49996000,
-                56305638,
+                56305125,
             }
         }
         AO{
             kmb{
+                literacyShareF:int{49100000}
                 populationShareF:int{49250000}
-                writingShareF:int{49100000}
             }
             ln{
                 populationShareF:int{47670000}
@@ -25365,9 +26308,9 @@
                 populationShareF:int{49670000}
             }
             territoryF:intvector{
-                61177300,
+                61187300,
                 49704000,
-                57196254,
+                57201723,
             }
             umb{
                 populationShareF:int{49290000}
@@ -25375,7 +26318,7 @@
         }
         AQ{
             territoryF:intvector{
-                57162000,
+                57171900,
                 49990000,
                 52300000,
             }
@@ -25398,9 +26341,9 @@
                 populationShareF:int{46470000}
             }
             territoryF:intvector{
-                61951000,
+                61879400,
                 49979000,
-                57434319,
+                57438867,
             }
         }
         AS{
@@ -25415,7 +26358,7 @@
             territoryF:intvector{
                 58711000,
                 49970000,
-                54543430,
+                54541940,
             }
         }
         AT{
@@ -25429,6 +26372,9 @@
             en{
                 populationShareF:int{49730000}
             }
+            fr{
+                populationShareF:int{49110000}
+            }
             hr{
                 officialStatus{"official_regional"}
                 populationShareF:int{48120000}
@@ -25437,14 +26383,17 @@
                 officialStatus{"official_regional"}
                 populationShareF:int{47270000}
             }
+            it{
+                populationShareF:int{48900000}
+            }
             sl{
                 officialStatus{"official_regional"}
                 populationShareF:int{47370000}
             }
             territoryF:intvector{
-                61396800,
+                61415900,
                 49980000,
-                56866555,
+                56871177,
             }
         }
         AU{
@@ -25456,9 +26405,9 @@
                 populationShareF:int{48190000}
             }
             territoryF:intvector{
-                62110000,
+                62118900,
                 49990000,
-                57227510,
+                57229927,
             }
             wbp{
                 populationShareF:int{46110000}
@@ -25469,7 +26418,7 @@
         }
         AW{
             en{
-                populationShareF:int{48270000}
+                populationShareF:int{48260000}
             }
             nl{
                 officialStatus{"official"}
@@ -25482,7 +26431,7 @@
             territoryF:intvector{
                 59251600,
                 49968000,
-                55112162,
+                55113648,
             }
         }
         AX{
@@ -25497,42 +26446,42 @@
             }
         }
         AZ{
+            az{
+                officialStatus{"official"}
+                populationShareF:int{49890000}
+            }
             az_Cyrl{
                 officialStatus{"official"}
                 populationShareF:int{48990000}
             }
-            az_Latn{
-                officialStatus{"official"}
-                populationShareF:int{49890000}
-            }
-            ku_Latn{
+            ku{
                 populationShareF:int{47240000}
             }
             territoryF:intvector{
-                61165900,
+                61167900,
                 49998000,
-                56978078,
+                56987277,
             }
-            tkr_Latn{
+            tkr{
                 populationShareF:int{47160000}
             }
-            tly_Latn{
+            tly{
                 populationShareF:int{48980000}
             }
-            ttt_Latn{
+            ttt{
                 populationShareF:int{47220000}
             }
         }
         BA{
+            bs{
+                officialStatus{"official"}
+                populationShareF:int{49990000}
+            }
             bs_Cyrl{
                 officialStatus{"official"}
                 populationShareF:int{49990000}
                 writingShareF:int{48500000}
             }
-            bs_Latn{
-                officialStatus{"official"}
-                populationShareF:int{49990000}
-            }
             en{
                 populationShareF:int{49450000}
             }
@@ -25540,7 +26489,7 @@
                 officialStatus{"official"}
                 populationShareF:int{49120000}
             }
-            sr_Cyrl{
+            sr{
                 officialStatus{"official"}
                 populationShareF:int{49100000}
             }
@@ -25550,9 +26499,9 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                60382900,
+                60425300,
                 49980000,
-                56386706,
+                56386191,
             }
         }
         BB{
@@ -25561,9 +26510,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59456700,
+                59480400,
                 49997000,
-                55290604,
+                55291495,
             }
         }
         BD{
@@ -25590,23 +26539,23 @@
                 populationShareF:int{47210000}
             }
             rkt{
+                literacyShareF:int{49200000}
                 populationShareF:int{48650000}
-                writingShareF:int{49200000}
             }
             syl{
+                literacyShareF:int{49350000}
                 populationShareF:int{48500000}
-                writingShareF:int{49350000}
             }
             territoryF:intvector{
-                61536500,
+                61628400,
                 49577000,
-                58168958,
+                58156187,
             }
         }
         BE{
             de{
                 officialStatus{"official"}
-                populationShareF:int{48140000}
+                populationShareF:int{49220000}
             }
             en{
                 populationShareF:int{49590000}
@@ -25620,9 +26569,9 @@
                 populationShareF:int{49550000}
             }
             territoryF:intvector{
-                61483300,
+                61508600,
                 49990000,
-                57113240,
+                57114091,
             }
             vls{
                 populationShareF:int{49100000}
@@ -25644,9 +26593,9 @@
                 populationShareF:int{49400000}
             }
             territoryF:intvector{
-                60294200,
+                60329900,
                 49287000,
-                57189317,
+                57195125,
             }
         }
         BG{
@@ -25654,13 +26603,19 @@
                 officialStatus{"official"}
                 populationShareF:int{50100000}
             }
+            de{
+                populationShareF:int{48800000}
+            }
             en{
                 populationShareF:int{49250000}
             }
+            ru{
+                populationShareF:int{49230000}
+            }
             territoryF:intvector{
-                61129100,
+                61143100,
                 49984000,
-                56718689,
+                56714465,
             }
             tr{
                 populationShareF:int{49110000}
@@ -25675,15 +26630,15 @@
                 populationShareF:int{48330000}
             }
             territoryF:intvector{
-                60621700,
+                60663700,
                 49946000,
-                56134661,
+                56137890,
             }
         }
         BI{
             en{
                 officialStatus{"official"}
-                populationShareF:int{46580000}
+                populationShareF:int{46560000}
             }
             fr{
                 officialStatus{"official"}
@@ -25694,12 +26649,12 @@
                 populationShareF:int{49630000}
             }
             sw{
-                populationShareF:int{46590000}
+                populationShareF:int{46570000}
             }
             territoryF:intvector{
-                59840900,
+                59789200,
                 49672000,
-                57107423,
+                57110993,
             }
         }
         BJ{
@@ -25711,9 +26666,9 @@
                 populationShareF:int{49350000}
             }
             territoryF:intvector{
-                60198600,
+                60243100,
                 49424000,
-                57104486,
+                57107415,
             }
             yo{
                 populationShareF:int{48670000}
@@ -25727,7 +26682,7 @@
             territoryF:intvector{
                 58255000,
                 49990000,
-                53723700,
+                53720900,
             }
         }
         BM{
@@ -25738,25 +26693,25 @@
             territoryF:intvector{
                 59519800,
                 49980000,
-                54701960,
+                54705370,
             }
         }
         BN{
             en{
-                populationShareF:int{48190000}
+                populationShareF:int{48180000}
+            }
+            ms{
+                officialStatus{"official"}
+                populationShareF:int{49930000}
             }
             ms_Arab{
                 officialStatus{"official"}
                 populationShareF:int{48500000}
             }
-            ms_Latn{
-                officialStatus{"official"}
-                populationShareF:int{49930000}
-            }
             territoryF:intvector{
-                60329600,
+                60337300,
                 49954000,
-                55429646,
+                55436620,
             }
             zh_Hant{
                 populationShareF:int{49110000}
@@ -25782,9 +26737,9 @@
                 populationShareF:int{49320000}
             }
             territoryF:intvector{
-                60702800,
+                60783500,
                 49912000,
-                57108009,
+                57109696,
             }
         }
         BQ{
@@ -25796,8 +26751,8 @@
                 populationShareF:int{49810000}
             }
             territoryF:intvector{
-                58426100,
-                49965000,
+                58419800,
+                49990000,
                 54200000,
             }
         }
@@ -25831,9 +26786,9 @@
                 populationShareF:int{49910000}
             }
             territoryF:intvector{
-                62327600,
+                62313500,
                 49904000,
-                58204260,
+                58205824,
             }
             xav{
                 populationShareF:int{45490000}
@@ -25848,9 +26803,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59903100,
+                59906600,
                 49956000,
-                55324597,
+                55327316,
             }
         }
         BT{
@@ -25868,9 +26823,9 @@
                 populationShareF:int{49170000}
             }
             territoryF:intvector{
-                59587100,
+                59643200,
                 49528000,
-                55741919,
+                55750125,
             }
             tsj{
                 populationShareF:int{49150000}
@@ -25878,7 +26833,7 @@
         }
         BV{
             territoryF:intvector{
-                54400900,
+                54432700,
                 49990000,
                 50100000,
             }
@@ -25895,9 +26850,9 @@
                 populationShareF:int{49810000}
             }
             territoryF:intvector{
-                60358700,
+                60365100,
                 49851000,
-                56218272,
+                56220921,
             }
             tn{
                 officialStatus{"official"}
@@ -25914,9 +26869,9 @@
                 populationShareF:int{49120000}
             }
             territoryF:intvector{
-                61172800,
+                61165400,
                 49996000,
-                56958969,
+                56957038,
             }
         }
         BZ{
@@ -25928,9 +26883,9 @@
                 populationShareF:int{49280000}
             }
             territoryF:intvector{
-                59297500,
+                59308800,
                 49769000,
-                55347369,
+                55353858,
             }
         }
         CA{
@@ -25940,7 +26895,7 @@
             chp{
                 populationShareF:int{45220000}
             }
-            cr_Cans{
+            cr{
                 populationShareF:int{47110000}
             }
             crj{
@@ -25962,7 +26917,7 @@
                 populationShareF:int{48190000}
             }
             den{
-                populationShareF:int{45660000}
+                populationShareF:int{45650000}
             }
             dgr{
                 populationShareF:int{45750000}
@@ -25979,31 +26934,31 @@
                 populationShareF:int{45160000}
             }
             ikt{
+                literacyShareF:int{49300000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46110000}
-                writingShareF:int{49300000}
             }
             it{
                 populationShareF:int{48200000}
             }
-            iu_Cans{
+            iu{
+                literacyShareF:int{49300000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46420000}
-                writingShareF:int{49300000}
             }
             iu_Latn{
+                literacyShareF:int{49300000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46420000}
-                writingShareF:int{49300000}
             }
             moe{
                 populationShareF:int{46330000}
             }
             moh{
-                populationShareF:int{46100000}
+                populationShareF:int{45990000}
             }
             nsk{
-                populationShareF:int{45340000}
+                populationShareF:int{45330000}
             }
             pdt{
                 populationShareF:int{47240000}
@@ -26012,9 +26967,9 @@
                 populationShareF:int{45350000}
             }
             territoryF:intvector{
-                62159600,
+                62167400,
                 49990000,
-                57350998,
+                57353629,
             }
             yi{
                 populationShareF:int{46450000}
@@ -26029,7 +26984,7 @@
                 populationShareF:int{49830000}
             }
             territoryF:intvector{
-                57288200,
+                57308200,
                 49990000,
                 52596000,
             }
@@ -26065,9 +27020,9 @@
                 populationShareF:int{49500000}
             }
             territoryF:intvector{
-                60577800,
+                60660100,
                 49668000,
-                57793751,
+                57813311,
             }
         }
         CF{
@@ -26083,9 +27038,9 @@
                 populationShareF:int{49490000}
             }
             territoryF:intvector{
-                59286500,
+                59320600,
                 49566000,
-                56539154,
+                56550726,
             }
         }
         CG{
@@ -26097,9 +27052,9 @@
                 populationShareF:int{48240000}
             }
             territoryF:intvector{
-                60283600,
+                60302700,
                 49838000,
-                56475510,
+                56485241,
             }
         }
         CH{
@@ -26138,9 +27093,9 @@
                 populationShareF:int{47290000}
             }
             territoryF:intvector{
-                61473300,
+                61494300,
                 49990000,
-                56812183,
+                56817929,
             }
             wae{
                 populationShareF:int{47120000}
@@ -26148,16 +27103,16 @@
         }
         CI{
             bci{
+                literacyShareF:int{49100000}
                 populationShareF:int{49110000}
-                writingShareF:int{49100000}
             }
             bqv{
+                literacyShareF:int{49100000}
                 populationShareF:int{47170000}
-                writingShareF:int{49100000}
             }
             dnj{
+                literacyShareF:int{48100000}
                 populationShareF:int{48400000}
-                writingShareF:int{48100000}
             }
             fr{
                 officialStatus{"official"}
@@ -26171,20 +27126,20 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                60716700,
+                60871200,
                 49569000,
-                57232953,
+                57237404,
             }
         }
         CK{
             en{
                 officialStatus{"official"}
-                populationShareF:int{49980000}
+                populationShareF:int{49950000}
             }
             territoryF:intvector{
-                58183200,
+                58244100,
                 49950000,
-                53983800,
+                53955600,
             }
         }
         CL{
@@ -26199,60 +27154,60 @@
                 populationShareF:int{49980000}
             }
             territoryF:intvector{
-                61410900,
+                61436100,
                 49986000,
-                57175083,
+                57176501,
             }
         }
         CM{
             agq{
+                literacyShareF:int{49200000}
                 populationShareF:int{47140000}
-                writingShareF:int{49200000}
             }
             ar{
                 populationShareF:int{47390000}
             }
             bas{
+                literacyShareF:int{49250000}
                 populationShareF:int{48120000}
-                writingShareF:int{49250000}
             }
             bax{
                 populationShareF:int{48120000}
             }
             bbj{
+                literacyShareF:int{49250000}
                 populationShareF:int{48140000}
-                writingShareF:int{49250000}
             }
             bfd{
+                literacyShareF:int{49300000}
                 populationShareF:int{47570000}
-                writingShareF:int{49300000}
             }
             bkm{
                 populationShareF:int{48130000}
                 writingShareF:int{48500000}
             }
             bss{
+                literacyShareF:int{49300000}
                 populationShareF:int{47540000}
-                writingShareF:int{49300000}
             }
             bum{
                 populationShareF:int{48460000}
             }
             byv{
+                literacyShareF:int{49150000}
                 populationShareF:int{48110000}
-                writingShareF:int{49150000}
             }
             dua{
+                literacyShareF:int{49250000}
                 populationShareF:int{47480000}
-                writingShareF:int{49250000}
             }
             en{
                 officialStatus{"official"}
                 populationShareF:int{49380000}
             }
             ewo{
+                literacyShareF:int{49150000}
                 populationShareF:int{48310000}
-                writingShareF:int{49150000}
             }
             ff{
                 populationShareF:int{48360000}
@@ -26265,8 +27220,8 @@
                 populationShareF:int{47140000}
             }
             jgo{
+                literacyShareF:int{49300000}
                 populationShareF:int{47340000}
-                writingShareF:int{49300000}
             }
             kkj{
                 populationShareF:int{47540000}
@@ -26285,24 +27240,24 @@
                 populationShareF:int{48100000}
             }
             nmg{
-                populationShareF:int{46380000}
-                writingShareF:int{49100000}
+                literacyShareF:int{49100000}
+                populationShareF:int{46370000}
             }
             nnh{
+                literacyShareF:int{48800000}
                 populationShareF:int{48140000}
-                writingShareF:int{48800000}
             }
             territoryF:intvector{
-                60677800,
+                60772400,
                 49713000,
-                57237392,
+                57243608,
             }
             yav{
-                populationShareF:int{45970000}
+                populationShareF:int{45940000}
             }
             ybb{
+                literacyShareF:int{48200000}
                 populationShareF:int{48160000}
-                writingShareF:int{48200000}
             }
         }
         CN{
@@ -26323,8 +27278,8 @@
                 populationShareF:int{48290000}
             }
             ii{
+                literacyShareF:int{49600000}
                 populationShareF:int{47600000}
-                writingShareF:int{49600000}
             }
             khb{
                 populationShareF:int{46190000}
@@ -26365,11 +27320,11 @@
                 populationShareF:int{46190000}
             }
             territoryF:intvector{
-                63180900,
+                63212700,
                 49951000,
-                59136749,
+                59137354,
             }
-            ug_Arab{
+            ug{
                 officialStatus{"official_regional"}
                 populationShareF:int{47550000}
             }
@@ -26383,14 +27338,13 @@
                 populationShareF:int{48600000}
             }
             yue{
-                populationShareF:int{48900000}
-                writingShareF:int{48430000}
+                populationShareF:int{48520000}
             }
             za{
                 officialStatus{"official_regional"}
                 populationShareF:int{47310000}
             }
-            zh_Hans{
+            zh{
                 officialStatus{"official"}
                 populationShareF:int{49900000}
             }
@@ -26404,14 +27358,14 @@
                 populationShareF:int{47270000}
             }
             territoryF:intvector{
-                61642500,
+                61690400,
                 49936000,
-                57467367,
+                57472209,
             }
         }
         CP{
             territoryF:intvector{
-                54389300,
+                54409500,
                 49990000,
                 50100000,
             }
@@ -26425,9 +27379,9 @@
                 populationShareF:int{49950000}
             }
             territoryF:intvector{
-                60712300,
+                60792600,
                 49963000,
-                56481414,
+                56487254,
             }
         }
         CU{
@@ -26438,7 +27392,7 @@
             territoryF:intvector{
                 61128500,
                 49998000,
-                57110314,
+                57111800,
             }
         }
         CV{
@@ -26450,14 +27404,14 @@
                 populationShareF:int{49760000}
             }
             territoryF:intvector{
-                59333000,
+                59358300,
                 49849000,
-                55545993,
+                55553432,
             }
         }
         CW{
             es{
-                populationShareF:int{48390000}
+                populationShareF:int{48380000}
             }
             nl{
                 officialStatus{"official"}
@@ -26469,19 +27423,19 @@
             }
             territoryF:intvector{
                 59312800,
-                49965000,
-                55146836,
+                49990000,
+                55149035,
             }
         }
         CX{
             en{
                 officialStatus{"official"}
-                populationShareF:int{49920000}
+                populationShareF:int{49630000}
             }
             territoryF:intvector{
-                57739700,
+                58114000,
                 49990000,
-                53153000,
+                53220500,
             }
         }
         CY{
@@ -26490,18 +27444,21 @@
             }
             el{
                 officialStatus{"official"}
-                populationShareF:int{49750000}
+                populationShareF:int{49950000}
             }
             en{
                 populationShareF:int{49730000}
             }
+            fr{
+                populationShareF:int{48700000}
+            }
             hy{
                 populationShareF:int{47230000}
             }
             territoryF:intvector{
-                60275200,
+                60292600,
                 49987000,
-                56118920,
+                56120558,
             }
             tr{
                 officialStatus{"official"}
@@ -26514,7 +27471,7 @@
                 populationShareF:int{49980000}
             }
             de{
-                populationShareF:int{47490000}
+                populationShareF:int{49150000}
             }
             en{
                 populationShareF:int{49270000}
@@ -26522,8 +27479,11 @@
             pl{
                 populationShareF:int{47490000}
             }
+            sk{
+                populationShareF:int{49160000}
+            }
             territoryF:intvector{
-                61315900,
+                61350900,
                 49990000,
                 57106448,
             }
@@ -26562,6 +27522,10 @@
             frs{
                 populationShareF:int{45250000}
             }
+            gsw{
+                populationShareF:int{48230000}
+                writingShareF:int{48500000}
+            }
             hr{
                 populationShareF:int{47790000}
             }
@@ -26575,7 +27539,7 @@
             ksh{
                 populationShareF:int{47300000}
             }
-            ku_Latn{
+            ku{
                 populationShareF:int{47660000}
             }
             nds{
@@ -26602,9 +27566,9 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                62374800,
+                62397900,
                 49990000,
-                57808544,
+                57807228,
             }
             tr{
                 populationShareF:int{48250000}
@@ -26619,7 +27583,7 @@
                 populationShareF:int{49990000}
             }
             territoryF:intvector{
-                57200400,
+                57216400,
                 49990000,
                 52500000,
             }
@@ -26640,9 +27604,9 @@
                 populationShareF:int{49410000}
             }
             territoryF:intvector{
-                59287600,
+                59334500,
                 49679000,
-                55828324,
+                55846687,
             }
         }
         DK{
@@ -26652,7 +27616,7 @@
             }
             de{
                 officialStatus{"official_regional"}
-                populationShareF:int{47430000}
+                populationShareF:int{49470000}
             }
             en{
                 populationShareF:int{49860000}
@@ -26667,10 +27631,13 @@
                 officialStatus{"official_regional"}
                 populationShareF:int{47130000}
             }
+            sv{
+                populationShareF:int{49130000}
+            }
             territoryF:intvector{
-                61250700,
+                61264800,
                 49990000,
-                56558150,
+                56559379,
             }
         }
         DM{
@@ -26679,23 +27646,23 @@
                 populationShareF:int{49940000}
             }
             territoryF:intvector{
-                58790000,
+                58812000,
                 49940000,
-                54736070,
+                54737570,
             }
         }
         DO{
             en{
-                populationShareF:int{46760000}
+                populationShareF:int{46750000}
             }
             es{
                 officialStatus{"official"}
                 populationShareF:int{49780000}
             }
             territoryF:intvector{
-                61138500,
+                61160900,
                 49901000,
-                57104788,
+                57106069,
             }
         }
         DZ{
@@ -26714,13 +27681,13 @@
                 populationShareF:int{49200000}
             }
             kab{
+                literacyShareF:int{49100000}
                 populationShareF:int{48780000}
-                writingShareF:int{49100000}
             }
             territoryF:intvector{
-                61548600,
+                61609400,
                 49726000,
-                57395422,
+                57402637,
             }
         }
         EA{
@@ -26729,7 +27696,7 @@
                 populationShareF:int{49980000}
             }
             territoryF:intvector{
-                59489800,
+                59522000,
                 49977000,
                 55150000,
             }
@@ -26747,23 +27714,29 @@
                 populationShareF:int{48570000}
             }
             territoryF:intvector{
-                61181200,
+                61182400,
                 49916000,
-                57158684,
+                57160808,
             }
         }
         EE{
+            en{
+                populationShareF:int{49500000}
+            }
             et{
                 officialStatus{"official"}
                 populationShareF:int{49710000}
             }
+            fi{
+                populationShareF:int{49210000}
+            }
             ru{
-                populationShareF:int{49300000}
+                populationShareF:int{49560000}
             }
             territoryF:intvector{
-                60367800,
+                60387000,
                 49998000,
-                56126542,
+                56125855,
             }
             vro{
                 populationShareF:int{48570000}
@@ -26784,9 +27757,9 @@
                 populationShareF:int{49350000}
             }
             territoryF:intvector{
-                61946600,
+                62110500,
                 49739000,
-                57884874,
+                57946670,
             }
         }
         EH{
@@ -26797,7 +27770,7 @@
             territoryF:intvector{
                 58906500,
                 49500000,
-                55570866,
+                55587020,
             }
         }
         ER{
@@ -26820,9 +27793,9 @@
                 populationShareF:int{48360000}
             }
             territoryF:intvector{
-                59784200,
+                59916900,
                 49689000,
-                56652769,
+                56586987,
             }
             ti{
                 officialStatus{"de_facto_official"}
@@ -26860,9 +27833,9 @@
                 populationShareF:int{48700000}
             }
             territoryF:intvector{
-                62157200,
+                62169000,
                 49977000,
-                57481461,
+                57485635,
             }
         }
         ET{
@@ -26886,9 +27859,9 @@
                 populationShareF:int{48600000}
             }
             territoryF:intvector{
-                61145100,
+                61174700,
                 49390000,
-                57994658,
+                58102374,
             }
             ti{
                 populationShareF:int{48600000}
@@ -26898,6 +27871,9 @@
             }
         }
         FI{
+            de{
+                populationShareF:int{49180000}
+            }
             en{
                 populationShareF:int{49700000}
             }
@@ -26915,7 +27891,7 @@
                 populationShareF:int{47810000}
             }
             se{
-                populationShareF:int{46370000}
+                populationShareF:int{46360000}
             }
             smn{
                 populationShareF:int{46110000}
@@ -26925,12 +27901,12 @@
             }
             sv{
                 officialStatus{"official"}
-                populationShareF:int{48570000}
+                populationShareF:int{49440000}
             }
             territoryF:intvector{
-                61221700,
+                61230000,
                 50100000,
-                56547692,
+                56549821,
             }
         }
         FJ{
@@ -26945,7 +27921,7 @@
             hi{
                 populationShareF:int{49440000}
             }
-            hif_Latn{
+            hif{
                 officialStatus{"official"}
                 populationShareF:int{49410000}
             }
@@ -26953,20 +27929,20 @@
                 populationShareF:int{47270000}
             }
             territoryF:intvector{
-                59740400,
+                59837400,
                 49937000,
-                55909389,
+                55915303,
             }
         }
         FK{
             en{
                 officialStatus{"official"}
-                populationShareF:int{49840000}
+                populationShareF:int{49960000}
             }
             territoryF:intvector{
                 58164500,
                 49990000,
-                53336100,
+                53293100,
             }
         }
         FM{
@@ -26984,9 +27960,9 @@
                 populationShareF:int{49230000}
             }
             territoryF:intvector{
-                58308000,
+                58314000,
                 49890000,
-                55105216,
+                55104719,
             }
             uli{
                 populationShareF:int{48290000}
@@ -27001,26 +27977,32 @@
                 populationShareF:int{49950000}
             }
             territoryF:intvector{
-                59147100,
+                59183100,
                 49990000,
-                54501960,
+                54504560,
             }
         }
         FR{
             br{
+                literacyShareF:int{48300000}
                 populationShareF:int{47830000}
-                writingShareF:int{48300000}
             }
             ca{
                 populationShareF:int{47170000}
             }
             co{
-                populationShareF:int{47570000}
+                populationShareF:int{47240000}
                 writingShareF:int{48500000}
             }
+            de{
+                populationShareF:int{48500000}
+            }
             en{
                 populationShareF:int{49390000}
             }
+            es{
+                populationShareF:int{49130000}
+            }
             eu{
                 populationShareF:int{47130000}
             }
@@ -27055,9 +28037,9 @@
                 populationShareF:int{48130000}
             }
             territoryF:intvector{
-                62259100,
+                62273700,
                 49990000,
-                57665538,
+                57668362,
             }
         }
         GA{
@@ -27069,9 +28051,9 @@
                 populationShareF:int{48900000}
             }
             territoryF:intvector{
-                60329100,
+                60362200,
                 49890000,
-                56170534,
+                56173854,
             }
         }
         GB{
@@ -27082,6 +28064,9 @@
                 officialStatus{"official_regional"}
                 populationShareF:int{47770000}
             }
+            de{
+                populationShareF:int{48600000}
+            }
             el{
                 populationShareF:int{47340000}
             }
@@ -27090,7 +28075,7 @@
                 populationShareF:int{49990000}
             }
             fr{
-                populationShareF:int{46240000}
+                populationShareF:int{49190000}
             }
             ga{
                 officialStatus{"official_regional"}
@@ -27104,7 +28089,7 @@
             it{
                 populationShareF:int{47340000}
             }
-            ks_Arab{
+            ks{
                 populationShareF:int{47190000}
             }
             kw{
@@ -27113,7 +28098,7 @@
             ml{
                 populationShareF:int{46350000}
             }
-            pa_Guru{
+            pa{
                 populationShareF:int{47790000}
             }
             sco{
@@ -27124,9 +28109,9 @@
                 populationShareF:int{47510000}
             }
             territoryF:intvector{
-                62256900,
+                62278800,
                 49990000,
-                57640882,
+                57644304,
             }
             yi{
                 populationShareF:int{46490000}
@@ -27141,9 +28126,9 @@
                 populationShareF:int{49960000}
             }
             territoryF:intvector{
-                59132600,
+                59151100,
                 49960000,
-                55110694,
+                55111219,
             }
         }
         GE{
@@ -27158,7 +28143,7 @@
                 officialStatus{"official"}
                 populationShareF:int{49860000}
             }
-            ku_Latn{
+            ku{
                 populationShareF:int{47890000}
             }
             os{
@@ -27169,9 +28154,9 @@
                 populationShareF:int{48900000}
             }
             territoryF:intvector{
-                60343500,
+                60373800,
                 49997000,
-                56493123,
+                56492805,
             }
             xmf{
                 populationShareF:int{49110000}
@@ -27200,9 +28185,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59342000,
+                59345100,
                 50100000,
-                54660800,
+                54662970,
             }
         }
         GH{
@@ -27231,7 +28216,7 @@
             gur{
                 populationShareF:int{48350000}
             }
-            ha_Latn{
+            ha{
                 populationShareF:int{47870000}
             }
             nzi{
@@ -27241,9 +28226,9 @@
                 populationShareF:int{46150000}
             }
             territoryF:intvector{
-                61108500,
+                61120800,
                 49715000,
-                57263276,
+                57269083,
             }
         }
         GI{
@@ -27257,7 +28242,7 @@
             territoryF:intvector{
                 59185000,
                 49800000,
-                54292580,
+                54293280,
             }
         }
         GL{
@@ -27269,9 +28254,9 @@
                 populationShareF:int{49840000}
             }
             territoryF:intvector{
-                59213300,
+                59217300,
                 50100000,
-                54577330,
+                54577280,
             }
         }
         GM{
@@ -27279,13 +28264,13 @@
                 officialStatus{"official"}
                 populationShareF:int{49400000}
             }
-            man_Latn{
+            man{
                 populationShareF:int{49290000}
             }
             territoryF:intvector{
-                59309300,
+                59338700,
                 49511000,
-                56196771,
+                56200965,
             }
         }
         GN{
@@ -27309,9 +28294,9 @@
                 populationShareF:int{49110000}
             }
             territoryF:intvector{
-                60151300,
+                60160800,
                 49410000,
-                57117802,
+                57120933,
             }
         }
         GP{
@@ -27345,15 +28330,18 @@
                 populationShareF:int{44100000}
             }
             territoryF:intvector{
-                60286200,
+                60317700,
                 49942000,
-                55740743,
+                55759451,
             }
         }
         GR{
             bg{
                 populationShareF:int{47270000}
             }
+            de{
+                populationShareF:int{48500000}
+            }
             el{
                 officialStatus{"official"}
                 populationShareF:int{49990000}
@@ -27361,19 +28349,22 @@
             en{
                 populationShareF:int{49510000}
             }
+            fr{
+                populationShareF:int{48900000}
+            }
             mk{
                 populationShareF:int{48160000}
             }
-            pnt_Grek{
+            pnt{
                 populationShareF:int{48370000}
             }
             sq{
                 populationShareF:int{46930000}
             }
             territoryF:intvector{
-                61285300,
+                61290500,
                 49973000,
-                57107756,
+                57107733,
             }
             tr{
                 populationShareF:int{48120000}
@@ -27384,13 +28375,13 @@
         }
         GS{
             territoryF:intvector{
-                55801700,
+                55865400,
                 49990000,
                 51200000,
             }
             und{
+                literacyShareF:int{50100000}
                 populationShareF:int{50100000}
-                writingShareF:int{50100000}
             }
         }
         GT{
@@ -27403,9 +28394,9 @@
                 populationShareF:int{48700000}
             }
             territoryF:intvector{
-                61119800,
+                61132300,
                 49759000,
-                57149190,
+                57151900,
             }
         }
         GU{
@@ -27420,7 +28411,7 @@
             territoryF:intvector{
                 59488200,
                 49990000,
-                55161785,
+                55162742,
             }
         }
         GW{
@@ -27429,9 +28420,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59253200,
+                59285100,
                 49553000,
-                56172617,
+                56175916,
             }
         }
         GY{
@@ -27440,9 +28431,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59553400,
+                59609300,
                 49918000,
-                55735222,
+                55735909,
             }
         }
         HK{
@@ -27451,14 +28442,14 @@
                 populationShareF:int{49510000}
             }
             territoryF:intvector{
-                61400400,
+                61427400,
                 49935000,
-                56714111,
+                56716740,
             }
             yue{
-                populationShareF:int{49890000}
+                populationShareF:int{49900000}
             }
-            zh_Hans{
+            zh{
                 populationShareF:int{48500000}
             }
             zh_Hant{
@@ -27468,13 +28459,13 @@
         }
         HM{
             territoryF:intvector{
-                54483500,
+                54517100,
                 49990000,
                 50100000,
             }
             und{
+                literacyShareF:int{50100000}
                 populationShareF:int{50100000}
-                writingShareF:int{50100000}
             }
         }
         HN{
@@ -27486,9 +28477,9 @@
                 populationShareF:int{49780000}
             }
             territoryF:intvector{
-                60392200,
+                60431900,
                 49851000,
-                56874667,
+                56889326,
             }
         }
         HR{
@@ -27504,34 +28495,37 @@
                 populationShareF:int{48160000}
             }
             territoryF:intvector{
-                60887300,
+                60942400,
                 49989000,
-                56446484,
+                56431371,
             }
         }
         HT{
             fr{
+                literacyShareF:int{50100000}
                 officialStatus{"official"}
                 populationShareF:int{48470000}
-                writingShareF:int{50100000}
             }
             ht{
                 officialStatus{"official"}
                 populationShareF:int{49810000}
             }
             territoryF:intvector{
-                60183800,
+                60193600,
                 49487000,
-                57101100,
+                57104858,
             }
         }
         HU{
             de{
-                populationShareF:int{48250000}
+                populationShareF:int{49180000}
             }
             en{
                 populationShareF:int{49200000}
             }
+            fr{
+                populationShareF:int{48300000}
+            }
             hr{
                 populationShareF:int{47320000}
             }
@@ -27549,9 +28543,9 @@
                 populationShareF:int{46500000}
             }
             territoryF:intvector{
-                61247100,
+                61267600,
                 49990000,
-                56989754,
+                56987478,
             }
         }
         IC{
@@ -27560,7 +28554,7 @@
                 populationShareF:int{49980000}
             }
             territoryF:intvector{
-                60685200,
+                60730300,
                 49977000,
                 56209859,
             }
@@ -27573,8 +28567,8 @@
                 populationShareF:int{47270000}
             }
             ban{
+                literacyShareF:int{49100000}
                 populationShareF:int{48180000}
-                writingShareF:int{49100000}
             }
             bbc{
                 populationShareF:int{47920000}
@@ -27583,12 +28577,12 @@
                 populationShareF:int{48210000}
             }
             bjn{
+                literacyShareF:int{49100000}
                 populationShareF:int{48150000}
-                writingShareF:int{49100000}
             }
             bug{
+                literacyShareF:int{49100000}
                 populationShareF:int{48160000}
-                writingShareF:int{49100000}
             }
             gay{
                 populationShareF:int{47120000}
@@ -27601,8 +28595,8 @@
                 populationShareF:int{49640000}
             }
             jv{
+                literacyShareF:int{49100000}
                 populationShareF:int{49340000}
-                writingShareF:int{49100000}
             }
             kge{
                 populationShareF:int{47320000}
@@ -27617,8 +28611,8 @@
                 populationShareF:int{47690000}
             }
             mad{
+                literacyShareF:int{49400000}
                 populationShareF:int{48630000}
-                writingShareF:int{49400000}
             }
             mak{
                 populationShareF:int{47730000}
@@ -27627,8 +28621,8 @@
                 populationShareF:int{46920000}
             }
             min{
+                literacyShareF:int{49100000}
                 populationShareF:int{48300000}
-                writingShareF:int{49100000}
             }
             ms_Arab{
                 populationShareF:int{48460000}
@@ -27658,9 +28652,9 @@
                 populationShareF:int{46920000}
             }
             territoryF:intvector{
-                62268600,
+                62302800,
                 49928000,
-                58255994,
+                58258316,
             }
             zh_Hant{
                 populationShareF:int{47920000}
@@ -27671,14 +28665,17 @@
                 officialStatus{"official"}
                 populationShareF:int{49980000}
             }
+            fr{
+                populationShareF:int{49170000}
+            }
             ga{
                 officialStatus{"official"}
-                populationShareF:int{49110000}
+                populationShareF:int{49220000}
             }
             territoryF:intvector{
-                61236400,
+                61324300,
                 49990000,
-                56489231,
+                56495247,
             }
         }
         IL{
@@ -27703,7 +28700,7 @@
                 populationShareF:int{48130000}
             }
             ml{
-                populationShareF:int{46990000}
+                populationShareF:int{46980000}
             }
             pl{
                 populationShareF:int{48150000}
@@ -27715,9 +28712,9 @@
                 populationShareF:int{49110000}
             }
             territoryF:intvector{
-                61272100,
+                61297000,
                 49971000,
-                56804931,
+                56817453,
             }
             ti{
                 populationShareF:int{47120000}
@@ -27738,7 +28735,7 @@
             territoryF:intvector{
                 59629800,
                 49990000,
-                54875450,
+                54881950,
             }
         }
         IN{
@@ -27760,8 +28757,8 @@
                 populationShareF:int{46370000}
             }
             bgc{
+                literacyShareF:int{49550000}
                 populationShareF:int{48120000}
-                writingShareF:int{49550000}
             }
             bhb{
                 populationShareF:int{47120000}
@@ -27770,12 +28767,12 @@
                 populationShareF:int{46920000}
             }
             bho{
+                literacyShareF:int{49300000}
                 populationShareF:int{48230000}
-                writingShareF:int{49300000}
             }
             bjj{
+                literacyShareF:int{49600000}
                 populationShareF:int{47560000}
-                writingShareF:int{49600000}
             }
             bn{
                 officialStatus{"official_regional"}
@@ -27821,7 +28818,7 @@
             gom{
                 populationShareF:int{47320000}
             }
-            gon_Telu{
+            gon{
                 populationShareF:int{47240000}
             }
             grt{
@@ -27851,9 +28848,9 @@
                 populationShareF:int{47220000}
             }
             kha{
+                literacyShareF:int{49290000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46800000}
-                writingShareF:int{49290000}
             }
             khn{
                 populationShareF:int{47150000}
@@ -27872,7 +28869,7 @@
             kru{
                 populationShareF:int{47190000}
             }
-            ks_Arab{
+            ks{
                 officialStatus{"official_regional"}
                 populationShareF:int{47410000}
             }
@@ -27882,15 +28879,15 @@
             lep{
                 populationShareF:int{45350000}
             }
-            lif_Deva{
+            lif{
                 populationShareF:int{45260000}
             }
             lmn{
                 populationShareF:int{47270000}
             }
             mag{
+                literacyShareF:int{49300000}
                 populationShareF:int{48120000}
-                writingShareF:int{49300000}
             }
             mai{
                 officialStatus{"official_regional"}
@@ -27927,7 +28924,7 @@
                 officialStatus{"official_regional"}
                 populationShareF:int{48320000}
             }
-            pa_Guru{
+            pa{
                 officialStatus{"official_regional"}
                 populationShareF:int{48280000}
             }
@@ -27938,8 +28935,8 @@
                 populationShareF:int{46130000}
             }
             rkt{
+                literacyShareF:int{49200000}
                 populationShareF:int{47440000}
-                writingShareF:int{49200000}
             }
             sa{
                 officialStatus{"official_regional"}
@@ -27955,7 +28952,7 @@
             sck{
                 populationShareF:int{47180000}
             }
-            sd_Arab{
+            sd{
                 officialStatus{"official_regional"}
                 populationShareF:int{47260000}
             }
@@ -27981,14 +28978,14 @@
                 populationShareF:int{48720000}
             }
             territoryF:intvector{
-                62741100,
+                62872100,
                 49628000,
-                59125170,
+                59126688,
             }
-            unr_Beng{
+            unr{
                 populationShareF:int{46950000}
             }
-            unx_Beng{
+            unx{
                 populationShareF:int{46480000}
             }
             ur{
@@ -28002,8 +28999,8 @@
                 populationShareF:int{47150000}
             }
             wtm{
+                literacyShareF:int{49250000}
                 populationShareF:int{47460000}
-                writingShareF:int{49250000}
             }
             xnr{
                 populationShareF:int{47160000}
@@ -28011,12 +29008,12 @@
         }
         IO{
             en{
+                literacyShareF:int{50100000}
                 officialStatus{"official"}
                 populationShareF:int{50100000}
-                writingShareF:int{50100000}
             }
             territoryF:intvector{
-                58140300,
+                58151500,
                 49990000,
                 53350000,
             }
@@ -28047,9 +29044,9 @@
                 populationShareF:int{47500000}
             }
             territoryF:intvector{
-                61526100,
+                61596700,
                 49785000,
-                57370562,
+                57381460,
             }
         }
         IR{
@@ -28077,7 +29074,7 @@
                 populationShareF:int{49750000}
             }
             gbz{
-                populationShareF:int{45980000}
+                populationShareF:int{45970000}
             }
             glk{
                 populationShareF:int{48460000}
@@ -28089,14 +29086,14 @@
                 populationShareF:int{46710000}
             }
             kk_Arab{
-                populationShareF:int{45370000}
+                populationShareF:int{45360000}
             }
             lki{
                 populationShareF:int{47760000}
             }
             lrc{
+                literacyShareF:int{49100000}
                 populationShareF:int{48210000}
-                writingShareF:int{49100000}
             }
             luz{
                 populationShareF:int{48120000}
@@ -28111,33 +29108,33 @@
                 populationShareF:int{47160000}
             }
             rmt{
+                literacyShareF:int{48100000}
                 populationShareF:int{48190000}
-                writingShareF:int{48100000}
             }
             sdh{
                 populationShareF:int{48370000}
             }
             territoryF:intvector{
-                62135700,
+                62145900,
                 49850000,
-                57818243,
+                57828016,
             }
-            tk_Latn{
+            tk{
                 populationShareF:int{48280000}
             }
         }
         IS{
             da{
-                populationShareF:int{47680000}
+                populationShareF:int{47670000}
             }
             is{
                 officialStatus{"official"}
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                60143400,
+                60161500,
                 49990000,
-                55331918,
+                55335878,
             }
         }
         IT{
@@ -28165,7 +29162,7 @@
                 writingShareF:int{48500000}
             }
             hr{
-                populationShareF:int{45570000}
+                populationShareF:int{45560000}
             }
             it{
                 officialStatus{"official"}
@@ -28182,7 +29179,7 @@
                 writingShareF:int{48500000}
             }
             pms{
-                populationShareF:int{46100000}
+                populationShareF:int{45990000}
             }
             rgn{
                 populationShareF:int{0}
@@ -28201,9 +29198,9 @@
                 populationShareF:int{47170000}
             }
             territoryF:intvector{
-                62213500,
+                62222100,
                 49990000,
-                57618551,
+                57620075,
             }
             vec{
                 populationShareF:int{48130000}
@@ -28217,7 +29214,7 @@
             territoryF:intvector{
                 59577100,
                 49990000,
-                54972940,
+                54980690,
             }
         }
         JM{
@@ -28229,9 +29226,9 @@
                 populationShareF:int{49950000}
             }
             territoryF:intvector{
-                60241000,
+                60253900,
                 49870000,
-                56295021,
+                56297034,
             }
         }
         JO{
@@ -28243,9 +29240,9 @@
                 populationShareF:int{49450000}
             }
             territoryF:intvector{
-                60799100,
+                60861900,
                 49959000,
-                56811756,
+                56818538,
             }
         }
         JP{
@@ -28261,9 +29258,9 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                62476700,
+                62493200,
                 49990000,
-                58126920,
+                58126702,
             }
         }
         KE{
@@ -28275,8 +29272,8 @@
                 writingShareF:int{48500000}
             }
             ebu{
+                literacyShareF:int{48100000}
                 populationShareF:int{48150000}
-                writingShareF:int{48100000}
             }
             en{
                 officialStatus{"official"}
@@ -28304,8 +29301,8 @@
                 populationShareF:int{49110000}
             }
             mas{
+                literacyShareF:int{49500000}
                 populationShareF:int{48160000}
-                writingShareF:int{49500000}
             }
             mer{
                 populationShareF:int{48400000}
@@ -28313,16 +29310,16 @@
             om{
                 populationShareF:int{47470000}
             }
-            pa_Guru{
-                populationShareF:int{46220000}
+            pa{
+                populationShareF:int{46210000}
             }
             pko{
+                literacyShareF:int{48100000}
                 populationShareF:int{47700000}
-                writingShareF:int{48100000}
             }
             saq{
+                literacyShareF:int{48100000}
                 populationShareF:int{47460000}
-                writingShareF:int{48100000}
             }
             so{
                 populationShareF:int{48130000}
@@ -28335,13 +29332,13 @@
                 populationShareF:int{47740000}
             }
             territoryF:intvector{
-                61133000,
+                61152700,
                 49874000,
-                57459253,
+                57467908,
             }
         }
         KG{
-            ky_Cyrl{
+            ky{
                 officialStatus{"official"}
                 populationShareF:int{49480000}
             }
@@ -28350,9 +29347,9 @@
                 populationShareF:int{49360000}
             }
             territoryF:intvector{
-                60192300,
+                60210100,
                 49992000,
-                56566494,
+                56572755,
             }
         }
         KH{
@@ -28367,9 +29364,9 @@
                 populationShareF:int{49890000}
             }
             territoryF:intvector{
-                60501600,
+                60589400,
                 49739000,
-                57157088,
+                57159572,
             }
         }
         KI{
@@ -28382,9 +29379,9 @@
                 populationShareF:int{49600000}
             }
             territoryF:intvector{
-                58189000,
+                58211000,
                 49900000,
-                55105711,
+                55106925,
             }
         }
         KM{
@@ -28397,9 +29394,9 @@
                 populationShareF:int{49560000}
             }
             territoryF:intvector{
-                59119000,
+                59125900,
                 49755000,
-                55780971,
+                55794678,
             }
             wni{
                 officialStatus{"official"}
@@ -28416,9 +29413,9 @@
                 populationShareF:int{49980000}
             }
             territoryF:intvector{
-                59128100,
+                59142700,
                 49978000,
-                54519360,
+                54523290,
             }
         }
         KP{
@@ -28429,7 +29426,7 @@
             territoryF:intvector{
                 60400000,
                 50100000,
-                57249832,
+                57251153,
             }
         }
         KR{
@@ -28438,9 +29435,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                62178400,
+                62192900,
                 49979000,
-                57491152,
+                57509242,
             }
         }
         KW{
@@ -28449,9 +29446,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                61282600,
+                61301100,
                 49939000,
-                56278853,
+                56283278,
             }
         }
         KY{
@@ -28462,7 +29459,7 @@
             territoryF:intvector{
                 59250700,
                 49989000,
-                54560920,
+                54572680,
             }
         }
         KZ{
@@ -28472,7 +29469,7 @@
             en{
                 populationShareF:int{49150000}
             }
-            kk_Cyrl{
+            kk{
                 officialStatus{"official"}
                 populationShareF:int{49640000}
             }
@@ -28481,9 +29478,9 @@
                 populationShareF:int{49720000}
             }
             territoryF:intvector{
-                61420000,
+                61460700,
                 49997000,
-                57181571,
+                57183604,
             }
             ug_Cyrl{
                 populationShareF:int{48200000}
@@ -28501,9 +29498,9 @@
                 populationShareF:int{49690000}
             }
             territoryF:intvector{
-                60345300,
+                60409600,
                 49727000,
-                56691154,
+                56701907,
             }
         }
         LB{
@@ -28524,9 +29521,9 @@
                 populationShareF:int{48160000}
             }
             territoryF:intvector{
-                60814200,
+                60851600,
                 49896000,
-                56618470,
+                56623774,
             }
         }
         LC{
@@ -28535,9 +29532,9 @@
                 populationShareF:int{49900000}
             }
             territoryF:intvector{
-                59197800,
+                59208300,
                 49901000,
-                55163922,
+                55164464,
             }
         }
         LI{
@@ -28553,10 +29550,10 @@
             territoryF:intvector{
                 59320000,
                 50100000,
-                54376240,
+                54379370,
             }
             wae{
-                populationShareF:int{48350000}
+                populationShareF:int{48340000}
             }
         }
         LK{
@@ -28572,9 +29569,9 @@
                 populationShareF:int{49150000}
             }
             territoryF:intvector{
-                61218200,
+                61237800,
                 49912000,
-                57220535,
+                57222350,
             }
         }
         LR{
@@ -28589,16 +29586,16 @@
                 populationShareF:int{47480000}
             }
             territoryF:intvector{
-                59371100,
+                59388100,
                 49608000,
-                56419567,
+                56429994,
+            }
+            vai{
+                populationShareF:int{48260000}
             }
             vai_Latn{
                 populationShareF:int{0}
             }
-            vai_Vaii{
-                populationShareF:int{48260000}
-            }
         }
         LS{
             en{
@@ -28613,9 +29610,9 @@
                 populationShareF:int{49980000}
             }
             territoryF:intvector{
-                59557500,
+                59601900,
                 49896000,
-                56194770,
+                56195307,
             }
             xh{
                 populationShareF:int{47990000}
@@ -28625,6 +29622,9 @@
             }
         }
         LT{
+            de{
+                populationShareF:int{49140000}
+            }
             en{
                 populationShareF:int{49380000}
             }
@@ -28633,15 +29633,15 @@
                 populationShareF:int{49860000}
             }
             ru{
-                populationShareF:int{48800000}
+                populationShareF:int{49800000}
             }
             sgs{
                 populationShareF:int{0}
             }
             territoryF:intvector{
-                60799300,
+                60857900,
                 49997000,
-                56288443,
+                56285424,
             }
         }
         LU{
@@ -28649,6 +29649,9 @@
                 officialStatus{"official"}
                 populationShareF:int{49630000}
             }
+            en{
+                populationShareF:int{49560000}
+            }
             fr{
                 officialStatus{"official"}
                 populationShareF:int{49870000}
@@ -28662,12 +29665,15 @@
                 populationShareF:int{49160000}
             }
             territoryF:intvector{
-                60536700,
+                60587400,
                 50100000,
-                55570252,
+                55582291,
             }
         }
         LV{
+            en{
+                populationShareF:int{49460000}
+            }
             ltg{
                 populationShareF:int{48890000}
             }
@@ -28679,9 +29685,9 @@
                 populationShareF:int{49380000}
             }
             territoryF:intvector{
-                60483600,
+                60508700,
                 49998000,
-                56198671,
+                56196569,
             }
         }
         LY{
@@ -28690,9 +29696,9 @@
                 populationShareF:int{49740000}
             }
             territoryF:intvector{
-                60979400,
+                60908900,
                 49895000,
-                56641178,
+                56654195,
             }
         }
         MA{
@@ -28713,29 +29719,29 @@
                 officialStatus{"de_facto_official"}
                 populationShareF:int{49200000}
             }
+            rif{
+                populationShareF:int{48490000}
+                writingShareF:int{48500000}
+            }
             rif_Latn{
                 populationShareF:int{48490000}
                 writingShareF:int{48500000}
             }
-            rif_Tfng{
-                populationShareF:int{48490000}
-                writingShareF:int{48500000}
+            shi{
+                populationShareF:int{48870000}
             }
             shi_Latn{
                 populationShareF:int{48870000}
             }
-            shi_Tfng{
-                populationShareF:int{48870000}
-            }
             territoryF:intvector{
-                61259200,
+                61282800,
                 49671000,
-                57333227,
+                57336558,
             }
-            tzm_Latn{
+            tzm{
+                literacyShareF:int{49250000}
                 officialStatus{"official"}
                 populationShareF:int{48980000}
-                writingShareF:int{49250000}
             }
             zgh{
                 populationShareF:int{49220000}
@@ -28749,7 +29755,7 @@
             territoryF:intvector{
                 59679000,
                 49990000,
-                54305350,
+                54305810,
             }
         }
         MD{
@@ -28767,9 +29773,9 @@
                 populationShareF:int{48300000}
             }
             territoryF:intvector{
-                60177800,
+                60185400,
                 49990000,
-                56354685,
+                56351049,
             }
             uk{
                 populationShareF:int{49140000}
@@ -28779,7 +29785,7 @@
             sq{
                 populationShareF:int{48790000}
             }
-            sr_Cyrl{
+            sr{
                 populationShareF:int{48500000}
             }
             sr_Latn{
@@ -28787,9 +29793,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                59942800,
+                60106100,
                 49985000,
-                55647073,
+                55644578,
             }
         }
         MF{
@@ -28800,7 +29806,7 @@
             territoryF:intvector{
                 58561500,
                 49990000,
-                54317540,
+                54319490,
             }
         }
         MG{
@@ -28817,9 +29823,9 @@
                 populationShareF:int{49900000}
             }
             territoryF:intvector{
-                60340500,
+                60374900,
                 49645000,
-                57238127,
+                57244303,
             }
         }
         MH{
@@ -28832,9 +29838,9 @@
                 populationShareF:int{49730000}
             }
             territoryF:intvector{
-                58182000,
+                58180000,
                 49937000,
-                54721910,
+                54733760,
             }
         }
         MK{
@@ -28847,9 +29853,9 @@
                 populationShareF:int{49250000}
             }
             territoryF:intvector{
-                60277200,
+                60301300,
                 49974000,
-                56209602,
+                56210003,
             }
             tr{
                 populationShareF:int{48350000}
@@ -28859,7 +29865,7 @@
             ar{
                 populationShareF:int{47890000}
             }
-            bm_Latn{
+            bm{
                 populationShareF:int{49460000}
             }
             bm_Nkoo{
@@ -28897,9 +29903,9 @@
                 populationShareF:int{48590000}
             }
             territoryF:intvector{
-                60275000,
+                60380900,
                 49334000,
-                57169555,
+                57174671,
             }
             tmh{
                 populationShareF:int{48210000}
@@ -28923,16 +29929,16 @@
                 populationShareF:int{48640000}
             }
             territoryF:intvector{
-                61244400,
+                61311100,
                 49927000,
-                57563202,
+                57568904,
             }
         }
         MN{
             kk_Arab{
                 populationShareF:int{48720000}
             }
-            mn_Cyrl{
+            mn{
                 officialStatus{"official"}
                 populationShareF:int{49930000}
             }
@@ -28940,14 +29946,14 @@
                 populationShareF:int{47130000}
             }
             territoryF:intvector{
-                60348700,
+                60366500,
                 49974000,
-                56299291,
+                56303133,
             }
             ug_Cyrl{
                 populationShareF:int{46330000}
             }
-            zh_Hans{
+            zh{
                 populationShareF:int{48140000}
             }
         }
@@ -28960,11 +29966,11 @@
                 populationShareF:int{48500000}
             }
             territoryF:intvector{
-                60516800,
+                60632200,
                 49956000,
-                55592731,
+                55597425,
             }
-            zh_Hans{
+            zh{
                 populationShareF:int{48500000}
             }
             zh_Hant{
@@ -28974,7 +29980,7 @@
         }
         MP{
             ch{
-                populationShareF:int{49180000}
+                populationShareF:int{49170000}
             }
             en{
                 officialStatus{"de_facto_official"}
@@ -28983,7 +29989,7 @@
             territoryF:intvector{
                 58682000,
                 49970000,
-                54523440,
+                54534670,
             }
         }
         MQ{
@@ -29009,23 +30015,23 @@
                 populationShareF:int{49170000}
             }
             territoryF:intvector{
-                60156200,
+                60167100,
                 49586000,
-                56359670,
+                56367729,
             }
             wo{
-                populationShareF:int{47280000}
+                populationShareF:int{47270000}
             }
         }
         MS{
             en{
                 officialStatus{"official"}
-                populationShareF:int{49670000}
+                populationShareF:int{49660000}
             }
             territoryF:intvector{
                 57437800,
                 49970000,
-                53524100,
+                53526700,
             }
         }
         MT{
@@ -29033,14 +30039,20 @@
                 officialStatus{"official"}
                 populationShareF:int{49880000}
             }
+            fr{
+                populationShareF:int{49110000}
+            }
+            it{
+                populationShareF:int{49560000}
+            }
             mt{
                 officialStatus{"official"}
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                60141200,
+                60163200,
                 49924000,
-                55413965,
+                55415196,
             }
         }
         MU{
@@ -29062,9 +30074,9 @@
                 populationShareF:int{48250000}
             }
             territoryF:intvector{
-                60235300,
+                60258500,
                 49888000,
-                56133983,
+                56134824,
             }
             ur{
                 populationShareF:int{48520000}
@@ -29076,9 +30088,9 @@
                 populationShareF:int{49940000}
             }
             territoryF:intvector{
-                59455400,
+                59540700,
                 49984000,
-                55393253,
+                55392960,
             }
         }
         MW{
@@ -29091,9 +30103,9 @@
                 populationShareF:int{49630000}
             }
             territoryF:intvector{
-                60195800,
+                60212300,
                 49748000,
-                57179647,
+                57185703,
             }
             tog{
                 populationShareF:int{47980000}
@@ -29129,9 +30141,9 @@
                 populationShareF:int{44700000}
             }
             territoryF:intvector{
-                62214900,
+                62230700,
                 49935000,
-                58121737,
+                58123167,
             }
             yua{
                 populationShareF:int{47670000}
@@ -29159,7 +30171,7 @@
             ml{
                 populationShareF:int{47150000}
             }
-            ms_Latn{
+            ms{
                 officialStatus{"official"}
                 populationShareF:int{49750000}
             }
@@ -29167,9 +30179,9 @@
                 populationShareF:int{48420000}
             }
             territoryF:intvector{
-                61769400,
+                61863800,
                 49931000,
-                57305138,
+                57309500,
             }
             zh_Hant{
                 populationShareF:int{49170000}
@@ -29205,9 +30217,9 @@
                 populationShareF:int{46360000}
             }
             territoryF:intvector{
-                60312100,
+                60353100,
                 49561000,
-                57253031,
+                57259302,
             }
             ts{
                 populationShareF:int{48790000}
@@ -29219,7 +30231,7 @@
                 populationShareF:int{48240000}
             }
             zu{
-                populationShareF:int{45710000}
+                populationShareF:int{45690000}
             }
         }
         NA{
@@ -29246,9 +30258,9 @@
                 populationShareF:int{49210000}
             }
             territoryF:intvector{
-                60234800,
+                60270400,
                 49888000,
-                56221231,
+                56243647,
             }
             tn{
                 populationShareF:int{47560000}
@@ -29262,7 +30274,7 @@
             territoryF:intvector{
                 60111000,
                 49962000,
-                55271615,
+                55275355,
             }
         }
         NE{
@@ -29279,19 +30291,19 @@
             fuq{
                 populationShareF:int{48700000}
             }
-            ha_Latn{
+            ha{
                 populationShareF:int{49410000}
             }
             territoryF:intvector{
-                60180000,
+                60202700,
                 49287000,
-                57180457,
+                57186386,
             }
             tmh{
                 populationShareF:int{48600000}
             }
             twq{
-                populationShareF:int{46440000}
+                populationShareF:int{46430000}
             }
         }
         NF{
@@ -29300,7 +30312,7 @@
                 populationShareF:int{49760000}
             }
             territoryF:intvector{
-                58106900,
+                58114300,
                 49990000,
                 53221000,
             }
@@ -29326,15 +30338,15 @@
                 populationShareF:int{49530000}
             }
             fuv{
+                literacyShareF:int{49200000}
                 populationShareF:int{48670000}
-                writingShareF:int{49200000}
+            }
+            ha{
+                populationShareF:int{49130000}
             }
             ha_Arab{
                 populationShareF:int{48100000}
             }
-            ha_Latn{
-                populationShareF:int{49130000}
-            }
             ibb{
                 populationShareF:int{48140000}
             }
@@ -29351,13 +30363,13 @@
                 populationShareF:int{49210000}
             }
             territoryF:intvector{
-                62105300,
+                62108900,
                 49613000,
-                58181562,
+                58186053,
             }
             tiv{
+                literacyShareF:int{49250000}
                 populationShareF:int{48160000}
-                writingShareF:int{49250000}
             }
             yo{
                 officialStatus{"official"}
@@ -29370,9 +30382,9 @@
                 populationShareF:int{49780000}
             }
             territoryF:intvector{
-                60296900,
+                60334900,
                 49780000,
-                56590788,
+                56596680,
             }
         }
         NL{
@@ -29413,9 +30425,9 @@
                 populationShareF:int{48120000}
             }
             territoryF:intvector{
-                61808800,
+                61865900,
                 49990000,
-                57169479,
+                57170170,
             }
             tr{
                 populationShareF:int{48120000}
@@ -29438,9 +30450,9 @@
                 populationShareF:int{48330000}
             }
             territoryF:intvector{
-                61346300,
+                61364700,
                 50100000,
-                56520769,
+                56526516,
             }
         }
         NP{
@@ -29481,9 +30493,9 @@
                 populationShareF:int{48320000}
             }
             lep{
-                populationShareF:int{45900000}
+                populationShareF:int{45970000}
             }
-            lif_Deva{
+            lif{
                 populationShareF:int{48110000}
             }
             mai{
@@ -29503,8 +30515,8 @@
                 populationShareF:int{48330000}
             }
             rjs{
+                literacyShareF:int{49670000}
                 populationShareF:int{47440000}
-                writingShareF:int{49670000}
             }
             taj{
                 populationShareF:int{48300000}
@@ -29516,9 +30528,9 @@
                 populationShareF:int{47120000}
             }
             territoryF:intvector{
-                60671400,
+                60715200,
                 49574000,
-                57315513,
+                57290339,
             }
             thl{
                 populationShareF:int{48200000}
@@ -29536,7 +30548,7 @@
                 populationShareF:int{47430000}
             }
             unr_Deva{
-                populationShareF:int{46180000}
+                populationShareF:int{46200000}
             }
             xsr{
                 populationShareF:int{47520000}
@@ -29554,7 +30566,7 @@
             territoryF:intvector{
                 58150800,
                 49990000,
-                53954000,
+                53959100,
             }
         }
         NU{
@@ -29579,12 +30591,12 @@
             }
             mi{
                 officialStatus{"official"}
-                populationShareF:int{48250000}
+                populationShareF:int{48280000}
             }
             territoryF:intvector{
-                61160800,
+                61174800,
                 49990000,
-                56443839,
+                56447455,
             }
         }
         OM{
@@ -29599,9 +30611,9 @@
                 populationShareF:int{47940000}
             }
             territoryF:intvector{
-                61163000,
+                61173100,
                 49869000,
-                56328694,
+                56335526,
             }
         }
         PA{
@@ -29613,9 +30625,9 @@
                 populationShareF:int{49690000}
             }
             territoryF:intvector{
-                60767700,
+                60931200,
                 49941000,
-                56365702,
+                56370525,
             }
             zh_Hant{
                 populationShareF:int{47160000}
@@ -29634,9 +30646,9 @@
                 populationShareF:int{49150000}
             }
             territoryF:intvector{
-                61372700,
+                61409900,
                 49896000,
-                57304450,
+                57307411,
             }
         }
         PF{
@@ -29647,7 +30659,7 @@
             territoryF:intvector{
                 59715000,
                 49980000,
-                55282703,
+                55285321,
             }
             ty{
                 officialStatus{"official"}
@@ -29668,14 +30680,14 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                60186000,
+                60280200,
                 49624000,
-                56667243,
+                56679132,
             }
             tpi{
+                literacyShareF:int{49450000}
                 officialStatus{"official"}
                 populationShareF:int{49710000}
-                writingShareF:int{49450000}
             }
         }
         PH{
@@ -29686,15 +30698,15 @@
                 populationShareF:int{48300000}
             }
             bku{
-                populationShareF:int{45790000}
+                populationShareF:int{45780000}
             }
             bto{
                 populationShareF:int{47280000}
             }
             ceb{
+                literacyShareF:int{49130000}
                 officialStatus{"official_regional"}
                 populationShareF:int{49240000}
-                writingShareF:int{49130000}
             }
             cps{
                 populationShareF:int{47670000}
@@ -29711,17 +30723,17 @@
                 populationShareF:int{49600000}
             }
             hil{
+                literacyShareF:int{48800000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48840000}
-                writingShareF:int{48800000}
             }
             hnn{
                 populationShareF:int{46160000}
             }
             ilo{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48960000}
-                writingShareF:int{49100000}
             }
             krj{
                 populationShareF:int{47390000}
@@ -29738,13 +30750,13 @@
                 populationShareF:int{48230000}
             }
             tbw{
-                populationShareF:int{45990000}
-                writingShareF:int{49360000}
+                literacyShareF:int{49360000}
+                populationShareF:int{45970000}
             }
             territoryF:intvector{
-                61693400,
+                61801900,
                 49954000,
-                58100998,
+                58102624,
             }
             tsg{
                 officialStatus{"official_regional"}
@@ -29797,7 +30809,7 @@
             khw{
                 populationShareF:int{47150000}
             }
-            ks_Arab{
+            ks{
                 populationShareF:int{46690000}
             }
             kvx{
@@ -29818,17 +30830,17 @@
             ps{
                 populationShareF:int{49150000}
             }
-            sd_Arab{
+            sd{
                 populationShareF:int{49120000}
             }
             skr{
+                literacyShareF:int{48100000}
                 populationShareF:int{48910000}
-                writingShareF:int{48100000}
             }
             territoryF:intvector{
-                61884200,
+                61988200,
                 49549000,
-                58199086,
+                58201996,
             }
             tg_Arab{
                 populationShareF:int{47330000}
@@ -29848,7 +30860,7 @@
             }
             de{
                 officialStatus{"official_regional"}
-                populationShareF:int{46960000}
+                populationShareF:int{49190000}
             }
             en{
                 populationShareF:int{49330000}
@@ -29861,6 +30873,9 @@
                 officialStatus{"official"}
                 populationShareF:int{49960000}
             }
+            ru{
+                populationShareF:int{49180000}
+            }
             sli{
                 populationShareF:int{46310000}
             }
@@ -29868,9 +30883,9 @@
                 populationShareF:int{48130000}
             }
             territoryF:intvector{
-                61959800,
+                62105200,
                 49997000,
-                57385622,
+                57385233,
             }
             uk{
                 populationShareF:int{47390000}
@@ -29878,27 +30893,27 @@
         }
         PM{
             en{
-                populationShareF:int{48330000}
+                populationShareF:int{48340000}
             }
             fr{
                 officialStatus{"official"}
-                populationShareF:int{49900000}
+                populationShareF:int{49910000}
             }
             territoryF:intvector{
                 58215300,
                 49990000,
-                53565700,
+                53559500,
             }
         }
         PN{
             en{
                 officialStatus{"official"}
-                populationShareF:int{49960000}
+                populationShareF:int{49850000}
             }
             territoryF:intvector{
-                56192400,
+                56233700,
                 49990000,
-                51480000,
+                51540000,
             }
         }
         PR{
@@ -29911,9 +30926,9 @@
                 populationShareF:int{49870000}
             }
             territoryF:intvector{
-                60614600,
+                61131000,
                 49903000,
-                56359836,
+                56357806,
             }
         }
         PS{
@@ -29922,9 +30937,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                60201200,
+                60212200,
                 49953000,
-                56465442,
+                56445101,
             }
         }
         PT{
@@ -29932,7 +30947,10 @@
                 populationShareF:int{49270000}
             }
             es{
-                populationShareF:int{46970000}
+                populationShareF:int{49100000}
+            }
+            fr{
+                populationShareF:int{49150000}
             }
             gl{
                 populationShareF:int{47140000}
@@ -29942,9 +30960,9 @@
                 populationShareF:int{49960000}
             }
             territoryF:intvector{
-                61281400,
+                61297100,
                 49954000,
-                57108253,
+                57108338,
             }
         }
         PW{
@@ -29957,9 +30975,9 @@
                 populationShareF:int{49740000}
             }
             territoryF:intvector{
-                58250000,
+                58276000,
                 49920000,
-                54212650,
+                54213470,
             }
         }
         PY{
@@ -29975,9 +30993,9 @@
                 populationShareF:int{49800000}
             }
             territoryF:intvector{
-                60584900,
+                60641200,
                 49939000,
-                56678327,
+                56686281,
             }
         }
         QA{
@@ -29989,12 +31007,12 @@
                 populationShareF:int{49110000}
             }
             ml{
-                populationShareF:int{47300000}
+                populationShareF:int{47290000}
             }
             territoryF:intvector{
-                61306600,
+                61334500,
                 49963000,
-                56219482,
+                56225828,
             }
         }
         RE{
@@ -30027,6 +31045,12 @@
             en{
                 populationShareF:int{49310000}
             }
+            es{
+                populationShareF:int{49100000}
+            }
+            fr{
+                populationShareF:int{49170000}
+            }
             hu{
                 populationShareF:int{48660000}
             }
@@ -30041,9 +31065,9 @@
                 populationShareF:int{47120000}
             }
             territoryF:intvector{
-                61393800,
+                61441000,
                 49977000,
-                57216664,
+                57215997,
             }
             tr{
                 populationShareF:int{47130000}
@@ -30069,7 +31093,7 @@
             sq{
                 populationShareF:int{49190000}
             }
-            sr_Cyrl{
+            sr{
                 officialStatus{"official"}
                 populationShareF:int{49990000}
             }
@@ -30079,9 +31103,9 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                60958400,
+                61101500,
                 49980000,
-                56717679,
+                56714392,
             }
             uk{
                 officialStatus{"official_regional"}
@@ -30131,8 +31155,8 @@
                 populationShareF:int{46120000}
             }
             hy{
+                literacyShareF:int{49500000}
                 populationShareF:int{47840000}
-                writingShareF:int{49500000}
             }
             inh{
                 officialStatus{"official_regional"}
@@ -30176,7 +31200,7 @@
                 officialStatus{"official_regional"}
                 populationShareF:int{47210000}
             }
-            mn_Cyrl{
+            mn{
                 populationShareF:int{45150000}
             }
             mrj{
@@ -30201,9 +31225,9 @@
                 populationShareF:int{45350000}
             }
             territoryF:intvector{
-                62357700,
+                62374500,
                 49997000,
-                58142424,
+                58142355,
             }
             tt{
                 officialStatus{"official_regional"}
@@ -30238,9 +31262,9 @@
                 populationShareF:int{49770000}
             }
             territoryF:intvector{
-                60189000,
+                60219700,
                 49711000,
-                57126617,
+                57129884,
             }
         }
         SA{
@@ -30249,9 +31273,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                62161000,
+                62173100,
                 49872000,
-                57277523,
+                57281603,
             }
         }
         SB{
@@ -30263,9 +31287,9 @@
                 populationShareF:int{48160000}
             }
             territoryF:intvector{
-                59109400,
+                59119800,
                 49841000,
-                55622469,
+                55635027,
             }
         }
         SC{
@@ -30281,9 +31305,9 @@
                 populationShareF:int{49600000}
             }
             territoryF:intvector{
-                59242400,
+                59260800,
                 49918000,
-                54924300,
+                54931860,
             }
         }
         SD{
@@ -30311,9 +31335,9 @@
                 populationShareF:int{47990000}
             }
             territoryF:intvector{
-                61160200,
+                61176300,
                 49719000,
-                57361089,
+                57367295,
             }
             zag{
                 populationShareF:int{47510000}
@@ -30334,14 +31358,14 @@
                 populationShareF:int{0}
             }
             rmu{
-                populationShareF:int{46970000}
+                populationShareF:int{46960000}
             }
             se{
                 populationShareF:int{47330000}
             }
             sma{
-                populationShareF:int{45310000}
-                writingShareF:int{49750000}
+                literacyShareF:int{49750000}
+                populationShareF:int{45300000}
             }
             smj{
                 populationShareF:int{46150000}
@@ -30351,12 +31375,12 @@
                 populationShareF:int{49950000}
             }
             territoryF:intvector{
-                61450500,
+                61498100,
                 49990000,
-                56980162,
+                56988060,
             }
             yi{
-                populationShareF:int{46310000}
+                populationShareF:int{46300000}
             }
         }
         SG{
@@ -30365,25 +31389,25 @@
                 populationShareF:int{49930000}
             }
             ml{
-                populationShareF:int{47180000}
+                populationShareF:int{47170000}
             }
-            ms_Latn{
+            ms{
                 officialStatus{"official"}
                 populationShareF:int{49140000}
             }
-            pa_Guru{
-                populationShareF:int{47170000}
+            pa{
+                populationShareF:int{47160000}
             }
             ta{
                 officialStatus{"official"}
                 populationShareF:int{48210000}
             }
             territoryF:intvector{
-                61454300,
+                61486900,
                 49959000,
-                56567447,
+                56578173,
             }
-            zh_Hans{
+            zh{
                 officialStatus{"official"}
                 populationShareF:int{49770000}
             }
@@ -30400,9 +31424,15 @@
             }
         }
         SI{
+            de{
+                populationShareF:int{49420000}
+            }
             en{
                 populationShareF:int{49590000}
             }
+            hr{
+                populationShareF:int{49610000}
+            }
             hu{
                 populationShareF:int{47470000}
             }
@@ -30414,9 +31444,9 @@
                 populationShareF:int{49870000}
             }
             territoryF:intvector{
-                60615600,
+                60661300,
                 49997000,
-                56198341,
+                56197803,
             }
         }
         SJ{
@@ -30428,14 +31458,17 @@
                 populationShareF:int{49640000}
             }
             territoryF:intvector{
-                58124500,
+                58129700,
                 50100000,
                 53187200,
             }
         }
         SK{
+            cs{
+                populationShareF:int{49470000}
+            }
             de{
-                populationShareF:int{47280000}
+                populationShareF:int{49220000}
             }
             en{
                 populationShareF:int{49260000}
@@ -30451,9 +31484,9 @@
                 populationShareF:int{49900000}
             }
             territoryF:intvector{
-                61153200,
+                61169100,
                 49996000,
-                56544503,
+                56544580,
             }
             uk{
                 populationShareF:int{48190000}
@@ -30471,91 +31504,91 @@
                 populationShareF:int{49270000}
             }
             tem{
+                literacyShareF:int{48600000}
                 populationShareF:int{49260000}
-                writingShareF:int{48600000}
             }
             territoryF:intvector{
-                60128000,
+                60106400,
                 49433000,
-                56587910,
+                56601889,
             }
         }
         SM{
             eo{
-                populationShareF:int{47910000}
+                populationShareF:int{47900000}
             }
             it{
                 officialStatus{"official"}
                 populationShareF:int{49890000}
             }
             territoryF:intvector{
-                59191400,
+                59202300,
                 49960000,
-                54330200,
+                54332850,
             }
         }
         SN{
             bjt{
+                literacyShareF:int{50100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{47610000}
-                writingShareF:int{50100000}
             }
             bsc{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46980000}
-                writingShareF:int{49100000}
             }
             dyo{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48260000}
-                writingShareF:int{49100000}
             }
             ff{
                 officialStatus{"official_regional"}
                 populationShareF:int{49210000}
             }
             fr{
+                literacyShareF:int{50100000}
                 officialStatus{"official"}
                 populationShareF:int{49390000}
-                writingShareF:int{50100000}
             }
             knf{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{47210000}
-                writingShareF:int{49100000}
             }
             mey{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
-                populationShareF:int{46510000}
-                writingShareF:int{49100000}
+                populationShareF:int{46500000}
             }
             mfv{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{47770000}
-                writingShareF:int{49100000}
             }
             sav{
                 officialStatus{"official_regional"}
                 populationShareF:int{48150000}
             }
             snf{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{47240000}
-                writingShareF:int{49100000}
             }
             srr{
                 officialStatus{"official_regional"}
                 populationShareF:int{49110000}
             }
             territoryF:intvector{
-                60342000,
+                60397200,
                 49497000,
-                57139758,
+                57143201,
             }
             tnr{
+                literacyShareF:int{49100000}
                 officialStatus{"official_regional"}
                 populationShareF:int{46240000}
-                writingShareF:int{49100000}
             }
             wo{
                 officialStatus{"de_facto_official"}
@@ -30564,9 +31597,9 @@
         }
         SO{
             ar{
+                literacyShareF:int{49990000}
                 officialStatus{"official"}
                 populationShareF:int{49340000}
-                writingShareF:int{49990000}
             }
             om{
                 populationShareF:int{47420000}
@@ -30579,9 +31612,9 @@
                 populationShareF:int{48200000}
             }
             territoryF:intvector{
-                59589600,
+                59443100,
                 49378000,
-                57106164,
+                57108174,
             }
         }
         SR{
@@ -30590,13 +31623,13 @@
                 populationShareF:int{49900000}
             }
             srn{
+                literacyShareF:int{49750000}
                 populationShareF:int{49680000}
-                writingShareF:int{49750000}
             }
             territoryF:intvector{
-                59898700,
+                59854700,
                 49947000,
-                55579633,
+                55585824,
             }
             zh_Hant{
                 populationShareF:int{48120000}
@@ -30614,9 +31647,9 @@
                 populationShareF:int{48560000}
             }
             territoryF:intvector{
-                60235000,
+                60208800,
                 49270000,
-                57120429,
+                57125307,
             }
         }
         ST{
@@ -30625,9 +31658,9 @@
                 populationShareF:int{49850000}
             }
             territoryF:intvector{
-                58626000,
+                58694000,
                 49695000,
-                55194006,
+                55197541,
             }
         }
         SV{
@@ -30636,9 +31669,9 @@
                 populationShareF:int{49890000}
             }
             territoryF:intvector{
-                60511900,
+                60547900,
                 49845000,
-                56614135,
+                56615667,
             }
         }
         SX{
@@ -30651,15 +31684,15 @@
             }
             nl{
                 officialStatus{"official"}
-                populationShareF:int{48400000}
+                populationShareF:int{48380000}
             }
             territoryF:intvector{
                 58365800,
                 49990000,
-                54396890,
+                54414860,
             }
             vic{
-                populationShareF:int{48780000}
+                populationShareF:int{48750000}
             }
         }
         SY{
@@ -30674,7 +31707,7 @@
             hy{
                 populationShareF:int{48180000}
             }
-            ku_Latn{
+            ku{
                 populationShareF:int{48800000}
             }
             syr{
@@ -30682,9 +31715,9 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                61107600,
+                60558000,
                 49841000,
-                57170649,
+                57171852,
             }
         }
         SZ{
@@ -30697,9 +31730,9 @@
                 populationShareF:int{49580000}
             }
             territoryF:intvector{
-                60105600,
+                60110600,
                 49878000,
-                56143561,
+                56145143,
             }
             ts{
                 populationShareF:int{48170000}
@@ -30713,7 +31746,7 @@
                 populationShareF:int{49990000}
             }
             territoryF:intvector{
-                57110200,
+                57119000,
                 49990000,
                 52275000,
             }
@@ -30726,7 +31759,7 @@
             territoryF:intvector{
                 58632000,
                 49980000,
-                54502800,
+                54514300,
             }
         }
         TD{
@@ -30739,18 +31772,18 @@
                 populationShareF:int{49260000}
             }
             territoryF:intvector{
-                60296400,
+                60305900,
                 49354000,
-                57116315,
+                57118525,
             }
         }
         TF{
             fr{
+                literacyShareF:int{50100000}
                 populationShareF:int{50100000}
-                writingShareF:int{50100000}
             }
             territoryF:intvector{
-                56545000,
+                56573300,
                 49990000,
                 52140000,
             }
@@ -30763,10 +31796,14 @@
                 officialStatus{"official"}
                 populationShareF:int{49610000}
             }
+            ife{
+                literacyShareF:int{49150000}
+                populationShareF:int{48130000}
+            }
             territoryF:intvector{
-                60101600,
+                60116100,
                 49604000,
-                56755232,
+                56775694,
             }
         }
         TH{
@@ -30774,15 +31811,15 @@
                 populationShareF:int{49270000}
             }
             kdt{
+                literacyShareF:int{49500000}
                 populationShareF:int{47480000}
-                writingShareF:int{49500000}
             }
             kxm{
                 populationShareF:int{48170000}
             }
             lcp{
+                literacyShareF:int{49250000}
                 populationShareF:int{46100000}
-                writingShareF:int{49250000}
             }
             lwl{
                 populationShareF:int{46100000}
@@ -30805,14 +31842,14 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                62107000,
+                62116100,
                 49935000,
-                57679764,
+                57682008,
             }
             th{
+                literacyShareF:int{49930000}
                 officialStatus{"official"}
                 populationShareF:int{49800000}
-                writingShareF:int{49930000}
             }
             tts{
                 populationShareF:int{49240000}
@@ -30833,11 +31870,11 @@
                 populationShareF:int{49120000}
             }
             territoryF:intvector{
-                60224000,
+                60258100,
                 49997000,
-                56819196,
+                56833095,
             }
-            tg_Cyrl{
+            tg{
                 officialStatus{"official"}
                 populationShareF:int{50100000}
             }
@@ -30860,14 +31897,14 @@
         }
         TL{
             pt{
+                literacyShareF:int{50100000}
                 officialStatus{"official"}
                 populationShareF:int{49590000}
-                writingShareF:int{50100000}
             }
             territoryF:intvector{
-                59674500,
+                59497500,
                 49583000,
-                56123112,
+                56126107,
             }
             tet{
                 officialStatus{"official"}
@@ -30875,22 +31912,22 @@
             }
         }
         TM{
-            ku_Latn{
+            ku{
                 populationShareF:int{47410000}
             }
             ru{
                 populationShareF:int{49120000}
             }
             territoryF:intvector{
-                60824000,
+                60947700,
                 49996000,
-                56523142,
+                56529132,
             }
-            tk_Latn{
+            tk{
                 officialStatus{"official"}
                 populationShareF:int{49700000}
             }
-            uz_Latn{
+            uz{
                 populationShareF:int{48900000}
             }
         }
@@ -30907,9 +31944,9 @@
                 populationShareF:int{49740000}
             }
             territoryF:intvector{
-                61124700,
+                61130800,
                 49791000,
-                57110372,
+                57111346,
             }
         }
         TO{
@@ -30918,9 +31955,9 @@
                 populationShareF:int{49280000}
             }
             territoryF:intvector{
-                58502000,
+                58557000,
                 49990000,
-                55106501,
+                55106513,
             }
             to{
                 officialStatus{"official"}
@@ -30937,12 +31974,12 @@
             ar{
                 populationShareF:int{47560000}
             }
+            az{
+                populationShareF:int{47740000}
+            }
             az_Arab{
                 populationShareF:int{47650000}
             }
-            az_Latn{
-                populationShareF:int{47740000}
-            }
             bg{
                 populationShareF:int{47420000}
             }
@@ -30967,8 +32004,8 @@
             kiu{
                 populationShareF:int{47190000}
             }
-            kk_Cyrl{
-                populationShareF:int{44800000}
+            kk{
+                populationShareF:int{44700000}
             }
             ku{
                 populationShareF:int{48550000}
@@ -30976,7 +32013,7 @@
             ky_Latn{
                 populationShareF:int{45140000}
             }
-            lzz_Latn{
+            lzz{
                 populationShareF:int{46280000}
             }
             sq{
@@ -30987,18 +32024,18 @@
                 writingShareF:int{48500000}
             }
             territoryF:intvector{
-                62151500,
+                62167000,
                 49941000,
-                57794143,
+                57802746,
             }
             tr{
                 officialStatus{"official"}
                 populationShareF:int{49930000}
             }
             tru{
-                populationShareF:int{45380000}
+                populationShareF:int{45370000}
             }
-            uz_Latn{
+            uz{
                 populationShareF:int{45250000}
             }
             zza{
@@ -31014,9 +32051,9 @@
                 populationShareF:int{47340000}
             }
             territoryF:intvector{
-                60434600,
+                60435700,
                 49988000,
-                56122236,
+                56122048,
             }
         }
         TV{
@@ -31025,9 +32062,9 @@
                 populationShareF:int{48980000}
             }
             territoryF:intvector{
-                57350000,
+                57390000,
                 49950000,
-                54108690,
+                54109590,
             }
             tvl{
                 officialStatus{"official"}
@@ -31036,9 +32073,9 @@
         }
         TW{
             territoryF:intvector{
-                62107900,
+                62112500,
                 49961000,
-                57234151,
+                57234648,
             }
             trv{
                 populationShareF:int{46200000}
@@ -31072,8 +32109,8 @@
                 populationShareF:int{47870000}
             }
             mas{
+                literacyShareF:int{49500000}
                 populationShareF:int{48150000}
-                writingShareF:int{49500000}
             }
             mgy{
                 populationShareF:int{48140000}
@@ -31088,8 +32125,8 @@
                 populationShareF:int{47220000}
             }
             sbp{
+                literacyShareF:int{48100000}
                 populationShareF:int{47200000}
-                writingShareF:int{48100000}
             }
             suk{
                 populationShareF:int{48870000}
@@ -31099,9 +32136,9 @@
                 populationShareF:int{49900000}
             }
             territoryF:intvector{
-                61128200,
+                61150600,
                 49678000,
-                57510459,
+                57524827,
             }
             vun{
                 populationShareF:int{47750000}
@@ -31114,6 +32151,9 @@
             bg{
                 populationShareF:int{47490000}
             }
+            crh{
+                populationShareF:int{47560000}
+            }
             el{
                 populationShareF:int{46160000}
             }
@@ -31134,9 +32174,9 @@
                 populationShareF:int{48120000}
             }
             territoryF:intvector{
-                61371800,
+                61349800,
                 49997000,
-                57444295,
+                57442097,
             }
             tr{
                 populationShareF:int{47420000}
@@ -31161,7 +32201,7 @@
                 populationShareF:int{48390000}
             }
             hi{
-                populationShareF:int{45590000}
+                populationShareF:int{45570000}
             }
             laj{
                 populationShareF:int{48380000}
@@ -31186,9 +32226,9 @@
                 populationShareF:int{48390000}
             }
             territoryF:intvector{
-                60750800,
+                60849300,
                 49732000,
-                57371017,
+                57383192,
             }
             ttj{
                 populationShareF:int{48190000}
@@ -31203,7 +32243,7 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                57170600,
+                57181000,
                 49990000,
                 52316000,
             }
@@ -31272,9 +32312,9 @@
                 populationShareF:int{47240000}
             }
             territoryF:intvector{
-                63173500,
+                63185600,
                 49990000,
-                58321369,
+                58323996,
             }
             vi{
                 populationShareF:int{47340000}
@@ -31292,9 +32332,9 @@
                 populationShareF:int{49880000}
             }
             territoryF:intvector{
-                60716800,
+                60739300,
                 49981000,
-                56334189,
+                56335102,
             }
         }
         UZ{
@@ -31305,33 +32345,34 @@
                 populationShareF:int{49140000}
             }
             territoryF:intvector{
-                61172300,
+                61202300,
                 49994000,
-                57291999,
+                57294736,
             }
             tr{
                 populationShareF:int{47760000}
             }
+            uz{
+                officialStatus{"official"}
+                populationShareF:int{49850000}
+            }
             uz_Cyrl{
                 officialStatus{"official"}
                 populationShareF:int{49150000}
             }
-            uz_Latn{
-                officialStatus{"official"}
-                populationShareF:int{49850000}
-            }
         }
         VA{
             it{
-                populationShareF:int{49980000}
+                officialStatus{"de_facto_official"}
+                populationShareF:int{49820000}
             }
             la{
-                populationShareF:int{49980000}
+                populationShareF:int{49820000}
             }
             territoryF:intvector{
-                57290600,
+                57358200,
                 50100000,
-                52842000,
+                53100000,
             }
         }
         VC{
@@ -31340,9 +32381,9 @@
                 populationShareF:int{49960000}
             }
             territoryF:intvector{
-                59117400,
+                59124100,
                 49960000,
-                55102627,
+                55102350,
             }
         }
         VE{
@@ -31351,9 +32392,9 @@
                 populationShareF:int{49820000}
             }
             territoryF:intvector{
-                61540900,
+                61468600,
                 49955000,
-                57292755,
+                57309123,
             }
         }
         VG{
@@ -31364,7 +32405,7 @@
             territoryF:intvector{
                 58500000,
                 49978000,
-                54334540,
+                54342320,
             }
         }
         VI{
@@ -31375,18 +32416,18 @@
             territoryF:intvector{
                 59379200,
                 49990000,
-                55103574,
+                55102951,
             }
         }
         VN{
             cjm{
+                literacyShareF:int{49600000}
                 populationShareF:int{46890000}
-                writingShareF:int{49600000}
             }
             territoryF:intvector{
-                61512600,
+                61594900,
                 49934000,
-                57943488,
+                57952610,
             }
             vi{
                 officialStatus{"official"}
@@ -31410,9 +32451,9 @@
                 populationShareF:int{49500000}
             }
             territoryF:intvector{
-                58683000,
+                58723000,
                 49832000,
-                55272264,
+                55277554,
             }
         }
         WF{
@@ -31426,7 +32467,7 @@
             territoryF:intvector{
                 57600000,
                 49500000,
-                54156130,
+                54156640,
             }
             wls{
                 populationShareF:int{49600000}
@@ -31442,9 +32483,9 @@
                 populationShareF:int{50100000}
             }
             territoryF:intvector{
-                58997000,
+                59104600,
                 49988000,
-                55197773,
+                55198926,
             }
         }
         XK{
@@ -31455,7 +32496,7 @@
                 officialStatus{"official"}
                 populationShareF:int{49920000}
             }
-            sr_Cyrl{
+            sr{
                 officialStatus{"official"}
                 populationShareF:int{48500000}
             }
@@ -31464,9 +32505,9 @@
                 populationShareF:int{48500000}
             }
             territoryF:intvector{
-                60169200,
+                60184900,
                 49919000,
-                56187098,
+                56188302,
             }
         }
         YE{
@@ -31478,9 +32519,9 @@
                 populationShareF:int{48900000}
             }
             territoryF:intvector{
-                61104000,
+                60734500,
                 49653000,
-                57267373,
+                57273928,
             }
         }
         YT{
@@ -31505,72 +32546,72 @@
         }
         ZA{
             af{
+                literacyShareF:int{49990000}
                 officialStatus{"official_regional"}
                 populationShareF:int{49130000}
-                writingShareF:int{49990000}
             }
             en{
+                literacyShareF:int{49990000}
                 officialStatus{"official"}
                 populationShareF:int{49310000}
-                writingShareF:int{49990000}
             }
             hi{
+                literacyShareF:int{49690000}
                 populationShareF:int{48200000}
-                writingShareF:int{49690000}
             }
             nr{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48160000}
-                writingShareF:int{49500000}
             }
             nso{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48940000}
-                writingShareF:int{49500000}
             }
             ss{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48270000}
-                writingShareF:int{49500000}
             }
             st{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48790000}
-                writingShareF:int{49500000}
             }
             sw{
-                populationShareF:int{45190000}
-                writingShareF:int{49500000}
+                literacyShareF:int{49500000}
+                populationShareF:int{45180000}
             }
             territoryF:intvector{
-                61707100,
+                61736300,
                 49930000,
-                57536756,
+                57543007,
             }
             tn{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48820000}
-                writingShareF:int{49500000}
             }
             ts{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48440000}
-                writingShareF:int{49500000}
             }
             ve{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{48230000}
-                writingShareF:int{49500000}
             }
             xh{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{49180000}
-                writingShareF:int{49500000}
             }
             zu{
+                literacyShareF:int{49500000}
                 officialStatus{"official_regional"}
                 populationShareF:int{49240000}
-                writingShareF:int{49500000}
             }
         }
         ZM{
@@ -31588,9 +32629,9 @@
                 populationShareF:int{49150000}
             }
             territoryF:intvector{
-                60613900,
+                60651700,
                 49614000,
-                57150663,
+                57155107,
             }
         }
         ZW{
@@ -31619,9 +32660,9 @@
                 populationShareF:int{49810000}
             }
             territoryF:intvector{
-                60272600,
+                60283300,
                 49836000,
-                57142295,
+                57145470,
             }
             tn{
                 populationShareF:int{47220000}
diff --git a/source/data/rbnf/ars.txt b/source/data/rbnf/ars.txt
new file mode 100644
index 0000000..24b08c3
--- /dev/null
+++ b/source/data/rbnf/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar"}
+}
diff --git a/source/data/rbnf/hi.txt b/source/data/rbnf/hi.txt
index 7af7996..77e3262 100644
--- a/source/data/rbnf/hi.txt
+++ b/source/data/rbnf/hi.txt
@@ -5,21 +5,33 @@
         OrdinalRules{
             "%digits-ordinal-masculine:",
             "-x: \u2212>>;",
+            "x.x: =#,##,##0.0=;",
             "0: 0;",
-            "1: =#,##,##0=\u0932\u093E;",
-            "2: =#,##,##0=\u0930\u093E;",
-            "4: =#,##,##0=\u0925\u093E;",
-            "5: =#,##,##0=\u0935\u093E\u0901;",
-            "6: =#,##,##0=\u091F\u093E;",
+            "1: =0=\u0932\u093E;",
+            "2: =0=\u0930\u093E;",
+            "4: =0=\u0925\u093E;",
+            "5: =0=\u0935\u093E\u0901;",
+            "6: =0=\u0920\u093E;",
             "7: =#,##,##0=\u0935\u093E\u0901;",
+            "%digits-ordinal-masculine-oblique:",
+            "-x: \u2212>>;",
+            "x.x: =#,##,##0.0=;",
+            "0: 0;",
+            "1: =0=\u0932\u0947;",
+            "2: =0=\u0930\u0947;",
+            "4: =0=\u0925\u0947;",
+            "5: =0=\u0935\u0947\u0902;",
+            "6: =0=\u0920\u0947;",
+            "7: =#,##,##0=\u0935\u0947\u0902;",
             "%digits-ordinal-feminine:",
             "-x: \u2212>>;",
+            "x.x: =#,##,##0.0=;",
             "0: 0;",
-            "1: =#,##,##0=\u0932\u0940;",
-            "2: =#,##,##0=\u0930\u0940;",
-            "4: =#,##,##0=\u0925\u0940;",
-            "5: =#,##,##0=\u0935\u0940\u0901;",
-            "6: =#,##,##0=\u091F\u0940;",
+            "1: =0=\u0932\u0940;",
+            "2: =0=\u0930\u0940;",
+            "4: =0=\u0925\u0940;",
+            "5: =0=\u0935\u0940\u0901;",
+            "6: =0=\u0920\u0940;",
             "7: =#,##,##0=\u0935\u0940\u0901;",
             "%digits-ordinal:",
             "0: =%digits-ordinal-masculine=;",
@@ -142,7 +154,7 @@
             "1000000000000000000: =#,##,##0=;",
             "%spellout-ordinal-masculine:",
             "-x: \u090B\u0923 >>;",
-            "x.x: =#,##0.#=;",
+            "x.x: =#,##,##0.0=;",
             "0: \u0936\u0942\u0928\u094D\u092F\u0935\u093E\u0901;",
             "1: \u092A\u0939\u0932\u093E;",
             "2: \u0926\u0942\u0938\u0930\u093E;",
@@ -153,7 +165,7 @@
             "7: =%spellout-cardinal=\u0935\u093E\u0901;",
             "%spellout-ordinal-feminine:",
             "-x: \u090B\u0923 >>;",
-            "x.x: =#,##0.#=;",
+            "x.x: =#,##,##0.0=;",
             "0: \u0936\u0942\u0928\u094D\u092F\u0935\u0940;",
             "1: \u092A\u0939\u0932\u0940;",
             "2: \u0926\u0942\u0938\u0930\u0940;",
diff --git a/source/data/rbnf/id.txt b/source/data/rbnf/id.txt
index 12bc3ab..c20a0ad 100644
--- a/source/data/rbnf/id.txt
+++ b/source/data/rbnf/id.txt
@@ -4,8 +4,8 @@
     RBNFRules{
         OrdinalRules{
             "%digits-ordinal:",
-            "-x: ke\u2212>#,##0>;",
-            "0: ke=#,##0=;",
+            "-x: \u2212ke->#,##0>;",
+            "0: ke-=#,##0=;",
         }
         SpelloutRules{
             "%spellout-numbering-year:",
@@ -45,5 +45,5 @@
             "0: ke=%spellout-cardinal=;",
         }
     }
-    Version{"2.1.27.22"}
+    Version{"2.1.32.38"}
 }
diff --git a/source/data/rbnf/ms.txt b/source/data/rbnf/ms.txt
index 5495b8f..9270733 100644
--- a/source/data/rbnf/ms.txt
+++ b/source/data/rbnf/ms.txt
@@ -4,8 +4,8 @@
     RBNFRules{
         OrdinalRules{
             "%digits-ordinal:",
-            "-x: ke\u2212>#,##0>;",
-            "0: ke=#,##0=;",
+            "-x: \u2212ke->#,##0>;",
+            "0: ke-=#,##0=;",
         }
         SpelloutRules{
             "%spellout-numbering-year:",
@@ -47,5 +47,5 @@
             "2: ke=%spellout-cardinal=;",
         }
     }
-    Version{"2.1.27.22"}
+    Version{"2.1.31.40"}
 }
diff --git a/source/data/rbnf/rbnffiles.mk b/source/data/rbnf/rbnffiles.mk
index 2190c67..90b266f 100644
--- a/source/data/rbnf/rbnffiles.mk
+++ b/source/data/rbnf/rbnffiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-RBNF_CLDR_VERSION = %version%
+RBNF_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'rbnflocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'rbnflocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,10 +26,10 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-RBNF_SYNTHETIC_ALIAS = es_DO.txt es_GT.txt es_HN.txt es_MX.txt\
- es_NI.txt es_PA.txt es_PR.txt es_SV.txt es_US.txt\
- in.txt iw.txt no.txt sh.txt zh_HK.txt\
- zh_Hant_HK.txt zh_MO.txt zh_TW.txt
+RBNF_SYNTHETIC_ALIAS = ars.txt es_DO.txt es_GT.txt es_HN.txt\
+ es_MX.txt es_NI.txt es_PA.txt es_PR.txt es_SV.txt\
+ es_US.txt in.txt iw.txt no.txt sh.txt\
+ zh_HK.txt zh_Hant_HK.txt zh_MO.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
diff --git a/source/data/rbnf/uk.txt b/source/data/rbnf/uk.txt
index 4294e4d..099fe41 100644
--- a/source/data/rbnf/uk.txt
+++ b/source/data/rbnf/uk.txt
@@ -53,21 +53,11 @@
             "700: \u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "800: \u0432\u0456\u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "900: \u0434\u0435\u0432\u02BC\u044F\u0442\u0441\u043E\u0442[ >>];",
-            "1000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0430[ >>];",
-            "2000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0456[ >>];",
-            "5000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447[ >>];",
-            "1000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
-            "1000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
+            "1000: <%spellout-cardinal-feminine< $(cardinal,one{\u0442\u0438\u0441\u044F\u0447\u0430}few{\u0442\u0438\u0441\u044F\u0447\u0456}other{\u0442\u0438\u0441\u044F\u0447})$[ >>];",
+            "1000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u0439\u043E\u043D}few{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u044F\u0440\u0434}few{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
+            "1000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u0439\u043E\u043D}few{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u044F\u0440\u0434}few{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
             "1000000000000000000: =#,##0=;",
             "%spellout-cardinal-neuter:",
             "-x: \u043C\u0456\u043D\u0443\u0441 >>;",
@@ -93,21 +83,11 @@
             "700: \u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "800: \u0432\u0456\u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "900: \u0434\u0435\u0432\u02BC\u044F\u0442\u0441\u043E\u0442[ >>];",
-            "1000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0430[ >>];",
-            "2000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0456[ >>];",
-            "5000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447[ >>];",
-            "1000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
-            "1000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
+            "1000: <%spellout-cardinal-feminine< $(cardinal,one{\u0442\u0438\u0441\u044F\u0447\u0430}few{\u0442\u0438\u0441\u044F\u0447\u0456}other{\u0442\u0438\u0441\u044F\u0447})$[ >>];",
+            "1000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u0439\u043E\u043D}few{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u044F\u0440\u0434}few{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
+            "1000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u0439\u043E\u043D}few{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u044F\u0440\u0434}few{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
             "1000000000000000000: =#,##0=;",
             "%spellout-cardinal-feminine:",
             "-x: \u043C\u0456\u043D\u0443\u0441 >>;",
@@ -133,23 +113,13 @@
             "700: \u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "800: \u0432\u0456\u0441\u0456\u043C\u0441\u043E\u0442[ >>];",
             "900: \u0434\u0435\u0432\u02BC\u044F\u0442\u0441\u043E\u0442[ >>];",
-            "1000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0430[ >>];",
-            "2000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447\u0456[ >>];",
-            "5000: <%spellout-cardinal-feminine< \u0442\u0438\u0441\u044F\u0447[ >>];",
-            "1000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000: <%spellout-cardinal-masculine< \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
-            "1000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D[ >>];",
-            "2000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438[ >>];",
-            "5000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432[ >>];",
-            "1000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434[ >>];",
-            "2000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438[ >>];",
-            "5000000000000000: <%spellout-cardinal-masculine< \u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432[ >>];",
+            "1000: <%spellout-cardinal-feminine< $(cardinal,one{\u0442\u0438\u0441\u044F\u0447\u0430}few{\u0442\u0438\u0441\u044F\u0447\u0456}other{\u0442\u0438\u0441\u044F\u0447})$[ >>];",
+            "1000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u0439\u043E\u043D}few{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u043C\u0456\u043B\u044C\u044F\u0440\u0434}few{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
+            "1000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u0439\u043E\u043D}few{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0438}other{\u0431\u0456\u043B\u044C\u0439\u043E\u043D\u0456\u0432})$[ >>];",
+            "1000000000000000: <%spellout-cardinal-masculine< $(cardinal,one{\u0431\u0456\u043B\u044C\u044F\u0440\u0434}few{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0438}other{\u0431\u0456\u043B\u044C\u044F\u0440\u0434\u0456\u0432})$[ >>];",
             "1000000000000000000: =#,##0=;",
         }
     }
-    Version{"2.1.27.22"}
+    Version{"2.1.30.62"}
 }
diff --git a/source/data/region/af.txt b/source/data/region/af.txt
index 24d7bc2..ffe8a36 100644
--- a/source/data/region/af.txt
+++ b/source/data/region/af.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Kerseiland"}
         CY{"Siprus"}
-        CZ{"Tjeggiese Republiek"}
+        CZ{"Tjeggië"}
         DE{"Duitsland"}
         DG{"Diego Garcia"}
         DJ{"Djiboeti"}
@@ -108,7 +108,7 @@
         EU{"Europese Unie"}
         FI{"Finland"}
         FJ{"Fidji"}
-        FK{"Falklandeilande"}
+        FK{"Falklandeilande (Malvinas)"}
         FM{"Mikronesië"}
         FO{"Faroëreilande"}
         FR{"Frankryk"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshalleilande"}
-        MK{"Macedonië"}
+        MK{"Macedonië (VJRM)"}
         ML{"Mali"}
         MM{"Mianmar (Birma)"}
         MN{"Mongolië"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Kongo (DRK)"}
         CG{"Kongo (Republiek die)"}
-        CZ{"Tjeggië"}
-        FK{"Falklandeilande (Malvinas)"}
-        MK{"Macedonië (VJRM)"}
+        CZ{"Tjeggiese Republiek"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/agq.txt b/source/data/region/agq.txt
index a7ce34f..a0bf62a 100644
--- a/source/data/region/agq.txt
+++ b/source/data/region/agq.txt
@@ -227,5 +227,5 @@
         ZM{"Zambìa"}
         ZW{"Zìmbagbɛ̀"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ak.txt b/source/data/region/ak.txt
index c5a3165..563f517 100644
--- a/source/data/region/ak.txt
+++ b/source/data/region/ak.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zembabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/am.txt b/source/data/region/am.txt
index 9b241dc..a5814b8 100644
--- a/source/data/region/am.txt
+++ b/source/data/region/am.txt
@@ -89,7 +89,7 @@
         CW{"ኩራሳዎ"}
         CX{"የገና ደሴት"}
         CY{"ሳይፕረስ"}
-        CZ{"ቼክ ሪፑብሊክ"}
+        CZ{"ቼቺያ"}
         DE{"ጀርመን"}
         DG{"ዲዬጎ ጋርሺያ"}
         DJ{"ጂቡቲ"}
@@ -108,7 +108,7 @@
         EU{"የአውሮፓ ህብረት"}
         FI{"ፊንላንድ"}
         FJ{"ፊጂ"}
-        FK{"የፎክላንድ ደሴቶች"}
+        FK{"ፎክላንድ ደሴቶች (ኢስላስ ማልቪናስ)"}
         FM{"ሚክሮኔዢያ"}
         FO{"የፋሮ ደሴቶች"}
         FR{"ፈረንሳይ"}
@@ -181,7 +181,7 @@
         MF{"ሴንት ማርቲን"}
         MG{"ማዳጋስካር"}
         MH{"ማርሻል አይላንድ"}
-        MK{"መቄዶንያ"}
+        MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}
         ML{"ማሊ"}
         MM{"ማይናማር(በርማ)"}
         MN{"ሞንጎሊያ"}
@@ -302,10 +302,8 @@
         CD{"ኮንጎ (የዲሞክራቲክ ሪፐብሊክ ኮንጎ)"}
         CG{"ኮንጎ (ሪፐብሊክ)"}
         CI{"አይቮሪኮስት"}
-        CZ{"ቼቺያ"}
-        FK{"ፎክላንድ ደሴቶች (ኢስላስ ማልቪናስ)"}
-        MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}
+        CZ{"ቼክ ሪፑብሊክ"}
         TL{"ምስራቅ ቲሞር"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ar.txt b/source/data/region/ar.txt
index c270e07..5536df1 100644
--- a/source/data/region/ar.txt
+++ b/source/data/region/ar.txt
@@ -89,7 +89,7 @@
         CW{"كوراساو"}
         CX{"جزيرة الكريسماس"}
         CY{"قبرص"}
-        CZ{"جمهورية التشيك"}
+        CZ{"التشيك"}
         DE{"ألمانيا"}
         DG{"دييغو غارسيا"}
         DJ{"جيبوتي"}
@@ -108,7 +108,7 @@
         EU{"الاتحاد الأوروبي"}
         FI{"فنلندا"}
         FJ{"فيجي"}
-        FK{"جزر فوكلاند"}
+        FK{"جزر فوكلاند - جزر مالفيناس"}
         FM{"ميكرونيزيا"}
         FO{"جزر فارو"}
         FR{"فرنسا"}
@@ -181,7 +181,7 @@
         MF{"سانت مارتن"}
         MG{"مدغشقر"}
         MH{"جزر مارشال"}
-        MK{"مقدونيا"}
+        MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}
         ML{"مالي"}
         MM{"ميانمار (بورما)"}
         MN{"منغوليا"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"جمهورية الكونغو الديمقراطية"}
         CG{"جمهورية الكونغو"}
-        CZ{"التشيك"}
-        FK{"جزر فوكلاند - جزر مالفيناس"}
-        MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}
+        CZ{"جمهورية التشيك"}
         TL{"تيمور الشرقية"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
 }
diff --git a/source/data/region/ar_AE.txt b/source/data/region/ar_AE.txt
index c152f8b..7e70bf2 100644
--- a/source/data/region/ar_AE.txt
+++ b/source/data/region/ar_AE.txt
@@ -5,5 +5,5 @@
         CI{"ساحل العاج"}
         TL{"التيمور الشرقية"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ar_LY.txt b/source/data/region/ar_LY.txt
index 718d347..3d3f816 100644
--- a/source/data/region/ar_LY.txt
+++ b/source/data/region/ar_LY.txt
@@ -6,5 +6,5 @@
         MS{"مونتيسيرات"}
         UY{"أوروغواي"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ar_SA.txt b/source/data/region/ar_SA.txt
index f8cccea..8c958ea 100644
--- a/source/data/region/ar_SA.txt
+++ b/source/data/region/ar_SA.txt
@@ -8,5 +8,5 @@
         PM{"سان بيير وميكولون"}
         UY{"أوروغواي"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ars.txt b/source/data/region/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/region/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/region/as.txt b/source/data/region/as.txt
index 14fed38..b407352 100644
--- a/source/data/region/as.txt
+++ b/source/data/region/as.txt
@@ -20,5 +20,5 @@
         US{"যুক্তৰাষ্ট্ৰ"}
         ZZ{"অজ্ঞাত বা অবৈধ অঞ্চল"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/asa.txt b/source/data/region/asa.txt
index d2c8569..5414fca 100644
--- a/source/data/region/asa.txt
+++ b/source/data/region/asa.txt
@@ -225,5 +225,5 @@
         ZM{"Dhambia"}
         ZW{"Dhimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ast.txt b/source/data/region/ast.txt
index d9553f9..751496a 100644
--- a/source/data/region/ast.txt
+++ b/source/data/region/ast.txt
@@ -108,7 +108,7 @@
         EU{"Xunión Europea"}
         FI{"Finlandia"}
         FJ{"Islles Fixi"}
-        FK{"Falkland Islands"}
+        FK{"Islles Malvines (Falkland Islands)"}
         FM{"Micronesia"}
         FO{"Islles Feroe"}
         FR{"Francia"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagascar"}
         MH{"Islles Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (ARYDM)"}
         ML{"Malí"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -300,9 +300,7 @@
         CD{"Congu (RDC)"}
         CG{"Congu (República del)"}
         CI{"Costa del Marfil"}
-        FK{"Islles Malvines (Falkland Islands)"}
-        MK{"Macedonia (ARYDM)"}
         TL{"Timor Este"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/az.txt b/source/data/region/az.txt
index efef69e..38ab334 100644
--- a/source/data/region/az.txt
+++ b/source/data/region/az.txt
@@ -89,7 +89,7 @@
         CW{"Kurasao"}
         CX{"Milad adası"}
         CY{"Kipr"}
-        CZ{"Çex Respublikası"}
+        CZ{"Çexiya"}
         DE{"Almaniya"}
         DG{"Dieqo Qarsiya"}
         DJ{"Cibuti"}
@@ -108,7 +108,7 @@
         EU{"Avropa Birliyi"}
         FI{"Finlandiya"}
         FJ{"Fici"}
-        FK{"Folklend adaları"}
+        FK{"Folklend adaları (Malvin adaları)"}
         FM{"Mikroneziya"}
         FO{"Farer adaları"}
         FR{"Fransa"}
@@ -181,7 +181,7 @@
         MF{"Sent Martin"}
         MG{"Madaqaskar"}
         MH{"Marşal adaları"}
-        MK{"Makedoniya"}
+        MK{"Makedoniya (KYRM)"}
         ML{"Mali"}
         MM{"Myanma"}
         MN{"Monqolustan"}
@@ -302,10 +302,8 @@
         CD{"Konqo (KDR)"}
         CG{"Konqo (Respublika)"}
         CI{"Fil Dişi Sahili"}
-        CZ{"Çexiya"}
-        FK{"Folklend adaları (Malvin adaları)"}
-        MK{"Makedoniya (KYRM)"}
+        CZ{"Çex Respublikası"}
         TL{"Doğu Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/az_Cyrl.txt b/source/data/region/az_Cyrl.txt
index 2f8deb8..c0d3bbd 100644
--- a/source/data/region/az_Cyrl.txt
+++ b/source/data/region/az_Cyrl.txt
@@ -89,7 +89,7 @@
         CW{"Курасао"}
         CX{"Милад адасы"}
         CY{"Кипр"}
-        CZ{"Чех Республикасы"}
+        CZ{"Чехија"}
         DE{"Алманија"}
         DG{"Диего Гарсија"}
         DJ{"Ҹибути"}
@@ -107,7 +107,7 @@
         EU{"Авропа Бирлији"}
         FI{"Финландија"}
         FJ{"Фиҹи"}
-        FK{"Фолкленд адалары"}
+        FK{"Фолкленд адалары (Малвин адалары)"}
         FM{"Микронезија"}
         FO{"Фарер адалары"}
         FR{"Франса"}
@@ -180,6 +180,7 @@
         MF{"Сент Мартин"}
         MG{"Мадагаскар"}
         MH{"Маршал адалары"}
+        MK{"Македонија (КЈРМ)"}
         ML{"Мали"}
         MM{"Мјанма"}
         MN{"Монголустан"}
@@ -296,9 +297,7 @@
     Countries%variant{
         CD{"Конго (КДР)"}
         CG{"Конго (Республика)"}
-        CZ{"Чехија"}
-        FK{"Фолкленд адалары (Малвин адалары)"}
-        MK{"Македонија (КЈРМ)"}
+        CZ{"Чех Республикасы"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/az_Latn.txt b/source/data/region/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/region/az_Latn.txt
+++ b/source/data/region/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bas.txt b/source/data/region/bas.txt
index 47448fd..e0f750b 100644
--- a/source/data/region/bas.txt
+++ b/source/data/region/bas.txt
@@ -224,5 +224,5 @@
         ZM{"Zàmbià"}
         ZW{"Zìmbàbwê"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/be.txt b/source/data/region/be.txt
index 9e662d0..2b4743e 100644
--- a/source/data/region/be.txt
+++ b/source/data/region/be.txt
@@ -108,7 +108,7 @@
         EU{"Еўрапейскі саюз"}
         FI{"Фінляндыя"}
         FJ{"Фіджы"}
-        FK{"Фалклендскія астравы"}
+        FK{"Фалклендскія (Мальвінскія) астравы"}
         FM{"Мікранезія"}
         FO{"Фарэрскія астравы"}
         FR{"Францыя"}
@@ -181,7 +181,7 @@
         MF{"Сен-Мартэн"}
         MG{"Мадагаскар"}
         MH{"Маршалавы Астравы"}
-        MK{"Македонія"}
+        MK{"Македонія (БЮРМ)"}
         ML{"Малі"}
         MM{"М’янма (Бірма)"}
         MN{"Манголія"}
@@ -300,9 +300,7 @@
         CD{"Конга (ДРК)"}
         CG{"Рэспубліка Конга"}
         CI{"Бераг Слановай Косці"}
-        FK{"Фалклендскія (Мальвінскія) астравы"}
-        MK{"Македонія (БЮРМ)"}
         TL{"Усходні Тымор"}
     }
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/bem.txt b/source/data/region/bem.txt
index 3ec1152..c3ffcfe 100644
--- a/source/data/region/bem.txt
+++ b/source/data/region/bem.txt
@@ -4,5 +4,5 @@
     Countries{
         ZM{"Zambia"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bez.txt b/source/data/region/bez.txt
index a848dd2..efafd76 100644
--- a/source/data/region/bez.txt
+++ b/source/data/region/bez.txt
@@ -227,5 +227,5 @@
         ZM{"Huzambia"}
         ZW{"Huzimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bg.txt b/source/data/region/bg.txt
index ecfc5fe..8d6f310 100644
--- a/source/data/region/bg.txt
+++ b/source/data/region/bg.txt
@@ -89,7 +89,7 @@
         CW{"Кюрасао"}
         CX{"остров Рождество"}
         CY{"Кипър"}
-        CZ{"Чешка република"}
+        CZ{"Чехия"}
         DE{"Германия"}
         DG{"Диего Гарсия"}
         DJ{"Джибути"}
@@ -108,7 +108,7 @@
         EU{"Европейски съюз"}
         FI{"Финландия"}
         FJ{"Фиджи"}
-        FK{"Фолклендски острови"}
+        FK{"Фолклендски острови (Малвински острови)"}
         FM{"Микронезия"}
         FO{"Фарьорски острови"}
         FR{"Франция"}
@@ -181,7 +181,7 @@
         MF{"Сен Мартен"}
         MG{"Мадагаскар"}
         MH{"Маршалови острови"}
-        MK{"Македония"}
+        MK{"Бивша югославска република Македония"}
         ML{"Мали"}
         MM{"Мианмар (Бирма)"}
         MN{"Монголия"}
@@ -301,9 +301,7 @@
         CD{"Конго (ДРК)"}
         CG{"Конго (Република)"}
         CI{"Бряг на слоновата кост"}
-        CZ{"Чехия"}
-        FK{"Фолклендски острови (Малвински острови)"}
-        MK{"Бивша югославска република Македония"}
+        CZ{"Чешка република"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
 }
diff --git a/source/data/region/bm.txt b/source/data/region/bm.txt
index 4bdddc6..8156740 100644
--- a/source/data/region/bm.txt
+++ b/source/data/region/bm.txt
@@ -227,5 +227,5 @@
         ZM{"Zanbi"}
         ZW{"Zimbabuwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bn.txt b/source/data/region/bn.txt
index 9d82fad..c42b7ca 100644
--- a/source/data/region/bn.txt
+++ b/source/data/region/bn.txt
@@ -89,7 +89,7 @@
         CW{"কিউরাসাও"}
         CX{"ক্রিসমাস দ্বীপ"}
         CY{"সাইপ্রাস"}
-        CZ{"চেক প্রজাতন্ত্র"}
+        CZ{"চেচিয়া"}
         DE{"জার্মানি"}
         DG{"দিয়েগো গার্সিয়া"}
         DJ{"জিবুতি"}
@@ -108,7 +108,7 @@
         EU{"ইউরোপীয় ইউনিয়ন"}
         FI{"ফিনল্যান্ড"}
         FJ{"ফিজি"}
-        FK{"ফকল্যান্ড দ্বীপপুঞ্জ"}
+        FK{"ফকল্যান্ড আইল্যান্ড ( ইসল্যাস মাসভেনিস)"}
         FM{"মাইক্রোনেশিয়া"}
         FO{"ফ্যারও দ্বীপপুঞ্জ"}
         FR{"ফ্রান্স"}
@@ -181,7 +181,7 @@
         MF{"সেন্ট মার্টিন"}
         MG{"মাদাগাস্কার"}
         MH{"মার্শাল দ্বীপপুঞ্জ"}
-        MK{"ম্যাসাডোনিয়া"}
+        MK{"মেসিডোনিয়া(FYROM)"}
         ML{"মালি"}
         MM{"মায়ানমার (বার্মা)"}
         MN{"মঙ্গোলিয়া"}
@@ -302,10 +302,8 @@
         CD{"কঙ্গো(DRC)"}
         CG{"কঙ্গো (প্রজাতন্ত্র)"}
         CI{"আই ভরি"}
-        CZ{"চেচিয়া"}
-        FK{"ফকল্যান্ড আইল্যান্ড ( ইসল্যাস মাসভেনিস)"}
-        MK{"মেসিডোনিয়া(FYROM)"}
+        CZ{"চেক প্রজাতন্ত্র"}
         TL{"পূর্ব তিমুর"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/bn_IN.txt b/source/data/region/bn_IN.txt
index 906204f..bad3ae1 100644
--- a/source/data/region/bn_IN.txt
+++ b/source/data/region/bn_IN.txt
@@ -9,5 +9,5 @@
     Countries%variant{
         CD{"কঙ্গো (DRC)"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bo.txt b/source/data/region/bo.txt
index 434a106..0828b29 100644
--- a/source/data/region/bo.txt
+++ b/source/data/region/bo.txt
@@ -15,5 +15,5 @@
         US{"ཨ་མེ་རི་ཀ།"}
         ZZ{"མིའི་ཤེས་རྟོགས་མ་བྱུང་བའི་ཁོར་ཡུག"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/bo_IN.txt b/source/data/region/bo_IN.txt
index cc3f3d8..7389294 100644
--- a/source/data/region/bo_IN.txt
+++ b/source/data/region/bo_IN.txt
@@ -4,5 +4,5 @@
     Countries{
         009{"ཨོཤི་ཡཱན་ན།"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/br.txt b/source/data/region/br.txt
index 9e64e1e..310f367 100644
--- a/source/data/region/br.txt
+++ b/source/data/region/br.txt
@@ -108,7 +108,7 @@
         EU{"Unaniezh Europa"}
         FI{"Finland"}
         FJ{"Fidji"}
-        FK{"Inizi Falkland"}
+        FK{"Inizi Falkland (Inizi Maloù)"}
         FM{"Mikronezia"}
         FO{"Inizi Faero"}
         FR{"Frañs"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Inizi Marshall"}
-        MK{"Makedonia"}
+        MK{"Makedonia (RYKM)"}
         ML{"Mali"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -300,9 +300,7 @@
         CD{"Kongo (RDK)"}
         CG{"Kongo (Republik)"}
         CI{"Aod Olifant"}
-        FK{"Inizi Falkland (Inizi Maloù)"}
-        MK{"Makedonia (RYKM)"}
         TL{"Timor ar Reter"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/brx.txt b/source/data/region/brx.txt
index a8d5ee4..11ef0fb 100644
--- a/source/data/region/brx.txt
+++ b/source/data/region/brx.txt
@@ -281,5 +281,5 @@
         ZW{"ज़ीम्बाब्वे"}
         ZZ{"अज्ञात या अवैध प्रदेश"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/bs.txt b/source/data/region/bs.txt
index d1bc705..7ef81cc 100644
--- a/source/data/region/bs.txt
+++ b/source/data/region/bs.txt
@@ -89,7 +89,7 @@
         CW{"Kurasao"}
         CX{"Božićna Ostrva"}
         CY{"Kipar"}
-        CZ{"Češka Republika"}
+        CZ{"Češka"}
         DE{"Njemačka"}
         DG{"Dijego Garsija"}
         DJ{"Džibuti"}
@@ -108,7 +108,7 @@
         EU{"Evropska unija"}
         FI{"Finska"}
         FJ{"Fidži"}
-        FK{"Folklandska Ostrva"}
+        FK{"Folklandska Ostrva (Malvinska Ostrva)"}
         FM{"Mikronezija"}
         FO{"Farska Ostrva"}
         FR{"Francuska"}
@@ -181,7 +181,7 @@
         MF{"Sv. Martin"}
         MG{"Madagaskar"}
         MH{"Maršalova Ostrva"}
-        MK{"Makedonija"}
+        MK{"Makedonija (BJR)"}
         ML{"Mali"}
         MM{"Mijanmar"}
         MN{"Mongolija"}
@@ -302,9 +302,7 @@
         CD{"Kongo (DRC)"}
         CG{"Republika Kongo"}
         CI{"Obala Bjelokosti"}
-        CZ{"Češka"}
-        FK{"Folklandska Ostrva (Malvinska Ostrva)"}
-        MK{"Makedonija (BJR)"}
+        CZ{"Češka Republika"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/bs_Cyrl.txt b/source/data/region/bs_Cyrl.txt
index bc83bdd..5a09fd6 100644
--- a/source/data/region/bs_Cyrl.txt
+++ b/source/data/region/bs_Cyrl.txt
@@ -107,7 +107,7 @@
         EU{"Европска Унија"}
         FI{"Финска"}
         FJ{"Фиџи"}
-        FK{"Фокландска острва"}
+        FK{"Фокландска (Малвинска) острва"}
         FM{"Микронезија"}
         FO{"Фарска Острва"}
         FR{"Француска"}
@@ -291,7 +291,6 @@
     Countries%variant{
         CD{"Конго (ДРК)"}
         CG{"Конго (Република)"}
-        FK{"Фокландска (Малвинска) острва"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
 }
diff --git a/source/data/region/bs_Latn.txt b/source/data/region/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/region/bs_Latn.txt
+++ b/source/data/region/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ca.txt b/source/data/region/ca.txt
index e61eb0a..4a40858 100644
--- a/source/data/region/ca.txt
+++ b/source/data/region/ca.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Illa Christmas"}
         CY{"Xipre"}
-        CZ{"República Txeca"}
+        CZ{"Txèquia"}
         DE{"Alemanya"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Unió Europea"}
         FI{"Finlàndia"}
         FJ{"Fiji"}
-        FK{"Illes Malvines"}
+        FK{"Illes Malvines (Illes Falkland)"}
         FM{"Micronèsia"}
         FO{"Illes Fèroe"}
         FR{"França"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagascar"}
         MH{"Illes Marshall"}
-        MK{"Macedònia"}
+        MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}
         ML{"Mali"}
         MM{"Myanmar (Birmània)"}
         MN{"Mongòlia"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Congo (República Democràtica del Congo)"}
         CG{"Congo (República del Congo)"}
-        CZ{"Txèquia"}
-        FK{"Illes Malvines (Illes Falkland)"}
-        MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}
+        CZ{"República Txeca"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ce.txt b/source/data/region/ce.txt
index e045bea..15c7e00 100644
--- a/source/data/region/ce.txt
+++ b/source/data/region/ce.txt
@@ -108,7 +108,7 @@
         EU{"Евробарт"}
         FI{"Финлянди"}
         FJ{"Фиджи"}
-        FK{"Фолклендан гӀайренаш"}
+        FK{"Фолклендан гӀайренаш (Мальвинаш)"}
         FM{"Микронезин Федеративни штаташ"}
         FO{"Фарерийн гӀайренаш"}
         FR{"Франци"}
@@ -298,7 +298,6 @@
     }
     Countries%variant{
         CD{"Конго (ДРК)"}
-        FK{"Фолклендан гӀайренаш (Мальвинаш)"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/cgg.txt b/source/data/region/cgg.txt
index b8880c4..3f5aa35 100644
--- a/source/data/region/cgg.txt
+++ b/source/data/region/cgg.txt
@@ -225,5 +225,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/chr.txt b/source/data/region/chr.txt
index 7a25fdb..05e8979 100644
--- a/source/data/region/chr.txt
+++ b/source/data/region/chr.txt
@@ -89,7 +89,7 @@
         CW{"ᎫᎳᎨᎣ"}
         CX{"ᏓᏂᏍᏓᏲᎯᎲ ᎤᎦᏚᏛᎢ"}
         CY{"ᏌᎢᏆᏍ"}
-        CZ{"ᏤᎩ ᏍᎦᏚᎩ"}
+        CZ{"ᏤᎩᎠ"}
         DE{"ᎠᏂᏛᏥ"}
         DG{"ᏗᏰᎪ ᎦᏏᏯ"}
         DJ{"ᏥᏊᏗ"}
@@ -108,7 +108,7 @@
         EU{"ᏳᎳᏛ ᎠᏂᎤᎾᏓᏡᎬ"}
         FI{"ᏫᏂᎦᏙᎯ"}
         FJ{"ᏫᏥ"}
-        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ"}
+        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ (ᎢᏍᎳᏍ ᎹᎸᏫᎾᏍ)"}
         FM{"ᎹᎢᏉᏂᏏᏯ"}
         FO{"ᏪᎶ ᏚᎦᏚᏛᎢ"}
         FR{"ᎦᎸᏥᏱ"}
@@ -181,7 +181,7 @@
         MF{"ᎤᏓᏅᏘ ᏡᏡ"}
         MG{"ᎹᏓᎦᏍᎧᎵ"}
         MH{"ᎹᏌᎵ ᏚᎦᏚᏛᎢ"}
-        MK{"ᎹᏎᏙᏂᏯ"}
+        MK{"ᎹᏎᏙᏂᏯ (FYROM)"}
         ML{"ᎹᎵ"}
         MM{"ᎹᏯᎹᎵ"}
         MN{"ᎹᏂᎪᎵᎠ"}
@@ -299,10 +299,8 @@
     Countries%variant{
         CD{"ᎧᏂᎪ (DRC)"}
         CG{"ᎧᏂᎪ (ᏍᎦᏚᎩ)"}
-        CZ{"ᏤᎩᎠ"}
-        FK{"ᏩᎩ ᏚᎦᏚᏛᎢ (ᎢᏍᎳᏍ ᎹᎸᏫᎾᏍ)"}
-        MK{"ᎹᏎᏙᏂᏯ (FYROM)"}
+        CZ{"ᏤᎩ ᏍᎦᏚᎩ"}
         TL{"ᏗᎧᎸᎬᎢ ᏘᎼᎵ"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/ckb.txt b/source/data/region/ckb.txt
index e918132..a2f811b 100644
--- a/source/data/region/ckb.txt
+++ b/source/data/region/ckb.txt
@@ -197,5 +197,5 @@
         CD{"کۆماری دیموکراتیکی کۆنگۆ"}
         CG{"کۆماری کۆنگۆ"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/cs.txt b/source/data/region/cs.txt
index 858e72f..59bb494 100644
--- a/source/data/region/cs.txt
+++ b/source/data/region/cs.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Vánoční ostrov"}
         CY{"Kypr"}
-        CZ{"Česká republika"}
+        CZ{"Česko"}
         DE{"Německo"}
         DG{"Diego García"}
         DJ{"Džibutsko"}
@@ -108,7 +108,7 @@
         EU{"Evropská unie"}
         FI{"Finsko"}
         FJ{"Fidži"}
-        FK{"Falklandské ostrovy"}
+        FK{"Falklandské ostrovy (Malvíny)"}
         FM{"Mikronésie"}
         FO{"Faerské ostrovy"}
         FR{"Francie"}
@@ -181,7 +181,7 @@
         MF{"Svatý Martin (Francie)"}
         MG{"Madagaskar"}
         MH{"Marshallovy ostrovy"}
-        MK{"Makedonie"}
+        MK{"Makedonie (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Barma)"}
         MN{"Mongolsko"}
@@ -302,9 +302,7 @@
         CD{"Kongo (DRK)"}
         CG{"Kongo (republika)"}
         CI{"Côte d’Ivoire"}
-        CZ{"Česko"}
-        FK{"Falklandské ostrovy (Malvíny)"}
-        MK{"Makedonie (FYROM)"}
+        CZ{"Česká republika"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/cy.txt b/source/data/region/cy.txt
index a8355e0..9bb8568 100644
--- a/source/data/region/cy.txt
+++ b/source/data/region/cy.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Ynys y Nadolig"}
         CY{"Cyprus"}
-        CZ{"Gweriniaeth Tsiec"}
+        CZ{"Tsiecia"}
         DE{"Yr Almaen"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Yr Undeb Ewropeaidd"}
         FI{"Y Ffindir"}
         FJ{"Fiji"}
-        FK{"Ynysoedd y Falkland/Malvinas"}
+        FK{"Ynysoedd y Falkland (Ynysoedd y Malfinas)"}
         FM{"Micronesia"}
         FO{"Ynysoedd Ffaro"}
         FR{"Ffrainc"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagascar"}
         MH{"Ynysoedd Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (CWIM)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,10 +302,8 @@
         CD{"Y Congo (G.Dd.C.)"}
         CG{"Y Congo (Gweriniaeth)"}
         CI{"Arfordir Ifori"}
-        CZ{"Tsiecia"}
-        FK{"Ynysoedd y Falkland (Ynysoedd y Malfinas)"}
-        MK{"Macedonia (CWIM)"}
+        CZ{"Gweriniaeth Tsiec"}
         TL{"Dwyrain Timor"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/da.txt b/source/data/region/da.txt
index 2bd2a71..1bc025a 100644
--- a/source/data/region/da.txt
+++ b/source/data/region/da.txt
@@ -108,7 +108,7 @@
         EU{"Den Europæiske Union"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Falklandsøerne"}
+        FK{"Falklandsøerne (Islas Malvinas)"}
         FM{"Mikronesiens Forenede Stater"}
         FO{"Færøerne"}
         FR{"Frankrig"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Marshalløerne"}
-        MK{"Makedonien"}
+        MK{"Den tidligere jugoslaviske republik Makedonien"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongoliet"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Den Demokratiske Republik Congo (DRC)"}
         CG{"Republikken Congo"}
-        FK{"Falklandsøerne (Islas Malvinas)"}
-        MK{"Den tidligere jugoslaviske republik Makedonien"}
         TL{"Østtimor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/dav.txt b/source/data/region/dav.txt
index 32819b4..d090bf5 100644
--- a/source/data/region/dav.txt
+++ b/source/data/region/dav.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/de.txt b/source/data/region/de.txt
index 8ab024c..3c3795d 100644
--- a/source/data/region/de.txt
+++ b/source/data/region/de.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Weihnachtsinsel"}
         CY{"Zypern"}
-        CZ{"Tschechische Republik"}
+        CZ{"Tschechien"}
         DE{"Deutschland"}
         DG{"Diego Garcia"}
         DJ{"Dschibuti"}
@@ -108,7 +108,7 @@
         EU{"Europäische Union"}
         FI{"Finnland"}
         FJ{"Fidschi"}
-        FK{"Falklandinseln"}
+        FK{"Falklandinseln (Malwinen)"}
         FM{"Mikronesien"}
         FO{"Färöer"}
         FR{"Frankreich"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshallinseln"}
-        MK{"Mazedonien"}
+        MK{"Mazedonien (EJR)"}
         ML{"Mali"}
         MM{"Myanmar"}
         MN{"Mongolei"}
@@ -302,9 +302,7 @@
         CD{"Kongo (Demokratische Republik)"}
         CG{"Kongo (Republik)"}
         CI{"Elfenbeinküste"}
-        CZ{"Tschechien"}
-        FK{"Falklandinseln (Malwinen)"}
-        MK{"Mazedonien (EJR)"}
+        CZ{"Tschechische Republik"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/de_AT.txt b/source/data/region/de_AT.txt
index 41b0e11..8e4b396 100644
--- a/source/data/region/de_AT.txt
+++ b/source/data/region/de_AT.txt
@@ -4,5 +4,5 @@
     Countries{
         SJ{"Svalbard und Jan Mayen"}
     }
-    Version{"2.1.28.73"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/de_CH.txt b/source/data/region/de_CH.txt
index 6a5d1e5..05dd83a 100644
--- a/source/data/region/de_CH.txt
+++ b/source/data/region/de_CH.txt
@@ -11,5 +11,5 @@
         SB{"Salomon-Inseln"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/dje.txt b/source/data/region/dje.txt
index 5d732d2..4ecdeda 100644
--- a/source/data/region/dje.txt
+++ b/source/data/region/dje.txt
@@ -226,5 +226,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/dsb.txt b/source/data/region/dsb.txt
index 1218298..ec89a16 100644
--- a/source/data/region/dsb.txt
+++ b/source/data/region/dsb.txt
@@ -108,7 +108,7 @@
         EU{"Europska unija"}
         FI{"Finska"}
         FJ{"Fidži"}
-        FK{"Falklandske kupy"}
+        FK{"Falklandske kupy (Malwiny)"}
         FM{"Mikroneziska"}
         FO{"Färöje"}
         FR{"Francojska"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshallowe kupy"}
-        MK{"Makedońska"}
+        MK{"Makedońska (PRJ)"}
         ML{"Mali"}
         MM{"Myanmar"}
         MN{"Mongolska"}
@@ -300,9 +300,7 @@
         CD{"Kongo (Demokratiska republika)"}
         CG{"Kongo (Republika)"}
         CI{"Słonowokósćowy pśibrjog"}
-        FK{"Falklandske kupy (Malwiny)"}
-        MK{"Makedońska (PRJ)"}
         TL{"Pódzajtšny Timor"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/dua.txt b/source/data/region/dua.txt
index 2316d5a..f5a66bc 100644
--- a/source/data/region/dua.txt
+++ b/source/data/region/dua.txt
@@ -4,5 +4,5 @@
     Countries{
         CM{"Cameroun"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/dyo.txt b/source/data/region/dyo.txt
index aa56d3a..79fce76 100644
--- a/source/data/region/dyo.txt
+++ b/source/data/region/dyo.txt
@@ -111,5 +111,5 @@
         TG{"Togo"}
         TH{"Tailand"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/dz.txt b/source/data/region/dz.txt
index bafa973..27b3c3a 100644
--- a/source/data/region/dz.txt
+++ b/source/data/region/dz.txt
@@ -108,7 +108,7 @@
         EU{"ཡུ་རོབ་གཅིག་བསྡོམས་ཚོགས་པ"}
         FI{"ཕིན་ལེནཌ"}
         FJ{"ཕི་ཇི"}
-        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ"}
+        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ (ཨིས་ལཱས་མལ་བི་ཎཱས)"}
         FM{"མའི་ཀྲོ་ནི་ཤི་ཡ"}
         FO{"ཕཱའེ་རོ་གླིང་ཚོམ"}
         FR{"ཕྲཱནས"}
@@ -181,7 +181,7 @@
         MF{"སེནཊ་ མཱར་ཊིན"}
         MG{"མ་དཱ་གེས་ཀར"}
         MH{"མར་ཤེལ་གླིང་ཚོམ"}
-        MK{"མ་སེ་ཌོ་ནི་ཡ"}
+        MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}
         ML{"མཱ་ལི"}
         MM{"མི་ཡཱན་མར་ (བྷར་མ)"}
         MN{"སོག་པོ་ཡུལ"}
@@ -295,9 +295,7 @@
         CD{"ཌེ་མོ་ཀེརེ་ཊིཀ་ རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
         CG{"རི་པབ་ལིཀ་ ཨོཕ་ ཀོང་གྷོ"}
         CI{"ཨི་ཝོ་རི་ཀོསཊ"}
-        FK{"ཕལྐ་ལནྜ་གླིང་ཚོམ (ཨིས་ལཱས་མལ་བི་ཎཱས)"}
-        MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}
         TL{"ཤར་ཕྱོགས་ཏི་་མོར"}
     }
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/region/ebu.txt b/source/data/region/ebu.txt
index 9425885..4bc8123 100644
--- a/source/data/region/ebu.txt
+++ b/source/data/region/ebu.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ee.txt b/source/data/region/ee.txt
index e95f73c..9521b71 100644
--- a/source/data/region/ee.txt
+++ b/source/data/region/ee.txt
@@ -106,7 +106,7 @@
         EU{"Europa Wɔɖeka nutome"}
         FI{"Finland nutome"}
         FJ{"Fidzi nutome"}
-        FK{"Falkland ƒudomekpowo nutome"}
+        FK{"Falkland ƒudomekpowo (Islas Malvinas) nutome"}
         FM{"Mikronesia nutome"}
         FO{"Faroe ƒudomekpowo nutome"}
         FR{"France nutome"}
@@ -179,7 +179,7 @@
         MF{"Saint Martin nutome"}
         MG{"Madagaska nutome"}
         MH{"Marshal ƒudomekpowo nutome"}
-        MK{"Makedonia nutome"}
+        MK{"Makedonia (FYROM) nutome"}
         ML{"Mali nutome"}
         MM{"Myanmar (Burma) nutome"}
         MN{"Mongolia nutome"}
@@ -290,9 +290,7 @@
         CD{"Kongo demokratik repɔblik nutome"}
         CG{"Kongo repɔblik nutome"}
         CI{"Ivory Kost nutome"}
-        FK{"Falkland ƒudomekpowo (Islas Malvinas) nutome"}
-        MK{"Makedonia (FYROM) nutome"}
         TL{"Ɣedzeƒe Timɔ nutome"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/el.txt b/source/data/region/el.txt
index 0465925..c8ee67e 100644
--- a/source/data/region/el.txt
+++ b/source/data/region/el.txt
@@ -89,7 +89,7 @@
         CW{"Κουρασάο"}
         CX{"Νήσος των Χριστουγέννων"}
         CY{"Κύπρος"}
-        CZ{"Τσεχική Δημοκρατία"}
+        CZ{"Τσεχία"}
         DE{"Γερμανία"}
         DG{"Ντιέγκο Γκαρσία"}
         DJ{"Τζιμπουτί"}
@@ -108,7 +108,7 @@
         EU{"Ευρωπαϊκή Ένωση"}
         FI{"Φινλανδία"}
         FJ{"Φίτζι"}
-        FK{"Νήσοι Φόκλαντ"}
+        FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}
         FM{"Μικρονησία"}
         FO{"Νήσοι Φερόες"}
         FR{"Γαλλία"}
@@ -181,7 +181,7 @@
         MF{"Άγιος Μαρτίνος (Γαλλικό τμήμα)"}
         MG{"Μαδαγασκάρη"}
         MH{"Νήσοι Μάρσαλ"}
-        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας"}
+        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}
         ML{"Μάλι"}
         MM{"Μιανμάρ/Βιρμανία"}
         MN{"Μογγολία"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"Κονγκό"}
         CG{"Κονγκό (Δημοκρατία)"}
-        CZ{"Τσεχία"}
-        FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}
-        MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}
+        CZ{"Τσεχική Δημοκρατία"}
         TL{"Ανατολικό Τιμόρ"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/en.txt b/source/data/region/en.txt
index 50adeaf..88af57d 100644
--- a/source/data/region/en.txt
+++ b/source/data/region/en.txt
@@ -72,9 +72,9 @@
         BZ{"Belize"}
         CA{"Canada"}
         CC{"Cocos (Keeling) Islands"}
-        CD{"Congo (DRC)"}
+        CD{"Congo - Kinshasa"}
         CF{"Central African Republic"}
-        CG{"Congo (Republic)"}
+        CG{"Congo - Brazzaville"}
         CH{"Switzerland"}
         CI{"Côte d’Ivoire"}
         CK{"Cook Islands"}
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmas Island"}
         CY{"Cyprus"}
-        CZ{"Czech Republic"}
+        CZ{"Czechia"}
         DE{"Germany"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -305,10 +305,8 @@
         CD{"Congo (DRC)"}
         CG{"Congo (Republic)"}
         CI{"Ivory Coast"}
-        CZ{"Czechia"}
-        FK{"Falkland Islands (Islas Malvinas)"}
-        MK{"Macedonia (FYROM)"}
+        CZ{"Czech Republic"}
         TL{"East Timor"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/en_150.txt b/source/data/region/en_150.txt
index 4fa9550..f2fe9fe 100644
--- a/source/data/region/en_150.txt
+++ b/source/data/region/en_150.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_150{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_AG.txt b/source/data/region/en_AG.txt
index 85efa69..ed7f63d 100644
--- a/source/data/region/en_AG.txt
+++ b/source/data/region/en_AG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_AI.txt b/source/data/region/en_AI.txt
index b2ab82a..a92294b 100644
--- a/source/data/region/en_AI.txt
+++ b/source/data/region/en_AI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_AT.txt b/source/data/region/en_AT.txt
index 13def3a..f72039e 100644
--- a/source/data/region/en_AT.txt
+++ b/source/data/region/en_AT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AT{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_AU.txt b/source/data/region/en_AU.txt
index b43c224..ce5bd4b 100644
--- a/source/data/region/en_AU.txt
+++ b/source/data/region/en_AU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AU{
     %%Parent{"en_001"}
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
 }
diff --git a/source/data/region/en_BB.txt b/source/data/region/en_BB.txt
index 0cc013f..2c2c05e 100644
--- a/source/data/region/en_BB.txt
+++ b/source/data/region/en_BB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_BE.txt b/source/data/region/en_BE.txt
index 9772d91..a1471bc 100644
--- a/source/data/region/en_BE.txt
+++ b/source/data/region/en_BE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_BM.txt b/source/data/region/en_BM.txt
index 817b1d4..a07478e 100644
--- a/source/data/region/en_BM.txt
+++ b/source/data/region/en_BM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_BS.txt b/source/data/region/en_BS.txt
index de6b101..3457002 100644
--- a/source/data/region/en_BS.txt
+++ b/source/data/region/en_BS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_BW.txt b/source/data/region/en_BW.txt
index b159f1d..e9eeab0 100644
--- a/source/data/region/en_BW.txt
+++ b/source/data/region/en_BW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_BZ.txt b/source/data/region/en_BZ.txt
index 1c3fa39..8807b66 100644
--- a/source/data/region/en_BZ.txt
+++ b/source/data/region/en_BZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CA.txt b/source/data/region/en_CA.txt
index 90f6508..1932113 100644
--- a/source/data/region/en_CA.txt
+++ b/source/data/region/en_CA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CA{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CC.txt b/source/data/region/en_CC.txt
index 2859e20..67fe580 100644
--- a/source/data/region/en_CC.txt
+++ b/source/data/region/en_CC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CH.txt b/source/data/region/en_CH.txt
index 135de38..060cae5 100644
--- a/source/data/region/en_CH.txt
+++ b/source/data/region/en_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CH{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CK.txt b/source/data/region/en_CK.txt
index ea59600..8f3b9a4 100644
--- a/source/data/region/en_CK.txt
+++ b/source/data/region/en_CK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CM.txt b/source/data/region/en_CM.txt
index c21b645..e3da63d 100644
--- a/source/data/region/en_CM.txt
+++ b/source/data/region/en_CM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CX.txt b/source/data/region/en_CX.txt
index ae52aee..4e3c98e 100644
--- a/source/data/region/en_CX.txt
+++ b/source/data/region/en_CX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_CY.txt b/source/data/region/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/region/en_CY.txt
+++ b/source/data/region/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_DE.txt b/source/data/region/en_DE.txt
index 51c69cb..a8f9cde 100644
--- a/source/data/region/en_DE.txt
+++ b/source/data/region/en_DE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_DG.txt b/source/data/region/en_DG.txt
index 8b4d817..bd59dcb 100644
--- a/source/data/region/en_DG.txt
+++ b/source/data/region/en_DG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_DK.txt b/source/data/region/en_DK.txt
index 69e0cad..9b83dfa 100644
--- a/source/data/region/en_DK.txt
+++ b/source/data/region/en_DK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DK{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_DM.txt b/source/data/region/en_DM.txt
index 6811cff..067f54d 100644
--- a/source/data/region/en_DM.txt
+++ b/source/data/region/en_DM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_ER.txt b/source/data/region/en_ER.txt
index 82919fd..dac4b71 100644
--- a/source/data/region/en_ER.txt
+++ b/source/data/region/en_ER.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ER{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_FI.txt b/source/data/region/en_FI.txt
index 8906ed5..995f6cb 100644
--- a/source/data/region/en_FI.txt
+++ b/source/data/region/en_FI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_FJ.txt b/source/data/region/en_FJ.txt
index b22339a..17022d5 100644
--- a/source/data/region/en_FJ.txt
+++ b/source/data/region/en_FJ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FJ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_FK.txt b/source/data/region/en_FK.txt
index cf7774e..edbb4d8 100644
--- a/source/data/region/en_FK.txt
+++ b/source/data/region/en_FK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_FM.txt b/source/data/region/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/region/en_FM.txt
+++ b/source/data/region/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GB.txt b/source/data/region/en_GB.txt
index a60a578..fd3b6e8 100644
--- a/source/data/region/en_GB.txt
+++ b/source/data/region/en_GB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GD.txt b/source/data/region/en_GD.txt
index 69be247..a006727 100644
--- a/source/data/region/en_GD.txt
+++ b/source/data/region/en_GD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GG.txt b/source/data/region/en_GG.txt
index f898103..b91b6b8 100644
--- a/source/data/region/en_GG.txt
+++ b/source/data/region/en_GG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GH.txt b/source/data/region/en_GH.txt
index 54ca446..50a4429 100644
--- a/source/data/region/en_GH.txt
+++ b/source/data/region/en_GH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GI.txt b/source/data/region/en_GI.txt
index f74502b..e19c4d8 100644
--- a/source/data/region/en_GI.txt
+++ b/source/data/region/en_GI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GM.txt b/source/data/region/en_GM.txt
index 48193f3..9448c85 100644
--- a/source/data/region/en_GM.txt
+++ b/source/data/region/en_GM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_GY.txt b/source/data/region/en_GY.txt
index 53782ef..7c5333b 100644
--- a/source/data/region/en_GY.txt
+++ b/source/data/region/en_GY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_HK.txt b/source/data/region/en_HK.txt
index 9ad2044..d43b56c 100644
--- a/source/data/region/en_HK.txt
+++ b/source/data/region/en_HK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_IE.txt b/source/data/region/en_IE.txt
index 1cbdf50..94ab93c 100644
--- a/source/data/region/en_IE.txt
+++ b/source/data/region/en_IE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_IL.txt b/source/data/region/en_IL.txt
index 55e362c..55a5091 100644
--- a/source/data/region/en_IL.txt
+++ b/source/data/region/en_IL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_IM.txt b/source/data/region/en_IM.txt
index 50ab53d..3ccab11 100644
--- a/source/data/region/en_IM.txt
+++ b/source/data/region/en_IM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_IN.txt b/source/data/region/en_IN.txt
index 9984e67..6dd195c 100644
--- a/source/data/region/en_IN.txt
+++ b/source/data/region/en_IN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IN{
     %%Parent{"en_001"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_IO.txt b/source/data/region/en_IO.txt
index d2c4f91..3f89192 100644
--- a/source/data/region/en_IO.txt
+++ b/source/data/region/en_IO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_JE.txt b/source/data/region/en_JE.txt
index 9f48fef..66de22d 100644
--- a/source/data/region/en_JE.txt
+++ b/source/data/region/en_JE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_JM.txt b/source/data/region/en_JM.txt
index 11356e7..ad3c905 100644
--- a/source/data/region/en_JM.txt
+++ b/source/data/region/en_JM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_KE.txt b/source/data/region/en_KE.txt
index 6d669e8..0af301a 100644
--- a/source/data/region/en_KE.txt
+++ b/source/data/region/en_KE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_KI.txt b/source/data/region/en_KI.txt
index 8624154..f671853 100644
--- a/source/data/region/en_KI.txt
+++ b/source/data/region/en_KI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_KN.txt b/source/data/region/en_KN.txt
index b68c8f1..573c389 100644
--- a/source/data/region/en_KN.txt
+++ b/source/data/region/en_KN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_KY.txt b/source/data/region/en_KY.txt
index febcc6f..0d60082 100644
--- a/source/data/region/en_KY.txt
+++ b/source/data/region/en_KY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_LC.txt b/source/data/region/en_LC.txt
index b781315..7033a6a 100644
--- a/source/data/region/en_LC.txt
+++ b/source/data/region/en_LC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_LR.txt b/source/data/region/en_LR.txt
index f1a2ce0..8d60973 100644
--- a/source/data/region/en_LR.txt
+++ b/source/data/region/en_LR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_LS.txt b/source/data/region/en_LS.txt
index ce9cd01..61d557f 100644
--- a/source/data/region/en_LS.txt
+++ b/source/data/region/en_LS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MG.txt b/source/data/region/en_MG.txt
index 983530e..f5b2bfd 100644
--- a/source/data/region/en_MG.txt
+++ b/source/data/region/en_MG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MO.txt b/source/data/region/en_MO.txt
index 7995d51..7c06497 100644
--- a/source/data/region/en_MO.txt
+++ b/source/data/region/en_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MS.txt b/source/data/region/en_MS.txt
index 195a417..28ef10d 100644
--- a/source/data/region/en_MS.txt
+++ b/source/data/region/en_MS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MT.txt b/source/data/region/en_MT.txt
index 5602dfc..0d4bc8b 100644
--- a/source/data/region/en_MT.txt
+++ b/source/data/region/en_MT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MU.txt b/source/data/region/en_MU.txt
index 65efaf3..f36ff7e 100644
--- a/source/data/region/en_MU.txt
+++ b/source/data/region/en_MU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MW.txt b/source/data/region/en_MW.txt
index 8e440d4..8f5bed0 100644
--- a/source/data/region/en_MW.txt
+++ b/source/data/region/en_MW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_MY.txt b/source/data/region/en_MY.txt
index 4722712..fc723c2 100644
--- a/source/data/region/en_MY.txt
+++ b/source/data/region/en_MY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NA.txt b/source/data/region/en_NA.txt
index b7ebdac..17f6b27 100644
--- a/source/data/region/en_NA.txt
+++ b/source/data/region/en_NA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NA{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NF.txt b/source/data/region/en_NF.txt
index 1ed7316..56b1a98 100644
--- a/source/data/region/en_NF.txt
+++ b/source/data/region/en_NF.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NF{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NG.txt b/source/data/region/en_NG.txt
index a6752cd..8102534 100644
--- a/source/data/region/en_NG.txt
+++ b/source/data/region/en_NG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NL.txt b/source/data/region/en_NL.txt
index d0f6862..4566eb3 100644
--- a/source/data/region/en_NL.txt
+++ b/source/data/region/en_NL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NL{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NR.txt b/source/data/region/en_NR.txt
index 1c1d8e7..a66b87f 100644
--- a/source/data/region/en_NR.txt
+++ b/source/data/region/en_NR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NU.txt b/source/data/region/en_NU.txt
index b2fde8f..86aa256 100644
--- a/source/data/region/en_NU.txt
+++ b/source/data/region/en_NU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_NZ.txt b/source/data/region/en_NZ.txt
index e4fd440..3de4ef7 100644
--- a/source/data/region/en_NZ.txt
+++ b/source/data/region/en_NZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_PG.txt b/source/data/region/en_PG.txt
index 58ac3ca..6146600 100644
--- a/source/data/region/en_PG.txt
+++ b/source/data/region/en_PG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_PH.txt b/source/data/region/en_PH.txt
index 5264c40..04ac66a 100644
--- a/source/data/region/en_PH.txt
+++ b/source/data/region/en_PH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_PK.txt b/source/data/region/en_PK.txt
index 0df7824..3d5d2f6 100644
--- a/source/data/region/en_PK.txt
+++ b/source/data/region/en_PK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_PN.txt b/source/data/region/en_PN.txt
index cd620b3..8b83a8d 100644
--- a/source/data/region/en_PN.txt
+++ b/source/data/region/en_PN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_PW.txt b/source/data/region/en_PW.txt
index 3825c9f..43ec73a 100644
--- a/source/data/region/en_PW.txt
+++ b/source/data/region/en_PW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_RW.txt b/source/data/region/en_RW.txt
index efe55fe..1323a28 100644
--- a/source/data/region/en_RW.txt
+++ b/source/data/region/en_RW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_RW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SB.txt b/source/data/region/en_SB.txt
index a81f9eb..08287c0 100644
--- a/source/data/region/en_SB.txt
+++ b/source/data/region/en_SB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SC.txt b/source/data/region/en_SC.txt
index c907a3c..9c80308 100644
--- a/source/data/region/en_SC.txt
+++ b/source/data/region/en_SC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SD.txt b/source/data/region/en_SD.txt
index 21a7710..8fef005 100644
--- a/source/data/region/en_SD.txt
+++ b/source/data/region/en_SD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SE.txt b/source/data/region/en_SE.txt
index 452ce9c..08c2bb4 100644
--- a/source/data/region/en_SE.txt
+++ b/source/data/region/en_SE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SG.txt b/source/data/region/en_SG.txt
index cb3610b..904e860 100644
--- a/source/data/region/en_SG.txt
+++ b/source/data/region/en_SG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SG{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SH.txt b/source/data/region/en_SH.txt
index d6f5383..dbaac39 100644
--- a/source/data/region/en_SH.txt
+++ b/source/data/region/en_SH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SI.txt b/source/data/region/en_SI.txt
index 1b945e7..093b0e2 100644
--- a/source/data/region/en_SI.txt
+++ b/source/data/region/en_SI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SL.txt b/source/data/region/en_SL.txt
index 68833a0..f3ff3f7 100644
--- a/source/data/region/en_SL.txt
+++ b/source/data/region/en_SL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SS.txt b/source/data/region/en_SS.txt
index 1e11895..1b9c52e 100644
--- a/source/data/region/en_SS.txt
+++ b/source/data/region/en_SS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SX.txt b/source/data/region/en_SX.txt
index 0349554..c619269 100644
--- a/source/data/region/en_SX.txt
+++ b/source/data/region/en_SX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_SZ.txt b/source/data/region/en_SZ.txt
index 02bab1c..734e744 100644
--- a/source/data/region/en_SZ.txt
+++ b/source/data/region/en_SZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TC.txt b/source/data/region/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/region/en_TC.txt
+++ b/source/data/region/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TK.txt b/source/data/region/en_TK.txt
index 0d759ac..380b9d9 100644
--- a/source/data/region/en_TK.txt
+++ b/source/data/region/en_TK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TO.txt b/source/data/region/en_TO.txt
index bb3bbcd..426b5d6 100644
--- a/source/data/region/en_TO.txt
+++ b/source/data/region/en_TO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TT.txt b/source/data/region/en_TT.txt
index fdc2c64..4d6d39d 100644
--- a/source/data/region/en_TT.txt
+++ b/source/data/region/en_TT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TV.txt b/source/data/region/en_TV.txt
index c473254..debe076 100644
--- a/source/data/region/en_TV.txt
+++ b/source/data/region/en_TV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TV{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_TZ.txt b/source/data/region/en_TZ.txt
index 72b6a08..25e40bf 100644
--- a/source/data/region/en_TZ.txt
+++ b/source/data/region/en_TZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_UG.txt b/source/data/region/en_UG.txt
index 4fa5cfd..d28e107 100644
--- a/source/data/region/en_UG.txt
+++ b/source/data/region/en_UG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_VC.txt b/source/data/region/en_VC.txt
index c6d63b4..dc17ae0 100644
--- a/source/data/region/en_VC.txt
+++ b/source/data/region/en_VC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_VG.txt b/source/data/region/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/region/en_VG.txt
+++ b/source/data/region/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_VU.txt b/source/data/region/en_VU.txt
index 2f6cb29..433c4c9 100644
--- a/source/data/region/en_VU.txt
+++ b/source/data/region/en_VU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_WS.txt b/source/data/region/en_WS.txt
index 982e5aa..0697889 100644
--- a/source/data/region/en_WS.txt
+++ b/source/data/region/en_WS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_WS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_ZA.txt b/source/data/region/en_ZA.txt
index f4e3d8d..a34a7a2 100644
--- a/source/data/region/en_ZA.txt
+++ b/source/data/region/en_ZA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZA{
     %%Parent{"en_001"}
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_ZM.txt b/source/data/region/en_ZM.txt
index a012334..3e9be74 100644
--- a/source/data/region/en_ZM.txt
+++ b/source/data/region/en_ZM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/en_ZW.txt b/source/data/region/en_ZW.txt
index 4f5e7fa..5fb189a 100644
--- a/source/data/region/en_ZW.txt
+++ b/source/data/region/en_ZW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/eo.txt b/source/data/region/eo.txt
index 6d7b582..dd910cf 100644
--- a/source/data/region/eo.txt
+++ b/source/data/region/eo.txt
@@ -226,5 +226,5 @@
         ZM{"Zambio"}
         ZW{"Zimbabvo"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es.txt b/source/data/region/es.txt
index 64efb6b..e5ff679 100644
--- a/source/data/region/es.txt
+++ b/source/data/region/es.txt
@@ -89,7 +89,7 @@
         CW{"Curazao"}
         CX{"Isla de Navidad"}
         CY{"Chipre"}
-        CZ{"República Checa"}
+        CZ{"Chequia"}
         DE{"Alemania"}
         DG{"Diego García"}
         DJ{"Yibuti"}
@@ -108,7 +108,7 @@
         EU{"Unión Europea"}
         FI{"Finlandia"}
         FJ{"Fiyi"}
-        FK{"Islas Malvinas"}
+        FK{"Islas Malvinas (Islas Falkland)"}
         FM{"Micronesia"}
         FO{"Islas Feroe"}
         FR{"Francia"}
@@ -181,7 +181,7 @@
         MF{"San Martín"}
         MG{"Madagascar"}
         MH{"Islas Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (ERYM)"}
         ML{"Mali"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -300,10 +300,8 @@
         CD{"Congo (República Democrática del Congo)"}
         CG{"Congo (República)"}
         CI{"Costa de Marfil"}
-        CZ{"Chequia"}
-        FK{"Islas Malvinas (Islas Falkland)"}
-        MK{"Macedonia (ERYM)"}
+        CZ{"República Checa"}
         TL{"Timor Oriental"}
     }
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/es_419.txt b/source/data/region/es_419.txt
index e0161fe..aabcbf6 100644
--- a/source/data/region/es_419.txt
+++ b/source/data/region/es_419.txt
@@ -14,5 +14,5 @@
         GB{"R. U."}
         US{"EE.UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_AR.txt b/source/data/region/es_AR.txt
index 28077f8..179d4e8 100644
--- a/source/data/region/es_AR.txt
+++ b/source/data/region/es_AR.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_BO.txt b/source/data/region/es_BO.txt
index 9ee89b0..f6e2876 100644
--- a/source/data/region/es_BO.txt
+++ b/source/data/region/es_BO.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_BR.txt b/source/data/region/es_BR.txt
index 14d1f67..ee8a444 100644
--- a/source/data/region/es_BR.txt
+++ b/source/data/region/es_BR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BR{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_BZ.txt b/source/data/region/es_BZ.txt
new file mode 100644
index 0000000..7734598
--- /dev/null
+++ b/source/data/region/es_BZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/region/es_CL.txt b/source/data/region/es_CL.txt
index f124d2d..747d89e 100644
--- a/source/data/region/es_CL.txt
+++ b/source/data/region/es_CL.txt
@@ -13,5 +13,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_CO.txt b/source/data/region/es_CO.txt
index 1938162..002d099 100644
--- a/source/data/region/es_CO.txt
+++ b/source/data/region/es_CO.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_CR.txt b/source/data/region/es_CR.txt
index 80ebc03..a004b59 100644
--- a/source/data/region/es_CR.txt
+++ b/source/data/region/es_CR.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_CU.txt b/source/data/region/es_CU.txt
index dbd4f56..f75d29f 100644
--- a/source/data/region/es_CU.txt
+++ b/source/data/region/es_CU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CU{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_DO.txt b/source/data/region/es_DO.txt
index bd6c4af..87dffb4 100644
--- a/source/data/region/es_DO.txt
+++ b/source/data/region/es_DO.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_EC.txt b/source/data/region/es_EC.txt
index 59fa3ec..e539383 100644
--- a/source/data/region/es_EC.txt
+++ b/source/data/region/es_EC.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_GT.txt b/source/data/region/es_GT.txt
index aadf501..2607761 100644
--- a/source/data/region/es_GT.txt
+++ b/source/data/region/es_GT.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_HN.txt b/source/data/region/es_HN.txt
index 042a967..a6e1354 100644
--- a/source/data/region/es_HN.txt
+++ b/source/data/region/es_HN.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_MX.txt b/source/data/region/es_MX.txt
index 7683bb6..8755f16 100644
--- a/source/data/region/es_MX.txt
+++ b/source/data/region/es_MX.txt
@@ -26,5 +26,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_NI.txt b/source/data/region/es_NI.txt
index b8e8f16..bfc7809 100644
--- a/source/data/region/es_NI.txt
+++ b/source/data/region/es_NI.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_PA.txt b/source/data/region/es_PA.txt
index 9f697a1..85caa43 100644
--- a/source/data/region/es_PA.txt
+++ b/source/data/region/es_PA.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_PE.txt b/source/data/region/es_PE.txt
index b8a44da..9471393 100644
--- a/source/data/region/es_PE.txt
+++ b/source/data/region/es_PE.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_PR.txt b/source/data/region/es_PR.txt
index 494279c..d0b3022 100644
--- a/source/data/region/es_PR.txt
+++ b/source/data/region/es_PR.txt
@@ -8,5 +8,5 @@
     Countries%short{
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_PY.txt b/source/data/region/es_PY.txt
index ffc18a6..4239c4c 100644
--- a/source/data/region/es_PY.txt
+++ b/source/data/region/es_PY.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_SV.txt b/source/data/region/es_SV.txt
index ae2f72f..94354ba 100644
--- a/source/data/region/es_SV.txt
+++ b/source/data/region/es_SV.txt
@@ -8,5 +8,5 @@
     Countries%short{
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_US.txt b/source/data/region/es_US.txt
index 4a14cc7..e2eafd1 100644
--- a/source/data/region/es_US.txt
+++ b/source/data/region/es_US.txt
@@ -10,8 +10,7 @@
     }
     Countries%variant{
         CI{"CI"}
-        CZ{"CZ"}
         TL{"TL"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/es_UY.txt b/source/data/region/es_UY.txt
index 363817b..1f9edc6 100644
--- a/source/data/region/es_UY.txt
+++ b/source/data/region/es_UY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_UY{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/es_VE.txt b/source/data/region/es_VE.txt
index 0b87cc9..2cbc38b 100644
--- a/source/data/region/es_VE.txt
+++ b/source/data/region/es_VE.txt
@@ -12,5 +12,5 @@
         GB{"RU"}
         US{"EE. UU."}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/et.txt b/source/data/region/et.txt
index 2353bff..9587f74 100644
--- a/source/data/region/et.txt
+++ b/source/data/region/et.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Jõulusaar"}
         CY{"Küpros"}
-        CZ{"Tšehhi"}
+        CZ{"Tšehhia"}
         DE{"Saksamaa"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Euroopa Liit"}
         FI{"Soome"}
         FJ{"Fidži"}
-        FK{"Falklandi saared"}
+        FK{"Malviini saared"}
         FM{"Mikroneesia"}
         FO{"Fääri saared"}
         FR{"Prantsusmaa"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Marshalli Saared"}
-        MK{"Makedoonia"}
+        MK{"Makedoonia Vabariik"}
         ML{"Mali"}
         MM{"Myanmar (Birma)"}
         MN{"Mongoolia"}
@@ -302,10 +302,8 @@
         CD{"Kongo-Kinshasa"}
         CG{"Kongo-Brazzaville"}
         CI{"Elevandiluurannik"}
-        CZ{"Tšehhia"}
-        FK{"Malviini saared"}
-        MK{"Makedoonia Vabariik"}
+        CZ{"Tšehhi"}
         TL{"Timor-Leste"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/eu.txt b/source/data/region/eu.txt
index 5ed36fc..541a26e 100644
--- a/source/data/region/eu.txt
+++ b/source/data/region/eu.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmas uhartea"}
         CY{"Zipre"}
-        CZ{"Txekiar Errepublika"}
+        CZ{"Txekia"}
         DE{"Alemania"}
         DG{"Diego Garcia"}
         DJ{"Djibuti"}
@@ -108,7 +108,7 @@
         EU{"Europar Batasuna"}
         FI{"Finlandia"}
         FJ{"Fiji"}
-        FK{"Malvinak"}
+        FK{"Falkland uharteak (Malvina uharteak)"}
         FM{"Mikronesia"}
         FO{"Faroe uharteak"}
         FR{"Frantzia"}
@@ -181,7 +181,7 @@
         MF{"San Martin"}
         MG{"Madagaskar"}
         MH{"Marshall uharteak"}
-        MK{"Mazedonia"}
+        MK{"Mazedonia (Mazedoniako Yugoslaviar Errepublika ohia)"}
         ML{"Mali"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -299,10 +299,8 @@
     Countries%variant{
         CD{"Kongo (KED)"}
         CG{"Kongo (errepublika)"}
-        CZ{"Txekia"}
-        FK{"Falkland uharteak (Malvina uharteak)"}
-        MK{"Mazedonia (Mazedoniako Yugoslaviar Errepublika ohia)"}
+        CZ{"Txekiar Errepublika"}
         TL{"Timor ekialdea"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ewo.txt b/source/data/region/ewo.txt
index 7938054..e420d4c 100644
--- a/source/data/region/ewo.txt
+++ b/source/data/region/ewo.txt
@@ -227,5 +227,5 @@
         ZM{"Zambí"}
         ZW{"Zimbabwé"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/fa.txt b/source/data/region/fa.txt
index 7eb0669..c353f9a 100644
--- a/source/data/region/fa.txt
+++ b/source/data/region/fa.txt
@@ -108,7 +108,7 @@
         EU{"اتحادیهٔ اروپا"}
         FI{"فنلاند"}
         FJ{"فیجی"}
-        FK{"جزایر فالکلند"}
+        FK{"جزایر فالکلند (ایسلاس مالویناس)"}
         FM{"میکرونزی"}
         FO{"جزایر فارو"}
         FR{"فرانسه"}
@@ -181,7 +181,7 @@
         MF{"سنت مارتین"}
         MG{"ماداگاسکار"}
         MH{"جزایر مارشال"}
-        MK{"مقدونیه"}
+        MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}
         ML{"مالی"}
         MM{"میانمار (برمه)"}
         MN{"مغولستان"}
@@ -302,10 +302,7 @@
     Countries%variant{
         CD{"کنگو (جمهوری دموکراتیک)"}
         CG{"کنگو (جمهوری)"}
-        CZ{"CZ"}
-        FK{"جزایر فالکلند (ایسلاس مالویناس)"}
-        MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}
         TL{"تیمور شرقی"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/fa_AF.txt b/source/data/region/fa_AF.txt
index ee09d10..22c7ff0 100644
--- a/source/data/region/fa_AF.txt
+++ b/source/data/region/fa_AF.txt
@@ -95,5 +95,5 @@
         XK{"کوسوا"}
         ZW{"زیمبابوی"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ff.txt b/source/data/region/ff.txt
index b523541..94a2553 100644
--- a/source/data/region/ff.txt
+++ b/source/data/region/ff.txt
@@ -227,5 +227,5 @@
         ZM{"Sammbi"}
         ZW{"Simbaabuwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/fi.txt b/source/data/region/fi.txt
index ac30822..01c945b 100644
--- a/source/data/region/fi.txt
+++ b/source/data/region/fi.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Joulusaari"}
         CY{"Kypros"}
-        CZ{"Tšekki"}
+        CZ{"Tšekinmaa"}
         DE{"Saksa"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Euroopan unioni"}
         FI{"Suomi"}
         FJ{"Fidži"}
-        FK{"Falklandinsaaret"}
+        FK{"Falklandinsaaret (Malvinassaaret)"}
         FM{"Mikronesian liittovaltio"}
         FO{"Färsaaret"}
         FR{"Ranska"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Marshallinsaaret"}
-        MK{"Makedonia"}
+        MK{"EJT Makedonia"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,10 +302,8 @@
         CD{"Kongo-Kinshasa"}
         CG{"Kongo-Brazzaville"}
         CI{"Côte d’Ivoire"}
-        CZ{"Tšekinmaa"}
-        FK{"Falklandinsaaret (Malvinassaaret)"}
-        MK{"EJT Makedonia"}
+        CZ{"Tšekki"}
         TL{"Timor-Leste"}
     }
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/fil.txt b/source/data/region/fil.txt
index 6f6b6c2..9211bbb 100644
--- a/source/data/region/fil.txt
+++ b/source/data/region/fil.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmas Island"}
         CY{"Cyprus"}
-        CZ{"Czech Republic"}
+        CZ{"Czechia"}
         DE{"Germany"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"European Union"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Falkland Islands"}
+        FK{"Falkland Islands (Islas Malvinas)"}
         FM{"Micronesia"}
         FO{"Faroe Islands"}
         FR{"France"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagascar"}
         MH{"Marshall Islands"}
-        MK{"Macedonia"}
+        MK{"Macedonia (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,10 +302,8 @@
         CD{"Congo (DRC)"}
         CG{"Congo (Republika)"}
         CI{"Ivory Coast"}
-        CZ{"Czechia"}
-        FK{"Falkland Islands (Islas Malvinas)"}
-        MK{"Macedonia (FYROM)"}
+        CZ{"Czech Republic"}
         TL{"East Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/fo.txt b/source/data/region/fo.txt
index 5600313..bd90946 100644
--- a/source/data/region/fo.txt
+++ b/source/data/region/fo.txt
@@ -181,7 +181,7 @@
         MF{"St-Martin"}
         MG{"Madagaskar"}
         MH{"Marshalloyggjar"}
-        MK{"Makedónia"}
+        MK{"Makedónia (FJM)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -296,8 +296,5 @@
         GB{"UK"}
         US{"USA"}
     }
-    Countries%variant{
-        MK{"Makedónia (FJM)"}
-    }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/fr.txt b/source/data/region/fr.txt
index 76d0703..3a21d3a 100644
--- a/source/data/region/fr.txt
+++ b/source/data/region/fr.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Île Christmas"}
         CY{"Chypre"}
-        CZ{"République tchèque"}
+        CZ{"Tchéquie"}
         DE{"Allemagne"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Union européenne"}
         FI{"Finlande"}
         FJ{"Fidji"}
-        FK{"Îles Malouines"}
+        FK{"Îles Falkland"}
         FM{"États fédérés de Micronésie"}
         FO{"Îles Féroé"}
         FR{"France"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagascar"}
         MH{"Îles Marshall"}
-        MK{"Macédoine"}
+        MK{"Macédoine (ARYM)"}
         ML{"Mali"}
         MM{"Myanmar (Birmanie)"}
         MN{"Mongolie"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"Congo (RDC)"}
         CG{"République du Congo"}
-        CZ{"Tchéquie"}
-        FK{"Îles Falkland"}
-        MK{"Macédoine (ARYM)"}
+        CZ{"République tchèque"}
         TL{"Timor-Oriental"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/fr_BE.txt b/source/data/region/fr_BE.txt
index db500c7..8da4e47 100644
--- a/source/data/region/fr_BE.txt
+++ b/source/data/region/fr_BE.txt
@@ -5,5 +5,5 @@
         BN{"Brunei"}
         GS{"Îles Géorgie du Sud et Sandwich du Sud"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/fr_CA.txt b/source/data/region/fr_CA.txt
index b2b4f0d..16042a5 100644
--- a/source/data/region/fr_CA.txt
+++ b/source/data/region/fr_CA.txt
@@ -11,7 +11,7 @@
         CC{"îles Cocos (Keeling)"}
         CK{"îles Cook"}
         CX{"île Christmas"}
-        FK{"îles Malouines"}
+        FK{"îles Falkland (Malouines)"}
         FM{"Micronésie"}
         FO{"îles Féroé"}
         HM{"îles Heard et McDonald"}
@@ -35,8 +35,7 @@
     }
     Countries%variant{
         CI{"Côte d’Ivoire"}
-        FK{"îles Falkland (Malouines)"}
         TL{"Timor oriental"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/fur.txt b/source/data/region/fur.txt
index 6e24b57..72e6037 100644
--- a/source/data/region/fur.txt
+++ b/source/data/region/fur.txt
@@ -105,7 +105,7 @@
         EU{"Union europeane"}
         FI{"Finlandie"}
         FJ{"Fizi"}
-        FK{"Isulis Falkland"}
+        FK{"Isulis Falkland (Isulis Malvinas)"}
         FM{"Micronesie"}
         FO{"Isulis Faroe"}
         FR{"France"}
@@ -178,7 +178,7 @@
         MF{"Sant Martin"}
         MG{"Madagascar"}
         MH{"Isulis Marshall"}
-        MK{"Macedonie"}
+        MK{"Macedonie (FYROM)"}
         ML{"Mali"}
         MM{"Birmanie"}
         MN{"Mongolie"}
@@ -289,8 +289,6 @@
     Countries%variant{
         CD{"Congo (RDC)"}
         CG{"Congo (Republiche)"}
-        FK{"Isulis Falkland (Isulis Malvinas)"}
-        MK{"Macedonie (FYROM)"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/fy.txt b/source/data/region/fy.txt
index b3c7893..7802994 100644
--- a/source/data/region/fy.txt
+++ b/source/data/region/fy.txt
@@ -108,7 +108,7 @@
         EU{"Europeeske Unie"}
         FI{"Finlân"}
         FJ{"Fiji"}
-        FK{"Falklâneilannen"}
+        FK{"Falklâneilannen (Islas Malvinas)"}
         FM{"Micronesië"}
         FO{"Faeröer"}
         FR{"Frankrijk"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madeiaskar"}
         MH{"Marshalleilannen"}
-        MK{"Macedonië"}
+        MK{"Macedonië (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Birma)"}
         MN{"Mongolië"}
@@ -299,8 +299,6 @@
     Countries%variant{
         CD{"Congo (DRC)"}
         CG{"Congo (Republyk)"}
-        FK{"Falklâneilannen (Islas Malvinas)"}
-        MK{"Macedonië (FYROM)"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/ga.txt b/source/data/region/ga.txt
index a94b1b1..59a24c7 100644
--- a/source/data/region/ga.txt
+++ b/source/data/region/ga.txt
@@ -108,7 +108,7 @@
         EU{"An tAontas Eorpach"}
         FI{"An Fhionlainn"}
         FJ{"Fidsí"}
-        FK{"Oileáin Fháclainne"}
+        FK{"Oileáin Fháclainne (Islas Malvinas)"}
         FM{"An Mhicrinéis"}
         FO{"Oileáin Fharó"}
         FR{"An Fhrainc"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagascar"}
         MH{"Oileáin Marshall"}
-        MK{"An Mhacadóin"}
+        MK{"An Mhacadóin (PIIM)"}
         ML{"Mailí"}
         MM{"Maenmar (Burma)"}
         MN{"An Mhongóil"}
@@ -301,8 +301,6 @@
     Countries%variant{
         CD{"An Congó (PDC)"}
         CG{"An Congó (Poblacht)"}
-        FK{"Oileáin Fháclainne (Islas Malvinas)"}
-        MK{"An Mhacadóin (PIIM)"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/gd.txt b/source/data/region/gd.txt
index f1c53f2..f323222 100644
--- a/source/data/region/gd.txt
+++ b/source/data/region/gd.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Eilean na Nollaig"}
         CY{"Cìopras"}
-        CZ{"Poblachd na Seice"}
+        CZ{"An t-Seic"}
         DE{"A’ Ghearmailt"}
         DG{"Diego Garcia"}
         DJ{"Diobùtaidh"}
@@ -108,7 +108,7 @@
         EU{"An t-Aonadh Eòrpach"}
         FI{"An Fhionnlann"}
         FJ{"Fìdi"}
-        FK{"Na h-Eileanan Fàclannach"}
+        FK{"Na h-Eileanan Fàclannach (Islas Malvinas)"}
         FM{"Na Meanbh-eileanan"}
         FO{"Na h-Eileanan Fàro"}
         FR{"An Fhraing"}
@@ -181,7 +181,7 @@
         MF{"Naomh Màrtainn"}
         MG{"Madagasgar"}
         MH{"Eileanan Mharshall"}
-        MK{"A’ Mhasadon"}
+        MK{"A’ Mhasadon (FYROM)"}
         ML{"Màili"}
         MM{"Miànmar"}
         MN{"Dùthaich nam Mongol"}
@@ -300,10 +300,8 @@
         CD{"A’ Chongo (PDC)"}
         CG{"A’ Chongo"}
         CI{"An Costa Ìbhri"}
-        CZ{"An t-Seic"}
-        FK{"Na h-Eileanan Fàclannach (Islas Malvinas)"}
-        MK{"A’ Mhasadon (FYROM)"}
+        CZ{"Poblachd na Seice"}
         TL{"Tìomor an Ear"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/gl.txt b/source/data/region/gl.txt
index 6a74ebb..902e176 100644
--- a/source/data/region/gl.txt
+++ b/source/data/region/gl.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Illa de Nadal"}
         CY{"Chipre"}
-        CZ{"República Checa"}
+        CZ{"Chequia"}
         DE{"Alemaña"}
         DG{"Diego García"}
         DJ{"Djibuti"}
@@ -108,7 +108,7 @@
         EU{"Unión Europea"}
         FI{"Finlandia"}
         FJ{"Fidxi"}
-        FK{"Illas Malvinas"}
+        FK{"Illas Malvinas (Falkland)"}
         FM{"Micronesia"}
         FO{"Illas Feroe"}
         FR{"Francia"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagascar"}
         MH{"Illas Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (ARIM)"}
         ML{"Malí"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Congo (RDC)"}
         CG{"Congo (RC)"}
-        CZ{"Chequia"}
-        FK{"Illas Malvinas (Falkland)"}
-        MK{"Macedonia (ARIM)"}
+        CZ{"República Checa"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/gsw.txt b/source/data/region/gsw.txt
index 2d370bf..e5ddf99 100644
--- a/source/data/region/gsw.txt
+++ b/source/data/region/gsw.txt
@@ -174,7 +174,7 @@
         MF{"St. Martin"}
         MG{"Madagaschkar"}
         MH{"Marshallinsle"}
-        MK{"Mazedoonie"}
+        MK{"Mazedoonie (EJRM)"}
         ML{"Maali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolei"}
@@ -281,8 +281,5 @@
         ZW{"Simbabwe"}
         ZZ{"Unbekannti oder ungültigi Regioon"}
     }
-    Countries%variant{
-        MK{"Mazedoonie (EJRM)"}
-    }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/gu.txt b/source/data/region/gu.txt
index 23f88e5..3e819af 100644
--- a/source/data/region/gu.txt
+++ b/source/data/region/gu.txt
@@ -89,7 +89,7 @@
         CW{"ક્યુરાસાઓ"}
         CX{"ક્રિસમસ આઇલેન્ડ"}
         CY{"સાયપ્રસ"}
-        CZ{"ચેક રીપબ્લિક"}
+        CZ{"ચેકીયા"}
         DE{"જર્મની"}
         DG{"ડિએગો ગારસિઆ"}
         DJ{"જીબૌટી"}
@@ -108,7 +108,7 @@
         EU{"યુરોપિયન સંઘ"}
         FI{"ફિનલેન્ડ"}
         FJ{"ફીજી"}
-        FK{"ફૉકલેન્ડ ટાપુઓ"}
+        FK{"ફૉકલેન્ડ ટાપુઓ (ઇસ્લાસ માલવિનસ)"}
         FM{"માઇક્રોનેશિયા"}
         FO{"ફૅરો ટાપુઓ"}
         FR{"ફ્રાંસ"}
@@ -181,7 +181,7 @@
         MF{"સેન્ટ માર્ટિન"}
         MG{"મેડાગાસ્કર"}
         MH{"માર્શલ આઇલેન્ડ્સ"}
-        MK{"મેસેડોનિયા"}
+        MK{"મેસેડોનિયા (FYROM)"}
         ML{"માલી"}
         MM{"મ્યાંમાર (બર્મા)"}
         MN{"મંગોલિયા"}
@@ -302,10 +302,8 @@
         CD{"કોંગો (ડીઆરસી)"}
         CG{"કોંગો (પ્રજાસત્તાક)"}
         CI{"આઇવરી કોસ્ટ"}
-        CZ{"ચેકીયા"}
-        FK{"ફૉકલેન્ડ ટાપુઓ (ઇસ્લાસ માલવિનસ)"}
-        MK{"મેસેડોનિયા (FYROM)"}
+        CZ{"ચેક રીપબ્લિક"}
         TL{"પૂર્વ તિમોર"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/guz.txt b/source/data/region/guz.txt
index 0379f5e..69a6f1d 100644
--- a/source/data/region/guz.txt
+++ b/source/data/region/guz.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/gv.txt b/source/data/region/gv.txt
index 6e2fb43..7615689 100644
--- a/source/data/region/gv.txt
+++ b/source/data/region/gv.txt
@@ -5,5 +5,5 @@
         GB{"Rywvaneth Unys"}
         IM{"Ellan Vannin"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/region/ha.txt b/source/data/region/ha.txt
index b7f367f..1fcdfc5 100644
--- a/source/data/region/ha.txt
+++ b/source/data/region/ha.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiya"}
         ZW{"Zimbabuwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/haw.txt b/source/data/region/haw.txt
index 47483a0..084faf3 100644
--- a/source/data/region/haw.txt
+++ b/source/data/region/haw.txt
@@ -23,5 +23,5 @@
         RU{"Lūkia"}
         US{"ʻAmelika Hui Pū ʻIa"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/he.txt b/source/data/region/he.txt
index b012a96..31e5a07 100644
--- a/source/data/region/he.txt
+++ b/source/data/region/he.txt
@@ -89,7 +89,7 @@
         CW{"קוראסאו"}
         CX{"האי כריסטמס"}
         CY{"קפריסין"}
-        CZ{"הרפובליקה הצ׳כית"}
+        CZ{"צ׳כיה"}
         DE{"גרמניה"}
         DG{"דייגו גרסיה"}
         DJ{"ג׳יבוטי"}
@@ -108,7 +108,7 @@
         EU{"האיחוד האירופי"}
         FI{"פינלנד"}
         FJ{"פיג׳י"}
-        FK{"איי פוקלנד"}
+        FK{"איי פוקלנד (איי מלווינס)"}
         FM{"מיקרונזיה"}
         FO{"איי פארו"}
         FR{"צרפת"}
@@ -181,7 +181,7 @@
         MF{"סן מרטן"}
         MG{"מדגסקר"}
         MH{"איי מרשל"}
-        MK{"מקדוניה"}
+        MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר מקדוניה)"}
         ML{"מאלי"}
         MM{"מיאנמר (בורמה)"}
         MN{"מונגוליה"}
@@ -300,10 +300,8 @@
     Countries%variant{
         CD{"קונגו (הרפובליקה הדמוקרטית של קונגו)"}
         CG{"קונגו (רפובליקה)"}
-        CZ{"צ׳כיה"}
-        FK{"איי פוקלנד (איי מלווינס)"}
-        MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר מקדוניה)"}
+        CZ{"הרפובליקה הצ׳כית"}
         TL{"מזרח טימור"}
     }
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/hi.txt b/source/data/region/hi.txt
index 34ff7a5..e406a66 100644
--- a/source/data/region/hi.txt
+++ b/source/data/region/hi.txt
@@ -89,7 +89,7 @@
         CW{"क्यूरासाओ"}
         CX{"क्रिसमस द्वीप"}
         CY{"साइप्रस"}
-        CZ{"चेक गणराज्य"}
+        CZ{"चेकिया"}
         DE{"जर्मनी"}
         DG{"डिएगो गार्सिया"}
         DJ{"जिबूती"}
@@ -108,7 +108,7 @@
         EU{"यूरोपीय संघ"}
         FI{"फ़िनलैंड"}
         FJ{"फ़िजी"}
-        FK{"फ़ॉकलैंड द्वीपसमूह"}
+        FK{"फ़ॉकलैंड द्वीपसमूह (इज़्लास माल्विनास)"}
         FM{"माइक्रोनेशिया"}
         FO{"फ़ेरो द्वीपसमूह"}
         FR{"फ़्रांस"}
@@ -181,7 +181,7 @@
         MF{"सेंट मार्टिन"}
         MG{"मेडागास्कर"}
         MH{"मार्शल द्वीपसमूह"}
-        MK{"मैसिडोनिया"}
+        MK{"मैसिडोनिया (FYROM)"}
         ML{"माली"}
         MM{"म्यांमार (बर्मा)"}
         MN{"मंगोलिया"}
@@ -302,10 +302,8 @@
         CD{"कांगो (डीआरसी)"}
         CG{"कांगो (गणराज्य)"}
         CI{"आइवरी कोस्ट"}
-        CZ{"चेकिया"}
-        FK{"फ़ॉकलैंड द्वीपसमूह (इज़्लास माल्विनास)"}
-        MK{"मैसिडोनिया (FYROM)"}
+        CZ{"चेक गणराज्य"}
         TL{"पूर्वी तिमोर"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/hr.txt b/source/data/region/hr.txt
index 46e3b29..edf22be 100644
--- a/source/data/region/hr.txt
+++ b/source/data/region/hr.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Božićni otok"}
         CY{"Cipar"}
-        CZ{"Češka Republika"}
+        CZ{"Češka"}
         DE{"Njemačka"}
         DG{"Diego Garcia"}
         DJ{"Džibuti"}
@@ -108,7 +108,7 @@
         EU{"Europska unija"}
         FI{"Finska"}
         FJ{"Fidži"}
-        FK{"Falklandski otoci"}
+        FK{"Falklandski otoci (Malvini)"}
         FM{"Mikronezija"}
         FO{"Farski otoci"}
         FR{"Francuska"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Maršalovi Otoci"}
-        MK{"Makedonija"}
+        MK{"Makedonija (BJRM)"}
         ML{"Mali"}
         MM{"Mjanmar (Burma)"}
         MN{"Mongolija"}
@@ -302,10 +302,8 @@
         CD{"Kongo (DRK)"}
         CG{"Kongo (RK)"}
         CI{"Bjelokosna Obala"}
-        CZ{"Češka"}
-        FK{"Falklandski otoci (Malvini)"}
-        MK{"Makedonija (BJRM)"}
+        CZ{"Češka Republika"}
         TL{"Istočni Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/hsb.txt b/source/data/region/hsb.txt
index 9384186..3ac4f8f 100644
--- a/source/data/region/hsb.txt
+++ b/source/data/region/hsb.txt
@@ -108,7 +108,7 @@
         EU{"Europska unija"}
         FI{"Finska"}
         FJ{"Fidźi"}
-        FK{"Falklandske kupy"}
+        FK{"Falklandske kupy (Malwiny)"}
         FM{"Mikroneziska"}
         FO{"Färöske kupy"}
         FR{"Francoska"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshallowe kupy"}
-        MK{"Makedonska"}
+        MK{"Makedonska (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar"}
         MN{"Mongolska"}
@@ -300,9 +300,7 @@
         CD{"Kongo (Demokratiska republika)"}
         CG{"Kongo (Republika)"}
         CI{"Słonowinowy pobrjóh"}
-        FK{"Falklandske kupy (Malwiny)"}
-        MK{"Makedonska (FYROM)"}
         TL{"Wuchodny Timor"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/hu.txt b/source/data/region/hu.txt
index 84f20a9..fabb07b 100644
--- a/source/data/region/hu.txt
+++ b/source/data/region/hu.txt
@@ -108,7 +108,7 @@
         EU{"Európai Unió"}
         FI{"Finnország"}
         FJ{"Fidzsi"}
-        FK{"Falkland-szigetek"}
+        FK{"Falkland-szigetek (Malvin-szigetek)"}
         FM{"Mikronézia"}
         FO{"Feröer-szigetek"}
         FR{"Franciaország"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaszkár"}
         MH{"Marshall-szigetek"}
-        MK{"Macedónia"}
+        MK{"Macedónia (MVJK)"}
         ML{"Mali"}
         MM{"Mianmar (Burma)"}
         MN{"Mongólia"}
@@ -301,8 +301,6 @@
     Countries%variant{
         CD{"Kongó (KDK)"}
         CG{"Kongó (Köztársaság)"}
-        FK{"Falkland-szigetek (Malvin-szigetek)"}
-        MK{"Macedónia (MVJK)"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/hy.txt b/source/data/region/hy.txt
index 8548585..eada93a 100644
--- a/source/data/region/hy.txt
+++ b/source/data/region/hy.txt
@@ -108,7 +108,7 @@
         EU{"Եվրոպական Միություն"}
         FI{"Ֆինլանդիա"}
         FJ{"Ֆիջի"}
-        FK{"Ֆոլքլենդյան կղզիներ"}
+        FK{"Ֆոլքլենդյան (Մալվինյան) կղզիներ"}
         FM{"Միկրոնեզիա"}
         FO{"Ֆարերյան կղզիներ"}
         FR{"Ֆրանսիա"}
@@ -181,7 +181,7 @@
         MF{"Սեն Մարտեն"}
         MG{"Մադագասկար"}
         MH{"Մարշալյան կղզիներ"}
-        MK{"Մակեդոնիա"}
+        MK{"Մակեդոնիա (ՄՆՀՀ)"}
         ML{"Մալի"}
         MM{"Մյանմա (Բիրմա)"}
         MN{"Մոնղոլիա"}
@@ -302,9 +302,7 @@
         CD{"Կոնգո (ԿԺՀ)"}
         CG{"Կոնգո (Կոնգոյի Հանրապետություն)"}
         CI{"Փղոսկրի Ափ"}
-        FK{"Ֆոլքլենդյան (Մալվինյան) կղզիներ"}
-        MK{"Մակեդոնիա (ՄՆՀՀ)"}
         TL{"Արևելյան Թիմոր"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/id.txt b/source/data/region/id.txt
index 762e35a..e4ac021 100644
--- a/source/data/region/id.txt
+++ b/source/data/region/id.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Pulau Christmas"}
         CY{"Siprus"}
-        CZ{"Republik Cheska"}
+        CZ{"Cheska"}
         DE{"Jerman"}
         DG{"Diego Garcia"}
         DJ{"Jibuti"}
@@ -108,7 +108,7 @@
         EU{"Uni Eropa"}
         FI{"Finlandia"}
         FJ{"Fiji"}
-        FK{"Kepulauan Malvinas"}
+        FK{"Kepulauan Malvinas (Falkland)"}
         FM{"Mikronesia"}
         FO{"Kepulauan Faroe"}
         FR{"Prancis"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Kepulauan Marshall"}
-        MK{"Makedonia"}
+        MK{"Makedonia (BRY)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,10 +302,8 @@
         CD{"Kongo (RDK)"}
         CG{"Kongo (Republik)"}
         CI{"Ivory Coast"}
-        CZ{"Cheska"}
-        FK{"Kepulauan Malvinas (Falkland)"}
-        MK{"Makedonia (BRY)"}
+        CZ{"Republik Cheska"}
         TL{"Timor Timur"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ig.txt b/source/data/region/ig.txt
index 0a85fb6..4fc2f49 100644
--- a/source/data/region/ig.txt
+++ b/source/data/region/ig.txt
@@ -11,5 +11,5 @@
         MV{"Maldivesa"}
         NG{"Nigeria"}
     }
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ii.txt b/source/data/region/ii.txt
index de666fe..b803cd6 100644
--- a/source/data/region/ii.txt
+++ b/source/data/region/ii.txt
@@ -14,5 +14,5 @@
         US{"ꂰꇩ"}
         ZZ{"ꃅꄷꅉꀋꐚꌠ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/is.txt b/source/data/region/is.txt
index dfd4769..8bc5a61 100644
--- a/source/data/region/is.txt
+++ b/source/data/region/is.txt
@@ -108,7 +108,7 @@
         EU{"Evrópusambandið"}
         FI{"Finnland"}
         FJ{"Fídjíeyjar"}
-        FK{"Falklandseyjar"}
+        FK{"Falklandseyjar (Malvinas)"}
         FM{"Míkrónesía"}
         FO{"Færeyjar"}
         FR{"Frakkland"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshalleyjar"}
-        MK{"Makedónía"}
+        MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}
         ML{"Malí"}
         MM{"Mjanmar (Búrma)"}
         MN{"Mongólía"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Kongó (Lýðstjórnarlýðveldið)"}
         CG{"Kongó (Lýðveldið)"}
-        FK{"Falklandseyjar (Malvinas)"}
-        MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}
         TL{"Austur-Tímor"}
     }
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/it.txt b/source/data/region/it.txt
index 95800b0..4dacc76 100644
--- a/source/data/region/it.txt
+++ b/source/data/region/it.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Isola Christmas"}
         CY{"Cipro"}
-        CZ{"Repubblica Ceca"}
+        CZ{"Cèchia"}
         DE{"Germania"}
         DG{"Diego Garcia"}
         DJ{"Gibuti"}
@@ -108,7 +108,7 @@
         EU{"Unione Europea"}
         FI{"Finlandia"}
         FJ{"Figi"}
-        FK{"Isole Falkland"}
+        FK{"Isole Falkland (Isole Malvine)"}
         FM{"Micronesia"}
         FO{"Isole Fær Øer"}
         FR{"Francia"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagascar"}
         MH{"Isole Marshall"}
-        MK{"Repubblica di Macedonia"}
+        MK{"Ex Repubblica Jugoslava di Macedonia"}
         ML{"Mali"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -260,7 +260,7 @@
         TH{"Thailandia"}
         TJ{"Tagikistan"}
         TK{"Tokelau"}
-        TL{"Timor Leste"}
+        TL{"Timor Est"}
         TM{"Turkmenistan"}
         TN{"Tunisia"}
         TO{"Tonga"}
@@ -302,10 +302,8 @@
         CD{"Congo (RDC)"}
         CG{"Congo (Repubblica)"}
         CI{"Côte d’Ivoire"}
-        CZ{"Cèchia"}
-        FK{"Isole Falkland (Isole Malvine)"}
-        MK{"Ex Repubblica Jugoslava di Macedonia"}
-        TL{"Timor Est"}
+        CZ{"Repubblica Ceca"}
+        TL{"Timor Leste"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/region/ja.txt b/source/data/region/ja.txt
index ca7ad98..3702653 100644
--- a/source/data/region/ja.txt
+++ b/source/data/region/ja.txt
@@ -89,7 +89,7 @@
         CW{"キュラソー"}
         CX{"クリスマス島"}
         CY{"キプロス"}
-        CZ{"チェコ共和国"}
+        CZ{"チェコ"}
         DE{"ドイツ"}
         DG{"ディエゴガルシア島"}
         DJ{"ジブチ"}
@@ -108,7 +108,7 @@
         EU{"欧州連合"}
         FI{"フィンランド"}
         FJ{"フィジー"}
-        FK{"フォークランド諸島"}
+        FK{"フォークランド諸島 (マルビーナス諸島)"}
         FM{"ミクロネシア連邦"}
         FO{"フェロー諸島"}
         FR{"フランス"}
@@ -181,7 +181,7 @@
         MF{"サン・マルタン"}
         MG{"マダガスカル"}
         MH{"マーシャル諸島"}
-        MK{"マケドニア"}
+        MK{"マケドニア(旧ユーゴスラビア共和国)"}
         ML{"マリ"}
         MM{"ミャンマー"}
         MN{"モンゴル"}
@@ -302,10 +302,8 @@
         CD{"コンゴ民主共和国"}
         CG{"コンゴ共和国"}
         CI{"象牙海岸"}
-        CZ{"チェコ"}
-        FK{"フォークランド諸島 (マルビーナス諸島)"}
-        MK{"マケドニア(旧ユーゴスラビア共和国)"}
+        CZ{"チェコ共和国"}
         TL{"東チモール"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/jgo.txt b/source/data/region/jgo.txt
index be9989f..8a2428c 100644
--- a/source/data/region/jgo.txt
+++ b/source/data/region/jgo.txt
@@ -85,5 +85,5 @@
         ZW{"Zimbámbwɛ"}
         ZZ{"ŋgɔŋ yi pɛ́ ká kɛ́ jʉɔ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/jmc.txt b/source/data/region/jmc.txt
index 70c1744..5e6a86d 100644
--- a/source/data/region/jmc.txt
+++ b/source/data/region/jmc.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ka.txt b/source/data/region/ka.txt
index f2cbf85..5e70226 100644
--- a/source/data/region/ka.txt
+++ b/source/data/region/ka.txt
@@ -89,7 +89,7 @@
         CW{"კიურასაო"}
         CX{"შობის კუნძული"}
         CY{"კვიპროსი"}
-        CZ{"ჩეხეთის რესპუბლიკა"}
+        CZ{"ჩეხეთი"}
         DE{"გერმანია"}
         DG{"დიეგო-გარსია"}
         DJ{"ჯიბუტი"}
@@ -108,7 +108,7 @@
         EU{"ევროკავშირი"}
         FI{"ფინეთი"}
         FJ{"ფიჯი"}
-        FK{"ფოლკლენდის კუნძულები"}
+        FK{"ფოლკლენდის კუნძულები (მალვინის კუნძულები)"}
         FM{"მიკრონეზია"}
         FO{"ფარერის კუნძულები"}
         FR{"საფრანგეთი"}
@@ -181,7 +181,7 @@
         MF{"სენ-მარტენი"}
         MG{"მადაგასკარი"}
         MH{"მარშალის კუნძულები"}
-        MK{"მაკედონია"}
+        MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}
         ML{"მალი"}
         MM{"მიანმარი (ბირმა)"}
         MN{"მონღოლეთი"}
@@ -302,9 +302,7 @@
         CD{"კონგო (კონგოს დემოკრატიული რესპუბლიკა)"}
         CG{"კონგო (რესპუბლიკა)"}
         CI{"სპილოს ძვლის სანაპირო"}
-        CZ{"ჩეხეთი"}
-        FK{"ფოლკლენდის კუნძულები (მალვინის კუნძულები)"}
-        MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}
+        CZ{"ჩეხეთის რესპუბლიკა"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/kab.txt b/source/data/region/kab.txt
index 0e67a9a..5d79a90 100644
--- a/source/data/region/kab.txt
+++ b/source/data/region/kab.txt
@@ -227,5 +227,5 @@
         ZM{"Zambya"}
         ZW{"Zimbabwi"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kam.txt b/source/data/region/kam.txt
index 43d52e5..edf3927 100644
--- a/source/data/region/kam.txt
+++ b/source/data/region/kam.txt
@@ -227,5 +227,5 @@
         ZM{"Nzambia"}
         ZW{"Nzimbambwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kde.txt b/source/data/region/kde.txt
index 45d1c24..7bc9581 100644
--- a/source/data/region/kde.txt
+++ b/source/data/region/kde.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kea.txt b/source/data/region/kea.txt
index e31a3ce..db18866 100644
--- a/source/data/region/kea.txt
+++ b/source/data/region/kea.txt
@@ -89,7 +89,7 @@
         CW{"Kurasau"}
         CX{"Ilha di Natal"}
         CY{"Xipri"}
-        CZ{"Repúblika Txeka"}
+        CZ{"Txékia"}
         DE{"Alimanha"}
         DG{"Diegu Garsia"}
         DJ{"Djibuti"}
@@ -108,7 +108,7 @@
         EU{"Uniãu Europeia"}
         FI{"Finlándia"}
         FJ{"Fidji"}
-        FK{"Ilhas Malvinas"}
+        FK{"Ilhas Falkland (Ilhas Malvinas)"}
         FM{"Mikronézia"}
         FO{"Ilhas Faroe"}
         FR{"Fransa"}
@@ -181,7 +181,7 @@
         MF{"Sãu Martinhu di Fransa"}
         MG{"Madagaskar"}
         MH{"Ilhas Marxal"}
-        MK{"Masidónia"}
+        MK{"Masidónia (FYROM)"}
         ML{"Mali"}
         MM{"Mianmar (Birmánia)"}
         MN{"Mongólia"}
@@ -300,9 +300,7 @@
         CD{"Repúblika Dimokrátika di Kongu"}
         CG{"Repúblika di Kongu"}
         CI{"Kosta di Marfin (Côte d’Ivoire)"}
-        CZ{"Txékia"}
-        FK{"Ilhas Falkland (Ilhas Malvinas)"}
-        MK{"Masidónia (FYROM)"}
+        CZ{"Repúblika Txeka"}
     }
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/khq.txt b/source/data/region/khq.txt
index e166c50..b3d03b8 100644
--- a/source/data/region/khq.txt
+++ b/source/data/region/khq.txt
@@ -227,5 +227,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ki.txt b/source/data/region/ki.txt
index 2a7e616..20ddd8a 100644
--- a/source/data/region/ki.txt
+++ b/source/data/region/ki.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kk.txt b/source/data/region/kk.txt
index 987413d..33437d2 100644
--- a/source/data/region/kk.txt
+++ b/source/data/region/kk.txt
@@ -72,7 +72,7 @@
         BZ{"Белиз"}
         CA{"Канада"}
         CC{"Кокос (Килинг) аралдары"}
-        CD{"Конго Демократиялық Республикасы"}
+        CD{"Конго"}
         CF{"Орталық Африка Республикасы"}
         CG{"Конго-Браззавиль Республикасы"}
         CH{"Швейцария"}
@@ -89,7 +89,7 @@
         CW{"Кюрасао"}
         CX{"Рождество аралы"}
         CY{"Кипр"}
-        CZ{"Чех Республикасы"}
+        CZ{"Чехия"}
         DE{"Германия"}
         DG{"Диего-Гарсия"}
         DJ{"Джибути"}
@@ -108,7 +108,7 @@
         EU{"Еуропалық Одақ"}
         FI{"Финляндия"}
         FJ{"Фиджи"}
-        FK{"Фолкленд аралдары"}
+        FK{"Фолкленд аралдары (Мальвин аралдары)"}
         FM{"Микронезия"}
         FO{"Фарер аралдары"}
         FR{"Франция"}
@@ -181,7 +181,7 @@
         MF{"Сен-Мартен"}
         MG{"Мадагаскар"}
         MH{"Маршалл аралдары"}
-        MK{"Македония"}
+        MK{"Македония Республикасы"}
         ML{"Мали"}
         MM{"Мьянма (Бирма)"}
         MN{"Моңғолия"}
@@ -302,10 +302,8 @@
         CD{"Конго Демократиялық Республикасы"}
         CG{"Конго Республикасы"}
         CI{"Піл Сүйегі Жағалауы"}
-        CZ{"Чехия"}
-        FK{"Фолкленд аралдары (Мальвин аралдары)"}
-        MK{"Македония Республикасы"}
+        CZ{"Чех Республикасы"}
         TL{"Шығыс Тимор"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/kkj.txt b/source/data/region/kkj.txt
index 8e32dc4..7c684b0 100644
--- a/source/data/region/kkj.txt
+++ b/source/data/region/kkj.txt
@@ -4,5 +4,5 @@
     Countries{
         CM{"Kamɛrun"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kl.txt b/source/data/region/kl.txt
index 419ac58..3a09811 100644
--- a/source/data/region/kl.txt
+++ b/source/data/region/kl.txt
@@ -4,5 +4,5 @@
     Countries{
         GL{"Kalaallit Nunaat"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/region/kln.txt b/source/data/region/kln.txt
index f2a13db..34bb184 100644
--- a/source/data/region/kln.txt
+++ b/source/data/region/kln.txt
@@ -227,5 +227,5 @@
         ZM{"Emetab Zambia"}
         ZW{"Emetab Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/km.txt b/source/data/region/km.txt
index 81c72cf..d197cd2 100644
--- a/source/data/region/km.txt
+++ b/source/data/region/km.txt
@@ -89,7 +89,7 @@
         CW{"កូរ៉ាកៅ"}
         CX{"កោះ​គ្រីស្មាស"}
         CY{"ស៊ីប"}
-        CZ{"សាធារណរដ្ឋឆេក"}
+        CZ{"ឆេគា"}
         DE{"អាល្លឺម៉ង់"}
         DG{"ឌៀហ្គោហ្គាស៊ី"}
         DJ{"ជីប៊ូទី"}
@@ -108,7 +108,7 @@
         EU{"សហភាព​អឺរ៉ុប"}
         FI{"ហ្វាំងឡង់"}
         FJ{"ហ្វីជី"}
-        FK{"កោះ​ហ្វក់ឡែន"}
+        FK{"កោះ​ហ្វក់ឡែន (Islas Malvinas)"}
         FM{"មីក្រូណេស៊ី"}
         FO{"កោះ​ហ្វារ៉ូ"}
         FR{"បារាំង"}
@@ -181,7 +181,7 @@
         MF{"សង់​ម៉ាទីន"}
         MG{"ម៉ាដាហ្គាស្កា"}
         MH{"កោះ​ម៉ាស់សល"}
-        MK{"ម៉ាសេដូនា"}
+        MK{"ម៉ាសេដូនា (FYROM)"}
         ML{"ម៉ាលី"}
         MM{"មីយ៉ាន់ម៉ា (ភូមា)"}
         MN{"ម៉ុងហ្គោលី"}
@@ -302,10 +302,8 @@
         CD{"កុងហ្គោ (សាធារណរដ្ឋ​ប្រជាធិបតេយ្យ)"}
         CG{"កុងហ្គោ (សធារណៈរដ្ឋ)"}
         CI{"កូតឌីវ័រ"}
-        CZ{"ឆេគា"}
-        FK{"កោះ​ហ្វក់ឡែន (Islas Malvinas)"}
-        MK{"ម៉ាសេដូនា (FYROM)"}
+        CZ{"សាធារណរដ្ឋឆេក"}
         TL{"ទីម័រ​ខាង​កើត"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/kn.txt b/source/data/region/kn.txt
index 827a508..162d21c 100644
--- a/source/data/region/kn.txt
+++ b/source/data/region/kn.txt
@@ -89,7 +89,7 @@
         CW{"ಕುರಾಕಾವ್"}
         CX{"ಕ್ರಿಸ್ಮಸ್ ದ್ವೀಪ"}
         CY{"ಸೈಪ್ರಸ್"}
-        CZ{"ಝೆಕ್ ರಿಪಬ್ಲಿಕ್"}
+        CZ{"ಝೆಕಿಯಾ"}
         DE{"ಜರ್ಮನಿ"}
         DG{"ಡೈಗೋ ಗಾರ್ಸಿಯ"}
         DJ{"ಜಿಬೋಟಿ"}
@@ -108,7 +108,7 @@
         EU{"ಯುರೋಪಿಯನ್ ಒಕ್ಕೂಟ"}
         FI{"ಫಿನ್‌ಲ್ಯಾಂಡ್"}
         FJ{"ಫಿಜಿ"}
-        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು"}
+        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}
         FM{"ಮೈಕ್ರೋನೇಶಿಯಾ"}
         FO{"ಫರೋ ದ್ವೀಪಗಳು"}
         FR{"ಫ್ರಾನ್ಸ್"}
@@ -181,7 +181,7 @@
         MF{"ಸೇಂಟ್ ಮಾರ್ಟಿನ್"}
         MG{"ಮಡಗಾಸ್ಕರ್"}
         MH{"ಮಾರ್ಷಲ್ ದ್ವೀಪಗಳು"}
-        MK{"ಮ್ಯಾಸಿಡೋನಿಯಾ"}
+        MK{"ಮ್ಯಾಸಿಡೋನಿಯ (FYROM)"}
         ML{"ಮಾಲಿ"}
         MM{"ಮಯನ್ಮಾರ್ (ಬರ್ಮಾ)"}
         MN{"ಮೊಂಗೋಲಿಯಾ"}
@@ -302,10 +302,8 @@
         CD{"ಕಾಂಗೋ (DRC)"}
         CG{"ಕಾಂಗೋ (ಗಣರಾಜ್ಯ)"}
         CI{"ಐವರಿ ಕೋಸ್ಟ್"}
-        CZ{"ಝೆಕಿಯಾ"}
-        FK{"ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}
-        MK{"ಮ್ಯಾಸಿಡೋನಿಯ (FYROM)"}
+        CZ{"ಝೆಕ್ ರಿಪಬ್ಲಿಕ್"}
         TL{"ಪೂರ್ವ ಟಿಮೋರ್"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/ko.txt b/source/data/region/ko.txt
index 08e325a..70a07d0 100644
--- a/source/data/region/ko.txt
+++ b/source/data/region/ko.txt
@@ -108,7 +108,7 @@
         EU{"유럽 연합"}
         FI{"핀란드"}
         FJ{"피지"}
-        FK{"포클랜드 제도"}
+        FK{"포클랜드 제도(말비나스 군도)"}
         FM{"미크로네시아"}
         FO{"페로 제도"}
         FR{"프랑스"}
@@ -181,7 +181,7 @@
         MF{"생마르탱"}
         MG{"마다가스카르"}
         MH{"마셜 제도"}
-        MK{"마케도니아"}
+        MK{"마케도니아(FYROM)"}
         ML{"말리"}
         MM{"미얀마"}
         MN{"몽골"}
@@ -302,8 +302,6 @@
         CD{"콩고민주공화국"}
         CG{"콩고 공화국"}
         CI{"아이보리 코스트"}
-        FK{"포클랜드 제도(말비나스 군도)"}
-        MK{"마케도니아(FYROM)"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ko_KP.txt b/source/data/region/ko_KP.txt
index c7e9a7a..b055bc0 100644
--- a/source/data/region/ko_KP.txt
+++ b/source/data/region/ko_KP.txt
@@ -4,5 +4,5 @@
     Countries{
         KP{"조선민주주의인민공화국"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/kok.txt b/source/data/region/kok.txt
index 271f12e..7b8768a 100644
--- a/source/data/region/kok.txt
+++ b/source/data/region/kok.txt
@@ -4,5 +4,5 @@
     Countries{
         IN{"भारत"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ks.txt b/source/data/region/ks.txt
index 32deda4..f132af9 100644
--- a/source/data/region/ks.txt
+++ b/source/data/region/ks.txt
@@ -278,5 +278,5 @@
         ZW{"زِمبابے"}
         ZZ{"نامعلوٗم تہٕ نالَگہار عَلاقہٕ"}
     }
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/ksb.txt b/source/data/region/ksb.txt
index 4483d27..b270430 100644
--- a/source/data/region/ksb.txt
+++ b/source/data/region/ksb.txt
@@ -226,5 +226,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ksf.txt b/source/data/region/ksf.txt
index 405c0bd..0573aaf 100644
--- a/source/data/region/ksf.txt
+++ b/source/data/region/ksf.txt
@@ -227,5 +227,5 @@
         ZM{"zambí"}
         ZW{"zimbabwɛ́"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ksh.txt b/source/data/region/ksh.txt
index 9fbaeb3..49a1283 100644
--- a/source/data/region/ksh.txt
+++ b/source/data/region/ksh.txt
@@ -108,7 +108,7 @@
         EU{"de Europähjesche Unijon"}
         FI{"Finnland"}
         FJ{"de Fidschi-Endelle"}
-        FK{"de Falkland-Enselle"}
+        FK{"de malleviinesche Enselle"}
         FM{"Mikroneesije"}
         FO{"de Färrör-Enselle"}
         FR{"Frankrisch"}
@@ -181,7 +181,7 @@
         MF{"de Zint-Määtes-Ensel"}
         MG{"Maddajaska"}
         MH{"de Machschall-Enselle"}
-        MK{"Mazedoonije"}
+        MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}
         ML{"Maali"}
         MM{"Birma"}
         MN{"Mongjolei"}
@@ -300,8 +300,6 @@
         CD{"de Demmokraatesche Republik Konggo"}
         CG{"de Republik Konggo"}
         CI{"de Älfebeijnköß"}
-        FK{"de malleviinesche Enselle"}
-        MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/kw.txt b/source/data/region/kw.txt
index efd7cc8..903ddc5 100644
--- a/source/data/region/kw.txt
+++ b/source/data/region/kw.txt
@@ -4,5 +4,5 @@
     Countries{
         GB{"Rywvaneth Unys"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ky.txt b/source/data/region/ky.txt
index 8c442e6..e7679d4 100644
--- a/source/data/region/ky.txt
+++ b/source/data/region/ky.txt
@@ -89,7 +89,7 @@
         CW{"Кюрасао"}
         CX{"Крисмас аралы"}
         CY{"Кипр"}
-        CZ{"Чех Республикасы"}
+        CZ{"Чехия"}
         DE{"Германия"}
         DG{"Диего Гарсия"}
         DJ{"Джибути"}
@@ -108,7 +108,7 @@
         EU{"Европа Биримдиги"}
         FI{"Финляндия"}
         FJ{"Фиджи"}
-        FK{"Фолклэнд аралдары"}
+        FK{"Фолклэнд (Малвина) аралдары"}
         FM{"Микронезия"}
         FO{"Фарер аралдары"}
         FR{"Франция"}
@@ -181,7 +181,7 @@
         MF{"Сент-Мартин"}
         MG{"Мадагаскар"}
         MH{"Маршалл аралдары"}
-        MK{"Македония"}
+        MK{"Македония (Мур. Югосл.)"}
         ML{"Мали"}
         MM{"Мьянма (Бирма)"}
         MN{"Монголия"}
@@ -301,10 +301,8 @@
         CD{"Конго (КДР)"}
         CG{"Конго (Республикасы)"}
         CI{"Кот-д’Ивуар (вариант)"}
-        CZ{"Чехия"}
-        FK{"Фолклэнд (Малвина) аралдары"}
-        MK{"Македония (Мур. Югосл.)"}
+        CZ{"Чех Республикасы"}
         TL{"Чыгыш Тимор"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/lag.txt b/source/data/region/lag.txt
index 30f5744..5976adb 100644
--- a/source/data/region/lag.txt
+++ b/source/data/region/lag.txt
@@ -227,5 +227,5 @@
         ZM{"Sámbia"}
         ZW{"Simbáabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/lb.txt b/source/data/region/lb.txt
index 1e1fab6..5d7b263 100644
--- a/source/data/region/lb.txt
+++ b/source/data/region/lb.txt
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshallinselen"}
-        MK{"Mazedonien"}
+        MK{"Mazedonien (EJR)"}
         ML{"Mali"}
         MM{"Myanmar"}
         MN{"Mongolei"}
@@ -300,7 +300,6 @@
         CD{"Kongo (Demokratesch Republik)"}
         CG{"Kongo (Republik)"}
         CI{"Elfebeeküst"}
-        MK{"Mazedonien (EJR)"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/lg.txt b/source/data/region/lg.txt
index 0a760cc..b766c2e 100644
--- a/source/data/region/lg.txt
+++ b/source/data/region/lg.txt
@@ -227,5 +227,5 @@
         ZM{"Zambya"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/lkt.txt b/source/data/region/lkt.txt
index 10b2565..31bbcb4 100644
--- a/source/data/region/lkt.txt
+++ b/source/data/region/lkt.txt
@@ -15,5 +15,5 @@
         MX{"Spayóla Makȟóčhe"}
         US{"Mílahaŋska Tȟamákȟočhe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ln.txt b/source/data/region/ln.txt
index 66894c4..e542180 100644
--- a/source/data/region/ln.txt
+++ b/source/data/region/ln.txt
@@ -50,7 +50,7 @@
         CU{"Kiba"}
         CV{"Bisanga bya Kapevɛrɛ"}
         CY{"Sípɛlɛ"}
-        CZ{"Repibiki Tsekɛ"}
+        CZ{"Shekia"}
         DE{"Alemani"}
         DJ{"Dzibuti"}
         DK{"Danɛmarike"}
@@ -234,5 +234,8 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.28.76"}
+    Countries%variant{
+        CZ{"Repibiki Tsekɛ"}
+    }
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/lo.txt b/source/data/region/lo.txt
index 49a4593..9fed3a7 100644
--- a/source/data/region/lo.txt
+++ b/source/data/region/lo.txt
@@ -88,7 +88,7 @@
         CW{"ຄູຣາຊາວ"}
         CX{"ເກາະຄຣິສມາດ"}
         CY{"ໄຊປຣັສ"}
-        CZ{"ສາທາລະນະລັດເຊັກ"}
+        CZ{"ເຊັກເຊຍ"}
         DE{"ເຢຍລະມັນ"}
         DG{"ດິເອໂກ ກາເຊຍ"}
         DJ{"ຈິບູຕິ"}
@@ -107,7 +107,7 @@
         EU{"ສະຫະພາບຢູໂຣບ"}
         FI{"ຟິນແລນ"}
         FJ{"ຟິຈິ"}
-        FK{"ຫມູ່ເກາະຟອກແລນ"}
+        FK{"ໝູ່ເກາະຟອກແລນ (ອິສລາສ ມາວິນນາສ)"}
         FM{"ໄມໂຄຣນີເຊຍ"}
         FO{"ຫມູ່ເກາະແຟໂຣ"}
         FR{"ຝຣັ່ງ"}
@@ -180,7 +180,7 @@
         MF{"ເຊນ ມາທິນ"}
         MG{"ມາດາກາສກາ"}
         MH{"ຫມູ່ເກາະມາແຊວ"}
-        MK{"ແມຊິໂດເນຍ"}
+        MK{"ແມຊິໂດເນຍ (FYROM)"}
         ML{"ມາລີ"}
         MM{"ມຽນມາ (ເບີມາ)"}
         MN{"ມອງໂກເລຍ"}
@@ -301,10 +301,8 @@
         CD{"ຄອງໂກ (ສາທາລະນະລັດປະຊາທິປະໄຕ)"}
         CG{"ສາທາລະນະລັດຄອງໂກ"}
         CI{"ໄອໂວຣີ ໂຄທ"}
-        CZ{"ເຊັກເຊຍ"}
-        FK{"ໝູ່ເກາະຟອກແລນ (ອິສລາສ ມາວິນນາສ)"}
-        MK{"ແມຊິໂດເນຍ (FYROM)"}
+        CZ{"ສາທາລະນະລັດເຊັກ"}
         TL{"ທິມໍ ຕາເວັນອອກ"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/lrc.txt b/source/data/region/lrc.txt
index 519a01a..ac377e8 100644
--- a/source/data/region/lrc.txt
+++ b/source/data/region/lrc.txt
@@ -26,5 +26,5 @@
         US{"ڤولاتیا یأکاگئرتە"}
         ZZ{"راساگە نادیار"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/lt.txt b/source/data/region/lt.txt
index b90be67..13a6f51 100644
--- a/source/data/region/lt.txt
+++ b/source/data/region/lt.txt
@@ -108,7 +108,7 @@
         EU{"Europos Sąjunga"}
         FI{"Suomija"}
         FJ{"Fidžis"}
-        FK{"Folklando Salos"}
+        FK{"Folklando (Malvinų) Salos"}
         FM{"Mikronezija"}
         FO{"Farerų Salos"}
         FR{"Prancūzija"}
@@ -181,7 +181,7 @@
         MF{"Sen Martenas"}
         MG{"Madagaskaras"}
         MH{"Maršalo Salos"}
-        MK{"Makedonija"}
+        MK{"Makedonijos Respublika"}
         ML{"Malis"}
         MM{"Mianmaras (Birma)"}
         MN{"Mongolija"}
@@ -302,8 +302,6 @@
         CD{"Kongo Demokratinė Respublika"}
         CG{"Kongo Respublika"}
         CI{"Dramblio Kaulo Kranto Respublika"}
-        FK{"Folklando (Malvinų) Salos"}
-        MK{"Makedonijos Respublika"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/lu.txt b/source/data/region/lu.txt
index 8fe3623..88f7f3b 100644
--- a/source/data/region/lu.txt
+++ b/source/data/region/lu.txt
@@ -227,5 +227,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/luo.txt b/source/data/region/luo.txt
index aea079f..d51a4d5 100644
--- a/source/data/region/luo.txt
+++ b/source/data/region/luo.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/luy.txt b/source/data/region/luy.txt
index c8ae077..bd6b632 100644
--- a/source/data/region/luy.txt
+++ b/source/data/region/luy.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/lv.txt b/source/data/region/lv.txt
index bb5263e..f04385e 100644
--- a/source/data/region/lv.txt
+++ b/source/data/region/lv.txt
@@ -89,7 +89,7 @@
         CW{"Kirasao"}
         CX{"Ziemsvētku sala"}
         CY{"Kipra"}
-        CZ{"Čehijas Republika"}
+        CZ{"Čehija"}
         DE{"Vācija"}
         DG{"Djego Garsijas atols"}
         DJ{"Džibutija"}
@@ -108,7 +108,7 @@
         EU{"Eiropas Savienība"}
         FI{"Somija"}
         FJ{"Fidži"}
-        FK{"Folklenda salas"}
+        FK{"Folklenda (Malvinu) salas"}
         FM{"Mikronēzija"}
         FO{"Fēru salas"}
         FR{"Francija"}
@@ -146,7 +146,7 @@
         IO{"Indijas okeāna Britu teritorija"}
         IQ{"Irāka"}
         IR{"Irāna"}
-        IS{"Īslande"}
+        IS{"Islande"}
         IT{"Itālija"}
         JE{"Džērsija"}
         JM{"Jamaika"}
@@ -181,7 +181,7 @@
         MF{"Senmartēna"}
         MG{"Madagaskara"}
         MH{"Māršala salas"}
-        MK{"Maķedonija"}
+        MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}
         ML{"Mali"}
         MM{"Mjanma (Birma)"}
         MN{"Mongolija"}
@@ -302,9 +302,7 @@
         CD{"Kongo Demokrātiskā Republika"}
         CG{"Kongo (Republika)"}
         CI{"Ziloņkaula krasts"}
-        CZ{"Čehija"}
-        FK{"Folklenda (Malvinu) salas"}
-        MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}
+        CZ{"Čehijas Republika"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/mas.txt b/source/data/region/mas.txt
index 9920352..259e0f1 100644
--- a/source/data/region/mas.txt
+++ b/source/data/region/mas.txt
@@ -227,5 +227,5 @@
         ZM{"Sambia"}
         ZW{"Simbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mer.txt b/source/data/region/mer.txt
index c47a837..d24e774 100644
--- a/source/data/region/mer.txt
+++ b/source/data/region/mer.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mfe.txt b/source/data/region/mfe.txt
index 4ee3629..7da3d48 100644
--- a/source/data/region/mfe.txt
+++ b/source/data/region/mfe.txt
@@ -227,5 +227,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mg.txt b/source/data/region/mg.txt
index 478f59e..15e230f 100644
--- a/source/data/region/mg.txt
+++ b/source/data/region/mg.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbaboe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mgh.txt b/source/data/region/mgh.txt
index 941cf95..c967323 100644
--- a/source/data/region/mgh.txt
+++ b/source/data/region/mgh.txt
@@ -140,5 +140,5 @@
         ZM{"Uzambia"}
         ZW{"Uzimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mgo.txt b/source/data/region/mgo.txt
index 4054a14..d0de24b 100644
--- a/source/data/region/mgo.txt
+++ b/source/data/region/mgo.txt
@@ -5,5 +5,5 @@
         CM{"Kamalun"}
         ZZ{"aba aben tisɔ̀"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/mk.txt b/source/data/region/mk.txt
index bacdcbe..d9071fd 100644
--- a/source/data/region/mk.txt
+++ b/source/data/region/mk.txt
@@ -89,7 +89,7 @@
         CW{"Курасао"}
         CX{"Божиќен Остров"}
         CY{"Кипар"}
-        CZ{"Република Чешка"}
+        CZ{"Чешка"}
         DE{"Германија"}
         DG{"Диего Гарсија"}
         DJ{"Џибути"}
@@ -108,7 +108,7 @@
         EU{"Европска унија"}
         FI{"Финска"}
         FJ{"Фиџи"}
-        FK{"Фолкландски Острови"}
+        FK{"Фолкландски Острови (Малвински Острови)"}
         FM{"Микронезија"}
         FO{"Фарски Острови"}
         FR{"Франција"}
@@ -181,7 +181,7 @@
         MF{"Сент Мартин"}
         MG{"Мадагаскар"}
         MH{"Маршалски Острови"}
-        MK{"Македонија"}
+        MK{"Република Македонија"}
         ML{"Мали"}
         MM{"Мјанмар (Бурма)"}
         MN{"Монголија"}
@@ -302,10 +302,8 @@
         CD{"Конго (Демократска Република Конго)"}
         CG{"Конго (Република)"}
         CI{"Брег на Слоновата Коска"}
-        CZ{"Чешка"}
-        FK{"Фолкландски Острови (Малвински Острови)"}
-        MK{"Република Македонија"}
+        CZ{"Република Чешка"}
         TL{"Источен Тимор"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ml.txt b/source/data/region/ml.txt
index 893fabf..c632178 100644
--- a/source/data/region/ml.txt
+++ b/source/data/region/ml.txt
@@ -89,7 +89,7 @@
         CW{"കുറാകാവോ"}
         CX{"ക്രിസ്മസ് ദ്വീപ്"}
         CY{"സൈപ്രസ്"}
-        CZ{"ചെക്ക് റിപ്പബ്ലിക്"}
+        CZ{"ചെക്കിയ"}
         DE{"ജർമനി"}
         DG{"ഡീഗോ ഗ്രാഷ്യ"}
         DJ{"ദിജിബൗട്ടി"}
@@ -108,7 +108,7 @@
         EU{"യൂറോപ്യൻ യൂണിയൻ"}
         FI{"ഫിൻലാൻഡ്"}
         FJ{"ഫിജി"}
-        FK{"ഫാക്ക്‌ലാന്റ് ദ്വീപുകൾ"}
+        FK{"ഫോക്ക്‌ലാൻഡ് ദ്വീപുകൾ (ഐലാസ് മാൽവിനാസ്)"}
         FM{"മൈക്രോനേഷ്യ"}
         FO{"ഫറോ ദ്വീപുകൾ"}
         FR{"ഫ്രാൻസ്"}
@@ -181,7 +181,7 @@
         MF{"സെൻറ് മാർട്ടിൻ"}
         MG{"മഡഗാസ്കർ"}
         MH{"മാർഷൽ‍‍ ദ്വീപുകൾ"}
-        MK{"മാസിഡോണിയ"}
+        MK{"മാസിഡോണിയ (FYROM)"}
         ML{"മാലി"}
         MM{"മ്യാൻമാർ (ബർമ്മ)"}
         MN{"മംഗോളിയ"}
@@ -302,10 +302,8 @@
         CD{"കോംഗോ (DRC)"}
         CG{"കോംഗോ (റിപ്പബ്ലിക്ക്)"}
         CI{"ഐവറി കോസ്റ്റ്"}
-        CZ{"ചെക്കിയ"}
-        FK{"ഫോക്ക്‌ലാൻഡ് ദ്വീപുകൾ (ഐലാസ് മാൽവിനാസ്)"}
-        MK{"മാസിഡോണിയ (FYROM)"}
+        CZ{"ചെക്ക് റിപ്പബ്ലിക്"}
         TL{"കിഴക്കൻ തിമോർ"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/mn.txt b/source/data/region/mn.txt
index 6b42784..63c3c88 100644
--- a/source/data/region/mn.txt
+++ b/source/data/region/mn.txt
@@ -89,7 +89,7 @@
         CW{"Куракао"}
         CX{"Зул сарын арал"}
         CY{"Кипр"}
-        CZ{"Бүгд Найрамдах Чех Улс"}
+        CZ{"Чех"}
         DE{"Герман"}
         DG{"Диего Гарсиа"}
         DJ{"Джибути"}
@@ -108,7 +108,7 @@
         EU{"Европын Холбоо"}
         FI{"Финланд"}
         FJ{"Фижи"}
-        FK{"Фолькландын Арлууд"}
+        FK{"Фолькландын Арлууд (Ислас Мальвинас)"}
         FM{"Микронези"}
         FO{"Фароэ Арлууд"}
         FR{"Франц"}
@@ -181,7 +181,7 @@
         MF{"Сент-Мартин"}
         MG{"Мадагаскар"}
         MH{"Маршаллын арлууд"}
-        MK{"Македон"}
+        MK{"Македон (Хуучин Югославын бүрэлдэхүүний Македон)"}
         ML{"Мали"}
         MM{"Мьянмар (Бурма)"}
         MN{"Монгол"}
@@ -302,10 +302,8 @@
         CD{"Конго (БНУ)"}
         CG{"Конго (Бүгд Найрамдах улс)"}
         CI{"Зааны ясан эрэг"}
-        CZ{"Чех"}
-        FK{"Фолькландын Арлууд (Ислас Мальвинас)"}
-        MK{"Македон (Хуучин Югославын бүрэлдэхүүний Македон)"}
+        CZ{"Бүгд Найрамдах Чех Улс"}
         TL{"Зүүн Тимор"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/mr.txt b/source/data/region/mr.txt
index cc0fe8a..c8d4bc4 100644
--- a/source/data/region/mr.txt
+++ b/source/data/region/mr.txt
@@ -89,7 +89,7 @@
         CW{"क्युरासाओ"}
         CX{"ख्रिसमस बेट"}
         CY{"सायप्रस"}
-        CZ{"झेक प्रजासत्ताक"}
+        CZ{"झेकिया"}
         DE{"जर्मनी"}
         DG{"दिएगो गार्सिया"}
         DJ{"जिबौटी"}
@@ -108,7 +108,7 @@
         EU{"युरोपीय संघ"}
         FI{"फिनलंड"}
         FJ{"फिजी"}
-        FK{"फॉकलंड बेटे"}
+        FK{"फॉकलंड बेटे (इस्लास मालविनास)"}
         FM{"मायक्रोनेशिया"}
         FO{"फेरो बेटे"}
         FR{"फ्रान्स"}
@@ -181,7 +181,7 @@
         MF{"सेंट मार्टिन"}
         MG{"मादागास्कर"}
         MH{"मार्शल बेटे"}
-        MK{"मॅसेडोनिया"}
+        MK{"मॅसेडोनिया (FYROM)"}
         ML{"माली"}
         MM{"म्यानमार (बर्मा)"}
         MN{"मंगोलिया"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"काँगो (डीआरसी)"}
         CG{"काँगो (प्रजासत्ताक)"}
-        CZ{"झेकिया"}
-        FK{"फॉकलंड बेटे (इस्लास मालविनास)"}
-        MK{"मॅसेडोनिया (FYROM)"}
+        CZ{"झेक प्रजासत्ताक"}
         TL{"पूर्व तिमोर"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/ms.txt b/source/data/region/ms.txt
index 808c17d..2a08d15 100644
--- a/source/data/region/ms.txt
+++ b/source/data/region/ms.txt
@@ -89,7 +89,7 @@
         CW{"Curacao"}
         CX{"Pulau Krismas"}
         CY{"Cyprus"}
-        CZ{"Republik Czech"}
+        CZ{"Czechia"}
         DE{"Jerman"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Kesatuan Eropah"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Kepulauan Falkland"}
+        FK{"Kepulauan Falkland (Islas Malvinas)"}
         FM{"Micronesia"}
         FO{"Kepulauan Faroe"}
         FR{"Perancis"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Kepulauan Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,10 +302,8 @@
         CD{"Congo (DRC)"}
         CG{"Congo (Republik)"}
         CI{"Ivory Coast"}
-        CZ{"Czechia"}
-        FK{"Kepulauan Falkland (Islas Malvinas)"}
-        MK{"Macedonia (FYROM)"}
+        CZ{"Republik Czech"}
         TL{"Timor Timur"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/mt.txt b/source/data/region/mt.txt
index 0a676bc..a867c5f 100644
--- a/source/data/region/mt.txt
+++ b/source/data/region/mt.txt
@@ -106,7 +106,7 @@
         EU{"Unjoni Ewropea"}
         FI{"il-Finlandja"}
         FJ{"Fiġi"}
-        FK{"il-Gżejjer Falkland"}
+        FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}
         FM{"Mikroneżja"}
         FO{"il-Gżejjer Faeroe"}
         FR{"Franza"}
@@ -296,8 +296,7 @@
     Countries%variant{
         CD{"Kongo (RDK)"}
         CG{"ir-Repubblika tal-Kongo"}
-        FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}
         TL{"Timor tal-Lvant"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/mua.txt b/source/data/region/mua.txt
index 99bbdee..a4d0076 100644
--- a/source/data/region/mua.txt
+++ b/source/data/region/mua.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiya"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/my.txt b/source/data/region/my.txt
index 06f6566..4d13be5 100644
--- a/source/data/region/my.txt
+++ b/source/data/region/my.txt
@@ -89,7 +89,7 @@
         CW{"ကျူရေးကိုးစ်"}
         CX{"ခရစ်စမတ် ကျွန်း"}
         CY{"ဆိုက်ပရပ်စ်"}
-        CZ{"ချက် ပြည်ထောင်စု"}
+        CZ{"ချက်ကီယား"}
         DE{"ဂျာမဏီ"}
         DG{"ဒီအဲဂိုဂါစီရာ"}
         DJ{"ဂျီဘူတီ"}
@@ -108,7 +108,7 @@
         EU{"ဥရောပသမဂ္ဂ"}
         FI{"ဖင်လန်"}
         FJ{"ဖီဂျီ"}
-        FK{"ဖော့ကလန် ကျွန်းစု"}
+        FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}
         FM{"မိုင်ခရိုနီရှား"}
         FO{"ဖာရိုး ကျွန်းစုများ"}
         FR{"ပြင်သစ်"}
@@ -181,7 +181,7 @@
         MF{"စိန့်မာတင်"}
         MG{"မဒါဂတ်စကား"}
         MH{"မာရှယ် ကျွန်းစု"}
-        MK{"မက်စီဒိုးနီးယား"}
+        MK{"မက်စီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်စီဒိုးနီးယားပြည်ထောင်စု)"}
         ML{"မာလီ"}
         MM{"မြန်မာ"}
         MN{"မွန်ဂိုးလီးယား"}
@@ -302,9 +302,7 @@
         CD{"ကွန်ဂို ဒီမိုကရက်တစ် သမ္မတနိုင်ငံ"}
         CG{"ကွန်ဂို သမ္မတနိုင်ငံ"}
         CI{"အိုင်ဗရီကို့စ်"}
-        CZ{"ချက်ကီယား"}
-        FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}
-        MK{"မက်စီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်စီဒိုးနီးယားပြည်ထောင်စု)"}
+        CZ{"ချက် ပြည်ထောင်စု"}
     }
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
 }
diff --git a/source/data/region/mzn.txt b/source/data/region/mzn.txt
index b2ff11a..fd2276e 100644
--- a/source/data/region/mzn.txt
+++ b/source/data/region/mzn.txt
@@ -108,7 +108,7 @@
         EU{"اروپا اتحادیه"}
         FI{"فنلاند"}
         FJ{"فیجی"}
-        FK{"فالکلند جزیره‌ئون"}
+        FK{"فالکلند (مالویناس)"}
         FM{"میکرونزی"}
         FO{"فارو جزایر"}
         FR{"فرانسه"}
@@ -181,7 +181,7 @@
         MF{"سنت مارتین"}
         MG{"ماداگاسکار"}
         MH{"مارشال جزایر"}
-        MK{"مقدونیه"}
+        MK{"مقدونیه جمهوری"}
         ML{"مالی"}
         MM{"میانمار"}
         MN{"مغولستون"}
@@ -300,9 +300,7 @@
         CD{"کنگو (دموکراتیک جمهوری)"}
         CG{"کنگو (جمهوری)"}
         CI{"عاج ساحل"}
-        FK{"فالکلند (مالویناس)"}
-        MK{"مقدونیه جمهوری"}
         TL{"شرقی تیمور"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/naq.txt b/source/data/region/naq.txt
index a5674bd..c5a09ab 100644
--- a/source/data/region/naq.txt
+++ b/source/data/region/naq.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiab"}
         ZW{"Zimbabweb"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/nb.txt b/source/data/region/nb.txt
index 965094a..8b59b81 100644
--- a/source/data/region/nb.txt
+++ b/source/data/region/nb.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmasøya"}
         CY{"Kypros"}
-        CZ{"Den tsjekkiske republikk"}
+        CZ{"Tsjekkia"}
         DE{"Tyskland"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"EU"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Falklandsøyene"}
+        FK{"Falklandsøyene (Islas Malvinas)"}
         FM{"Mikronesiaføderasjonen"}
         FO{"Færøyene"}
         FR{"Frankrike"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Marshalløyene"}
-        MK{"Makedonia"}
+        MK{"Den tidligere jugoslaviske republikk Makedonia"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Den demokratiske republikken Kongo"}
         CG{"Republikken Kongo"}
-        CZ{"Tsjekkia"}
-        FK{"Falklandsøyene (Islas Malvinas)"}
-        MK{"Den tidligere jugoslaviske republikk Makedonia"}
+        CZ{"Den tsjekkiske republikk"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/nd.txt b/source/data/region/nd.txt
index 384e505..5420a1a 100644
--- a/source/data/region/nd.txt
+++ b/source/data/region/nd.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiya"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/nds.txt b/source/data/region/nds.txt
index f5e699c..30007b2 100644
--- a/source/data/region/nds.txt
+++ b/source/data/region/nds.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ne.txt b/source/data/region/ne.txt
index 9298b2d..50420dc 100644
--- a/source/data/region/ne.txt
+++ b/source/data/region/ne.txt
@@ -89,7 +89,7 @@
         CW{"कुराकाओ"}
         CX{"क्रिष्टमस टापु"}
         CY{"साइप्रस"}
-        CZ{"चेक गणतन्त्र"}
+        CZ{"चेचिया"}
         DE{"जर्मनी"}
         DG{"डियगो गार्सिया"}
         DJ{"डिजिबुटी"}
@@ -108,7 +108,7 @@
         EU{"युरोपियन युनियन"}
         FI{"फिन्ल्याण्ड"}
         FJ{"फिजी"}
-        FK{"फकल्याण्ड टापुहरु"}
+        FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}
         FM{"माइक्रोनेसिया"}
         FO{"फारो टापुहरू"}
         FR{"फ्रान्स"}
@@ -181,7 +181,7 @@
         MF{"सेन्ट मार्टिन"}
         MG{"मडागास्कर"}
         MH{"मार्शल टापुहरु"}
-        MK{"म्याकेडोनिया"}
+        MK{"म्याकेडोनिया (फाइरम)"}
         ML{"माली"}
         MM{"म्यान्मार (बर्मा)"}
         MN{"मङ्गोलिया"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"कङ्गो (डीआर्‌सी)"}
         CG{"कङ्गो (गणतन्त्र)"}
-        CZ{"चेचिया"}
-        FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}
-        MK{"म्याकेडोनिया (फाइरम)"}
+        CZ{"चेक गणतन्त्र"}
         TL{"पृर्वी टीमोर"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/nl.txt b/source/data/region/nl.txt
index dd38db3..dc6f413 100644
--- a/source/data/region/nl.txt
+++ b/source/data/region/nl.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmaseiland"}
         CY{"Cyprus"}
-        CZ{"Tsjechië"}
+        CZ{"Tsjechische Republiek"}
         DE{"Duitsland"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Europese Unie"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Falklandeilanden"}
+        FK{"Falklandeilanden (Islas Malvinas)"}
         FM{"Micronesia"}
         FO{"Faeröer"}
         FR{"Frankrijk"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Marshalleilanden"}
-        MK{"Macedonië"}
+        MK{"Macedonië (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Birma)"}
         MN{"Mongolië"}
@@ -301,9 +301,7 @@
     Countries%variant{
         CD{"Congo (DRC)"}
         CG{"Congo (Republiek)"}
-        CZ{"Tsjechische Republiek"}
-        FK{"Falklandeilanden (Islas Malvinas)"}
-        MK{"Macedonië (FYROM)"}
+        CZ{"Tsjechië"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/nmg.txt b/source/data/region/nmg.txt
index 9c370fe..09c4fdf 100644
--- a/source/data/region/nmg.txt
+++ b/source/data/region/nmg.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwǝ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/nn.txt b/source/data/region/nn.txt
index acf908d..a3269b6 100644
--- a/source/data/region/nn.txt
+++ b/source/data/region/nn.txt
@@ -107,7 +107,7 @@
         EU{"Den europeiske unionen"}
         FI{"Finland"}
         FJ{"Fiji"}
-        FK{"Falklandsøyane"}
+        FK{"Falklandsøyane (Islas Malvinas)"}
         FM{"Mikronesiaføderasjonen"}
         FO{"Færøyane"}
         FR{"Frankrike"}
@@ -180,7 +180,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Marshalløyane"}
-        MK{"Makedonia"}
+        MK{"Den tidlegare jugoslaviske republikken Makedonia"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -298,8 +298,6 @@
     Countries%variant{
         CD{"Den demokratiske republikken Kongo"}
         CG{"Republikken Kongo"}
-        FK{"Falklandsøyane (Islas Malvinas)"}
-        MK{"Den tidlegare jugoslaviske republikken Makedonia"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/nnh.txt b/source/data/region/nnh.txt
index 33ded21..60f369e 100644
--- a/source/data/region/nnh.txt
+++ b/source/data/region/nnh.txt
@@ -4,5 +4,5 @@
     Countries{
         CM{"Kàmalûm"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/nus.txt b/source/data/region/nus.txt
index 69e5493..94ba2cf 100644
--- a/source/data/region/nus.txt
+++ b/source/data/region/nus.txt
@@ -54,5 +54,5 @@
         TD{"Ca̱d"}
         VG{"Burutic dhuɔ̱ɔ̱l be̱rgin"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/nyn.txt b/source/data/region/nyn.txt
index a2b7e1c..e517c65 100644
--- a/source/data/region/nyn.txt
+++ b/source/data/region/nyn.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/om.txt b/source/data/region/om.txt
index a0f541f..9893b21 100644
--- a/source/data/region/om.txt
+++ b/source/data/region/om.txt
@@ -15,5 +15,5 @@
         RU{"Russia"}
         US{"United States"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/or.txt b/source/data/region/or.txt
index 18d92bb..1780778 100644
--- a/source/data/region/or.txt
+++ b/source/data/region/or.txt
@@ -281,5 +281,5 @@
         ZW{"ଜିମ୍ବାୱେ"}
         ZZ{"ଅଜଣା କିମ୍ବା ଅବୈଧ ପ୍ରଦେଶ"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/os.txt b/source/data/region/os.txt
index 2bca100..d854517 100644
--- a/source/data/region/os.txt
+++ b/source/data/region/os.txt
@@ -21,5 +21,5 @@
         US{"АИШ"}
         ZZ{"Нӕзонгӕ бӕстӕ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pa.txt b/source/data/region/pa.txt
index 3994d99..b6f6310 100644
--- a/source/data/region/pa.txt
+++ b/source/data/region/pa.txt
@@ -89,7 +89,7 @@
         CW{"ਕੁਰਾਕਾਓ"}
         CX{"ਕ੍ਰਿਸਮਿਸ ਟਾਪੂ"}
         CY{"ਸਾਇਪ੍ਰਸ"}
-        CZ{"ਚੈੱਕ ਗਣਰਾਜ"}
+        CZ{"ਚੈਕੀਆ"}
         DE{"ਜਰਮਨੀ"}
         DG{"ਡੀਇਗੋ ਗਾਰਸੀਆ"}
         DJ{"ਜ਼ੀਬੂਤੀ"}
@@ -108,7 +108,7 @@
         EU{"ਯੂਰਪੀ ਸੰਘ"}
         FI{"ਫਿਨਲੈਂਡ"}
         FJ{"ਫ਼ਿਜੀ"}
-        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ"}
+        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ (ਆਈਲਾਸ ਮਾਲਵਿਨਾਸ)"}
         FM{"ਮਾਇਕ੍ਰੋਨੇਸ਼ੀਆ"}
         FO{"ਫੈਰੋ ਟਾਪੂ"}
         FR{"ਫ਼ਰਾਂਸ"}
@@ -181,7 +181,7 @@
         MF{"ਸੇਂਟ ਮਾਰਟਿਨ"}
         MG{"ਮੈਡਾਗਾਸਕਰ"}
         MH{"ਮਾਰਸ਼ਲ ਟਾਪੂ"}
-        MK{"ਮੈਕਡੋਨੀਆ"}
+        MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}
         ML{"ਮਾਲੀ"}
         MM{"ਮਿਆਂਮਾਰ (ਬਰਮਾ)"}
         MN{"ਮੰਗੋਲੀਆ"}
@@ -302,10 +302,8 @@
         CD{"ਕਾਂਗੋ ਲੋਕਤੰਤਰੀ ਗਣਰਾਜ"}
         CG{"ਕਾਂਗੋ ਗਣਰਾਜ"}
         CI{"ਆਇਵਰੀ ਕੋਸਟ"}
-        CZ{"ਚੈਕੀਆ"}
-        FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ (ਆਈਲਾਸ ਮਾਲਵਿਨਾਸ)"}
-        MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}
+        CZ{"ਚੈੱਕ ਗਣਰਾਜ"}
         TL{"ਪੂਰਬ ਤਿਮੋਰ"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/pa_Arab.txt b/source/data/region/pa_Arab.txt
index 4e8cd3f..afd7abb 100644
--- a/source/data/region/pa_Arab.txt
+++ b/source/data/region/pa_Arab.txt
@@ -5,5 +5,5 @@
     Countries{
         PK{"پاکستان"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pa_Guru.txt b/source/data/region/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/region/pa_Guru.txt
+++ b/source/data/region/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pl.txt b/source/data/region/pl.txt
index 09b884e..4387d45 100644
--- a/source/data/region/pl.txt
+++ b/source/data/region/pl.txt
@@ -108,7 +108,7 @@
         EU{"Unia Europejska"}
         FI{"Finlandia"}
         FJ{"Fidżi"}
-        FK{"Falklandy"}
+        FK{"Falklandy (Malwiny)"}
         FM{"Mikronezja"}
         FO{"Wyspy Owcze"}
         FR{"Francja"}
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Wyspy Marshalla"}
-        MK{"Macedonia"}
+        MK{"Była Jugosłowiańska Republika Macedonii"}
         ML{"Mali"}
         MM{"Mjanma (Birma)"}
         MN{"Mongolia"}
@@ -302,9 +302,7 @@
         CG{"Republika Konga"}
         CI{"Wybrzeże Kości Słoniowej"}
         CZ{"Republika Czeska"}
-        FK{"Falklandy (Malwiny)"}
-        MK{"Była Jugosłowiańska Republika Macedonii"}
         TL{"Timor-Leste"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/pool.res b/source/data/region/pool.res
index c7df177..567ea80 100644
--- a/source/data/region/pool.res
+++ b/source/data/region/pool.res
Binary files differ
diff --git a/source/data/region/ps.txt b/source/data/region/ps.txt
index e60d3e8..1c24d3b 100644
--- a/source/data/region/ps.txt
+++ b/source/data/region/ps.txt
@@ -66,5 +66,5 @@
         UY{"یوروګوای"}
         YE{"یمن"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt.txt b/source/data/region/pt.txt
index 38522fb..d465f0f 100644
--- a/source/data/region/pt.txt
+++ b/source/data/region/pt.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Ilha Christmas"}
         CY{"Chipre"}
-        CZ{"República Tcheca"}
+        CZ{"Tchéquia"}
         DE{"Alemanha"}
         DG{"Diego Garcia"}
         DJ{"Djibuti"}
@@ -108,7 +108,7 @@
         EU{"União Europeia"}
         FI{"Finlândia"}
         FJ{"Fiji"}
-        FK{"Ilhas Malvinas"}
+        FK{"Ilhas Falkland (Ilhas Malvinas)"}
         FM{"Micronésia"}
         FO{"Ilhas Faroe"}
         FR{"França"}
@@ -181,7 +181,7 @@
         MF{"São Martinho"}
         MG{"Madagascar"}
         MH{"Ilhas Marshall"}
-        MK{"Macedônia"}
+        MK{"Macedônia (ARIM)"}
         ML{"Mali"}
         MM{"Mianmar (Birmânia)"}
         MN{"Mongólia"}
@@ -301,10 +301,8 @@
     Countries%variant{
         CD{"República Democrática do Congo"}
         CG{"Congo"}
-        CZ{"Tchéquia"}
-        FK{"Ilhas Falkland (Ilhas Malvinas)"}
-        MK{"Macedônia (ARIM)"}
+        CZ{"República Tcheca"}
         TL{"República Democrática de Timor-Leste"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/pt_AO.txt b/source/data/region/pt_AO.txt
index 7aeffb6..5a8f6f2 100644
--- a/source/data/region/pt_AO.txt
+++ b/source/data/region/pt_AO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_AO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_CH.txt b/source/data/region/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/region/pt_CH.txt
+++ b/source/data/region/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_CV.txt b/source/data/region/pt_CV.txt
index 7e77af3..ad4836b 100644
--- a/source/data/region/pt_CV.txt
+++ b/source/data/region/pt_CV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CV{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_GQ.txt b/source/data/region/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/region/pt_GQ.txt
+++ b/source/data/region/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_GW.txt b/source/data/region/pt_GW.txt
index 67e6e72..e137e51 100644
--- a/source/data/region/pt_GW.txt
+++ b/source/data/region/pt_GW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_LU.txt b/source/data/region/pt_LU.txt
index 009ec80..e6d1c60 100644
--- a/source/data/region/pt_LU.txt
+++ b/source/data/region/pt_LU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_LU{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_MO.txt b/source/data/region/pt_MO.txt
index e443a63..76fe46e 100644
--- a/source/data/region/pt_MO.txt
+++ b/source/data/region/pt_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_MZ.txt b/source/data/region/pt_MZ.txt
index 9873941..b86fd1e 100644
--- a/source/data/region/pt_MZ.txt
+++ b/source/data/region/pt_MZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MZ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_PT.txt b/source/data/region/pt_PT.txt
index 92788bb..cd1fce8 100644
--- a/source/data/region/pt_PT.txt
+++ b/source/data/region/pt_PT.txt
@@ -26,7 +26,7 @@
         DJ{"Jibuti"}
         DM{"Domínica"}
         EE{"Estónia"}
-        FK{"Ilhas Falkland"}
+        FK{"Ilhas Malvinas"}
         FO{"Ilhas Faroé"}
         GL{"Gronelândia"}
         GU{"Guame"}
@@ -39,7 +39,7 @@
         LV{"Letónia"}
         MC{"Mónaco"}
         MG{"Madagáscar"}
-        MK{"Macedónia"}
+        MK{"Macedónia (ARJM)"}
         MS{"Monserrate"}
         MU{"Maurícia"}
         MW{"Maláui"}
@@ -71,8 +71,6 @@
     }
     Countries%variant{
         CG{"República do Congo"}
-        FK{"Ilhas Malvinas"}
-        MK{"Macedónia (ARJM)"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/pt_ST.txt b/source/data/region/pt_ST.txt
index 55f443a..95f596c 100644
--- a/source/data/region/pt_ST.txt
+++ b/source/data/region/pt_ST.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_ST{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/pt_TL.txt b/source/data/region/pt_TL.txt
index 68cb641..786b602 100644
--- a/source/data/region/pt_TL.txt
+++ b/source/data/region/pt_TL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/qu.txt b/source/data/region/qu.txt
index 138c19f..f905553 100644
--- a/source/data/region/qu.txt
+++ b/source/data/region/qu.txt
@@ -193,5 +193,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabue"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/resfiles.mk b/source/data/region/resfiles.mk
index 7255552..835d481 100644
--- a/source/data/region/resfiles.mk
+++ b/source/data/region/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-REGION_CLDR_VERSION = %version%
+REGION_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,19 +26,19 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-REGION_SYNTHETIC_ALIAS = az_AZ.txt az_Latn_AZ.txt bs_BA.txt bs_Latn_BA.txt\
- en_NH.txt en_RH.txt fil_PH.txt he_IL.txt id_ID.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP.txt\
- ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt no.txt\
- no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt pa_IN.txt\
- pa_PK.txt sh.txt sh_BA.txt sh_CS.txt sh_YU.txt\
- shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_CS.txt\
- sr_Cyrl_RS.txt sr_Cyrl_YU.txt sr_Latn_CS.txt sr_Latn_RS.txt sr_Latn_YU.txt\
- sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt th_TH.txt\
- th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt uz_Arab_AF.txt\
- uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt zh_CN.txt\
- zh_HK.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_TW.txt zh_MO.txt\
- zh_SG.txt zh_TW.txt
+REGION_SYNTHETIC_ALIAS = ars.txt az_AZ.txt az_Latn_AZ.txt bs_BA.txt\
+ bs_Latn_BA.txt en_NH.txt en_RH.txt fil_PH.txt he_IL.txt\
+ id_ID.txt in.txt in_ID.txt iw.txt iw_IL.txt\
+ ja_JP.txt ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt\
+ no.txt no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt\
+ pa_IN.txt pa_PK.txt sh.txt sh_BA.txt sh_CS.txt\
+ sh_YU.txt shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt\
+ sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_YU.txt sr_Latn_CS.txt sr_Latn_RS.txt\
+ sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt\
+ th_TH.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt\
+ uz_Arab_AF.txt uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt\
+ zh_CN.txt zh_HK.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant_TW.txt\
+ zh_MO.txt zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -76,47 +76,47 @@
  en_TV.txt en_TZ.txt en_UG.txt en_VC.txt en_VG.txt\
  en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt en_ZW.txt\
  eo.txt es.txt es_419.txt es_AR.txt es_BO.txt\
- es_BR.txt es_CL.txt es_CO.txt es_CR.txt es_CU.txt\
- es_DO.txt es_EC.txt es_GT.txt es_HN.txt es_MX.txt\
- es_NI.txt es_PA.txt es_PE.txt es_PR.txt es_PY.txt\
- es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\
- eu.txt ewo.txt fa.txt fa_AF.txt ff.txt\
- fi.txt fil.txt fo.txt fr.txt fr_BE.txt\
- fr_CA.txt fur.txt fy.txt ga.txt gd.txt\
- gl.txt gsw.txt gu.txt guz.txt gv.txt\
- ha.txt haw.txt he.txt hi.txt hr.txt\
- hsb.txt hu.txt hy.txt id.txt ig.txt\
- ii.txt is.txt it.txt ja.txt jgo.txt\
- jmc.txt ka.txt kab.txt kam.txt kde.txt\
- kea.txt khq.txt ki.txt kk.txt kkj.txt\
- kl.txt kln.txt km.txt kn.txt ko.txt\
- ko_KP.txt kok.txt ks.txt ksb.txt ksf.txt\
- ksh.txt kw.txt ky.txt lag.txt lb.txt\
- lg.txt lkt.txt ln.txt lo.txt lrc.txt\
- lt.txt lu.txt luo.txt luy.txt lv.txt\
- mas.txt mer.txt mfe.txt mg.txt mgh.txt\
- mgo.txt mk.txt ml.txt mn.txt mr.txt\
- ms.txt mt.txt mua.txt my.txt mzn.txt\
- naq.txt nb.txt nd.txt nds.txt ne.txt\
- nl.txt nmg.txt nn.txt nnh.txt nus.txt\
- nyn.txt om.txt or.txt os.txt pa.txt\
- pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\
- pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\
- pt_TL.txt qu.txt rm.txt rn.txt ro.txt\
- ro_MD.txt rof.txt ru.txt ru_UA.txt rw.txt\
- rwk.txt sah.txt saq.txt sbp.txt se.txt\
- se_FI.txt seh.txt ses.txt sg.txt shi.txt\
- shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\
- smn.txt sn.txt so.txt sq.txt sr.txt\
- sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt sr_Latn.txt\
- sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt sw.txt\
- sw_CD.txt sw_KE.txt ta.txt te.txt teo.txt\
- th.txt ti.txt to.txt tr.txt twq.txt\
- tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\
- uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\
- vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\
- xog.txt yav.txt yi.txt yo.txt yo_BJ.txt\
- yue.txt zgh.txt zh.txt zh_Hans.txt zh_Hant.txt\
- zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
+ es_BR.txt es_BZ.txt es_CL.txt es_CO.txt es_CR.txt\
+ es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\
+ es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\
+ es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\
+ et.txt eu.txt ewo.txt fa.txt fa_AF.txt\
+ ff.txt fi.txt fil.txt fo.txt fr.txt\
+ fr_BE.txt fr_CA.txt fur.txt fy.txt ga.txt\
+ gd.txt gl.txt gsw.txt gu.txt guz.txt\
+ gv.txt ha.txt haw.txt he.txt hi.txt\
+ hr.txt hsb.txt hu.txt hy.txt id.txt\
+ ig.txt ii.txt is.txt it.txt ja.txt\
+ jgo.txt jmc.txt ka.txt kab.txt kam.txt\
+ kde.txt kea.txt khq.txt ki.txt kk.txt\
+ kkj.txt kl.txt kln.txt km.txt kn.txt\
+ ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\
+ ksf.txt ksh.txt kw.txt ky.txt lag.txt\
+ lb.txt lg.txt lkt.txt ln.txt lo.txt\
+ lrc.txt lt.txt lu.txt luo.txt luy.txt\
+ lv.txt mas.txt mer.txt mfe.txt mg.txt\
+ mgh.txt mgo.txt mk.txt ml.txt mn.txt\
+ mr.txt ms.txt mt.txt mua.txt my.txt\
+ mzn.txt naq.txt nb.txt nd.txt nds.txt\
+ ne.txt nl.txt nmg.txt nn.txt nnh.txt\
+ nus.txt nyn.txt om.txt or.txt os.txt\
+ pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\
+ pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\
+ pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\
+ pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\
+ ro.txt ro_MD.txt rof.txt ru.txt ru_UA.txt\
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\
+ se.txt se_FI.txt seh.txt ses.txt sg.txt\
+ shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\
+ sl.txt smn.txt sn.txt so.txt sq.txt\
+ sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt\
+ sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt\
+ sw.txt sw_CD.txt sw_KE.txt ta.txt te.txt\
+ teo.txt th.txt ti.txt to.txt tr.txt\
+ twq.txt tzm.txt ug.txt uk.txt ur.txt\
+ ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\
+ vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\
+ wae.txt xog.txt yav.txt yi.txt yo.txt\
+ yo_BJ.txt yue.txt zgh.txt zh.txt zh_Hans.txt\
+ zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
 
diff --git a/source/data/region/rm.txt b/source/data/region/rm.txt
index 060fec2..b0c0dc0 100644
--- a/source/data/region/rm.txt
+++ b/source/data/region/rm.txt
@@ -280,5 +280,5 @@
         ZW{"Simbabwe"}
         ZZ{"Regiun betg encouschenta u nunvalaivla"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/rn.txt b/source/data/region/rn.txt
index 1f5ce4b..4b932b6 100644
--- a/source/data/region/rn.txt
+++ b/source/data/region/rn.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiya"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ro.txt b/source/data/region/ro.txt
index add8ce6..a84968f 100644
--- a/source/data/region/ro.txt
+++ b/source/data/region/ro.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Insula Christmas"}
         CY{"Cipru"}
-        CZ{"Republica Cehă"}
+        CZ{"Cehia"}
         DE{"Germania"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Uniunea Europeană"}
         FI{"Finlanda"}
         FJ{"Fiji"}
-        FK{"Insulele Falkland"}
+        FK{"Insulele Falkland (Insulele Malvine)"}
         FM{"Micronezia"}
         FO{"Insulele Feroe"}
         FR{"Franța"}
@@ -181,7 +181,7 @@
         MF{"Sfântul Martin"}
         MG{"Madagascar"}
         MH{"Insulele Marshall"}
-        MK{"Republica Macedonia"}
+        MK{"Republica Macedonia (FRIM)"}
         ML{"Mali"}
         MM{"Myanmar (Birmania)"}
         MN{"Mongolia"}
@@ -302,9 +302,7 @@
         CD{"Congo (Republica Democrată Congo)"}
         CG{"Congo (Republica)"}
         CI{"Coasta de Fildeș"}
-        CZ{"Cehia"}
-        FK{"Insulele Falkland (Insulele Malvine)"}
-        MK{"Republica Macedonia (FRIM)"}
+        CZ{"Republica Cehă"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/region/ro_MD.txt b/source/data/region/ro_MD.txt
index 6d93bca..e130440 100644
--- a/source/data/region/ro_MD.txt
+++ b/source/data/region/ro_MD.txt
@@ -4,5 +4,5 @@
     Countries{
         MM{"Myanmar"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/rof.txt b/source/data/region/rof.txt
index 84a0185..a9266c4 100644
--- a/source/data/region/rof.txt
+++ b/source/data/region/rof.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/root.txt b/source/data/region/root.txt
index 2130590..94dda75 100644
--- a/source/data/region/root.txt
+++ b/source/data/region/root.txt
@@ -4,5 +4,5 @@
  * ICU <specials> source: <path>/common/main/root.xml
  */
 root{
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ru.txt b/source/data/region/ru.txt
index ba2439b..c52931a 100644
--- a/source/data/region/ru.txt
+++ b/source/data/region/ru.txt
@@ -108,7 +108,7 @@
         EU{"Европейский союз"}
         FI{"Финляндия"}
         FJ{"Фиджи"}
-        FK{"Фолклендские о-ва"}
+        FK{"Фолклендские (Мальвинские) о-ва"}
         FM{"Федеративные Штаты Микронезии"}
         FO{"Фарерские о-ва"}
         FR{"Франция"}
@@ -181,7 +181,7 @@
         MF{"Сен-Мартен"}
         MG{"Мадагаскар"}
         MH{"Маршалловы Острова"}
-        MK{"Македония"}
+        MK{"Македония (БЮРМ)"}
         ML{"Мали"}
         MM{"Мьянма (Бирма)"}
         MN{"Монголия"}
@@ -302,9 +302,7 @@
         CD{"Конго (ДРК)"}
         CG{"Республика Конго"}
         CI{"Берег Слоновой Кости"}
-        FK{"Фолклендские (Мальвинские) о-ва"}
-        MK{"Македония (БЮРМ)"}
         TL{"Тимор-Лесте"}
     }
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ru_UA.txt b/source/data/region/ru_UA.txt
index 66d10b3..0a2ef77 100644
--- a/source/data/region/ru_UA.txt
+++ b/source/data/region/ru_UA.txt
@@ -14,5 +14,5 @@
         TL{"Тимор-Лесте"}
         UM{"Малые Тихоокеанские Отдаленные Острова США"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/rw.txt b/source/data/region/rw.txt
index 2e2122e..b71f984 100644
--- a/source/data/region/rw.txt
+++ b/source/data/region/rw.txt
@@ -5,5 +5,5 @@
         RW{"Rwanda"}
         TO{"Igitonga"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/rwk.txt b/source/data/region/rwk.txt
index e58118a..9ef2efa 100644
--- a/source/data/region/rwk.txt
+++ b/source/data/region/rwk.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sah.txt b/source/data/region/sah.txt
index 72e58ac..4c6bab6 100644
--- a/source/data/region/sah.txt
+++ b/source/data/region/sah.txt
@@ -31,5 +31,5 @@
     Countries%short{
         US{"АХШ"}
     }
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/saq.txt b/source/data/region/saq.txt
index a0489e3..5881bbb 100644
--- a/source/data/region/saq.txt
+++ b/source/data/region/saq.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sbp.txt b/source/data/region/sbp.txt
index 78d07bc..a44069a 100644
--- a/source/data/region/sbp.txt
+++ b/source/data/region/sbp.txt
@@ -227,5 +227,5 @@
         ZM{"Sambiya"}
         ZW{"Simbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/se.txt b/source/data/region/se.txt
index e98cfd4..31555ca 100644
--- a/source/data/region/se.txt
+++ b/source/data/region/se.txt
@@ -291,5 +291,5 @@
         GB{"Stuorra-Británnia"}
         US{"USA"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/se_FI.txt b/source/data/region/se_FI.txt
index 1f95a6c..5390e51 100644
--- a/source/data/region/se_FI.txt
+++ b/source/data/region/se_FI.txt
@@ -15,5 +15,5 @@
     Countries%variant{
         CI{"Côte d’Ivoire"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/seh.txt b/source/data/region/seh.txt
index f60796b..87a5dc7 100644
--- a/source/data/region/seh.txt
+++ b/source/data/region/seh.txt
@@ -226,5 +226,5 @@
         ZM{"Zâmbia"}
         ZW{"Zimbábue"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ses.txt b/source/data/region/ses.txt
index 52afa95..a424007 100644
--- a/source/data/region/ses.txt
+++ b/source/data/region/ses.txt
@@ -227,5 +227,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sg.txt b/source/data/region/sg.txt
index e62529f..625e47c 100644
--- a/source/data/region/sg.txt
+++ b/source/data/region/sg.txt
@@ -227,5 +227,5 @@
         ZM{"Zambïi"}
         ZW{"Zimbäbwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/shi.txt b/source/data/region/shi.txt
index cb20a0a..3d5d680 100644
--- a/source/data/region/shi.txt
+++ b/source/data/region/shi.txt
@@ -227,5 +227,5 @@
         ZM{"ⵣⴰⵎⴱⵢⴰ"}
         ZW{"ⵣⵉⵎⴱⴰⴱⵡⵉ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/shi_Latn.txt b/source/data/region/shi_Latn.txt
index 0334fec..0889ac4 100644
--- a/source/data/region/shi_Latn.txt
+++ b/source/data/region/shi_Latn.txt
@@ -228,5 +228,5 @@
         ZM{"zambya"}
         ZW{"zimbabwi"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/shi_Tfng.txt b/source/data/region/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/region/shi_Tfng.txt
+++ b/source/data/region/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/si.txt b/source/data/region/si.txt
index 24e61f3..224fb7d 100644
--- a/source/data/region/si.txt
+++ b/source/data/region/si.txt
@@ -89,7 +89,7 @@
         CW{"කුරකාවෝ"}
         CX{"ක්‍රිස්මස් දූපත"}
         CY{"සයිප්‍රසය"}
-        CZ{"චෙක් ජනරජය"}
+        CZ{"චෙක්"}
         DE{"ජර්මනිය"}
         DG{"දියාගෝ ගාර්සියා"}
         DJ{"ජිබුටි"}
@@ -108,7 +108,7 @@
         EU{"යුරෝපා සංගමය"}
         FI{"ෆින්ලන්තය"}
         FJ{"ෆීජී"}
-        FK{"ෆෝක්ලන්ත දූපත්"}
+        FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}
         FM{"මයික්‍රොනීසියාව"}
         FO{"ෆැරෝ දූපත්"}
         FR{"ප්‍රංශය"}
@@ -181,7 +181,7 @@
         MF{"ශාන්ත මාර්ටින්"}
         MG{"මැඩගස්කරය"}
         MH{"මාෂල් දූපත්"}
-        MK{"මැසිඩෝනියාව"}
+        MK{"මැසිඩෝනියාව (FYROM)"}
         ML{"මාලි"}
         MM{"මියන්මාරය (බුරුමය)"}
         MN{"මොන්ගෝලියාව"}
@@ -302,10 +302,8 @@
         CD{"කොංගෝව"}
         CG{"කොංගෝ (ජනරජය)"}
         CI{"අයිවරි කෝස්ට්"}
-        CZ{"චෙක්"}
-        FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}
-        MK{"මැසිඩෝනියාව (FYROM)"}
+        CZ{"චෙක් ජනරජය"}
         TL{"නැගෙනහිර ටිමෝරය"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
 }
diff --git a/source/data/region/sk.txt b/source/data/region/sk.txt
index 27b6599..1dbba61 100644
--- a/source/data/region/sk.txt
+++ b/source/data/region/sk.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Vianočný ostrov"}
         CY{"Cyprus"}
-        CZ{"Česká republika"}
+        CZ{"Česko"}
         DE{"Nemecko"}
         DG{"Diego Garcia"}
         DJ{"Džibutsko"}
@@ -181,7 +181,7 @@
         MF{"Svätý Martin (fr.)"}
         MG{"Madagaskar"}
         MH{"Marshallove ostrovy"}
-        MK{"Macedónsko"}
+        MK{"Macedónsko (BJRM)"}
         ML{"Mali"}
         MM{"Mjanmarsko"}
         MN{"Mongolsko"}
@@ -299,8 +299,7 @@
         US{"USA"}
     }
     Countries%variant{
-        CZ{"Česko"}
-        MK{"Macedónsko (BJRM)"}
+        CZ{"Česká republika"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/sl.txt b/source/data/region/sl.txt
index 63015b5..97995a6 100644
--- a/source/data/region/sl.txt
+++ b/source/data/region/sl.txt
@@ -108,7 +108,7 @@
         EU{"Evropska unija"}
         FI{"Finska"}
         FJ{"Fidži"}
-        FK{"Falklandski otoki"}
+        FK{"Falklandski otoki (Malvini)"}
         FM{"Mikronezija"}
         FO{"Ferski otoki"}
         FR{"Francija"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaskar"}
         MH{"Marshallovi otoki"}
-        MK{"Makedonija"}
+        MK{"Makedonija (FYROM)"}
         ML{"Mali"}
         MM{"Mjanmar (Burma)"}
         MN{"Mongolija"}
@@ -302,9 +302,7 @@
         CD{"Kongo (Demokratična republika Kongo)"}
         CG{"Kongo (Republika)"}
         CI{"Côte d’Ivoire"}
-        FK{"Falklandski otoki (Malvini)"}
-        MK{"Makedonija (FYROM)"}
         TL{"Vzhodni Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/smn.txt b/source/data/region/smn.txt
index 8b34b7e..0d94f99 100644
--- a/source/data/region/smn.txt
+++ b/source/data/region/smn.txt
@@ -73,7 +73,7 @@
         ET{"Etiopia"}
         FI{"Suomâ"}
         FJ{"Fidži"}
-        FK{"Falklandsuolluuh"}
+        FK{"Falklandsuolluuh (Malvinassuolluuh)"}
         FM{"Mikronesia littoväldi"}
         FO{"Färsuolluuh"}
         FR{"Ranska"}
@@ -146,6 +146,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Marshallsuolluuh"}
+        MK{"OJT Makedonia"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -260,8 +261,6 @@
     Countries%variant{
         CD{"Kongo demokraattisâš täsiväldi"}
         CG{"Kongo täsiväldi"}
-        FK{"Falklandsuolluuh (Malvinassuolluuh)"}
-        MK{"OJT Makedonia"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sn.txt b/source/data/region/sn.txt
index f13e42e..947a2d0 100644
--- a/source/data/region/sn.txt
+++ b/source/data/region/sn.txt
@@ -226,5 +226,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/so.txt b/source/data/region/so.txt
index 853ad5e..071cc6c 100644
--- a/source/data/region/so.txt
+++ b/source/data/region/so.txt
@@ -228,5 +228,5 @@
         ZW{"Simbaabwe"}
         ZZ{"Far aan la aqoon amase aan saxnayn"}
     }
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
 }
diff --git a/source/data/region/sq.txt b/source/data/region/sq.txt
index 38f4b89..94ef5e9 100644
--- a/source/data/region/sq.txt
+++ b/source/data/region/sq.txt
@@ -89,7 +89,7 @@
         CW{"Kuraçao"}
         CX{"Ishulli i Krishtlindjes"}
         CY{"Qipro"}
-        CZ{"Republika Çeke"}
+        CZ{"Çeki"}
         DE{"Gjermani"}
         DG{"Diego-Garsia"}
         DJ{"Xhibuti"}
@@ -108,7 +108,7 @@
         EU{"Bashkimi Europian"}
         FI{"Finlandë"}
         FJ{"Fixhi"}
-        FK{"Ishujt Falkland"}
+        FK{"Ishujt Falkland (Malvine)"}
         FM{"Mikronezi"}
         FO{"Ishujt Faroe"}
         FR{"Francë"}
@@ -181,7 +181,7 @@
         MF{"Shën-Martin"}
         MG{"Madagaskar"}
         MH{"Ishujt Marshall"}
-        MK{"Maqedoni"}
+        MK{"Maqedoni (IRJM)"}
         ML{"Mali"}
         MM{"Mianmar (Burma)"}
         MN{"Mongoli"}
@@ -302,10 +302,8 @@
         CD{"Kongo (RDK)"}
         CG{"Kongo (Republika)"}
         CI{"Bregu i Fildishtë"}
-        CZ{"Çeki"}
-        FK{"Ishujt Falkland (Malvine)"}
-        MK{"Maqedoni (IRJM)"}
+        CZ{"Republika Çeke"}
         TL{"Timori Lindor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/sr.txt b/source/data/region/sr.txt
index 2b31d23..5c3ef2e 100644
--- a/source/data/region/sr.txt
+++ b/source/data/region/sr.txt
@@ -108,7 +108,7 @@
         EU{"Европска Унија"}
         FI{"Финска"}
         FJ{"Фиџи"}
-        FK{"Фокландска Острва"}
+        FK{"Фокландска (Малвинска) острва"}
         FM{"Микронезија"}
         FO{"Фарска Острва"}
         FR{"Француска"}
@@ -181,7 +181,7 @@
         MF{"Свети Мартин (Француска)"}
         MG{"Мадагаскар"}
         MH{"Маршалска Острва"}
-        MK{"Македонија"}
+        MK{"Македонија (БЈРМ)"}
         ML{"Мали"}
         MM{"Мијанмар (Бурма)"}
         MN{"Монголија"}
@@ -301,9 +301,6 @@
     Countries%variant{
         CD{"Конго (ДРК)"}
         CG{"Конго (Република)"}
-        CZ{"CZ"}
-        FK{"Фокландска (Малвинска) острва"}
-        MK{"Македонија (БЈРМ)"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
 }
diff --git a/source/data/region/sr_Cyrl.txt b/source/data/region/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/region/sr_Cyrl.txt
+++ b/source/data/region/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Cyrl_BA.txt b/source/data/region/sr_Cyrl_BA.txt
index 762edbe..b98c3f0 100644
--- a/source/data/region/sr_Cyrl_BA.txt
+++ b/source/data/region/sr_Cyrl_BA.txt
@@ -9,6 +9,7 @@
         CZ{"Чешка Република"}
         DE{"Њемачка"}
         KN{"Свети Китс и Невис"}
+        MK{"БЈР Македонија"}
         MO{"САР Макао"}
         PM{"Свети Пјер и Микелон"}
         RE{"Реунион"}
@@ -18,8 +19,5 @@
         VG{"Британска Дјевичанска Острва"}
         VI{"Америчка Дјевичанска Острва"}
     }
-    Countries%variant{
-        MK{"БЈР Македонија"}
-    }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Cyrl_ME.txt b/source/data/region/sr_Cyrl_ME.txt
index 27e2b25..46bdb6b 100644
--- a/source/data/region/sr_Cyrl_ME.txt
+++ b/source/data/region/sr_Cyrl_ME.txt
@@ -8,6 +8,7 @@
         CZ{"Чешка Република"}
         DE{"Њемачка"}
         KN{"Свети Китс и Невис"}
+        MK{"БЈР Македонија"}
         PM{"Свети Пјер и Микелон"}
         RE{"Реунион"}
         TL{"Тимор-Лесте (Источни Тимор)"}
@@ -16,8 +17,5 @@
         VG{"Британска Дјевичанска Острва"}
         VI{"Америчка Дјевичанска Острва"}
     }
-    Countries%variant{
-        MK{"БЈР Македонија"}
-    }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Cyrl_XK.txt b/source/data/region/sr_Cyrl_XK.txt
index 1c70900..4b10753 100644
--- a/source/data/region/sr_Cyrl_XK.txt
+++ b/source/data/region/sr_Cyrl_XK.txt
@@ -8,6 +8,7 @@
         CZ{"Чешка Република"}
         HK{"САР Хонгконг"}
         KN{"Свети Китс и Невис"}
+        MK{"БЈР Македонија"}
         MO{"САР Макао"}
         PM{"Свети Пјер и Микелон"}
         RE{"Реунион"}
@@ -15,8 +16,5 @@
         UM{"Мања удаљена острва САД"}
         VC{"Свети Винсент и Гренадини"}
     }
-    Countries%variant{
-        MK{"БЈР Македонија"}
-    }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Latn.txt b/source/data/region/sr_Latn.txt
index 83de120..b6da1e2 100644
--- a/source/data/region/sr_Latn.txt
+++ b/source/data/region/sr_Latn.txt
@@ -109,7 +109,7 @@
         EU{"Evropska Unija"}
         FI{"Finska"}
         FJ{"Fidži"}
-        FK{"Foklandska Ostrva"}
+        FK{"Foklandska (Malvinska) ostrva"}
         FM{"Mikronezija"}
         FO{"Farska Ostrva"}
         FR{"Francuska"}
@@ -182,7 +182,7 @@
         MF{"Sveti Martin (Francuska)"}
         MG{"Madagaskar"}
         MH{"Maršalska Ostrva"}
-        MK{"Makedonija"}
+        MK{"Makedonija (BJRM)"}
         ML{"Mali"}
         MM{"Mijanmar (Burma)"}
         MN{"Mongolija"}
@@ -302,9 +302,6 @@
     Countries%variant{
         CD{"Kongo (DRK)"}
         CG{"Kongo (Republika)"}
-        CZ{"CZ"}
-        FK{"Foklandska (Malvinska) ostrva"}
-        MK{"Makedonija (BJRM)"}
     }
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
 }
diff --git a/source/data/region/sr_Latn_BA.txt b/source/data/region/sr_Latn_BA.txt
index 99cc6da..7da7983 100644
--- a/source/data/region/sr_Latn_BA.txt
+++ b/source/data/region/sr_Latn_BA.txt
@@ -9,6 +9,7 @@
         CZ{"Češka Republika"}
         DE{"Njemačka"}
         KN{"Sveti Kits i Nevis"}
+        MK{"BJR Makedonija"}
         MO{"SAR Makao"}
         PM{"Sveti Pjer i Mikelon"}
         RE{"Reunion"}
@@ -18,8 +19,5 @@
         VG{"Britanska Djevičanska Ostrva"}
         VI{"Američka Djevičanska Ostrva"}
     }
-    Countries%variant{
-        MK{"BJR Makedonija"}
-    }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Latn_ME.txt b/source/data/region/sr_Latn_ME.txt
index 44a4e30..b3f49f1 100644
--- a/source/data/region/sr_Latn_ME.txt
+++ b/source/data/region/sr_Latn_ME.txt
@@ -8,6 +8,7 @@
         CZ{"Češka Republika"}
         DE{"Njemačka"}
         KN{"Sveti Kits i Nevis"}
+        MK{"BJR Makedonija"}
         PM{"Sveti Pjer i Mikelon"}
         RE{"Reunion"}
         TL{"Timor-Leste (Istočni Timor)"}
@@ -16,8 +17,5 @@
         VG{"Britanska Djevičanska Ostrva"}
         VI{"Američka Djevičanska Ostrva"}
     }
-    Countries%variant{
-        MK{"BJR Makedonija"}
-    }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sr_Latn_XK.txt b/source/data/region/sr_Latn_XK.txt
index 188f7a8..88d77f1 100644
--- a/source/data/region/sr_Latn_XK.txt
+++ b/source/data/region/sr_Latn_XK.txt
@@ -8,6 +8,7 @@
         CZ{"Češka Republika"}
         HK{"SAR Hongkong"}
         KN{"Sveti Kits i Nevis"}
+        MK{"BJR Makedonija"}
         MO{"SAR Makao"}
         PM{"Sveti Pjer i Mikelon"}
         RE{"Reunion"}
@@ -15,8 +16,5 @@
         UM{"Manja udaljena ostrva SAD"}
         VC{"Sveti Vinsent i Grenadini"}
     }
-    Countries%variant{
-        MK{"BJR Makedonija"}
-    }
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sv.txt b/source/data/region/sv.txt
index 58e4434..154b4c9 100644
--- a/source/data/region/sv.txt
+++ b/source/data/region/sv.txt
@@ -181,7 +181,7 @@
         MF{"Saint-Martin"}
         MG{"Madagaskar"}
         MH{"Marshallöarna"}
-        MK{"Makedonien"}
+        MK{"f.d. jugoslaviska republiken Makedonien"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongoliet"}
@@ -301,7 +301,6 @@
     Countries%variant{
         CD{"Demokratiska republiken Kongo"}
         CG{"Republiken Kongo"}
-        MK{"f.d. jugoslaviska republiken Makedonien"}
     }
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/sw.txt b/source/data/region/sw.txt
index 08330e7..c3603da 100644
--- a/source/data/region/sw.txt
+++ b/source/data/region/sw.txt
@@ -89,7 +89,7 @@
         CW{"Kurakao"}
         CX{"Kisiwa cha Krismasi"}
         CY{"Cyprus"}
-        CZ{"Jamhuri ya Cheki"}
+        CZ{"Chechia"}
         DE{"Ujerumani"}
         DG{"Diego Garcia"}
         DJ{"Jibuti"}
@@ -108,7 +108,7 @@
         EU{"Umoja wa Ulaya"}
         FI{"Ufini"}
         FJ{"Fiji"}
-        FK{"Visiwa vya Falkland"}
+        FK{"Visiwa vya Falkland (Islas Malvinas)"}
         FM{"Mikronesia"}
         FO{"Visiwa vya Faroe"}
         FR{"Ufaransa"}
@@ -181,7 +181,7 @@
         MF{"Saint Martin"}
         MG{"Madagaska"}
         MH{"Visiwa vya Marshall"}
-        MK{"Macedonia"}
+        MK{"Masedonia (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Burma)"}
         MN{"Mongolia"}
@@ -302,9 +302,8 @@
         CD{"Kongo (DRC)"}
         CG{"Jamhuri ya Kongo"}
         CI{"Ivory Coast"}
-        FK{"Visiwa vya Falkland (Islas Malvinas)"}
-        MK{"Masedonia (FYROM)"}
+        CZ{"Jamhuri ya Cheki"}
         TL{"Timor ya Mashariki"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
 }
diff --git a/source/data/region/sw_CD.txt b/source/data/region/sw_CD.txt
index 95e5d7f..e8d5c9b 100644
--- a/source/data/region/sw_CD.txt
+++ b/source/data/region/sw_CD.txt
@@ -32,5 +32,5 @@
         TL{"Timori ya Mashariki"}
         VN{"Vietnamu"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/sw_KE.txt b/source/data/region/sw_KE.txt
index 243fef9..9c90772 100644
--- a/source/data/region/sw_KE.txt
+++ b/source/data/region/sw_KE.txt
@@ -26,5 +26,5 @@
         TD{"Chadi"}
         VN{"Vietnamu"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ta.txt b/source/data/region/ta.txt
index cddce79..8ffcd1c 100644
--- a/source/data/region/ta.txt
+++ b/source/data/region/ta.txt
@@ -89,7 +89,7 @@
         CW{"குராகவ்"}
         CX{"கிறிஸ்துமஸ் தீவு"}
         CY{"சைப்ரஸ்"}
-        CZ{"செக் குடியரசு"}
+        CZ{"செசியா"}
         DE{"ஜெர்மனி"}
         DG{"டியகோ கார்ஷியா"}
         DJ{"ஜிபௌட்டி"}
@@ -108,7 +108,7 @@
         EU{"ஐரோப்பிய யூனியன்"}
         FI{"பின்லாந்து"}
         FJ{"ஃபிஜி"}
-        FK{"ஃபாக்லாந்து தீவுகள்"}
+        FK{"ஃபாக்லாந்து தீவுகள் (இஸ்லாஸ் மால்வினஸ்)"}
         FM{"மைக்ரோனேஷியா"}
         FO{"ஃபாரோ தீவுகள்"}
         FR{"பிரான்ஸ்"}
@@ -181,7 +181,7 @@
         MF{"செயின்ட் மார்ட்டீன்"}
         MG{"மடகாஸ்கர்"}
         MH{"மார்ஷல் தீவுகள்"}
-        MK{"மாசிடோனியா"}
+        MK{"மாசிடோனியா (ஃபைரோம்)"}
         ML{"மாலி"}
         MM{"மியான்மார் (பர்மா)"}
         MN{"மங்கோலியா"}
@@ -302,10 +302,8 @@
         CD{"காங்கோ (டிஆர்சி)"}
         CG{"காங்கோ (குடியரசு)"}
         CI{"ஐவரி கோஸ்ட்"}
-        CZ{"செசியா"}
-        FK{"ஃபாக்லாந்து தீவுகள் (இஸ்லாஸ் மால்வினஸ்)"}
-        MK{"மாசிடோனியா (ஃபைரோம்)"}
+        CZ{"செக் குடியரசு"}
         TL{"கிழக்கு தைமூர்"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
 }
diff --git a/source/data/region/te.txt b/source/data/region/te.txt
index d5b3718..944adda 100644
--- a/source/data/region/te.txt
+++ b/source/data/region/te.txt
@@ -89,7 +89,7 @@
         CW{"కురాకవో"}
         CX{"క్రిస్మస్ దీవి"}
         CY{"సైప్రస్"}
-        CZ{"చెక్ రిపబ్లిక్"}
+        CZ{"చెక్‌చియ"}
         DE{"జర్మనీ"}
         DG{"డియాగో గార్సియా"}
         DJ{"జిబౌటి"}
@@ -108,7 +108,7 @@
         EU{"యూరోపియన్ యూనియన్"}
         FI{"ఫిన్లాండ్"}
         FJ{"ఫిజీ"}
-        FK{"ఫాక్‌ల్యాండ్ దీవులు"}
+        FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}
         FM{"మైక్రోనేషియా"}
         FO{"ఫారో దీవులు"}
         FR{"ఫ్రాన్స్‌"}
@@ -181,7 +181,7 @@
         MF{"సెంట్ మార్టిన్"}
         MG{"మడగాస్కర్"}
         MH{"మార్షల్ దీవులు"}
-        MK{"మేసిడోనియా"}
+        MK{"మేసిడోనియా (FYROM)"}
         ML{"మాలి"}
         MM{"మయన్మార్ (బర్మా)"}
         MN{"మంగోలియా"}
@@ -302,10 +302,8 @@
         CD{"కాంగో (DRC)"}
         CG{"కాంగో (రిపబ్లిక్)"}
         CI{"ఐవరీ కోస్ట్"}
-        CZ{"చెక్‌చియ"}
-        FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}
-        MK{"మేసిడోనియా (FYROM)"}
+        CZ{"చెక్ రిపబ్లిక్"}
         TL{"తూర్పు తైమూర్"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/teo.txt b/source/data/region/teo.txt
index a3831c1..0de860a 100644
--- a/source/data/region/teo.txt
+++ b/source/data/region/teo.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/th.txt b/source/data/region/th.txt
index b3e52bf..2c37b55 100644
--- a/source/data/region/th.txt
+++ b/source/data/region/th.txt
@@ -89,7 +89,7 @@
         CW{"คูราเซา"}
         CX{"เกาะคริสต์มาส"}
         CY{"ไซปรัส"}
-        CZ{"สาธารณรัฐเช็ก"}
+        CZ{"เช็ก"}
         DE{"เยอรมนี"}
         DG{"ดิเอโกการ์เซีย"}
         DJ{"จิบูตี"}
@@ -108,7 +108,7 @@
         EU{"สหภาพยุโรป"}
         FI{"ฟินแลนด์"}
         FJ{"ฟิจิ"}
-        FK{"หมู่เกาะฟอล์กแลนด์"}
+        FK{"หมู่เกาะฟอล์กแลนด์ (อิสลาส มาลวินาส)"}
         FM{"ไมโครนีเซีย"}
         FO{"หมู่เกาะแฟโร"}
         FR{"ฝรั่งเศส"}
@@ -181,7 +181,7 @@
         MF{"เซนต์มาติน"}
         MG{"มาดากัสการ์"}
         MH{"หมู่เกาะมาร์แชลล์"}
-        MK{"มาซิโดเนีย"}
+        MK{"มาซิโดเนีย (FYROM)"}
         ML{"มาลี"}
         MM{"เมียนมาร์ (พม่า)"}
         MN{"มองโกเลีย"}
@@ -302,10 +302,8 @@
         CD{"คองโก (สาธารณรัฐประชาธิปไตย)"}
         CG{"คองโก (สาธารณรัฐ)"}
         CI{"ไอวอรี่โคสต์"}
-        CZ{"เช็ก"}
-        FK{"หมู่เกาะฟอล์กแลนด์ (อิสลาส มาลวินาส)"}
-        MK{"มาซิโดเนีย (FYROM)"}
+        CZ{"สาธารณรัฐเช็ก"}
         TL{"ติมอร์ตะวันออก"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ti.txt b/source/data/region/ti.txt
index 890af45..2eeeb43 100644
--- a/source/data/region/ti.txt
+++ b/source/data/region/ti.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ti{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/to.txt b/source/data/region/to.txt
index 3f4042c..f3e2a0e 100644
--- a/source/data/region/to.txt
+++ b/source/data/region/to.txt
@@ -89,7 +89,7 @@
         CW{"Kulasao"}
         CX{"Motu Kilisimasi"}
         CY{"Saipalesi"}
-        CZ{"Lipapilika Seki"}
+        CZ{"Sēkia"}
         DE{"Siamane"}
         DG{"Tieko Kāsia"}
         DJ{"Siputi"}
@@ -181,7 +181,7 @@
         MF{"Sā Mātini (fakafalanisē)"}
         MG{"Matakasika"}
         MH{"ʻOtumotu Māsolo"}
-        MK{"Masetōnia"}
+        MK{"Masetōnia (FYROM)"}
         ML{"Māli"}
         MM{"Pema"}
         MN{"Mongokōlia"}
@@ -299,8 +299,7 @@
     Countries%variant{
         CD{"Kongo (LTK)"}
         CG{"Kongo (Lipapilika)"}
-        CZ{"Sēkia"}
-        MK{"Masetōnia (FYROM)"}
+        CZ{"Lipapilika Seki"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/region/tr.txt b/source/data/region/tr.txt
index 822189f..1c771e9 100644
--- a/source/data/region/tr.txt
+++ b/source/data/region/tr.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Christmas Adası"}
         CY{"Kıbrıs"}
-        CZ{"Çek Cumhuriyeti"}
+        CZ{"Çekya"}
         DE{"Almanya"}
         DG{"Diego Garcia"}
         DJ{"Cibuti"}
@@ -108,7 +108,7 @@
         EU{"Avrupa Birliği"}
         FI{"Finlandiya"}
         FJ{"Fiji"}
-        FK{"Falkland Adaları"}
+        FK{"Falkland Adaları (Malvinas Adaları)"}
         FM{"Mikronezya"}
         FO{"Faroe Adaları"}
         FR{"Fransa"}
@@ -301,9 +301,8 @@
     Countries%variant{
         CD{"Kongo Demokratik Cumhuriyeti"}
         CG{"Kongo Cumhuriyeti"}
-        CZ{"Çekya"}
-        FK{"Falkland Adaları (Malvinas Adaları)"}
+        CZ{"Çek Cumhuriyeti"}
         TL{"Doğu Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/twq.txt b/source/data/region/twq.txt
index 09d4e12..3fc22f1 100644
--- a/source/data/region/twq.txt
+++ b/source/data/region/twq.txt
@@ -227,5 +227,5 @@
         ZM{"Zambi"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/tzm.txt b/source/data/region/tzm.txt
index 3feba0a..6636534 100644
--- a/source/data/region/tzm.txt
+++ b/source/data/region/tzm.txt
@@ -227,5 +227,5 @@
         ZM{"Zambya"}
         ZW{"Zimbabwi"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/ug.txt b/source/data/region/ug.txt
index 25c753d..d960408 100644
--- a/source/data/region/ug.txt
+++ b/source/data/region/ug.txt
@@ -108,7 +108,7 @@
         EU{"ياۋروپا ئىتتىپاقى"}
         FI{"فىنلاندىيە"}
         FJ{"فىجى"}
-        FK{"فالكلاند ئاراللىرى"}
+        FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}
         FM{"مىكرونېزىيە"}
         FO{"فارو ئاراللىرى"}
         FR{"فىرانسىيە"}
@@ -181,7 +181,7 @@
         MF{"ساينت مارتىن"}
         MG{"ماداغاسقار"}
         MH{"مارشال ئاراللىرى"}
-        MK{"ماكېدونىيە"}
+        MK{"ماكېدونىيە (س ي م ج)"}
         ML{"مالى"}
         MM{"بىرما"}
         MN{"موڭغۇلىيە"}
@@ -300,8 +300,6 @@
         CD{"كونگو (ك د ج)"}
         CG{"كونگو (جۇمھۇرىيىتى)"}
         CI{"پىل چىشى قىرغىقى"}
-        FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}
-        MK{"ماكېدونىيە (س ي م ج)"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/uk.txt b/source/data/region/uk.txt
index c8f4b3a..d0cad46 100644
--- a/source/data/region/uk.txt
+++ b/source/data/region/uk.txt
@@ -89,7 +89,7 @@
         CW{"Кюрасао"}
         CX{"Острів Різдва"}
         CY{"Кіпр"}
-        CZ{"Чеська Республіка"}
+        CZ{"Чехія"}
         DE{"Німеччина"}
         DG{"Дієго-Гарсія"}
         DJ{"Джибуті"}
@@ -108,8 +108,8 @@
         EU{"Європейський Союз"}
         FI{"Фінляндія"}
         FJ{"Фіджі"}
-        FK{"Фолклендські острови"}
-        FM{"Мікронезія Федеративні Штати"}
+        FK{"Фолклендські (Мальвінські) острови"}
+        FM{"Мікронезія"}
         FO{"Фарерські Острови"}
         FR{"Франція"}
         GA{"Габон"}
@@ -181,7 +181,7 @@
         MF{"Сен-Мартен"}
         MG{"Мадагаскар"}
         MH{"Маршаллові Острови"}
-        MK{"Македонія"}
+        MK{"Македонія (КЮРМ)"}
         ML{"Малі"}
         MM{"Мʼянма (Бірма)"}
         MN{"Монголія"}
@@ -302,11 +302,9 @@
         CD{"Конго (ДРК)"}
         CG{"Конго (Республіка)"}
         CI{"Берег Слонової Кістки"}
-        CZ{"Чехія"}
-        FK{"Фолклендські (Мальвінські) острови"}
+        CZ{"Чеська Республіка"}
         FM{"Федеративні Штати Мікронезії"}
-        MK{"Македонія (КЮРМ)"}
         TL{"Східний Тимор"}
     }
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/region/ur.txt b/source/data/region/ur.txt
index 06b05f3..26c3569 100644
--- a/source/data/region/ur.txt
+++ b/source/data/region/ur.txt
@@ -89,7 +89,7 @@
         CW{"کیوراکاؤ"}
         CX{"جزیرہ کرسمس"}
         CY{"قبرص"}
-        CZ{"چیک جمہوریہ"}
+        CZ{"زکھیا"}
         DE{"جرمنی"}
         DG{"ڈائجو گارسیا"}
         DJ{"جبوتی"}
@@ -108,7 +108,7 @@
         EU{"یوروپی یونین"}
         FI{"فن لینڈ"}
         FJ{"فجی"}
-        FK{"فاکلینڈ جزائر"}
+        FK{"فاکلینڈ جزائر (مالویناس)"}
         FM{"مائکرونیشیا"}
         FO{"جزائر فارو"}
         FR{"فرانس"}
@@ -181,7 +181,7 @@
         MF{"سینٹ مارٹن"}
         MG{"مڈغاسکر"}
         MH{"مارشل آئلینڈز"}
-        MK{"مقدونیہ"}
+        MK{"مقدونیہ (FYROM)"}
         ML{"مالی"}
         MM{"میانمار (برما)"}
         MN{"منگولیا"}
@@ -302,10 +302,8 @@
         CD{"کانگو (DRC)"}
         CG{"کانگو (جمہوریہ)"}
         CI{"آئیوری کوسٹ"}
-        CZ{"زکھیا"}
-        FK{"فاکلینڈ جزائر (مالویناس)"}
-        MK{"مقدونیہ (FYROM)"}
+        CZ{"چیک جمہوریہ"}
         TL{"مشرقی تیمور"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/ur_IN.txt b/source/data/region/ur_IN.txt
index 554e077..a1ef7c7 100644
--- a/source/data/region/ur_IN.txt
+++ b/source/data/region/ur_IN.txt
@@ -9,7 +9,7 @@
         CK{"جزائر کک"}
         CP{"جزیرہ کلپرٹن"}
         DG{"ڈیگو گارشیا"}
-        FK{"جزائر فاکلینڈ"}
+        FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}
         FO{"جزائر فیرو"}
         GF{"فرانسیسی گیانا"}
         HM{"جزائر ہرڈ و مکڈونلڈ"}
@@ -26,8 +26,5 @@
         VG{"برطانوی جزائر ورجن"}
         VI{"امریکی جزائر ورجن"}
     }
-    Countries%variant{
-        FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}
-    }
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/uz.txt b/source/data/region/uz.txt
index cc57696..f8c56b6 100644
--- a/source/data/region/uz.txt
+++ b/source/data/region/uz.txt
@@ -89,7 +89,7 @@
         CW{"Kyurasao"}
         CX{"Rojdestvo oroli"}
         CY{"Kipr"}
-        CZ{"Chexiya Respublikasi"}
+        CZ{"Chexiya"}
         DE{"Germaniya"}
         DG{"Diyego-Garsiya"}
         DJ{"Jibuti"}
@@ -108,7 +108,7 @@
         EU{"Yevropa Ittifoqi"}
         FI{"Finlandiya"}
         FJ{"Fiji"}
-        FK{"Folklend orollari"}
+        FK{"Folklend (Malvin) orollari"}
         FM{"Mikroneziya"}
         FO{"Farer orollari"}
         FR{"Fransiya"}
@@ -181,7 +181,7 @@
         MF{"Sent-Martin"}
         MG{"Madagaskar"}
         MH{"Marshall orollari"}
-        MK{"Makedoniya"}
+        MK{"Makedoniya (SYRM)"}
         ML{"Mali"}
         MM{"Myanma (Birma)"}
         MN{"Mongoliya"}
@@ -302,10 +302,8 @@
         CD{"Kongo (KDR)"}
         CG{"Kongo (Respublika)"}
         CI{"Fil suyagi qirg‘og‘i"}
-        CZ{"Chexiya"}
-        FK{"Folklend (Malvin) orollari"}
-        MK{"Makedoniya (SYRM)"}
+        CZ{"Chexiya Respublikasi"}
         TL{"Sharqiy Timor"}
     }
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
 }
diff --git a/source/data/region/uz_Arab.txt b/source/data/region/uz_Arab.txt
index a6eb493..96485ca 100644
--- a/source/data/region/uz_Arab.txt
+++ b/source/data/region/uz_Arab.txt
@@ -5,5 +5,5 @@
     Countries{
         AF{"افغانستان"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/uz_Cyrl.txt b/source/data/region/uz_Cyrl.txt
index 6c9addc..fc03e14 100644
--- a/source/data/region/uz_Cyrl.txt
+++ b/source/data/region/uz_Cyrl.txt
@@ -90,7 +90,7 @@
         CW{"Кюрасао"}
         CX{"Рождество ороли"}
         CY{"Кипр"}
-        CZ{"Чехия Республикаси"}
+        CZ{"Чехия"}
         DE{"Германия"}
         DG{"Диего-Гарсия"}
         DJ{"Жибути"}
@@ -109,7 +109,7 @@
         EU{"Европа Иттифоқи"}
         FI{"Финляндия"}
         FJ{"Фижи"}
-        FK{"Фолкленд ороллари"}
+        FK{"Фолкленд (Малвин) ороллари"}
         FM{"Микронезия"}
         FO{"Фарер ороллари"}
         FR{"Франция"}
@@ -182,7 +182,7 @@
         MF{"Сент-Мартин"}
         MG{"Мадагаскар"}
         MH{"Маршал ороллари"}
-        MK{"Македония"}
+        MK{"Македония (СЮРМ)"}
         ML{"Мали"}
         MM{"Мьянма (Бирма)"}
         MN{"Монголия"}
@@ -301,10 +301,8 @@
         CD{"Конго (КДР)"}
         CG{"Конго (Республика)"}
         CI{"Фил Суяги Қирғоғи"}
-        CZ{"Чехия"}
-        FK{"Фолкленд (Малвин) ороллари"}
-        MK{"Македония (СЮРМ)"}
+        CZ{"Чехия Республикаси"}
         TL{"Шарқий Тимор"}
     }
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/uz_Latn.txt b/source/data/region/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/region/uz_Latn.txt
+++ b/source/data/region/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/vai.txt b/source/data/region/vai.txt
index 5db15e4..07e5257 100644
--- a/source/data/region/vai.txt
+++ b/source/data/region/vai.txt
@@ -226,5 +226,5 @@
         ZM{"ꕤꔭꕩ"}
         ZW{"ꔽꕓꖜꔃ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/vai_Latn.txt b/source/data/region/vai_Latn.txt
index 30b9b94..c07b38f 100644
--- a/source/data/region/vai_Latn.txt
+++ b/source/data/region/vai_Latn.txt
@@ -227,5 +227,5 @@
         ZM{"Zambiya"}
         ZW{"Zimbabhuwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/vai_Vaii.txt b/source/data/region/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/region/vai_Vaii.txt
+++ b/source/data/region/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/vi.txt b/source/data/region/vi.txt
index 5a932f8..402adcd 100644
--- a/source/data/region/vi.txt
+++ b/source/data/region/vi.txt
@@ -89,7 +89,7 @@
         CW{"Curaçao"}
         CX{"Đảo Giáng Sinh"}
         CY{"Síp"}
-        CZ{"Cộng hòa Séc"}
+        CZ{"Czechia"}
         DE{"Đức"}
         DG{"Diego Garcia"}
         DJ{"Djibouti"}
@@ -108,7 +108,7 @@
         EU{"Liên Minh Châu Âu"}
         FI{"Phần Lan"}
         FJ{"Fiji"}
-        FK{"Quần đảo Falkland"}
+        FK{"Quần đảo Falkland (Islas Malvinas)"}
         FM{"Micronesia"}
         FO{"Quần đảo Faroe"}
         FR{"Pháp"}
@@ -181,7 +181,7 @@
         MF{"St. Martin"}
         MG{"Madagascar"}
         MH{"Quần đảo Marshall"}
-        MK{"Macedonia"}
+        MK{"Macedonia (FYROM)"}
         ML{"Mali"}
         MM{"Myanmar (Miến Điện)"}
         MN{"Mông Cổ"}
@@ -302,10 +302,8 @@
         CD{"Cộng hòa Dân chủ Congo"}
         CG{"Cộng hòa Congo"}
         CI{"Bờ Biển Ngà"}
-        CZ{"Czechia"}
-        FK{"Quần đảo Falkland (Islas Malvinas)"}
-        MK{"Macedonia (FYROM)"}
+        CZ{"Cộng hòa Séc"}
         TL{"Đông Timor"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
 }
diff --git a/source/data/region/vun.txt b/source/data/region/vun.txt
index 9c75b38..b4dbb6d 100644
--- a/source/data/region/vun.txt
+++ b/source/data/region/vun.txt
@@ -227,5 +227,5 @@
         ZM{"Zambia"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/wae.txt b/source/data/region/wae.txt
index 40a13bf..c3fed92 100644
--- a/source/data/region/wae.txt
+++ b/source/data/region/wae.txt
@@ -106,7 +106,7 @@
         EU{"Europäiši Unio"}
         FI{"Finnland"}
         FJ{"Fidši"}
-        FK{"Falklandinslä"}
+        FK{"Falklandinslä (Malwine)"}
         FM{"Mikronesie"}
         FO{"Färöe"}
         FR{"Frankrič"}
@@ -179,7 +179,7 @@
         MF{"St. Martin"}
         MG{"Madagaskar"}
         MH{"Maršalinslä"}
-        MK{"Mazedonie"}
+        MK{"Mazedonie (EJR)"}
         ML{"Mali"}
         MM{"Burma"}
         MN{"Mongolei"}
@@ -291,9 +291,7 @@
         CD{"Kongo (Demokratiši Rebublik)"}
         CG{"Kongo (Rebublik)"}
         CI{"Côte d’Ivoire"}
-        FK{"Falklandinslä (Malwine)"}
-        MK{"Mazedonie (EJR)"}
         TL{"Wešttimor"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/xog.txt b/source/data/region/xog.txt
index 0880a3a..11f2672 100644
--- a/source/data/region/xog.txt
+++ b/source/data/region/xog.txt
@@ -226,5 +226,5 @@
         ZM{"Zambya"}
         ZW{"Zimbabwe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/yav.txt b/source/data/region/yav.txt
index 1a490b2..257abe9 100644
--- a/source/data/region/yav.txt
+++ b/source/data/region/yav.txt
@@ -226,5 +226,5 @@
         ZM{"saambíi"}
         ZW{"simbapuwé"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/yi.txt b/source/data/region/yi.txt
index 108a6fc..6f96c37 100644
--- a/source/data/region/yi.txt
+++ b/source/data/region/yi.txt
@@ -231,5 +231,5 @@
     Countries%variant{
         TL{"מזרח טימאר"}
     }
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/yo.txt b/source/data/region/yo.txt
index 67911b9..bcfbf80 100644
--- a/source/data/region/yo.txt
+++ b/source/data/region/yo.txt
@@ -227,5 +227,5 @@
         ZM{"Orílẹ́ède ṣamibia"}
         ZW{"Orílẹ́ède ṣimibabe"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/yo_BJ.txt b/source/data/region/yo_BJ.txt
index 6075fa6..acf605d 100644
--- a/source/data/region/yo_BJ.txt
+++ b/source/data/region/yo_BJ.txt
@@ -227,5 +227,5 @@
         ZM{"Orílɛ́ède shamibia"}
         ZW{"Orílɛ́ède shimibabe"}
     }
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/yue.txt b/source/data/region/yue.txt
index fb97921..0161a3a 100644
--- a/source/data/region/yue.txt
+++ b/source/data/region/yue.txt
@@ -89,7 +89,7 @@
         CW{"庫拉索"}
         CX{"聖誕島"}
         CY{"賽普勒斯"}
-        CZ{"捷克共和國"}
+        CZ{"捷克"}
         DE{"德國"}
         DG{"迪亞哥加西亞島"}
         DJ{"吉布地"}
@@ -108,7 +108,7 @@
         EU{"歐盟"}
         FI{"芬蘭"}
         FJ{"斐濟"}
-        FK{"福克蘭群島"}
+        FK{"福克蘭群島 (馬爾維納斯群島)"}
         FM{"密克羅尼西亞群島"}
         FO{"法羅群島"}
         FR{"法國"}
@@ -181,7 +181,7 @@
         MF{"法屬聖馬丁"}
         MG{"馬達加斯加"}
         MH{"馬紹爾群島"}
-        MK{"馬其頓"}
+        MK{"前南斯拉夫馬其頓共和國"}
         ML{"馬利"}
         MM{"緬甸"}
         MN{"蒙古"}
@@ -299,9 +299,7 @@
     Countries%variant{
         CD{"剛果民主共和國"}
         CG{"剛果共和國"}
-        CZ{"捷克"}
-        FK{"福克蘭群島 (馬爾維納斯群島)"}
-        MK{"前南斯拉夫馬其頓共和國"}
+        CZ{"捷克共和國"}
     }
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
 }
diff --git a/source/data/region/zgh.txt b/source/data/region/zgh.txt
index b4ae331..6c4e4f1 100644
--- a/source/data/region/zgh.txt
+++ b/source/data/region/zgh.txt
@@ -230,5 +230,5 @@
         ZM{"ⵣⴰⵎⴱⵢⴰ"}
         ZW{"ⵣⵉⵎⴱⴰⴱⵡⵉ"}
     }
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/zh.txt b/source/data/region/zh.txt
index 8ae57e3..c2fb022 100644
--- a/source/data/region/zh.txt
+++ b/source/data/region/zh.txt
@@ -89,7 +89,7 @@
         CW{"库拉索"}
         CX{"圣诞岛"}
         CY{"塞浦路斯"}
-        CZ{"捷克共和国"}
+        CZ{"捷克"}
         DE{"德国"}
         DG{"迪戈加西亚岛"}
         DJ{"吉布提"}
@@ -108,7 +108,7 @@
         EU{"欧盟"}
         FI{"芬兰"}
         FJ{"斐济"}
-        FK{"福克兰群岛"}
+        FK{"福克兰群岛(马尔维纳斯群岛)"}
         FM{"密克罗尼西亚"}
         FO{"法罗群岛"}
         FR{"法国"}
@@ -181,7 +181,7 @@
         MF{"圣马丁岛"}
         MG{"马达加斯加"}
         MH{"马绍尔群岛"}
-        MK{"马其顿"}
+        MK{"马其顿(前南斯拉夫马其顿共和国)"}
         ML{"马里"}
         MM{"缅甸"}
         MN{"蒙古"}
@@ -302,9 +302,7 @@
         CD{"刚果民主共和国"}
         CG{"刚果共和国"}
         CI{"象牙海岸"}
-        CZ{"捷克"}
-        FK{"福克兰群岛(马尔维纳斯群岛)"}
-        MK{"马其顿(前南斯拉夫马其顿共和国)"}
+        CZ{"捷克共和国"}
     }
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
 }
diff --git a/source/data/region/zh_Hans.txt b/source/data/region/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/region/zh_Hans.txt
+++ b/source/data/region/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/zh_Hant.txt b/source/data/region/zh_Hant.txt
index d6ec460..d7e63aa 100644
--- a/source/data/region/zh_Hant.txt
+++ b/source/data/region/zh_Hant.txt
@@ -90,7 +90,7 @@
         CW{"庫拉索"}
         CX{"聖誕島"}
         CY{"賽普勒斯"}
-        CZ{"捷克共和國"}
+        CZ{"捷克"}
         DE{"德國"}
         DG{"迪亞哥加西亞島"}
         DJ{"吉布地"}
@@ -109,7 +109,7 @@
         EU{"歐盟"}
         FI{"芬蘭"}
         FJ{"斐濟"}
-        FK{"福克蘭群島"}
+        FK{"福克蘭群島(馬爾維納斯群島)"}
         FM{"密克羅尼西亞群島"}
         FO{"法羅群島"}
         FR{"法國"}
@@ -182,7 +182,7 @@
         MF{"法屬聖馬丁"}
         MG{"馬達加斯加"}
         MH{"馬紹爾群島"}
-        MK{"馬其頓"}
+        MK{"前南斯拉夫馬其頓共和國"}
         ML{"馬利"}
         MM{"緬甸"}
         MN{"蒙古"}
@@ -302,9 +302,7 @@
     Countries%variant{
         CD{"剛果民主共和國"}
         CG{"剛果共和國"}
-        CZ{"捷克"}
-        FK{"福克蘭群島(馬爾維納斯群島)"}
-        MK{"前南斯拉夫馬其頓共和國"}
+        CZ{"捷克共和國"}
     }
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
 }
diff --git a/source/data/region/zh_Hant_HK.txt b/source/data/region/zh_Hant_HK.txt
index 160fdb2..5ff25d5 100644
--- a/source/data/region/zh_Hant_HK.txt
+++ b/source/data/region/zh_Hant_HK.txt
@@ -98,5 +98,5 @@
     Countries%variant{
         CI{"象牙海岸"}
     }
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/zh_Hant_MO.txt b/source/data/region/zh_Hant_MO.txt
index 1814082..78fdee5 100644
--- a/source/data/region/zh_Hant_MO.txt
+++ b/source/data/region/zh_Hant_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_MO{
     %%Parent{"zh_Hant_HK"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/region/zu.txt b/source/data/region/zu.txt
index 150f0db..5d2bd29 100644
--- a/source/data/region/zu.txt
+++ b/source/data/region/zu.txt
@@ -89,7 +89,7 @@
         CW{"i-Curaçao"}
         CX{"i-Christmas Island"}
         CY{"i-Cyprus"}
-        CZ{"i-Czech Republic"}
+        CZ{"i-Czechia"}
         DE{"i-Germany"}
         DG{"i-Diego Garcia"}
         DJ{"i-Djibouti"}
@@ -108,7 +108,7 @@
         EU{"i-European Union"}
         FI{"i-Finland"}
         FJ{"i-Fiji"}
-        FK{"i-Falkland Islands"}
+        FK{"i-Falkland Islands (Islas Malvinas)"}
         FM{"i-Micronesia"}
         FO{"i-Faroe Islands"}
         FR{"i-France"}
@@ -181,7 +181,7 @@
         MF{"i-Saint Martin"}
         MG{"i-Madagascar"}
         MH{"i-Marshall Islands"}
-        MK{"i-Macedonia"}
+        MK{"i-Macedonia (FYROM)"}
         ML{"iMali"}
         MM{"i-Myanmar (Burma)"}
         MN{"i-Mongolia"}
@@ -302,10 +302,8 @@
         CD{"i-Congo (DRC)"}
         CG{"i-Congo (Republic)"}
         CI{"i-Ivory Coast"}
-        CZ{"i-Czechia"}
-        FK{"i-Falkland Islands (Islas Malvinas)"}
-        MK{"i-Macedonia (FYROM)"}
+        CZ{"i-Czech Republic"}
         TL{"i-East Timor"}
     }
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/translit/Hani_Latn.txt b/source/data/translit/Hani_Latn.txt
index 4b9e3af..7e7210d 100644
--- a/source/data/translit/Hani_Latn.txt
+++ b/source/data/translit/Hani_Latn.txt
@@ -13,8 +13,11 @@
 藏 } \u0020? 文 →zàng;# 藏 is zàng (not cáng) if followed by 文 wén: 藏文 language Zàngwén = Tibetan
 重 } \u0020? 庆 →chóng;# 重 is chóng (not zhòng) if followed by 庆 qìng: 重庆 city Chóngqìng
 沈 } \u0020? 阳 →shěn;# 沈 is shěn (not chén) if followed by 阳 yáng: 沈阳 city Shěnyáng
+# Google patch: change of three rules based on issue description in CLDR ticket 9925:
+# http://unicode.org/cldr/trac/ticket/9925. The changes are in the premises of the rules that
+# map to 'dūn', to 'duì', and to gǔ, respectively.
 # START AUTOGENERATED Han-Latin.xml ( Unihan kMandarin)
-[呵腌锕阿𠼞𥥩𨉚]→ā;
+[锕阿𠼞𥥩𨉚]→ā;
 [嗄]→á;
 [啊]→a;
 [㶼哀哎唉嗳噯埃娭挨欸溾銰鎄锿𠳳𡉓𡟓𢰇𤸖]→āi;
@@ -24,20 +27,20 @@
 [㛺㞄㫨㸩䀂䅖䢿侒媕安峖庵桉氨痷盦盫腤菴萻葊蓭誝諳谙鞌鞍韽馣鵪鶕鹌𠽪𡯏𢰍𣚖𧩸𧫥𧫧𧮍𩽾𪁟𪘒]→ān;
 [䜙儑啽玵雸𡪁𡽜𣵱]→án;
 [㜝㽢俺唵垵埯揞罯銨铵隌𠉬𤃷𤜁𥦍𦺽𩅝𩈴]→ǎn;
-[㟁㱘䅁䬓䮗䯥堓婩岸按晻暗案洝犴胺荌豻貋錌闇頇鮟黯𠰑𡎑𡪙𡹼𣆛𣣚𣽥𤞿𤟉𥏮𥳬𧖮𨲊𩓤𩭢𩹎]→àn;
+[㟁㱘䅁䬓䮗䯥堓婩岸按晻暗案洝犴胺荌豻貋錌闇鮟黯𠰑𡎑𡪙𡹼𣆛𣣚𣽥𤞿𤟉𥏮𥳬𧖮𨲊𩓤𩭢𩹎]→àn;
 [肮骯𠵫𡕉]→āng;
 [㭿䀚䒢䩕䭹卬岇昂昻𤭒𩑝𩔘]→áng;
 [䇦䭺𦫫]→ǎng;
 [㼜枊盎醠𠹃𡵙𢓋𣉗𣖮𩉰𩜟]→àng;
 [㕭㩠䫜凹柪梎爊軪𤏶𧅃𧨲𩥊𪃨]→āo;
-[㟼㠂㿰䥝䦋䵅厫嗷嗸嚣嶅廒摮敖滶熬獒獓璈磝翱翶翺聱蔜螯謷謸遨鏖隞鰲鳌鷔鼇𡊛𡏼𢧴𣊁𣷫𥂢𦪈𩘮𩮯𩱏𪉑]→áo;
+[㟼㠂㿰䥝䦋䵅厫嗷嗸嶅廒摮敖滶熬獒獓璈磝翱翶翺聱蔜螯謷謸遨鏖隞鰲鳌鷔鼇𡊛𡏼𢧴𣊁𣷫𥂢𦪈𩘮𩮯𩱏𪉑]→áo;
 [㑃㤇䯠䴈媪媼抝拗芺袄襖镺𢁱𥜌𦽀𩈏𩑤𩣻𪁾]→ǎo;
 [㘬㘭㜜㜩㠗㥿䐿䜒䫨䮯傲坳垇墺奡奥奧嫯岙岰嶴慠懊扷擙澳鏊隩驁骜𢕟𢳆𤺾𥑑𩑍𩕀𩟇𩼈]→ào;
-[㭭㸭㺴㿬䰾丷仈八哵夿岜峇巼扒捌朳柭玐疤粑羓芭蚆豝釛釟鈀魞鲃𠛋𠵺𡚭𢠭𢻷𤜱𤣸𤤒𦓧𧎱𧲧𨊹𩚥𩠀𩡩]→bā;
+[㭭㸭㺴㿬䰾丷仈八叭哵夿岜峇巴巼扒捌朳柭玐疤笆粑羓芭蚆豝釛釟魞鲃𠛋𠵺𡚭𢠭𢻷𤜱𤣸𤤒𦓧𧎱𧲧𨊹𩚥𩠀𩡩]→bā;
 [㔜䟦䮂䳊叐坺墢妭抜拔炦犮癹胈茇菝詙跋軷颰魃鼥𢇷𥎱𦳺𧺡𧺺𩊤𩖽𩙥]→bá;
-[㞎把钯靶𢃳𢺞]→bǎ;
-[㶚䃻䆉䇑䎬䎱䩗䩻䶕坝垻壩弝欛灞爸矲耙覇跁霸鮊鲅鲌𤜕𥝧𦫙𧿏𩃴𩨜𩹏𩽷]→bà;
-[叭吧巴笆紦罢罷𣬶𣬷]→ba;
+[㞎把鈀钯靶𢃳𢺞]→bǎ;
+[㶚䃻䆉䇑䎬䎱䩗䩻䶕坝垻壩弝欛灞爸矲罢罷耙覇跁霸鮊鲅鲌𤜕𥝧𦫙𧿏𩃴𩨜𩹏𩽷]→bà;
+[吧紦𣬶𣬷]→ba;
 [㓦䪹挀掰擘𢛞𨃅]→bāi;
 [㿟䳆白𥬝𦣺𪡈]→bái;
 [䙓佰捭摆擺柏栢瓸百竡粨絔襬𠫛]→bǎi;
@@ -45,11 +48,11 @@
 [㗑]→bai;
 [䃑䈲扳搬攽斑斒班瘢癍般螌褩辬頒颁鳻𠔯𠚼𠦒𠺚𣪂𤡰𤦦𤫫𤳖𥹓𦎊𧇥𨭉𩔮𩿉𪄕𪉒𪒋]→bān;
 [䉽䬳坂岅昄板版瓪粄舨蝂鈑钣闆阪魬𠧫𡯘𧌿𧿨]→bǎn;
-[㚘㪵伴办半坢姅怑拌柈湴瓣秚絆绊辦鉡靽𠯘𢲔𢴬𥷁𦙹𦝤𨐦𨐱𨐾𩢔]→bàn;
-[扮螁]→ban;
+[㚘㪵伴办半坢姅怑扮拌柈湴瓣秚絆绊辦鉡靽𠯘𢲔𢴬𥷁𦙹𦝤𨐦𨐱𨐾𩢔]→bàn;
+[螁]→ban;
 [㙃㨍㿶䩷垹帮幇幚幫捠梆浜縍邦邫鞤𠲑𠳐𢁏𢸌𣮡𤚰𤱵𦰥𨢐𩍗]→bāng;
 [㮄榜牓綁绑膀髈𣮧𦾭]→bǎng;
-[㭋䂜䎧䖫䧛䰷傍塝搒棒棓玤磅稖艕蒡蚌蜯謗谤镑𠨵𠬣𡽲𢄎𢜗𢮏𢶶𣘙𩦠𩮗]→bàng;
+[㭋䂜䎧䖫䧛䰷傍塝搒棒棓玤磅稖艕蒡蚌蜯謗谤鎊镑𠨵𠬣𡽲𢄎𢜗𢮏𢶶𣘙𩦠𩮗]→bàng;
 [佨勹包孢枹煲笣胞苞蕔褒襃闁齙龅𠅬𠣒𡶄𧵢𨚔]→bāo;
 [㵡㿺䈏䥤䨌䨔䪨嫑窇薄雹𤿈𥭓𦡕𦢊]→báo;
 [㙅㻄䎂䭋䭸䳈䳰䴐保堡堢媬宝宲寚寳寶怉珤緥葆藵褓賲靌飹飽饱駂鳵鴇鸨𠤏𡧖𤞥𨰦𨰻𩛞𩬽𩭼]→bǎo;
@@ -60,16 +63,16 @@
 [呗唄]→bei;
 [奔栟泍犇贲錛锛𣳰𩣺𩧼𪑖]→bēn;
 [㡷㮺奙本楍畚翉苯𣄏]→běn;
-[㤓㨧㮥䬱倴坋坌夯捹撪桳渀獖笨輽逩𣴞𥢊𦯀𨋒𪊜𪎝]→bèn;
-[㔙䑫䨜伻傰嘣奟崩嵭痭祊絣綳閍𠜳𠡮𡡈𡶤𢆸𢉁𢐒𣂤𣨥𤙾𤡭𥛱𥞩𦅈𨕧𨸂𨹹𨻱]→bēng;
+[㤓㨧㮥䬱倴坋坌捹撪桳渀獖笨輽逩𣴞𥢊𦯀𨋒𪊜𪎝]→bèn;
+[㔙䑫䨜伻傰嘣奟崩嵭痭祊絣綳绷閍𠜳𠡮𡡈𡶤𢆸𢉁𢐒𣂤𣨥𤙾𤡭𥛱𥞩𦅈𨕧𨸂𨹹𨻱]→bēng;
 [甭]→béng;
-[㑟䋽䙀䩬䳞埄埲琣琫繃绷菶鞛𤫬𥀂𦂌𧑑𧚭𨓁𩊌𩑚]→běng;
+[㑟䋽䙀䩬䳞埄埲琣琫繃菶鞛𤫬𥀂𦂌𧑑𧚭𨓁𩊌𩑚]→běng;
 [㷯䨻䭰塴泵甏蹦迸逬鏰镚𡎾𡾛𥖗𥦜𦝷𦺑𧩱𧻓𨆊𩂦𩗴𪔑]→bèng;
 [揼]→beng;
 [㡙䚜䫾䮠偪屄楅榌毴螕豍逼鎞鰏鲾鵖𢟵𢡅𣚡𤝸𥏠𧤃𨲋𨻼𩧿𩭧]→bī;
 [䨆䵄嬶荸鼻𣴨𩾳]→bí;
 [㠲㪏㻶䃾䏢䘡䣥佊俾匕吡啚夶妣彼朼柀比沘疕秕笔筆箄粃聛舭貏鄙𠐌𠛡𠧅𠬈𡳄𢩒𢳋𣔓𤹦𤽊𦸣𨅗𨟵𪌄𪐄]→bǐ;
-[㓖㘠㘩㙄㡀㢰㢶㢸㧙㪤㮿㯇㱸㳼㵥㻫㿫䀣䁹䄶䉾䊧䋔䎵䏶䕗䖩䟆䟤䠋䧗䩛䪐䫁䬛䮡䯗佖哔嗶坒堛壁奰妼婢嬖币幣幤庇庳廦弊弻弼彃必怭怶愊愎敝斃枈柲梐毕毖毙湢滗滭潷濞煏熚狴獘獙珌璧畀畁畢疪痹痺皕睤碧祕禆笓筚箅箆篦篳粊綼縪繴罼腷臂苾荜萆萞蓖蓽蔽薜蜌袐裨襅襞襣觱詖诐貱賁贔赑跸蹕躃躄避邲鄨鄪鉍鏎鐴铋閇閉閟闭陛鞸韠飶饆馝駜驆髀髲魓鮅鷝鷩鼊𠈺𠋯𠓷𠡂𠦈𠨘𠩿𠮃𠽩𡚁𡛗𡠚𡻞𡽶𢁽𢅩𢐦𢖬𢘍𢲾𢴩𣁉𣁢𣋹𣘥𣝍𣢠𣥣𣦇𣦢𣩩𣭤𣮐𣯴𤂀𤅹𤐙𤗚𤙞𤜻𤠺𤡝𤢣𤵘𤹝𤻖𥆯𥈗𥛘𥟗𥢦𥳆𥴬𥷑𦂖𦑞𦔆𦠞𦤫𦯛𦰙𦱔𧏻𧒀𧓄𧥑𧫤𧲜𧳠𨋥𨋩𨐨𨚍𨚓𨠔𨵰𨸼𩉫𩊰𩑻𩪖𩪧𩲢𪋜𪍪𪏺]→bì;
+[㓖㘠㘩㙄㡀㢰㢶㢸㧙㪤㮿㯇㱸㳼㵥㻫㿫䀣䁹䄶䉾䊧䋔䎵䏶䕗䖩䟆䟤䠋䧗䩛䪐䫁䬛䮡䯗佖哔嗶坒堛壁奰妼婢嬖币幣幤庇庳廦弊弻弼彃必怭怶愊愎敝斃枈柲梐毕毖毙湢滗滭潷濞煏熚狴獘獙珌璧畀畁畢疪痹痺皕睤碧禆笓筚箅箆篦篳粊綼縪繴罼腷臂苾荜萆萞蓖蓽蔽薜蜌袐裨襅襞襣觱詖诐貱賁贔赑跸蹕躃躄避邲鄨鄪鉍鏎鐴铋閇閉閟闭陛鞸韠飶饆馝駜驆髀髲魓鮅鷝鷩鼊𠈺𠋯𠓷𠡂𠦈𠨘𠩿𠮃𠽩𡚁𡛗𡠚𡻞𡽶𢁽𢅩𢐦𢖬𢘍𢲾𢴩𣁉𣁢𣋹𣘥𣝍𣢠𣥣𣦇𣦢𣩩𣭤𣮐𣯴𤂀𤅹𤐙𤗚𤙞𤜻𤠺𤡝𤢣𤵘𤹝𤻖𥆯𥈗𥛘𥟗𥢦𥳆𥴬𥷑𦂖𦑞𦔆𦠞𦤫𦯛𦰙𦱔𧏻𧒀𧓄𧥑𧫤𧲜𧳠𨋥𨋩𨐨𨚍𨚓𨠔𨵰𨸼𩉫𩊰𩑻𩪖𩪧𩲢𪋜𪍪𪏺]→bì;
 [䟍揙煸牑猵獱甂砭笾箯籩編编蝙边辺邉邊鍽鞭鯾鯿鳊𠐈𠑟𢩟𢻶𣩀𤄺𦇭𨖾𨩫𪏗𪓍]→biān;
 [㦚䁵匾惼扁碥稨窆糄萹藊褊貶贬鴘𠓫𠪂𡈯𡬯𡬲𡬸𢴂𤀫𥣝𥣰𦟣𦽟𨖠𪖯]→biǎn;
 [㝸㣐㭓㲢㳎㳒㴜㵷㺹䉸䒪䛒䡢䪻便卞变変峅弁徧忭抃昪汳汴玣緶缏艑苄覍變辡辧-辩辫辮辯遍釆閞𠭹𠯴𠷖𢭥𣈠𣝜𣪭𣸇𤀲𤺇𤻶𥍚𦉙𧩰𨚕𨧕𨳲𩩯𩰍𪉱]→biàn;
@@ -88,11 +91,11 @@
 [䔊仌仒兵冫冰掤氷鋲𡲍𢎴𥲂𨹗𩋒𪑰]→bīng;
 [㨀䴵丙怲抦摒昞昺柄棅炳眪禀秉稟窉苪蛃邴鈵鉼陃鞆鞞餅餠饼𠒝𠛥𠱛𡇤𡖛𡚛𡹾𣦪𦼹𩊖𩏂𩶁]→bǐng;
 [㓈䗒並併倂偋傡垪寎并幷庰栤病竝誁靐鮩𠊧𢆩𢊜𢔧𣰜𥖬𦡻𦿅𨆱𨋲𩬝𩮟]→bìng;
-[㞈䃗䝛䭦僠剝剥哱嶓帗拨撥播波溊玻癶癷盋砵碆紴缽菠袚袰蹳鉢钵餑饽驋鮁鱍𠱀𠺣𡀖𢂍𤗳𤜧𥮯𦲱𧙄𧲯𨭂𩜥𩧯𩬸𩯌]→bō;
-[㗘㟑㩧㩭㪍㬍㬧㴾㶿㹀㼎㼟㼣䂍䊿䌟䍸䑈䗚䙏䞳䟛䢌䢪䥬䪇䪬䬪䭯䮀䯋䰊䳁䵗䶈亳仢伯侼僰勃博嚗帛愽懪挬搏欂浡淿渤煿牔犦犻狛猼瓝瓟礡礴秡箔簙肑胉脖舶艊苩葧袯袹襏襮豰踣郣鈸鉑鋍鎛鑮钹铂镈餺馎馛馞駁駮驳髆髉鵓鹁𠧛𠮭𠷺𠸳𡋯𢐾𢠺𢣞𢩞𢫯𢺽𣋵𣛓𣧧𣭷𣽡𤃵𤒔𤗺𤚽𤶋𤾝𥜖𥭖𥴮𥹸𦃙𦈞𦋉𦤚𦤣𦯉𦰬𦼭𦽮𧇚𧟱𨈩𨍭𨏫𩃶𩄿𩌏𩍿𩏯𩓐𩗀𩗒𩗓𩙦𩟕𩣡𩱚𩷚𩽛𪌰𪍡𪙍]→bó;
+[㞈䃗䝛䭦僠剝剥哱啵嶓帗拨撥播波溊玻癶癷盋砵碆紴缽菠袚袰蹳鉢钵餑饽驋鮁鱍𠱀𠺣𡀖𢂍𤗳𤜧𥮯𦲱𧙄𧲯𨭂𩜥𩧯𩬸𩯌]→bō;
+[㗘㟑㩧㩭㪍㬍㬧㴾㶿㹀㼎㼟㼣䂍䊿䌟䍸䑈䗚䙏䞳䟛䢌䢪䥬䪇䪬䬪䭯䮀䯋䰊䳁䵗䶈亳仢伯侼僰勃博嚗帛愽懪挬搏欂浡淿渤煿牔犦犻狛猼瓝瓟礡礴秡箔簙肑胉脖膊舶艊苩葧蔔袯袹襏襮豰踣郣鈸鉑鋍鎛鑮钹铂镈餺馎馛馞駁駮驳髆髉鵓鹁𠧛𠮭𠷺𠸳𡋯𢐾𢠺𢣞𢩞𢫯𢺽𣋵𣛓𣧧𣭷𣽡𤃵𤒔𤗺𤚽𤶋𤾝𥜖𥭖𥴮𥹸𦃙𦈞𦋉𦤚𦤣𦯉𦰬𦼭𦽮𧇚𧟱𨈩𨍭𨏫𩃶𩄿𩌏𩍿𩏯𩓐𩗀𩗒𩗓𩙦𩟕𩣡𩱚𩷚𩽛𪌰𪍡𪙍]→bó;
 [㝿箥簸跛𤿑𥸥𪓜𪚷]→bǒ;
-[孹檗糪蘖蘗譒𠴸𡅂𡯳𡯷𩈔]→bò;
-[⺊卜啵膊萡蔔]→bo;
+[孹檗糪蘗譒𠴸𡅂𡯳𡯷𩈔]→bò;
+[⺊卜萡]→bo;
 [峬庯晡誧逋鈽钸𠚉𥪀𧻷𩶉𩺼]→bū;
 [轐醭鳪𥻞]→bú;
 [㙛㨐䀯䋠䪁䪔卟哺喸捕补補鵏鸔𡡐𣱶𤣰𥃨𥣌𨴪𩏮𩏵𩯏𪇰]→bǔ;
@@ -123,8 +126,8 @@
 [噌曽𡃆]→cēng;
 [㬝䁬䉕层層嶒曾竲驓𡪠𡾓𢅋𤛢𦠇𧲅]→céng;
 [㣒蹭𠟂]→cèng;
-[㛼㮑偛叉喳嗏扠挿插揷杈疀碴肞臿艖銟鍤锸餷馇𠝞𠞊𡋨𡵌𢔣𢘹𢭅𣆗𤜫𤜯𤳵𤵾𦑈𦝥𦦘𦦜𦦱𨀸𨙳𨪺𩝟𪘾]→chā;
-[㢉㢒㪯㫅䁟䅊䕓䤩垞察嵖搽查楂槎檫猹秅茬茶詧靫𠽹𡝐𡝙𡨀𢣼𣘤𣘻𣱱𤶠𥌀𥥸𥻗𦉆𦑣𦛝𦳘𨃓𨼑𩟔𪒼]→chá;
+[㛼㮑偛叉嗏扠挿插揷杈疀肞臿艖銟鍤锸餷馇𠝞𠞊𡋨𡵌𢔣𢘹𢭅𣆗𤜫𤜯𤳵𤵾𦑈𦝥𦦘𦦜𦦱𨀸𨙳𨪺𩝟𪘾]→chā;
+[㢉㢒㪯㫅䁟䅊䕓䤩垞察嵖搽查槎檫猹碴秅茬茶詧靫𠽹𡝐𡝙𡨀𢣼𣘤𣘻𣱱𤶠𥌀𥥸𥻗𦉆𦑣𦛝𦳘𨃓𨼑𩟔𪒼]→chá;
 [衩蹅鑔镲𡌚𥑥𥫢𨩨]→chǎ;
 [㣾㤞䒲䓭䟕䡨䶪侘奼姹岔差汊紁詫诧𣍏𤞠𤳅𥃀𧠈𧫗𧶵𨆇𩴳𪑂𪑨]→chà;
 [㼮䐤拆芆釵钗𢹓𥐟𩑐]→chāi;
@@ -137,10 +140,10 @@
 [㙴㬄㸥䀡䊲䠨䱿䴼忏懴懺摲硟羼韂顫颤𢺟𤗻𤪮𤮭𤼋𥊓𧠛𨇦𨳂𩟶]→chàn;
 [䅛䗉䮖伥倀娼昌晿椙淐猖琩菖裮錩锠閶阊鯧鲳鼚𥫅𨷇𩲹𪂇𪉨]→chāng;
 [⻑⻒㙊㦂䗅䠆䯴仧仩偿償兏嘗嚐塲嫦尝常徜瑺瓺甞肠腸膓苌萇鋿鏛镸鱨鲿𠙁𢁝𥋤𦰱𦼳𨣛𨱮𪁺𪄹]→cháng;
-[⺁㫤僘厂厰场場廠惝昶氅鋹𡭿𤢄𤿼𥗊]→chǎng;
+[⺁㫤僘厂厰场場廠惝敞昶氅鋹𡭿𤢄𤿼𥗊]→chǎng;
 [䩨倡唱怅悵暢焻玚瑒畅畼誯韔鬯𠚊𢗺𢢌𤽣𥇔𥟚𥠴𧀄]→chàng;
-[敞蟐]→chang;
-[䜈䫸䫿䰫勦弨怊抄欩焯绰訬超鈔钞𠰉𢁾𤙴𦾱𨴡𩖥]→chāo;
+[蟐]→chang;
+[䜈䫸䫿䰫勦弨怊抄欩焯訬超鈔钞𠰉𢁾𤙴𦾱𨴡𩖥]→chāo;
 [嘲巢巣晁朝樔漅潮牊窲罺謿轈鄛鼂鼌𡏮𡡊𡻝𡼼𣰩𥕘𥲀𦸛𨄓]→cháo;
 [㶤㷅䎐䏚吵巐炒焣煼眧麨𦙧𧧠𩈎𩱈𩱦𪍑𪎊]→chǎo;
 [仦仯耖觘𡯴𤰬𥿷𦨖𨌬𨗡𨢪𨨚𪍈]→chào;
@@ -149,12 +152,11 @@
 [㨋㵔䋲䞣䰩偖扯撦𦓍𩴟]→chě;
 [㒤㔭㤴㥉㬚㳧㾝㿭䁤䒆䚢䛸䜠䧪勶坼屮彻徹掣撤澈烢爡瞮硩聅迠頙𢇛𢊏𣨊𤊿𤕛𤖷𤗙𤹞𥯥𥿊𦈈𦛖𧼳𨀠𨹡𩂻𩎚𩗙𪎺]→chè;
 [㥲䀼䐜䑣䠳嗔抻捵琛瞋綝縝諃謓賝郴𣞟𤝚𤟸𤡳𥞁𦁄𦁟𧡬𨻖𨼌𩅌𩇖]→chēn;
-[㕴㫳㴴㽸䆣䒞䜟䟢䢅䢈䢻䣅䤟塵宸尘忱愖揨敐曟樄橙沈沉煁瘎臣茞莀莐蔯薼螴訦諶谌軙辰迧鈂陈陳霃鷐麎𢆺𣀍𤘣𤹛𥉜𥫹𧨡𨑌𨼤𪁏]→chén;
+[㕴㫳㴴㽸䆣䒞䜟䟢䢅䢈䢻䣅䤟塵宸尘忱愖揨敐晨曟樄沈沉煁瘎臣茞莀莐蔯薼螴訦諶谌軙辰迧鈂陈陳霃鷐麎𢆺𣀍𤘣𤹛𥉜𥫹𧨡𨑌𨼤𪁏]→chén;
 [䫈䫖墋夦硶碜磣贂趻踸醦鍖𥔪𧿒𨣔]→chěn;
 [㧱䞋儭嚫榇櫬疢衬襯讖谶趁趂齓齔龀𠋆𢎕𥗒𧆂𧭼𨼐]→chèn;
-[晨]→chen;
 [㓌㛵䕝䗀䞓䟓䟫偁僜憆摚撐撑柽棦橕檉泟浾湞爯牚琤瞠称稱穪竀緽罉蛏蟶赪赬鏳鏿鐣阷靗頳饓𠏧𡽊𣥺𦓬𧯒𨭃𩁷𩞦𩠏]→chēng;
-[㞼㲂㼩䁎䄇䆑䆵䇸䚘䧕䫆䮪丞乗乘呈城埕堘塍塖娍宬峸惩憕懲成承挰掁晟朾枨棖椉檙洆溗澂澄瀓珵珹畻碀程窚筬絾脀脭荿裎誠诚郕酲鋮铖騬鯎𠕠𠳽𡝚𢐞𢻓𢾊𢿦𢿧𣀏𤆁𤗓𤿣𥢲𥥱𦦢𧶔𧹓𨁎𨅝𨌤𨞐𨹚𩙆𩤙𩨆𩫹𩯎𪁋]→chéng;
+[㞼㲂㼩䁎䄇䆑䆵䇸䚘䧕䫆䮪丞乗乘呈城埕堘塍塖娍宬峸惩憕懲成承挰掁晟朾枨棖椉橙檙洆溗澂澄瀓珵珹畻碀程窚筬絾脀脭荿裎誠诚郕酲鋮铖騬鯎𠕠𠳽𡝚𢐞𢻓𢾊𢿦𢿧𣀏𤆁𤗓𤿣𥢲𥥱𦦢𧶔𧹓𨁎𨅝𨌤𨞐𨹚𩙆𩤙𩨆𩫹𩯎𪁋]→chéng;
 [侱庱徎悜睈逞騁骋𢜻𢜼𢟊𣥻]→chěng;
 [㐼秤𡤿𢔤𤕀𧡈𧶸𧷒𩛦]→chèng;
 [㰞㷰㺈䇪䜉䧝侙吃哧喫嗤噄妛媸彨彲摛攡瓻痴癡眵瞝笞粚絺胵蚩螭訵誺魑鴟鵄鸱黐齝𡼁𣣷𤡢𥄇𥭘𦆤𦐉𦞲𧩚𧩴𧪡𧴁𨒬𩤖𩶅𪌹𫄨]→chī;
@@ -167,15 +169,14 @@
 [埫宠寵𠖥𢛒𦑝𧼙𨿿𩒘]→chǒng;
 [㧤㮔揰銃铳𠑙𢡹𣑁𥅻𥬱𧼩𨖼𩩳]→chòng;
 [㨨㮲䀺䌷婤抽搊犨犫瘳篘𠌪𢭆𥃧𥬠𥰞𥵬𥺣𥻤𨡑𨡲]→chōu;
-[㐜㤽㦞㵞㿧䌧䓓䲖仇俦儔嚋嬦帱幬怞惆愁懤栦椆燽畴疇皗稠筹籌紬絒綢绸菗薵裯讎讐踌躊酧醻雔雠𠝽𠷎𠹝𠼡𠾉𡕐𡕪𣀓𣕾𣪐𣫐𤳝𤳠𤽯𤾊𤾦𥏈𥡀𥲅𦡴𦭸𧮻𨞪𨤷𩽀𩾂𪇘]→chóu;
+[㐜㤽㦞㵞㿧䌧䓓䲖仇俦儔嚋嬦帱幬怞惆愁懤栦椆燽畴疇皗稠筹籌紬絒綢绸菗薵裯讎讐踌躊酧酬醻雔雠𠝽𠷎𠹝𠼡𠾉𡕐𡕪𣀓𣕾𣪐𣫐𤳝𤳠𤽯𤾊𤾦𥏈𥡀𥲅𦡴𦭸𧮻𨞪𨤷𩽀𩾂𪇘]→chóu;
 [䪮丑丒侴偢吜杻杽瞅矁醜魗𠜋𢣊𤘶𥄨𧃝𨀔𩋄𩌄]→chǒu;
 [䔏殠臭臰遚𥦅𨖬]→chòu;
-[酬]→chou;
 [㗙䝙䢺出初岀摴樗貙齣𠁉𠰕𠿝𤙟𩙙𩨸𪁲]→chū;
 [㕏㕑㛀㡡䅳䊰䎝䟞䠂䠧刍厨媰幮廚橱櫉櫥滁犓篨耡芻蒢蒭蕏藸蜍蟵豠趎蹰躇躕鉏鋤锄除雏雛鶵𢅥𢊍𣦠𣦡𦷝𦿀𩿿𪆷]→chú;
-[䖏䙘储儲処杵椘楮檚濋璴础礎褚鸀齭齼𠧖𢕓𤻇𧎷𨼪𩂫𪓐]→chǔ;
+[䖏䙘储儲処杵椘楚楮檚濋璴础礎褚鸀齭齼𠧖𢕓𤻇𧎷𨼪𩂫𪓐]→chǔ;
 [㔘㙇㤕㾥䇍䎌䐍䜴䟣䦌亍俶傗儊嘼埱处怵憷拀搐敊斶柷欪歜滀珿琡畜矗竌竐絀绌臅蓫處触觸諔豖踀鄐閦黜𠇘𡐌𡝈𡳑𢒔𢣿𢨫𣢶𣥹𤏱𤝞𥁯𥒭𥹵𦺵𧃏𧢶𧯩𧰫𧺶𧽧𨁿𨃕𨕢𨴰𩈤𩹱𪇆]→chù;
-[楚榋橻]→chu;
+[榋橻]→chu;
 [㔍䊬䵵欻歘𤁫]→chuā;
 [𠹐𠻦𣛕𣹶]→chuǎ;
 [䫄]→chuà;
@@ -196,13 +197,12 @@
 [㷃䞼]→chuǐ;
 [𣟈𥙋𥞃]→chuì;
 [䞺䡅䲠堾媋旾春暙杶椿槆橁櫄瑃箺萅蝽輴鰆鶞𡉐𣌚𣚆𧇶𨉩𪂹]→chūn;
-[㝄㝇㵮㸪䓐䔚䣨䣩䥎䫃唇浱淳湻滣漘犉純纯脣莼蒓蓴醇醕錞陙鯙𡗥𣌠𣘣𣮢𤘛𦎧]→chún;
+[㝄㝇㵮㸪䓐䔚䣨䣩䥎䫃唇浱淳湻滣漘犉純纯脣莼蒓蓴醇醕錞陙鯙鶉鹑𡗥𣌠𣘣𣮢𤘛𦎧]→chún;
 [㖺㿤䏛䐏䞐䦮䮞偆惷睶萶蠢賰𢾎𦚧𩨁]→chǔn;
-[鶉鹑]→chun;
 [㪬戳踔逴𨮸𨰆]→chuō;
-[⻌-⻎㚟㲋䋘䓎嚽娕娖婼惙擉歠涰磭綽繛腏趠輟辍辵辶酫鑡齪龊𡁇𢽸𢿭𤿫𥓑𦁶𨆬𨒢𩟫𩩟𪘛]→chuò;
+[⻌-⻎㚟㲋䋘䓎嚽娕娖婼惙擉歠涰磭綽繛绰腏趠輟辍辵辶酫鑡齪龊𡁇𢽸𢿭𤿫𥓑𦁶𨆬𨒢𩟫𩩟𪘛]→chuò;
 [偨呲疵縒蠀趀跐骴髊齹𡃸𡰾𢫴𣜁𦍧𦑺𦒁𧠥𨒮𩨨]→cī;
-[㓨㘂㘹㞖㤵䂣䈘䛐䧳䨏䭣䲿䳄兹垐堲嬨慈柌濨珁瓷甆磁礠祠糍茈茨薋詞词辝辞辤辭雌飺餈鴜鶿鷀鹚𠤫𠯂𡥎𢶴𣐑𥴺𥿆𧙈𨠐𩆂𩉋𩝐𪉈]→cí;
+[㓨㘂㘹㞖㤵䂣䈘䛐䧳䨏䭣䲿䳄垐堲嬨慈柌濨珁瓷甆磁礠祠糍茈茨薋詞词辝辞辤辭雌飺餈鴜鶿鷀鹚𠤫𠯂𡥎𢶴𣐑𥴺𥿆𧙈𨠐𩆂𩉋𩝐𪉈]→cí;
 [佌此泚玼皉鮆𢓗𦐨𦐾𦼡𧺼𨒤𩢑]→cǐ;
 [㢀㩞䓧䗹䯸䰍䳐伺佽刺刾庛朿栨次絘茦莿蛓螆賜赐𠦐𠩆𢅜𣢕𥿴𦖝𧊒𧌐𧑖𧠎𧧒𨋰𨲁𨾅𩾔𪉪𪑟]→cì;
 [㜡㞱㥖䈡䐋䐫䓗䗓䡯䢨匆囪囱忩怱悤暰枞棇樅樬漗焧熜瑽璁瞛篵緫繱聡聦聪聰苁茐葱蓯蔥蟌鍯鏦騘驄骢𡟟𡹸𢊕𢐔𢔩𤧚𥍷𥎋𥡬𦇎𦗜𦝰𨂴𨍉𨑪𨑹𨡮𨦱𨱸𨲧𩬼𪻐𫓩]→cōng;
@@ -215,7 +215,7 @@
 [粗觕麁麄麤𡘛𡝉𤿚𥅗𧆓𧺲]→cū;
 [䢐䣯徂殂𦯣]→cú;
 [𤛏]→cǔ;
-[㗤䃚䙯䛤䟟䠞䥄䥘促卒噈媨憱猝瘄瘯簇縬脨蔟誎趗踧蹙蹴蹵酢醋顣鼀𠑯𠛙𡄱𡞜𢄧𢈠𢪃𤗁𤠽𥪱𥷼𥻒𥾛𦈚𦟠𦠁𧼜𪓡𪓰𪕝𪚯]→cù;
+[㗤䃚䙯䛤䟟䠞䥄䥘促噈媨憱猝瘄瘯簇縬脨蔟誎趗踧蹙蹴蹵酢醋顣鼀𠑯𠛙𡄱𡞜𢄧𢈠𢪃𤗁𤠽𥪱𥷼𥻒𥾛𦈚𦟠𦠁𧼜𪓡𪓰𪕝𪚯]→cù;
 [撺攛汆蹿躥鋑鑹镩𥍬]→cuān;
 [㠝巑櫕欑穳𢖑𨣵]→cuán;
 [㸑殩熶爨窜竄篡簒𢸥𤐲𥎢-𥎤𨼉]→cuàn;
@@ -235,46 +235,44 @@
 [㜓㩉㾑㿯䃮䵣剳匒呾哒妲怛沓炟燵畗畣笪答羍荙薘蟽詚跶躂达迏迖迚逹達鎉鐽阘靼鞑韃龖龘𠉤𡈐𢘇𢛁𢝉𣸉𤝰𤨑𥉌𦂀𦑻𦪭𦬹𩏒𩟐𩠅𩣯𩭣]→dá;
 [打𥕇]→dǎ;
 [亣大汏眔𠶫𡚻𢽇𣣴𣥾𤤊𨗾]→dà;
-[㟷垯墶疸瘩繨]→da;
+[㟷垯墶瘩繨]→da;
 [呆呔懛獃𠯪𣐮𦪍]→dāi;
 [⺞䚞䚟傣歹逮𣦶]→dǎi;
 [㐲㞭㯂㶡㻖䈆䒫䲦代侢叇垈埭岱帒带帯帶廗待怠戴曃柋殆瀻玳瑇甙簤紿緿绐艜蚮袋襶貸贷蹛軑軚軩轪迨霴靆骀鴏黛黱𠯈𠰺𠷂𡧹𢄔𢎌𣇨𣫹𤮼𤸊𥿝𦄂𦙯𧊇𧑔𨊺𨓞𨟲𨥶𨽿𩃠𩃷𪐝]→dài;
 [鮘]→dai;
 [㐤㠆㴷䄡䐷䒟丹儋勯匰单単單妉媅担擔殚殫甔瘅癉眈砃箪簞耼耽聃聸褝襌躭郸鄲頕鿕𠆛𠹆𡖓𡵕𢉑𢑝𣅟𣲥𦅼𧀻𧡪𧴸𨢿𩈊𩏥]→dān;
-[㕪䃫䉞亶伔刐抌掸撢撣澸玬瓭紞胆膽衴赕黕黮𠇋𡦨𢋃𢻼𤢏𤲭𤺺𥄦𥐹𥱷𥳹𦽫𪆻]→dǎn;
+[㕪䃫䉞亶伔刐抌掸撢撣澸玬瓭疸紞胆膽衴赕黕黮𠇋𡦨𢋃𢻼𤢏𤲭𤺺𥄦𥐹𥱷𥳹𦽫𪆻]→dǎn;
 [㗖㡺㲷䨢䨵䩥䭛䳉但僤啖啗啿嘾噉嚪帎弹弾彈惮憚憺旦柦氮沊泹淡澹狚疍癚禫窞繵腅萏蓞蛋蜑觛誕诞贉霮饏馾駳髧鴠𠆶𠈰𢅒𢎪𣇇𣋊𣛱𣱍𤁡𥨎𥲄𥲇𥳸𦋪𦻁𦽜𦾩𧂄𧭃𩄕𩅾𩈉𩕤𩩧𪒾]→dàn;
-[㼕㽆噹当澢珰璫當筜簹艡蟷裆襠𡰨𤔶𤗾𤢎𥢷𦗴𦼲𨎴𩟈𩼉𪇁]→dāng;
+[㼕㽆噹当澢珰璫當筜簹艡蟷裆襠鐺铛𡰨𤔶𤗾𤢎𥢷𦗴𦼲𨎴𩟈𩼉𪇁]→dāng;
 [䣊䣣党挡擋攩欓灙譡讜谠黨𡗍𣗋𣺼𤣞𥤗𧅗𩽳]→dǎng;
 [䑗䦒儅凼圵垱壋婸宕嵣愓档檔氹潒璗瓽盪瞊砀碭礑簜荡菪蕩蘯趤逿闣雼𡇈𡇵𡢈𡾕𢠽𢡂𣂳𣃉𣻍𥯕𥸈𦿆𧑘𨝦𨷾]→dàng;
-[鐺铛]→dang;
 [⺈⺉刀刂叨忉朷氘舠釖魛鱽𣱼𦩍𩕯]→dāo;
 [捯]→dáo;
 [㠀㨶㿒壔导導岛島嶋嶌嶹捣搗擣槝祷禂禱蹈陦隝隯𠐵𢭏𤹷𦦺𦦾]→dǎo;
 [䆃䊭䌦䧂倒到噵悼椡檤焘燾瓙盗盜稲稻箌纛翢翿艔菿衜衟軇道𠴼𡄒𣁍𣫜𤓾𤘀𤷘𥓬𥗚𥺅𦒺𧼤𨗓𨱦𩈞𩬱𩭟]→dào;
 [嘚]→dē;
-[㝵㤫㥁㯖䙷䙸徳德恴悳惪棏淂鍀锝𠮊𡋩𡭂𣌏𣮊𣮰𤷙𨁽]→dé;
-[地得的脦𠵨]→de;
+[㝵㤫㥁㯖䙷䙸得徳德恴悳惪棏淂鍀锝𠮊𡋩𡭂𣌏𣮊𣮰𤷙𨁽]→dé;
+[地的脦𠵨]→de;
 [㩐扥扽]→dèn;
 [㔁㲪䔲䙞䳾噔嬁灯燈璒登竳簦艠覴豋蹬𤮘𤺌𤼶𧾊𨶿𩯇𪔏]→dēng;
 [䒭戥朩等𤾢𪌷]→děng;
 [䠬䮴凳墱嶝櫈瞪磴邓鄧鐙镫隥𡦔𢯭𢿤𣩟𦩫𧄼𨄇𨎤𨮴𩍐𩞬𪑬𪒘]→dèng;
-[㓳㫝䃅䍕䐎䧑仾低啲埞堤奃彽樀氐滴磾羝袛趆鍉镝隄鞮𠍪𠽰𡄷𡛜𡰖𣅥𣚌𣲢𤞈𥾬𥿄𩉱𩑾]→dī;
-[㣙㰅㹍䊮䨀䨤䯼䴞䵠唙嘀嚁嫡廸敌敵梑涤滌狄笛篴籴糴翟苖荻蔋蔐藡覿觌豴蹢迪鏑靮頔馰髢鬄鸐𠒿𠕳𡒱𡽢𢕚𣂉𤁰𤈥𥕐𥖾𥸚𦉹𦵦𨮹𩭲𩴺𩷎𪄱]→dí;
+[㓳㫝䃅䍕䐎䧑仾低啲埞堤奃彽氐滴磾羝袛趆鍉镝隄鞮𠍪𠽰𡄷𡛜𡰖𣅥𣚌𣲢𤞈𥾬𥿄𩉱𩑾]→dī;
+[㣙㰅㹍䊮䨀䨤䯼䴞䵠唙嘀嚁嫡廸敌敵梑樀涤滌狄笛篴籴糴翟苖荻蔋蔐藡覿觌豴蹢迪鏑靮頔馰髢鬄鸐𠒿𠕳𡒱𡽢𢕚𣂉𤁰𤈥𥕐𥖾𥸚𦉹𦵦𨮹𩭲𩴺𩷎𪄱]→dí;
 [㪆㭽䂡䏄䢑䣌厎呧坘底弤抵拞掋柢牴砥聜菧觝詆诋軧邸阺骶鯳𠨿𤝬𧤲𨂇𨌮]→dǐ;
 [㢩㼵䀿䏑䑭䑯䗖䩘䩚䶍俤偙僀啇坔埊墑墬娣媂嶳帝弟怟慸摕旳杕枤梊棣渧焍玓珶甋眱睇碲祶禘第締缔腣菂蒂蔕蝃螮諦谛踶递逓遞遰釱鉪𠐑𠚭𠥖𠫜𡚙𡚷𢅊𢉆𢓧𣬴𣯵𤧛𤬵𤾠𥳠𦨢𧀶𧂨𧉛𧋍𧍝𧺽𨑩𨑼𨗼𨘬𨪾]→dì;
-[嗲]→diǎ;
 [傎厧嵮巅巓巔掂攧敁槇槙滇甸瘨癫癲蹎顚顛颠齻𠑘𠫉𠶧𡱇𢖩𣪀𤠶𦕒𧄺𧽍𨈀𩄠𩥄𩨋𩬑𪓼𪖚]→diān;
 [㸃䍄䓦典嚸奌婰敟椣点猠碘蒧蕇跕踮點𠩷𢻅𣇖𤿶𥮏𦒻]→diǎn;
 [㓠㝪㞟㶘㼭佃坫垫墊壂奠婝店惦扂橂橝殿淀澱玷琔电癜簟蜔钿阽電靛驔𠢣𡼓𢅝𢕯𣒂𣢥𣣈𣣣𣧛𣪪𤩱𥅑𥇞𥑼𥦟𥳢𥵏𦅆𦽄𧍿𩂵𩅀𩆔𪑩]→diàn;
 [㚋㢯㹦䂏䘟䳂凋刁刟叼奝弴彫殦汈琱瞗碉簓虭蛁貂雕鮉鯛鲷鳭鵰鼦𠚥𠚻𠶰𥮐𦨣𦶌𦸔𧘨𧘩𨸓𩀜𩾗]→diāo;
 [䄪䉆屌扚𠄏𢁕𢄦𢆴𦄋𧜣]→diǎo;
 [㒛㪕䂽䔙伄吊弔掉瘹窎窵竨蓧藋訋調调釣鈟銱鋽鑃钓铞铫雿魡𠤼𠥑𣩰𤕷𤭈𤱩𥁮𥲟𥾯𦰏𧅈𨰑𩈮𩋙]→diào;
-[㦅䪓爹褺跌]→diē;
+[㦅䪓嗲爹褺跌]→diē;
 [㑙㥈㦶㩸㩹㫼㬪㲲㲳㷸䏲䞇䠟䫕䳀䴑叠喋垤堞峌嵽幉恎惵戜挕揲昳曡殜氎牃牒瓞畳疂疉疊眣碟絰绖耊耋胅臷艓苵蜨蝶褋詄諜谍趃蹀迭镻鰈鲽𠗛𠗨𠠯𠲷𡅥𡇓𡱷𡹭𡺑𡼄𢎆𢲼𢶣𣈍𣛻𣡟𣧈𣨂𤖒𤗨𤚊𤴍𥈖𥉺𥑇𥶺𥷕𦁜𦄔𦈅𧍱𨄌𨈈𨐁𨓊𨭓𨳺𨴗𨸅𨻗𨾤𩋞𩻵𪀒𪑧]→dié;
 [𡖐]→diě;
 [哋眰𠅗𠆙]→diè;
 [𨈖]→dìn;
-[㣔䦺丁仃叮帄玎町疔盯耵虰酊釘钉靪𦨍𧌾𧳉𩡯𩾚]→dīng;
+[㣔䦺丁仃叮帄玎疔盯耵虰酊釘钉靪𦨍𧌾𧳉𩡯𩾚]→dīng;
 [㫀㴿奵嵿濎薡鐤頂顶鼎鼑𢑅𣆍𤐣𤛙𧇷𩠑𪔂]→dǐng;
 [㝎啶定忊椗矴碇碠磸聢腚萣蝊訂订鋌錠铤锭顁飣饤𣢳𥇓𥯢𥳰𥸧𦩘𩜦𩠆𩸎]→dìng;
 [丟丢銩铥𠲍𢒝]→diū;
@@ -293,15 +291,15 @@
 [㫁㱭䠪塅断斷椴段毈煅瑖碫簖籪緞缎腶葮躖鍛锻𠡱𢯫𨱚𨺣𩏇𩤣]→duàn;
 [䂙䜃䭔垖堆塠嵟痽磓鐜鴭𠂤𠦗𡏩𡜥𢈹𢟋𤤷𤷎𤹵𥑵𧧆𩈜𩨽𪌤]→duī;
 [㨃頧𠡒𡑈𦞱]→duǐ;
-[㙂㟋㠚㬣㳔䇏䨴䨺䬈䯟兊兌兑对対對怼憝憞懟敦濧瀩碓祋綐薱襨譈譵鐓镦队陮隊𠏮𠜑𠫨𡁨𡷋𡼻𣝉𤄛𤮩𥹲𦡷𦶏𨹅𩄮𩅆𩅥𩅲𩈁𩊭𩐌𪒛𪒡]→duì;
-[䃦䔻䪃吨噸墩墪惇撉撴橔犜獤礅蜳蹲蹾驐𡼖𤭞𥂦𦼿𧝗𩞤]→dūn;
+[㙂㟋㠚㬣㳔䇏䨴䨺䬈䯟兊兌兑对対對怼憝憞懟濧瀩碓祋綐薱襨譈譵鐓镦队陮隊𠏮𠜑𠫨𡁨𡷋𡼻𣝉𤄛𤮩𥹲𦡷𦶏𨹅𩄮𩅆𩅥𩅲𩈁𩊭𩐌𪒛𪒡]→duì;
+[䃦䔻䪃吨噸墩墪惇撉撴敦橔犜獤礅蜳蹲蹾驐𡼖𤭞𥂦𦼿𧝗𩞤]→dūn;
 [盹趸躉𣎴𧿗]→dǔn;
 [䤜伅囤庉楯沌潡炖燉盾砘碷踲逇遁遯鈍钝頓顿𠎻𡆰𢬼𣗁𣚪𣞇𤟢𥫬𥫱𥭒𦪔𦰭𨔡𩔂]→dùn;
 [㙍剟咄哆嚉多夛崜掇敠敪毲畓裰𡌭𢳽𦍦𧢵𩢎]→duō;
 [㣞䐾凙剫喥夺奪敓敚痥踱鈬鐸铎鮵𢜬𢼠𤢕𧩧𨀟𨍏𩍜𩑒𪃒𪞝]→duó;
-[㖼㙐㛊㥩㻔䒳䙤䠤䤪䫂䯬亸哚嚲垛垜埵奲挅挆朶椯綞缍趓躱躲軃鍺𠛫𡶲𡺇𤛛𥿰𦖋𧊱𧙤𨉡𨦃𨲉𨹃𩃒𩬻𪘉]→duǒ;
+[㖼㙐㛊㥩㻔䒳䙤䠤䤪䫂䯬亸哚嚲垛垜埵奲挅挆朵朶椯綞缍趓躱躲軃鍺𠛫𡶲𡺇𤛛𥿰𦖋𧊱𧙤𨉡𨦃𨲉𨹃𩃒𩬻𪘉]→duǒ;
 [㛆㻧䅜䑨䙃䤻䩔䲊刴剁堕墮墯尮嶞惰憜柁柮桗舵跢跥跺陊陏飿饳鵽𡓉𡓷𢿎𣑧𣧷𣵺𣵻𤋨𤌃𤤸𤬾𥞛𥳔𧧇𧱫𨆅𨬍𩊜𩎫]→duò;
-[朵𦕰]→duo;
+[𦕰]→duo;
 [䋪妸妿娿婀屙痾𠥍𡹣𥑺]→ē;
 [㼂䄉䕏䖸䩹䱮䳗䳘俄吪囮娥峨峩涐珴皒睋磀莪蛾訛誐譌讹迗鈋锇頟額额魤鰪鵝鵞鹅𠷸𡅅𧒎𧔼𧚄𧢽𧽶𧿕𨱂𨶯𩋽𩑁𩣣𩤩]→é;
 [噁枙砈頋騀鵈𣄰𣘨𧙃𨵌𩒰]→ě;
@@ -311,23 +309,23 @@
 [䅰峎𡵖𡷐]→ěn;
 [䬶䭓䭡摁]→èn;
 [鞥]→ēng;
-[㖇㧫䋩䎟䎠䮘侕児唲峏栭洏粫而聏胹荋袻輀轜陑隭髵鮞鲕鴯鸸𡦕𣩚𤽓𥅡𦓓𦓔𨎪𩰴𩱊𪕨]→ér;
+[㖇㧫䋩䎟䎠䮘侕儿児兒唲峏栭洏粫而聏胹荋袻輀轜陑隭髵鮞鲕鴯鸸𡦕𣩚𤽓𥅡𦓓𦓔𨎪𩰴𩱊𪕨]→ér;
 [㚷㢽䋙䌺厼尒-尔栮毦洱爾珥耳薾趰迩邇铒餌饵駬𢀪𦗼𧌣𩚪𩱓𪕔]→ěr;
 [㒃㛅䎶䏪䣵二佴刵咡弍弐樲衈誀貮貳贰鉺𠚧𢄽𣧹𦖢𪐰]→èr;
-[发彂沷発發酦醱𤿓]→fā;
+[发彂沷発發醱𤿓]→fā;
 [㕹㘺䇅䣹乏伐傠垡姂栰橃浌疺瞂砝笩筏罚罰罸茷藅閥阀𠞵𤇰𥩱𦪑𨀳𨋺]→fá;
 [䂲佱法灋鍅𤣹𥎰]→fǎ;
 [㛲珐琺蕟髪髮𧬋]→fà;
 [𠲎]→fa;
-[㴀䪛勫噃嬏帆幡忛憣旙旛番籓繙翻蕃藩訉轓颿飜鱕𤄫𦪖𧦟]→fān;
-[㠶㸋㺕䀟䉒䊩䋣䋦䌓䕰䪤䫶䭵䮳凡-凣匥墦杋柉棥樊橎氾渢瀪瀿烦煩燔璠矾礬笲籵緐繁羳膰舤舧薠蘩蠜襎蹯鐇鐢钒鷭𢐲𢶃𣔶𥢌𥸨𥻫𥼞𥿋𦊻𦨲𧀭𧊾𧢜𨆌𨙮𨟄𩧅𩨏𪖇]→fán;
+[䪛勫噃嬏帆幡忛憣旙旛番籓繙翻蕃藩訉轓颿飜鱕𤄫𦪖𧦟]→fān;
+[㠶㸋㺕䀟䉒䊩䋣䋦䌓䕰䪤䫶䭵䮳凡-凣匥墦杋柉棥樊橎渢瀪瀿烦煩燔璠矾礬笲籵緐繁羳膰舤舧薠蘩蠜襎蹯鐇鐢钒鷭𢐲𢶃𣔶𥢌𥸨𥻫𥼞𥿋𦊻𦨲𧀭𧊾𧢜𨆌𨙮𨟄𩧅𩨏𪖇]→fán;
 [㽹䛀䡊仮反払返釩𢗰𦜒]→fǎn;
-[㕨㛯㤆㶗㼝䀀䉊䐪䒦䣲奿婏嬎梵汎泛滼犯畈盕笵範范販贩軓軬飯飰饭𠆩𠒾𡁈𡗹𡜀𡤎𡶉𢇪𣳜𤄑𤬨𤭍𥃵𥅒𥹇𧁉𧉤𧍙𨠒𩡫𩨩]→fàn;
-[䄱匚方枋汸淓牥芳蚄邡鈁錺钫鴋𥫳𩇴𩲌𪕃]→fāng;
+[㕨㛯㤆㴀㶗㼝䀀䉊䐪䒦䣲奿婏嬎梵氾汎泛滼犯畈盕笵範范販贩軓軬飯飰饭𠆩𠒾𡁈𡗹𡜀𡤎𡶉𢇪𣳜𤄑𤬨𤭍𥃵𥅒𥹇𧁉𧉤𧍙𨠒𩡫𩨩]→fàn;
+[䄱匚坊方枋汸淓牥芳蚄邡鈁錺钫鴋𥫳𩇴𩲌𪕃]→fāng;
 [㤃埅妨房肪防魴鰟鲂𩗧𩷸]→fáng;
 [㑂㕫㧍㯐䢍䲱仿倣彷旊昉昘瓬眆紡纺舫訪访髣鶭𣄅]→fǎng;
 [放趽𨾔]→fàng;
-[坊堏]→fang;
+[堏]→fang;
 [⻜㫵䩁啡妃婓婔扉暃渄猆緋绯菲蜚裶霏非靟飛飝飞餥馡騑騛鲱𢑮𥇖𦱷𨵈𩇫𩙲𩦎𩹉𪁹]→fēi;
 [䈈淝肥腓蜰蟦𤷂𥭬𧓖𩇯𩇽]→féi;
 [㥱䕁䨽匪奜悱斐朏棐榧篚翡胐蕜誹诽𠏿𢾺𣍧𥟍𥠶𦃄𦈗𧍃𧕒𧕿𩄼]→fěi;
@@ -338,28 +336,28 @@
 [㱵㿎份偾僨奋奮弅忿愤憤瀵秎粪糞膹鱝鲼𠻫𡊄𡊅𢅯𢧝𢹔𤖘𤗸𤘝𤰪𥂙𥹻𥽒𨤘𨤚𩸂]→fèn;
 [⻛㐽㒥㛔㜂㠦䀱䒠丰仹偑僼凨凬凮妦寷封峯峰崶枫桻楓檒沣沨灃烽犎猦琒疯瘋盽砜碸篈葑蘴蜂蠭豐鄷酆鋒鎽鏠锋闏霻靊風飌风麷𡨛𡵞𢓱𤖀𥷜𥽈𦜁𧆉𧥹𧾳𨩥𨺢𩉧𩊩𩘵𩙐𩙣]→fēng;
 [㦀㵯䏎䙜䩼冯堸夆捀摓浲溄漨綘艂逢馮𥍮𥛝𧍯𨝭𨲫]→féng;
-[䟪唪覂諷讽𢇫𦧁𩋮𪐃]→fěng;
-[㡝俸凤奉湗焨煈甮縫缝賵赗鳯鳳鴌鵬𠣡𣿝𥊒𩐯𩪌]→fèng;
+[䟪唪覂諷𢇫𦧁𩋮𪐃]→fěng;
+[㡝俸凤奉湗焨煈甮縫缝讽賵赗鳯鳳鴌𠣡𣿝𥊒𩐯𩪌]→fèng;
 [覅]→fiào;
 [仏坲梻𧥚𧼴]→fó;
 [𤊻]→fōu;
 [紑裦𧉈]→fóu;
 [否妚殕缶缹缻雬鴀𡜊𤽦𧊦𨛔𩂆]→fǒu;
-[㕊㩤㭪㲗䃿䄮䎔䓏䓵䱐䴸伕呋垺妋姇娐孵尃怤懯敷旉柎玞痡砆稃筟糐紨綒肤膚荂荴衭豧趺跗邞鄜鈇鳺麩麬麱麸𡏪𡫺𡬇𢗲𣘧𣞒𤆮𤙤𥄓𥒫𥱀𥼼𦇁𦖀𦺉𧀮𧀴𨁒𩵩𩽺𩿧𪊐𫓧]→fū;
-[㚕㜑㟊㠅㪄㫙䋹䌿䍖䑧䕎䘠䞞䟮䡍䨗䭮䳕䵾乀伏佛俘冹凫刜匐咈哹垘孚岪巿幅幞弗彿怫扶拂服枎柫栿桴棴榑氟泭洑浮涪澓炥烰玸琈甶畉畐癁砩祓福稪符笰箙粰紱紼絥綍绂绋罘罦翇艀艴芙芣苻茀茯莩菔葍虙蚨蜉蝠襆襥諨踾輻辐郛鉘鉜韍韨颫髴鮄鮲鳧鴔鵩鶝黻𠬝𠲽𡞪𡠞𡦄𢀼𢁀𢂀𢌹𢏍𢒒𢞦𢰆𣀣𣀾𣆵𣑿𣭘𣹋𣻜𣿆𤉨𤝟𤠪𤱽𤶖𥄑𥘬𥦘𥧷𥪋𥪚𥰛𥾧𦊦𦊾𦎭𦐡𦑹𦨈𦨋𦨡𦩡𦮹𦲫𦳓𦽏𦿁𧖚𧥱𧳂𧴌𧼗𧼱𧿳𨌥𨵟𩂔𩂕𩉽𩋟𩋨𩎛𩐚𩓖𩖬𩖼𩜲𩠷𩢰𩳎𫚒]→fú;
-[㓡㕮䋨䌗䗄䩉䫍䫝乶俌俛俯呒府弣抚拊捬撨撫斧椨滏焤盙簠胕腐腑蜅輔辅郙釜釡頫鬴鳬黼𠟌𢗫𢯋𢻀𣥋𤙭𤿭𥒰𦎎𧉊𨑑𩑬𩒙𩳐𪂀]→fǔ;
-[⻏⻖㙏㚆㤔㤱㬼㳇㷆㽬㾈䂤䒄䒇䔰䘀䝾䞜䞯䞸䟔䠵䦣䨱䭻䮛付偩冨副坿复妇婦媍嬔富峊復椱父祔禣秿竎緮縛缚腹萯蕧蚥蚹蛗蝜蝮袝複褔覄覆訃詂讣負賦賻负赋赙赴輹鍑鍢阜阝附陚馥駙驸鮒鰒鲋鳆𠋩𠌽𠓗𠣾𠪻𡐝𡵛𢂆𢠲𣄎𤝔𤭟𤸑𤸗𥨍𥲛𥳇𥷱𦂊𦔍𦰺𦱖𦸱𧄏𧌈𧌓𧒂𧒙𧕡𧻳𨦛𨺅𩂎𩅿𩍏𩒺𩢿𩣜𩣸𩬙𩭺𩵹𩽻𩾿𪀺𪂋𪂾𪃓𪆠𪍏]→fù;
-[傅咐夫甫袱酜]→fu;
-[伽呷嘎嘠旮𡉅]→gā;
+[㕊㩤㭪㲗䃿䄮䎔䓏䓵䱐䴸伕呋垺夫妋姇娐孵尃怤懯敷旉柎玞痡砆稃筟糐紨綒肤膚荂荴衭豧趺跗邞鄜鈇鳺麩麬麱麸𡏪𡫺𡬇𢗲𣘧𣞒𤆮𤙤𥄓𥒫𥱀𥼼𦇁𦖀𦺉𧀮𧀴𨁒𩵩𩽺𩿧𪊐𫓧]→fū;
+[㚕㜑㟊㠅㪄㫙䋹䌿䍖䑧䕎䘠䞞䟮䡍䨗䭮䳕䵾乀伏佛俘冹凫刜匐咈哹垘孚岪巿幅幞弗彿怫扶拂服枎柫栿桴棴榑氟泭洑浮涪澓炥烰玸琈甶畉畐癁砩祓福稪符笰箙粰紱紼絥綍绂绋罘罦翇艀艴芙芣苻茀茯莩菔葍虙蚨蜉蝠袱襆襥諨踾輻辐郛鉘鉜韍韨颫髴鮄鮲鳧鴔鵩鶝黻𠬝𠲽𡞪𡠞𡦄𢀼𢁀𢂀𢌹𢏍𢒒𢞦𢰆𣀣𣀾𣆵𣑿𣭘𣹋𣻜𣿆𤉨𤝟𤠪𤱽𤶖𥄑𥘬𥦘𥧷𥪋𥪚𥰛𥾧𦊦𦊾𦎭𦐡𦑹𦨈𦨋𦨡𦩡𦮹𦲫𦳓𦽏𦿁𧖚𧥱𧳂𧴌𧼗𧼱𧿳𨌥𨵟𩂔𩂕𩉽𩋟𩋨𩎛𩐚𩓖𩖬𩖼𩜲𩠷𩢰𩳎𫚒]→fú;
+[㓡㕮䋨䌗䗄䩉䫍䫝乶俌俛俯呒府弣抚拊捬撨撫斧椨滏焤甫盙簠胕腐腑蜅輔辅郙釜釡頫鬴鳬黼𠟌𢗫𢯋𢻀𣥋𤙭𤿭𥒰𦎎𧉊𨑑𩑬𩒙𩳐𪂀]→fǔ;
+[⻏⻖㙏㚆㤔㤱㬼㳇㷆㽬㾈䂤䒄䒇䔰䘀䝾䞜䞯䞸䟔䠵䦣䨱䭻䮛付偩傅冨副咐坿复妇婦媍嬔富峊復椱父祔禣秿竎緮縛缚腹萯蕧蚥蚹蛗蝜蝮袝複褔覄覆訃詂讣負賦賻负赋赙赴輹鍑鍢阜阝附陚馥駙驸鮒鰒鲋鳆𠋩𠌽𠓗𠣾𠪻𡐝𡵛𢂆𢠲𣄎𤝔𤭟𤸑𤸗𥨍𥲛𥳇𥷱𦂊𦔍𦰺𦱖𦸱𧄏𧌈𧌓𧒂𧒙𧕡𧻳𨦛𨺅𩂎𩅿𩍏𩒺𩢿𩣜𩣸𩬙𩭺𩵹𩽻𩾿𪀺𪂋𪂾𪃓𪆠𪍏]→fù;
+[酜]→fu;
+[呷嘎嘠旮𡉅]→gā;
 [噶尜錷钆𡼛]→gá;
 [尕玍𠁥]→gǎ;
 [尬魀𡯰𡯽]→gà;
 [㱾䀭䐩䬵侅垓姟峐晐畡祴絯荄該该豥賅賌赅郂陔𧊏𧯺]→gāi;
 [䪱忋改絠𡧣𢍓𢻉𦫻𨮂𨱕𨱣]→gǎi;
-[㕢㧉㮣䏗丐乢匃匄戤摡杚概槩槪溉漑瓂盖芥葢蓋鈣钙阣隑𠌰𡒖𢅤𨞨𨸛𩕭]→gài;
+[㕢㧉㮣䏗丐乢匃匄戤摡杚概槩槪溉漑瓂盖葢蓋鈣钙阣隑𠌰𡒖𢅤𨞨𨸛𩕭]→gài;
 [㓧㤌㶥㿻䇞䊻乹乾亁凲坩尲尴尶尷忓攼杆柑泔漧玕甘疳矸竿筸粓肝芉苷迀酐魐鳱𡯋𡶑𢧀𣗲𣦖𤮽𤯌𧾲𨝌𩖦𩚵𩠁𩢨𩴁𩴵𪔆]→gān;
 [䃭䤗䵟仠感扞擀敢桿橄澉皯秆稈笴簳衦赶趕鰔鱤鳡𠇵𠖫𣘠𥕵𥘏𥰟𥸡𥾍𦪧𦼮𨣝𨳼𩹸𪊄]→gǎn;
-[㽏䯎䲺倝凎干幹旰榦檊汵淦灨盰紺绀詌贑赣骭𣁖𣆙𣵼𣹟𤌹𦾮𧆐𧹳𩉐𪉿𪊇𪚬]→gàn;
+[㽏䯎䲺倝凎干幹旰榦檊汵淦灨盰紺绀詌贑贛赣骭𣁖𣆙𣵼𣹟𤌹𦾮𧆐𧹳𩉐𪉿𪊇𪚬]→gàn;
 [⺱㧏㭎㼚䚗冈冮刚剛堈堽岡掆杠棡牨犅疘矼綱纲缸罁罓罡肛釭鋼鎠钢𠵹𡇬𢭈𢰌𣦐𤭛𦋳𦱌]→gāng;
 [㟠㟵㽘䴚岗崗港𨟼]→gǎng;
 [戅戆槓焵焹筻鿍𣗵]→gàng;
@@ -367,7 +365,7 @@
 [㚏㚖㵆㾸夰搞暠杲槀槁檺稁稾稿縞缟菒藁藳镐𤱟𥓖𥢑𧚡𧜉𩓢𩔇𩕍𩫓]→gǎo;
 [勂吿告峼祮祰禞筶誥诰郜鋯锆𡋟𡜲𡷥𢍎𢞟𣝏𧠼𩋺]→gào;
 [㤎䔅仡割咯哥圪彁戈戓戨搁擱歌滒牫牱犵疙纥肐胳袼謌鎶鴐鴚鴿鸽鿔𠛊𠯫𠸲𠺝𡟍𢎄𤇞𤜊𤭻𦨜𧎺𧗶𨝆𨟶𨾓𩢅𩾷𪀁𪀉𪃿]→gē;
-[㖵㗆㠷㦴㭘㵧㷴䈓䐙䗘䘁䛿䨣䪂䪺䫦佮匌呄嗝塥愅挌搿敋格槅櫊滆獦膈臵茖葛蛒裓觡諽輵轕镉閣閤阁隔革鞈鞷韐韚颌騔骼鬲鮯𠲱𠹓𢆜𢓜𢡍𢧧𢩓𢯹𢼛𣭝𤠇𤩲𥉅𥢸𥴩𥺊𦑜𧈌𧈑𧈖𧊧𧿩𨍮𨏚𨏴𨐥𨞛𨼣𩎎𩢛𩨀𩹺𩹿𩼙𪄎𪌣]→gé;
+[㖵㗆㠷㦴㭘㵧㷴䈓䐙䗘䘁䛿䨣䪂䪺䫦佮匌呄嗝塥愅挌搿敋格槅櫊滆獦膈臵茖葛蛒裓觡諽輵轕镉閣閤阁隔革鞈鞷韐韚騔骼鬲鮯𠲱𠹓𢆜𢓜𢡍𢧧𢩓𢯹𢼛𣭝𤠇𤩲𥉅𥢸𥴩𥺊𦑜𧈌𧈑𧈖𧊧𧿩𨍮𨏚𨏴𨐥𨞛𨼣𩎎𩢛𩨀𩹺𩹿𩼙𪄎𪌣]→gé;
 [哿嗰舸𤕒𥰮]→gě;
 [䧄个個各硌箇虼铬𦓱]→gè;
 [給给]→gěi;
@@ -378,18 +376,17 @@
 [㹴㹹䎴䢚刯庚椩浭焿畊絚緪縆羮羹耕菮賡赓鶊鹒𦣍𧙸𩜣𩱁𩱋𩱧]→gēng;
 [㾘䋁䌄哽埂峺挭梗綆绠耿莄郠骾鯁鲠𠡣𡩃𢙾𢞚𣆳𥉔𥾚𦛟𦵸𧀙𧋑𩂼]→gěng;
 [䱍䱎䱭䱴堩暅更𡍷𣈶𣎄𥅨𥔂𦚸𦜷𦞌𧰨]→gèng;
-[㓚㕬䂵䍔䐵䢼䰸䲲䳍供公功匑匔厷塨宫宮工幊弓恭愩攻杛熕碽糼肱觥觵躬躳髸龏龔龚𠇒𡚑𢁠𢖷𤅐𤱨𥫋𥸲𦄜𦊫𦔸𦞗𦞨𦬘𧆷𧎡𧘏𨉫𨊧𨋝𨋷𨒱𨴛𩃙𩐣𩛘𪏠𪏢]→gōng;
+[㓚㕬䂵䍔䐵䢼䰸䲲䳍供公功匑匔厷塨宫宮工幊弓恭愩攻杛熕碽糼肱蚣觥觵躬躳髸龏龔龚𠇒𡚑𢁠𢖷𤅐𤱨𥫋𥸲𦄜𦊫𦔸𦞗𦞨𦬘𧆷𧎡𧘏𨉫𨊧𨋝𨋷𨒱𨴛𩃙𩐣𩛘𪏠𪏢]→gōng;
 [㤨㧬㫒㭟㺬㼦䂬䡗䱋巩廾拱拲栱汞珙輁鞏𢀜𢸁𤨶𤬳𥧂𥨐𦈩𦓳𨋑𨣂𩌌𫋐]→gǒng;
-[㓋㔶㯯䇨䔈共唝羾莻貢贛贡𠌕𠞖𡔕𡟫𥧡𦩼𪄌]→gòng;
-[慐蚣]→gong;
-[㡚㽛䑦䬲佝勾枸沟溝篝簼緱缑袧褠鈎鉤钩鞲韝𠛎𡗁𣕌𤖮𤫱𥬉𥴴𥿺𦩷𦽋𪚭]→gōu;
-[㺃岣狗玽笱耇-耉芶苟蚼豿𡖑𢄇𣕉𣙱𦱣𨩦]→gǒu;
+[㓋㔶㯯䇨䔈共唝羾莻貢贡𠌕𠞖𡔕𡟫𥧡𦩼𪄌]→gòng;
+[慐]→gong;
+[㡚㽛䑦䬲佝勾沟溝篝簼緱缑袧褠鈎鉤钩鞲韝𠛎𡗁𣕌𤖮𤫱𥬉𥴴𥿺𦩷𦽋𪚭]→gōu;
+[㺃岣枸狗玽笱耇-耉芶苟蚼豿𡖑𢄇𣕉𣙱𦱣𨩦]→gǒu;
 [㗕㝅㝤㨌䃓䝭冓坸垢够夠姤媾彀搆撀构構煹茩覯觏訽詬诟購购遘雊𣫌𤚼𤠼𥉇𥧒𦎯𦎼𦵷𧃛𧲿𧵈𩄢𪃺]→gòu;
-[㼋䉉䐻估呱唂姑嫴孤柧橭毂沽泒笟箍箛篐罛苽菰蛄觚軱軲轱辜酤鈲鮕鴣鸪𠷞𠽿𡗷𢡇𣀐𥂰𥿍𦊬𦋆𦺠𧆻𧇡𧬕𨠋𨬕𨱃𨸯]→gū;
+[㼋䉉䐻估呱咕唂姑嫴孤柧橭沽泒笟箍箛篐罛苽菇菰蛄觚軱軲轱辜酤鈲鮕鴣鸪𠷞𠽿𡗷𢡇𣀐𥂰𥿍𦊬𦋆𦺠𧆻𧇡𧬕𨠋𨬕𨱃𨸯]→gū;
 [䜼䮩鶻𦎰𧳸]→gú;
-[⻣㒴㚉㯏㾶䀇䀜䀦䀰䐨䵻䶜傦古唃啒嘏夃尳愲扢榖榾汩淈濲瀔牯皷皼盬瞽穀糓縎罟羖股脵臌蓇薣蛊蛌蠱詁诂谷賈贾轂逧鈷钴餶馉骨鹄鹘鼓鼔𠑹𠻧𡷓𡽂𢝳𣖫𣦩𣦭𣨍𣨺𣫀𣱫𤅱𤚱𥐬𥠳𥮝𥵠𦈔𦍩𦾫𧟣𧣡𧵎𨪷𨵐𩙏𩲱𪇗𪕷]→gǔ;
+[⻣㒴㚉㯏㾶䀇䀜䀦䀰䐨䵻䶜傦古唃啒嘏夃尳愲扢榖榾毂汩淈濲瀔牯皷皼盬瞽穀糓縎罟羖股脵臌蓇薣蛊蛌蠱詁诂谷轂逧鈷钴餶馉骨鹄鹘鼓鼔𠑹𠻧𡷓𡽂𢝳𣖫𣦩𣦭𣨍𣨺𣫀𣱫𤅱𤚱𥐬𥠳𥮝𥵠𦈔𦍩𦾫𧟣𧣡𧵎𨪷𨵐𩙏𩲱𪇗𪕷]→gǔ;
 [㧽㽽䍛䓢僱凅固堌崓崮故梏棝牿痼祻稒錮锢雇顧顾鯝鲴𣪸𩴡]→gù;
-[咕菇]→gu;
 [㧓㶽䏦䒷䫚䯄䯏刮劀栝歄煱瓜緺聒胍趏踻銽颪颳騧鴰鸹𠛒𠜵𠟗𠯑𠵯𡜁𥄼𥈓𧿼𨵃𩢍𩻎]→guā;
 [𪇜]→guá;
 [㒷䈑冎剐剮叧寡𠆣𠈥𠊰𠙼𠮠𣅻𧤐]→guǎ;
@@ -397,8 +394,8 @@
 [㾩䂷乖掴摑𠛕𠦬𡇸𡧩𦮃𧱾]→guāi;
 [拐枴柺箉𦫳𧊅]→guǎi;
 [㧔䂯䊽叏夬怪恠𡌪𡖪𢶒𣲾𥑋𥑰𧴚𩶦]→guài;
-[䚪䤽倌关冠官棺瘝癏矜窤莞蒄覌観觀观関闗關鰥鱞鳏𠴨𡅭𡠒𡭷𢇇𢉂𢺄𥈒𥍅𥎅𥜄𥷬𥿑𦺊𨷀𩖒]→guān;
-[䏓䗆䘾䦎䩪䪀䲘琯痯筦管舘輨錧館馆鳤𦛤𨵄]→guǎn;
+[䚪䤽倌关冠官棺瘝癏窤蒄覌観觀观関闗關鰥鱞鳏𠴨𡅭𡠒𡭷𢇇𢉂𢺄𥈒𥍅𥎅𥜄𥷬𥿑𦺊𨷀𩖒]→guān;
+[䏓䗆䘾䦎䩪䪀䲘琯痯筦管舘莞輨錧館馆鳤𦛤𨵄]→guǎn;
 [㮡㴦䎚䗰䙛䙮䝺丱悹悺惯慣掼摜樌毌泴涫潅灌爟瓘盥矔礶祼罆罐貫贯躀遦鏆鑵雚鱹鸛鹳𠬆𣥥𣩔𣬂𤼐𥉀𥊫𨝑𨱌𪈸]→guàn;
 [侊僙光咣垙姯桄洸灮炗炚炛烡胱茪輄銧黆𤖖𧻺𨎩𨐈𨶰𩒚𩧉𪕓]→guāng;
 [广広廣犷獷臩𠏤𤳭𤴀𥀱𪇵]→guǎng;
@@ -406,7 +403,7 @@
 [欟]→guang;
 [⻱⻲㰪䅅䲅亀傀圭妫媯嫢嬀巂帰廆归摫椝槻槼櫷歸珪瑰璝瓌皈硅窐胿膭茥螝袿規规邽郌閨闺騩鬶鬹鮭鲑龜龟𡃩𡌲𡹙𢄊𢻂𤼮𥇳𥈸𥍁𥦣𦓯𦤇𧷱𨾚𨾴𩓠𪄯𪆳𪈥𪊧]→guī;
 [⻤㔳㧪㨳㲹㸵䃽䍯䞨䣀䤥佹匦匭厬垝姽宄庋庪恑攱晷朹氿湀癸瞡祪簋蛫蟡觤詭诡軌轨陒鬼𠱓𡷺𢃯𣢪𣪕𣷾𤘧𥍨𥥠𦳛𧊄𩊛𩱻𩲡𩳧𪀗]→guǐ;
-[㪈䁛䈐䌆䐴䝿䞈䠩䳏刽刿劊劌匱嶡撌攰昋柜桂桧椢槶檜櫃炅炔猤癐瞶禬筀簂蓕襘貴贵跪鞼鱖鱥鳜𠐽𠪑𡗤𡧭𡬂𢠿𣄜𣦦𣧎𤡱𤱺𤱾𤲉𤻿𤿡𥎛𥜏𧡫𧹑𧻜𨇙𨋡𨲿𩉝𩍨𩏐𩏡𩔆𩪁𩳝𪏤]→guì;
+[㪈䁛䈐䌆䐴䝿䞈䠩䳏刽刿劊劌匱嶡撌攰昋柜桂桧椢槶檜櫃炔猤癐瞶禬筀簂蓕襘貴贵跪鞼鱖鱥鳜𠐽𠪑𡗤𡧭𡬂𢠿𣄜𣦦𣧎𤡱𤱺𤱾𤲉𤻿𤿡𥎛𥜏𧡫𧹑𧻜𨇙𨋡𨲿𩉝𩍨𩏐𩏡𩔆𩪁𩳝𪏤]→guì;
 [㨰㯻䃂䎾䜇丨惃滚滾磙緄绲蓘蔉衮袞輥辊鮌鯀鲧𠃌𡈧𡘝𢃩𣮎𥕦𦓼𦠺𦫎𩨬𩩌]→gǔn;
 [㙥䵪棍璭睔睴謴𠞬𡻨𧬪𧸫]→gùn;
 [㗻㳡㿆呙咼啯嘓埚堝墎崞彉彍濄瘑蝈蟈郭鈛鍋锅𡓣𣁯𣂄𣽅𣽰𥂣𦗒𦘌𦬗𨽏𩫏𩰬𩰭𪆹𪈃]→guō;
@@ -418,23 +415,23 @@
 [奤]→hǎ;
 [㨟㰧㰩㱼㾂咍咳嗨𣢇𨸜]→hāi;
 [㜾䠽䯐䱺孩还還頦骸𠹛𧻲𧽊𧽖𩠚𩰶]→hái;
-[塰浬海烸胲酼醢𣖻𣳠𥁐𥂧𨡬]→hǎi;
+[塰海烸胲酼醢𣖻𣳠𥁐𥂧𨡬]→hǎi;
 [㤥㧡㺔䇋亥嗐妎害氦餀饚駭駴骇𠀅𠔑𡕗𡾨𢞐𢩸𢻜𤵽𥩤𥩲𦐤𦤦𦤬𦷷𨀖𩞞𩡔𩪃𩹄]→hài;
 [嚡]→hai;
-[㤷䘶䣻佄哻嫨憨歛蚶谽酣顸馠鼾𠵸𡬖𣝽𣢅𣢺𤞶𤸕𧭻𧮰𧮳𧵊𧹣𩈣]→hān;
+[㤷䘶䣻佄哻嫨憨歛蚶谽酣頇顸馠鼾𠵸𡬖𣝽𣢅𣢺𤞶𤸕𧭻𧮰𧮳𧵊𧹣𩈣]→hān;
 [㖤㟏㟔㮀㶰㼨䈄䎏䗙䤴䥁䨡䶃函凾含咁唅圅娢寒崡嵅晗梒浛涵澏焓琀甝筨肣虷蜬邗邯鋡韓韩魽𠗴𠤮𠤾𠥴𠦊𠲒𠿑𡇜𢔈𣘞𣢟𣵷𤬯𤭙𥀐𥆡𦜆𦞞𦥖𦺦𧃙𧑚𩄙𩦊𫒶]→hán;
 [㘎㘕㘚㸁㺖䍐䍑䓍丆厈喊浫罕蔊豃阚鬫𠽦𣛴𦒝𧯘𧾔]→hǎn;
 [㑵㒈㢨㨔㪋㲦㵄㺝䎯䏷䓿䕿䗣䛞䧲䫲䮧傼垾屽岾悍憾捍撖撼旱晘暵汉汗涆漢瀚焊熯猂皔睅翰莟菡蘫蛿蜭螒譀釬銲鋎閈闬雗頷顄颔馯駻鶾𠢇𠹄𡁀𡣔𡷛𡻡𢀵𢃗𢄜𢇞𢎘𢔔𢧦𣐺𣒷𤀉𤌐𤳉𤿧𥇌𥉰𦋣𦒅𧂃𧰪𨁄𨛎𨢈𨸗𩎒𩕠𩖺𩗤𩞿𩭥𩹑𩹼𩾝𫘣]→hàn;
 [兯爳]→han;
-[㰠䂫䦭𠡊𤵻𩠾𩲋𪐦𪕇]→hāng;
+[㰠䂫䦭夯𠡊𤵻𩠾𩲋𪐦𪕇]→hāng;
 [㤚䀪䘕䲳垳斻杭珩笐筕絎绗航苀蚢貥迒頏颃魧𤼍𦐄𦨵𧘃𧦑𨁈𨾒𪗜]→háng;
 [䟘䣈沆𡕧𤰟𥮕𩔋]→hàng;
 [嚆茠蒿薅薧𡽝𢻇𣭖𣭹𤡇𤢨𧯌𩮘]→hāo;
 [㠙㩝㬔䝥䧫儫嗥嘷噑嚎壕椃毜毫濠獆獋獔竓籇蚝蠔諕譹豪貉𠚃𠢕𡐒𣘫𤀃𤢭𨂜𨒑𨚙𨼍𩐮𩖸𩫕]→háo;
 [好郝𡥆𤫧]→hǎo;
 [㘪㙱㚪㝀㞻㬶䒵䚽䝞䧚䪽䯫傐号哠恏悎昊昦晧暤暭曍浩淏滈澔灏灝皓皜皞皡皥秏耗聕薃號鄗鎬顥颢鰝𡚌𡚽𡠖𣆧𣚧𤝐𤩩𤩭𥍣𦳁𧇼𧬁𨚮𨠬𩲊]→hào;
-[㰤㿣䏜䶎喝嗬抲欱蠚訶诃𠀀𠳊𠵩𢥳𣣹𥘫𦘿𩐥𩑸𪖲]→hē;
-[㕡㗿㥺㪃㪉㭱㮝㮫㹇㿥䃒䅂䒩䕣䞦䢔䫘䮤䶅何劾合咊和哬啝姀峆惒敆曷柇核楁毼河涸渮澕熆狢皬盇盉盍盒礉禾秴篕籺粭紇翮荷菏萂蚵螛覈訸詥貈輅郃鉌鑉闔阂阖鞨頜饸魺鲄鶡鹖麧齕龁龢𠘢𠚔𠧕𠰓𠳇𠶹𠻙𡇞𡇶𢄍𣏷𣲲𣿌𤈧𤖱𥝖𥝸𥞄𥞍𥟃𥻉𥽶𦃔𦇸𦒏𦛘𦛜𦳬𦼵𧇎𧇮𧊬𧝳𧪞𧭳𧮵𨋟𨍇𨜱𨜴𨨛𨴢𩅢𩌡𩩲𪈊𪘹]→hé;
+[㰤㿣䏜䶎呵喝嗬抲欱蠚訶诃𠀀𠳊𠵩𢥳𣣹𥘫𦘿𩐥𩑸𪖲]→hē;
+[㕡㗿㥺㪃㪉㭱㮝㮫㹇㿥䃒䅂䒩䕣䞦䢔䫘䮤䶅何劾合咊和哬啝姀峆惒敆曷柇核楁毼河涸渮澕熆狢皬盇盉盍盒礉禾秴篕籺粭紇翮荷菏萂蚵螛覈訸詥貈輅郃鉌鑉闔阂阖鞨頜颌饸魺鲄鶡鹖麧齕龁龢𠘢𠚔𠧕𠰓𠳇𠶹𠻙𡇞𡇶𢄍𣏷𣲲𣿌𤈧𤖱𥝖𥝸𥞄𥞍𥟃𥻉𥽶𦃔𦇸𦒏𦛘𦛜𦳬𦼵𧇎𧇮𧊬𧝳𧪞𧭳𧮵𨋟𨍇𨜱𨜴𨨛𨴢𩅢𩌡𩩲𪈊𪘹]→hé;
 [㬞㵑㷎䚂䳽佫嗃垎壑寉焃煂熇燺爀癋碋穒翯袔褐謞賀贺赫靍-靏鶮鶴鸖鹤𠗂𠡀𠶾𡫥𢅰𢬲𣆈𤌾𥋿𦺞𦽅𧀔𧝂𧨂𧬂𧬱𧯉𩄸𩩒𩵢]→hè;
 [㱄嘿潶黑黒𢖛𢡀𥕙𨭆𩻤]→hēi;
 [㯊拫痕鞎𦚣]→hén;
@@ -451,28 +448,25 @@
 [齁𠯜𩙡𪅺𪖙]→hōu;
 [㗋㤧㬋㮢㺅䂉䗔䙈䫛䳧侯喉帿猴瘊睺矦篌糇翭翵葔鄇鍭餱骺鯸𡞥𡟑𡹵𢜴𣔹𣣠𣣡𥈑𥚦𦑚𦚥𦞈𦞕𧇹𧮶𧼵𩃺𪃶𪑻]→hóu;
 [㖃㸸吼犼𠴣𤘽𤙽𦍵𧻿]→hǒu;
-[㫗䞀䞧䪷厚后垕堠後洉豞逅郈鮜鱟鲎鲘𠷋𥀃𥅠𧙺𧩨𩄬𩘋𪄗𪇂]→hòu;
-[候]→hou;
-[㦆㦌㧮㧾㫚㳷㺀䓤䨚䩐䬍䰧䴣䴯乯匢匫呼唿嘑垀寣幠忽恗惚戯昒曶歑泘淴滹烀膴苸虍虖謼軤轷雐𠥰𠦪𡧥𡱽𡼘𢑢𢽨𣓗𣡾𤇠𤎲𤐀𤶘𥇰𦁕𦩕𧇛𧠩𧢰𧦝𧩓𨕚𨖃𩂂𩖨𩳨𩶈]→hū;
-[㗅㪶㯛㽇㾰䁫䈸䉿䊀䎁䚛䞱䠒䧼䩴䭅䭌䭍喖嘝囫壶壷壺媩弧抇搰斛楜槲湖瀫焀煳狐猢瑚瓳箶絗縠胡葫蔛蝴螜衚觳醐鍸隺頶餬鬍魱鰗鵠鶘鶦鹕𠴱𡍐𡰅𡹹𢉢𢎵𢏯𢑹𢪏𣄟𣎚𣙶𣛫𣝗𣫈𣹬𤌍𤘵𤝘𤞲𤭱𤾅𥂤𥐿𥰪𥶜𥷆𥾨𦊧𦏗𦖼𦗣𦧘𦴉𦷳𦺟𧇰𧍵𧛞𧞒𧣼𧲥𧹾𧻰𨍲𨢋𨣗𨴬𩑶𩢪𩨔𩰯𩱍𩵬𩾻𪂒𪏻𪕉𪕮𪕱𪙈]→hú;
-[⻁䗂乕俿汻浒滸琥萀虎虝錿鯱𧆢𧆮𧌧𧰴𨛵𨝘]→hǔ;
+[㫗䞀䞧䪷候厚后垕堠後洉豞逅郈鮜鱟鲎鲘𠷋𥀃𥅠𧙺𧩨𩄬𩘋𪄗𪇂]→hòu;
+[㦆㦌㧮㧾㫚㳷㺀䓤䨚䩐䬍䰧䴣䴯乎乯匢匫呼唿嘑垀寣幠忽恗惚戯昒曶歑泘淴滹烀膴苸虍虖謼軤轷雐𠥰𠦪𡧥𡱽𡼘𢑢𢽨𣓗𣡾𤇠𤎲𤐀𤶘𥇰𦁕𦩕𧇛𧠩𧢰𧦝𧩓𨕚𨖃𩂂𩖨𩳨𩶈]→hū;
+[㗅㪶㯛㽇㾰䁫䈸䉿䊀䎁䚛䞱䠒䧼䩴䭅䭌䭍喖嘝囫壶壷壺媩弧抇搰斛楜槲湖瀫焀煳狐猢瑚瓳箶糊絗縠胡葫蔛蝴螜衚觳醐鍸隺頶餬鬍魱鰗鵠鶘鶦鹕𠴱𡍐𡰅𡹹𢉢𢎵𢏯𢑹𢪏𣄟𣎚𣙶𣛫𣝗𣫈𣹬𤌍𤘵𤝘𤞲𤭱𤾅𥂤𥐿𥰪𥶜𥷆𥾨𦊧𦏗𦖼𦗣𦧘𦴉𦷳𦺟𧇰𧍵𧛞𧞒𧣼𧲥𧹾𧻰𨍲𨢋𨣗𨴬𩑶𩢪𩨔𩰯𩱍𩵬𩾻𪂒𪏻𪕉𪕮𪕱𪙈]→hú;
+[⻁䗂乕俿唬汻浒滸琥萀虎虝錿鯱𧆢𧆮𧌧𧰴𨛵𨝘]→hǔ;
 [㕆㨭㷤㸦㺉䇘䊺䍓䕶䨼䪝乥互冱冴嗀嚛婟嫭嫮岵帍弖怘怙戶-戸戽扈护摢昈枑楛槴沍沪滬熩瓠祜笏簄粐綔芐蔰護鄠鍙雽韄頀鱯鳠鳸鸌鹱𠯳𠰛𡜂𡞠𡴱𡵘𡻮𢆰𢚪𢨥𢨦𣑂𣲑𤘔𤜷𤨖𤹣𥢟𥲉𦊂𦊘𦬚𦭈𧂔𧅰𧆯𧗌𧘢𧥮𧥯𧦚𧲇𧹲𧿓𧿠𨝞𨢤𨥛𨱀𪄮𪍂𪏳]→hù;
-[乎唬糊𩾇]→hu;
+[𩾇]→hu;
 [㳸哗嘩埖婲椛硴糀花芲蒊蘤誮錵𠝐𡁑𤙕𦧹𦶎𨣄𨶱𩝨]→huā;
-[㕲㟆㠏㦊㭉䔢䱻䴳䶤劃华姡搳撶滑猾磆華蕐螖譁釪釫鋘鏵铧驊骅鷨𠳂𢼤𤁪𥉄𥢮𦧠𦽊𧑍𧨋𧽌𩤉𪉊]→huá;
-[㓰㕦㕷㚌䀨䇈䋀䛡划化夻婳嫿嬅崋摦杹桦槬樺澅画畫畵繣舙觟話諙諣譮话黊𠤎𠿜𢄶𢦚𣶩𥒶𥧰𦁊𦖍𦧵𦪠𨶬𩂤𩗐𩲏𩵏𩸄]→huà;
+[㕲㟆㠏㦊㭉䔢䱻䴳䶤华姡搳撶滑猾磆華蕐螖譁釪釫鋘鏵铧驊骅鷨𠳂𢼤𤁪𥉄𥢮𦧠𦽊𧑍𧨋𧽌𩤉𪉊]→huá;
+[㓰㕦㕷㚌䀨䇈䋀䛡划劃化夻婳嫿嬅崋摦杹桦槬樺澅画畫畵繣舙觟話諙諣譮话黊𠤎𠿜𢄶𢦚𣶩𥒶𥧰𦁊𦖍𦧵𦪠𨶬𩂤𩗐𩲏𩵏𩸄]→huà;
 [㜳㠢䃶徊怀懐懷槐櫰淮瀤耲蘹褢褱踝𩌃𪊉]→huái;
 [咶坏壊壞蘾𣟉𣩹𣸎𤜄𦏨𦧬𧱳𩟮]→huài;
-[㹕嚾懽歓犿獾讙貛酄驩鴅鵍𠂄𡚊𡚜𣌓𤛚𥐓𥹚𨽧𩦘𩵄𩿊𪈩]→huān;
+[㹕嚾懽欢歓歡犿獾讙貛酄驩鴅鵍𠂄𡚊𡚜𣌓𤛚𥐓𥹚𨽧𩦘𩵄𩿊𪈩]→huān;
 [㡲㵹㶎㿪䝠䥧䦡䭴䴉䴋䴟圜嬛寏寰峘桓洹澴狟环環瓛糫絙綄繯缳羦荁萈萑豲貆轘郇鉮鍰鐶锾镮闤阛雈鬟鹮𠟼𡄤𡍦𡘍𡩂𡱌𢟿𤩽𦣴𦻃𦼉𨕹𩍡𩑖𩙽𩡧𪊥𪍺]→huán;
 [㣪䈠攌緩缓𤀣𤼢𥶍𦑛𧡩]→huǎn;
 [㕕㪱㬇㬊㹖㼫䀓䆠䍺䒛䠉䯘唤喚喛奂奐宦嵈幻患愌换換擐梙槵浣涣渙漶澣烉焕煥瑍痪瘓睆肒藧豢逭鯇鯶鰀鲩𠺐𠻍𡅱𡅻𡷗𤡟𤢁𤴯𤽅𤽕𥈉𥏇𥠅𦌦𦝝𧚁𧴊𨜌]→huàn;
-[欢歡]→huan;
 [㠵㡃㬻䀮塃巟慌朚肓荒衁𡜋𡡄𡿰𢁹𢇟𣆖𣺬𤆴𤠛𤭉𥿪𧖬𧠬𨚳𩢯𪀞]→huāng;
 [⻩㞷㾮䄓䅣䅿䊗䊣䍿䑟䞹䪄䮲䳨偟凰喤堭墴媓崲徨惶楻湟潢煌熿獚瑝璜癀皇磺穔篁篊簧艎葟蝗蟥諻趪遑鍠鐄锽隍韹餭騜鰉鱑鳇鷬黃黄𠂸𡉚𤚝𤛥𤯷𤾑𦡽𦪗𧕸𨉤𨍧𨜔𨝴𨱑𩞩𪏍𪏒𪏙𫗮]→huáng;
-[㤺䐠兤奛宺幌怳恍晄櫎炾熀縨詤謊谎𡧽𣄙𣉪𦟮𦵽]→huǎng;
+[㤺䐠兤奛宺幌怳恍晃晄櫎炾熀縨詤謊谎𡧽𣄙𣉪𦟮𦵽]→huǎng;
 [㨪㿠䁜䌙愰曂榥滉皝皩鎤𥫼𨉁]→huàng;
-[晃]→huang;
 [㞀㧑㫎㷇㹆㾯䖶䜐䝅咴噅噕婎媈幑徽恢拻挥揮撝晖暉楎洃瀈灰灳烣煇珲睳禈翚翬蘳虺袆褘詼诙豗輝辉隓隳鰴麾𠓊𠯠𡒾𡯥𢀡𢊄𣄓𤕚𤟤𤾈𥃌𥌍𦭹𧉇𧗼𧳐𨦗𩻟𪀬𪈑𪏏𪑀𪖕]→huī;
 [佪囘回囬廻廽恛洄烠痐茴蚘蛔蛕蜖迴逥鮰𠲛𡋙𡰋𡹎𤜡𨛤𩢱𪀟𪛂𫚔]→huí;
 [㩓㷄㷐䃣䏨䛼悔檓毀毁毇燬譭𡢕𡭛𣸀𤃽𤈦𤌋𥊔𥶵𥸃𦞙𦽐𧗏𩃾𩗝𩶥𪏇]→huǐ;
@@ -486,43 +480,39 @@
 [䄆䄑䣶佸活秮秳𡯢𢋒𤻙𦨯𧵻]→huó;
 [伙夥漷火邩鈥钬𤆄𤬁]→huǒ;
 [㓉㖪㗲㘞㦎㦜㦯㨯㩇㯉㸌㺢䁨䂄䄀䉟䐸䨥䬉䰥䱛俰咟嚯嚿奯惑或捇掝旤曤楇檴沎湱濩瀖獲癨眓矆矐砉祸禍穫耯臛艧获蒦藿蠖謋貨货鑊镬閄霍靃𠙞𠯐𠵾𡄴𡓘𡪞𡿿𢃎𢛯𢝇𢞕𣄸𣉒𣤨𤁹𤊴𤏘𤐰𥇙𥊮𥒠𥙨𥝂𥽥𦑌𦒧𦞦𧆑𧤴𧯆𧯱𨐶𨘌𨙀𩆀𩞺𩟨𩟸𩪭𪒩]→huò;
-[㚻㛷㦘㫷㮷䁶䂑䇫䐚䕤䗗䛴䟇丌乩僟击刉刏剞勣叽咭唧喞嗘嘰圾基墼姬屐嵆嵇撃擊敧朞机枅槣樭機櫅毄汲激犄玑璣畸畿癪矶磯禨积稘稽積笄筓箕簊緝績绩缉羁羇羈耭肌芨虀襀覉覊觭譏譤讥賫賷赍跡跻蹟躋躸迹鄿銈錤鐖鑇鑙隮雞鞿韲飢饑饥鳮鶏鷄鸄鸡齎齏齑𠀷𠋻𠍃𠔋𠚽𠟣𠴩𠷌𠼻𡇟𡫀𡳮𡿙𢁂𢆻𢡴𢨐𢩦𢼋𣇳𣪠𣬠𣰈𤋭𤌿𤳎𥘌𥡒𥨿𥫶𥰦𥳏𥺵𦌰𦠄𦳌𦺬𦼷𦿓𧐐𧗒𧫠𨅤𨊻𨍺𨐆𨮺𨲪𨳻𨹶𨻕𩉜𩐆𩚮𩜆𩠨𩨒𪅹𪌍𪔋𫌀]→jī;
-[㔕㗊㗱㘍㙫㠍㠎㡮㤂㥛㧀㭲㲺㴕㻷㽺㾊䁒䐕䚐䞘䟌䣢䩯䲯䳭亟亼亽伋佶偮卙即卽及叝吉塉姞嫉岌嶯庴彶忣急愱戢揤极棘楫極槉橶檝殛湒潗濈焏狤疾瘠皀皍笈箿籍級级耤脊膌艥蒺蕀蕺藉螏襋觙诘谻趌踖蹐躤轚郆銡鍓鏶集雦雧霵鶺鷑鹡𠑃𠓞𠗏𠦫𠨠𠫷𠯉𠶻𠹋𠿠𡁰𡃃𡅺𡦪𡹪𢃺𢉗𢏞𢰒𢱣𣏡𣖷𣛔𣜇𣣝𣳃𣹜𤊵𤎗𤠎𤷉𤺷𤿠𥈂𥊬𥋥𥒡𥕂𥖙𥠋𦎢𦝖𦠾𦩧𦵾𦶍𦺩𦺴𧉆𧉍𧎿𧤏𧥄𧧩𧩦𧪠𧮭𧽑𨋉𨤹𨦮𨪏𨸚𩀖𩦤𩴃𪂺𪄸]→jí;
+[㚻㛷㦘㫷㮷䁶䂑䇫䐚䕤䗗䛴䟇丌乩僟击刉刏剞勣叽咭唧喞嗘嘰圾基墼姫姬屐嵆嵇撃擊敧朞机枅槣樭機櫅毄激犄玑璣畸畿癪矶磯禨积稘稽積笄筓箕簊緝績绩缉羁羇羈耭肌芨虀襀覉覊觭譏譤讥賫賷赍跡跻蹟躋躸迹鄿銈錤鐖鑇鑙隮雞鞿韲飢饑饥鳮鶏鷄鸄鸡齎齏齑𠀷𠋻𠍃𠔋𠚽𠟣𠴩𠷌𠼻𡇟𡫀𡳮𡿙𢁂𢆻𢡴𢨐𢩦𢼋𣇳𣪠𣬠𣰈𤋭𤌿𤳎𥘌𥡒𥨿𥫶𥰦𥳏𥺵𦌰𦠄𦳌𦺬𦼷𦿓𧐐𧗒𧫠𨅤𨊻𨍺𨐆𨮺𨲪𨳻𨹶𨻕𩉜𩐆𩚮𩜆𩠨𩨒𪅹𪌍𪔋𫌀]→jī;
+[㔕㗊㗱㘍㙫㠍㠎㡮㤂㥛㧀㭲㲺㴕㻷㽺㾊䁒䐕䚐䞘䟌䣢䩯䲯䳭亟亼亽伋佶偮卙即卽及叝吉塉姞嫉岌嶯庴彶忣急愱戢揤极棘楫極槉橶檝殛汲湒潗濈焏狤疾瘠皀皍笈箿籍級级耤脊膌艥蒺蕀蕺藉螏襋觙诘谻趌踖蹐躤輯轚辑郆銡鍓鏶集雦雧霵鶺鷑鹡𠑃𠓞𠗏𠦫𠨠𠫷𠯉𠶻𠹋𠿠𡁰𡃃𡅺𡦪𡹪𢃺𢉗𢏞𢰒𢱣𣏡𣖷𣛔𣜇𣣝𣳃𣹜𤊵𤎗𤠎𤷉𤺷𤿠𥈂𥊬𥋥𥒡𥕂𥖙𥠋𦎢𦝖𦠾𦩧𦵾𦶍𦺩𦺴𧉆𧉍𧎿𧤏𧥄𧧩𧩦𧪠𧮭𧽑𨋉𨤹𨦮𨪏𨸚𩀖𩦤𩴃𪂺𪄸]→jí;
 [㚡㞆㞛㞦㦸㨈㴉䍤䢳丮几妀嵴己幾戟挤掎撠擠泲犱穖虮蟣魕魢鱾麂𠮯𠱨𢓄𢜭𤜝𤜾𥪼𥾊𧾾𨄐𨒴𨳋𩉢𩯋𪂍]→jǐ;
 [⺔⺕㑧㒫㙨㞃㠱㡭㥍㮨㰟㲅㳵㸄㹄㻑㾵䀈䋟䐀䓽䗁䛋䜞䝸䠏䢋䤒䦇䨖䮺䰏䶓䶩伎偈兾冀剂剤劑哜嚌坖垍塈妓季寂寄峜廭彐彑徛忌悸惎懻技旡-旣暨暩曁梞檕檵洎济済漃漈濟瀱痵癠祭禝稩稷穄穊穧紀紒継繋繼纪继罽臮芰茍茤荠葪蓟蔇薊薺蘎蘮蘻裚覬觊計記誋諅计记跽际際霁霽驥骥髻鬾鯚鰶鰿鱀鱭鲚鲫鵋齌𠨕𠲹𠴫𠿉𡁪𡋚𡜱𡥞𡦊𡪱𡬄𡽉𢍇𢗂𢗹𢚁𢭄𢺼𢼷𣄯𣄱𣔽𣯅𣱗𣽍𤓑𤛄𤤋𤫝𤵀𥡴𥣩𥪫𥭋𥭌𥭜𥷙𦁳𦂑𦆡𦇧𦋋𦌗𦜸𦪱𦮯𦮼𦺶𦾲𧃞𧇯𧓓𧟜𧡉𧡯𧢾𧧃𧧟𧪇𧫜𧾽𨀶𨂢𨛉𨛑𨜒𨢵𨣧𩓮𩞊𩥉𩧱𩩛𩼄𩼚𪄵𪊆𪘥]→jì;
-[輯辑]→ji;
-[㚙㹢䂟䕒䴥乫佳傢加嘉埉夹夾家抸拁枷梜毠泇浃浹犌猳珈痂笳糘耞腵茄葭袈豭貑跏迦鉫鉿鎵镓麚𠷉𠺢𡩚𡭘𡶥𣪇𣮫𤟚𤠙𥝿𥡮𥹌𦎮𦣯𧉪𧦤𨔗𨔣𩊏𩶛𪐓𪔟]→jiā;
+[㚙㹢䂟䕒䴥乫伽佳傢加嘉埉夹夾家抸拁枷梜毠泇浃浹犌猳珈痂笳糘耞腵茄葭袈豭貑跏迦鉫鉿鎵镓麚𠷉𠺢𡩚𡭘𡶥𣪇𣮫𤟚𤠙𥝿𥡮𥹌𦎮𦣯𧉪𧦤𨔗𨔣𩊏𩶛𪐓𪔟]→jiā;
 [㕅㪴㮖㿓䀫䕛䛟䩡唊圿忦恝戛戞扴荚莢蛱蛺袷裌跲郏郟鋏铗頬頰颊餄鴶鵊𡊠𢫢𥇗𥑔𥞵𦎱𦧮𦸘𦺧𦽤𧿵𨒇𩉡𩚲𩛩𩠃𪇷𪈟]→jiá;
-[䑝假叚婽岬徦斚斝椵榎槚檟玾甲瘕胛鉀钾𣦉𤖰𤗜𥑐𩌍𩨹𩲣𪆲]→jiǎ;
-[价價嫁幏架榢駕驾𢉤𢜿𢱈𢱌𥋣𦙺𦨦]→jià;
-[稼]→jia;
-[㓺㔋㡨㦰㭴䌑䌠䓸䔐䘋䶢䶬兼冿囏坚堅奸姦姧尖幵惤戋戔搛椷椾樫櫼歼殱殲湔瀐瀸煎熞熸牋犍猏玪瑊监監睷碊礛笺箋篯緘縑缄缣肩艰艱菅菺葌蒹蕑蕳虃覸豜豣鐧鑯閒間间鞬鞯韀韉餰馢鰹鲣鳒鳽鵳鶼鹣麉𠫘𠼤𠿏𡄑𡬵𢃬𢐆𢦺𢨿𢳚𣘖𣘷𣚙𣝕𣮏𣽖𤍖𤪋𥊇𥌈𥡝𦋰𦏔𦣨𦽇𧂢𧢖𧤨𧥈𧲨𨔥𨳡𨳿𨴾𩅼𩆷𩇏𩋋𩌯𩍎𩛧𩱃𪏊𪐻𪒹]→jiān;
+[䑝假叚婽岬徦斚斝椵榎槚檟玾甲瘕胛賈贾鉀钾𣦉𤖰𤗜𥑐𩌍𩨹𩲣𪆲]→jiǎ;
+[价價嫁幏架榢稼駕驾𢉤𢜿𢱈𢱌𥋣𦙺𦨦]→jià;
+[㓺㔋㡨㦰㭴䌑䌠䓸䔐䘋䶢䶬兼冿囏坚堅奸姦姧尖幵惤戋戔搛椷椾樫櫼歼殱殲湔瀐瀸煎熞熸牋犍猏玪瑊监監睷碊礛笺箋篯緘縑缄缣肩艰艱菅菺葌蒹蕑蕳虃覸豜豣鐧鑯間间鞬鞯韀韉餰馢鰹鲣鳒鳽鵳鶼鹣麉𠫘𠼤𠿏𡄑𡬵𢃬𢐆𢦺𢨿𢳚𣘖𣘷𣚙𣝕𣮏𣽖𤍖𤪋𥊇𥌈𥡝𦋰𦏔𦣨𦽇𧂢𧢖𧤨𧥈𧲨𨔥𨳡𨳿𨴾𩅼𩆷𩇏𩋋𩌯𩍎𩛧𩱃𪏊𪐻𪒹]→jiān;
 [㔓㨵㳨㶕䄯䅐䉍䚊䟰䭠䮿䵡䵤䶠俭倹儉减剪劗囝堿弿彅戩戬拣挸捡揀揃撿暕枧柬梘检検檢減湕瀽瑐睑瞼硷碱礆笕筧简簡籛絸繭翦茧藆蠒裥襇襉襺詃謇謭譾谫趼蹇鐗锏鬋鰎鹸鹻鹼𠍚𠏇𠐻𠹟𠽱𡄓𡅶𡑯𡭭𡾰𢆞𢍫𢩀𢵈𣜭𣠷𣥞𣳲𤄒𥀹𥍀𥍹𥢇𥳒𥳟𥳷𦁲𦂇𦢣𦺍𦺘𧀇𧅆𧬫𧮈𨢑𨣇𨤄𨰓𩉍𩟗𩽜𪒫]→jiǎn;
 [⻅㣤㨴㯺㰄㵎䇟䟅䤔䥜䧖䬻䭈䯡件俴健僭剑剣剱劍劎劒劔墹寋建徤擶旔栫楗榗毽洊涧渐溅漸澗濺瀳牮珔瞷磵礀箭糋繝腱臶舰艦荐葥蔪薦螹袸見覵见諓諫譼谏賎賤贱趝践踐踺轞釼鉴鋻鍳鍵鏩鐱鑑鑒鑬鑳键餞饯𠊒𢆦𣴓𣽦𤀩𤧣𤷃𥯦𥴱𥽐𦩵𦾶𧀵𧂂𧂆𧗸𧙧𨎫𨏊𨪅𨵭𨷓𩉔𩻘𪃛𪆿𪉦𪋁𪙨]→jiàn;
 [橺]→jian;
 [㹔䗵䜫僵壃姜将將摪橿殭江浆漿畕畺疅疆礓繮缰翞茳葁薑螀螿豇韁鱂鳉𠘌𡷍𢪇𤕭𤕯𤛜𥆅𥔣𥗪𥬮𦦗𧘍𨃇𨜰]→jiāng;
 [㢡㯍䁰䉃䋌䒂傋奖奨奬桨槳獎耩膙蒋蔣講讲顜𡏞𡑶𣫳𤖛𥷃𩌾]→jiǎng;
-[䞪䥒勥匞夅嵹弜弶彊摾櫤洚滰犟糡糨絳绛袶謽酱醤醬降𠼢𡲣𢘸𣚦𣨣𣩴𥞜𨯞𩝽𩴒𩷄𩷭𪀘]→jiàng;
-[匠杢]→jiang;
+[䞪䥒勥匞匠夅嵹弜弶彊摾櫤洚滰犟糡糨絳绛袶謽酱醤醬降𠼢𡲣𢘸𣚦𣨣𣩴𥞜𨯞𩝽𩴒𩷄𩷭𪀘]→jiàng;
+[杢]→jiang;
 [㲬㶀䌭䍊䢒䴔䶰交僬嘄姣娇嬌峧嶕嶣憍椒浇澆焦燋礁穚簥胶膠膲艽芁茭茮蕉虠蛟蟭跤轇郊鐎驕骄鮫鲛鵁鷦鷮鹪𠝑𠩏𡏭𡓖𡟠𢧱𣝞𣺳𥃪𥄉𥉼𥹜𦅃𦌆𦫶𧣦𨎦𨓩𨨴𨱓𨶲𨸋𩎔𩴧𩵰𩿑𪁉𪚰]→jiāo;
-[矫矯]→jiáo;
-[㩰㭂㳅㽱㽲䀊䘨䚩䥞佼侥僥儌剿劋孂徺徼恔憿挢捁搅摷撟撹攪敫敽敿晈暞曒湫湬灚烄煍燞狡璬皎皦笅絞繳纐绞缴脚腳臫蟜角譑賋踋鉸铰隦餃饺鱎𠕧𠜅𠞰𡙎𢀌𢄺𢅎𢯴𢻟𣁹𣏑𣧦𣩓𤃭𤉧𤶀𤶳𥂨𥃤𥅟𥇟𥉒𥏹𥳴𦗵𧂈𧎙𧎸𨇕𨖵𨝰𨶟𨶪𨺹]→jiǎo;
+[㩰㭂㳅㽱㽲䀊䘨䚩䥞佼侥僥儌剿劋孂徺徼恔憿挢捁搅摷撟撹攪敫敽敿晈暞曒湫湬灚烄煍燞狡璬皎皦矫矯笅絞繳纐绞缴脚腳臫蟜角譑賋踋鉸铰隦餃饺鱎𠕧𠜅𠞰𡙎𢀌𢄺𢅎𢯴𢻟𣁹𣏑𣧦𣩓𤃭𤉧𤶀𤶳𥂨𥃤𥅟𥇟𥉒𥏹𥳴𦗵𧂈𧎙𧎸𨇕𨖵𨝰𨶟𨶪𨺹]→jiǎo;
 [㠐㬭㰾䂃叫呌嘂嘦噍噭嬓峤嶠挍敎教斠滘漖潐獥珓皭窌窖藠訆譥趭較轎轿较酵醮釂𠘣𡥈𡬋𢒾𢕪𢥚𢼫𤕝𤫷𥘊𥡤𥦢𦮁𧺜𧾐𨎬𨡃𨲭𩊔𩯘𩱞𪖄]→jiào;
 [櫵鵤]→jiao;
-[㫸䃈䕸䥛䦈喈喼嗟堦媘嫅接掲揭擑椄楷湝煯疖痎癤皆秸稭脻菨蝔街謯阶階鞂鶛𠙤𣶏𤭧𤮌𥷫𦁉𦈰𦝨𧞝𩘅𩩰𪉚]→jiē;
+[㫸䃈䕸䥛䦈喈喼嗟堦媘嫅接掲揭擑椄湝煯疖痎癤皆秸稭脻菨蝔街謯阶階鞂鶛𠙤𣶏𤭧𤮌𥷫𦁉𦈰𦝨𧞝𩘅𩩰𪉚]→jiē;
 [⺋㓗㔚㘶㛃㞯㦢㨗㨩㮞㮮㸅㼪䀷䀹䂝䂶䅥䌖䕙䗻䣠䲙倢偼傑刦刧刼劫劼卩卪婕媫孑尐岊崨嵥嶻巀幯截拮捷掶擮昅杰桀桝楬楶榤櫭洁滐潔疌睫碣礍竭節結絜结羯节莭蓵蜐蝍蠘蠞蠽衱袺訐詰誱讦踕迼鉣鍻鞊颉魝鮚鲒𠂈𠄍𠅂𠐉𠬮𠯙𡉷𡔣𡙣𡣯𡨲𡩣𡵒𡸎𡽱𢈻𢎔𢎡𢢂𢨜𢪍𢫐𢬱𢱄𢷿𢻮𣙴𣚃𣮌𣮍𣰞𣳟𤁢𥁂𥅴𥇒𥓐𥝔𥝥𥠹𥢻𥵞𥾌𦀖𦈜𦎒𦵴𦺢𦿐𧍠𧍩𧏥𧞩𧞬𧫑𧼨𧽄𧽟𧾢𧾯𨃲𨓰𨕽𨥂𩔄𩟦𩢴𩧵𩯰𩾶𪀾𪁍𪃈𪅸𪇲𪉋𪌧𪖋]→jié;
-[媎檞毑解觧飷𠎿]→jiě;
-[㑘㝏㠹㾏㿍䇒䛺䯰䰺䱄䲸丯介借吤堺屆届岕庎徣悈戒楐犗玠琾界畍疥砎蚧蛶衸褯誡诫鎅骱魪𠓢𠷟𡗦𡗲𡵚𣬫𤘦𤙩𧜅𧣋𨐑𨵠𩡺𩧦𪑹𪙏]→jiè;
-[姐]→jie;
-[⻐㦗㧆㻱䃡䈥䈽䌝䘳䤺今兓埐堻嶜巾惍斤津珒琻矝砛筋紟荕衿襟觔金釒釿钅鹶黅𠂟𠰇𢎭𢦊𤣶𥂵𦈟𦘔𦞬𦩏𧗁𨆃𨭺𩀿𩤿𪉢𪑙𪖼]→jīn;
+[姐媎檞毑解觧飷𠎿]→jiě;
+[㑘㝏㠹㾏㿍䇒䛺䯰䰺䱄䲸丯介借吤堺屆届岕庎徣悈戒楐犗玠琾界畍疥砎芥蚧蛶衸褯誡诫鎅骱魪𠓢𠷟𡗦𡗲𡵚𣬫𤘦𤙩𧜅𧣋𨐑𨵠𩡺𩧦𪑹𪙏]→jiè;
+[⻐㦗㧆㻱䃡䈥䈽䌝䘳䤺今兓埐堻嶜巾惍斤津珒琻矜矝砛筋紟荕衿襟觔金釒釿钅鹶黅𠂟𠰇𢎭𢦊𤣶𥂵𦈟𦘔𦞬𦩏𧗁𨆃𨭺𩀿𩤿𪉢𪑙𪖼]→jīn;
 [㝻㯸㹏䌍䒺䤐䥆䭙仅侭僅儘卺厪堇嫤尽巹廑槿漌瑾盡紧緊菫蓳謹谨錦锦饉馑𢬬𣝌𥖜𥯑𨚡𪏴]→jǐn;
 [㨷㬐㬜㯲㱈㴆㶦㶳䀆䆮䋮䑤䗯䝲䫴䶖伒僸凚劤劲勁唫噤嚍墐壗妗嬧寖搢晉晋枃歏殣浕浸溍濅濜烬煡燼琎瑨璡璶祲禁縉缙荩藎覲觐賮贐赆近进進靳齽𠞱𠞾𠢱𠢵𠬶𠾤𠾬𡢳𡺽𢉅𢙿𢬶𢱷𢽖𣓏𤄼𤘡𤧫𤵞𥧲𦎷𦧈𦽔𧔷𩖗]→jìn;
-[䪫䴖京亰兢坕坙婛巠惊旌旍晶橸泾涇猄秔稉粳精経經经聙腈茎荆荊莖菁葏驚鯨鲸鵛鶁鶄麖麠鼱𠳬𡁔𢀖𢈴𣋢𣻒𤜰𤷦𥠛𦀇𦂠𦜳𦽁𦾿𧓔𧤵𩓨𩳯𩹢𪂴𪇒]→jīng;
+[䪫䴖京亰兢坕坙婛巠惊旌旍晶橸泾涇猄睛秔稉粳精経經经聙腈茎荆荊莖菁葏驚鯨鲸鵛鶁鶄麖麠鼱𠳬𡁔𢀖𢈴𣋢𣻒𤜰𤷦𥠛𦀇𦂠𦜳𦽁𦾿𧓔𧤵𩓨𩳯𩹢𪂴𪇒]→jīng;
 [㘫䜘丼井儆刭剄坓宑幜憬憼景暻汫汬璄璟璥穽肼蟼警阱頚頸颈𠑱𠭉𠭗𢹘𤰳𧑊𨙷𨥙𩻱]→jǐng;
 [㢣㣏㬌䔔䝼䵞俓倞傹净凈境妌婙婧弪弳径徑敬曔桱梷浄淨瀞獍痉痙竞竟竧竫競竸胫脛誩踁迳逕鏡镜靓靖静靚靜𠗊𠗌𠦋𠲮𠷐𣬙𥅸𥯙𥶹𦥍𦳲𨵼𩃋𩇕𩓞𩰹]→jìng;
-[燝睛]→jing;
-[⺆冂冋坰坷埛扃絅蘏蘔駉駫𠕕𢂶𣕄𨴀𪔃𪕍]→jiōng;
-[㓏㢠㤯㯋㷗㷡䌹䢛侰僒冏囧泂浻澃炯烱煚煛熲燛窘綗褧迥逈颎𠖷𢄗𣔲𤌇𦀝𧍮𩓺𩚱]→jiǒng;
+[燝]→jing;
+[⺆冂冋坰埛扃絅蘏蘔駉駫𠕕𢂶𣕄𨴀𪔃𪕍]→jiōng;
+[㓏㢠㤯㯋㷗㷡䌹䢛侰僒冏囧泂浻澃炅炯烱煚煛熲燛窘綗褧迥逈颎𠖷𢄗𣔲𤌇𦀝𧍮𩓺𩚱]→jiǒng;
 [㸨䆶䡂丩勼啾揂揪揫摎朻樛牞究糺糾纠萛赳阄鬏鬮鳩鸠𠃖𠕴𠖬𠚨𠠳𠿈𢀙𢜥𣁭𣟼𤴥𤴦𤴪𥠃𥤳𦭺𦱠𦱱𦱲𦽬𨳊𩏶𩏷𩭓𩱼]→jiū;
 [㺵]→jiú;
 [㡱久乆九乣奺杦汣灸玖紤舏酒镹韭韮𠛩𠜉𠴄𡚮𣲄𤉥𨾉𨾞]→jiǔ;
@@ -530,9 +520,9 @@
 [𣐤]→jiu;
 [㖩㞐㡹㪺䅕䝻䢸䪶凥匊娵婮居崌抅拘挶掬梮椐泃涺狙琚疽痀眗砠罝腒艍苴菹蜛裾諊趄跔踘鋦锔陱雎鞠鞫駒驹鮈鴡鶋𠟰𠤄𠮑𠰾𡨢𡫬𡱾𡸘𡸨𣻐𥇛𥘮𥪏𥷚𦀣𦛓𦜛𦱅𧵞𧹕𨁺𨛮𨧙𨨠𩋜𩍔𩍸𪂓𪗖]→jū;
 [⺽㘲㥌㩴㮂㹼㽤䋰䎤䏱䕮䗇䜯䡞䤎䪕䰬䱡䳔䴗侷僪啹婅局巈桔椈橘檋毩毱泦淗湨焗犑狊粷菊蘜趜跼蹫躹輂郹閰駶驧鵙鵴鶪鼰鼳𠋬𠜹𠨭𡉎𡨅𡳘𡶋𡿾𢩁𣎛𣖣𤜔𤼳𥢧𥮗𦅽𦙮𦥑𦺖𧄛𧤑𧷾𧻗𧽻𧾣𧿻𨋧𨍯𩛺𩧺𩫴𩬜𩭊𩳵𩷐𪀣]→jú;
-[䃊䄔䅓䢹举咀弆挙擧椇榉榘櫸欅沮筥聥舉莒蒟襷踽齟龃𡕖𡢒𢤫𢯺𣌬𥄷𥈋𥯔𥴧𦇙𦞇𧺹]→jǔ;
-[㘌㜘㞫㠪㨿㩀㬬䀠䈮䛯䣰䱟䵕䶙乬俱倨倶具冣剧劇勮句埧埾壉姖寠屦屨岠巨巪怇怐怚惧愳懅懼拒拠据據昛歫洰澽炬烥犋瞿秬窭窶簴粔耟聚苣虡蚷袓詎讵豦貗跙距踞躆遽邭醵鉅鋸鐻钜锯颶飓駏鮔𠉧𠙆𠚵𡒍𡥶𢚆𣍇𣶝𤔋𤖵𤢓𤷢𥂃𥉁𥬙𥲜𥴪𦊐𦗻𦟳𦼈𧂜𧝲𧣒𧣻𧲋𧸧𨝮𨸰𩉸𩜃𩧒𩰤𩴘𩿝𪀏𪁥]→jù;
-[爠矩]→ju;
+[䃊䄔䅓䢹举咀弆挙擧椇榉榘櫸欅沮矩筥聥舉莒蒟襷踽齟龃𡕖𡢒𢤫𢯺𣌬𥄷𥈋𥯔𥴧𦇙𦞇𧺹]→jǔ;
+[㘌㜘㞫㠪㨿㩀㬬䀠䈮䛯䣰䱟䵕䶙乬俱倨倶具冣剧劇勮句埧埾壉姖寠屦屨岠巨巪怇怐怚惧愳懅懼拒拠据據昛歫洰澽炬烥犋秬窭窶簴粔耟聚苣虡蚷袓詎讵豦貗跙距踞躆遽邭醵鉅鋸鐻钜锯颶飓駏鮔𠉧𠙆𠚵𡒍𡥶𢚆𣍇𣶝𤔋𤖵𤢓𤷢𥂃𥉁𥬙𥲜𥴪𦊐𦗻𦟳𦼈𧂜𧝲𧣒𧣻𧲋𧸧𨝮𨸰𩉸𩜃𩧒𩰤𩴘𩿝𪀏𪁥]→jù;
+[爠]→ju;
 [䅌䣺勬姢娟捐涓焆瓹脧蠲裐鎸鐫镌鵑鹃𠡶𡱑𢝓𥅬𦬾𦮻𧎖𨌫𩎳𩔱]→juān;
 [㷷卷呟埍帣捲臇菤錈锩𡫂𢋄𤎱𦊌𧕲𨹵𩏗𩜇𩠉]→juǎn;
 [㢧㢾㪻㯞䄅䌸䖭䚈䡓䳪倦劵勌奆巻慻桊淃狷獧眷睊睠絭絹縳绢罥羂蔨鄄隽雋飬餋𠔉𠢚𡘰𡡀𢍏𢎥𣙢𣚓𣜨𣬋𣬏𤲨𤺻𥁠𥆞𥱽𦦽𦳽𦼱𧭦𧯦𨆈𨤑𩏹]→juàn;
@@ -540,13 +530,13 @@
 [㔃㔢㟲㤜㩱㭈㭾㰐㲄㵐㷾㸕㹟㻕䀗䁷䇶䏐䏣䐘䖼䘿䙠䝌䞷䠇䡈䣤䦆䦼亅倔傕决刔劂勪匷厥噱嚼孒孓屫崛嶥弡彏憠憰戄抉挗捔掘攫斍桷橛橜欔欮殌氒決泬灍焳熦爑爝爴爵獗玃玦玨珏瑴疦瘚矍矡砄絕絶绝臄芵蕝蕨虳蚗蟨蟩覐覚覺觉觖觼訣譎诀谲貜赽趉趹蹶蹷躩逫鈌鐍鐝钁镢駃鴂鴃鶌鷢龣𠀔𠄌𠄑𠊬𠎮𠜾𠢤𠨊𠫃𠶸𡈅𡚠𡲗𡳾𡾜𢁪𢎹𢏷𢔱𢖦𢨏𢩯𣅡𣖬𣬎𤛦𤞴𤟎𤹋𤼗𥆌𥏘𥕲𥛯𥤘𥾮𦁐𦏅𦓐𦛲𦠒𦪘𧍕𧗫𧝃𧣸𧤼𧥎𧮫𧱝𧺐𧽸𧾵𧿺𨊿𨏹𨬐𨰜𨼎𨼱𩊺𩍷𩏺𩓻𩧏𩧡𩪗𩰨𪁠𪈴𪖜𪚅𫔎𫘝𫛞]→jué;
 [䞵]→juě;
 [𣨢𥈾]→juè;
-[㚬军君均姰桾汮皲皸皹碅筠莙菌蚐袀覠軍鈞銁銞鍕钧鮶鲪麇麏麕𠀹𠣕𢻸𦇘𦌺𧽔]→jūn;
+[㚬军君均姰桾汮皲皸皹碅莙菌蚐袀覠軍鈞銁銞鍕钧鮶鲪麇麏麕𠀹𠣕𢻸𦇘𦌺𧽔]→jūn;
 [𢉦]→jǔn;
 [㑺㒞㕙㖥㝦㴫㻒㽙䇹䐃䕑䜭䝍俊儁呁埈寯峻懏捃攈攟晙棞浚濬焌燇珺畯竣箘箟蜠郡陖餕馂駿骏鵔鵕鵘𠨢𢹲𤮪𥇘𥚂𥜮𥡣𦴌𦵼𧥺𧯖𨌘𨛐𨲄𨶊𪍁𪕞]→jùn;
 [䘔咔咖喀擖衉]→kā;
 [佧卡垰胩裃鉲]→kǎ;
 [㚊䤤奒开揩鐦锎開𡙓𢔡𢾆𤡲𥻄𦂄𦈲𨴆]→kāi;
-[䁗䒓凯凱剀剴嘅垲塏嵦恺愷慨暟蒈輆鍇鎧铠锴闓闿颽𠢲𢋝𥃣𥏪]→kǎi;
+[䁗䒓凯凱剀剴嘅垲塏嵦恺愷慨暟楷蒈輆鍇鎧铠锴闓闿颽𠢲𢋝𥃣𥏪]→kǎi;
 [㪡䡷勓忾愒愾欬炌炏烗鎎𡳂𢢚𤉫𤐩𤻜𥎆𩫀]→kài;
 [㘛刊勘堪嵁戡栞龕龛𡺗𢦟𦞖𧡵𩑟]→kān;
 [㙳䖔侃偘冚坎埳塪惂槛檻欿歁砍竷莰輡轗顑𠝲𡸞𣣒𣽌𥑫𥤱𥦔𧇦𧱄𨍜𩐬𩒃𩓟𩜱]→kǎn;
@@ -560,7 +550,7 @@
 [䎋䐧犒銬铐靠鮳鯌鲓𡭳𧋓𨘴𩝝]→kào;
 [㸯䈖䌀䐦匼嗑嵙搕柯棵榼樖牁犐珂疴瞌砢磕礚科稞窠胢苛萪薖蝌趷軻轲醘鈳錒钶顆颏颗髁𠏀𠲙𡸡𡻘𢈈𢩘𣧤𤖇𤰙𥃕𥝹𥠁𥧇𧎗𧨵𧵛𧿫𨍰𨏿𨢸𩏭𩜭𪍎]→kē;
 [壳揢殼翗]→ké;
-[㞹㪙㪼㵣可岢嵑嶱敤渇渴炣𢩐𢼐𤸎𪓮]→kě;
+[㞹㪙㪼㵣可坷岢嵑嶱敤渇渴炣𢩐𢼐𤸎𪓮]→kě;
 [㕉㕎㝓㤩䆟䙐䶗克刻剋勀勊堁娔客尅恪愙氪溘碦礊緙缂艐課课锞騍骒𠛳𠡜𠡤𠢹𠩧𠪒𠪟𠳭𠶲𠷄𡞢𡱼𢩏𢾩𣩄𣲊𣹇𤛗𥊉𥔽𥦨𥯚𧈗𧛾𧜡𧠋𩭽𩰻𩱘𪃭]→kè;
 [𩎤]→kēn;
 [啃垦墾恳懇肎肯肻豤錹齦龈𠳁𣍟𣥤𤀊𥖞𨼯]→kěn;
@@ -572,7 +562,7 @@
 [㸜控鞚𤗇𦁈]→kòng;
 [䁱剾彄抠摳眍瞘芤𠛅𢂁𢄠𦬅]→kōu;
 [劶口𢼃𤘘𨙫𨥴]→kǒu;
-[㓂䍍䳹冦叩宼寇扣敂滱瞉窛筘簆蔲蔻釦鷇𡠆𢚫𢟭𣻎𣿟𥊧𥲃𦴎𦶲𧥣𩀠𪄺𪇄𫃜]→kòu;
+[㓂㰯䍍䳹冦叩宼寇扣敂滱瞉窛筘簆蔲蔻釦鷇𡠆𢚫𢟭𣻎𣿟𥊧𥲃𦴎𦶲𧥣𩀠𪄺𪇄𫃜]→kòu;
 [㗄㩿㪂㱠㵠䂗䉐䧊䯇刳哭圐堀崫扝枯桍矻窟跍郀骷鮬𠠶𡀙𡑚𡑣𡗵𡶏𡼿𢏆𢼁𣗺𥈷𥌄𥟾𥧋𦜇𦡆𧠂𧷎𩑔𩑡𩨳𪍠]→kū;
 [𦛏]→kú;
 [䇢狜苦𡞯𥯶𩇵]→kǔ;
@@ -598,10 +588,10 @@
 [尡]→kun;
 [㗥㾧䟯䦢䯺廓懖扩拡括挄擴桰濶筈萿葀蛞闊阔霩鞟鞹韕頢髺鬠𠚳𠠎𡎒𡻙𢠛𤫵𥕏𦧍𦧔𨓈𨨱𨶐𩋻𪗽]→kuò;
 [㕇㡴垃拉搚柆翋菈邋𣤊𤛊𤰚𦒆𩃜𩤲𩨉]→lā;
-[剌揦旯砬磖𡉆]→lá;
+[剌嚹揦旯砬磖𡉆]→lá;
 [喇藞𥗿𥘁𦎏]→lǎ;
 [㻋㻝䂰䃳䏀䓥䗶䱨䱫䶛揧攋楋溂爉瓎瘌腊臈臘蜡蝋蝲蠟辢辣鑞镴鬎鯻𠾩𡅘𢃴𢉨𤀦𤊶𥀥𥀰𥈙𥖍𦅶𦆻𦇛𦒦𧗩𧙀𧞪𧩲𨭛𩑮𩘊𩯽𪇹]→là;
-[啦嚹鞡𤷟𩋷]→la;
+[啦鞡𤷟𩋷]→la;
 [㥎䅘䋱䠭䧒來俫倈婡崃崍庲徕徠来梾棶涞淶猍琜筙箂莱萊逨郲錸铼騋鯠鶆麳𠎙𢑬𣖤𤢗𤦃𤲓𦓹𧯲𧳕𧳟𨂐𪑚]→lái;
 [㚓䂾𢅭𧵭𨦂]→lǎi;
 [㸊䄤䓶䚅䲚唻櫴濑瀨瀬癞癩睐睞籁籟藾襰賚賴赉赖頼顂鵣𠘝𡂖𡃄𡓒𦆋𨇆𩳆𪈈]→lài;
@@ -621,19 +611,19 @@
 [肋𡃖]→lē;
 [㔹㖀㦡乐仂叻忇扐楽樂氻泐玏砳竻簕艻阞韷鰳鳓𣂒𤟓𤨙𥖪𩐾]→lè;
 [了餎饹]→le;
-[勒擂]→lēi;
-[㒍㔣㵢㹎䍣䐯䨓儽壨嫘檑櫑欙瓃畾礌礧縲纍纝缧罍羸蔂蘲虆轠鐳鑘镭雷靁鱩鼺𡈶𡰠𡻱𢴱𣀀𣚎𣡧𤜖𤡂𤮎𤮚𤮸𤳳𤳴𤼘𥍔𦣄𧒜𧒽𧞭𨞽𩴻]→léi;
+[勒]→lēi;
+[㒍㔣㵢㹎䍣䐯䨓儽壨嫘擂檑櫑欙瓃畾礌礧縲纍纝缧罍羸蔂蘲虆轠鐳鑘镭雷靁鱩鼺𡈶𡰠𡻱𢴱𣀀𣚎𣡧𤜖𤡂𤮎𤮚𤮸𤳳𤳴𤼘𥍔𦣄𧒜𧒽𧞭𨞽𩴻]→léi;
 [㒦㙼㵽㶟㼍㿔䉂䛶䣂䴎傫儡厽垒塁壘樏櫐灅癗矋磊磥礨絫耒腂蕌蕾藟蘽蠝誄讄诔鑸鸓𠱤𡚗𡻭𡼊𡾋𡾖𡿉𡿛𢹮𣠠𣡺𤃻𤢹𥑶𥗬𦇄𦓥𦢏𨄱𨊚𨻌]→lěi;
 [㑍㲕㴃䉪䒹䢮䣦䮑攂泪洡涙淚禷类累纇蘱酹銇錑頛頪類颣𡔇𣀜𣨅𥅦𥗶𥣬𥤐𨀤𨶺𩔗𩛝𩵓𪑯]→lèi;
 [嘞]→lei;
-[㘄棱]→lēng;
-[䉄䬋塄崚楞碐稜薐輘𥈮𦼊𧼔𨈓𩩡]→léng;
+[㘄]→lēng;
+[䉄䬋塄崚棱楞碐稜薐輘𥈮𦼊𧼔𨈓𩩡]→léng;
 [冷]→lěng;
 [䮚倰堎愣睖踜]→lèng;
-[㒿㓯㛤㠟㦒㰀㰚㴝㹈䄜䅻䉫䊍䋥䍠䍦䔆䔣䔧䖥䖽䖿䙰䣓䣫䱘䴻䵓䵩刕剓剺劙厘喱嚟囄嫠孋孷廲悡斄杝梨梩梸棃樆漓灕犁犂琍璃瓈盠睝离穲竰筣篱籬糎縭纚缡罹艃荲菞蓠蔾藜蘺蜊蟍蠡蠫褵謧貍邌醨釐鋫錅鏫鑗離驪骊鯏鯬鱺鲡鵹鸝鹂黎黧𠛘𠞙𠭰𠻗𠼝𠾆𡃷𡥽𡿎𢄡𢌈𢛮𢟢𢟤𢤂𢮃𣁟𣐬𣘬𣞴𣫥𣮉𣯤𤗫𤚓𤭜𥊈𥌛𥣥𥲧𥲪𥻿𥼅𦃇𦔓𦢱𦺙𧄚𧅯𧋎𧋠𧑇𧕮𧕯𧚩𧫬𧮛𨄛𨇎𨛫𨝏𨝖𨝟𨤫𨯽𩁟𩆲𩥬𩥴𩧋𩭇𩻌𪁐𪅆𪌱𪏼𪐅𪒔𪖂]→lí;
-[㸚㾖䗍䤚䧉俚兣娌峛峢峲欚澧理礼禮粴蟸裏豊逦邐醴里鋰锂鯉鱧鲤鳢𠚄𡆯𢏃𣀂𣀷𣿞𥎓𥎔𥴡𦎐𦕸𦪶𦫈𧅮𨓦𨛋𨴻𩳓𩷋𩽵𪕴]→lǐ;
+[哩]→lī;
+[㒿㓯㛤㠟㦒㰀㰚㴝㹈䄜䅻䉫䊍䋥䍠䍦䔆䔣䔧䖥䖽䖿䙰䣓䣫䱘䴻䵓䵩刕剓剺劙厘喱嚟囄嫠孋孷廲悡斄杝梨梩梸棃樆漓灕犁犂狸琍璃瓈盠睝离穲竰筣篱籬糎縭纚缡罹艃荲菞蓠蔾藜蘺蜊蟍蠡蠫褵謧貍邌醨釐鋫錅鏫鑗離驪骊鯏鯬鱺鲡鵹鸝鹂黎黧𠛘𠞙𠭰𠻗𠼝𠾆𡃷𡥽𡿎𢄡𢌈𢛮𢟢𢟤𢤂𢮃𣁟𣐬𣘬𣞴𣫥𣮉𣯤𤗫𤚓𤭜𥊈𥌛𥣥𥲧𥲪𥻿𥼅𦃇𦔓𦢱𦺙𧄚𧅯𧋎𧋠𧑇𧕮𧕯𧚩𧫬𧮛𨄛𨇎𨛫𨝏𨝖𨝟𨤫𨯽𩁟𩆲𩥬𩥴𩧋𩭇𩻌𪁐𪅆𪌱𪏼𪐅𪒔𪖂]→lí;
+[㸚㾖䗍䤚䧉俚兣娌峛峢峲李欚浬澧理礼禮粴蟸裏裡豊逦邐醴里鋰锂鯉鱧鲤鳢𠚄𡆯𢏃𣀂𣀷𣿞𥎓𥎔𥴡𦎐𦕸𦪶𦫈𧅮𨓦𨛋𨴻𩳓𩷋𩽵𪕴]→lǐ;
 [㑦㒧㔏㕸㗚㘑㟳㠣㡂㤡㤦㧰㬏㮚㯤㱹㺡㻎㻺㼖㽁㽝㾐㿛㿨䃯䅄䇐䊪䍥䍽䓞䔁䔉䕻䘈䚕䟏䟐䡃䤙䥶䬅䬆䮋䮥䰛䰜䲞䴡䶘丽例俐俪傈儮儷凓利力励勵历厉厤厯厲吏呖唎唳嚦囇坜塛壢娳婯屴岦巁悧慄戾搮攊攦攭暦曆曞朸枥栃栎栗栛棙檪櫔櫟櫪欐歴歷沥沴涖溧濿瀝爄爏犡猁珕瑮瓅瓑瓥疠疬痢癘癧皪盭砅砺砾磿礪礫礰禲秝立笠篥粒粝糲綟脷苈苙茘荔莅莉蒚蒞藶蚸蛎蛠蜧蝷蠇蠣觻詈讈赲跞躒轢轣轹郦酈鉝鎘隶-隸雳靂靋鬁鱱鱳鳨鴗鷅麗麜𠌯𠘞𠘟𠛦𠝄𠞉𠞤𠠏𠠝𠠵𠢠𠩵𠪄𠪺𠫌𡤌𡫯𡮰𡯄𡳸𡸉𡾒𡿋𢍼𢡑𢤆𢤩𢨨𢩑𢸀𢻠𣀥𣌅𣌜𣟌𣦯𣧿𣫧𣲒𤁼𤃀𤄽𤇃𤔨𤖢𤘃𤜜𤟑𤠫𤡿𤩮𤳓𤹇𤹈𤻤𤼚𥁟𥉆𥌤𥌮𥌿𥓃𥝢𥠲𥨻𥬭𥶗𥷅𥷗𥽗𦃊𦅺𦇔𦘊𦜏𦠓𦪾𧄻𧉲𧒈𧓽𧔝𧘫𧙉𧢝𧥖𧧋𧯏𧰡𧲡𧴠𧽲𨃙𨇗𨊛𨍫𨏬𨘸𨜼𨞺𨟑𨢌𨪹𨬑𨷦𨽻𩄞𩅩𩆝𩗅𩗭𩘟𩘡𩙖𩞨𩣫𩧃𩪸𩯺𩰲𩱇𩴣𩶘𩽏𪅼𪓀𪖍𪗁𪙺𪙽𫁡]→lì;
-[哩李狸裡]→li;
 [俩倆]→liǎ;
 [㜕㝺㟀㡘㢘㥕㦁㶌㺦㼓䁠䃛䆂䏈䙺䥥䨬䭑亷劆匲匳嗹噒奁奩嫾帘廉怜慩憐梿槤櫣涟溓漣濂濓熑燫磏簾籢籨縺翴联聨聫聮聯臁莲蓮薕螊蠊裢褳覝謰蹥连連鎌鐮镰鬑鰱鲢𠔨𢅏𢅖𣀃𣝈𤣆𤬓𤾲𥖝𥲥𦆆𦈐𦔖𦖾𧐖𧡙𨎷𨏩𨏶𨬁𨽷𩄡𩞙𪍴𪐋𪐍𪖳𪚁𪛒]→lián;
 [㪘㯬㰈㰸䌞嬚摙敛斂琏璉羷脸臉蔹蘝蘞裣襝鄻𠗳𤑿𤼏𩟅𪍦]→liǎn;
@@ -647,31 +637,28 @@
 [㝋㶫䄦䑠䩍叾憭曢爒瞭蓼鄝釕钌镽𢻢𢿞𣎸𤑗𥗀𧘈𧡜𨣀𪌀]→liǎo;
 [㡻䉼䎆䢧尞尥尦廖撂料炓窷镣𣩢𤊽𥛰𦌒𩕐𩴤𪖷]→liào;
 [𦾳]→liē;
-[䟩挘毟𨤤]→liě;
+[䟩咧挘毟𨤤]→liě;
 [㤠㧜㬯㭞㭩㯿㲱㸹㼲㽟䁽䅀䉭䋑䜲䝓䟹䪉䴕儠冽列劣劽哷埒埓姴巤挒捩擸栵洌浖烈烮煭犣猎猟獵睙聗脟茢蛚裂趔躐迾颲鬛鬣鮤鱲鴷𠛱𠠗𡁓𡂏𡂩𡊻𡏵𡒏𡓍𡭣𡿩𢣓𣁷𣁻𣋲𣖊𣝚𣰌𤁯𤐱𤓿𤖺𤜓𤞊𤡕𤢪𤱃𤱛𥪂𥲁𥶢𥷨𥸸𦓤𦖩𧀨𧓐𧞕𧭌𧭞𧰠𨆍𨕜𩆣𩙑𩢾𩧆𩧮𩨐𩭌𩼭]→liè;
-[咧]→lie;
 [拎]→līn;
 [㔂㝝㷠䚬䢯䫐䮼临冧厸啉壣崊嶙斴晽暽林淋潾瀶燐獜琳璘痳瞵碄磷箖粦粼繗翷臨轔辚遴邻鄰鏻隣霖驎鱗鳞麐麟𡰚𡹇𡻫𡿠𣇰𥻋𥼭𧃮𧲂𧹩𩞻𩱬𩻜]→lín;
 [㐭㨆䕲亃凛凜廩廪懍懔撛檁檩澟癛癝菻𠓮𡬜𤎭𥓆𧵧]→lǐn;
 [㖁䉮䗲䚏䫰僯吝恡悋橉焛甐疄膦蔺藺賃赁蹸躏躙躪轥閵𠐼𡃦𡳞𡶱𤂶𤌎𤗷𥳞𥶒𥷖𦺸𧖔𧶆𨏨𨸻𩣖𩴠]→lìn;
-[〇㖫㡵㥄㦭㪮㬡㯪㱥㲆㸳㻏㾉䄥䈊䉁䉖䉹䌢䍅䔖䕘䖅䙥䚖䠲䡼䡿䧙䨩䯍䰱䴇䴒䴫凌刢囹坽夌姈婈孁岺彾掕昤朎柃棂櫺欞泠淩澪灵燯爧狑玲琌瓴皊砱祾秢竛笭紷綾绫羚翎聆舲苓菱蓤蔆蕶蘦蛉衑裬詅跉軨酃醽鈴錂铃閝陵零霊霗霛霝靈駖魿鯪鲮鴒鸰鹷麢齡齢龄龗𠄖𠠢𠡭𠱠𠻠𠻱𠾥𡈍𡕮𡿡𢌔𢔁𢩗𢹝𢺰𣌟𣣋𣬹𤃩𤖦𤜙𤣘𤧘𤫩𤫲𤿅𥌼𥤜𥤞𥥋𥩔𥺙𥾂𦉢𦫃𦫊𧆺𧕅𧖜𧟙𧨈𧰻𧱢𧾇𧾮𨠎𨱋𨽲𩂙𩃞𩆒𩆚𩆮𩆻𩆼𩇄𩇎𩊂𩑊𩖊𩖵𩚹𩜁𩟃𩪥𩬔𩲩𩵀𪅋𪋳𪋾𪌏𪕌𪛈𫐉]→líng;
+[〇㖫㡵㥄㦭㪮㬡㯪㱥㲆㸳㻏㾉䄥䈊䉁䉖䉹䌢䍅䔖䕘䖅䙥䚖䠲䡼䡿䧙䨩䯍䰱䴇䴒䴫伶凌刢囹坽夌姈婈孁岺彾掕昤朎柃棂櫺欞泠淩澪灵燯爧狑玲琌瓴皊砱祾秢竛笭紷綾绫羚翎聆舲苓菱蓤蔆蕶蘦蛉衑裬詅跉軨酃醽鈴錂铃閝陵零霊霗霛霝靈駖魿鯪鲮鴒鸰鹷麢齡齢龄龗𠄖𠠢𠡭𠱠𠻠𠻱𠾥𡈍𡕮𡿡𢌔𢔁𢩗𢹝𢺰𣌟𣣋𣬹𤃩𤖦𤜙𤣘𤧘𤫩𤫲𤿅𥌼𥤜𥤞𥥋𥩔𥺙𥾂𦉢𦫃𦫊𧆺𧕅𧖜𧟙𧨈𧰻𧱢𧾇𧾮𨠎𨱋𨽲𩂙𩃞𩆒𩆚𩆮𩆻𩆼𩇄𩇎𩊂𩑊𩖊𩖵𩚹𩜁𩟃𩪥𩬔𩲩𩵀𪅋𪋳𪋾𪌏𪕌𪛈𫐉]→líng;
 [岭嶺袊阾領领𥵝𦊓]→lǐng;
 [令另呤炩𠟨𤨻𤷖𧲙𨞎𩄊]→lìng;
-[伶瀮]→ling;
+[瀮]→ling;
 [溜熘蹓𠺕]→liū;
 [㐬㽞䉧䗜䚧䝀䬟䰘䱖䱞䶉刘劉嚠媹嵧懰旈旒榴橊沠流浏瀏琉瑠瑬璢畄留畱疁瘤癅硫磂蒥蓅藰蟉裗遛鎏鎦鏐鐂镏镠飀飅飗馏駠駵騮驑骝鰡鶹鹠麍𠗽𠪐𢏭𢤐𢷶𣞗𣟑𣠚𣱳𤥗𥀓𥆦𥠷𥰣𥶅𥹷𦀠𦃓𦊿𦑾𧏓𧮗𨦰𨪕𨻧𩗩𩙄𩢞𪃂𪆱𪇯𪎣]→liú;
 [㧕嬼柳栁桞桺橮熮珋綹绺罶羀鉚鋶锍𠛓𦊑𦊗𦌁𨋖𨍸𩖴]→liǔ;
 [㙀㶯㽌䄂六塯廇澑畂磟翏雡霤飂餾鬸鷚鹨𢔲𢞭𢣠𤮷𥌐𥛅𥥹𥧕𥨌𦉉𨢇𩆎]→liù;
 [囖]→lo;
-[⻯⻰㚅㝫㡣㦕㰍䃧䆍䏊䙪䥢䪊䮾咙嚨屸嶐巃巄昽曨朧栊槞櫳泷湰滝漋瀧爖珑瓏癃眬矓砻礱礲竜笼篭籠聋聾胧茏蕯蘢蠪蠬襱豅躘鏧鑨隆霳靇驡鸗龍龒龙𠾐𡃡𡬍𢤲𢸭𣫣𤵸𤾭𥪢𥪻𥬆𥳌𥸉𦨩𦪽𧍰𧙥𨇘𨏠𨐇𨺚𩂽𩄺𩙘𩙠𩟭𩧪𪔳𪔷𪚑𪚓𪚘𪚝𪚠]→lóng;
+[⻯⻰㚅㝫㡣㦕㰍䃧䆍䏊䙪䥢䪊䮾咙嚨屸嶐巃巄昽曨朧栊槞櫳泷湰滝漋瀧爖珑瓏癃眬矓砻礱礲窿竜笼篭籠聋聾胧茏蕯蘢蠪蠬襱豅躘鏧鑨隆霳靇驡鸗龍龒龙𠾐𡃡𡬍𢤲𢸭𣫣𤵸𤾭𥪢𥪻𥬆𥳌𥸉𦨩𦪽𧍰𧙥𨇘𨏠𨐇𨺚𩂽𩄺𩙘𩙠𩟭𩧪𪔳𪔷𪚑𪚓𪚘𪚝𪚠]→lóng;
 [㙙㴳䡁儱垄垅壟壠拢攏竉篢陇隴龓𢤱𪐖]→lǒng;
 [㑝㛞㟖㢅㳥哢徿梇贚𠮽𠱚𡱯𢙱𤼃𥦌𧚂𨛓]→lòng;
-[窿]→long;
 [䁖瞜]→lōu;
-[㟺㡞㥪㲎㺏䄛䝏䣚䫫䮫䱾偻僂剅娄婁廔慺楼樓溇漊熡耧耬艛蒌蔞蝼螻謱軁遱鞻髅髏𠞭𠳴𡇭𣫻𤋏𤠋𤬏𦎹𧁾𧢃𧰃𧷡𨻻𩏝𩨇]→lóu;
+[㟺㡞㥪㲎㺏䄛䝏䣚䫫䮫䱾偻僂剅喽嘍娄婁廔慺楼樓溇漊熡耧耬艛蒌蔞蝼螻謱軁遱鞻髅髏𠞭𠳴𡇭𣫻𤋏𤠋𤬏𦎹𧁾𧢃𧰃𧷡𨻻𩏝𩨇]→lóu;
 [㪹䅹塿嵝嶁搂摟甊篓簍𡗆𡰌𢈢𥕍𧯨𪍣]→lǒu;
 [㔷屚漏瘘瘺瘻鏤镂陋𠖛𠗩𡪅𣤋𦸢𧫞𨄋𨝢𨦖𨫒𨱐]→lòu;
-[喽嘍]→lou;
 [噜撸謢]→lū;
 [㠠㢳㪭㭔㱺㿖䡎䮉䰕卢嚧垆壚庐廬攎曥枦栌櫚櫨泸瀘炉爐獹玈璷瓐盧矑籚纑罏胪臚舮舻艫芦蘆蠦轤轳鈩鑪顱颅髗魲鱸鲈鸕鸬黸𡉴𡳴𣆐𤬛𤮧𥀵𦿊𧆣𧇄𨇖𩄅𩍼𪑄𪖌]→lú;
 [⻧㔪㢚㯭䲐卤嚕塷掳擄擼樐橹櫓氌滷澛瀂硵磠艣艪蓾虏虜鏀鐪鑥镥魯鲁鹵𠿛𢋡𢟧𢲸𣥐𣱀𤣃𥶇𧀦𧫓𩯜𪉖𪉣]→lǔ;
@@ -694,19 +681,19 @@
 [㓢㞅㪾㱻㴖㿚䀩䇔䈷䉓䌱䌴䎊峈摞泺洛洜漯濼犖珞硦笿絡纙络荦落鉻雒駱骆鮥鴼鵅𠉗𠏢𠶱𠻐𡁆𢺆𢺑𣎆𣛗𣧳𤽥𤽼𥯛𧈦𧟌𧭥𧹐𨇽𨏒𩂣𩊚𩌭𩍪𪇱𪌳]→luò;
 [呣嘸]→ḿ;
 [妈媽嬤嬷孖𢳀]→mā;
-[㦄䗫䳸犘痲蔴蟇麻𡻤𢋚𤳂𥀏𥉵𩀪𩔶𩔷𪐎𪓹]→má;
+[㦄䗫䳸犘痲蔴蟆蟇麻𡻤𢋚𤳂𥀏𥉵𩀪𩔶𩔷𪐎𪓹]→má;
 [⻢㐷䣕䣖溤玛瑪码碼蚂螞遤鎷馬马鰢鷌𥧓𨰾]→mǎ;
 [㑻㜫㨸㾺䧞䯦傌唛嘜杩榪犸獁睰礣祃禡罵閁駡骂鬕𢉿𣨜𥉊𧪨𩊃𩨲𩶞𪒜]→mà;
-[亇吗嗎嘛嫲蟆]→ma;
+[亇吗嗎嘛嫲]→ma;
 [㜥㦟䁲䚑䨪埋薶霾𢠼𨤢𩍃]→mái;
 [买嘪荬蕒買鷶𠿆]→mǎi;
 [⻨䘑䜕䨫䮮佅劢勱卖売脈脉衇賣迈邁霡霢麥麦鿏𥇯𥌚𦏢𦙻𧱘𩈗𩊍𪄳𪒪]→mài;
 [嫚颟]→mān;
-[㒼㙢䅼䊡䐽䒥䛲䟂䯶䰋僈姏悗慲樠瞒瞞蔓蛮蠻謾谩鞔顢饅馒鬗鬘鰻鳗𢦈𤜘𥊑𥧭𥲑𦔔𧜞𧱼𨲛𨲾𩆓𩮉𪈿𪍩𪑪]→mán;
+[㒼㙢䅼䊡䐽䒥䛲䟂䯶䰋僈姏悗慲樠瞒瞞蛮蠻謾谩蹒鞔顢饅馒鬗鬘鰻鳗𢦈𤜘𥊑𥧭𥲑𦔔𧜞𧱼𨲛𨲾𩆓𩮉𪈿𪍩𪑪]→mán;
 [㛧䜱屘満满滿睌矕螨蟎襔鏋𥬈𥲈𦎌𧆏𧖵𩈦𩛎]→mǎn;
-[㗈㡢㬅㵘䕕䝡䝢䡬墁幔慢摱曼槾漫澷熳獌縵缦蔄蘰鄤鏝镘𡢚𡻩𢿜𣁜𤅎𩅍]→màn;
+[㗈㡢㬅㵘䕕䝡䝢䡬墁幔慢摱曼槾漫澷熳獌縵缦蔄蔓蘰鄤鏝镘𡢚𡻩𢿜𣁜𤅎𩅍]→màn;
 [牤𡘪𤛘𩛲]→māng;
-[㝑㟌㡛㤶㻊䅒䓼䵨吂哤娏尨庬忙恾杗杧氓汒浝牻狵痝盲硭笀芒茫蛖邙釯鋩铓駹𡩩𡩽𡵀𣙷𤰡𥆙𥐞𥝕𦎨𨛌𩒿𩭒𩷶]→máng;
+[㝑㟌㡛㤶㻊䅒䈍䓼䵨吂哤娏尨庬忙恾杗杧氓汒浝牻狵痝盲硭笀芒茫蛖邙釯鋩铓駹𡩩𡩽𡵀𣙷𤰡𥆙𥐞𥝕𦎨𨛌𩒿𩭒𩷶]→máng;
 [㟐㟿㬒䁳䒎䖟壾漭硥茻莽莾蟒蠎𠈵𡅖𣯬𥤩𥮎𦜭𩅁𩙸𩪎𪁪𪚢]→mǎng;
 [𠮵𥁃𥭚]→màng;
 [猫貓𤚜]→māo;
@@ -714,34 +701,34 @@
 [㚹㧇乮冇卯夘峁戼昴泖笷蓩铆𠔼𡜢𢨯𥄸𨺸]→mǎo;
 [㒵㒻㡌㧌㪞㫯㴘㺺㿞䀤䋃䓮䡚䫉冃冐冒媢帽愗懋暓柕楙毷瑁皃眊瞀耄芼茂萺蝐袤覒貌貿贸鄚鄮𠤝𢂹𢅉𢘅𢝌𢯾𢽢𣊃𣔺𣨇𣯀𣴟𣴼𤥰𤲰𥈆𥟪𦀸𦼪𧠊𨩩𩛨𩫁𩿂𪃑]→mào;
 [嚒]→mē;
-[么嚜濹癦麼麽]→me;
-[㙁㺳䊈䍙䤂呅坆堳塺娒媒嵋徾攗枚栂梅楣楳槑沒没湄湈煤猸玫珻瑂眉睂矀禖穈糜脄脢苺莓葿蘪郿酶鋂鎇镅霉鶥鹛黴𠪃𣟸𤚤𦼻𧳬𨉭𨜘𩋿𪂜𪃏𪉏𪎭]→méi;
+[么嚜濹癦麼]→me;
+[㙁㺳䊈䍙䤂呅坆堳塺娒媒嵋徾攗枚栂梅楣楳槑沒没湄湈煤猸玫珻瑂眉睂矀禖穈脄脢苺莓葿蘪郿酶鋂鎇镅霉鶥鹛黴𠪃𣟸𤚤𦼻𧳬𨉭𨜘𩋿𪂜𪃏𪉏𪎭]→méi;
 [䆀䓺䜸凂媄媺嬍嵄挴毎每浼渼燘美腜躾鎂镁黣𠍨𢮇𪎦]→měi;
-[㭑䀛䉋䰨䰪䵢妹媚寐抺旀昧沬煝痗眛睸祙篃蝞袂谜跊韎鬽魅𠊉𡲭𤽃𥞊𥧴𧭵𩈐𩎟𩫍𩲈𩴈]→mèi;
+[㭑䀛䉋䰨䰪䵢妹媚寐抺旀昧沬煝痗眛睸祙篃蝞袂跊韎鬽魅𠊉𡲭𤽃𥞊𥧴𧭵𩈐𩎟𩫍𩲈𩴈]→mèi;
 [椚]→mēn;
 [⻔䊟䫒亹扪捫玧璊菛虋鍆钔門閅门𣯩𤅣𧄸𨳔𨴺𩑥𩔉]→mén;
 [㥃㦖㱪㵍悶懑懣暪焖燜闷𧴺]→mèn;
 [们們]→men;
 [擝]→mēng;
-[㙹㠓㩚䀄䇇䈍䉚䑃䑅䒐䗈䙦䙩䟥䤓䥰䰒䲛䴌䴿䵆儚冡幪懞曚朦橗檬氋溕濛甍甿盟瞢矇矒礞艨莔萌蒙蕄蘉虻蝱鄳鄸霿靀顭饛鯍鸏鹲鼆𠐁𠐧𡚔𢄐𢤘𢿂𣊔𣞑𣰥𤼁𥄁𥌯𥌱𥣛𥭮𦆟𦊽𦢧𦫰𦱋𦳶𦴔𦷹𦿏𧀆𧁊𧂛𧂡𧞑𧭊𧲍𨞫𨢊𨢠𨣘𨨸𨼿𩄖𩟞𩦺𩴲𩶡]→méng;
+[㙹㠓㩚䀄䇇䉚䑃䑅䒐䗈䙦䙩䟥䤓䥰䰒䲛䴌䴿䵆儚冡幪懞曚朦橗檬氋溕濛甍甿盟瞢矇矒礞艨莔萌蒙蕄蘉虻蝱鄳鄸霿靀顭饛鯍鸏鹲鼆𠐁𠐧𡚔𢄐𢤘𢿂𣊔𣞑𣰥𤼁𥄁𥌯𥌱𥣛𥭮𦆟𦊽𦢧𦫰𦱋𦳶𦴔𦷹𦿏𧀆𧁊𧂛𧂡𧞑𧭊𧲍𨞫𨢊𨢠𨣘𨨸𨼿𩄖𩟞𩦺𩴲𩶡]→méng;
 [䁅䏵勐懜懵猛獴瓾艋蜢蠓錳锰鯭𡬆𢕙𣓝𤯻𤱴𤾬𥂂𥋝𧓨𩕱]→měng;
 [㜴㝱䓝䠢䥂夢夣孟梦霥𠖆𠵼𡒯𡬌𣽭𥉕𧀧𨮒𩆽𪅇𪇓𪈆]→mèng;
 [掹]→meng;
 [咪眯瞇]→mī;
-[㜷㟜㣆㸏䉲䊳䌕䍘䕳䕷䛧䤍䥸䴢冞弥彌戂擟攠瀰爢猕獼瓕祢禰縻蒾蘼袮詸謎迷醚醾醿釄镾靡鸍麊麋麛𠞧𡄣𡇒𡝠𡬐𡾱𢇲𤦀𥇆𥇎𥈕𥎖𥭫𥮜𥵨𥹄𥽰𥿫𦖬𦗕𦞟𦟂𦰴𧠟𨒲𨢥𨣾𩔢𩞇𩸹𪋗𪋢𪎗𪓬𪕈]→mí;
+[㜷㟜㣆㸏䉲䊳䌕䍘䕳䕷䛧䤍䥸䴢冞弥彌戂擟攠瀰爢猕獼瓕祢禰糜縻蒾蘼袮詸謎谜迷醚醾醿釄镾靡鸍麊麋麛𠞧𡄣𡇒𡝠𡬐𡾱𢇲𤦀𥇆𥇎𥈕𥎖𥭫𥮜𥵨𥹄𥽰𥿫𦖬𦗕𦞟𦟂𦰴𧠟𨒲𨢥𨣾𩔢𩞇𩸹𪋗𪋢𪎗𪓬𪕈]→mí;
 [㝥㠧㥝㳽䋛䭧䱊侎孊弭敉沵洣渳濔灖眫米粎羋脒芈葞蔝銤𡓭𢘺𣧲𥹫𨇻𨷬𪀿𪎔]→mǐ;
-[㜆㨠㫘㳴㴵㵋㸓䁇䈿䌏䌐䖑䛑䣾䤉䮭冖冪嘧塓宓宻密峚幂幎幦榓樒櫁汨沕泌淧滵漞濗熐秘簚糸羃蔤藌蜜覓覔覛觅謐谧鼏𡊭𡲼𢆯𢞞𢱮𣓔𤛬𥁑𥉴𥉿𥧧𦣥𦸡𧐎𧕵𧱻𧵬𧶡𧷦𧼊𧽨𨢎𨣯𪅮𪑸𪒄]→mì;
+[㜆㨠㫘㳴㴵㵋㸓䁇䈿䌏䌐䖑䛑䣾䤉䮭冖冪嘧塓宓宻密峚幂幎幦榓樒櫁汨沕泌淧滵漞濗熐祕秘簚糸羃蔤藌蜜覓覔覛觅謐谧鼏𡊭𡲼𢆯𢞞𢱮𣓔𤛬𥁑𥉴𥉿𥧧𦣥𦸡𧐎𧕵𧱻𧵬𧶡𧷦𧼊𧽨𨢎𨣯𪅮𪑸𪒄]→mì;
 [㒙㝰㮌㰃䃇䏃䫵䰓婂媔嬵宀杣棉檰櫋眠矈矊矏綿緜绵臱芇蝒𡒳𡯫𢣔𣡠𥊿𥌂𧭇𧸨𪁼]→mián;
 [⻪㝃㤁㨺㻰䀎䤄䩄丏偭免冕勉勔喕娩愐汅沔渑湎澠眄絻緬缅腼葂鮸黽黾𡕢𢃮𣧾𦬛𨟺𨡞𩋠𩾃]→miǎn;
 [㴐䛉糆面靣麪麫麵麺𡧍𡧒𣅍𥄝𥤵𥻩𦽃𨉥𩈹]→miàn;
 [喵]→miāo;
 [㑤䁧䖢媌嫹描瞄緢苗鱙鶓鹋𩳸𪃦]→miáo;
 [㦝杪淼渺眇秒篎緲缈藐邈𠋝𡡺𢤧𢷕𦳥𪃐]→miǎo;
-[妙庙庿廟玅竗缪𢚋𤾛𥭝]→miào;
+[妙庙庿廟玅竗𢚋𤾛𥭝]→miào;
 [乜吀咩哶孭𠺗]→miē;
 [𥄲]→mié;
 [㒝㩢䁾䈼䌩䘊䩏幭懱搣櫗滅灭烕篾蔑薎蠛衊覕鑖鱴鴓𡖺𡞙𡟬𢦼𢧞𢨖𤊾𤏿𥉓𥋚𥣫𥵒𥸴𥾝𦇪𧀅𧂝𨣱𩔠𩱷𪇴𪌺𪒍]→miè;
-[⺠㟩㟭㨉䁕䂥䃉䋋䝧䟨䡑䡻䪸䲄姄岷崏忞怋捪旻旼民玟珉琘琝瑉痻盿砇碈緍緡缗罠苠鈱錉鍲鴖𣱈𣷠𤇜𤸅𦈏𦳜𧌙𩭷𪂆𪉎]→mín;
+[⺠㟩㟭㨉䁕䂥䃉䋋䝧䟨䡑䡻䪸䲄姄岷崏忞怋捪旻旼民珉琘琝瑉痻盿砇碈緍緡缗罠苠鈱錉鍲鴖𣱈𣷠𤇜𤸅𦈏𦳜𧌙𩭷𪂆𪉎]→mín;
 [㞶㥸㬆僶冺刡勄悯惽愍慜憫抿敃敏敯暋泯湣潣皿笢笽簢蠠閔閩闵闽鰵鳘𠊟𢼖𢽹𣱉𣹒𤛎𤺖𤿕𥜐𦌡𦫮𧁋𧲃𨏵𪄴]→mǐn;
 [垊]→min;
 [㝠䄙䆩䊅䫤䳟冥名嫇明暝朙榠洺溟猽眀眳瞑茗蓂螟覭鄍銘铭鳴鸣𥌏𥹆𥿨𦡉𧱴𪗸]→míng;
@@ -751,25 +738,24 @@
 [𨱯]→miǔ;
 [謬谬]→miù;
 [摸]→mō;
-[䃺䭩䯢劘嚤嚩嚰嫫尛庅摩摹擵模橅磨糢膜蘑謨謩谟饃饝馍髍魔魹𠻚𡠜𡡉𡾉𣻕𤋂𤹴𥂓𦟟𨆽𨟖𨰞𨱱𩞁𩟠]→mó;
+[䃺䭩䯢劘嚤嚩嚰嫫尛庅摩摹擵模橅磨糢膜蘑謨謩谟饃饝馍髍魔魹麽𠻚𡠜𡡉𡾉𣻕𤋂𤹴𥂓𦟟𨆽𨟖𨰞𨱱𩞁𩟠]→mó;
 [䩋懡抹𡢜𢣗𣋟𩪮𪎠]→mǒ;
 [㱳㶬㷬㷵㹮䁼䁿䏞䒬䘃䬴䮬䱅䳮䴲劰唜嗼圽塻墨妺嫼寞帓帞昩暯末枺歾歿殁沫湐漠瀎爅獏瘼皌眜眽眿瞐瞙砞礳秣粖絈纆耱茉莈莫蓦藦蛨蟔貃貊貘銆鏌镆陌靺驀魩默黙𠆮𠇱𠡞𠢓𠬛𡈗𡊉𡻟𢄏𢊗𢐖𢗿𣧣𣶊𤣻𤿖𥄕𥕓𥙎𥞪𥬎𥱹𥽘𦅔𦔭𦥦𦫕𦮅𧕤𧕥𧠓𧥟𧰱𧻙𧼟𧿴𩃁𩄻𩌧𩐻𩑦𩑷𩢖𩢷𩥔𩿣𪍇𪍤𪏟𪒂𪒇]→mò;
 [怽麿]→mo;
 [哞]→mōu;
-[㭌䋷䏬䗋䥐䱕侔劺恈洠牟眸瞴繆蛑謀谋踎鉾鍪鴾麰𠥨𢃱𣫬𥿵𦭷𧎄𨴍𩢫𩶢]→móu;
+[㭌䋷䏬䗋䥐䱕侔劺恈洠牟眸瞴繆缪蛑謀谋踎鉾鍪鴾麰𠥨𢃱𣫬𥿵𦭷𧎄𨴍𩢫𩶢]→móu;
 [䍒某𠀱𦊋𦊎𦋡𦳑]→mǒu;
 [𥆆𦺒]→mòu;
 [䱯墲毪氁𢘃𢜯𤚅𨡭𨢢]→mú;
-[㟂䥈亩坶姆峔母牡牳畆畒畝畞畮砪胟踇鉧𠺖𢟨𤝕𤵝𧩒𧬏𧰷𧿹𨈶𩡨𩬍𪎫]→mǔ;
+[㟂䥈亩坶姆峔拇母牡牳畆畒畝畞畮砪胟踇鉧𠺖𢟨𤝕𤵝𧩒𧬏𧰷𧿹𨈶𩡨𩬍𪎫]→mǔ;
 [⺫㜈㣎㧅㾇䀲䊾䑵仫凩募墓幕幙慔慕暮木朰楘毣沐炑牧狇目睦穆縸艒苜莯蚞鉬钼雮霂鞪𡵬𣈊𤝂𥄈𥣸𥰻𦃤𦱒𧚀𨍎𨎸𩵦𩶖𩶩]→mù;
-[拇]→mu;
-[唔嗯]→ń;
+[嗯]→ń;
 [㕶]→ň;
 [𠮾]→ǹ;
 [𧗈]→n;
 [䛔䫱嗱拏拿挐鎿镎𡰀𢜲𣸏𤓷𤔀𦬻𧘽𧤣𧦮]→ná;
 [乸哪雫𢡏𣡰𥑒𦙜𪐀]→nǎ;
-[㨥㵊䇱䈫䎎䏧䖓䖧䟜䪏妠娜捺笝納纳肭蒳衲袦豽貀軜那鈉钠靹魶𠕄𠱲𠴾𡤙𡷝𢇵𣅚𣹵𤝒𤬷𤭠𤱅𤱆𤷈𤸏𤸻𥍲𥹉𥿃𦛐𦣀𧋡𧰹𨙻𨚗𩏼𩚛𩟿𩮅𩹾𪌅𪗝]→nà;
+[㨥㵊䇱䈫䎎䏧䖓䖧䟜䪏吶呐妠娜捺笝納纳肭蒳衲袦豽貀軜那鈉钠靹魶𠕄𠱲𠴾𡤙𡷝𢇵𣅚𣹵𤝒𤬷𤭠𤱅𤱆𤷈𤸏𤸻𥍲𥹉𥿃𦛐𦣀𧋡𧰹𨙻𨚗𩏼𩚛𩟿𩮅𩹾𪌅𪗝]→nà;
 [㜨㾍䍲䘅䯮孻摨熋腉𪌞]→nái;
 [乃倷奶妳嬭廼氖疓艿迺釢𠧤𢉓𦠸𦶅𨎡]→nǎi;
 [㮈㮏㲡奈柰渿耏耐萘螚褦錼鼐𡞫𡨵𡮙𣉘𣮦𥉃𦓎𦔹𦳐𨒨𩹟]→nài;
@@ -777,8 +763,8 @@
 [㓓㽖䔜䛁䶲侽南喃娚抩暔枏柟楠男畘莮諵遖难難𢪈𤌔𤱣𤽲𦶈𧇙𧕴𨴌𨴘𨵴𩹞]→nán;
 [㫱䈒䊖戁揇湳煵腩萳蝻赧𡆤𡆱𡆲𦝧𧹞𨠹𨦳𩈑𩈶]→nǎn;
 [㬮婻𢬷𤿏𦍀𦛚𩅠]→nàn;
-[囊囔]→nāng;
-[䁸乪嚢欜蠰譨饢馕鬞𦗳𦣘𧖒]→náng;
+[囔]→nāng;
+[䁸乪嚢囊欜蠰譨饢馕鬞𦗳𦣘𧖒]→náng;
 [㶞擃攮曩灢𩜒]→nǎng;
 [㚂儾齉𠶬𡿝𢖧𦈃𧅺𧟘𨳆]→nàng;
 [孬]→nāo;
@@ -786,7 +772,7 @@
 [㑎㛴㺁䜀䜧匘垴堖嫐恼悩惱獶獿瑙碯脑脳腦𠊦𠡷𡍍𡿺𢅈𢉵𣭺𤊲𤋫𤷻𥀮𥒢𦗮𧩣𧳦𧴙𨱵𩛋𩤘𩩀𩫺𩬷]→nǎo;
 [婥淖臑閙闹鬧𣧽𥆲𩋈𩯆]→nào;
 [㕯䅞䎪䭆抐疒眲訥讷𢗉𣧍𧤜]→nè;
-[吶呐呢]→ne;
+[呢]→ne;
 [𠑚𠑛𡣢𢅼𨡌]→néi;
 [㼏䲎娞脮腇餒馁鮾鯘𥡭𩗔]→něi;
 [㐻㨅內内氝錗𢁩𢛉𣓃𩬀]→nèi;
@@ -802,16 +788,15 @@
 [䄭䄹䬯哖年秊秥鮎鯰鲇鲶鵇黏𠫺𦷙𨚶𩽴𪐇]→nián;
 [㜤㞋㮟䚓捻撚撵攆涊淰焾碾簐跈蹍蹨躎輦辇辗𠕟𠗋𠣇𡰫𣐏𤁥𦭁𨇍𨋚𨴞𩉄𩊫𪑮]→niǎn;
 [㲽䧔卄唸埝姩廿念艌𡝟𣎔𤽿𥮘𦁇𨢯]→niàn;
-[嬢孃]→niáng;
+[娘嬢孃]→niáng;
 [𪓃]→niǎng;
 [䖆酿醸釀𥽬]→niàng;
-[娘]→niang;
 [⻦㒟㜵㠡㭤䃵䙚䦊䮍嫋嬝嬲樢茑蔦袅裊褭鳥鸟𠒰𡘏𡝋𡝒𡠿𢶑𢸣𣟊𥤂𥾇𨽖𩖔𩭑𪅝𪈼]→niǎo;
 [㞙㳮尿脲𨳀]→niào;
 [捏揑]→niē;
 [㡪苶𢫻𪌿]→nié;
 [𠈊]→niě;
-[㖏㖕㖖㘝㘨㘿㙞㚔㜸㩶㮆㴪㸎䂼䄒䇣䌜䌰䡾䯀䯅䯵䳖啮喦嗫噛嚙囁囓圼孼孽嵲嶭巕帇惗摰敜枿槷櫱涅湼痆篞籋糱糵聂聶臬臲菍蠥讘踂踗踙蹑躡錜鎳鑈鑷钀镊镍闑陧隉顳颞齧𠶿𡆣𡍤𡰆𡴎𡶫𡸣𡾦𡾲𡿖𡿗𢈸𣀳𣌍𣙗𣯭𣰼𤭂𤴘𤶚𤺐𥔄𥬞𥬬𥮤𦄌𦈙𦘒𦛠𦞆𦯖𦵐𧁈𧋖𧞍𧻼𨊞𨙓𨱺𨲀𨶠𨻄𩋏𩐭𩒕𩖁𩣘𪌊𪎃𪎅]→niè;
+[㖏㖕㖖㘝㘨㘿㙞㚔㜸㩶㮆㴪㸎䂼䄒䇣䌜䌰䡾䯀䯅䯵䳖啮喦嗫噛嚙囁囓圼孼孽嵲嶭巕帇惗摰敜枿槷櫱涅湼痆篞籋糱糵聂聶臬臲菍蘖蠥讘踂踗踙蹑躡錜鎳鑈鑷钀镊镍闑陧隉顳颞齧𠶿𡆣𡍤𡰆𡴎𡶫𡸣𡾦𡾲𡿖𡿗𢈸𣀳𣌍𣙗𣯭𣰼𤭂𤴘𤶚𤺐𥔄𥬞𥬬𥮤𦄌𦈙𦘒𦛠𦞆𦯖𦵐𧁈𧋖𧞍𧻼𨊞𨙓𨱺𨲀𨶠𨻄𩋏𩐭𩒕𩖁𩣘𪌊𪎃𪎅]→niè;
 [㤛䋻䚾囜您𠽝]→nín;
 [拰]→nǐn;
 [脌]→nin;
@@ -858,10 +843,10 @@
 [廹]→pǎi;
 [㭛㵺䖰哌派渒湃蒎鎃𠂢𠸁𣏟𣲖𣴪𥯟𥿯𦔠𧵠]→pài;
 [㐴㢖㽃䆺攀潘畨眅萠𤄜𤺏𥕿]→pān;
-[䃲䰉䰔媻幋搫槃洀瀊爿盘盤磐磻縏蒰蟠跘蹒蹣鎜鞶𠽲𣁦𣔚𤖭𤠍𤻷𥈼𥉟𦪹𨂝𨃞𨃟𪄀𪒀]→pán;
+[䃲䰉䰔媻幋搫槃洀瀊爿盘盤磐磻縏蒰蟠跘蹣鎜鞶𠽲𣁦𣔚𤖭𤠍𤻷𥈼𥉟𦪹𨂝𨃞𨃟𪄀𪒀]→pán;
 [𧺾]→pǎn;
 [冸判叛拚沜泮溿炍牉畔盼聁袢襻詊鋬鑻頖鵥𡞟𢰿𤄧𥌊𦙀𨒃]→pàn;
-[䏺䨦乓沗滂胮膖鎊雱霶𠗵𠦲𣂆𦣂𧿆𩅅𩐨𪐿𪔔]→pāng;
+[䏺䨦乓沗滂胮膖雱霶𠗵𠦲𣂆𦣂𧿆𩅅𩐨𪐿𪔔]→pāng;
 [㥬㫄䅭䠙厐厖嫎庞徬旁舽螃逄鳑龎龐𡅃𢐊𤧭𧔧𨜷𩃎]→páng;
 [䒍嗙耪覫]→pǎng;
 [㕩炐肨胖𥪴𦜍𩈈]→pàng;
@@ -878,17 +863,16 @@
 [呠翸]→pěn;
 [喯𠺔]→pèn;
 [㛁㠮㧸䍬䥋䦕匉嘭怦恲抨梈漰澎烹砰硑磞軯閛𡼜𢏳𢼩𢽩𤘾𦚝𦯰𨑎𨠟𨺀𩱀]→pēng;
-[㥊㱶䄘䡫䰃䴶倗堋塳弸彭憉挷朋棚椖槰樥熢硼稝竼篣纄膨芃莑蓬蘕蟚蟛輣錋鑝韸韼騯髼鬅鬔鹏𡂫𥕱𦪪𧌇𧚋𧴂𨂃𨍩𨎧𨎳𨲰𩄦𩐛𩖛𩡕𪔍]→péng;
+[㥊㱶䄘䡫䰃䴶倗堋塳弸彭憉挷朋棚椖槰樥熢硼稝竼篣篷纄膨芃莑蓬蘕蟚蟛輣錋鑝韸韼騯髼鬅鬔鵬鹏𡂫𥕱𦪪𧌇𧚋𧴂𨂃𨍩𨎧𨎳𨲰𩄦𩐛𩖛𩡕𪔍]→péng;
 [剻捧淎皏𡗗𢪋𣨞]→pěng;
 [㼞掽椪碰踫𣟀𤖳𥕽𨅘𩸀]→pèng;
-[篷]→peng;
-[㨢㱟䫠䯱丕伓伾劈噼坯悂憵批披抷旇炋狉砒磇礔礕秛秠紕纰翍耚豾邳鈈鈚鈹鉟銔錃錍铍闢霹駓髬魾鮍𠜱𠡄𠹦𡛡𡲮𢓖𢞗𢱧𢻹𢾱𣢋𣬮𣬼𤬭𤱍𤿎𤿐𦀘𧧺𧪫𨤽𨧦𩣚𪄆𪉔]→pī;
+[㨢㱟䫠䯱丕伓伾劈噼坯悂憵批披抷旇炋狉砒磇礔礕秛秠紕纰翍耚豾邳鈈鈚鈹鉟銔錃錍铍霹駓髬魾鮍𠜱𠡄𠹦𡛡𡲮𢓖𢞗𢱧𢻹𢾱𣢋𣬮𣬼𤬭𤱍𤿎𤿐𦀘𧧺𧪫𨤽𨧦𩣚𪄆𪉔]→pī;
 [㓟㮰㯅㼰䲹䴽啤埤壀岯崥朇枇毗毘毞焷狓琵疲皮篺罴羆肶脾腗膍芘蚍蚽蚾蜱螷蠯豼貔郫阰陴魮鲏鵧鼙𠨸𠵬𡦟𡶌𢇳𢰘𣓋𣔬𣖰𣪉𣬉𤘢𤘹𤷒𤼜𥤻𥯡𦃋𦊁𦨭𦳈𦹽𧑜𧓎𧲺𧳼𧴉𨈚𨻀𩗫𩫫𪊕𪌈]→pí;
 [䚰䚹䤏䫌䰦仳匹噽嚭圮庀擗疋痞癖脴苉諀銢鴄𡊝𡛘𡺮𤴣𤿇𥀘𥔁𦘩𦘲𦰽𨑜𨲐𩔙]→pǐ;
-[㨽㳪㵨㿙䏘䑀䑄䠘䡟䤨䴙僻嚊媲嫓屁揊淠潎澼甓疈睥稫譬辟釽鷿鸊𠪮𠯔𠯭𢾇𣹚𣹮𤂃𤖿𤘤𤚪𦤢𧾑𨐴𨵡𨵩𨸆𨺤𩜰𪇊𪖞𪛎]→pì;
+[㨽㳪㵨㿙䏘䑀䑄䠘䡟䤨䴙僻嚊媲嫓屁揊淠潎澼甓疈睥稫譬辟釽闢鷿鸊𠪮𠯔𠯭𢾇𣹚𣹮𤂃𤖿𤘤𤚪𦤢𧾑𨐴𨵡𨵩𨸆𨺤𩜰𪇊𪖞𪛎]→pì;
 [㓲㾫偏囨媥犏篇翩鍂鶣𢉞𢐃𧡤𨲜]→piān;
-[㛹㼐䮁楄楩胼腁諚賆跰蹁駢騈骈骿𠷊𢕨𦳄𧍲𧱩𨂯𨵸𨸇𪘀𪚏]→pián;
-[覑諞谝貵𡎚]→piǎn;
+[㛹㼐䮁楄楩胼腁諚谝賆跰蹁駢騈骈骿𠷊𢕨𦳄𧍲𧱩𨂯𨵸𨸇𪘀𪚏]→pián;
+[覑諞貵𡎚]→piǎn;
 [㸤䏒片騗騙骗魸𠯯]→piàn;
 [剽慓旚犥缥翲螵飃飄飘魒𠷻𡢱𡣋𧌠𧽤𨮬𩗏𩙒𪋖]→piāo;
 [㼼䕯䴩嫖瓢薸闝𣝐𨝓𩡦]→piáo;
@@ -904,11 +888,11 @@
 [䛣乒俜娉涄甹砯竮聠艵頩𢖊𥪁𥭢𦀔𦥚𦥤𨂲𩈚𩩍]→pīng;
 [㵗㺸㻂䈂䍈䓑䶄凭凴呯坪塀屏屛岼帡帲幈平慿憑枰檘泙洴淜焩玶瓶甁箳簈缾胓苹荓萍蓱蘋蚲蛢評评軿輧郱鮃鲆𠗦𡊞𢆟𤭔𤳊𥵪𦚓𦶊𧂋𧏑𩂾𪋋𪔾𪕒]→píng;
 [䀻𠗥]→pìng;
-[㗶㧊䍨䥽坡岥泊溌鉕鏺钋頗颇𠰼𠷑𡊟𢂤𤀪𤽌𥬒𦫔𧘟𧙅𨠓𨡩𨫁𨸭𩑼𩸿]→pō;
+[㗶㧊䍨䥽坡岥泊泼溌潑鉕鏺钋頗𠰼𠷑𡊟𢂤𤀪𤽌𥬒𦫔𧘟𧙅𨠓𨡩𨫁𨸭𩑼𩸿]→pō;
 [㨇㩯嘙婆櫇皤蔢謈鄱𡼃𢱨𦃡𧂉𨅅𩕏]→pó;
-[叵尀笸钷駊𠰐𠵳𡶆𡽠𣲳𤝯𥹖𧿽𨆵𩢘]→pǒ;
-[㛘䄸䎅䞟䣪䣮䨰䪖䪙䯙岶敀昢洦烞珀破砶粕蒪迫醗釙魄𠾌𢶉𣍸𣬚𤖼𥗟𥵜𦍁𦐦𦑀𦑵𦒟𦥭𦥲𦾕𦿍𧴤𨂩𨑝𩊀𩔈]→pò;
-[桲泼潑]→po;
+[叵尀笸钷颇駊𠰐𠵳𡶆𡽠𣲳𤝯𥹖𧿽𨆵𩢘]→pǒ;
+[㛘䄸䎅䞟䣪䣮䨰䪖䪙䯙岶敀昢洦烞珀破砶粕蒪迫酦醗釙魄𠾌𢶉𣍸𣬚𤖼𥗟𥵜𦍁𦐦𦑀𦑵𦒟𦥭𦥲𦾕𦿍𧴤𨂩𨑝𩊀𩔈]→pò;
+[桲]→po;
 [䬌剖娝𦵿𧠾]→pōu;
 [㧵䯽抔抙捊掊箁裒錇𢒷𦺎𩔻𩚭]→póu;
 [㕻㰴䳝咅哣婄犃]→pǒu;
@@ -917,17 +901,17 @@
 [㹒圃圑普暜朴樸檏氆浦溥烳諩譜谱蹼鐠镨𥐚𥛟𩑀]→pǔ;
 [㬥曝瀑舖舗鋪铺𣋏𧙛𧦞𩂗]→pù;
 [巬巭]→pu;
-[㠌㥓㩻㬤㱦䗩䣛䥓䫏七倛僛凄嘁妻娸悽慼慽捿攲期柒栖桤桼棲榿槭欺沏淒漆紪緀萋蛣褄諆諿蹊迉郪鏚霋魌鶈𠀁𠎰𠐾𠔶𡖾𡫁𢴰𢻪𣉓𣏶𣛺𣶠𤘌𤳃𤳤𥇚𥉐𥉷𥖫𥤥𦖊𦸓𧋉𧒕𧕉𧠪𨞢𩒛𩺲𪄭𪅾𪒆𪒑]→qī;
+[㠌㥓㩻㬤㱦䗩䣛䥓䫏七倛僛凄嘁妻娸悽慼慽戚捿攲期柒栖桤桼棲榿槭欺沏淒漆紪緀萋蛣褄諆諿蹊迉郪鏚霋魌鶈𠀁𠎰𠐾𠔶𡖾𡫁𢴰𢻪𣉓𣏶𣛺𣶠𤘌𤳃𤳤𥇚𥉐𥉷𥖫𥤥𦖊𦸓𧋉𧒕𧕉𧠪𨞢𩒛𩺲𪄭𪅾𪒆𪒑]→qī;
 [⻫⻬㖢㟓㟚㟢㩽㯦㰗䄢䅲䉻䐡䑴䓅䓫䞚䟚䡋䧵䩓䭶䭼䰇䱈䲬䳢䶒䶞亓亝俟其剘圻埼奇岐岓崎嵜帺忯愭懠掑斉斊旂旗棊棋檱櫀歧淇濝猉玂琦琪璂畦疧碁碕祁祇祈祺禥竒簱籏粸綥綦綨纃耆肵脐臍艩芪萁萕蕲藄蘄蚑蚔蚚蛴蜝蜞螧蠐褀跂踑軝釮錡锜頎颀騎騏騹骐骑鬐鬿鯕鰭鲯鳍鵸鶀麒麡齊齐𠁭𠅚𠓪𠫸𡦍𡪵𡹉𡺸𢁒𢍁𢍑𢩡𢺷𢻋𢻚𢾦𢾪𣯆𤪌𤷍𤹸𥉙𥼘𦔌𦫡𦭲𦸗𧌞𧎪𧓑𧡺𧯯𧰙𨉸𨙸𨥦𨪌𨱜𨸒𨸔𩉬𩥂𩦋𩨝𩲪𩳣𩴪𩷾𩹵𪀩𪂛𪄖𪗅𪗆𪗍𪗏𪙧]→qí;
 [㒅㫓䄎䄫䋯䎢䏿䒻䔇䡔䭫䭬乞企启呇唘啓啔啟婍屺岂晵杞棨玘盀綮綺绮芑諬豈起邔闙𠧒𡷞𡹘𡺓𥔩𥫟𦄊𦸆𧘗𧙾𧼘𨙬𩒨𩠦]→qǐ;
 [㞓㞚㣬䀙䁈䁉䅤䌌䏅䏌䏠䒗䔾䙄䚉䚍䟄䢀䫔䰴呮咠唭噐器夡契弃忔憇憩摖暣栔棄欫气気氣汔汽泣湆湇炁甈盵矵砌碛碶磜磧磩罊芞葺蟿訖讫迄鼜𠊔𠴹𡍪𡢖𡹓𡹩𡻧𡻰𡽼𢍆𢔆𢔠𢜱𢞒𢢖𢢞𢺵𣔘𣫱𣾤𤺗𤼅𥀻𥄜𥉻𥌁𥓾𥷇𥽳𦈦𦘸𦙊𦚊𦛰𦡹𦧉𦧯𦩣𦪊𧇜𧘧𧙞𧚨𧡘𧻕𧼕𧽓𨁐𨊰𨑤𨒅𨵆𩧌𩨘𪔪]→qì;
-[戚簯緕缼]→qi;
+[簯緕缼]→qi;
 [㤉掐葜𠜼𠝛𡤫𢮌𣘟𣣟]→qiā;
 [拤𡘧]→qiá;
 [峠跒酠鞐]→qiǎ;
 [㓞㓣㓤㡊䁍䂒䨐䯊䶝冾圶帢恰愘殎洽硈髂𠕣𠜤𠝘𠳌𢼣𣁴𣨄𤫶𤵹𥎸𥦞𥴭𦝣𦸉𧩶𩥌𩩱𩮁𩷻𪘺𫈰]→qià;
 [㗔㩃㩷㪠䀒䇂䉦䞿仟佥僉兛千圱圲奷婜孅孯岍悭愆慳扦拪掔搴撁攐攑攓杄檶櫏欦汘汧牵牽瓩竏签箞簽籤粁臤芊茾蚈褰諐謙谦谸迁遷釺鈆鉛钎铅阡雃韆顅騫骞鬜鬝鵮鹐𠑲𠔺𠠃𠬾𢃥𢋔𢌍𢍱𢜩𢧥𣘝𣟋𣢬𣢲𤠿𤿷𥏥𥜴𥱺𥲢𦖎𧘜𧛓𧟑𧢞𧮮𧲀𧽐𨐋𨐩𨓲𨝍𨦄𨨘𩋆𩨓𩪢𪇇𪉻]→qiān;
-[㦮㨜㩮㸫䁮䈤䕭䖍仱偂前墘媊岒忴扲拑掮揵榩橬歬潛潜濳灊箝羬荨蕁虔軡鈐鉗銭錢钤钱钳靬騚騝鰬黔黚𠀼𠢍𠷁𢁮𣖳𥔮𥮒𥴤𥷪𦂒𦴑𦼓𧃑𧣑𨜻𨥞𨱫𨺩𨽨𩨃𩨊𩬚𪈇]→qián;
+[㦮㨜㩮㸫䁮䈤䕭䖍仱偂前墘媊岒忴扲拑掮揵榩橬歬潛潜濳灊箝羬蕁虔軡鈐鉗銭錢钤钱钳靬騚騝鰬黔黚𠀼𠢍𠷁𢁮𣖳𥔮𥮒𥴤𥷪𦂒𦴑𦼓𧃑𧣑𨜻𨥞𨱫𨺩𨽨𩨃𩨊𩬚𪈇]→qián;
 [㦿㧄㹂䇜䭤凵嗛嵰槏浅淺繾缱肷脥膁蜸譴谴遣鑓𠊭𠋵𠳋𡒌𢮄𣍰𣓅𥦃𥧬𥳐𦅋𧥛𧪯𨗦𨺫𩑳𩒣𪘦]→qiǎn;
 [㐸㜞㟻㯠䈴䊴䑶䥅䪈䵖䵛俔倩傔儙刋堑塹壍嬱嵌悓慊棈椠槧欠歉皘篏篟綪縴芡茜蒨蔳輤鰜𢂺𢃘𣢖𣹥𧚫𧮽𨰂]→qiàn;
 [籖鎆鏲]→qian;
@@ -944,7 +928,7 @@
 [且𠀃]→qiě;
 [㓶㗫㛍㤲㥦㹤㼤㾀㾜䟙䤿切匧厒妾怯悏惬愜挈朅洯淁穕窃竊笡箧篋籡緁藒蛪踥郄鍥鐑锲鯜𠁠𠩂𠲵𡂠𡐤𡝍𢲶𢺅𣠺𤴼𤷾𥪵𥿚𦆍𦼰𦿋𧑨𧚪𧫕𧻘𧻧𨄊𨉪𨖰𩣴𪑗𪙌]→qiè;
 [㓎㾣䃢䜷亲侵媇寴嵚嶔欽綅衾親誛钦顉駸骎鮼𡵑𣆲𣢐𤥓𥍯𧯃]→qīn;
-[㕋㘦㢙㩒㪁㮗䔷䦦䰼勤嗪噙埁嫀庈慬懃懄捦擒斳檎溱澿珡琴琹瘽禽秦耹芩芹菦菳蚙螓蠄覃鈙鈫雂靲鬵鳹鵭𠓿𠘅𣜣𣪄𤚩𤴽𥎊𥎡𥘋𥱧𨙽𨛣𨾰𩎖𪒭𪒯]→qín;
+[㕋㘦㢙㩒㪁㮗䔷䦦䰼勤嗪噙埁嫀庈慬懃懄捦擒斳檎溱澿珡琴琹瘽禽秦耹芩芹菦菳蚙螓蠄鈙鈫雂靲鬵鳹鵭𠓿𠘅𣜣𣪄𤚩𤴽𥎊𥎡𥘋𥱧𨙽𨛣𨾰𩎖𪒭𪒯]→qín;
 [㝲㾛坅寑寝寢昑梫笉螼赾鋟锓𠔎𠻨𡫧𢫲𤙋𤿳𥵧𦯈𧼒𧾏𩓒𩔟𪙟]→qǐn;
 [㞬㤈䈜吢吣唚抋揿搇撳沁瀙菣藽𠖶𠜘𠦎𡹢𢱶𣖯𣨠𤵂𦧋𩂈𩐙𩔝]→qìn;
 [⻘䨝倾傾卿圊埥寈氢氫淸清蜻輕轻郬鑋靑青鲭𠑴𠨍𣫨𥃟𧕙𨆪𨓷𨻺𩑭𩗼𪏅]→qīng;
@@ -959,11 +943,11 @@
 [㕤㛏㞗㟈㤹㥢㧨㭝㷕㺫䊵䎿䜪䟵䣇䤛俅叴唒囚崷巯巰扏梂殏毬求汓泅浗渞湭煪犰玌球璆皳盚紌絿肍莍虬虯蛷蝤裘觓觩訄訅賕赇逎逑遒酋醔釓釚釻銶鮂鯄鰽鼽𠗈𡲚𢈝𢘄𢛃𢦎𣧝𣭳𤕾𤞰𥥽𥭑𦬖𦰪𧔭𧣕𧤕𧺤𧻱𨒊𨟽𨱇𨲒𨺧𩒮𩔕𩗕𩵍𩾁]→qiú;
 [搝糗𦦄𧻁𩈸𩝠]→qiǔ;
 [䟬䠗𨕦𪖛]→qiù;
-[㘗㠊㭕㸖㻃䈌䒧䒼䓚䓛䖦䢗䧢伹佉匤区區坥屈岖岨岴嶇憈抾敺曲浀祛筁粬紶胠蛆蛐袪覰覻觑詘誳诎趋趨躯軀镼阹駆駈驅驱髷魼鰸鱋麯麴麹黢𡱅𡳆𢌷𢴮𢼰𣮈𥬔𥶶𥺷𥽧𦛕𦛱𦸶𧌑𧐅𧠢𧾶𨄅𨧱𨱊𨸟𩖷𩣹𩪍𪌬𪛃]→qū;
-[㖆㜹㣄㯫㲘䂂䆽䋧䝣䞤䟊䵶佢劬忂戵斪朐欋氍淭渠灈璖璩癯磲籧絇翑胊臞菃葋蕖蘧螶蟝蠷蠼衐衢躣軥鑺鴝鸜鸲鼩𠍲𠏛𠣪𡡥𡱺𡲰𢌄𢎖𢦌𣖪𣯸𣰋𣰠𣰡𣰻𤨎𥃔𥗫𥧻𦄽𦐛𦔬𦕙𦣒𦼫𧄒𧊛𧕎𧝔𧲵𧾱𨎶𨐣𨞙𨞳𨼫𨼽𩇐𩉿𩢳𩧘𩴹𩵅𩽩𩿥𩿩𪀊𪁖𪄊𪆂𪉌𪌆𪍸]→qú;
+[㘗㠊㭕㸖㻃䈌䒧䒼䓚䓛䖦䢗䧢伹佉匤区區坥屈岖岨岴嶇憈抾敺曲浀祛筁粬紶胠蛆蛐袪覰覻詘誳诎趋趨躯軀镼阹駆駈驅驱髷魼鰸鱋麯麴麹黢𡱅𡳆𢌷𢴮𢼰𣮈𥬔𥶶𥺷𥽧𦛕𦛱𦸶𧌑𧐅𧠢𧾶𨄅𨧱𨱊𨸟𩖷𩣹𩪍𪌬𪛃]→qū;
+[㖆㜹㣄㯫㲘䂂䆽䋧䝣䞤䟊䵶佢劬忂戵斪朐欋氍淭渠灈璖璩癯瞿磲籧絇翑胊臞菃葋蕖蘧螶蟝蠷蠼衐衢躣軥鑺鴝鸜鸲鼩𠍲𠏛𠣪𡡥𡱺𡲰𢌄𢎖𢦌𣖪𣯸𣰋𣰠𣰡𣰻𤨎𥃔𥗫𥧻𦄽𦐛𦔬𦕙𦣒𦼫𧄒𧊛𧕎𧝔𧲵𧾱𨎶𨐣𨞙𨞳𨼫𨼽𩇐𩉿𩢳𩧘𩴹𩵅𩽩𩿥𩿩𪀊𪁖𪄊𪆂𪉌𪌆𪍸]→qú;
 [䶚取娶竘竬蝺詓齲龋𡟥𤖬𦗛𧉧𨓭𪋄]→qǔ;
-[㧁㫢㰦䁦䠐刞厺去呿唟耝覷趣閴闃阒麮鼁𠇯𤙏𩿟]→qù;
-[戌迲]→qu;
+[㧁㫢㰦䁦䠐刞厺去呿唟耝覷觑趣閴闃阒麮鼁𠇯𤙏𩿟]→qù;
+[迲]→qu;
 [㒽䌯圈圏奍峑弮恮悛棬鐉駩𠛮𡈉𥁸𦋓𨟠𨩸𩧴]→quān;
 [㒰㟫䀬䑏䟒䠰佺全啳埢姾婘孉巏惓拳搼权楾権權泉洤湶牷犈瑔痊硂筌絟縓荃葲蜷蠸觠詮诠跧踡輇辁醛銓铨闎顴颧騡鬈鰁鳈齤𠤹𠥙𡇮𡙅𡙐𡰝𡴔𡺟𢎠𢑆𣍴𤜍𤥷𤬠𤷄𥤊𦏮𦓰𧈾𧍭𨛈𨜩𩓫𩘘𩜬𪈻]→quán;
 [⺨䅚䊎汱烇犬犭畎綣绻虇𡿨𢔑𣸋𤰝𥹳𦨚𧸾𪐂]→quǎn;
@@ -971,12 +955,10 @@
 [椦]→quan;
 [缺蒛阙𥆸𥗮𧎯𩨭𩨷𩫠]→quē;
 [瘸]→qué;
-[㕁㩁㰌㱋㱿㲉㴶㹱㾡䇎䍳䦬䧿䲵却卻埆塙墧崅悫愨慤搉榷燩琷皵硞确碏確碻礐礭趞闋闕阕雀𠞗𡇱𡉉𢠬𣛵𣤇𣪹𤣅𤷽𤿋𤿩𤿵𥀎𥕹𥗙𥜵𥩢𧢩𧢭𨞩𨢜𨴊𨴒𨵗𩤈𪏈𪏨𪖀]→què;
-[鵲鹊]→que;
+[㕁㩁㰌㱋㱿㲉㴶㹱㾡䇎䍳䦬䧿䲵却卻埆塙墧崅悫愨慤搉榷燩琷皵硞确碏確碻礐礭趞闋闕阕雀鵲鹊𠞗𡇱𡉉𢠬𣛵𣤇𣪹𤣅𤷽𤿋𤿩𤿵𥀎𥕹𥗙𥜵𥩢𧢩𧢭𨞩𨢜𨴊𨴒𨵗𩤈𪏈𪏨𪖀]→què;
 [㟒囷夋峮逡𡈀𢛕𦽖𩎗𩤁]→qūn;
 [㪊㿏䭽宭帬羣群裙裠𣀄𤛭𤸷𨞗]→qún;
 [𦃢]→qǔn;
-[儿兒]→r;
 [㜣㲯㸐㾆䔳䕼䖄䫇䳿呥嘫然燃繎肰蚦蚺衻袇袡髥髯𠊌𠤀𠯍𡖝𢓒𣰦𤙼𤡮𤱋𥳚𦫉𪓘𪓚𪚮]→rán;
 [㒄㚩㿵䎃䒣䣸䤡冄冉姌媣染橪珃苒蒅𠱞𡜉𡜫𤲗𥀭𥬕𨹌𩃵𩢡𩧬𩶎]→rǎn;
 [𥣹]→ràn;
@@ -1049,7 +1031,7 @@
 [㩄㴓筛篩簁簛酾釃]→shāi;
 [繺𢄌]→shǎi;
 [㬠䵘晒曬閷𧜁𨢦𩂃𩂝𩴇]→shài;
-[㰑㺑䀐䘰删刪剼嘇圸埏姍姗山幓彡挻搧杉柵栅檆潸澘煽狦珊痁笘縿羴羶脠膻舢芟苫衫跚軕邖钐閊鯅𣆴𣖉𣧺𣲀𥊀𦎞𦏂𦳫𦺭𧛄𧛡𧲾𨁆𨏪𨝩𨝵𩁺𩌰𪑃]→shān;
+[㰑㺑䀐䘰删刪剼嘇圸埏姍姗山幓彡挻搧杉柵檆潸澘煽狦珊痁笘縿羴羶脠膻舢芟苫衫跚軕邖钐閊鯅𣆴𣖉𣧺𣲀𥊀𦎞𦏂𦳫𦺭𧛄𧛡𧲾𨁆𨏪𨝩𨝵𩁺𩌰𪑃]→shān;
 [𧨾]→shán;
 [㚒㨛㪎㴸㶒䠾晱炶煔熌睒覢閃闪陕陝鿃𠿞𡟨𢒉𢿈𣪶𤇄𤊼𥄘𥈚𧧵𧴭𨹈𨹊𩆤𩆫]→shǎn;
 [㣌㣣㪨䄠䚲䡪䥇䦂䦅䱇䱉䴮傓僐剡善墠墡嬗扇掞擅敾椫樿歚汕潬灗疝磰繕缮膳蟮蟺訕謆譱讪贍赡赸鄯釤銏鐥饍騸骟鱓鱔鳝𠚹𠫹𢕻𢩢𢫔𣓒𣩧𤮜𤺪𥔱𥰢𥸣𦍸𦘹𦶋𧎥𧭽𧷶𩟋𩦐𪍶]→shàn;
@@ -1065,6 +1047,7 @@
 [㓭㵃䞌佘舌虵蛇蛥𠋞𢶅𣸚𥝀𦯬𦴍𦼢𧉮𧵳]→shé;
 [䬷捨舍𢉃]→shě;
 [㴇䀅䄕䜓䠶䤮厍厙射弽慑慴懾摂摄摵攝欇歙涉涻渉滠灄社舎蔎蠂設设赦韘騇麝𠪣𠴯𢗭𣝒𣣭𤙱𤠭𤺔𥁹𥍉𥔡𦁗𧮿𨝫𩂨𩂴𩙝𩮐]→shè;
+[谁]→shéi;
 [㑗㕥㜪㮱䅸䯂伸侁兟呻堔妽姺娠屾峷扟敒曑柛棽氠深燊珅甡甧申眒砷穼籶籸紳绅罙莘葠蓡蔘薓裑訷詵诜身駪鯓鯵鰺鲹鵢𠃫𠻝𡖬𢈯𢏎𢘊𣇗𣔗𣘘𣘲𤶴𥆣𥥍𥥿𥳱𥸬𦐹𦜊𦸂𦸯𦺷𧢹𨊘𨐍𨐔𨐕𨝐𨞲𩉼𩺵]→shēn;
 [䰠什榊甚神鰰𤕊]→shén;
 [㚞㚨㰂㾕哂婶嬸审宷審弞曋渖瀋瞫矤矧覾訠諗讅谂谉邥頣魫𠘆𡼬𢈇𢊲𢏦𢸙𣿇𤏗𥏖𥬐𧀯𩶇]→shěn;
@@ -1074,10 +1057,10 @@
 [㗂㮐㼳㾪䁞䚇䪿偗渻省眚𡞞𡨽𦔄𦳗𧍖𨜜𨲓𨵥]→shěng;
 [䞉剩剰勝圣墭嵊晠榺橳琞盛聖胜蕂貹賸𠓸𠓽𤯡𦕡𦛙𧡶𧪝𨚱𪅻]→shèng;
 [䌤䌳䏉䗐䙾䴓呞失尸屍师師施浉湤湿溮溼濕狮獅瑡絁葹蒒蓍虱蝨褷襹詩诗邿釶鉇鉈鍦鯴鰤鲺鳲鳾鶳鸤𠇳𠓤𠷇𡂓𡟕𡠋𢀕𢧏𢺿𢻫𢼉𢼊𣁒𣤘𤹌𥍸𥛨𥜰𦌿𦒈𧍀𧜂𧠜𧠡𧩹𩒂𩥐𩬭𪀔𪓻𪓿𫚕]→shī;
-[⻝⻟⻠㖷㵓䂖䄷䈕䖨䦹䲽䶡乭十埘塒姼实実寔實峕嵵时旹時榯湜溡炻石祏竍莳蒔蚀蝕辻遈鉐食飠饣鮖鰣鲥鼫鼭𠥿𠩔𠯰𠰴𡀗𡚼𡫵𡺔𢨝𢻘𣏚𣧚𤸤𥇲𥐘𦔂𧄹𨙩]→shí;
+[⻝⻟⻠㖷㵓䂖䄷䈕䖨䦹䲽䶡乭十埘塒姼实実寔實峕嵵拾时旹時榯湜溡炻石祏竍莳蒔蚀蝕辻遈鉐食飠饣鮖鰣鲥鼫鼭𠥿𠩔𠯰𠰴𡀗𡚼𡫵𡺔𢨝𢻘𣏚𣧚𤸤𥇲𥐘𦔂𧄹𨙩]→shí;
 [㕜㹬㹷䂠䒨乨使兘史始宩屎榁矢笶豕鉂駛驶𠘪𡰯𡱁𡶈𢁓𣆘𥑏𦰯𦳊𨴯𩭐𩰢𪊢𪗧]→shǐ;
-[⺬-⺮㒾㔺㱁㳏㸷㹝䁺䊓䏡䛈䟗䤭䤱䩃䭄世丗亊事仕似侍冟势勢卋叓呩嗜噬士奭媞嬕室峙崼市式弑弒徥忕恀恃戺拭揓是昰枾柹柿栻氏澨烒煶眂眎眡睗示礻筮簭舐舓螫襫視视觢試誓諟諡謚试谥豉貰贳軾轼适逝適遾釈释釋鈰鉃鉽銴铈飾餙餝饰鰘𠀍𠁗𠡥𠰚𡅵𡉸𡣪𡷈𢂑𢃰𢝬𣬐𤆰𤉏𤑦𤖻𤜣𤢼𤯄𤯜𥅔𥅞𥥥𥫴𥰰𥼶𥿅𦚨𦿇𧊖𧝊𧞲𧧅𧳅𧵋𧻸𨒍𨒧𨟂𨱡𨸝𨽄𩋡𩗎𩛌𩛏]→shì;
-[佦匙拾篒籂識识𥫽]→shi;
+[⺬-⺮㒾㔺㱁㳏㸷㹝䁺䊓䏡䛈䟗䤭䤱䩃䭄世丗亊事仕似侍冟势勢卋叓呩嗜噬士奭媞嬕室崼市式弑弒徥忕恀恃戺拭揓是昰枾柹柿栻氏澨烒煶眂眎眡睗示礻筮簭舐舓螫襫視视觢試誓諟諡謚识试谥豉貰贳軾轼适逝適遾釈释釋鈰鉃鉽銴铈飾餙餝饰鰘𠀍𠁗𠡥𠰚𡅵𡉸𡣪𡷈𢂑𢃰𢝬𣬐𤆰𤉏𤑦𤖻𤜣𤢼𤯄𤯜𥅔𥅞𥥥𥫴𥰰𥼶𥿅𦚨𦿇𧊖𧝊𧞲𧧅𧳅𧵋𧻸𨒍𨒧𨟂𨱡𨸝𨽄𩋡𩗎𩛌𩛏]→shì;
+[佦匙篒籂識𥫽]→shi;
 [㧃収收𠈅𤙘𤚔𤱜𥅪]→shōu;
 [㝊䭭垨守手艏首𡭮𥅷𥾹𦣻𧵃𩠶]→shǒu;
 [㖟㥅䛵兽受售壽夀寿授涭狩獣獸痩瘦綬绶膄鏉𠱔𣒻𥙰𥨝𧈙𧌅𧚯𧜃𧤙𧯼𨱒𩴍𪈀]→shòu;
@@ -1085,7 +1068,7 @@
 [㑐㸡㼡䨹䱙书倏倐儵叔姝尗抒掓摅攄書杸枢梳樞橾殊殳毹毺淑瀭焂瑹疎疏紓綀纾舒菽蔬跾踈軗輸输鄃陎鮛鵨𠘧𠙎𡧔𢞣𣉛𣰿𤕟𤱐𤴙𥳕𥿇𦈌𦈷𦍄𦐣𦤂𦶕𦺗𧠣𨁀𨐅𨛭𩛅𩳅𩷌𩾈𪅰]→shū;
 [㒔㯮䃞䴰塾婌孰熟璹秫贖赎𡒒𡦛𢧇𣤯𧇝𨶝𨷙𩢻]→shú;
 [㻿䑕䝪䞖属屬暏暑曙潻癙糬署薥薯藷蜀蠴襡襩鱪鱰黍鼠鼡𡤽𡱆𢋂𣀻𤻃𥍝𥣋𦺪𧄔𧑓𧒑𨽉]→shǔ;
-[㛸㜐㡏㣽㫹㵂㶖㷂㽰㾁䉀䘤䜹䝂䠼䢞䢤䩱侸俞咰墅尌庶庻怷恕戍捒数數朮术束树樹沭漱潄澍濖竖竪絉腧荗蒁虪術裋豎述鉥錰鏣隃鶐𠊪𠐊𠲌𠾢𡂡𡊍𡔪𡣈𢠫𣏗𣻚𤍓𤗪𤘷𤞉𦒶𦠦𧗱𧞀𧞫𧼯𨅒𨔦𪌶𪐧]→shù;
+[㛸㜐㡏㣽㫹㵂㶖㷂㽰㾁䉀䘤䜹䝂䠼䢞䢤䩱侸咰墅尌庶庻怷恕戍捒数數朮术束树樹沭漱潄澍濖竖竪絉腧荗蒁虪術裋豎述鉥錰鏣隃鶐𠊪𠐊𠲌𠾢𡂡𡊍𡔪𡣈𢠫𣏗𣻚𤍓𤗪𤘷𤞉𦒶𦠦𧗱𧞀𧞫𧼯𨅒𨔦𪌶𪐧]→shù;
 [㕞刷唰𠛚]→shuā;
 [耍𤔙𩈥𩉆𩤤]→shuǎ;
 [誜]→shuà;
@@ -1097,7 +1080,7 @@
 [㕠䉶䌮䝄双孀孇欆礵艭雙霜騻驦骦鷞鸘鹴𧄐𧕟𨇯𩅪𩆿𩽧]→shuāng;
 [䔪䗮䫪塽慡樉漺爽縔鏯𠗾𡑽𥡠𥱶𦄍𦆌𧴅]→shuǎng;
 [㦼灀𥲚𧕺]→shuàng;
-[脽誰谁𧀣]→shuí;
+[脽誰𧀣]→shuí;
 [⺢水氺𡯑𡱊𢏅𤆙𥫸𦙙]→shuǐ;
 [㥨㽷䬽䭨䳠帨涗涚睡瞓祱稅税裞𠻜𢇤𥌘𦣢𨓚𨿠𩟥𩩞]→shuì;
 [⺡氵閖]→shui;
@@ -1114,20 +1097,18 @@
 [㮸䛦䢠宋訟誦讼诵送鎹頌颂餸𠳼𡇝𦯕𦷴𩃍𩠌]→sòng;
 [䈭䐹䑹䗏䤹䩳䬒䮟䱸凁嗖廀廋捜搜摉摗溲獀艘蒐蓃螋鄋醙鎪锼颼颾飕餿馊騪𠘂𠝬𡠼𡣂𢲷𢴼𣔱𣮬𣯜𧳶𧽏𨡻𨤇𩗣𩘠𩙫𩨄𩮃𩮶𩮸]→sōu;
 [㛐㟬䈹䉤䏂傁叜叟嗾擞擻櫢瞍籔薮藪𠋢𠌞𠌟𠪇𤕇𥈟𥖻𦺌𨺦]→sǒu;
-[瘶𥯪𧔅]→sòu;
-[嗽]→sou;
+[嗽瘶𥯪𧔅]→sòu;
 [㢝㲞䌚䲆囌櫯甦稣穌窣苏蘇蘓酥鯂𢋈𢸫𣩷𤼀𧔖𧺷𩲵]→sū;
 [俗𠐍𦎄]→sú;
 [𣷶]→sǔ;
-[㑉㑛㓘㔄㕖㜚㝛㨞㪩㬘㯈㴋㴑㴼䃤䅇䎘䏋䑿䔎䛾䥔傃僳嗉塐塑夙嫊宿愫愬憟梀榡樎樕橚殐泝洬涑溯溸潚潥玊珟璛碿簌粛粟素縤肃肅膆莤蔌藗觫謖谡趚蹜速遡遬鋉餗驌骕鱐鷫鹔𡎮𡖯𢎎𢖏𢚑𢢒𣝝𣫎𣯼𣶘𣿈𤌂𤛝𤠚𤡃𤢂𤢘𤤐𤥔𤭴𤸮𦌉𦌊𧀌𧐁𧐒𧐴𧜦𧞺𧥆𧩝𧼭𧽷𨱈𩐫𩐼𩘰𩘹𩙨𩝥𩳒𪁽𪄑𪅄𪋝𪌔𪍛𪐮𪖶𫂙𫗧]→sù;
-[訴诉]→su;
+[㑉㑛㓘㔄㕖㜚㝛㨞㪩㬘㯈㴋㴑㴼䃤䅇䎘䏋䑿䔎䛾䥔傃僳嗉塐塑夙嫊宿愫愬憟梀榡樎樕橚殐泝洬涑溯溸潚潥玊珟璛碿簌粛粟素縤肃肅膆莤蔌藗觫訴謖诉谡趚蹜速遡遬鋉餗驌骕鱐鷫鹔𡎮𡖯𢎎𢖏𢚑𢢒𣝝𣫎𣯼𣶘𣿈𤌂𤛝𤠚𤡃𤢂𤢘𤤐𤥔𤭴𤸮𦌉𦌊𧀌𧐁𧐒𧐴𧜦𧞺𧥆𧩝𧼭𧽷𨱈𩐫𩐼𩘰𩘹𩙨𩝥𩳒𪁽𪄑𪅄𪋝𪌔𪍛𪐮𪖶𫂙𫗧]→sù;
 [䝜狻痠酸𤶤𦾹𨠡𩆑𪘑𪘝]→suān;
 [匴𠥘]→suǎn;
 [祘笇筭算蒜𥳪𥴵𩈲]→suàn;
 [䧌䪎倠哸夊浽滖濉熣眭睢綏芕荽荾葰虽雖鞖𠌱𠨌𡝓𣮄𣯯𤯖𦉎𦵭𦸏𧈧𨾡𩃃𩌩𩏘𩞅𩮴]→suī;
-[㵦㻟䜔䢫瓍绥遀遂隋随隨𥶻𧲈𩙇]→suí;
+[㵦㻟䜔䢫瓍绥遀隋随隨𥶻𧲈𩙇]→suí;
 [䭉䯝瀡膸髄髓𠕸𧃚𨾬]→suǐ;
-[㒸㞸㥞㴚㻪㻽䅗䉌䍁䔹䠔䡵䥙亗埣嬘岁嵗旞檖歲歳澻煫燧璲睟砕碎祟禭穂穗穟繀繐繸襚誶譢谇賥邃鐆鐩隧韢𠭥𡑞𡶣𡷼𡹖𡻕𢅕𢇥𢈼𢒱𢟩𣄧𣩡𤡪𤬫𤻄𥊴𥕸𥢍𥤼𥴦𦃒𦄑𦅵𦇀𧌢𧡏𧨧𧸙𨆏𨣢𨷃𩍚𩎰𩏚𩏲𩗶𩝌]→suì;
+[㒸㞸㥞㴚㻪㻽䅗䉌䍁䔹䠔䡵䥙亗埣嬘岁嵗旞檖歲歳澻煫燧璲睟砕碎祟禭穂穗穟繀繐繸襚誶譢谇賥遂邃鐆鐩隧韢𠭥𡑞𡶣𡷼𡹖𡻕𢅕𢇥𢈼𢒱𢟩𣄧𣩡𤡪𤬫𤻄𥊴𥕸𥢍𥤼𥴦𦃒𦄑𦅵𦇀𧌢𧡏𧨧𧸙𨆏𨣢𨷃𩍚𩎰𩏚𩏲𩗶𩝌]→suì;
 [孙孫搎槂狲猻荪蓀蕵薞飧飱𧎤]→sūn;
 [㔼㦏䁚䐣损損榫笋筍箰簨鎨隼鶽𠣬𣕍𦠆]→sǔn;
 [㛖䓾䔋䯯傞唆嗍娑摍桫梭睃簑簔縮缩羧莏蓑趖髿鮻𠈱𠱗𢘿𣒹𣯌𤀤𥁲𥆝𥇇𦟱𧨀𩌢]→suō;
@@ -1140,13 +1121,13 @@
 [㗳㺚塔墖溚獭獺鰨鳎鿎𦑼𨶀𨸉𩥑𩨌𩫊𩷽𩺗]→tǎ;
 [㒓㛥㣛㣵㧺㭼㯓㳠㹺㿹䂿䈋䈳䍇䍝䎓䑜䑽䓠䜚䳴䵬䶀䶁嚺崉拓挞搨撻榻橽毾涾澾濌狧禢誻譶踏蹋躢遝遢錔闒闥闼鞜鞳鮙𠉂𠴲𠷍𢃕𢺉𣗶𣝋𣥂𣥷𣯚𤄥𤒻𤛣𤠐𤠟𤿽𥗓𦍒𦐇𦑇𦑲𦑶𦧛𦧞𦧟𦧥𦧱𦨎𦪙𦶑𦾽𧌏𧔣𧖆𧮑𨃚𨆰𨌭𨔯𨙎𨰏𨵝𩋅𩌇𩌉𩌐𩌘𩎽𪂌𪔕𪘁]→tà;
 [侤咜]→ta;
-[囼孡胎苔𧉟𧭏𩬠]→tāi;
-[㒗㙵㣍㬃㷘㸀䈚䑓儓台坮嬯抬擡旲枱檯炱炲箈籉臺菭薹跆邰颱駘鮐鲐𡒢𢖤𣣿𩿡𪒴]→tái;
+[囼孡胎𧉟𧭏𩬠]→tāi;
+[㒗㙵㣍㬃㷘㸀䈚䑓儓台坮嬯抬擡旲枱檯炱炲箈籉臺苔菭薹跆邰颱駘鮐鲐𡒢𢖤𣣿𩿡𪒴]→tái;
 [㘆𤗿]→tǎi;
 [㑷㥭䣭冭太夳忲态態汰泰溙燤肽舦酞鈦钛𡇷𦒰𧉑𧮼𪐥]→tài;
 [粏]→tai;
 [㘱㨏㳩㴂㵅䆱䑙坍怹摊擹攤滩灘痑瘫癱舑貪贪𠫶𣢌𣵢𣸙𣼚𣽯𦙇𦧏𦧴𦨸𦸁𦼎]→tān;
-[㲜㷋㽎㽑䃪䉡䊤䕊倓坛墰墵壇壜婒惔憛昙曇榃檀潭燂痰磹罈罎藫談譚譠谈谭貚郯醈醰錟锬顃餤𠻪𡅄𡊨𢅀𢇧𢇰𤐔𥩒𥰨𥹠𥼟𥼮𦗡𧂇𧣁𧣹𧰘𧽼𨝸𩖖𩠽𩡄𩡝𩪺𪍵]→tán;
+[㲜㷋㽎㽑䃪䉡䊤䕊倓坛墰墵壇壜婒惔憛昙曇榃檀潭燂痰磹罈罎藫覃談譚譠谈谭貚郯醈醰錟锬顃餤𠻪𡅄𡊨𢅀𢇧𢇰𤐔𥩒𥰨𥹠𥼟𥼮𦗡𧂇𧣁𧣹𧰘𧽼𨝸𩖖𩠽𩡄𩡝𩪺𪍵]→tán;
 [㫜㲭䏙䞡䦔嗿坦忐憳憻暺毯璮菼袒襢醓鉭钽𤎥𦃖𦌪𧫿𧺟𨁴𨅍𨡍𨣕𩑰𩒢]→tǎn;
 [㛶䐺䗊䜖傝僋叹嘆埮探歎湠炭碳舕賧𣁗𣞔𣴽𧥞𨂞𩤞𪉧]→tàn;
 [㓥䞶䠀劏嘡汤湯羰耥薚蝪蹚鏜鐋铴镗鞺鼞𢴳𦳝𨲗]→tāng;
@@ -1164,8 +1145,8 @@
 [㔸䖙䢰䴘剔擿梯踢锑鷈鷉𠞄𢱦𤗢𨁃𨔛𩓂𩤽𪖦]→tī;
 [㖒㡗㣢䅠䔶䚣䛱䨑䬫䬾䱱偍厗啼嗁崹徲惿提漽瑅碮禵稊綈緹绨缇罤苐荑蕛蝭褆謕趧蹄蹏遆醍銻鍗題题騠鮷鯷鳀鴺鵜鶗鶙鷤鹈𡰎𣄍𣖅𣖸𣸒𣹲𤗘𤚢𤟥𤟾𤭌𥉘𥳳𥶛𦌢𦻀𧀠𧀰𧋘𧔩𧙣𧡨𨠏𨪉𨴼𩋣𩛑𩛶𩝊𩿷𫘨𫛸]→tí;
 [䌡䪆体挮躰軆骵體鮧𡥩𣈡𣉆]→tǐ;
-[㗣㬱㯩䎮䙗䯜䶏䶑倜剃嚏嚔悌悐惕惖戻掦揥替朑楴歒殢洟涕瓋籊薙裼褅趯逖逷髰鬀𡲕𡲿𡸑𢝹𢞖𢧑𢳓𣜹𣤖𣧂𥉈𥡦𥫵𧛒𧝆𧝐𧨱𧼮𨲎𨲞𩬲𩮜𪍲𪕩]→tì;
-[屉屜笹]→ti;
+[㗣㬱㯩䎮䙗䯜䶏䶑倜剃嚏嚔屉屜悌悐惕惖戻掦揥替朑楴歒殢洟涕瓋籊薙裼褅趯逖逷髰鬀𡲕𡲿𡸑𢝹𢞖𢧑𢳓𣜹𣤖𣧂𥉈𥡦𥫵𧛒𧝆𧝐𧨱𧼮𨲎𨲞𩬲𩮜𪍲𪕩]→tì;
+[笹]→ti;
 [㬲䀖䋬䚶兲天婖添酟靔靝黇𡙒𢓍𣊖𦊊𦧒𦧝𦬞𪅉𪎾]→tiān;
 [㧂䑚䟧䡒䡘䥖䧃塡填屇恬搷沺湉璳甛甜田畋畑畠盷碵磌窴緂胋菾鈿闐阗鴫鷆鷏𢇶𤤦𤫞𥧑𥪧𦗀𦳇𧨸𧰊𨉾𨌈𩚣𪌩]→tián;
 [㖭㙉㥏䄼䄽䐌䠄倎唺忝悿晪殄淟琠痶睓腆舔覥觍賟錪鍩靦餂𠗘𡒧𤲖𥪌𥳫𥵶𧉂𧌎𧨩𧹖𨆁𨡁𨡏𨹻𩈍𩉁]→tiǎn;
@@ -1179,7 +1160,7 @@
 [䩞]→tié;
 [䥫僣蛈銕鋨鐡鐵铁驖鴩𢶋]→tiě;
 [䴴䵿呫飻餮𤝓𦧢𦧤𪎋]→tiè;
-[㓅䋼䯕厅厛听庁廰廳桯汀烃烴綎耓聴聼聽艼鞓𠄚𤘖𥑈𦉬𦗟𧰩𨊡𩨑]→tīng;
+[㓅䋼䯕厅厛听庁廰廳桯汀烃烴町綎耓聴聼聽艼鞓𠄚𤘖𥑈𦉬𦗟𧰩𨊡𩨑]→tīng;
 [㹶㼗䗴䱓亭停婷嵉庭廷楟榳渟筳聤莛葶蜓蝏諪邒閮霆鼮𣂴𤗞𥥶𥴑𦐿𦝞𧓴𧖨𧶺𨉬𨓍𩆆𩐴𩹇]→tíng;
 [䅍䦐䵺侹圢娗挺梃涏烶珽甼脡艇誔頲颋𠕊𠘋𡈼𡔛𢽄𣄿𣉡𤱹𥫙𨁗𨳑𨳝𨸁𩑙𩒞𪊶]→tǐng;
 [𢬫𥆑𦕢]→tìng;
@@ -1190,12 +1171,12 @@
 [偷偸婾媮鋀鍮𡇧𨱎]→tōu;
 [㓱㢏䕱䵉亠头投緰頭骰𡷠𣪌𦈕𨯲𨷩𪁞𪉘𪎨]→tóu;
 [㪗㳆㼥䚵䱏妵敨紏蘣钭飳黈𩜶𩿢𪌘]→tǒu;
-[㖣㰯䞬䟝綉透𣛾𧺢𨔙]→tòu;
+[㖣䞬䟝綉透𣛾𧺢𨔙]→tòu;
 [㟮㻬䛢䞮凸唋堗宊嶀怢捸涋湥痜禿秃突葖鋵鵚鼵𠊲𠞀𠟶𠫓𠳶𠸂𡸂𢬳𣅝𣒇𣲱𤷿𥥛𥨜𥯝𦩤𧳌𪉍]→tū;
-[㭸㻌㻠㻯䅷䖘䠈䣄䣝䤅䩣䳜凃図图圕-圗塗屠峹嵞庩廜徒悇捈揬梌潳瘏稌筡腯荼菟蒤跿途酴鈯鍎馟駼鵌鶟鷋鷵𠫮𠻬𡇩𡺴𢝀𣈥𣔻𣥳𤙛𤟪𥂋𥧣𦔅𦝬𧛗𧧶𨑒𨝛𨨷𨱄𨴩𩥽𪑏]→tú;
+[㭸㻌㻠㻯䅷䖘䠈䣄䣝䤅䩣䳜凃図图圕-圗塗屠峹嵞庩廜徒悇捈揬梌涂潳瘏稌筡腯荼菟蒤跿途酴鈯鍎馟駼鵌鶟鷋鷵𠫮𠻬𡇩𡺴𢝀𣈥𣔻𣥳𤙛𤟪𥂋𥧣𦔅𦝬𧛗𧧶𨑒𨝛𨨷𨱄𨴩𩥽𪑏]→tú;
 [吐土圡釷钍𨙭]→tǔ;
 [兎兔堍莵迌鵵𩣮𩸃𩾅]→tù;
-[汢涂]→tu;
+[汢]→tu;
 [䝎䵊䵎湍煓猯貒𧰄𪏖]→tuān;
 [㩛䊜剸团団團慱抟摶槫檲漙篿糰鏄鷒鷻𡁴𣶣𧐕𧓘𧽢𨪒𩃘𩘯𩜵𩠊𩠹𪈋]→tuán;
 [䜝䵯疃𢣎𤱝]→tuǎn;
@@ -1209,10 +1190,9 @@
 [㖔氽畽𢞋𢥽𣵞𦜯𦟙]→tǔn;
 [㧷旽𤶕𨁇𪑒]→tùn;
 [䜏䴱乇仛侂咃托扡拕拖挩捝杔汑沰涶脫脱莌袥託讬飥饦驝魠𠈁𠰹𠴻𢄿𢩷𢸨𤣯𧦭𨒙𨞌𩟰𩢵𩧐𪌂]→tuō;
-[㸰㸱㼠㾃䍫䡐䪑䭾䰿佗坨堶岮槖橐沱沲狏砣砤碢紽袉跎迱酡陀陁馱駄駞騨驒驮鮀鴕鸵鼉鼍鼧𡩆𡹬𢏜𢑠𢩻𣶦𤝛𤤩𤱡𥓿𥞒𦑑𦚐𧔳𧕦𧣖𧤓𧧉𧿶𨈷𨉋𨹔𩃰𩃱𩉺𩎼𩢊𩿽𪘕𪘗]→tuó;
+[㸰㸱㼠㾃䍫䡐䪑䭾䰿佗坨堶岮槖橐沱沲狏砣砤碢紽袉跎迱酡陀陁馱駄駝駞騨驒驮驼鮀鴕鸵鼉鼍鼧𡩆𡹬𢏜𢑠𢩻𣶦𤝛𤤩𤱡𥓿𥞒𦑑𦚐𧔳𧕦𧣖𧤓𧧉𧿶𨈷𨉋𨹔𩃰𩃱𩉺𩎼𩢊𩿽𪘕𪘗]→tuó;
 [㟎䓕妥媠嫷庹彵椭楕橢鬌鰖鵎𡐏𡛵𢓰𣟁𣷿𤱧𤹢𦝦𨁡𨺖]→tuǒ;
 [唾柝毤毻箨籜萚蘀跅𣗸𣟄𣮆𥩀𦚈𧜲𧿧𨂫𩅡𩱾]→tuò;
-[駝驼]→tuo;
 [䨟䯉䵷劸嗗娲媧屲挖搲攨洼溛漥畖穵窊窪蛙鼃𠴺𡁌𡚟𣢉𤬿𤮰𥤺𦞭𧧊𨩶𩨚𩩤𩿺]→wā;
 [娃𣢚𤞇𩨾]→wá;
 [㧚㼘佤咓瓦砙邷𣐎𦘵𦚩𨀄]→wǎ;
@@ -1227,16 +1207,15 @@
 [㸘䛃䥑䯛万卍卐妧忨捥杤澫瞣脕腕萬薍蟃贃贎輐鋄錽鎫𠣉𡆅𢀗𢯲𣥃𤧩𥆶𥝄𦂔𦙵𦲯𦽞𧹗𨞼𩈬𩢄]→wàn;
 [⺏⺐尣尩-尫汪𠕿𡝝𡯁𤷀𥆚𪁘]→wāng;
 [亡亾仼兦彺王莣蚟𡷢𦣦𦯌𧎕𩵭]→wáng;
-[⺲⺴㓁㲿㳹㴏䋄䋞䒽䰣往徃徍惘暀棢瀇網网罒罔菵蛧蝄誷輞辋魍𡔞𢁶𢼟𣢫𣶈𣷪𥾼𦖉𦣩𦬣𧈿𧧜𨕿𨳠𩖩]→wǎng;
+[⺲⺴㓁㲿㳹㴏䋄䋞䒽䰣往徃徍惘暀枉棢瀇網网罒罔菵蛧蝄誷輞辋魍𡔞𢁶𢼟𣢫𣶈𣷪𥾼𦖉𦣩𦬣𧈿𧧜𨕿𨳠𩖩]→wǎng;
 [䤑妄忘旺望朢盳迋𢛛𣥊𥆜𥲠𦓋𧧄𧫢]→wàng;
-[枉]→wang;
 [㕒㙎㙗㟪㣦㮃䋿䫋䴧偎危喴威媙嶶巍微愄揋揻椳楲渨溦烓煨燰縅萎葨葳薇蜲蝛覣詴逶隇隈鰃鰄鳂𠳿𢼸𣫪𦈓𦓽𦩬𧍥𧚷𧛚𧟼𧤖𨖿𨻒𩹥𩼌𪑭]→wēi;
-[⻙㣲䉠䑊䔺䙟䜅䝐䥩䧦唯喡囗围圍圩媁峗峞嵬帏帷幃惟桅欈沩洈涠湋溈潍潙潿濰爲犩琟癓硙磑維维蓶覹违違鄬醀鍏闈闱霺韋韦鮠𠄿𠙕𠥎𡇦𡚈𡼱𢾁𣄺𣲗𥅵𥌰𧝕𧞸𧢒𧢧𧲗𧳞𨠥𨱖𨴓𨿭𩀣𩀶𩁌𩋾𩎵𩏉𩠯𩴞𩽎]→wéi;
+[⻙㣲䉠䑊䔺䙟䜅䝐䥩䧦唯喡囗围圍圩媁峗峞嵬帏帷幃惟桅欈沩洈涠湋溈潍潙潿濰犩琟癓硙磑維维蓶覹违違鄬醀鍏闈闱霺韋韦鮠𠄿𠙕𠥎𡇦𡚈𡼱𢾁𣄺𣲗𥅵𥌰𧝕𧞸𧢒𧢧𧲗𧳞𨠥𨱖𨴓𨿭𩀣𩀶𩁌𩋾𩎵𩏉𩠯𩴞𩽎]→wéi;
 [㖐㙔㛱㞇㞑㠕㨊㬙㭏㱬䃬䇻䈧䍴䍷䞔䦱䪘䬿䵋伟伪偉偽僞儰厃壝委娓寪尾屗崣嵔徫愇捤撱斖暐梶椲洧浘濻瀢炜煒猥玮瑋痏痿硊磈緯纬腲艉芛苇荱葦蒍蔿薳諉诿踓鍡韑韙韡韪頠颹骩-骫鮪鲔𠆟𡂗𡷕𢊯𢯷𢸦𣨙𤁿𤛲𤸆𤺉𤼒𥊪𥒮𥯜𥯤𦇅𦢿𦾛𧐌𧲄𨗨𨝀𨟗𨪈𨵋𩏏𩏿𩗘𩜧𩟟𩲂𩹷𩼂]→wěi;
-[㥜㦣㷉䊊䗽䘙䙿䜜䡺䪋䬑䭳䮹䲁䵳为位卫叞味喂墛媦尉慰懀未渭為煟熭犚璏畏碨緭罻胃苿菋蔚藯蘶蜼螱衛衞褽謂讆讏谓躗躛軎轊鏏霨餧餵饖魏鮇鳚𠹤𡔱𡶎𢉝𢍚𢙓𢣘𢲴𣈎𣩪𣽴𤀷𤜂𤻅𥉖𥧙𥶽𦝛𦠻𦩝𦪒𦳢𧍫𧒭𧔥𧕞𧲝𧳪𧴖𧸽𨃄𨚘𨢉𨾂𩑵𩗜𩤸𩨅𩲄𩹂𪂄𪑐]→wèi;
-[煀猬蝟]→wei;
+[㥜㦣㷉䊊䗽䘙䙿䜜䡺䪋䬑䭳䮹䲁䵳为位卫叞味喂墛媦尉慰懀未渭為煟熭爲犚猬璏畏碨緭罻胃苿菋蔚藯蘶蜼蝟螱衛衞褽謂讆讏谓躗躛軎轊鏏霨餧餵饖魏鮇鳚𠹤𡔱𡶎𢉝𢍚𢙓𢣘𢲴𣈎𣩪𣽴𤀷𤜂𤻅𥉖𥧙𥶽𦝛𦠻𦩝𦪒𦳢𧍫𧒭𧔥𧕞𧲝𧳪𧴖𧸽𨃄𨚘𨢉𨾂𩑵𩗜𩤸𩨅𩲄𩹂𪂄𪑐]→wèi;
+[煀]→wei;
 [㬈㼔塭昷榅榲殟温溫瑥瘟蕰豱輼轀辒鎾鞰饂鰛鰮鳁𥁕𨜵𩥈𪉸]→wēn;
-[䎹䎽䘇䰚匁彣文炆珳瘒紋纹聞芠蚉蚊螡蟁閺閿闅闦闻阌雯馼駇魰鳼鴍鼤𢾿𣜺𤵒𨶭𩢌𩭋𪉃]→wén;
+[䎹䎽䘇䰚匁彣文炆玟珳瘒紋纹聞芠蚉蚊螡蟁閺閿闅闦闻阌雯馼駇魰鳼鴍鼤𢾿𣜺𤵒𨶭𩢌𩭋𪉃]→wén;
 [㗃㝧䐇䦟刎吻呡忟抆桽稳穏穩紊肳脗𡁋𣶌𥦊𥧚𥬼𦝮𦟕𦮶𨆲]→wěn;
 [㡈問妏揾搵汶渂璺莬问顐𠐢𤛁𥃮𦦯𨟸𨸩]→wèn;
 [呚]→wen;
@@ -1247,30 +1226,29 @@
 [㦱㧴䂺䰀婐我捰𠪧𡖲𢦴𢫷𣇫𣚝𥑣𥟿𧶕𨁟𩭏𩮑]→wǒ;
 [㠛㱧䀑䁊䠎䮸仴偓卧媉幄捾握擭斡枂楃沃涴渥濣焥瓁瞃硪肟腛臒臥雘齷龌𠿟𡎔𣁳𣂽𤆏𤡓𤻌𥄗𥪍𦤨𦯏𦰖𦳹𦷵𧤒𧥋𨌝𩈱𩐦𩟓𩷯𪁕𪎤]→wò;
 [𥦷]→wòng;
-[⺎⺑㮧䖚䡧乌兀剭呜嗚圬屋巫弙於杇歍汙汚污洿烏窏箼螐誈誣诬邬鄔鎢钨鰞鴮𠛆𠞆𡈎𢁢𤣬𥁡𥎮𥟽𦶀𦼇𧆹𧑕𧨆𩝷𪄝𪑱]→wū;
-[㷻㹳㻍䉑䍢䓊䦜䫓䮏吳吴吾呉娪无梧毋洖浯無珸璑祦禑芜茣莁蕪蜈蟱譕郚铻鯃鵐鷡鹀鼯𠘻𡷤𢃀𢋹𢓲𣟒𤭑𥕻𥭠𥲐𦥁𦨳𦷽𧳎𨼊𨿏𩒾𩳌𩶭𩻚]→wú;
-[㐅㑄㒇㬳㵲䒉䟼䳇乄五仵侮俉倵儛午啎妩娬嫵庑廡忤怃憮捂摀旿橆武潕熓牾玝珷瑦甒碔舞躌鵡鹉𠥢𠯃𠵦𡈞𢑟𢜮𢨂𢩈𢫸𣲘𣺀𤆡𤸼𦌬𧴇𧺴𧽋𨖴𨡡𨶇𩠟𩵱]→wǔ;
-[㐳㡔㽾䃖䎸䑁䛩䜑䦍䨁䳱伆勿卼坞塢奦婺寤屼岉嵍嵨忢悞悟悮戊扤敄晤杌溩焐熃物痦矹窹粅芴蘁誤误迕逜鋈阢隖雺雾霚霧靰騖骛鶩鹜鼿齀𠒄𠼘𡬫𡯇𡵉𢄓𢗳𢙁𢝴𣨓𣬽𣯎𤵐𥎈𥏒𥒀𥾕𦆞𦎦𦨉𦬂𧈭𧎻𧐙𧰈𨂣𨑥𨧗𨨡𨲬𩄯𩓦𩗽𩝕]→wù;
-[伍务務錻]→wu;
-[⻃㓾㕃㕧㗩㗭㘊㚀㛓㛫㛭㜎㜯㪧㬛㮩㯕㰿㱆㱤㲸㴔㴧㶉㺣㾷㿽䁯䂀䏩䐅䐖䒊䖒䖷䙵䛊䛥䭒䳶䶋俙傒僖兮凞卥厀吸唏唽嘻噏夕奚嬆嬉屖嵠嶲巇希徆徯忚怸恓悉悕惁惜憙扱扸昔晞晰晳曦析桸榽樨橀欷氥汐浠淅渓溪潝烯焁焈焟焬煕熄熈熙熹-熻燨爔牺犀犠犧狶琋瘜皙睎瞦硒磎礂稀穸窸粞糦緆縘繥羲翕翖肸肹膝舾莃菥蒠蜥螅螇蟋蠵覀觹觽觿譆谿豀豨豯貕赥邜郗鄎酅醯釸錫鏭鑴锡隵雟餏饻鯑鵗鸂鼷𠆱𠔃𠔍𠘕𠜗𠟊𠨚𠩺𠬬𠴭𠶨𠺒𡁱𡏛𡗞𡗳𡘡𡩤𡳚𡻎𢀊𢋼𢑧𢗴𢜣𢡁𢨟𢬾𢹍𣅾𣎮𣟵𣢁𣢂𣢍𣢎𣢑𣤳𣤴𣨗𤃪𤄬𤓔𤓚𤠓𤡡𤢀𤥒𤬕𤬘𤮆𤮙𤲺𤳥𤶈𤶰𤷡𤹊𤺊𥄖𥄛𥈻𥋟𥰝𦐠𦙝𦜱𦞽𦠪𦤈𦩭𦮐𦼗𧀬𧈼𧥤𧯗𧲘𧶖𧹨𧻶𧿝𨀙𨋦𨡂𨳛𨵎𨻁𩅖𩒽𩗊𩗱𩭡𩽨𩾼𪃼𪄛]→xī;
+[㮧䖚䡧乌剭呜嗚圬屋巫弙杇歍汙汚污洿烏窏箼螐誈誣诬邬鄔鎢钨鰞鴮𠛆𠞆𡈎𢁢𤣬𥁡𥎮𥟽𦶀𦼇𧆹𧑕𧨆𩝷𪄝𪑱]→wū;
+[㷻㹳㻍䉑䍢䓊䦜䫓䮏吳吴吾呉唔娪无梧毋洖浯無珸璑祦禑芜茣莁蕪蜈蟱譕郚铻鯃鵐鷡鹀鼯𠘻𡷤𢃀𢋹𢓲𣟒𤭑𥕻𥭠𥲐𦥁𦨳𦷽𧳎𨼊𨿏𩒾𩳌𩶭𩻚]→wú;
+[㐅㑄㒇㬳㵲䒉䟼䳇乄五仵伍侮俉倵儛午啎妩娬嫵庑廡忤怃憮捂摀旿橆武潕熓牾玝珷瑦甒碔舞躌鵡鹉𠥢𠯃𠵦𡈞𢑟𢜮𢨂𢩈𢫸𣲘𣺀𤆡𤸼𦌬𧴇𧺴𧽋𨖴𨡡𨶇𩠟𩵱]→wǔ;
+[⺎⺑㐳㡔㽾䃖䎸䑁䛩䜑䦍䨁䳱伆兀务務勿卼坞塢奦婺寤屼岉嵍嵨忢悞悟悮戊扤敄晤杌溩焐熃物痦矹窹粅芴蘁誤误迕逜鋈阢隖雺雾霚霧靰騖骛鶩鹜鼿齀𠒄𠼘𡬫𡯇𡵉𢄓𢗳𢙁𢝴𣨓𣬽𣯎𤵐𥎈𥏒𥒀𥾕𦆞𦎦𦨉𦬂𧈭𧎻𧐙𧰈𨂣𨑥𨧗𨨡𨲬𩄯𩓦𩗽𩝕]→wù;
+[錻]→wu;
+[⻃⻄㓾㕃㕧㗩㗭㘊㚀㛓㛫㛭㜎㜯㪧㬛㮩㯕㰿㱆㱤㲸㴔㴧㶉㺣㾷㿽䁯䂀䏩䐅䐖䒊䖒䖷䙵䛊䛥䭒䳶䶋俙傒僖兮凞卥厀吸唏唽嘻噏夕奚嬆嬉屖嵠嶲巇希徆徯忚怸恓息悉悕惁惜憙扱扸昔晞晰晳曦析桸榽樨橀欷氥汐浠淅渓溪潝烯焁焈焟焬煕熄熈熙熹-熻燨爔牺犀犠犧狶琋瘜皙睎瞦硒磎礂稀穸窸粞糦緆縘繥羲翕翖肸肹膝舾莃菥蒠蜥螅螇蟋蠵西覀觹觽觿譆谿豀豨豯貕赥邜郗鄎酅醯釸錫鏭鑴锡隵雟餏饻鯑鵗鸂鼷𠆱𠔃𠔍𠘕𠜗𠟊𠨚𠩺𠬬𠴭𠶨𠺒𡁱𡏛𡗞𡗳𡘡𡩤𡳚𡻎𢀊𢋼𢑧𢗴𢜣𢡁𢨟𢬾𢹍𣅾𣎮𣟵𣢁𣢂𣢍𣢎𣢑𣤳𣤴𣨗𤃪𤄬𤓔𤓚𤠓𤡡𤢀𤥒𤬕𤬘𤮆𤮙𤲺𤳥𤶈𤶰𤷡𤹊𤺊𥄖𥄛𥈻𥋟𥰝𦐠𦙝𦜱𦞽𦠪𦤈𦩭𦮐𦼗𧀬𧈼𧥤𧯗𧲘𧶖𧹨𧻶𧿝𨀙𨋦𨡂𨳛𨵎𨻁𩅖𩒽𩗊𩗱𩭡𩽨𩾼𪃼𪄛]→xī;
 [㔒㠄㦻㩗㽯㿇䏮䒁䚫䫣习喺媳嶍席椺槢檄漝習蒵蓆薂袭襲覡觋謵趘郋鎴隰霫飁騱騽驨鰼鳛𢙅𣒃𣳬𥺚𦪿𦸚𧋐𧐔𧿅𨛳𨻥𩲁𪄶𪓷𪕯]→xí;
 [䢄喜囍壐屣徙憘暿枲橲歖洗漇玺璽矖禧縰葈葸蓰蟢諰謑蹝躧鈢鉨鉩铣鱚𠉢𠪙𡅕𢊚𢒩𢒲𣯪𤟧𤤱𤨐𦱓𧣩𧺨𨜐𨞘𨮪𩎉𪖥𫍰]→xǐ;
 [㑶㙾㚛㣟㤸㦦㭡㰥㸍䀌䈪䊠䐼䓇䜁䧍䨳䬣䮎䲪䵱係匸卌呬咥嚱墍屃屭忥怬恄慀戏戱戲椞欯滊潟澙熂犔盻矽磶禊稧系細綌繫细绤舃舄蕮虩衋覤赩趇郤釳闟阋隙隟霼餼饩鬩黖𠤴𠦌𠦜𡃢𡘐𡙋𡜧𡝧𡦎𡶯𢤋𢧽𢭁𣚔𣢓𣣉𣤢𣳦𤄎𤌷𤡬𥈜𥋁𥎃𥪦𥮬𥰥𥻥𥿭𦃝𦞝𦷲𧂙𧈅𧈍𧉁𧎵𧚃𧤟𧦁𧧹𧪢𧬈𧬊𧯈𧯊𧱲𧹶𧹽𨐛𨰿𨷘𩊿𩍆𩎥𩛹𩦇𩿛𪅲]→xì;
-[⻄息西]→xi;
 [㔠㰨㰰䠍傄煆疨瞎虲虾蝦谺閕颬鰕𠽫𣢗𤗭𥁆𧇍𧦎𧪕𧯋𨳉𩮂]→xiā;
 [㗇㘡㽠䖎䖖䘥䛅䪗䫗侠俠匣峡峽敮暇柙炠烚狎狭狹珨瑕硖硤碬磍祫筪縀縖翈舝舺蕸赮轄辖遐鍜鎋陜陿霞騢魻鶷黠𠢆𠩘𡈮𢈙𢈤𢑓𢘉𢚌𢝅𢻗𣹱𤙇𤪆𤪍𥯾𥰶𦦕𦵯𦾏𧆥𧔂𧕱𨲑𩉾𩎲𩏓𩐀𩝛𪗾𪘘]→xiá;
 [閜]→xiǎ;
 [㙈㙤㰺丅下乤吓嚇圷夏夓懗梺疜睱罅鎼鏬𡏘𡨄𡺷𢗄𢩹𤟝𥻴𧈄𧪹𧫒𨩽𨻲𨽯𩄗𪄂]→xià;
-[㔾㰹㲔㷿㸝㺤㾾㿌䂅䄳䆎䉳䊱䩂䯭䯹䵌仚佡僊僲先嘕奾嬐屳廯忺憸掀攕暹杴枮氙珗祆秈籼繊纎纖纤苮莶薟褼襳跹蹮躚酰銛鍁铦锨韯韱馦鮮鱻鲜鶱𠏓𠏡𠫄𢒆𢕖𢖎𢫿𢹚𣑹𣔙𣞘𣮾𣰷𤈷𥑻𥟕𥬍𦒜𦧐𦸊𧫹𧱀𧸂𨁅𨇤𨚾𩈖𪄏𪄷]→xiān;
-[㘅㘋㛾㡉㢺㭹㮭㯗㰊㳄㳭㵪䕔䝨䦥䲗伭咸唌啣妶娴娹婱嫌嫺嫻弦憪挦撏涎湺澖甉痫癇癎瞯礥稴絃胘舷藖蚿蛝衔衘誸諴賢贒贤輱醎銜閑闲鷳鷴鷼鹇鹹麙𠓌𠛑𠷢𠿢𡫹𡰲𡿤𢅮𢎙𢐐𢖋𢛆𢮂𣊺𤉌𥲋𥻧𦎵𦑘𦠹𦱁𦽭𧂞𧈁𧼏𨺘𩝈𩤥𩤦𩦂𩱆𪂶𪔩]→xián;
+[㔾㰹㲔㷿㸝㺤㾾㿌䂅䄳䆎䉳䊱䩂䯭䯹䵌仙仚佡僊僲先嘕奾嬐屳廯忺憸掀攕暹杴枮氙珗祆秈籼繊纎纖纤苮莶薟褼襳跹蹮躚酰銛鍁铦锨韯韱馦鮮鱻鲜鶱𠏓𠏡𠫄𢒆𢕖𢖎𢫿𢹚𣑹𣔙𣞘𣮾𣰷𤈷𥑻𥟕𥬍𦒜𦧐𦸊𧫹𧱀𧸂𨁅𨇤𨚾𩈖𪄏𪄷]→xiān;
+[㘅㘋㛾㡉㢺㭹㮭㯗㰊㳄㳭㵪䕔䝨䦥䲗伭咸唌啣妶娴娹婱嫌嫺嫻弦憪挦撏涎湺澖甉痫癇癎瞯礥稴絃胘舷藖蚿蛝衔衘誸諴賢贒贤輱醎銜閑閒闲鷳鷴鷼鹇鹹麙𠓌𠛑𠷢𠿢𡫹𡰲𡿤𢅮𢎙𢐐𢖋𢛆𢮂𣊺𤉌𥲋𥻧𦎵𦑘𦠹𦱁𦽭𧂞𧈁𧼏𨺘𩝈𩤥𩤦𩦂𩱆𪂶𪔩]→xián;
 [㧥㫫㬎㭠㶍㿅䗾䘆䚚䜢䢾䥪䧋冼尟尠崄嶮幰搟攇显櫶毨灦烍燹狝猃獫獮玁禒筅箲藓蘚蚬譣赻跣銑鍌险険險韅顕顯𠠁𡗏𡸃𡾮𢁗𢥌𢷑𣕎𣟲𣭡𤓤𤞤𤼂𥜲𦭶𧕇𧖙𨙡𩏩𩨡𩶤]→xiǎn;
 [㡾㦑㦓㪇㬗㺌㽉䁂䃱䃸䉯䏹䐄䙹䤼䦘䧟䧮䨘䨷䱤䵇䶟伣僩僴县咞哯垷壏姭娊娨宪岘峴憲撊晛橌涀瀗献獻现現県睍硍粯糮絤綫線縣线缐羡羨腺臔臽苋莧蜆誢豏鋧錎限陥陷餡馅麲鼸𠚆𠜎𠯟𡐖𡒓𡞣𢋮𢕭𢖝𢚀𣆕𤁦𤑃𤟅𥓒𥙆𥦶𥰳𥻇𥽏𦋈𦩢𧠒𧻒𧾨𨍒𨏥𨐊𨖱𨘙𨘞𨵬𨸄𩤊𩦹𩧩𪎉𪾢]→xiàn;
-[仙鑦]→xian;
+[鑦]→xian;
 [㐮䬕乡厢啌廂忀楿欀湘瓖相稥箱緗缃膷芗葙薌襄郷鄉鄊鄕鑲镶香驤骧鱜麘𢪷𤉪𤷼𥫖𩑇𩡌𩡠𪂼]→xiāng;
 [㟄䔗䜶佭庠栙瓨祥絴翔詳详跭𡹷𢭎𤝷𤭬𤰅𦍲𦍴𦎈𨀘𩾬]→xiáng;
 [㗽䊑䐟䖮享亯响想晑曏蚃蠁銄響飨餉饗饟饷鮝鯗鱶鲞𠸮𢞡𤍀𥊾𥿧𦕺𩝾𩞥]→xiǎng;
 [㟟䢽䦳䴂像勨向嚮塂姠嶑巷橡珦缿萫蟓衖襐象銗鐌項项鱌𢄵𢛖𢠷𣂝𣅰𣨳𤖽𤩪𥀾𥗵𥣟𦺣𦺨𧖿𧬰𨉽𨖶𨙵𨛜𨧑𨷄𨷿]→xiàng;
-[㕺㚠㩋㪣㲖㹲㺒䌃䎄䨭䬘䴛侾呺哓哮嘐嘵嚻囂婋宯宵庨彇憢揱枭枵梟櫹歊毊消潇瀟灱灲焇猇獢痚痟硝硣穘窙箫簘簫綃绡翛膮萧萷蕭藃虈虓蟂蟏蟰蠨踃逍銷销霄驍骁髇髐魈鴞鴵鷍鸮𠈬𠑪𠹎𡟣𡣾𡯩𡷸𡼚𢓮𢪶𢭦𢸳𣕇𣠎𤑳𤞚𤠖𤡔𤣠𤺃𥆔𦏷𦐺𦟞𧄤𧳍𧵱𨊅𨴹𨶅𩋍𩙚𩙮𩧓𩫂𩫳𩱴𩾒𩾓𩾾𪁎]→xiāo;
+[㕺㚠㩋㪣㲖㹲㺒䌃䎄䨭䬘䴛侾呺哓哮嘐嘵嚣嚻囂婋宯宵庨彇憢揱枭枵梟櫹歊毊消潇瀟灱灲焇猇獢痚痟硝硣穘窙箫簘簫綃绡翛膮萧萷蕭藃虈虓蟂蟏蟰蠨踃逍銷销霄驍骁髇髐魈鴞鴵鷍鸮𠈬𠑪𠹎𡟣𡣾𡯩𡷸𡼚𢓮𢪶𢭦𢸳𣕇𣠎𤑳𤞚𤠖𤡔𤣠𤺃𥆔𦏷𦐺𦟞𧄤𧳍𧵱𨊅𨴹𨶅𩋍𩙚𩙮𩧓𩫂𩫳𩱴𩾒𩾓𩾾𪁎]→xiāo;
 [㚣㬵㮁䒝䟁崤殽洨淆筊訤誵郩𠴳𡦝𡧕𢛘𣏠𣔷𤕢𤷤𥾤𦺔𧍂𨠦]→xiáo;
 [⺌⺍䒕䥵小晓暁曉皛皢筱筿篠謏𡱉𤽳𥔑𥕾𧡼𧢬𧩮𩵖𫍲]→xiǎo;
 [㔅㗛㤊㵿䉰䊥䕧俲傚効咲啸嘋嘨嘯孝效敩斅斆校歗涍熽笑肖詨誟𠏕𠴡𡥍𡦳𢹳𢽾𣂬𣟇𣤡𣱓𣿣𤟞𤣌𤿨𥽁𦢩𦦛𦯪𦱜𧱐𨅋𪊷𪛀]→xiào;
@@ -1297,13 +1275,13 @@
 [苬]→xiú;
 [㱙朽滫潃糔綇𣧬𦈋𪕦]→xiǔ;
 [㗜嗅岫峀溴珛琇璓秀繍繡绣螑袖褎褏銹鏥鏽锈齅𢓵𤚯𧙏𪁮]→xiù;
-[㥠㰭㽳䇓䈝䏏䱬吁嘘噓墟媭嬃幁揟旴晇楈欨歔湑疞盱窢縃繻胥蕦虗虚虛蝑裇訏諝譃谞鑐需須頊须顼驉鬚魆魖𠧰𠾫𢄼𢖳𢨁𢨰𢩕𣅤𣚏𣰃𤚉𤟠𤡣𥈈𥕰𥮪𥳗𦄼𦅏𦈡𦘼𦪡𦰰𦰲𦲰𧆜𧙆𧟬𧪮𨂠𨅑𨞣𨬗𨼋𩂉𩑕𩒇𩒧𩓣𩖕𩾊𪆛𪙫]→xū;
+[㥠㰭㽳䇓䈝䏏䱬吁嘘噓墟媭嬃幁戌揟旴晇楈欨歔湑疞盱窢縃繻胥蕦虗虚虛蝑裇訏諝譃谞鑐需須頊须顼驉鬚魆魖𠧰𠾫𢄼𢖳𢨁𢨰𢩕𣅤𣚏𣰃𤚉𤟠𤡣𥈈𥕰𥮪𥳗𦄼𦅏𦈡𦘼𦪡𦰰𦰲𦲰𧆜𧙆𧟬𧪮𨂠𨅑𨞣𨬗𨼋𩂉𩑕𩒇𩒧𩓣𩖕𩾊𪆛𪙫]→xū;
 [䍱俆徐蒣𣆒𥅺𨌎]→xú;
 [㑔㑯㞰䅡䋶䔓䧁偦冔呴姁暊栩珝盨稰糈許詡许诩鄦醑𡹲𤸀𥚩𦠷𧕼𨋾𨍐𩝔𩠋𩰠]→xǔ;
 [㐨㕛㖅㗵㘧㜅㜿㞊㳚㵰㷦㺷䂆䎉䘏䙒䛙䢕䣱䣴䦗䦽䬄䳳伵侐勖勗卹叙喣垿壻婿序怴恤慉敍敘旭昫朂槒欰殈汿沀洫溆漵潊烅烼煦獝珬盢瞁瞲稸絮続緒緖續绪续聓聟芧蓄藇藚訹賉酗銊魣鱮𠆐𠜄𠷙𠹘𡦁𡱣𣊞𣢊𣨤𣸃𤆞𤇳𤡶𤬱𤭽𤲸𤷇𥄵𥆛𥇏𥇿𥊊𥍟𥎕𥎗𦑍𦕓𦜃𦝳𦯅𧁃𧆡𧊥𧏺𧧓𧶍𧹭𧹴𧼑𨜿𨣦𨴎𨵮𨷔𨹘𨻍𩌮𩌲𩍳𩔴𩔼𩣊𩪉𩽆𪖩𫚈]→xù;
 [蓿]→xu;
 [㓩㝁㦥㩊㻹䁔䆭䚙䚭䳦儇吅喧塇媗宣弲愃愋懁揎昍暄梋煊瑄睻矎禤箮縇翧翾萱萲蓒蕿藼蘐蝖蠉諠諼譞谖軒轩鋗鍹駽鰚𡈣𡬳𢏧𢙂𢰊𤟿𦐽𦑙𧑩𧤎𧾎𩋱𩕖𩕪𩤡]→xuān;
-[㔯㘣㳬㹡䁢䗠䮄䲂䲻嫙悬懸旋暶檈漩玄玆玹琁璇璿痃蜁𠗻𠣖𠥞𡈴𡾥𣟳𧉎𧐗𧔤𧜽𧟨𩙢]→xuán;
+[㔯㘣㳬㹡䁢䗠䮄䲂䲻嫙悬懸旋暶檈漩玄玹琁璇璿痃蜁𠗻𠣖𠥞𡈴𡾥𣟳𧉎𧐗𧔤𧜽𧟨𩙢]→xuán;
 [㔵㧋㾌䠣咺晅烜癣癬选選顈𢈋𣉖𣎓𥥾𥶷𦌔𧡚𧡢𩘒]→xuǎn;
 [㧦㯀㳙䀏䃠䍗䍻䝮䧎䩙䩰怰昡楥楦泫渲炫琄眩眴碹絢縼繏绚蔙衒袨讂贙鉉鏇铉镟鞙颴𠵷𢂄𢳄𤂿𥌭𦈝𦛔𧾆𨁁𨊼𨹆𩃚𩉥𩋢𩋫𩑹𪍧]→xuàn;
 [㗾㻡削疶蒆薛辥辪靴鞾𢪎𥄒𪃅]→xuē;
@@ -1311,15 +1289,14 @@
 [䨮樰膤艝轌雪鱈鳕]→xuě;
 [㕰㞽䆝䆷䎀䒸䛎䤕䦑䫼䬂䭥吷坹桖瀥狘血謔谑趐𣧌𣧡𣧵𣪨𣺭𤀰𥄎𥄴𥅧𦐍𦰾𧔗𧮞𨑣𨭁𩌊𩖱𩖶]→xuè;
 [䗼䠝䵫勋勛勲勳嚑坃埙塤壎壦曛焄熏燻爋獯矄窨纁臐蔒薫薰蘍醺駨𡑎𡺕𤑕𦘶𧰣𩪱𫄸]→xūn;
-[㖊㜄㡄㨚㰬㵌㽦䋸䖲䘩䙉偱噚寻尋峋巡廵循恂揗攳旬杊栒桪樳毥洵浔潯灥燅燖珣璕畃紃荀蟳詢询鄩馴驯鱏鱘鲟𣌨𣖼𤃺𤛧𤿟𥒘𥙣𥳍𥾡𦅀𦅑𦠅𦳣𧾝𧾠𧾩𨀴𨼔𩖰𪀠𪀽]→xún;
-[㢲䛜䞊䭀伨侚卂噀奞巺巽徇愻殉殾汛潠狥稄蕈訊訙讯賐迅迿逊遜鑂顨𠊫𠹀𡿼𢏤𣹯𦫯𧥿𧸩𨺮𩊻𩠇𩷰𩾄𩾧𪇑]→xùn;
-[訓训]→xun;
-[㝞㳌㾎䃁䆘丫压吖圧垭埡壓孲庘押枒桠椏錏鐚铔雅鴉鴨鵶鸦鸭𠋗𠜲𣏎𤵭𥇠𨨙𨸺𩭯𩿔]→yā;
+[㖊㜄㡄㨚㰬㵌㽦䋸䖲䘩䙉偱噚寻尋峋巡廵循恂揗攳旬杊栒桪樳毥洵浔潯灥燅燖珣璕畃紃荀荨蟳詢询鄩馴驯鱏鱘鲟𣌨𣖼𤃺𤛧𤿟𥒘𥙣𥳍𥾡𦅀𦅑𦠅𦳣𧾝𧾠𧾩𨀴𨼔𩖰𪀠𪀽]→xún;
+[㢲䛜䞊䭀伨侚卂噀奞巺巽徇愻殉殾汛潠狥稄蕈訊訓訙训讯賐迅迿逊遜鑂顨𠊫𠹀𡿼𢏤𣹯𦫯𧥿𧸩𨺮𩊻𩠇𩷰𩾄𩾧𪇑]→xùn;
+[㝞㳌㾎䃁䆘丫压吖圧垭埡壓孲庘押枒桠椏錏鐚铔鴉鴨鵶鸦鸭𠋗𠜲𣏎𤵭𥇠𨨙𨸺𩭯𩿔]→yā;
 [㧎䄰伢厑厓堐岈崕崖涯漄牙猚玡琊瑘睚笌芽蚜衙齖𤘅𤘆𧓪𧬬𨖭𩃐𪗹𪘲]→yá;
-[㿿䪵厊哑唖啞庌痖瘂蕥𤴓𤹎𧧝𨁶]→yǎ;
+[㿿䪵厊哑唖啞庌痖瘂蕥雅𤴓𤹎𧧝𨁶]→yǎ;
 [㰳䅉䝟䢝䦪䰲亚亜亞俹劜圔圠娅婭挜掗揠氩氬犽猰砑稏窫聐襾訝讶軋轧迓齾𠄮𠮜𠵣𡇼𡴭𡶦𡷻𡸗𡹄𢛄𢛟𢮊𣉩𥏝𥐕𥒧𦉟𦉧𦜖𧈝𨓴𩨠𩮝𪆰]→yà;
 [⺂⺄乛呀]→ya;
-[㖶㤿㮒㸶䅧䊙䑍䗎䞛偣剦嫣嬮崦嶖恹懕懨樮殷淊淹湮漹烟焉焑煙珚硽篶胭臙菸鄢醃閹阉黫𠛭𠝢𢤍𣩙𤎄𤟟𤡖𥷀𦎣𦏥𦛞𦝪𧹬𧺅𨣻𨽑𩈯𩣲]→yān;
+[㖶㤿㮒㸶䅧䊙䑍䗎䞛偣剦嫣嬮崦嶖恹懕懨樮淊淹湮漹烟焉焑煙珚硽篶胭腌臙菸鄢醃閹阉黫𠛭𠝢𢤍𣩙𤎄𤟟𤡖𥷀𦎣𦏥𦛞𦝪𧹬𧺅𨣻𨽑𩈯𩣲]→yān;
 [⻈㗴㘖㘙㝚㫟㳂㶄㺂㿕㿼䀋䀽䂴䇾䉷䓂䖗䗡䢥䦲䫡严厳啱嚴塩壛壧妍姸娫娮孍岩嵒嵓巌巖巗延揅昖楌檐櫩欕沿炎狿琂盐研硏碞礹筵簷綖芫莚蔅虤蜒言訁訮詽讠郔閆閻闫阎顏顔颜鹽麣黬𠘥𠰖𡣽𢉘𢌨𣡞𣡶𣥡𣭻𣼞𤅸𤖝𤡥𤢋𤯐𤲩𥕼𥤟𥴿𥶿𦌚𦛣𦫤𧇱𧍢𧎘𧬌𧴣𧻃𨡄𨤎𨷽𨸮𩩄𩩴𪂈]→yán;
 [㕣㚧㢂㫃㭺䁙䄋䌪䍾䎦䗺䣍䤷䲓䶮乵俨偃儼兖兗匽厣厴噞夵奄嵃巘巚弇愝戭扊抁掩揜曮棪椼檿沇渰渷演琰甗眼縯罨萒蝘衍裺褗躽遃郾酓隒顩魇魘鰋鶠黡黤黭黶鼴鼹齞齴龑𠆲𠍛𠻤𡙶𡹶𢅠𢇘𢈂𢯼𢸴𢾑𣃧𣃳𣄉𣄑𣝎𣼠𤂠𤗎𤟇𤫣𤯇𤸹𥀬𥃿𥍻𥜒𥣘𥤴𥯃𦁙𦏹𦖈𦧡𧊔𧞣𧠦𧥜𧽉𧽞𧾤𨀅𨁹𨂪𨃰𨒄𨟹𨠭𨺥𩗷𩻖𪒝𪒠𪗙𪗤]→yǎn;
 [㛪㢛㦔㬫㰽㷔㷳㷼䂩䛳䜩䞁䢭䨄䳛䳡䳺䴏䶫偐傿厌厭咽唁喭嚥堰墕妟姲嬊嬿宴彥彦敥晏暥曕曣椻溎滟灎灔灧灩烻焔焰焱熖燄燕爓牪猒砚硯艳艶艷葕覎觃觾諺讌讞谚谳豓豔贋贗赝軅酀酽醶醼釅隁雁餍饜騐験騴驗驠验鬳鳫鴈鴳鷃鷰𡚇𢇈𢔂𢜰𣃾𣄝𣡕𤅊𤜵𤬝𦁏𦑎𦖧𧩅𨁍𨡎𨡣𨪶𨴣𨶁𨻂𨻳𩃀𩒖𩜽𩩶𩪴𩳢𩸞𪁡𪑈𪙊]→yàn;
@@ -1332,52 +1309,50 @@
 [㑸㑾㨱䂚䆙䋂䌊䌛䔄䖴䚺䚻䠛䢣䬙倄傜嗂垚堯姚媱尧尭峣嶢嶤徭愮揺搖摇摿暚榣滧烑爻猺珧瑤瑶磘窑窯窰繇肴蘨謠謡谣軺轺遙遥邎銚鎐顤颻飖餆餚鰩鳐𠌠𠏈𠑐𡔜𡝛𡩸𡺯𢈆𢊙𢋇𢑈𣣳𤚭𤫺𤬔𤬖𦆸𦾺𦾾𧄎𧤮𧽎𨍳𨘔𨹋𩋃𩥣𩲻𩿕]→yáo;
 [㝔㟱㢓㫏㫐㴭㹓䁏䁘䆗䆞䯚䴠䶧仸偠咬婹宎岆崾抭杳柼榚溔狕眑窅窈舀苭蓔闄騕鴢鷕齩𠢩𡛙𡨇𢂊𥤣𥦖𦥝𦦌𧠽𨱧𩢒𩨴𩩼𩬗𪐯]→yǎo;
 [㔽㞁㵸㿑㿢曜熎燿獟矅穾窔筄纅耀艞药葯薬藥袎要覞詏讑鑰钥靿鷂鹞鼼𠍩𠟋𠹑𡶂𢅹𢝍𢺇𤂼𤄶𤒝𤾫𥁒𥃺𥌺𥤹𥪯𥬓𦇬𦡱𦤋𧇠𧢢𩑴𩯛𩳔𪖐]→yào;
-[䭇倻噎掖暍椰潱耶蠮𧏽𧒐𨶮𨸌𩜺]→yē;
-[㡋㱌䓉䥺捓揶擨釾鋣鎁铘𣚋𣩯𤑷𥯘𦕆𦰳𨈺𩸾]→yé;
+[䭇倻噎掖暍椰潱蠮𧏽𧒐𨶮𨸌𩜺]→yē;
+[㡋㱌䓉䥺捓揶擨爷爺耶釾鋣鎁铘𣚋𣩯𤑷𥯘𦕆𦰳𨈺𩸾]→yé;
 [㙒也冶吔嘢埜壄漜野𠥇𡑀𢀘𤝉𧐓]→yě;
-[⻚㖡㗼㥷㩎㪑㱉㸣䁆䈎䊦䎨䢡䤳䤶䥟䥡䧨䭎䭟䱒䲜业亱僷叶啘嚈堨墷夜嶪嶫抴拽捙擛擪擫晔曄曅曗曳曵枼枽楪業歋殗洂液澲烨燁爗璍皣瞱瞸礏腋葉謁谒邺鄓鄴鍱鎑鐷靥靨頁页餣饁馌驜鵺鸈𠀸𠄅𠟪𠱝𡀽𡁁𡛌𡛽𡽣𢉥𢢜𢪧𢱴𣎩𣐂𣚕𣩫𣰛𤝇𤝱𤳪𥌅𥠍𥮧𦀕𦂡𦠜𦤪𧎭𧔦𧗖𨂒𨉅𨼥𨽀𩉂𩐱𩑃𩘏𩱝𩼋𩼴𪋫𪍅𪑦𪒲]→yè;
-[亪爷爺]→ye;
+[⻚㖡㗼㥷㩎㪑㱉㸣䁆䈎䊦䎨䢡䤳䤶䥟䥡䧨䭎䭟䱒䲜业亱僷叶啘嚈堨墷夜嶪嶫抴捙擛擪擫晔曄曅曗曳曵枼枽楪業歋殗洂液澲烨燁爗璍皣瞱瞸礏腋葉謁谒邺鄓鄴鍱鎑鐷靥靨頁页餣饁馌驜鵺鸈𠀸𠄅𠟪𠱝𡀽𡁁𡛌𡛽𡽣𢉥𢢜𢪧𢱴𣎩𣐂𣚕𣩫𣰛𤝇𤝱𤳪𥌅𥠍𥮧𦀕𦂡𦠜𦤪𧎭𧔦𧗖𨂒𨉅𨼥𨽀𩉂𩐱𩑃𩘏𩱝𩼋𩼴𪋫𪍅𪑦𪒲]→yè;
+[亪]→ye;
 [⻂㙠㛄㥋㳖㾨䃜䉗䒾䔱䚷䧇䪰䫑一乊伊依医吚咿噫壱壹夁嫛嬄弌悘揖檹欹毉洢渏漪猗瑿畩祎禕稦繄蛜衣衤譩辷郼醫銥铱鷖鹥黟黳𠰄𠲔𠲖𠿣𡄵𡜬𢊘𢣉𢨮𣐿𣘦𣢷𧉅𧜤𧫦𧮒𩕲𩥯𩮵𪁚𪈨]→yī;
-[㐌㚦㝖㞔㥴㦾㰘㹫㺿㼢䄬䇵䔟䞅䣡䧅䩟䬁䬮䮊䱌䲑䴊乁仪侇儀冝匜咦圯夷姨媐宐宧寲峓嶬嶷巸弬彛-彞怡恞扅拸暆柂栘桋椬椸沂沶熪狋珆瓵疑痍眙移箷簃籎羠耛胰萓蛦螔衪袘觺訑詑詒誃謻讉诒貤貽贻跠迆迤迻遗遺鏔頉頤頥顊颐飴饴鸃𠄱𠅌𠈶𠍫𠏩𠐀𠗺𠛃𠜁𠤕𠤗𠤘𠩗𠪗𠲻𠼪𡬓𡱐𡷪𡻣𢂒𢓡𢕷𢖅𢞉𢩼𢱁𣐓𣐵𣕁𣙛𣢭𣸘𤆾𤇴𤈙𤖪𤘊𤝻𥃸𥄻𥄿𥌟𥙁𥙇𥫃𥹋𦚟𦟧𦡫𧓗𧡇𧣟𧣬𧦧𧳁𧷅𨛯𨜽𨠑𨠶𨣬𨳷𩓧𩔦𩖹𩖾𩗑𩚇𩛮𩤒𩸨𩼨𪀓𪐔𪘬𫍟]→yí;
+[㐌㚦㝖㞔㥴㦾㰘㹫㺿㼢䄬䇵䔟䞅䣡䧅䩟䬁䬮䮊䱌䲑䴊乁仪侇儀冝匜咦圯夷姨媐宐宜宧寲峓嶬嶷巸弬彛-彞怡恞扅拸暆柂栘桋椬椸沂沶熪狋珆瓵疑痍眙移箷簃籎羠耛胰萓蛦螔衪袘觺訑詑詒誃謻讉诒貤貽贻跠迆迤迻遗遺鏔頉頤頥顊颐飴饴鸃𠄱𠅌𠈶𠍫𠏩𠐀𠗺𠛃𠜁𠤕𠤗𠤘𠩗𠪗𠲻𠼪𡬓𡱐𡷪𡻣𢂒𢓡𢕷𢖅𢞉𢩼𢱁𣐓𣐵𣕁𣙛𣢭𣸘𤆾𤇴𤈙𤖪𤘊𤝻𥃸𥄻𥄿𥌟𥙁𥙇𥫃𥹋𦚟𦟧𦡫𧓗𧡇𧣟𧣬𧦧𧳁𧷅𨛯𨜽𨠑𨠶𨣬𨳷𩓧𩔦𩖹𩖾𩗑𩚇𩛮𩤒𩸨𩼨𪀓𪐔𪘬𫍟]→yí;
 [㕈㠖㠯㫊㰝㰻䉝䝝䧧䭲䰙乙以佁倚偯崺已庡扆攺敼旑旖椅檥矣礒笖舣艤苡苢蚁螘蟻裿踦輢轙逘酏釔鈘鉯钇顗鳦齮𠮙𠯋𡼎𢙇𢦕𢷔𤝳𥏜𥑴𥫜𥰧𦮸𧔮𩛆𩠂𩡣𩾠𪐣𪘃𪙴]→yǐ;
 [㐹㑊㑜㑥㓷㔴㖂㘁㘈㙪㙯㚤㛕㛳㜋㜒㝣㡫㡼㢞㣇㣻㦉㦤㱅㱞㱲㲼㳑㴁㴒㵝㵩㶠㹭㽈䄁䄩䄿䆿䇩䇼䉨䋚䋵䌻䎈䓃䓈䓹䔬䕍䖁䖊䖌䗑䗟䗷䘝䘸䝘䝯䢃䣧䦴䬥䭂䭞䭿䯆䰯䴬䵝乂义亄亦亿伇伿佚佾俋億兿刈劓劮勚勩匇呓呭呹唈囈圛坄垼埶埸墿奕嫕嬑嬟寱屹峄嶧帟帠幆廙异弈弋役忆怈怿悒悥意憶懌懿抑挹掜撎敡斁易晹曀曎杙枍枻栧栺棭榏槸檍欥欭歝殔殪殹毅泆浂浥浳湙溢潩澺瀷炈焲熠熤熼燚燡燱獈玴異疫痬瘗瘞瘱癔益睪瞖硛秇穓竩縊繶繹绎缢羛義羿翊翌翳翼耴肄肊膉臆艗艺芅苅萟蓺薏藙藝蘙虉蛡蜴螠衵袣裔裛褹襼訲訳詍詣誼譯議讛议译诣谊豙豛豷貖賹贀跇軼轶逸邑醳醷釴鈠鎰鐿镒镱陭隿霬靾饐駅驛驿骮鮨鯣鶂鶃鶍鷁鷊鷧鷾鹝鹢黓齸𠂆𠍳𠓋𠚮𠡔𠡝𠥦𠨾𠩫𠲚𠲺𠶷𠽜𡄻𡉛𡊁𡊶𡍡𡥁𡾾𢀁𢂗𢂼𢄅𢇙𢇚𢇸𢈶𢍰𢎀𢎃𢎉𢏗𢓀𢖫𢖴𢖺𢗎𢘽𢡃𢨳𢩮𣎅𣚘𣡊𣤪𣦌𣧄𣨟𣫙𣶫𣷩𣿉𤑹𤣨𤣮𤤺𤥿𤧕𤬩𤴧𤶛𤷅𤸸𤻂𤼌𥃠𥅓𥍴𥒵𥘒𥘠𥜃𥜥𥟘𥡪𥥌𥥴𥩖𥫝𥱃𥸊𥾐𥿹𦌩𦎝𦏸𦓻𦔜𦔥𦘳𦙨𦠉𦥱𦨇𦭥𦶂𧃟𧅖𧆦𧈻𧊣𧊤𧋏𧑌𧙡𧢂𧬇𧱊𧱏𧷥𧺎𧺝𧾰𨋯𨜶𨣠𨦯𨱁𨹝𨻊𨻏𨽹𩂒𩂹𩈭𩋌𩍖𩎭𩎷𩘧𩚂𩟉𩣞𩧭𩪟𩪣𩳇𩴜𩴮𩷍𩷘𩾘𩾢𪀕𪁛𪎈𪐘𪒕𪕶𪗷𫍙]→yì;
-[宜]→yi;
-[㧢㶏䄄䓰䜾䤃侌凐喑噾囙因垔堙姻婣愔慇栶歅氤洇溵瘖禋秵筃絪緸茵荫蔭裀諲銦铟闉阥阴陰陻隂霒霠鞇音韾駰骃𠖟𡇂𡈲𡋪𡖣𢉩𣱜𣸊𤝎𦈑𧊭𩃬𫡑]→yīn;
+[㧢㶏䄄䓰䜾䤃侌凐喑噾囙因垔堙姻婣愔慇栶歅殷氤洇溵瘖禋秵筃絪緸茵荫蔭裀諲銦铟闉阥阴陰陻隂霒霠鞇音韾駰骃𠖟𡇂𡈲𡋪𡖣𢉩𣱜𣸊𤝎𦈑𧊭𩃬𫡑]→yīn;
 [㐺㕂㖗㙬㝙㞤㸒㹜㹞䓄䕾䖐䖜䪩䴦乑冘吟噖嚚圁垠夤婬寅峾崟崯斦檭殥泿淫滛烎犾狺珢璌碒苂荶蔩蟫訔訚訡誾鄞鈝銀银霪鷣齗龂𠪚𡐔𡓓𡓿𡸛𢂨𢓕𢝯𣓆𣘴𣽮𤷏𥤷𥮍𦟘𧦸𧩬𨓮𨛊𨟏𨦆𩂢𪘎𪙾𪛊]→yín;
 [⺃㐆㥯㦩㧈㱃䇙䌥䒡䨸乚吲尹嶾廴引朄檃櫽淾濥濦瘾癮磤蘟蚓螾讔赺趛輑鈏隐隠隱靷飮飲饮𠃊𠽨𡼽𢋻𢓙𢛦𣔸𤂹𤻘𥖵𥬜𦈠𦾻𨈧𨏈𨐐𨒦𨡢𩖄𩚕𪙤]→yǐn;
 [㒚㡥㣧㥼㪦㴈䕃䚿䡛䲟印垽堷廕慭憖憗懚檼洕湚猌癊胤茚蒑酳鮣𡩘𢌲𢪪𢳃𢷍𣦫𣱐𤢦𤯸𤵯𦜲𦝴𧥸𧦹𨋙𨟴𨢂𩂥𩐞𩬵𪔰𪔽]→yìn;
 [粌]→yin;
 [㡕䁐䓨䣐䦫䧹䪯䴍偀啨嘤嚶婴媖嫈嬰孆孾应応愥應撄攖朠桜樱櫻渶煐珱瑛璎瓔甇甖碤礯緓纓绬缨罂罃罌膺英莺蘡蝧蠳褮譍譻賏軈鍈鑍锳霙韺鴬鶑鶧鶯鷪鷹鸎鸚鹦鹰𠠜𠮳𠸄𡎘𢄋𤜉𤣎𤭫𥌽𥌾𥍼𥐑𦔃𦦿𧓀𧕄𧢛𧮆𧯀𨍞𨟙𨵛𩄪𩹅]→yīng;
-[㨕㵬㶈㹚㿘䁝䃷䊔䑉䕦䤰僌営塋嬴攍楹櫿溁溋滢潆濙濚濴瀅瀛瀠瀯瀴灐灜熒營瑩盁盈籝籯縈茔荧莹萤-萦萾蓥藀蛍蝿螢覮謍贏赢迎鎣𡃅𡺡𢥏𣲜𤟣𤹜𦖽𦝚𧅋𧕍𧭓𨜏𩸥𩻷]→yíng;
+[㨕㵬㶈㹚㿘䁝䃷䊔䑉䕦䤰僌営塋嬴攍楹櫿溁溋滢潆濙濚濴瀅瀛瀠瀯瀴灐灜熒營瑩盁盈籝籯縈茔荧莹萤-萦萾蓥藀蛍蝇蝿螢蠅覮謍贏赢迎鎣𡃅𡺡𢥏𣲜𤟣𤹜𦖽𦝚𧅋𧕍𧭓𨜏𩸥𩻷]→yíng;
 [㢍㲟㹵䀴䚆䨍䬬䭊䭗䭘巊廮影摬梬浧潁瘿癭矨穎郢鐛頴颍颕颖𠝟𡂚𣟤𣤵𤁽𤌌𥏎𦡺𦢆𨠸𩖍𩘑𩳍𪊵]→yǐng;
 [㑞䙬䤝䵴噟媵映暎硬膡鞕鱦𠊶𡀘𡁊𡄖𢣙𣋋𤇾𤹥𥚿𦩩𨪄𩋹]→yìng;
-[蝇蠅]→ying;
 [哟唷喲]→yō;
 [㐯㜉㟾㴩㻾㽫䗸䧡佣傭嗈噰墉壅嫞庸廱慵拥擁槦滽澭灉牅痈癕癰臃邕郺鄘鏞镛雍雝饔鱅鳙鷛𠆌𢀍𢢓𢧳𣋿𤛑𥑿𥧱𦃽𦤘𧝸𧴄𧴗𩍓𩟀𩟷𪄉𪇛𪪝]→yōng;
 [㝘䗤喁揘顒颙鰫𧲤𧺸𨦡𩔔𩤛𪅟]→yóng;
 [㙲㦷㴄㷏䞻俑傛勇勈咏埇塎嵱彮怺恿悀惥愑愹慂柡栐永泳涌湧甬硧禜蛹詠踊踴鯒鲬𠳀𠹍𣏀𦨤𦨬𧖇𧗴𧻹𨓨𨤂𨴭𩆄𩜳]→yǒng;
 [㞲㶲用砽苚醟𡵜𥁎𥥝𧙇𨶽𩬮]→yòng;
 [㗀㱊㳊㴗䥳优優呦嚘幽忧怮悠憂攸櫌泑滺瀀纋耰逌鄾麀𠘳𠨦𠮫𡺒𡺖𢆶𢋣𢿚𣁨𤄘𤣙𥣯𥽟𦎓𧀥𧍘𩘈𩤹𩽇]→yōu;
-[㒡㕱㘥㚭㛜㫍㳺㽕㾞䍃䑻䖻䚃䢊䢟偤尢尤峳怣斿柚楢櫾沋油浟游犹猶猷由疣秞肬莜莸蕕蚰蝣訧輏輶逰遊邮郵鈾铀駀魷鮋鱿鲉𠧠𠧴𡇀𡈙𡈰𡈵𡋧𡯙𢓿𢖟𢟅𣏞𣓐𣧗𤘜𤤧𤸈𥯞𥴕𦑸𦥣𦳧𦳷𦵵𦷿𦸙𧡹𧰰𧳫𨑫𨗰𨘁𨘵𨙂𨛕𨸙𩗚𩘓𩥘𩹊𩿬]→yóu;
-[㮋㰶㶭䅎䒴䬀䱂䳑丣卣庮懮有栯梄槱湵牖牗禉羐羑聈脜苃莠蜏酉銪铕黝𠖋𠢢𡊧𢪥𣅺𣢄𣢜𣣜𣣸𣤎𣧥𣸠𣿤𤍕𤪎𤱎𥜚𥝘𦏇𦩲𧆕𧠶𨡴]→yǒu;
-[⺀㓜㕗㤑㹨㺠䀁䆜䛻䞥亴佑侑又右哊唀囿姷孧宥峟幼牰狖祐糿蚴誘诱貁迶酭釉鼬𡜳𡯉𢈓𣅄𣓛𤤬𤴨𥙾𦳩𧅲𧆘𩑣𩜷𩲎𩴑𩴙]→yòu;
-[友蒏]→you;
+[㒡㕱㘥㚭㛜㫍㳺㽕㾞䍃䑻䖻䚃䢊䢟偤尢尤峳怣斿楢櫾沋油浟游犹猶猷由疣秞肬莜莸蕕蚰蝣訧輏輶逰遊邮郵鈾铀駀魷鮋鱿鲉𠧠𠧴𡇀𡈙𡈰𡈵𡋧𡯙𢓿𢖟𢟅𣏞𣓐𣧗𤘜𤤧𤸈𥯞𥴕𦑸𦥣𦳧𦳷𦵵𦷿𦸙𧡹𧰰𧳫𨑫𨗰𨘁𨘵𨙂𨛕𨸙𩗚𩘓𩥘𩹊𩿬]→yóu;
+[㮋㰶㶭䅎䒴䬀䱂䳑丣卣友庮懮有栯梄槱湵牖牗禉羐羑聈脜苃莠蜏酉銪铕黝𠖋𠢢𡊧𢪥𣅺𣢄𣢜𣣜𣣸𣤎𣧥𣸠𣿤𤍕𤪎𤱎𥜚𥝘𦏇𦩲𧆕𧠶𨡴]→yǒu;
+[⺀㓜㕗㤑㹨㺠䀁䆜䛻䞥亴佑侑又右哊唀囿姷孧宥峟幼柚牰狖祐糿蚴誘诱貁迶酭釉鼬𡜳𡯉𢈓𣅄𣓛𤤬𤴨𥙾𦳩𧅲𧆘𩑣𩜷𩲎𩴑𩴙]→yòu;
+[蒏]→you;
 [㝼㰲䆰䣿䩽唹扜淤瘀盓穻箊紆纡虶込迂迃陓𤕘𤥽𧈯𨖛𩂧]→yū;
-[⻥㚥㤤㥚㥥㪀㬂㬰㳛㶛㷒㺞㺮㻀㼶䁩䂛䃋䄏䄨䍂䏸䐳䔡䗨䜽䢓䩒䬔䰻䱷䲣乻于亐伃余兪堣堬妤娛娯娱嬩崳嵎嵛愉愚扵揄旕旟杅桙楡楰榆欤歈歟歶渔渝湡漁澞牏狳玗玙瑜璵畭盂睮硢禺窬竽籅羭腴臾舁舆艅茰萮萸蕍蘛虞蝓螸衧褕覦觎諛謣谀踰輿逾邘酑鍝隅雓雩餘馀騟骬髃魚鮽鯲鰅鱼鷠鸆𠎳𠧇𠸹𡁎𡂊𡑾𢊧𢋅𢎻𢔢𢹏𢾄𣄊𣟰𣢒𤚎𤜹𤧙𥔢𥝨𥯮𥷔𦈣𦋯𦏻𦦫𦩞𦱃𧃠𧊠𧍪𧙶𧞏𧰇𧾚𨊱𨜖𨨶𨰸𨵦𨶢𨾌𩟳𩡃𩢶𩤺𩥭𩦡𩦢𩨈𩨗𩨙𩺰𪃍𪃎𪇝𪉐𪊻𪑝]→yú;
+[⻥㚥㤤㥚㥥㪀㬂㬰㳛㶛㷒㺞㺮㻀㼶䁩䂛䃋䄏䄨䍂䏸䐳䔡䗨䜽䢓䩒䬔䰻䱷䲣乻于亐伃余俞兪堣堬妤娛娯娱嬩崳嵎嵛愉愚扵揄於旕旟杅桙楡楰榆欤歈歟歶渔渝湡漁澞牏狳玗玙瑜璵畭盂睮硢禺窬竽籅羭腴臾舁舆艅茰萮萸蕍蘛虞蝓螸衧褕覦觎諛謣谀踰輿逾邘酑鍝隅雓雩餘馀騟骬髃魚鮽鯲鰅鱼鷠鸆𠎳𠧇𠸹𡁎𡂊𡑾𢊧𢋅𢎻𢔢𢹏𢾄𣄊𣟰𣢒𤚎𤜹𤧙𥔢𥝨𥯮𥷔𦈣𦋯𦏻𦦫𦩞𦱃𧃠𧊠𧍪𧙶𧞏𧰇𧾚𨊱𨜖𨨶𨰸𨵦𨶢𨾌𩟳𩡃𩢶𩤺𩥭𩦡𩦢𩨈𩨗𩨙𩺰𪃍𪃎𪇝𪉐𪊻𪑝]→yú;
 [⻗㑨㒁㒜㔱㙑㝢㠘㡰㣃㦛㲾㺄㼌䣁䥏䨞与予伛俁俣偊傴匬噳圄圉宇寙屿峿嶼庾懙挧敔斔斞楀瑀瘐祤禹窳羽與萭蘌語语貐鄅鋙雨頨麌齬龉𠋟𠱐𡷎𡻢𢮁𣢦𣨝𤗃𤹪𥒾𥛩𦀡𦥉𦦲𦭳𦳅𧱬𨝈𨵉𩃯𩩑𩩘𩵎𪂕𪋬]→yǔ;
-[⺺⺻㚜㠨㤢㥔㦽㧒㽣䁌䂊䈅䉛䋖䋭䍞䖇䘘䘱䘻䛕䜡䞝䢖䢩䤋䨒䫻䮇䮙䴁䵥俼儥喅喐喩喻噊圫域堉妪媀嫗寓峪嶎庽彧御忬悆惐愈慾戫昱棛棜棫櫲欎欝欲毓浴淢淯滪潏澦灪焴煜熨燏燠爩狱獄玉琙瘉癒矞砡硲礇礖礜禦秗稢稶穥篽籞籲緎繘罭聿肀育艈芋芌茟蒮蓣蓹蕷薁蜟蜮袬裕誉諭譽谕豫軉輍轝逳遇遹郁醧鈺銉鋊錥鐭钰閾阈霱預预飫饇饫馭驈驭鬰鬱鬻魊鱊鳿鴥鴧鴪鵒鷸鸒鹆鹬龥𠀛𠊏𠏚𠕦𠫣𠽵𡇺𡈨𡋬𡒃𡒊𡔴𡨣𡨿𡬊𡬞𡿥𡿯𢌻𢒰𢔥𢔬𢔴𢖡𢛨𢡎𢯮𢺴𣋉𣍛𣕃𣝑𣡉𣣎𣩺𤀝𤞞𤳕𤸒𥆉𥉑𥎐𥘄𥙿𥝍𥷞𥸤𥸪𥹔𦈸𦋢𦎘𦏜𦒑𦡭𦦩𦱀𦱂𧉣𧐄𧑐𧗪𧫊𧶠𧼫𧿷𨄯𨉗𨗝𨞓𨩬𨪎𨮔𩈕𩊇𩋉𩋤𩎹𩏟𩏴𩘤𩘳𩘻𩚄𩛪𩛭𩝗𩟑𩰪𩱌𩱱𩲾𪁀𪂉𪂵𪋉𪋮𪑆𪑌𪓊]→yù;
+[⺺⺻㚜㠨㤢㥔㦽㧒㽣䁌䂊䈅䉛䋖䋭䍞䖇䘘䘱䘻䛕䜡䞝䢖䢩䤋䨒䫻䮇䮙䴁䵥俼儥喅喐喩喻噊圫域堉妪媀嫗寓峪嶎庽彧御忬悆惐愈慾戫昱棛棜棫櫲欎欝欲毓浴淢淯滪潏澦灪焴煜燏燠爩狱獄玉琙瘉癒矞砡硲礇礖礜禦秗稢稶穥篽籞籲緎繘罭聿肀育艈芋芌茟蒮蓣蓹蕷薁蜟蜮袬裕誉諭譽谕豫軉輍轝逳遇遹郁醧鈺銉鋊錥鐭钰閾阈霱預预飫饇饫馭驈驭鬰鬱鬻魊鱊鳿鴥鴧鴪鵒鷸鸒鹆鹬龥𠀛𠊏𠏚𠕦𠫣𠽵𡇺𡈨𡋬𡒃𡒊𡔴𡨣𡨿𡬊𡬞𡿥𡿯𢌻𢒰𢔥𢔬𢔴𢖡𢛨𢡎𢯮𢺴𣋉𣍛𣕃𣝑𣡉𣣎𣩺𤀝𤞞𤳕𤸒𥆉𥉑𥎐𥘄𥙿𥝍𥷞𥸤𥸪𥹔𦈸𦋢𦎘𦏜𦒑𦡭𦦩𦱀𦱂𧉣𧐄𧑐𧗪𧫊𧶠𧼫𧿷𨄯𨉗𨗝𨞓𨩬𨪎𨮔𩈕𩊇𩋉𩋤𩎹𩏟𩏴𩘤𩘳𩘻𩚄𩛪𩛭𩝗𩟑𩰪𩱌𩱱𩲾𪁀𪂉𪂵𪋉𪋮𪑆𪑌𪓊]→yù;
 [澚]→yu;
 [㠾㾓䡝䥉䨊冤剈囦嬽寃悁惌棩淵渁渆渊渕灁眢箢葾蒬蜎蜵裷駌鳶鴛鵷鸢鸳鹓鼘鼝𡈒𡢊𡣬𡷡𢍈𢏮𢱽𣹠𥿎𨀮𨓯𨖳𩛟𩝸𪀈𪔗𪔙]→yuān;
-[㟶㥳㹉䖠䦾䬧䱲䲮䳒䳣元円原厡厵员員园圆圎園圓垣塬媛媴嫄援杬榞榬橼櫞沅湲源溒爰猨猿獂笎緣縁缘羱茒蒝薗蚖蝝蝯螈袁謜貟贠轅辕邍邧酛鈨鎱騵魭鶢鶰黿鼋𠝳𠩠𢆀𢗯𢷻𤬌𦍼𦿂𧉗𧔞𧳭𧻚𨕗𨸘𨻣𩉯𩍻𩰵𪄁𪔅𪕀]→yuán;
+[㟶㥳㹉䖠䦾䬧䱲䲮䳒䳣元円原厡厵员員园圆圎園圓垣塬媴嫄援杬榞榬橼櫞沅湲源溒爰猨猿獂笎緣縁缘羱茒蒝薗蚖蝝蝯螈袁謜貟贠轅辕邍邧酛鈨鎱騵魭鶢鶰黿鼋𠝳𠩠𢆀𢗯𢷻𤬌𦍼𦿂𧉗𧔞𧳭𧻚𨕗𨸘𨻣𩉯𩍻𩰵𪄁𪔅𪕀]→yuán;
 [䛄䛇䩩盶远逺遠鋺𠒜𡯱𩌑𩐘𩔃]→yuǎn;
-[㤪㥐㭇䅈䏍䬇䬼傆噮垸夗妴怨愿掾瑗禐肙苑衏裫褑褤院願𡈓𢂱𢐄𢕋𥭞𧙮𩕾𩘍𩟁𫖸]→yuàn;
+[㤪㥐㭇䅈䏍䬇䬼傆噮垸夗妴媛怨愿掾瑗禐肙苑衏裫褑褤院願𡈓𢂱𢐄𢕋𥭞𧙮𩕾𩘍𩟁𫖸]→yuàn;
 [彟彠曰曱矱箹約约𠏃𡡕𢁞𢾔𦚢𧨄𩚈𩜌𪘳]→yuē;
 [𢯵]→yuě;
 [⺝㜧㜰㬦㰛㹊䆕䆢䋐䋤䖃䟑䟠䠯䡇䢁䢲䤦䥃䶳刖妜嬳岄岳嶽恱悅悦戉抈捳月樾瀹爚玥礿禴篗籆籥籰粤粵蘥蚎蚏越跀跃躍軏鈅鉞钺閱閲阅鸑鸙黦龠𠔠𠨲𠩉𠪶𠯲𠾲𠿋𡆦𡆽𡛟𢦰𣌗𣎱𣐋𣤰𣦏𣨡𣻮𤑓𤓝𥆟𥩡𥸘𦋩𦣜𦤕𧀲𧅚𧇓𧕋𧤽𧹊𨁑𨈋𨊸𨒋𨙄𨳕𨷲𨸀𨸎𨿁𩁯𩎙𩓥𩱪𩱲𩿠𪁑𪒥𫐄]→yuè;
 [㚃奫晕暈氲氳煴缊蒀蒕蝹贇赟頵馧𠚓𥠺𨍆𨷐𩁴]→yūn;
-[㛣㜏䉙䢵云伝勻匀囩妘愪昀橒沄涢溳澐熉畇眃秐筼篔紜縜纭耘耺芸蒷蕓郧鄖鋆雲𠣐𡖒𣖆𤈶𥐩𥬀𧥼𧬞𧶊𨛡]→yún;
+[㛣㜏䉙䢵云伝勻匀囩妘愪昀橒沄涢溳澐熉畇眃秐筠筼篔紜縜纭耘耺芸蒷蕓郧鄖鋆雲𠣐𡖒𣖆𤈶𥐩𥬀𧥼𧬞𧶊𨛡]→yún;
 [㩈䆬䇖䞫䤞䨶䪳允喗夽抎殒殞狁磒荺褞賱鈗阭陨隕霣馻齫齳𠱳𧉃𧼐𩂿𪏔𪏚𪘩]→yǔn;
-[㚺㞌㟦䚋䩵䲰傊孕恽惲愠慍枟熅緷緼縕腪蕴薀藴蘊运運郓鄆酝醖醞韗韞韫韵韻餫𠈤𡅙𡢘𡲪𡽅𣂊𣍯𤶧𤸫𦅿𦈉𧡡𩏅𩏆𩴉𪉂𪍝]→yùn;
+[㚺㞌㟦䚋䩵䲰傊孕恽惲愠慍枟熅熨緷緼縕腪蕴薀藴蘊运運郓鄆酝醖醞韗韞韫韵韻餫𠈤𡅙𡢘𡲪𡽅𣂊𣍯𤶧𤸫𦅿𦈉𧡡𩏅𩏆𩴉𪉂𪍝]→yùn;
 [抣繧]→yun;
 [㞉㦫匝咂帀拶沞紥紮臜臢迊鉔魳𠯗𠽷𣤷𣤺𦠛𦾬𧌃𨠿𩞶]→zā;
 [䕹䞙䨿䪞偺喒囋囐杂沯砸磼襍雑雜雥韴𡁕𢶍𢹼𢽜𣴖𣸐𤄔𤠀𥷩𧬩𧾁𩇺𪚇]→zá;
@@ -1407,10 +1382,10 @@
 [䎖増增憎橧熷璔矰磳繒缯罾譄鄫鱛𡡑𡾽𤎯𦀓𦼏𧢐𨲯]→zēng;
 [㽪]→zěng;
 [䙢䰝甑贈赠鋥锃𪒟𪙭]→zèng;
-[㗬㦋㪥㾴䐒䵙䶥偧劄吒哳奓扎抯挓揸摣柤査樝渣皶皻觰譇齄齇𠭯𠯩𠽣𢄄𤹡𥡧𥹁𦟰𦳏𧩫𧬅𩮎𪗭𪗵]→zhā;
+[㗬㦋㪥㾴䐒䵙䶥偧劄吒哳喳奓扎抯挓揸摣柤査楂樝渣皶皻觰譇齄齇𠭯𠯩𠽣𢄄𤹡𥡧𥹁𦟰𦳏𧩫𧬅𩮎𪗭𪗵]→zhā;
 [㱜㳐䥷䮜䮢札煠牐甴箚耫蚻譗鍘铡閘闸𠍹𠓣𠝚𠢙𠢡𠰏𡎫𡟢𢧖𢧻𣟦𣧖𣽛𤁳𤡨𤵦𧄠𧉫𧶇𧼰𧼶𧽅𩃡𩃹𩥠𩩥𩳶𩿤]→zhá;
 [㴙㷢䋾䕢䛽䱹厏拃搩眨砟苲踷鮓鮺鲊鲝𤈩𥀈𥀉𦂉𦑯𧨿𨂵𨅓𩻢𩼫]→zhǎ;
-[㡸䃎䄍䆛䖳乍咤宱搾柞榨溠灹炸痄蚱詐诈醡霅𡗸𢕮𣛽𤰦𧧻𧨊𧿌𨋘𨡗𩬟𩶱𩽽]→zhà;
+[㡸䃎䄍䆛䖳乍咤宱搾柞栅榨溠灹炸痄蚱詐诈醡霅𡗸𢕮𣛽𤰦𧧻𧨊𧿌𨋘𨡗𩬟𩶱𩽽]→zhà;
 [㒀䔝夈捚摘斋斎榸粂齋𠞶𠵠𠷒𡅓𢋿𢴨𤞮𤻦𨅪𩝿𩱳𪗒𪗓𪘇𪘨𪚎]→zhāi;
 [㡯宅檡𦑱𩏪𩏽𪀥]→zhái;
 [䍉窄鉙𠏰𤢒𥞅𧲻𧻍𩬫]→zhǎi;
@@ -1430,11 +1405,11 @@
 [㸙嗻嫬蜇遮𠌮𡂭𨰵]→zhē;
 [㞏㡇㢎㪿㭙㭯㯙㯰㸞䇽䊞䎲䐑䐲䓆䜆䝃䝕䮰厇哲啠喆嚞埑悊折摺晢晣歽矺砓磔籷粍虴蛰蟄袩詟謫謺讁讋谪輒輙轍辄辙銸馲鮿𠚱𠝝𠞃𠯓𠽻𠾀𡇠𡘭𡜯𡝊𢟯𢢍𢫰𢬴𣙵𣠞𣻩𤜤𤟍𤮱𥏯𥐽𥕣𥛧𥤋𥧮𦅄𦔮𦗑𦗗𦞥𦠣𦬃𧎴𧑧𧤠𧲢𨅊𨐃𨵊𩊵𩐶𩢐𩣩𪐏𪚥]→zhé;
 [乽啫禇者褶襵赭锗𩤜]→zhě;
-[䂞䏳䗪䠦䩾䵭柘樜浙淛潪蟅这這鷓鹧𣇧𣶋𥑡𥭙𦠟𦠠𦯍]→zhè;
-[着著蔗𡄡]→zhe;
+[䂞䏳䗪䠦䩾䵭柘樜浙淛潪蔗蟅这這鷓鹧𣇧𣶋𥑡𥭙𦠟𦠠𦯍]→zhè;
+[着著𡄡]→zhe;
 [㖘㘰㲀䂦䃌䈯侦偵嫃寊帪搸斟栕桢桭楨榛樼殝浈潧澵獉珍珎瑧甄眞真砧碪祯禎禛箴籈胗臻葴蒖蓁薽貞贞轃遉酙針鉁錱鍼针靕鱵𠛶𠸸𡇑𡇖𡈿𡻈𣓀𣿎𤚨𥪘𦳳𦸮𧮬𨱅𩇜𪇳𪉕]→zhēn;
 [𠵧]→zhén;
-[㐱㪛㱽䂧䑐䠴䪴䪾䫬姫屒弫抮昣枕畛疹眕稹紾縥缜聄萙袗裖診诊軫轸駗鬒黰𠘱𠠹𠬓𢏈𣬻𣱽𤷌𥅘𥌃𥖘𧠝𧤛𨏤𩒀𩒈𩬖𪑳]→zhěn;
+[㐱㪛㱽䂧䑐䠴䪴䪾䫬屒弫抮昣枕畛疹眕稹紾縥缜聄萙袗裖診诊軫轸駗鬒黰𠘱𠠹𠬓𢏈𣬻𣱽𤷌𥅘𥌃𥖘𧠝𧤛𨏤𩒀𩒈𩬖𪑳]→zhěn;
 [㓄㣀㮳㯢㴨㼉䀕䊶䏖䝩䟴䨯䲴䳲侲圳塦挋振揕敶朕栚瑱甽眹紖絼纼誫賑赈酖鋴鎭鎮镇阵陣震鴆鸩𣃵𣏖𣒅𥤤𨌑𨳌𨸬𩄛𩊡𩊨𩑘𩒪𩾺𪁧𪐲]→zhèn;
 [㬹䆸䇰䋊䋫䍵䱢争佂凧埩姃媜峥崝崢征徰徴徵怔挣掙揁炡烝爭狰猙癥眐睁睜筝箏篜聇蒸诤踭鉦錚钲铮鬇鯖𠑅𠲜𡪺𢁿𢓞𢮐𢾧𤪡𦓺𦙫𦚦𦜎𦡅𦱊𧗆𧗲𧘿𧪣𧯫𨌢𨛰𨜓𨟃𨢹𨺟𩗲𩘼𩘽𩚫𩺄]→zhēng;
 [䡕愸抍拯掟撜整晸氶糽𠏫𤸲𤿆𨀧𨋬𩗵]→zhěng;
@@ -1442,22 +1417,22 @@
 [㩼㯄㲍㴯㸟㽻䓋䓜䓡䝷䞠䟡䣽䧴䵹之倁卮吱坧巵戠搘支枝栀梔椥榰汁汥泜疷知祗祬禔秓秖秪稙綕織织肢胑胝脂臸芝蘵蜘衼隻馶鳷鴲鼅𠦧𠰅𢎈𤵋𤽁𥃫𥇭𥘡𥝑𥝮𥻬𥾣𦏤𦝔𦭜𦯫𦴀𧌔𧐉𧱒𧹛𧽦𨌌𨕕𨜎𨟾𨢮𩍲𩍵𩙾𪂅𪉆𪒊𫛛]→zhī;
 [㙷㜼㥀䐈䟈䵂侄値值嗭埴執墌妷姪嬂慹执摭植樴殖淔漐犆瓡直禃絷縶聀职職膱蟙跖踯蹠躑軄釞鉄馽𡁉𡂣𡈊𡌴𡏀𡖻𡰹𡸜𢃜𣖭𣖿𣳀𣽚𤃲𥏅𥮖𦳮𧀿𧃐𧏸𧓸𧾂𨂂𨤱𨼓𩯈𪗨𪙹]→zhí;
 [㕄㡳㡶㫑㮹㲛䅩䇛䛗䤠䳅凪劧只咫址坁夂帋怾恉扺抧指旨枳止汦沚洔淽疻砋祉紙纸芷茋藢衹襧訨趾軹轵酯阯黹𠮡𠼠𡙑𡱔𢇨𢛍𢰙𢷸𢽃𢽗𢾫𣔐𣖌𣚠𣲵𤶓𤸓𥒗𥔊𦐖𦰘𧊙𧛢𧜚𧝉𧠴𧸅𧸕𨎌𨬚𨰛𨵂𩬺𪑜]→zhǐ;
-[㗌㗧㘉㛿㜱㝂㣥㨁㨖㴛㿃䄺䆈䇧䉅䉜䎺䏯䐭䑇䓌䕌䘭䚦䚳䝰䞃䡹䥍䦯䩢䬹䭁䱃䱥䲀乿俧偫傂儨制劕厔垁墆娡寘崻帙帜幟庢庤廌彘徏徝志忮憄懥懫扻挃挚掷搱摯擲擳旘晊智柣栉桎梽楖櫍櫛治洷滍滞滯潌瀄炙熫狾猘瓆畤疐痔痣礩祑秩秲秷稚稺穉窒筫紩緻置翐膣至致芖蛭螲袟袠製覟觗觯觶誌豑豒豸貭質贄质贽跱踬躓軽輊轾迣郅銍鋕鑕铚锧阤陟隲雉駤騭騺驇骘鯯鴙鷙鸷𠊤𠊷𠋤𠍜𠓶𠘖𠚅𡀹𡂒𡍶𡏚𡑘𡖧𡠗𡠹𡮞𡽆𢄢𢄱𢅁𢊁𢍧𢐂𢕞𢖇𢖿𢙺𢚨𢡒𢧤𢯶𢴠𢴧𢻙𣗻𣥰𣨋𤆒𤓕𤖞𤛱𤞂𤞌𤦄𤦮𤧜𤴛𤴟𤴢𤿙𥇕𥍭𥎹𥏄𥏊𥏰𥏷𥒓𥠈𥠽𥣮𥭡𥴒𥹩𥿮𦃘𦛧𦜋𦟔𦤻𦥎-𦥐𦭮𦯯𧙁𧠫𧣭𧣾𧤡𧨰𧫡𧸲𨁷𨃯𨆧𨎉𨑨𨒉𨖹𨟊𨡐𨧵𨫔𨻆𨿛𩊝𩊴𩋩𩧄𩷓𩹈𩻼𪁊𪁓𪁩𪏀𪗻]→zhì;
+[㗌㗧㘉㛿㜱㝂㣥㨁㨖㴛㿃䄺䆈䇧䉅䉜䎺䏯䐭䑇䓌䕌䘭䚦䚳䝰䞃䡹䥍䦯䩢䬹䭁䱃䱥䲀乿俧偫傂儨制劕厔垁墆娡寘峙崻帙帜幟庢庤廌彘徏徝志忮憄懥懫扻挃挚掷搱摯擲擳旘晊智柣栉桎梽楖櫍櫛治洷滍滞滯潌瀄炙熫狾猘瓆畤疐痔痣礩祑秩秲秷稚稺穉窒筫紩緻置翐膣至致芖蛭螲袟袠製覟觗觯觶誌豑豒豸貭質贄质贽跱踬躓軽輊轾迣郅銍鋕鑕铚锧阤陟隲雉駤騭騺驇骘鯯鴙鷙鸷𠊤𠊷𠋤𠍜𠓶𠘖𠚅𡀹𡂒𡍶𡏚𡑘𡖧𡠗𡠹𡮞𡽆𢄢𢄱𢅁𢊁𢍧𢐂𢕞𢖇𢖿𢙺𢚨𢡒𢧤𢯶𢴠𢴧𢻙𣗻𣥰𣨋𤆒𤓕𤖞𤛱𤞂𤞌𤦄𤦮𤧜𤴛𤴟𤴢𤿙𥇕𥍭𥎹𥏄𥏊𥏰𥏷𥒓𥠈𥠽𥣮𥭡𥴒𥹩𥿮𦃘𦛧𦜋𦟔𦤻𦥎-𦥐𦭮𦯯𧙁𧠫𧣭𧣾𧤡𧨰𧫡𧸲𨁷𨃯𨆧𨎉𨑨𨒉𨖹𨟊𨡐𨧵𨫔𨻆𨿛𩊝𩊴𩋩𩧄𩷓𩹈𩻼𪁊𪁓𪁩𪏀𪗻]→zhì;
 [徔]→zhi;
 [㹣䇗䈺䝦中伀刣妐幒彸忠柊汷泈炂盅籦終终舯蔠螤螽衳衷蹱鈡銿鍾鐘钟锺鼨𠛀𡖌𢁷𢃭𢨱𣷡𤝅𤯚𥗦𥷈𦉂𦬕𧆼𧑆𨳗𩅞𩅧]→zhōng;
 [㣫冢喠塚塜尰歱煄瘇种種穜肿腫踵𠊥𡰒𡻑𣹞𤺄]→zhǒng;
 [㲴䱰仲众偅堹妕媑狆眾祌筗茽蚛衆衶諥重𠱧𡥿𢝆𣱧𤚏𥻝𦌋𦔉𧬤𧳮𨉢𩾋𩿀]→zhòng;
 [㨄䎇䑼䓟䧓侜周喌州徟掫洲淍炿烐珘盩矪粥舟謅譸诌诪賙赒輈輖辀週郮銂霌駲騆鵃鸼𠚴𠣘𠤍𠱙𡀑𢏝𢐫𢽧𥌆𥑸𥺝𥺞𥼫𥿦𦩈𦭴𧇟𧣷𧧔𧻖𨉜𨏺𨦞𩢸𩧳𩶣𪆀]→zhōu;
 [㛩妯軸轴𡊡𥖠𥾓]→zhóu;
-[㫶䖞晭疛睭箒肘菷鯞𢫧𣥯𦈺𧳜𨥇]→zhǒu;
+[㫶䖞帚晭疛睭箒肘菷鯞𢫧𣥯𦈺𧳜𨥇]→zhǒu;
 [㑇㑳㤘㥮㼙㾭䈙䋓䎻䛆䩜䶇伷僽冑呪咒咮噣宙昼晝甃皱皺籀籒籕粙紂縐纣绉胄荮葤詋詶酎駎驟骤𠊣𢃸𢓟𢷗𢼲𣆔𣻱𤏲𥀙𥣙𥲝𦁖𦂈𦅸𧛸𧭍𩊄𩋰𩍌𩍧𩗪𩧨𪇞]→zhòu;
-[帚]→zhou;
 [㦵㧣㶆䃴䇬䐗䡤䣷侏劯朱株槠橥櫧櫫洙潴瀦猪珠硃秼絑茱蛛蝫蠩袾誅諸诛诸豬跦邾銖铢駯鮢鯺鴸鼄𠧀𡴅𡻌𢔪𤝹𤥮𥛂𦧙𧑤𩊣𩋵𩴀𪋏𪋑𪏿]→zhū;
 [䌵䕽䘚䟉䠱䥮䮱孎曯欘泏灟炢烛燭爥瘃窋竹竺笁笜築舳茿蠋蠾躅逐钃鱁𠮌𠷅𡎺𡧨𢲿𣤁𣵸𣽆𥞏𥾅𦬸𧏿𨞕𨲈𩞈𩲠𩲬𩳥𩶄]→zhú;
 [㔉㵭䘢䰞丶主劚嘱囑宔拄斸渚濐煑煮瞩矚罜詝陼麈𠰍𡺐𢁼𣔯𤆼𤲑𥋛𦅷𦉐𧉞𩒊𩨻𪋰]→zhǔ;
 [㑏㝉㤖㫂㹥㺛㾻㿾䇠䇡䍆䎷䐢䘄䝒䝬䪒䬡䭖伫佇住助坾墸壴嵀杼柱樦殶注炷疰眝砫祝祩竚筑筯箸篫紵紸纻羜翥苎莇蛀註貯贮跓軴迬鉒鋳鑄铸霔馵駐驻麆𠩈𠴦𡤗𡱱𡸌𡻠𢚻𢥃𢩄𣥼𤋰𤎧𤕞𤳯𤾄𥩣𥯸𥵟𥹍𦙴𧈚𨆄𨈫𨙔𨭅𩶂𪊹𪚹]→zhù;
 [抓檛簻膼髽𥬲𥮣]→zhuā;
 [𡎬𣑃]→zhuǎ;
+[拽]→zhuāi;
 [跩]→zhuǎi;
 [𢶀]→zhuài;
 [䏝专叀塼嫥専專瑼甎砖磗磚膞蟤諯鄟顓颛鱄𡭇𡰞𢂘𢞬𤮳𥫛]→zhuān;
@@ -1468,8 +1443,7 @@
 [壮壯壵戇撞漴焋状狀𠌴𢤤𣴣𣶍𤘲𤶜𦀜𩅃𩯲𪁈𪉉]→zhuàng;
 [㗓㚝㮅䨨䶆追錐锥隹騅骓鵻𣨫𨾻𩪀𪋇]→zhuī;
 [沝𩬳]→zhuǐ;
-[㩾㾽䄌坠墜娷惴桘甀畷硾礈笍縋缒膇諈贅赘轛醊錣鑆餟𡑻𢊅𣝸𣦬𤺅𥟒𦥻𧿲𨪗𨺵𩛵𩜀]→zhuì;
-[綴缀]→zhui;
+[㩾㾽䄌坠墜娷惴桘甀畷硾礈笍綴縋缀缒膇諈贅赘轛醊錣鑆餟𡑻𢊅𣝸𣦬𤺅𥟒𦥻𧿲𨪗𨺵𩛵𩜀]→zhuì;
 [㡒宒窀肫衠諄谆迍𥇜]→zhūn;
 [准凖埻準綧]→zhǔn;
 [稕訰𥚠]→zhùn;
@@ -1477,7 +1451,7 @@
 [㒂㣿㧻㭬㹿㺟䅵䆯䐁䕴䟾䮕䶂丵劅叕啄啅圴妰娺彴撯擆擢斀斫斱斲斵晫梲椓櫡汋浊浞濁濯灂灼烵犳琸硺禚窡篧籗籱罬茁蠗諁諑謶诼酌鋜鐯鐲镯鵫鷟𠡑𠿡𡷿𢁁𢢗𢧈𢳇𢺡𢽚𣃈𣃑𤃮𤉐𤏸𥇍𥋮𥐊𥗁𥢔𥮥𥯩𥷘𥷮𦜰𦰹𦳡𧂒𧃔𧘑𧞐𧢼𧨳𨑽𨖮𨡸𨢬𨧧𨮿𨺝𩆸𩋁𩑂𩩔𩲃𩷹]→zhuó;
 [㧳𤓦]→zhuò;
 [窧]→zhuo;
-[㠿㰣㽧㿳䅔䆅䎩䖪䣎䰵乲咨嗞姕姿孜孳孶崰嵫栥椔淄湽滋澬璾禌秶稵粢紎緇缁茊茲葘觜訾諮谘貲資赀资赼趑趦輜輺辎鄑鈭錙鍿鎡锱镃頾頿髭鯔鰦鲻鶅鼒齍龇𠀢𡗈𡙛𡸟𢱆𣚀𣚁𣣊𣥨𣯃𣳩𥀖𥕁𥚉𥻍𥼩𥼻𦖺𦺱𧀗𧕓𧛏𧣤𧥕𧹌𧿞𨀥𨍢𨚖𨝳𨩲𩄚𩜊𪅵𪑿𪕊𪗉𪗋𪗐]→zī;
+[㠿㰣㽧㿳䅔䆅䎩䖪䣎䰵乲兹咨嗞姕姿孜孳孶崰嵫栥椔淄湽滋澬玆璾禌秶稵粢紎緇缁茊茲葘觜訾諮谘貲資赀资赼趑趦輜輺辎鄑鈭錙鍿鎡锱镃頾頿髭鯔鰦鲻鶅鼒齍龇𠀢𡗈𡙛𡸟𢱆𣚀𣚁𣣊𣥨𣯃𣳩𥀖𥕁𥚉𥻍𥼩𥼻𦖺𦺱𧀗𧕓𧛏𧣤𧥕𧹌𧿞𨀥𨍢𨚖𨝳𨩲𩄚𩜊𪅵𪑿𪕊𪗉𪗋𪗐]→zī;
 [蓻]→zí;
 [㜽㞨㧗㺭㾅䔂䘣䦻仔吇呰啙姉姊杍梓榟橴滓矷秄秭笫籽紫耔胏虸訿釨𠂔𠡸𡉗𡪒𣖨𣸆𥞎𥫞𥬳𥲕𧆰𨹀𩐍]→zǐ;
 [㧘㰷㱴䅆䐉倳剚字恣渍漬牸眥眦胔胾自芓茡荢𡸪𢼱𣄮𣓊𣣌𥿩𦍺𦎸𦣹𧂐𧧕𧨴𨧫]→zì;
@@ -1490,7 +1464,7 @@
 [走赱鯐𧌗𨑿]→zǒu;
 [㔌㔿㵵䠫奏揍楱𨂡𩼦𪃆]→zòu;
 [租葅蒩𪙳]→zū;
-[㞺㰵㵀䚝䯿䱣傶卆哫崒崪族箤足踤踿鏃镞𠻏𡻬𢅪𢫵𢳈𣢰𣤶𣨛𤬧𤽱𥞯𥣆𥼀𦑋𧎲𧐈𧑙𧗎𧞰𧺒𨃭𨄕𨧰𨨳𨩰𩐡𩥿𩩠𩺯𪋍𪘧]→zú;
+[㞺㰵㵀䚝䯿䱣傶卆卒哫崒崪族箤足踤踿鏃镞𠻏𡻬𢅪𢫵𢳈𣢰𣤶𣨛𤬧𤽱𥞯𥣆𥼀𦑋𧎲𧐈𧑙𧗎𧞰𧺒𨃭𨄕𨧰𨨳𨩰𩐡𩥿𩩠𩺯𪋍𪘧]→zú;
 [䔃䖕俎唨爼珇祖組组詛诅鎺阻靻𢉺𣇙𤓵𤱌𥛜𥼪𨂀]→zǔ;
 [𦵬𧇈𧇿𩲲]→zù;
 [䡽躜鑽钻𡉺𣀶𣪁𨉖𩎑]→zuān;
diff --git a/source/data/translit/InterIndic_Arabic.txt b/source/data/translit/InterIndic_Arabic.txt
index 71f4852..8e4f1a1 100644
--- a/source/data/translit/InterIndic_Arabic.txt
+++ b/source/data/translit/InterIndic_Arabic.txt
@@ -6,6 +6,7 @@
 #
 
 $nonword = [^\uE000-\uE0FF];
+$wordBoundary = [^[:L:][:M:][:N:]];
 \uE015\uE03F\uE02F\uE03E } $nonword→كيا; # किया
 \uE026\uE03F\uE02F\uE03E } $nonword→ديا; # दिया
 \uE015\uE03F } $nonword→كي; # कि at word end
@@ -28,6 +29,7 @@
 \uE00C→ل; # ऌ
 \uE00D→ا ي; # ऍ
 \uE00E→ي; # ऎ
+$wordBoundary {\uE00F} → إي; # word-initial ए
 \uE00F  } $nonword→ي; # ए use ي when at end
 \uE00F→ي; # ए use ي when not at end
 \uE010  } $nonword→ا ي; # ऐ use ي when at end
diff --git a/source/data/translit/Zawgyi_my.txt b/source/data/translit/Zawgyi_my.txt
index fd1f3fa..c280f47 100644
--- a/source/data/translit/Zawgyi_my.txt
+++ b/source/data/translit/Zawgyi_my.txt
@@ -26,7 +26,7 @@
 # This character has multiple representations in the Zawgyi font.
 $zmedialra = [\u103B\u107E-\u1084];
 ####
-#### STAGE (1): CODEPOINT MAPPING FROM ZAWGYI TO UNICODE
+#### STAGE 1: CODEPOINT MAPPING FROM ZAWGYI TO UNICODE
 ####
 # Kinzi (predefined ligatures)
 # Move base character to the right
@@ -66,8 +66,6 @@
 \u1087 → \u103E ;
 \u1088 → \u103E \u102F ;
 \u1089 → \u103E \u1030 ;
-# Single diacritics with space - use non-breaking
-# TODO(ccornelius): determine if this breaks transliteration
 # asat
 \u1039 → \u103A ;
 # Vowels
@@ -128,26 +126,30 @@
 # yayit
 $zmedialra → \u103C ;
 ####
-#### STAGE (2): POST REORDERING RULES FOR UNICODE RENDERING
+#### STAGE 2: POST REORDERING RULES FOR UNICODE RENDERING
 #### Now every codepoint is Unicode.  This starts conversion
 #### from semi-visual order to logical order.
 ####
 ::Null;
 # Case of MYANMAR digit being used instead of a letter
-\u1044 \u103a → | \u104E \u103A ;
-# Lone zero with diacritic mark
-\u1031 \u1040 ($nondigits) → \u1031 \u101D $1;
-($nondigits) \u1040 ([\u102B-\u103F]) → $1 \u101D $2;
-# cwc: Simpler replacements for Zawgyi 1025
+# Lone digit zero
+[$] \u1040 ($nondigits) → \u101D $1;
+([\u102b-\u103f]) \u1040 ($nondigits) → $1 \u101d $2;
+# Lone digit 4
+^ \u1044 ($nondigits) → | \u104E $1 ;
+([\u102b-\u103f]) \u1044 ($nondigits) → $1 \u104E $2;
+# Simpler replacements for Zawgyi 1025
 \u1025 \u103A → \u1009 \u103A;
 \u1025 \u102E → \u1026;
-# Asat and dot below reordering.
-\u1037\u103A → \u103A\u1037;
+# Asat and dot below reordering, to Unicode NFC.
+\u103A\u1037 → \u1037\u103A;
 # Reorder some vowel signs
 \u1036 ($umedial*) ($vowelsign+) → $1 $2 \u1036 ;
 ([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) → $2 $1;
 # Move ra medial, but not others.
 \u103C ($consonant) → $1 \u103C;
+# Replace CA + YA with JHA
+\u1005\u103b → \u1008;
 ####
 #### Stage 3
 #### Move \u1031, \u1036, and \u103C after consonants.
@@ -193,11 +195,21 @@
 # Move visarga (\u1038) after other signs
 \u1038 ([$vowelmedial]) → $1 \u1038;
 \u1038 ([\u1036\u1037\u103A]) → $1 \u1038;
+# Reorder
+\u1036 \u102f → \u102f \u1036;
 ###
 ### Stage 6
 ### Finish medial sorting, fix conflicting and extra diacritics
 ###
 ::Null;
+# Fix duplicate and overlapping modifiers.
+\u102F \u102F+ → \u102F;
+\u102F \u1030 → \u102F;
+\u102F \u103A → \u102F;
+\u102D \u102E → \u102E;
+\u1036 \u1036+ → \u1036;
+# Remove space directly before diacritics.
+[:WSpace:] ([\u102b-\u1032\u1036-\u103e]) → $1;
 # Fix 103B/103A order for asat.
 ($consonant) \u103B \u103A → $1 \u103A \u103B;
 
diff --git a/source/data/translit/root.txt b/source/data/translit/root.txt
index 4b4549b..10bbfc0 100644
--- a/source/data/translit/root.txt
+++ b/source/data/translit/root.txt
@@ -3793,6 +3793,16 @@
             }
         }
 
+        ta-fonipa-t-ta {
+            alias {"ta-ta_FONIPA"}
+        }
+        ta-ta_FONIPA {
+            file {
+                resource:process(transliterator) {"ta_ta_FONIPA.txt"}
+                direction {"FORWARD"}
+            }
+        }
+
         am-t-tlh {
             alias {"tlh-am"}
         }
diff --git a/source/data/translit/ta_ta_FONIPA.txt b/source/data/translit/ta_ta_FONIPA.txt
new file mode 100644
index 0000000..06895e9
--- /dev/null
+++ b/source/data/translit/ta_ta_FONIPA.txt
@@ -0,0 +1,79 @@
+# © 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html#License
+#
+# File: ta_ta_FONIPA.txt
+# Generated from CLDR
+#
+
+$c = [\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9];
+$v = [\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC];
+$nasal = [ŋɲɳnm];
+# Delete ZWNJ and ZWJ to simplify further processing.
+\u200C → ;
+\u200D → ;
+::NFC;
+# Manifest the implicit vowel after every consonant that is not followed by a
+# dependent vowel or virama.
+($c) } [^$v \u0BCD] → $1 a;
+::Null;
+ஃப → f;
+ஃ → x;
+அ → a;
+ஆ → aː;
+இ → i;
+ஈ → iː;
+உ → u;
+ஊ → uː;
+எ → e;
+ஏ → eː;
+ஐ → aɪ;
+ஒ → o;
+ஓ → oː;
+ஔ → aʊ;
+$nasal { க → g;
+க → k;
+ங → ŋ;
+$nasal { ச → d\u0361ʒ;
+ச\u0BCDச → t\u0361ʃ;
+[ʈr] { ச → t\u0361ʃ;
+ச → s \u02BC;
+ஜ → d\u0361ʒ;
+ஞ → ɲ;
+$nasal { ட → ɖ;
+ட → ʈ;
+ண → ɳ;
+$nasal { த → d\u032A;
+த → t\u032A;
+ந → n;
+ன → n;
+$nasal { ப → b;
+ப → p;
+ம → m;
+ய → j;
+ர → r;
+ற\u0BCDற → tʳ;
+ற } \u0BCD → tʳ;
+$nasal { ற → tʳ;
+ற → r;
+ல → l;
+ள → ɭ;
+ழ → ɻ;
+வ → ʋ;
+ஶ → ʃ;
+ஷ → ʂ;
+ஸ\u0BCD } ர → ʃ;
+ஸ → s;
+ஹ → h;
+\u0BBE → aː;
+\u0BBF → i;
+\u0BC0 → iː;
+\u0BC1 → u;
+\u0BC2 → uː;
+\u0BC6 → e;
+\u0BC7 → eː;
+\u0BC8 → aɪ;
+\u0BCA → o;
+\u0BCB → oː;
+\u0BCC → aʊ;
+\u0BCD → ;
+
diff --git a/source/data/unidata/changes.txt b/source/data/unidata/changes.txt
index 7442583..4e8723f 100644
--- a/source/data/unidata/changes.txt
+++ b/source/data/unidata/changes.txt
@@ -40,6 +40,137 @@
 
 ---------------------------------------------------------------------------- ***
 
+TODO:
+- ICU ticket #13061 undo hacks from emoji 5.0 update
+- define & use ICU4C_SRC_DIR
+
+---------------------------------------------------------------------------- ***
+
+Emoji 5.0 update for ICU 59
+- ICU 59 mostly remains on Unicode 9.0
+- except updates bidi and segmentation data to Unicode 10 beta
+
+First run of tools on combined icu4c/icu4j/tools trunk after svn repository reorg.
+
+* Command-line environment setup
+
+ICU_ROOT=~/svn.icu/trunk
+ICU_SRC_DIR=$ICU_ROOT/src
+ICU4C_SRC_DIR=$ICU_SRC_DIR/icu4c
+ICUDT=icudt59b
+export LD_LIBRARY_PATH=$ICU_ROOT/dbg/lib
+SRC_DATA_IN=$ICU4C_SRC_DIR/source/data/in
+UNIDATA=$ICU4C_SRC_DIR/source/data/unidata
+
+*** ICU Trac
+
+- ticket:12900: take Emoji 5.0 properties data into ICU 59 once it's released
+- changes directly on trunk
+
+*** data files & enums & parser code
+
+* download files
+
+- download Unicode 9.0 files into a uni90e50 folder: ucd, idna, security (skip uca)
+- download emoji 5.0 beta files into the same uni90e50 folder
+- download Unicode 10.0 beta files: ucd
+  + copy Unicode 10 bidi files to the uni90e50/ucd folder:
+    BidiBrackets.txt
+    BidiCharacterTest.txt
+    BidiMirroring.txt
+    BidiTest.txt
+    extracted/DerivedBidiClass.txt
+  + copy Unicode 10 segmentation files to the uni90e50/ucd folder:
+    LineBreak.txt
+    auxiliary/*
+
+* preparseucd.py changes
+- adjust for combined trunks
+- write new copyright lines
+- ignore new Emoji_Component property for now
+
+* process and/or copy files
+- ~/svn.icu/trunk/src/tools/unicode$ py/preparseucd.py ~/unidata/uni90e50/20170322 $ICU_SRC_DIR
+  + This writes files (especially ppucd.txt) to the ICU4C unidata and testdata subfolders.
+
+- cp ~/unidata/uni90e50/20170322/security/confusables.txt $UNIDATA
+
+* build ICU (make install)
+  so that the tools build can pick up the new definitions from the installed header files.
+
+  $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date
+
+* build Unicode tools using CMake+make
+
+~/svn.icu/trunk/src/tools/unicode/c/icudefs.txt:
+
+# Location (--prefix) of where ICU was installed.
+set(ICU_INST_DIR /usr/local/google/home/mscherer/svn.icu/trunk/inst/icu4c)
+# Location of the ICU4C source tree.
+set(ICU4C_SRC_DIR /usr/local/google/home/mscherer/svn.icu/trunk/src/icu4c)
+
+  ~/svn.icu/trunk/dbg/tools/unicode/c$
+    cmake ../../../../src/tools/unicode/c
+    make
+
+* generate core properties data files
+  ~/svn.icu/trunk/dbg/tools/unicode/c$
+    genprops/genprops $ICU4C_SRC_DIR
+- rebuild ICU (make install) & tools
+
+* run & fix ICU4C tests
+- Andy handles RBBI & spoof check test failures
+
+* update Java data files
+- refresh just the UCD/UCA-related/derived files, just to be safe
+- see (ICU4C)/source/data/icu4j-readme.txt
+- mkdir /tmp/icu4j
+- ~/svn.icu/trunk/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install
+  output:
+    ...
+    Unicode .icu files built to ./out/build/icudt59l
+    echo timestamp > uni-core-data
+    mkdir -p ./out/icu4j/com/ibm/icu/impl/data/icudt59b
+    mkdir -p ./out/icu4j/tzdata/com/ibm/icu/impl/data/icudt59b
+    echo pnames.icu uprops.icu ucase.icu ubidi.icu nfc.nrm > ./out/icu4j/add.txt
+    LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH  ../bin/icupkg ./out/tmp/icudt59l.dat ./out/icu4j/icudt59b.dat -a ./out/icu4j/add.txt -s ./out/build/icudt59l -x '*' -tb -d ./out/icu4j/com/ibm/icu/impl/data/icudt59b
+    mv ./out/icu4j/"com/ibm/icu/impl/data/icudt59b/zoneinfo64.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt59b/metaZones.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt59b/timezoneTypes.res" ./out/icu4j/"com/ibm/icu/impl/data/icudt59b/windowsZones.res" "./out/icu4j/tzdata/com/ibm/icu/impl/data/icudt59b"
+    jar cf ./out/icu4j/icudata.jar -C ./out/icu4j com/ibm/icu/impl/data/icudt59b/
+    mkdir -p /tmp/icu4j/main/shared/data
+    cp ./out/icu4j/icudata.jar /tmp/icu4j/main/shared/data
+    jar cf ./out/icu4j/icutzdata.jar -C ./out/icu4j/tzdata com/ibm/icu/impl/data/icudt59b/
+    mkdir -p /tmp/icu4j/main/shared/data
+    cp ./out/icu4j/icutzdata.jar /tmp/icu4j/main/shared/data
+    make[1]: Leaving directory `/usr/local/google/home/mscherer/svn.icu/trunk/dbg/icu4c/data'
+- copy the big-endian Unicode data files to another location,
+  separate from the other data files,
+  and then refresh ICU4J
+    cd ~/svn.icu/trunk/dbg/icu4c/data/out/icu4j
+    mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/brkitr
+    cp com/ibm/icu/impl/data/$ICUDT/confusables.cfu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+    cp com/ibm/icu/impl/data/$ICUDT/*.icu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT
+    rm /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/cnvalias.icu
+    cp com/ibm/icu/impl/data/$ICUDT/brkitr/* /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT/brkitr
+    jar uvf ~/svn.icu/trunk/src/icu4j/main/shared/data/icudata.jar -C /tmp/icu4j com/ibm/icu/impl/data/$ICUDT
+
+* When refreshing all of ICU4J data from ICU4C
+- ~/svn.icu/trunk/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install
+- cp /tmp/icu4j/main/shared/data/icudata.jar ~/svn.icu/trunk/src/icu4j/main/shared/data
+or
+- ~/svn.icu/trunk/dbg/icu4c$ make ICU4J_ROOT=~/svn.icu/trunk/src/icu4j icu4j-data-install
+
+* refresh Java test .txt files
+- copy new .txt files into ICU4J's main/tests/core/src/com/ibm/icu/dev/data/unicode
+    cd $ICU4C_SRC_DIR/source/data/unidata
+    cp confusables.txt confusablesWholeScript.txt NormalizationCorrections.txt NormalizationTest.txt SpecialCasing.txt UnicodeData.txt ~/svn.icu/trunk/src/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+    cd ../../test/testdata
+    cp BidiCharacterTest.txt BidiTest.txt ~/svn.icu/trunk/src/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+    cp ~/unidata/uni90e50/20170322/ucd/CompositionExclusions.txt ~/svn.icu/trunk/src/icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode
+
+* run & fix ICU4J tests
+
+---------------------------------------------------------------------------- ***
+
 Unicode 9.0 update for ICU 58
 
 * Command-line environment setup
diff --git a/source/data/unidata/confusables.txt b/source/data/unidata/confusables.txt
index acef24a..4fac5db 100644
--- a/source/data/unidata/confusables.txt
+++ b/source/data/unidata/confusables.txt
@@ -1,7 +1,5 @@
 # confusables.txt
-# Date: 2016-04-05, 11:47:12 GMT
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
+# Date: 2016-06-16, 13:41:30 GMT
 # © 2016 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
diff --git a/source/data/unidata/norm2/nfc.txt b/source/data/unidata/norm2/nfc.txt
index e4159d6..c607eb3 100644
--- a/source/data/unidata/norm2/nfc.txt
+++ b/source/data/unidata/norm2/nfc.txt
@@ -1,3 +1,5 @@
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
 # Copyright (C) 1999-2016, International Business Machines
 # Corporation and others.  All Rights Reserved.
 #
diff --git a/source/data/unidata/norm2/nfkc.txt b/source/data/unidata/norm2/nfkc.txt
index f51fa5d..70f9745 100644
--- a/source/data/unidata/norm2/nfkc.txt
+++ b/source/data/unidata/norm2/nfkc.txt
@@ -1,3 +1,5 @@
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
 # Copyright (C) 1999-2016, International Business Machines
 # Corporation and others.  All Rights Reserved.
 #
diff --git a/source/data/unidata/norm2/nfkc_cf.txt b/source/data/unidata/norm2/nfkc_cf.txt
index 7f33df5..90ff166 100644
--- a/source/data/unidata/norm2/nfkc_cf.txt
+++ b/source/data/unidata/norm2/nfkc_cf.txt
@@ -1,7 +1,7 @@
-# Unicode Character Database
-# Copyright (c) 1991-2016 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
+# Copyright (C) 1999-2016, International Business Machines
+# Corporation and others.  All Rights Reserved.
 #
 # file name: nfkc_cf.txt
 #
diff --git a/source/data/unidata/ppucd.txt b/source/data/unidata/ppucd.txt
index 9a8d5de..109f1cc 100644
--- a/source/data/unidata/ppucd.txt
+++ b/source/data/unidata/ppucd.txt
@@ -1,6 +1,6 @@
 # Preparsed UCD generated by ICU preparseucd.py
-# Copyright (c) 1991-2016 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Copyright (C) 1991 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
 ucd;9.0.0
 
 property;Catalog;age;Age
@@ -1887,79 +1887,79 @@
 cp;02AE;age=4.0;na=LATIN SMALL LETTER TURNED H WITH FISHHOOK
 cp;02AF;age=4.0;na=LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
 
-block;02B0..02FF;age=1.1;bc=ON;blk=Modifier_Letters;CI;Dia;gc=Sk;Gr_Base;lb=AL;sc=Zyyy
+block;02B0..02FF;age=1.1;bc=ON;blk=Modifier_Letters;CI;Dia;gc=Sk;Gr_Base;lb=AL;sc=Zyyy;WB=LE
 # 02B0..02FF Spacing Modifier Letters
 # Latin superscript modifier letters
-cp;02B0;Alpha;bc=L;Cased;CWKCF;dm=0068;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL H;NFKC_CF=0068;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B1;Alpha;bc=L;Cased;CWKCF;dm=0266;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL H WITH HOOK;NFKC_CF=0266;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B2;Alpha;bc=L;Cased;CWKCF;dm=006A;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL J;NFKC_CF=006A;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;SD;WB=LE;XIDC;XIDS
-cp;02B3;Alpha;bc=L;Cased;CWKCF;dm=0072;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL R;NFKC_CF=0072;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B4;Alpha;bc=L;Cased;CWKCF;dm=0279;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL TURNED R;NFKC_CF=0279;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B5;Alpha;bc=L;Cased;CWKCF;dm=027B;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL TURNED R WITH HOOK;NFKC_CF=027B;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B6;Alpha;bc=L;Cased;CWKCF;dm=0281;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL CAPITAL INVERTED R;NFKC_CF=0281;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B7;Alpha;bc=L;Cased;CWKCF;dm=0077;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL W;NFKC_CF=0077;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02B8;Alpha;bc=L;Cased;CWKCF;dm=0079;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL Y;NFKC_CF=0079;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
+cp;02B0;Alpha;bc=L;Cased;CWKCF;dm=0068;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL H;NFKC_CF=0068;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B1;Alpha;bc=L;Cased;CWKCF;dm=0266;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL H WITH HOOK;NFKC_CF=0266;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B2;Alpha;bc=L;Cased;CWKCF;dm=006A;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL J;NFKC_CF=006A;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;SD;XIDC;XIDS
+cp;02B3;Alpha;bc=L;Cased;CWKCF;dm=0072;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL R;NFKC_CF=0072;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B4;Alpha;bc=L;Cased;CWKCF;dm=0279;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL TURNED R;NFKC_CF=0279;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B5;Alpha;bc=L;Cased;CWKCF;dm=027B;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL TURNED R WITH HOOK;NFKC_CF=027B;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B6;Alpha;bc=L;Cased;CWKCF;dm=0281;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL CAPITAL INVERTED R;NFKC_CF=0281;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B7;Alpha;bc=L;Cased;CWKCF;dm=0077;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL W;NFKC_CF=0077;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02B8;Alpha;bc=L;Cased;CWKCF;dm=0079;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL Y;NFKC_CF=0079;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
 # Miscellaneous phonetic modifiers
-cp;02B9;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER PRIME;SB=LE;WB=LE;XIDC;XIDS
-cp;02BA;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER DOUBLE PRIME;SB=LE;WB=LE;XIDC;XIDS
-cp;02BB;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER TURNED COMMA;SB=LE;WB=LE;XIDC;XIDS
-cp;02BC;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER APOSTROPHE;SB=LE;WB=LE;XIDC;XIDS
-cp;02BD;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER REVERSED COMMA;SB=LE;WB=LE;XIDC;XIDS
-cp;02BE;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER RIGHT HALF RING;SB=LE;WB=LE;XIDC;XIDS
-cp;02BF;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER LEFT HALF RING;SB=LE;WB=LE;XIDC;XIDS
-cp;02C0;Alpha;bc=L;Cased;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER GLOTTAL STOP;SB=LO;WB=LE;XIDC;XIDS
-cp;02C1;Alpha;bc=L;Cased;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER REVERSED GLOTTAL STOP;SB=LO;WB=LE;XIDC;XIDS
+cp;02B9;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER PRIME;SB=LE;XIDC;XIDS
+cp;02BA;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER DOUBLE PRIME;SB=LE;XIDC;XIDS
+cp;02BB;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER TURNED COMMA;SB=LE;XIDC;XIDS
+cp;02BC;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER APOSTROPHE;SB=LE;XIDC;XIDS
+cp;02BD;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER REVERSED COMMA;SB=LE;XIDC;XIDS
+cp;02BE;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER RIGHT HALF RING;SB=LE;XIDC;XIDS
+cp;02BF;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER LEFT HALF RING;SB=LE;XIDC;XIDS
+cp;02C0;Alpha;bc=L;Cased;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER GLOTTAL STOP;SB=LO;XIDC;XIDS
+cp;02C1;Alpha;bc=L;Cased;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER REVERSED GLOTTAL STOP;SB=LO;XIDC;XIDS
 cp;02C2;na=MODIFIER LETTER LEFT ARROWHEAD
 cp;02C3;na=MODIFIER LETTER RIGHT ARROWHEAD
 cp;02C4;ea=A;na=MODIFIER LETTER UP ARROWHEAD
 cp;02C5;na=MODIFIER LETTER DOWN ARROWHEAD
-cp;02C6;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER CIRCUMFLEX ACCENT;SB=LE;WB=LE;XIDC;XIDS
-cp;02C7;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=CARON;SB=LE;WB=LE;XIDC;XIDS
-cp;02C8;Alpha;gc=Lm;IDC;IDS;lb=BB;na=MODIFIER LETTER VERTICAL LINE;SB=LE;WB=LE;XIDC;XIDS
-cp;02C9;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER MACRON;SB=LE;WB=LE;XIDC;XIDS
-cp;02CA;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER ACUTE ACCENT;SB=LE;WB=LE;XIDC;XIDS
-cp;02CB;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER GRAVE ACCENT;SB=LE;WB=LE;XIDC;XIDS
-cp;02CC;Alpha;gc=Lm;IDC;IDS;lb=BB;na=MODIFIER LETTER LOW VERTICAL LINE;SB=LE;WB=LE;XIDC;XIDS
-cp;02CD;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER LOW MACRON;SB=LE;WB=LE;XIDC;XIDS
-cp;02CE;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER LOW GRAVE ACCENT;SB=LE;WB=LE;XIDC;XIDS
-cp;02CF;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER LOW ACUTE ACCENT;SB=LE;WB=LE;XIDC;XIDS
-cp;02D0;Alpha;bc=L;ea=A;Ext;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER TRIANGULAR COLON;SB=LE;WB=LE;XIDC;XIDS
-cp;02D1;Alpha;bc=L;Ext;gc=Lm;IDC;IDS;na=MODIFIER LETTER HALF TRIANGULAR COLON;SB=LE;WB=LE;XIDC;XIDS
+cp;02C6;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER CIRCUMFLEX ACCENT;SB=LE;XIDC;XIDS
+cp;02C7;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=CARON;SB=LE;XIDC;XIDS
+cp;02C8;Alpha;gc=Lm;IDC;IDS;lb=BB;na=MODIFIER LETTER VERTICAL LINE;SB=LE;XIDC;XIDS
+cp;02C9;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER MACRON;SB=LE;XIDC;XIDS
+cp;02CA;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER ACUTE ACCENT;SB=LE;XIDC;XIDS
+cp;02CB;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER GRAVE ACCENT;SB=LE;XIDC;XIDS
+cp;02CC;Alpha;gc=Lm;IDC;IDS;lb=BB;na=MODIFIER LETTER LOW VERTICAL LINE;SB=LE;XIDC;XIDS
+cp;02CD;Alpha;ea=A;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER LOW MACRON;SB=LE;XIDC;XIDS
+cp;02CE;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER LOW GRAVE ACCENT;SB=LE;XIDC;XIDS
+cp;02CF;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER LOW ACUTE ACCENT;SB=LE;XIDC;XIDS
+cp;02D0;Alpha;bc=L;ea=A;Ext;gc=Lm;IDC;IDS;lb=AI;na=MODIFIER LETTER TRIANGULAR COLON;SB=LE;XIDC;XIDS
+cp;02D1;Alpha;bc=L;Ext;gc=Lm;IDC;IDS;na=MODIFIER LETTER HALF TRIANGULAR COLON;SB=LE;XIDC;XIDS
 cp;02D2;na=MODIFIER LETTER CENTRED RIGHT HALF RING
 cp;02D3;na=MODIFIER LETTER CENTRED LEFT HALF RING
 cp;02D4;na=MODIFIER LETTER UP TACK
 cp;02D5;na=MODIFIER LETTER DOWN TACK
 cp;02D6;na=MODIFIER LETTER PLUS SIGN
-cp;02D7;na=MODIFIER LETTER MINUS SIGN;WB=ML
+cp;02D7;na=MODIFIER LETTER MINUS SIGN
 # Spacing clones of diacritics
-cp;02D8;CWKCF;dm=0020 0306;dt=Com;ea=A;lb=AI;na=BREVE;NFKC_CF=0020 0306;NFKC_QC=N;NFKD_QC=N
-cp;02D9;CWKCF;dm=0020 0307;dt=Com;ea=A;lb=AI;na=DOT ABOVE;NFKC_CF=0020 0307;NFKC_QC=N;NFKD_QC=N
-cp;02DA;CWKCF;dm=0020 030A;dt=Com;ea=A;lb=AI;na=RING ABOVE;NFKC_CF=0020 030A;NFKC_QC=N;NFKD_QC=N
-cp;02DB;CWKCF;dm=0020 0328;dt=Com;ea=A;lb=AI;na=OGONEK;NFKC_CF=0020 0328;NFKC_QC=N;NFKD_QC=N
-cp;02DC;CWKCF;dm=0020 0303;dt=Com;na=SMALL TILDE;NFKC_CF=0020 0303;NFKC_QC=N;NFKD_QC=N
-cp;02DD;CWKCF;dm=0020 030B;dt=Com;ea=A;lb=AI;na=DOUBLE ACUTE ACCENT;NFKC_CF=0020 030B;NFKC_QC=N;NFKD_QC=N
+cp;02D8;CWKCF;dm=0020 0306;dt=Com;ea=A;lb=AI;na=BREVE;NFKC_CF=0020 0306;NFKC_QC=N;NFKD_QC=N;WB=XX
+cp;02D9;CWKCF;dm=0020 0307;dt=Com;ea=A;lb=AI;na=DOT ABOVE;NFKC_CF=0020 0307;NFKC_QC=N;NFKD_QC=N;WB=XX
+cp;02DA;CWKCF;dm=0020 030A;dt=Com;ea=A;lb=AI;na=RING ABOVE;NFKC_CF=0020 030A;NFKC_QC=N;NFKD_QC=N;WB=XX
+cp;02DB;CWKCF;dm=0020 0328;dt=Com;ea=A;lb=AI;na=OGONEK;NFKC_CF=0020 0328;NFKC_QC=N;NFKD_QC=N;WB=XX
+cp;02DC;CWKCF;dm=0020 0303;dt=Com;na=SMALL TILDE;NFKC_CF=0020 0303;NFKC_QC=N;NFKD_QC=N;WB=XX
+cp;02DD;CWKCF;dm=0020 030B;dt=Com;ea=A;lb=AI;na=DOUBLE ACUTE ACCENT;NFKC_CF=0020 030B;NFKC_QC=N;NFKD_QC=N;WB=XX
 # Additions based on 1989 IPA
 cp;02DE;na=MODIFIER LETTER RHOTIC HOOK
 cp;02DF;age=3.0;ea=A;lb=BB;na=MODIFIER LETTER CROSS ACCENT
-cp;02E0;Alpha;bc=L;Cased;CWKCF;dm=0263;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL GAMMA;NFKC_CF=0263;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02E1;Alpha;bc=L;Cased;CWKCF;dm=006C;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL L;NFKC_CF=006C;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02E2;Alpha;bc=L;Cased;CWKCF;dm=0073;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL S;NFKC_CF=0073;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02E3;Alpha;bc=L;Cased;CWKCF;dm=0078;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL X;NFKC_CF=0078;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
-cp;02E4;Alpha;bc=L;Cased;CWKCF;dm=0295;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;NFKC_CF=0295;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
+cp;02E0;Alpha;bc=L;Cased;CWKCF;dm=0263;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL GAMMA;NFKC_CF=0263;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02E1;Alpha;bc=L;Cased;CWKCF;dm=006C;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL L;NFKC_CF=006C;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02E2;Alpha;bc=L;Cased;CWKCF;dm=0073;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL S;NFKC_CF=0073;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02E3;Alpha;bc=L;Cased;CWKCF;dm=0078;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL X;NFKC_CF=0078;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
+cp;02E4;Alpha;bc=L;Cased;CWKCF;dm=0295;dt=Sup;gc=Lm;IDC;IDS;Lower;na=MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;NFKC_CF=0295;NFKC_QC=N;NFKD_QC=N;SB=LO;sc=Latn;XIDC;XIDS
 # Tone letters
-cp;02E5;na=MODIFIER LETTER EXTRA-HIGH TONE BAR
-cp;02E6;na=MODIFIER LETTER HIGH TONE BAR
-cp;02E7;na=MODIFIER LETTER MID TONE BAR
-cp;02E8;na=MODIFIER LETTER LOW TONE BAR
-cp;02E9;na=MODIFIER LETTER EXTRA-LOW TONE BAR
+cp;02E5;na=MODIFIER LETTER EXTRA-HIGH TONE BAR;WB=XX
+cp;02E6;na=MODIFIER LETTER HIGH TONE BAR;WB=XX
+cp;02E7;na=MODIFIER LETTER MID TONE BAR;WB=XX
+cp;02E8;na=MODIFIER LETTER LOW TONE BAR;WB=XX
+cp;02E9;na=MODIFIER LETTER EXTRA-LOW TONE BAR;WB=XX
 # Extended Bopomofo tone marks
-cp;02EA;age=3.0;na=MODIFIER LETTER YIN DEPARTING TONE MARK;sc=Bopo
-cp;02EB;age=3.0;na=MODIFIER LETTER YANG DEPARTING TONE MARK;sc=Bopo
+cp;02EA;age=3.0;na=MODIFIER LETTER YIN DEPARTING TONE MARK;sc=Bopo;WB=XX
+cp;02EB;age=3.0;na=MODIFIER LETTER YANG DEPARTING TONE MARK;sc=Bopo;WB=XX
 # IPA modifiers
-cp;02EC;age=3.0;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER VOICING;SB=LE;WB=LE;XIDC;XIDS
+cp;02EC;age=3.0;Alpha;gc=Lm;IDC;IDS;na=MODIFIER LETTER VOICING;SB=LE;XIDC;XIDS
 cp;02ED;age=3.0;na=MODIFIER LETTER UNASPIRATED
 # Other modifier letter
-cp;02EE;age=3.0;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER DOUBLE APOSTROPHE;SB=LE;WB=LE;XIDC;XIDS
+cp;02EE;age=3.0;Alpha;bc=L;gc=Lm;IDC;IDS;na=MODIFIER LETTER DOUBLE APOSTROPHE;SB=LE;XIDC;XIDS
 # UPA modifiers
 cp;02EF;age=4.0;na=MODIFIER LETTER LOW DOWN ARROWHEAD
 cp;02F0;age=4.0;na=MODIFIER LETTER LOW UP ARROWHEAD
@@ -3482,7 +3482,9 @@
 # Punctuation
 cp;085E;-Alpha;gc=Po;-IDC;-IDS;jt=U;na=MANDAIC PUNCTUATION;SB=XX;Term;WB=XX;-XIDC;-XIDS
 cp;085F;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;jt=U;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;0860..089F;bc=R
+cp;0860..086A;bc=AL;lb=AL;SB=LE;WB=LE
+cp;086B..086F;bc=AL
+cp;0870..089F;bc=R
 
 block;08A0..08FF;age=6.1;Alpha;bc=NSM;blk=Arabic_Ext_A;CI;gc=Mn;GCB=EX;Gr_Ext;IDC;jt=T;lb=CM;SB=EX;sc=Arab;WB=Extend;XIDC
 # 08A0..08FF Arabic Extended-A
@@ -3732,133 +3734,135 @@
 cp;097E;age=5.0;na=DEVANAGARI LETTER DDDA
 cp;097F;age=5.0;na=DEVANAGARI LETTER BBA
 
-block;0980..09FF;age=1.1;Alpha;blk=Bengali;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Beng;WB=LE;XIDC;XIDS
+block;0980..09FF;age=1.1;Alpha;blk=Bengali;gc=Lo;Gr_Base;IDC;InSC=Consonant;lb=AL;SB=LE;sc=Beng;WB=LE;XIDC
 # 0980..09FF Bengali
 # Various signs
-cp;0980;age=7.0;InSC=Other;na=BENGALI ANJI
-cp;0981;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=BENGALI SIGN CANDRABINDU;SB=EX;WB=Extend;-XIDS
-cp;0982;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=BENGALI SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
-cp;0983;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Visarga;lb=CM;na=BENGALI SIGN VISARGA;SB=EX;WB=Extend;-XIDS
-cp;0984;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;0980;age=7.0;IDS;InSC=Other;na=BENGALI ANJI;XIDS
+cp;0981;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=BENGALI SIGN CANDRABINDU;SB=EX;WB=Extend
+cp;0982;gc=Mc;GCB=SM;InPC=Right;InSC=Bindu;lb=CM;na=BENGALI SIGN ANUSVARA;SB=EX;WB=Extend
+cp;0983;gc=Mc;GCB=SM;InPC=Right;InSC=Visarga;lb=CM;na=BENGALI SIGN VISARGA;SB=EX;WB=Extend
+cp;0984;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Independent vowels
-cp;0985;InSC=Vowel_Independent;na=BENGALI LETTER A
-cp;0986;InSC=Vowel_Independent;na=BENGALI LETTER AA
-cp;0987;InSC=Vowel_Independent;na=BENGALI LETTER I
-cp;0988;InSC=Vowel_Independent;na=BENGALI LETTER II
-cp;0989;InSC=Vowel_Independent;na=BENGALI LETTER U
-cp;098A;InSC=Vowel_Independent;na=BENGALI LETTER UU
-cp;098B;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC R
-cp;098C;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC L
-cp;098D..098E;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;098F;InSC=Vowel_Independent;na=BENGALI LETTER E
-cp;0990;InSC=Vowel_Independent;na=BENGALI LETTER AI
-cp;0991..0992;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;0993;InSC=Vowel_Independent;na=BENGALI LETTER O
-cp;0994;InSC=Vowel_Independent;na=BENGALI LETTER AU
+cp;0985;IDS;InSC=Vowel_Independent;na=BENGALI LETTER A;XIDS
+cp;0986;IDS;InSC=Vowel_Independent;na=BENGALI LETTER AA;XIDS
+cp;0987;IDS;InSC=Vowel_Independent;na=BENGALI LETTER I;XIDS
+cp;0988;IDS;InSC=Vowel_Independent;na=BENGALI LETTER II;XIDS
+cp;0989;IDS;InSC=Vowel_Independent;na=BENGALI LETTER U;XIDS
+cp;098A;IDS;InSC=Vowel_Independent;na=BENGALI LETTER UU;XIDS
+cp;098B;IDS;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC R;XIDS
+cp;098C;IDS;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC L;XIDS
+cp;098D..098E;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;098F;IDS;InSC=Vowel_Independent;na=BENGALI LETTER E;XIDS
+cp;0990;IDS;InSC=Vowel_Independent;na=BENGALI LETTER AI;XIDS
+cp;0991..0992;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;0993;IDS;InSC=Vowel_Independent;na=BENGALI LETTER O;XIDS
+cp;0994;IDS;InSC=Vowel_Independent;na=BENGALI LETTER AU;XIDS
 # Consonants
-cp;0995;na=BENGALI LETTER KA
-cp;0996;na=BENGALI LETTER KHA
-cp;0997;na=BENGALI LETTER GA
-cp;0998;na=BENGALI LETTER GHA
-cp;0999;na=BENGALI LETTER NGA
-cp;099A;na=BENGALI LETTER CA
-cp;099B;na=BENGALI LETTER CHA
-cp;099C;na=BENGALI LETTER JA
-cp;099D;na=BENGALI LETTER JHA
-cp;099E;na=BENGALI LETTER NYA
-cp;099F;na=BENGALI LETTER TTA
-cp;09A0;na=BENGALI LETTER TTHA
-cp;09A1;na=BENGALI LETTER DDA
-cp;09A2;na=BENGALI LETTER DDHA
-cp;09A3;na=BENGALI LETTER NNA
-cp;09A4;na=BENGALI LETTER TA
-cp;09A5;na=BENGALI LETTER THA
-cp;09A6;na=BENGALI LETTER DA
-cp;09A7;na=BENGALI LETTER DHA
-cp;09A8;na=BENGALI LETTER NA
-cp;09A9;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;09AA;na=BENGALI LETTER PA
-cp;09AB;na=BENGALI LETTER PHA
-cp;09AC;na=BENGALI LETTER BA
-cp;09AD;na=BENGALI LETTER BHA
-cp;09AE;na=BENGALI LETTER MA
-cp;09AF;na=BENGALI LETTER YA
-cp;09B0;na=BENGALI LETTER RA
-cp;09B1;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;09B2;na=BENGALI LETTER LA
-cp;09B3..09B5;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;09B6;na=BENGALI LETTER SHA
-cp;09B7;na=BENGALI LETTER SSA
-cp;09B8;na=BENGALI LETTER SA
-cp;09B9;na=BENGALI LETTER HA
-cp;09BA..09BB;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;0995;IDS;na=BENGALI LETTER KA;XIDS
+cp;0996;IDS;na=BENGALI LETTER KHA;XIDS
+cp;0997;IDS;na=BENGALI LETTER GA;XIDS
+cp;0998;IDS;na=BENGALI LETTER GHA;XIDS
+cp;0999;IDS;na=BENGALI LETTER NGA;XIDS
+cp;099A;IDS;na=BENGALI LETTER CA;XIDS
+cp;099B;IDS;na=BENGALI LETTER CHA;XIDS
+cp;099C;IDS;na=BENGALI LETTER JA;XIDS
+cp;099D;IDS;na=BENGALI LETTER JHA;XIDS
+cp;099E;IDS;na=BENGALI LETTER NYA;XIDS
+cp;099F;IDS;na=BENGALI LETTER TTA;XIDS
+cp;09A0;IDS;na=BENGALI LETTER TTHA;XIDS
+cp;09A1;IDS;na=BENGALI LETTER DDA;XIDS
+cp;09A2;IDS;na=BENGALI LETTER DDHA;XIDS
+cp;09A3;IDS;na=BENGALI LETTER NNA;XIDS
+cp;09A4;IDS;na=BENGALI LETTER TA;XIDS
+cp;09A5;IDS;na=BENGALI LETTER THA;XIDS
+cp;09A6;IDS;na=BENGALI LETTER DA;XIDS
+cp;09A7;IDS;na=BENGALI LETTER DHA;XIDS
+cp;09A8;IDS;na=BENGALI LETTER NA;XIDS
+cp;09A9;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09AA;IDS;na=BENGALI LETTER PA;XIDS
+cp;09AB;IDS;na=BENGALI LETTER PHA;XIDS
+cp;09AC;IDS;na=BENGALI LETTER BA;XIDS
+cp;09AD;IDS;na=BENGALI LETTER BHA;XIDS
+cp;09AE;IDS;na=BENGALI LETTER MA;XIDS
+cp;09AF;IDS;na=BENGALI LETTER YA;XIDS
+cp;09B0;IDS;na=BENGALI LETTER RA;XIDS
+cp;09B1;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09B2;IDS;na=BENGALI LETTER LA;XIDS
+cp;09B3..09B5;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09B6;IDS;na=BENGALI LETTER SHA;XIDS
+cp;09B7;IDS;na=BENGALI LETTER SSA;XIDS
+cp;09B8;IDS;na=BENGALI LETTER SA;XIDS
+cp;09B9;IDS;na=BENGALI LETTER HA;XIDS
+cp;09BA..09BB;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Various signs
-cp;09BC;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=BENGALI SIGN NUKTA;SB=EX;WB=Extend;-XIDS
-cp;09BD;age=4.0;InSC=Avagraha;na=BENGALI SIGN AVAGRAHA
+cp;09BC;-Alpha;bc=NSM;ccc=7;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Nukta;jt=T;lb=CM;na=BENGALI SIGN NUKTA;SB=EX;WB=Extend
+cp;09BD;age=4.0;IDS;InSC=Avagraha;na=BENGALI SIGN AVAGRAHA;XIDS
 # Dependent vowel signs
-cp;09BE;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AA;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend;-XIDS
-cp;09BF;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN I;SB=EX;WB=Extend;-XIDS
-cp;09C0;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN II;SB=EX;WB=Extend;-XIDS
-cp;09C1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN U;SB=EX;WB=Extend;-XIDS
-cp;09C2;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN UU;SB=EX;WB=Extend;-XIDS
-cp;09C3;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC R;SB=EX;WB=Extend;-XIDS
-cp;09C4;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC RR;SB=EX;WB=Extend;-XIDS
-cp;09C5..09C6;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;09C7;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN E;SB=EX;WB=Extend;-XIDS
-cp;09C8;gc=Mc;GCB=SM;-IDS;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AI;SB=EX;WB=Extend;-XIDS
-cp;09C9..09CA;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;09BE;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AA;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend
+cp;09BF;gc=Mc;GCB=SM;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN I;SB=EX;WB=Extend
+cp;09C0;gc=Mc;GCB=SM;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN II;SB=EX;WB=Extend
+cp;09C1;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN U;SB=EX;WB=Extend
+cp;09C2;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN UU;SB=EX;WB=Extend
+cp;09C3;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC R;SB=EX;WB=Extend
+cp;09C4;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC RR;SB=EX;WB=Extend
+cp;09C5..09C6;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09C7;gc=Mc;GCB=SM;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN E;SB=EX;WB=Extend
+cp;09C8;gc=Mc;GCB=SM;InPC=Left;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AI;SB=EX;WB=Extend
+cp;09C9..09CA;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Two-part dependent vowel signs
-cp;09CB;dm=09C7 09BE;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN O;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend;-XIDS
-cp;09CC;dm=09C7 09D7;dt=Can;gc=Mc;GCB=SM;-IDS;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AU;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend;-XIDS
+cp;09CB;dm=09C7 09BE;dt=Can;gc=Mc;GCB=SM;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN O;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend
+cp;09CC;dm=09C7 09D7;dt=Can;gc=Mc;GCB=SM;InPC=Left_And_Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI VOWEL SIGN AU;NFD_QC=N;NFKD_QC=N;SB=EX;WB=Extend
 # Virama
-cp;09CD;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;-IDS;InPC=Bottom;InSC=Virama;jt=T;lb=CM;na=BENGALI SIGN VIRAMA;SB=EX;WB=Extend;-XIDS
+cp;09CD;-Alpha;bc=NSM;ccc=9;CI;Dia;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;Gr_Link;InPC=Bottom;InSC=Virama;jt=T;lb=CM;na=BENGALI SIGN VIRAMA;SB=EX;WB=Extend
 # Additional consonant
-cp;09CE;age=4.1;InSC=Consonant_Dead;na=BENGALI LETTER KHANDA TA
-cp;09CF..09D6;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;09CE;age=4.1;IDS;InSC=Consonant_Dead;na=BENGALI LETTER KHANDA TA;XIDS
+cp;09CF..09D6;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Sign
-cp;09D7;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI AU LENGTH MARK;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend;-XIDS
-cp;09D8..09DB;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;09D7;gc=Mc;GCB=EX;-Gr_Base;Gr_Ext;InPC=Right;InSC=Vowel_Dependent;lb=CM;na=BENGALI AU LENGTH MARK;NFC_QC=M;NFKC_QC=M;SB=EX;WB=Extend
+cp;09D8..09DB;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Additional consonants
-cp;09DC;Comp_Ex;CWKCF;dm=09A1 09BC;dt=Can;na=BENGALI LETTER RRA;NFC_QC=N;NFD_QC=N;NFKC_CF=09A1 09BC;NFKC_QC=N;NFKD_QC=N
-cp;09DD;Comp_Ex;CWKCF;dm=09A2 09BC;dt=Can;na=BENGALI LETTER RHA;NFC_QC=N;NFD_QC=N;NFKC_CF=09A2 09BC;NFKC_QC=N;NFKD_QC=N
-cp;09DE;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
-cp;09DF;Comp_Ex;CWKCF;dm=09AF 09BC;dt=Can;na=BENGALI LETTER YYA;NFC_QC=N;NFD_QC=N;NFKC_CF=09AF 09BC;NFKC_QC=N;NFKD_QC=N
+cp;09DC;Comp_Ex;CWKCF;dm=09A1 09BC;dt=Can;IDS;na=BENGALI LETTER RRA;NFC_QC=N;NFD_QC=N;NFKC_CF=09A1 09BC;NFKC_QC=N;NFKD_QC=N;XIDS
+cp;09DD;Comp_Ex;CWKCF;dm=09A2 09BC;dt=Can;IDS;na=BENGALI LETTER RHA;NFC_QC=N;NFD_QC=N;NFKC_CF=09A2 09BC;NFKC_QC=N;NFKD_QC=N;XIDS
+cp;09DE;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09DF;Comp_Ex;CWKCF;dm=09AF 09BC;dt=Can;IDS;na=BENGALI LETTER YYA;NFC_QC=N;NFD_QC=N;NFKC_CF=09AF 09BC;NFKC_QC=N;NFKD_QC=N;XIDS
 # Additional vowels for Sanskrit
-cp;09E0;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC RR
-cp;09E1;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC LL
-cp;09E2;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC L;SB=EX;WB=Extend;-XIDS
-cp;09E3;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC LL;SB=EX;WB=Extend;-XIDS
+cp;09E0;IDS;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC RR;XIDS
+cp;09E1;IDS;InSC=Vowel_Independent;na=BENGALI LETTER VOCALIC LL;XIDS
+cp;09E2;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC L;SB=EX;WB=Extend
+cp;09E3;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;InPC=Bottom;InSC=Vowel_Dependent;jt=T;lb=CM;na=BENGALI VOWEL SIGN VOCALIC LL;SB=EX;WB=Extend
 # Reserved
-cp;09E4..09E5;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;09E4..09E5;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Digits
-cp;09E6;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT ZERO;nt=De;nv=0;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09E7;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT ONE;nt=De;nv=1;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09E8;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT TWO;nt=De;nv=2;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09E9;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT THREE;nt=De;nv=3;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09EA;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT FOUR;nt=De;nv=4;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09EB;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT FIVE;nt=De;nv=5;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09EC;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT SIX;nt=De;nv=6;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09ED;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT SEVEN;nt=De;nv=7;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09EE;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT EIGHT;nt=De;nv=8;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
-cp;09EF;-Alpha;gc=Nd;-IDS;InSC=Number;lb=NU;na=BENGALI DIGIT NINE;nt=De;nv=9;SB=NU;scx=Beng Cakm Sylo;WB=NU;-XIDS
+cp;09E6;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT ZERO;nt=De;nv=0;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09E7;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT ONE;nt=De;nv=1;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09E8;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT TWO;nt=De;nv=2;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09E9;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT THREE;nt=De;nv=3;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09EA;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT FOUR;nt=De;nv=4;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09EB;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT FIVE;nt=De;nv=5;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09EC;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT SIX;nt=De;nv=6;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09ED;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT SEVEN;nt=De;nv=7;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09EE;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT EIGHT;nt=De;nv=8;SB=NU;scx=Beng Cakm Sylo;WB=NU
+cp;09EF;-Alpha;gc=Nd;InSC=Number;lb=NU;na=BENGALI DIGIT NINE;nt=De;nv=9;SB=NU;scx=Beng Cakm Sylo;WB=NU
 # Additions for Assamese
-cp;09F0;na=BENGALI LETTER RA WITH MIDDLE DIAGONAL
-cp;09F1;na=BENGALI LETTER RA WITH LOWER DIAGONAL
+cp;09F0;IDS;na=BENGALI LETTER RA WITH MIDDLE DIAGONAL;XIDS
+cp;09F1;IDS;na=BENGALI LETTER RA WITH LOWER DIAGONAL;XIDS
 # Currency signs
-cp;09F2;-Alpha;bc=ET;gc=Sc;-IDC;-IDS;InSC=Other;lb=PO;na=BENGALI RUPEE MARK;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F3;-Alpha;bc=ET;gc=Sc;-IDC;-IDS;InSC=Other;lb=PO;na=BENGALI RUPEE SIGN;SB=XX;WB=XX;-XIDC;-XIDS
+cp;09F2;-Alpha;bc=ET;gc=Sc;-IDC;InSC=Other;lb=PO;na=BENGALI RUPEE MARK;SB=XX;WB=XX;-XIDC
+cp;09F3;-Alpha;bc=ET;gc=Sc;-IDC;InSC=Other;lb=PO;na=BENGALI RUPEE SIGN;SB=XX;WB=XX;-XIDC
 # Historic symbols for fractional values
-cp;09F4;-Alpha;gc=No;-IDC;-IDS;InSC=Other;na=BENGALI CURRENCY NUMERATOR ONE;nt=Nu;nv=1/16;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F5;-Alpha;gc=No;-IDC;-IDS;InSC=Other;na=BENGALI CURRENCY NUMERATOR TWO;nt=Nu;nv=1/8;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F6;-Alpha;gc=No;-IDC;-IDS;InSC=Other;na=BENGALI CURRENCY NUMERATOR THREE;nt=Nu;nv=3/16;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F7;-Alpha;gc=No;-IDC;-IDS;InSC=Other;na=BENGALI CURRENCY NUMERATOR FOUR;nt=Nu;nv=1/4;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F8;-Alpha;gc=No;-IDC;-IDS;InSC=Other;na=BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;nt=Nu;nv=3/4;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09F9;-Alpha;gc=No;-IDC;-IDS;InSC=Other;lb=PO;na=BENGALI CURRENCY DENOMINATOR SIXTEEN;nt=Nu;nv=16;SB=XX;WB=XX;-XIDC;-XIDS
+cp;09F4;-Alpha;gc=No;-IDC;InSC=Other;na=BENGALI CURRENCY NUMERATOR ONE;nt=Nu;nv=1/16;SB=XX;WB=XX;-XIDC
+cp;09F5;-Alpha;gc=No;-IDC;InSC=Other;na=BENGALI CURRENCY NUMERATOR TWO;nt=Nu;nv=1/8;SB=XX;WB=XX;-XIDC
+cp;09F6;-Alpha;gc=No;-IDC;InSC=Other;na=BENGALI CURRENCY NUMERATOR THREE;nt=Nu;nv=3/16;SB=XX;WB=XX;-XIDC
+cp;09F7;-Alpha;gc=No;-IDC;InSC=Other;na=BENGALI CURRENCY NUMERATOR FOUR;nt=Nu;nv=1/4;SB=XX;WB=XX;-XIDC
+cp;09F8;-Alpha;gc=No;-IDC;InSC=Other;na=BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;nt=Nu;nv=3/4;SB=XX;WB=XX;-XIDC
+cp;09F9;-Alpha;gc=No;-IDC;InSC=Other;lb=PO;na=BENGALI CURRENCY DENOMINATOR SIXTEEN;nt=Nu;nv=16;SB=XX;WB=XX;-XIDC
 # Sign
-cp;09FA;-Alpha;gc=So;-IDC;-IDS;InSC=Other;na=BENGALI ISSHAR;SB=XX;WB=XX;-XIDC;-XIDS
+cp;09FA;-Alpha;gc=So;-IDC;InSC=Other;na=BENGALI ISSHAR;SB=XX;WB=XX;-XIDC
 # Historic currency sign
-cp;09FB;age=5.2;-Alpha;bc=ET;gc=Sc;-IDC;-IDS;InSC=Other;lb=PR;na=BENGALI GANDA MARK;SB=XX;WB=XX;-XIDC;-XIDS
-cp;09FC..09FF;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;09FB;age=5.2;-Alpha;bc=ET;gc=Sc;-IDC;InSC=Other;lb=PR;na=BENGALI GANDA MARK;SB=XX;WB=XX;-XIDC
+cp;09FC;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;sc=Zzzz;-XIDC
+cp;09FD;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;09FE..09FF;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 
 block;0A00..0A7F;age=1.1;Alpha;blk=Gurmukhi;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Guru;WB=LE;XIDC;XIDS
 # 0A00..0A7F Gurmukhi
@@ -4085,7 +4089,7 @@
 cp;0AF2..0AF8;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
 # Additional consonant
 cp;0AF9;age=8.0;na=GUJARATI LETTER ZHA
-cp;0AFA..0AFF;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;0AFA..0AFF;age=NA;-Alpha;bc=NSM;gc=Cn;GCB=EX;-Gr_Base;-IDC;-IDS;InSC=Other;lb=CM;SB=EX;sc=Zzzz;WB=Extend;-XIDC;-XIDS
 
 block;0B00..0B7F;age=1.1;Alpha;blk=Oriya;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Orya;WB=LE;XIDC;XIDS
 # 0B00..0B7F Oriya
@@ -4562,7 +4566,7 @@
 
 block;0D00..0D7F;age=1.1;Alpha;blk=Malayalam;gc=Lo;Gr_Base;IDC;IDS;InSC=Consonant;lb=AL;SB=LE;sc=Mlym;WB=LE;XIDC;XIDS
 # 0D00..0D7F Malayalam
-cp;0D00;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;0D00;age=NA;-Alpha;bc=NSM;gc=Cn;GCB=EX;-Gr_Base;-IDC;-IDS;InSC=Other;lb=CM;SB=EX;sc=Zzzz;WB=Extend;-XIDC;-XIDS
 # Various signs
 cp;0D01;age=7.0;bc=NSM;CI;gc=Mn;GCB=EX;-Gr_Base;Gr_Ext;-IDS;InPC=Top;InSC=Bindu;jt=T;lb=CM;na=MALAYALAM SIGN CANDRABINDU;SB=EX;WB=Extend;-XIDS
 cp;0D02;gc=Mc;GCB=SM;-IDS;InPC=Right;InSC=Bindu;lb=CM;na=MALAYALAM SIGN ANUSVARA;SB=EX;WB=Extend;-XIDS
@@ -4624,7 +4628,7 @@
 cp;0D38;na=MALAYALAM LETTER SA
 cp;0D39;na=MALAYALAM LETTER HA
 cp;0D3A;age=6.0;na=MALAYALAM LETTER TTTA
-cp;0D3B..0D3C;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;0D3B..0D3C;age=NA;-Alpha;bc=NSM;gc=Cn;GCB=EX;-Gr_Base;-IDC;-IDS;InSC=Other;lb=CM;SB=EX;sc=Zzzz;WB=Extend;-XIDC;-XIDS
 # Addition for Sanskrit
 cp;0D3D;age=5.1;InSC=Avagraha;na=MALAYALAM SIGN AVAGRAHA
 # Dependent vowel signs
@@ -8595,7 +8599,7 @@
 # Signs
 cp;1CF5;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=AL;na=VEDIC SIGN JIHVAMULIYA;SB=LE;sc=Zyyy;scx=Deva Knda;WB=LE;XIDS
 cp;1CF6;age=6.1;Alpha;bc=L;-CI;-Dia;gc=Lo;GCB=XX;Gr_Base;-Gr_Ext;IDS;jt=U;lb=AL;na=VEDIC SIGN UPADHMANIYA;SB=LE;sc=Zyyy;WB=LE;XIDS
-cp;1CF7;age=NA;bc=L;-CI;-Dia;gc=Cn;GCB=XX;-Gr_Ext;-IDC;jt=U;lb=XX;SB=XX;sc=Zzzz;scx=<script>;WB=XX;-XIDC
+cp;1CF7;age=NA;bc=L;-CI;-Dia;gc=Cn;GCB=SM;-Gr_Ext;-IDC;jt=U;sc=Zzzz;scx=<script>;-XIDC
 # Signs for Jaiminiya Sama Veda
 cp;1CF8;age=7.0;ccc=230;InSC=Cantillation_Mark;na=VEDIC TONE RING ABOVE;scx=Deva Gran
 cp;1CF9;age=7.0;ccc=230;InSC=Cantillation_Mark;na=VEDIC TONE DOUBLE RING ABOVE;scx=Deva Gran
@@ -8879,7 +8883,8 @@
 cp;1DF4;age=7.0;Alpha;na=COMBINING LATIN SMALL LETTER U WITH DIAERESIS
 # Diacritic for American lexicography
 cp;1DF5;age=7.0;Dia;na=COMBINING UP TACK ABOVE
-cp;1DF6..1DFA;age=NA;bc=L;ccc=0;-CI;gc=Cn;GCB=XX;-Gr_Ext;-IDC;jt=U;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;1DF6..1DF9;age=NA;ccc=0;-CI;gc=Cn;-Gr_Ext;-IDC;jt=U;sc=Zzzz;-XIDC
+cp;1DFA;age=NA;bc=L;ccc=0;-CI;gc=Cn;GCB=XX;-Gr_Ext;-IDC;jt=U;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
 # Miscellaneous mark
 cp;1DFB;age=9.0;InPC=Top;InSC=Syllable_Modifier;na=COMBINING DELETION MARK
 # Double diacritic mark for UPA
@@ -9631,7 +9636,8 @@
 cp;20BC;age=7.0;na=MANAT SIGN
 cp;20BD;age=7.0;na=RUBLE SIGN
 cp;20BE;age=8.0;lb=PO;na=LARI SIGN
-cp;20BF..20CF;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
+cp;20BF;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
+cp;20C0..20CF;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
 
 block;20D0..20FF;age=1.1;bc=NSM;blk=Diacriticals_For_Symbols;ccc=230;CI;gc=Mn;GCB=EX;Gr_Ext;IDC;jt=T;lb=CM;Math;SB=EX;sc=Zinh;WB=Extend;XIDC
 # 20D0..20FF Combining Diacritical Marks for Symbols
@@ -10555,7 +10561,7 @@
 cp;23FD;age=9.0;na=POWER ON SYMBOL
 # Power symbol from IEEE 1621-2004
 cp;23FE;age=9.0;na=POWER SLEEP SYMBOL
-cp;23FF;age=NA;bc=L;gc=Cn;-Gr_Base;lb=XX;sc=Zzzz
+cp;23FF;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
 
 block;2400..243F;age=1.1;bc=ON;blk=Control_Pictures;gc=So;Gr_Base;lb=AL;Pat_Syn;sc=Zyyy
 # 2400..243F Control Pictures
@@ -11158,9 +11164,9 @@
 cp;263D;na=FIRST QUARTER MOON
 cp;263E;na=LAST QUARTER MOON
 cp;263F;na=MERCURY
-cp;2640;ea=A;Emoji;lb=AI;Math;na=FEMALE SIGN
+cp;2640;ea=A;Emoji;GCB=GAZ;lb=AI;Math;na=FEMALE SIGN;WB=GAZ
 cp;2641;na=EARTH
-cp;2642;ea=A;Emoji;lb=AI;Math;na=MALE SIGN
+cp;2642;ea=A;Emoji;GCB=GAZ;lb=AI;Math;na=MALE SIGN;WB=GAZ
 cp;2643;na=JUPITER
 cp;2644;na=SATURN
 cp;2645;na=URANUS
@@ -11255,8 +11261,8 @@
 cp;2692;age=4.1;Emoji;na=HAMMER AND PICK
 cp;2693;age=4.1;ea=W;Emoji;Emoji_Presentation;na=ANCHOR
 cp;2694;age=4.1;Emoji;na=CROSSED SWORDS
-cp;2695;age=4.1;Emoji;na=STAFF OF AESCULAPIUS
-cp;2696;age=4.1;Emoji;na=SCALES
+cp;2695;age=4.1;Emoji;GCB=GAZ;na=STAFF OF AESCULAPIUS;WB=GAZ
+cp;2696;age=4.1;Emoji;GCB=GAZ;na=SCALES;WB=GAZ
 cp;2697;age=4.1;Emoji;na=ALEMBIC
 cp;2698;age=4.1;na=FLOWER
 cp;2699;age=4.1;Emoji;na=GEAR
@@ -11394,7 +11400,7 @@
 cp;2705;age=6.0;ea=W;Emoji;Emoji_Presentation;na=WHITE HEAVY CHECK MARK
 cp;2706;na=TELEPHONE LOCATION SIGN
 cp;2707;na=TAPE DRIVE
-cp;2708;Emoji;lb=ID;na=AIRPLANE
+cp;2708;Emoji;GCB=GAZ;lb=ID;na=AIRPLANE;WB=GAZ
 cp;2709;Emoji;lb=ID;na=ENVELOPE
 cp;270A;age=6.0;ea=W;Emoji;Emoji_Modifier_Base;Emoji_Presentation;GCB=EB;lb=EB;na=RAISED FIST;WB=EB
 cp;270B;age=6.0;ea=W;Emoji;Emoji_Modifier_Base;Emoji_Presentation;GCB=EB;lb=EB;na=RAISED HAND;WB=EB
@@ -12753,7 +12759,8 @@
 # Miscellaneous symbols
 cp;2BD0;na=SQUARE POSITION INDICATOR
 cp;2BD1;na=UNCERTAINTY SIGN
-cp;2BD2..2BEB;age=NA;bc=L;gc=Cn;-Gr_Base;lb=XX;sc=Zzzz
+cp;2BD2;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
+cp;2BD3..2BEB;age=NA;bc=L;gc=Cn;-Gr_Base;lb=XX;sc=Zzzz
 # Two-headed arrow symbols
 cp;2BEC;age=8.0;na=LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
 cp;2BED;age=8.0;na=UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
@@ -13379,7 +13386,8 @@
 cp;2E43;age=9.0;na=DASH WITH LEFT UPTURN;scx=Cyrl Glag
 # Miscellaneous punctuation
 cp;2E44;age=9.0;na=DOUBLE SUSPENSION MARK
-cp;2E45..2E7F;age=NA;bc=L;gc=Cn;-Gr_Base;lb=XX;sc=Zzzz
+cp;2E45..2E49;age=NA;gc=Cn;-Gr_Base;sc=Zzzz
+cp;2E4A..2E7F;age=NA;bc=L;gc=Cn;-Gr_Base;lb=XX;sc=Zzzz
 
 block;2E80..2EFF;age=3.0;bc=ON;blk=CJK_Radicals_Sup;ea=W;gc=So;Gr_Base;lb=ID;Radical;sc=Hani
 # 2E80..2EFF CJK Radicals Supplement
@@ -14072,7 +14080,8 @@
 cp;312C;na=BOPOMOFO LETTER GN
 # Miscellaneous addition
 cp;312D;age=5.1;na=BOPOMOFO LETTER IH
-cp;312E..312F;age=NA;-Alpha;ea=N;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;312E;age=NA;-Alpha;ea=N;gc=Cn;-Gr_Base;-IDC;-IDS;sc=Zzzz;-XIDC;-XIDS
+cp;312F;age=NA;-Alpha;ea=N;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
 
 block;3130..318F;age=1.1;Alpha;blk=Compat_Jamo;CWKCF;dt=Com;ea=W;gc=Lo;Gr_Base;IDC;IDS;lb=ID;NFKC_QC=N;NFKD_QC=N;SB=LE;sc=Hang;WB=LE;XIDC;XIDS
 # 3130..318F Hangul Compatibility Jamo
@@ -14975,7 +14984,8 @@
 cp;9FC4..9FCB;age=5.2
 cp;9FCC;age=6.1
 cp;9FCD..9FD5;age=8.0
-cp;9FD6..9FFF;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-Ideo;-IDS;SB=XX;sc=Zzzz;-UIdeo;-XIDC;-XIDS
+cp;9FD6..9FEA;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-Ideo;-IDS;sc=Zzzz;-UIdeo;-XIDC;-XIDS
+cp;9FEB..9FFF;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-Ideo;-IDS;SB=XX;sc=Zzzz;-UIdeo;-XIDC;-XIDS
 
 block;A000..A48F;age=3.0;Alpha;blk=Yi_Syllables;ea=W;gc=Lo;Gr_Base;IDC;IDS;lb=ID;SB=LE;sc=Yiii;WB=LE;XIDC;XIDS
 # A000..A48F Yi Syllables
@@ -16829,8 +16839,8 @@
 block;A720..A7FF;age=5.1;Alpha;blk=Latin_Ext_D;Cased;CWCM;gc=Ll;Gr_Base;IDC;IDS;lb=AL;SB=LO;sc=Latn;WB=LE;XIDC;XIDS
 # A720..A7FF Latin Extended-D
 # Additions for UPA
-cp;A720;age=5.0;-Alpha;bc=ON;-Cased;CI;-CWCM;Dia;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER STRESS AND HIGH TONE;SB=XX;sc=Zyyy;WB=XX;-XIDC;-XIDS
-cp;A721;age=5.0;-Alpha;bc=ON;-Cased;CI;-CWCM;Dia;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER STRESS AND LOW TONE;SB=XX;sc=Zyyy;WB=XX;-XIDC;-XIDS
+cp;A720;age=5.0;-Alpha;bc=ON;-Cased;CI;-CWCM;Dia;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER STRESS AND HIGH TONE;SB=XX;sc=Zyyy;-XIDC;-XIDS
+cp;A721;age=5.0;-Alpha;bc=ON;-Cased;CI;-CWCM;Dia;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER STRESS AND LOW TONE;SB=XX;sc=Zyyy;-XIDC;-XIDS
 # Egyptological additions
 cp;A722;cf=A723;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF;NFKC_CF=A723;SB=UP;scf=A723;slc=A723;Upper
 cp;A723;CWT;CWU;Lower;na=LATIN SMALL LETTER EGYPTOLOGICAL ALEF;stc=A722;suc=A722
@@ -16939,8 +16949,8 @@
 cp;A787;CWT;CWU;Lower;na=LATIN SMALL LETTER INSULAR T;stc=A786;suc=A786
 # Modifier letters
 cp;A788;bc=ON;-Cased;CI;-CWCM;Dia;gc=Lm;na=MODIFIER LETTER LOW CIRCUMFLEX ACCENT;SB=LE;sc=Zyyy
-cp;A789;-Alpha;-Cased;CI;-CWCM;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER COLON;SB=XX;sc=Zyyy;WB=XX;-XIDC;-XIDS
-cp;A78A;-Alpha;-Cased;CI;-CWCM;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER SHORT EQUALS SIGN;SB=XX;sc=Zyyy;WB=XX;-XIDC;-XIDS
+cp;A789;-Alpha;-Cased;CI;-CWCM;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER COLON;SB=XX;sc=Zyyy;-XIDC;-XIDS
+cp;A78A;-Alpha;-Cased;CI;-CWCM;gc=Sk;-IDC;-IDS;na=MODIFIER LETTER SHORT EQUALS SIGN;SB=XX;sc=Zyyy;-XIDC;-XIDS
 # Orthographic letters for glottals
 cp;A78B;cf=A78C;CWCF;CWKCF;CWL;gc=Lu;na=LATIN CAPITAL LETTER SALTILLO;NFKC_CF=A78C;SB=UP;scf=A78C;slc=A78C;Upper
 cp;A78C;CWT;CWU;Lower;na=LATIN SMALL LETTER SALTILLO;stc=A78B;suc=A78B
@@ -17921,7 +17931,7 @@
 cp;AB59;na=LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
 cp;AB5A;na=LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
 # Modifier letters for German dialectology
-cp;AB5B;-Alpha;-Cased;CI;Dia;gc=Sk;-IDC;-IDS;-Lower;na=MODIFIER BREVE WITH INVERTED BREVE;SB=XX;sc=Zyyy;WB=XX;-XIDC;-XIDS
+cp;AB5B;-Alpha;-Cased;CI;Dia;gc=Sk;-IDC;-IDS;-Lower;na=MODIFIER BREVE WITH INVERTED BREVE;SB=XX;sc=Zyyy;-XIDC;-XIDS
 cp;AB5C;CI;CWKCF;Dia;dm=A727;dt=Sup;gc=Lm;na=MODIFIER LETTER SMALL HENG;NFKC_CF=A727;NFKC_QC=N;NFKD_QC=N
 cp;AB5D;CI;CWKCF;Dia;dm=AB37;dt=Sup;gc=Lm;na=MODIFIER LETTER SMALL L WITH INVERTED LAZY S;NFKC_CF=AB37;NFKC_QC=N;NFKD_QC=N
 cp;AB5E;CI;CWKCF;Dia;dm=026B;dt=Sup;gc=Lm;na=MODIFIER LETTER SMALL L WITH MIDDLE TILDE;NFKC_CF=026B;NFKC_QC=N;NFKD_QC=N
@@ -20927,7 +20937,8 @@
 cp;10321;-Alpha;gc=No;-IDC;-IDS;na=OLD ITALIC NUMERAL FIVE;nt=Nu;nv=5;SB=XX;WB=XX;-XIDC;-XIDS
 cp;10322;-Alpha;gc=No;-IDC;-IDS;na=OLD ITALIC NUMERAL TEN;nt=Nu;nv=10;SB=XX;WB=XX;-XIDC;-XIDS
 cp;10323;-Alpha;gc=No;-IDC;-IDS;na=OLD ITALIC NUMERAL FIFTY;nt=Nu;nv=50;SB=XX;WB=XX;-XIDC;-XIDS
-cp;10324..1032F;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;10324..1032C;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
+cp;1032D..1032F;age=NA;-Alpha;gc=Cn;-Gr_Base;-IDC;-IDS;sc=Zzzz;-XIDC;-XIDS
 
 block;10330..1034F;age=3.1;Alpha;blk=Gothic;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Goth;WB=LE;XIDC;XIDS
 # 10330..1034F Gothic
@@ -24374,6 +24385,36 @@
 cp;118F3..118FE;age=NA;-Alpha;-Cased;-CWCM;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC;-XIDS
 # Sign
 cp;118FF;-Cased;-CWCM;gc=Lo;na=WARANG CITI OM;SB=LE
+cp;11A00;lb=AL;SB=LE;WB=LE
+cp;11A01..11A06;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A07..11A08;GCB=SM;lb=CM;SB=EX;WB=Extend
+cp;11A09..11A0A;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A0B..11A32;lb=AL;SB=LE;WB=LE
+cp;11A33..11A38;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A39;GCB=SM;lb=CM;SB=EX;WB=Extend
+cp;11A3A;GCB=PP;lb=AL;SB=LE;WB=LE
+cp;11A3B..11A3E;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A3F;lb=BB
+cp;11A40;lb=AL
+cp;11A41;lb=BA
+cp;11A42..11A43;lb=BA;SB=ST
+cp;11A44;lb=BA
+cp;11A45;lb=BB
+cp;11A46;lb=AL
+cp;11A47;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A50;lb=AL;SB=LE;WB=LE
+cp;11A51..11A56;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A57..11A58;GCB=SM;lb=CM;SB=EX;WB=Extend
+cp;11A59..11A5B;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A5C..11A83;lb=AL;SB=LE;WB=LE
+cp;11A86..11A89;GCB=PP;lb=AL;SB=LE;WB=LE
+cp;11A8A..11A96;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A97;GCB=SM;lb=CM;SB=EX;WB=Extend
+cp;11A98..11A99;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11A9A;lb=BA
+cp;11A9B..11A9C;lb=BA;SB=ST
+cp;11A9E..11AA0;lb=BB
+cp;11AA1..11AA2;lb=BA
 
 block;11AC0..11AFF;age=7.0;Alpha;blk=Pau_Cin_Hau;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Pauc;WB=LE;XIDC;XIDS
 # 11AC0..11AFF Pau Cin Hau
@@ -24630,6 +24671,16 @@
 cp;11CB5;bc=NSM;CI;GCB=EX;Gr_Ext;InPC=Top;InSC=Bindu;jt=T;na=MARCHEN SIGN ANUSVARA
 cp;11CB6;bc=NSM;CI;GCB=EX;Gr_Ext;InPC=Top;InSC=Bindu;jt=T;na=MARCHEN SIGN CANDRABINDU
 cp;11CB7..11CBF;age=NA;-Alpha;gc=Cn;-IDC;InSC=Other;lb=XX;SB=XX;sc=Zzzz;WB=XX;-XIDC
+cp;11D00..11D06;lb=AL;SB=LE;WB=LE
+cp;11D08..11D09;lb=AL;SB=LE;WB=LE
+cp;11D0B..11D30;lb=AL;SB=LE;WB=LE
+cp;11D31..11D36;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11D3A;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11D3C..11D3D;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11D3F..11D45;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11D46;GCB=PP;lb=AL;SB=LE;WB=LE
+cp;11D47;bc=NSM;GCB=EX;lb=CM;SB=EX;WB=Extend
+cp;11D50..11D59;lb=NU;SB=NU;WB=NU
 
 block;12000..123FF;age=5.0;Alpha;blk=Cuneiform;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Xsux;WB=LE;XIDC;XIDS
 # 12000..123FF Cuneiform
@@ -28553,10 +28604,11 @@
 cp;16F9E;CI;Dia;gc=Lm;na=MIAO LETTER REFORMED TONE-6
 cp;16F9F;CI;Dia;gc=Lm;na=MIAO LETTER REFORMED TONE-8
 
-block;16FE0..16FFF;blk=Ideographic_Symbols
+block;16FE0..16FFF;blk=Ideographic_Symbols;lb=NS;SB=LE;WB=LE
 # 16FE0..16FFF Ideographic Symbols and Punctuation
 # Tangut mark
-cp;16FE0;age=9.0;Alpha;CI;ea=W;Ext;gc=Lm;Gr_Base;IDC;IDS;lb=NS;na=TANGUT ITERATION MARK;SB=LE;sc=Tang;WB=LE;XIDC;XIDS
+cp;16FE0;age=9.0;Alpha;CI;ea=W;Ext;gc=Lm;Gr_Base;IDC;IDS;na=TANGUT ITERATION MARK;sc=Tang;XIDC;XIDS
+cp;16FE2..16FFF;lb=XX;SB=XX;WB=XX
 
 block;17000..187FF;blk=Tangut
 # 17000..187EC Tangut
@@ -29342,7 +29394,9 @@
 cp;1B000;na=KATAKANA LETTER ARCHAIC E;sc=Kana;WB=KA
 # Historic Hiragana
 cp;1B001;na=HIRAGANA LETTER ARCHAIC YE;sc=Hira
-cp;1B002..1B0FF;age=NA;-Alpha;ea=N;gc=Cn;-Gr_Base;-IDC;-IDS;lb=XX;SB=XX;-XIDC;-XIDS
+cp;1B002..1B0FF;age=NA;-Alpha;ea=N;gc=Cn;-Gr_Base;-IDC;-IDS;-XIDC;-XIDS
+cp;1B100..1B11E;lb=ID;SB=LE
+cp;1B170..1B2FB;lb=ID;SB=LE
 
 block;1BC00..1BC9F;age=7.0;Alpha;blk=Duployan;gc=Lo;Gr_Base;IDC;IDS;lb=AL;SB=LE;sc=Dupl;WB=LE;XIDC;XIDS
 # 1BC00..1BC9F Duployan
@@ -33141,7 +33195,9 @@
 # Circled ideographs
 cp;1F250;age=6.0;dm=5F97;dt=Enc;Emoji;Emoji_Presentation;na=CIRCLED IDEOGRAPH ADVANTAGE;NFKC_CF=5F97;scx=Hani
 cp;1F251;age=6.0;dm=53EF;dt=Enc;Emoji;Emoji_Presentation;na=CIRCLED IDEOGRAPH ACCEPT;NFKC_CF=53EF;scx=Hani
-cp;1F252..1F2FF;age=NA;-CWKCF;dt=None;ea=N;gc=Cn;-Gr_Base;NFKC_QC=Y;NFKD_QC=Y;sc=Zzzz
+cp;1F252..1F25F;age=NA;-CWKCF;dt=None;ea=N;gc=Cn;-Gr_Base;NFKC_QC=Y;NFKD_QC=Y;sc=Zzzz
+cp;1F260..1F265;age=NA;bc=ON;-CWKCF;dt=None;ea=N;gc=Cn;-Gr_Base;NFKC_QC=Y;NFKD_QC=Y;sc=Zzzz
+cp;1F266..1F2FF;age=NA;-CWKCF;dt=None;ea=N;gc=Cn;-Gr_Base;NFKC_QC=Y;NFKD_QC=Y;sc=Zzzz
 
 block;1F300..1F5FF;age=6.0;bc=ON;blk=Misc_Pictographs;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy
 # 1F300..1F5FF Miscellaneous Symbols and Pictographs
@@ -33154,7 +33210,7 @@
 cp;1F305;na=SUNRISE
 cp;1F306;na=CITYSCAPE AT DUSK
 cp;1F307;na=SUNSET OVER BUILDINGS
-cp;1F308;na=RAINBOW
+cp;1F308;GCB=GAZ;na=RAINBOW;WB=GAZ
 cp;1F309;na=BRIDGE AT NIGHT
 cp;1F30A;na=WATER WAVE
 cp;1F30B;na=VOLCANO
@@ -33213,7 +33269,7 @@
 cp;1F33B;na=SUNFLOWER
 cp;1F33C;na=BLOSSOM
 cp;1F33D;na=EAR OF MAIZE
-cp;1F33E;na=EAR OF RICE
+cp;1F33E;GCB=GAZ;na=EAR OF RICE;WB=GAZ
 cp;1F33F;na=HERB
 cp;1F340;na=FOUR LEAF CLOVER
 cp;1F341;na=MAPLE LEAF
@@ -33268,7 +33324,7 @@
 cp;1F370;na=SHORTCAKE
 cp;1F371;na=BENTO BOX
 cp;1F372;na=POT OF FOOD
-cp;1F373;na=COOKING
+cp;1F373;GCB=GAZ;na=COOKING;WB=GAZ
 cp;1F374;na=FORK AND KNIFE
 # Beverage symbols
 cp;1F375;na=TEACUP WITHOUT HANDLE
@@ -33304,7 +33360,7 @@
 cp;1F390;na=WIND CHIME
 cp;1F391;na=MOON VIEWING CEREMONY
 cp;1F392;na=SCHOOL SATCHEL
-cp;1F393;na=GRADUATION CAP
+cp;1F393;GCB=GAZ;na=GRADUATION CAP;WB=GAZ
 cp;1F394;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=HEART WITH TIP ON THE LEFT
 cp;1F395;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BOUQUET OF FLOWERS
 cp;1F396;age=7.0;ea=N;-Emoji_Presentation;na=MILITARY MEDAL
@@ -33323,11 +33379,11 @@
 cp;1F3A1;na=FERRIS WHEEL
 cp;1F3A2;na=ROLLER COASTER
 cp;1F3A3;na=FISHING POLE AND FISH
-cp;1F3A4;na=MICROPHONE
+cp;1F3A4;GCB=GAZ;na=MICROPHONE;WB=GAZ
 cp;1F3A5;na=MOVIE CAMERA
 cp;1F3A6;na=CINEMA
 cp;1F3A7;na=HEADPHONE
-cp;1F3A8;na=ARTIST PALETTE
+cp;1F3A8;GCB=GAZ;na=ARTIST PALETTE;WB=GAZ
 cp;1F3A9;na=TOP HAT
 cp;1F3AA;na=CIRCUS TENT
 cp;1F3AB;na=TICKET
@@ -33356,17 +33412,17 @@
 cp;1F3BF;na=SKI AND SKI BOOT
 cp;1F3C0;na=BASKETBALL AND HOOP
 cp;1F3C1;na=CHEQUERED FLAG
-cp;1F3C2;Emoji_Modifier_Base;na=SNOWBOARDER
+cp;1F3C2;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SNOWBOARDER;WB=EB
 cp;1F3C3;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RUNNER;WB=EB
 cp;1F3C4;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SURFER;WB=EB
 cp;1F3C5;age=7.0;na=SPORTS MEDAL
 cp;1F3C6;na=TROPHY
-cp;1F3C7;Emoji_Modifier_Base;na=HORSE RACING
+cp;1F3C7;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HORSE RACING;WB=EB
 cp;1F3C8;na=AMERICAN FOOTBALL
 cp;1F3C9;na=RUGBY FOOTBALL
 cp;1F3CA;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SWIMMER;WB=EB
 cp;1F3CB;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=WEIGHT LIFTER;WB=EB
-cp;1F3CC;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;na=GOLFER
+cp;1F3CC;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=GOLFER;WB=EB
 cp;1F3CD;age=7.0;ea=N;-Emoji_Presentation;na=RACING MOTORCYCLE
 cp;1F3CE;age=7.0;ea=N;-Emoji_Presentation;na=RACING CAR
 cp;1F3CF;age=8.0;na=CRICKET BAT AND BALL
@@ -33398,9 +33454,9 @@
 cp;1F3E8;na=HOTEL
 cp;1F3E9;na=LOVE HOTEL
 cp;1F3EA;na=CONVENIENCE STORE
-cp;1F3EB;na=SCHOOL
+cp;1F3EB;GCB=GAZ;na=SCHOOL;WB=GAZ
 cp;1F3EC;na=DEPARTMENT STORE
-cp;1F3ED;na=FACTORY
+cp;1F3ED;GCB=GAZ;na=FACTORY;WB=GAZ
 cp;1F3EE;na=IZAKAYA LANTERN
 cp;1F3EF;na=JAPANESE CASTLE
 cp;1F3F0;na=EUROPEAN CASTLE
@@ -33538,12 +33594,12 @@
 cp;1F467;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=GIRL;WB=EBG
 cp;1F468;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=MAN;WB=EBG
 cp;1F469;Emoji_Modifier_Base;GCB=EBG;lb=EB;na=WOMAN;WB=EBG
-cp;1F46A;Emoji_Modifier_Base;na=FAMILY
-cp;1F46B;Emoji_Modifier_Base;na=MAN AND WOMAN HOLDING HANDS
-cp;1F46C;Emoji_Modifier_Base;na=TWO MEN HOLDING HANDS
-cp;1F46D;Emoji_Modifier_Base;na=TWO WOMEN HOLDING HANDS
+cp;1F46A;na=FAMILY
+cp;1F46B;na=MAN AND WOMAN HOLDING HANDS
+cp;1F46C;na=TWO MEN HOLDING HANDS
+cp;1F46D;na=TWO WOMEN HOLDING HANDS
 cp;1F46E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=POLICE OFFICER;WB=EB
-cp;1F46F;Emoji_Modifier_Base;na=WOMAN WITH BUNNY EARS
+cp;1F46F;na=WOMAN WITH BUNNY EARS
 cp;1F470;Emoji_Modifier_Base;GCB=EB;lb=EB;na=BRIDE WITH VEIL;WB=EB
 cp;1F471;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PERSON WITH BLOND HAIR;WB=EB
 cp;1F472;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN WITH GUA PI MAO;WB=EB
@@ -33629,8 +33685,8 @@
 cp;1F4B9;na=CHART WITH UPWARDS TREND AND YEN SIGN
 # Office symbols
 cp;1F4BA;na=SEAT
-cp;1F4BB;na=PERSONAL COMPUTER
-cp;1F4BC;na=BRIEFCASE
+cp;1F4BB;GCB=GAZ;na=PERSONAL COMPUTER;WB=GAZ
+cp;1F4BC;GCB=GAZ;na=BRIEFCASE;WB=GAZ
 cp;1F4BD;na=MINIDISC
 cp;1F4BE;na=FLOPPY DISK
 cp;1F4BF;na=OPTICAL DISC
@@ -33745,12 +33801,12 @@
 # Tool symbols
 cp;1F525;na=FIRE
 cp;1F526;na=ELECTRIC TORCH
-cp;1F527;na=WRENCH
+cp;1F527;GCB=GAZ;na=WRENCH;WB=GAZ
 cp;1F528;na=HAMMER
 cp;1F529;na=NUT AND BOLT
 cp;1F52A;na=HOCHO
 cp;1F52B;na=PISTOL
-cp;1F52C;na=MICROSCOPE
+cp;1F52C;GCB=GAZ;na=MICROSCOPE;WB=GAZ
 cp;1F52D;na=TELESCOPE
 cp;1F52E;na=CRYSTAL BALL
 # Miscellaneous symbols
@@ -33831,7 +33887,7 @@
 cp;1F571;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=BLACK SKULL AND CROSSBONES
 cp;1F572;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=NO PIRACY
 cp;1F573;age=7.0;ea=N;-Emoji_Presentation;na=HOLE
-cp;1F574;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;na=MAN IN BUSINESS SUIT LEVITATING
+cp;1F574;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=MAN IN BUSINESS SUIT LEVITATING;WB=EB
 cp;1F575;age=7.0;ea=N;Emoji_Modifier_Base;-Emoji_Presentation;GCB=EB;lb=EB;na=SLEUTH OR SPY;WB=EB
 cp;1F576;age=7.0;ea=N;-Emoji_Presentation;na=DARK SUNGLASSES
 # Animal symbols
@@ -34135,7 +34191,7 @@
 block;1F680..1F6FF;age=6.0;bc=ON;blk=Transport_And_Map;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy
 # 1F680..1F6FF Transport and Map Symbols
 # Vehicles
-cp;1F680;na=ROCKET
+cp;1F680;GCB=GAZ;na=ROCKET;WB=GAZ
 cp;1F681;na=HELICOPTER
 cp;1F682;na=STEAM LOCOMOTIVE
 cp;1F683;na=RAILWAY CAR
@@ -34153,7 +34209,7 @@
 cp;1F68F;na=BUS STOP
 cp;1F690;na=MINIBUS
 cp;1F691;na=AMBULANCE
-cp;1F692;na=FIRE ENGINE
+cp;1F692;GCB=GAZ;na=FIRE ENGINE;WB=GAZ
 cp;1F693;na=POLICE CAR
 cp;1F694;na=ONCOMING POLICE CAR
 cp;1F695;na=TAXI
@@ -34214,7 +34270,7 @@
 cp;1F6CA;age=7.0;ea=N;-Emoji;-Emoji_Presentation;na=GIRLS SYMBOL
 # Accommodation symbols
 cp;1F6CB;age=7.0;ea=N;-Emoji_Presentation;na=COUCH AND LAMP
-cp;1F6CC;age=7.0;Emoji_Modifier_Base;na=SLEEPING ACCOMMODATION
+cp;1F6CC;age=7.0;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SLEEPING ACCOMMODATION;WB=EB
 cp;1F6CD;age=7.0;ea=N;-Emoji_Presentation;na=SHOPPING BAGS
 cp;1F6CE;age=7.0;ea=N;-Emoji_Presentation;na=BELLHOP BELL
 cp;1F6CF;age=7.0;ea=N;-Emoji_Presentation;na=BED
@@ -34222,7 +34278,8 @@
 cp;1F6D0;age=8.0;na=PLACE OF WORSHIP
 cp;1F6D1;age=9.0;na=OCTAGONAL SIGN
 cp;1F6D2;age=9.0;na=SHOPPING TROLLEY
-cp;1F6D3..1F6DF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F6D3..1F6D4;age=NA;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F6D5..1F6DF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 # Miscellaneous symbols
 cp;1F6E0;age=7.0;ea=N;-Emoji_Presentation;na=HAMMER AND WRENCH
 cp;1F6E1;age=7.0;ea=N;-Emoji_Presentation;na=SHIELD
@@ -34246,7 +34303,8 @@
 cp;1F6F4;age=9.0;na=SCOOTER
 cp;1F6F5;age=9.0;na=MOTOR SCOOTER
 cp;1F6F6;age=9.0;na=CANOE
-cp;1F6F7..1F6FF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F6F7..1F6F8;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F6F9..1F6FF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 
 block;1F700..1F77F;age=6.0;bc=ON;blk=Alchemical;gc=So;Gr_Base;lb=AL;sc=Zyyy
 # 1F700..1F77F Alchemical Symbols
@@ -34668,7 +34726,8 @@
 
 block;1F900..1F9FF;age=9.0;bc=ON;blk=Sup_Symbols_And_Pictographs;ea=W;Emoji;Emoji_Presentation;gc=So;Gr_Base;lb=ID;sc=Zyyy
 # 1F900..1F9FF Supplemental Symbols and Pictographs
-cp;1F900..1F90F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F900..1F90B;age=NA;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;lb=AL;sc=Zzzz
+cp;1F90C..1F90F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 # Emoticon faces
 cp;1F910;age=8.0;na=ZIPPER-MOUTH FACE
 cp;1F911;age=8.0;na=MONEY-MOUTH FACE
@@ -34684,9 +34743,9 @@
 cp;1F91A;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RAISED BACK OF HAND;WB=EB
 cp;1F91B;Emoji_Modifier_Base;GCB=EB;lb=EB;na=LEFT-FACING FIST;WB=EB
 cp;1F91C;Emoji_Modifier_Base;GCB=EB;lb=EB;na=RIGHT-FACING FIST;WB=EB
-cp;1F91D;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HANDSHAKE;WB=EB
+cp;1F91D;na=HANDSHAKE
 cp;1F91E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HAND WITH INDEX AND MIDDLE FINGERS CROSSED;WB=EB
-cp;1F91F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F91F;age=NA;ea=N;Emoji_Modifier_Base;gc=Cn;GCB=EB;-Gr_Base;lb=EB;sc=Zzzz;WB=EB
 # Emoticon faces
 cp;1F920;na=FACE WITH COWBOY HAT
 cp;1F921;na=CLOWN FACE
@@ -34696,10 +34755,10 @@
 cp;1F925;na=LYING FACE
 cp;1F926;Emoji_Modifier_Base;GCB=EB;lb=EB;na=FACE PALM;WB=EB
 cp;1F927;na=SNEEZING FACE
-cp;1F928..1F92F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F928..1F92F;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
 # Portrait and role symbols
 cp;1F930;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PREGNANT WOMAN;WB=EB
-cp;1F931..1F932;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F931..1F932;age=NA;ea=N;Emoji_Modifier_Base;gc=Cn;GCB=EB;-Gr_Base;lb=EB;sc=Zzzz;WB=EB
 cp;1F933;Emoji_Modifier_Base;GCB=EB;lb=EB;na=SELFIE;WB=EB
 cp;1F934;Emoji_Modifier_Base;GCB=EB;lb=EB;na=PRINCE;WB=EB
 cp;1F935;Emoji_Modifier_Base;GCB=EB;lb=EB;na=MAN IN TUXEDO;WB=EB
@@ -34709,7 +34768,7 @@
 cp;1F939;Emoji_Modifier_Base;GCB=EB;lb=EB;na=JUGGLING;WB=EB
 cp;1F93A;na=FENCER
 cp;1F93B;-Emoji;-Emoji_Presentation;na=MODERN PENTATHLON
-cp;1F93C;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WRESTLERS;WB=EB
+cp;1F93C;na=WRESTLERS
 cp;1F93D;Emoji_Modifier_Base;GCB=EB;lb=EB;na=WATER POLO;WB=EB
 cp;1F93E;Emoji_Modifier_Base;GCB=EB;lb=EB;na=HANDBALL;WB=EB
 cp;1F93F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
@@ -34726,7 +34785,8 @@
 cp;1F949;na=THIRD PLACE MEDAL
 cp;1F94A;na=BOXING GLOVE
 cp;1F94B;na=MARTIAL ARTS UNIFORM
-cp;1F94C..1F94F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F94C;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F94D..1F94F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 # Food symbols
 cp;1F950;na=CROISSANT
 cp;1F951;na=AVOCADO
@@ -34743,7 +34803,8 @@
 cp;1F95C;na=PEANUTS
 cp;1F95D;na=KIWIFRUIT
 cp;1F95E;na=PANCAKES
-cp;1F95F..1F97F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F95F..1F96B;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F96C..1F97F;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 # Animal symbols
 cp;1F980;age=8.0;na=CRAB
 cp;1F981;age=8.0;na=LION FACE
@@ -34763,10 +34824,15 @@
 cp;1F98F;na=RHINOCEROS
 cp;1F990;na=SHRIMP
 cp;1F991;na=SQUID
-cp;1F992..1F9BF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F992..1F997;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F998..1F9BF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 # Food symbol
 cp;1F9C0;age=8.0;na=CHEESE WEDGE
-cp;1F9C1..1F9FF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F9C1..1F9CF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F9D0;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F9D1..1F9DD;age=NA;ea=N;Emoji_Modifier_Base;gc=Cn;GCB=EB;-Gr_Base;lb=EB;sc=Zzzz;WB=EB
+cp;1F9DE..1F9E6;age=NA;ea=N;gc=Cn;-Gr_Base;sc=Zzzz
+cp;1F9E7..1F9FF;age=NA;bc=L;ea=N;-Emoji;-Emoji_Presentation;gc=Cn;-Gr_Base;sc=Zzzz
 cp;1FA00..1FF7F;lb=ID
 # 1FF80..1FFFF Unassigned
 cp;1FF80..1FFFD;lb=ID
@@ -34808,7 +34874,8 @@
 # 2B820..2CEA1 CJK Unified Ideographs Extension E
 algnamesrange;2B820..2CEA1;han;CJK UNIFIED IDEOGRAPH-
 cp;2B820..2CEA1;age=8.0;Alpha;gc=Lo;Gr_Base;IDC;Ideo;IDS;SB=LE;sc=Hani;UIdeo;XIDC;XIDS
-cp;2CEB0..2F7FF;ea=W;lb=ID
+cp;2CEB0..2EBE0;ea=W;lb=ID;SB=LE
+cp;2EBE1..2F7FF;ea=W;lb=ID
 
 block;2F800..2FA1F;age=3.1;Alpha;blk=CJK_Compat_Ideographs_Sup;Comp_Ex;CWKCF;dt=Can;ea=W;gc=Lo;Gr_Base;IDC;Ideo;IDS;lb=ID;NFC_QC=N;NFD_QC=N;NFKC_QC=N;NFKD_QC=N;SB=LE;sc=Hani;XIDC;XIDS
 # 2F800..2FA1F CJK Compatibility Ideographs Supplement
diff --git a/source/data/unit/af.txt b/source/data/unit/af.txt
index 8e8a004..8fdc401 100644
--- a/source/data/unit/af.txt
+++ b/source/data/unit/af.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 af{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"hh:mm"}
         hms{"hh:mm:ss"}
diff --git a/source/data/unit/agq.txt b/source/data/unit/agq.txt
index cf862eb..f03e69a 100644
--- a/source/data/unit/agq.txt
+++ b/source/data/unit/agq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 agq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ak.txt b/source/data/unit/ak.txt
index 886a027..251735d 100644
--- a/source/data/unit/ak.txt
+++ b/source/data/unit/ak.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ak{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/am.txt b/source/data/unit/am.txt
index 6c85721..c28d6e0 100644
--- a/source/data/unit/am.txt
+++ b/source/data/unit/am.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 am{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ar.txt b/source/data/unit/ar.txt
index 8221d4c..577f9f8 100644
--- a/source/data/unit/ar.txt
+++ b/source/data/unit/ar.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ar_SA.txt b/source/data/unit/ar_SA.txt
new file mode 100644
index 0000000..d65944b
--- /dev/null
+++ b/source/data/unit/ar_SA.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+/**
+ * generated alias target
+ */
+ar_SA{
+    ___{""}
+}
diff --git a/source/data/unit/ars.txt b/source/data/unit/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/unit/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/unit/as.txt b/source/data/unit/as.txt
index 08c62a6..6a7b740 100644
--- a/source/data/unit/as.txt
+++ b/source/data/unit/as.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 as{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/asa.txt b/source/data/unit/asa.txt
index 1a7a328..ae5b560 100644
--- a/source/data/unit/asa.txt
+++ b/source/data/unit/asa.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 asa{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ast.txt b/source/data/unit/ast.txt
index 5e2f000..21c8ec9 100644
--- a/source/data/unit/ast.txt
+++ b/source/data/unit/ast.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ast{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/az.txt b/source/data/unit/az.txt
index 8dd4ac6..9058782 100644
--- a/source/data/unit/az.txt
+++ b/source/data/unit/az.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/az_Cyrl.txt b/source/data/unit/az_Cyrl.txt
index adbb8b7..0a83f37 100644
--- a/source/data/unit/az_Cyrl.txt
+++ b/source/data/unit/az_Cyrl.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/unit/az_Latn.txt b/source/data/unit/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/unit/az_Latn.txt
+++ b/source/data/unit/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/bas.txt b/source/data/unit/bas.txt
index df5f999..0d97ea3 100644
--- a/source/data/unit/bas.txt
+++ b/source/data/unit/bas.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bas{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/be.txt b/source/data/unit/be.txt
index a00f59c..37970e2 100644
--- a/source/data/unit/be.txt
+++ b/source/data/unit/be.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 be{
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"hh:mm"}
         hms{"hh:mm:ss"}
diff --git a/source/data/unit/bem.txt b/source/data/unit/bem.txt
index da7f81d..58b983a 100644
--- a/source/data/unit/bem.txt
+++ b/source/data/unit/bem.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bem{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/bez.txt b/source/data/unit/bez.txt
index 9208dac..b5b4150 100644
--- a/source/data/unit/bez.txt
+++ b/source/data/unit/bez.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bez{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/bg.txt b/source/data/unit/bg.txt
index f216e22..1a3ad45 100644
--- a/source/data/unit/bg.txt
+++ b/source/data/unit/bg.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bg{
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/bm.txt b/source/data/unit/bm.txt
index 5220e49..a385b5e 100644
--- a/source/data/unit/bm.txt
+++ b/source/data/unit/bm.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bm{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/bn.txt b/source/data/unit/bn.txt
index c6d0084..8733a65 100644
--- a/source/data/unit/bn.txt
+++ b/source/data/unit/bn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bn{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/bo.txt b/source/data/unit/bo.txt
index 2e4539e..1f04613 100644
--- a/source/data/unit/bo.txt
+++ b/source/data/unit/bo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/br.txt b/source/data/unit/br.txt
index 16f03df..540b3d5 100644
--- a/source/data/unit/br.txt
+++ b/source/data/unit/br.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 br{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/brx.txt b/source/data/unit/brx.txt
index d910271..e08cb32 100644
--- a/source/data/unit/brx.txt
+++ b/source/data/unit/brx.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 brx{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     units{
         duration{
             day{
diff --git a/source/data/unit/bs.txt b/source/data/unit/bs.txt
index fb7de92..9bdc487 100644
--- a/source/data/unit/bs.txt
+++ b/source/data/unit/bs.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/bs_Cyrl.txt b/source/data/unit/bs_Cyrl.txt
index 203d61c..50b5bb4 100644
--- a/source/data/unit/bs_Cyrl.txt
+++ b/source/data/unit/bs_Cyrl.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
     units{
         duration{
             day{
diff --git a/source/data/unit/bs_Latn.txt b/source/data/unit/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/unit/bs_Latn.txt
+++ b/source/data/unit/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ca.txt b/source/data/unit/ca.txt
index 64ff44a..0c1836e 100644
--- a/source/data/unit/ca.txt
+++ b/source/data/unit/ca.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ce.txt b/source/data/unit/ce.txt
index cb73d72..03a2f56 100644
--- a/source/data/unit/ce.txt
+++ b/source/data/unit/ce.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ce{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/cgg.txt b/source/data/unit/cgg.txt
index 3a9d46b..c0ecc47 100644
--- a/source/data/unit/cgg.txt
+++ b/source/data/unit/cgg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cgg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/chr.txt b/source/data/unit/chr.txt
index 8cbd100..cb9ce2e 100644
--- a/source/data/unit/chr.txt
+++ b/source/data/unit/chr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 chr{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ckb.txt b/source/data/unit/ckb.txt
index 730bc40..77482bd 100644
--- a/source/data/unit/ckb.txt
+++ b/source/data/unit/ckb.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ckb{
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/cs.txt b/source/data/unit/cs.txt
index 8afd013..768b6a1 100644
--- a/source/data/unit/cs.txt
+++ b/source/data/unit/cs.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cs{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/cy.txt b/source/data/unit/cy.txt
index 573fd53..25135e9 100644
--- a/source/data/unit/cy.txt
+++ b/source/data/unit/cy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cy{
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/da.txt b/source/data/unit/da.txt
index 48022c2..c593441 100644
--- a/source/data/unit/da.txt
+++ b/source/data/unit/da.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 da{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h.mm"}
         hms{"h.mm.ss"}
diff --git a/source/data/unit/dav.txt b/source/data/unit/dav.txt
index bb1d36d..467d8f4 100644
--- a/source/data/unit/dav.txt
+++ b/source/data/unit/dav.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dav{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/de.txt b/source/data/unit/de.txt
index 73ffdd1..305cd18 100644
--- a/source/data/unit/de.txt
+++ b/source/data/unit/de.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/de_CH.txt b/source/data/unit/de_CH.txt
index f78f996..e761c28 100644
--- a/source/data/unit/de_CH.txt
+++ b/source/data/unit/de_CH.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de_CH{
-    Version{"2.1.29.33"}
+    Version{"2.1.31.33"}
     units{
         area{
             square-foot{
diff --git a/source/data/unit/dje.txt b/source/data/unit/dje.txt
index c327cf0..a310f9a 100644
--- a/source/data/unit/dje.txt
+++ b/source/data/unit/dje.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dje{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/dsb.txt b/source/data/unit/dsb.txt
index a0d4dd9..b6d60e7 100644
--- a/source/data/unit/dsb.txt
+++ b/source/data/unit/dsb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dsb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/dua.txt b/source/data/unit/dua.txt
index df62568..635ae4b 100644
--- a/source/data/unit/dua.txt
+++ b/source/data/unit/dua.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dua{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/dyo.txt b/source/data/unit/dyo.txt
index e0f09cc..fb52eea 100644
--- a/source/data/unit/dyo.txt
+++ b/source/data/unit/dyo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dyo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/dz.txt b/source/data/unit/dz.txt
index eb617ba..775b5d6 100644
--- a/source/data/unit/dz.txt
+++ b/source/data/unit/dz.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dz{
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
     units{
         duration{
             day{
diff --git a/source/data/unit/ebu.txt b/source/data/unit/ebu.txt
index 3770614..2199f72 100644
--- a/source/data/unit/ebu.txt
+++ b/source/data/unit/ebu.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ebu{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ee.txt b/source/data/unit/ee.txt
index f78e992..f3fcefd 100644
--- a/source/data/unit/ee.txt
+++ b/source/data/unit/ee.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ee{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     units{
         duration{
             day{
diff --git a/source/data/unit/el.txt b/source/data/unit/el.txt
index 8479488..f2f7643 100644
--- a/source/data/unit/el.txt
+++ b/source/data/unit/el.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 el{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/en.txt b/source/data/unit/en.txt
index b301c7e..4516e34 100644
--- a/source/data/unit/en.txt
+++ b/source/data/unit/en.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en{
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
     units{
         acceleration{
             g-force{
@@ -141,6 +141,12 @@
                 other{"{0} miles per Imp. gallon"}
             }
         }
+        coordinate{
+            east{"{0} east"}
+            north{"{0} north"}
+            south{"{0} south"}
+            west{"{0} west"}
+        }
         digital{
             bit{
                 dnam{"bits"}
@@ -429,6 +435,11 @@
                 one{"{0} picometer"}
                 other{"{0} picometers"}
             }
+            point{
+                dnam{"points"}
+                one{"{0} point"}
+                other{"{0} points"}
+            }
             yard{
                 dnam{"yards"}
                 one{"{0} yard"}
@@ -856,6 +867,12 @@
                 other{"{0}m/gUK"}
             }
         }
+        coordinate{
+            east{"{0}E"}
+            north{"{0}N"}
+            south{"{0}S"}
+            west{"{0}W"}
+        }
         digital{
             bit{
                 dnam{"bit"}
@@ -1127,6 +1144,11 @@
                 one{"{0}pm"}
                 other{"{0}pm"}
             }
+            point{
+                dnam{"pts"}
+                one{"{0}pt"}
+                other{"{0}pt"}
+            }
             yard{
                 dnam{"yd"}
                 one{"{0}yd"}
@@ -1567,6 +1589,12 @@
                 other{"{0} mpg Imp."}
             }
         }
+        coordinate{
+            east{"{0} E"}
+            north{"{0} N"}
+            south{"{0} S"}
+            west{"{0} W"}
+        }
         digital{
             bit{
                 dnam{"bit"}
@@ -1855,6 +1883,11 @@
                 one{"{0} pm"}
                 other{"{0} pm"}
             }
+            point{
+                dnam{"points"}
+                one{"{0} pt"}
+                other{"{0} pt"}
+            }
             yard{
                 dnam{"yards"}
                 one{"{0} yd"}
diff --git a/source/data/unit/en_001.txt b/source/data/unit/en_001.txt
index fcf08f7..8ce33d1 100644
--- a/source/data/unit/en_001.txt
+++ b/source/data/unit/en_001.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_001{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     units{
         acceleration{
             meter-per-second-squared{
diff --git a/source/data/unit/en_150.txt b/source/data/unit/en_150.txt
index 4fa9550..f2fe9fe 100644
--- a/source/data/unit/en_150.txt
+++ b/source/data/unit/en_150.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_150{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_AG.txt b/source/data/unit/en_AG.txt
index 85efa69..ed7f63d 100644
--- a/source/data/unit/en_AG.txt
+++ b/source/data/unit/en_AG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_AI.txt b/source/data/unit/en_AI.txt
index b2ab82a..a92294b 100644
--- a/source/data/unit/en_AI.txt
+++ b/source/data/unit/en_AI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_AT.txt b/source/data/unit/en_AT.txt
index 13def3a..f72039e 100644
--- a/source/data/unit/en_AT.txt
+++ b/source/data/unit/en_AT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AT{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_AU.txt b/source/data/unit/en_AU.txt
index b4ad3b2..10542aa 100644
--- a/source/data/unit/en_AU.txt
+++ b/source/data/unit/en_AU.txt
@@ -2,14 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AU{
     %%Parent{"en_001"}
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
     units{
-        coordinate{
-            east{"{0} east"}
-            north{"{0} north"}
-            south{"{0} south"}
-            west{"{0} west"}
-        }
         energy{
             kilowatt-hour{
                 dnam{"kilowatt hours"}
diff --git a/source/data/unit/en_BB.txt b/source/data/unit/en_BB.txt
index 0cc013f..2c2c05e 100644
--- a/source/data/unit/en_BB.txt
+++ b/source/data/unit/en_BB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_BE.txt b/source/data/unit/en_BE.txt
index 9772d91..a1471bc 100644
--- a/source/data/unit/en_BE.txt
+++ b/source/data/unit/en_BE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_BM.txt b/source/data/unit/en_BM.txt
index 817b1d4..a07478e 100644
--- a/source/data/unit/en_BM.txt
+++ b/source/data/unit/en_BM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_BS.txt b/source/data/unit/en_BS.txt
index cba3ce7..d955b27 100644
--- a/source/data/unit/en_BS.txt
+++ b/source/data/unit/en_BS.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         temperature{
             celsius{
diff --git a/source/data/unit/en_BW.txt b/source/data/unit/en_BW.txt
index b159f1d..e9eeab0 100644
--- a/source/data/unit/en_BW.txt
+++ b/source/data/unit/en_BW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_BZ.txt b/source/data/unit/en_BZ.txt
index ee07b44..cb95d08 100644
--- a/source/data/unit/en_BZ.txt
+++ b/source/data/unit/en_BZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         temperature{
             celsius{
diff --git a/source/data/unit/en_CA.txt b/source/data/unit/en_CA.txt
index 7c180fd..581d726 100644
--- a/source/data/unit/en_CA.txt
+++ b/source/data/unit/en_CA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CA{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         concentr{
             milligram-per-deciliter{
diff --git a/source/data/unit/en_CC.txt b/source/data/unit/en_CC.txt
index 2859e20..67fe580 100644
--- a/source/data/unit/en_CC.txt
+++ b/source/data/unit/en_CC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_CH.txt b/source/data/unit/en_CH.txt
index 135de38..060cae5 100644
--- a/source/data/unit/en_CH.txt
+++ b/source/data/unit/en_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CH{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_CK.txt b/source/data/unit/en_CK.txt
index ea59600..8f3b9a4 100644
--- a/source/data/unit/en_CK.txt
+++ b/source/data/unit/en_CK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_CM.txt b/source/data/unit/en_CM.txt
index c21b645..e3da63d 100644
--- a/source/data/unit/en_CM.txt
+++ b/source/data/unit/en_CM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_CX.txt b/source/data/unit/en_CX.txt
index ae52aee..4e3c98e 100644
--- a/source/data/unit/en_CX.txt
+++ b/source/data/unit/en_CX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_CY.txt b/source/data/unit/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/unit/en_CY.txt
+++ b/source/data/unit/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_DE.txt b/source/data/unit/en_DE.txt
index 51c69cb..a8f9cde 100644
--- a/source/data/unit/en_DE.txt
+++ b/source/data/unit/en_DE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_DG.txt b/source/data/unit/en_DG.txt
index 8b4d817..bd59dcb 100644
--- a/source/data/unit/en_DG.txt
+++ b/source/data/unit/en_DG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_DK.txt b/source/data/unit/en_DK.txt
index 69e0cad..9b83dfa 100644
--- a/source/data/unit/en_DK.txt
+++ b/source/data/unit/en_DK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DK{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_DM.txt b/source/data/unit/en_DM.txt
index 6811cff..067f54d 100644
--- a/source/data/unit/en_DM.txt
+++ b/source/data/unit/en_DM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_ER.txt b/source/data/unit/en_ER.txt
index 82919fd..dac4b71 100644
--- a/source/data/unit/en_ER.txt
+++ b/source/data/unit/en_ER.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ER{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_FI.txt b/source/data/unit/en_FI.txt
index 8906ed5..995f6cb 100644
--- a/source/data/unit/en_FI.txt
+++ b/source/data/unit/en_FI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_FJ.txt b/source/data/unit/en_FJ.txt
index b22339a..17022d5 100644
--- a/source/data/unit/en_FJ.txt
+++ b/source/data/unit/en_FJ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FJ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_FK.txt b/source/data/unit/en_FK.txt
index cf7774e..edbb4d8 100644
--- a/source/data/unit/en_FK.txt
+++ b/source/data/unit/en_FK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_FM.txt b/source/data/unit/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/unit/en_FM.txt
+++ b/source/data/unit/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GB.txt b/source/data/unit/en_GB.txt
index a60a578..fd3b6e8 100644
--- a/source/data/unit/en_GB.txt
+++ b/source/data/unit/en_GB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GD.txt b/source/data/unit/en_GD.txt
index 69be247..a006727 100644
--- a/source/data/unit/en_GD.txt
+++ b/source/data/unit/en_GD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GG.txt b/source/data/unit/en_GG.txt
index f898103..b91b6b8 100644
--- a/source/data/unit/en_GG.txt
+++ b/source/data/unit/en_GG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GH.txt b/source/data/unit/en_GH.txt
index 54ca446..50a4429 100644
--- a/source/data/unit/en_GH.txt
+++ b/source/data/unit/en_GH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GI.txt b/source/data/unit/en_GI.txt
index f74502b..e19c4d8 100644
--- a/source/data/unit/en_GI.txt
+++ b/source/data/unit/en_GI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GM.txt b/source/data/unit/en_GM.txt
index 48193f3..9448c85 100644
--- a/source/data/unit/en_GM.txt
+++ b/source/data/unit/en_GM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_GY.txt b/source/data/unit/en_GY.txt
index 53782ef..7c5333b 100644
--- a/source/data/unit/en_GY.txt
+++ b/source/data/unit/en_GY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_HK.txt b/source/data/unit/en_HK.txt
index 9ad2044..d43b56c 100644
--- a/source/data/unit/en_HK.txt
+++ b/source/data/unit/en_HK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_IE.txt b/source/data/unit/en_IE.txt
index 1cbdf50..94ab93c 100644
--- a/source/data/unit/en_IE.txt
+++ b/source/data/unit/en_IE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_IL.txt b/source/data/unit/en_IL.txt
index 55e362c..55a5091 100644
--- a/source/data/unit/en_IL.txt
+++ b/source/data/unit/en_IL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_IM.txt b/source/data/unit/en_IM.txt
index 50ab53d..3ccab11 100644
--- a/source/data/unit/en_IM.txt
+++ b/source/data/unit/en_IM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_IN.txt b/source/data/unit/en_IN.txt
index 9984e67..6dd195c 100644
--- a/source/data/unit/en_IN.txt
+++ b/source/data/unit/en_IN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IN{
     %%Parent{"en_001"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_IO.txt b/source/data/unit/en_IO.txt
index d2c4f91..3f89192 100644
--- a/source/data/unit/en_IO.txt
+++ b/source/data/unit/en_IO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_JE.txt b/source/data/unit/en_JE.txt
index 9f48fef..66de22d 100644
--- a/source/data/unit/en_JE.txt
+++ b/source/data/unit/en_JE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_JM.txt b/source/data/unit/en_JM.txt
index 11356e7..ad3c905 100644
--- a/source/data/unit/en_JM.txt
+++ b/source/data/unit/en_JM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_KE.txt b/source/data/unit/en_KE.txt
index 6d669e8..0af301a 100644
--- a/source/data/unit/en_KE.txt
+++ b/source/data/unit/en_KE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_KI.txt b/source/data/unit/en_KI.txt
index 8624154..f671853 100644
--- a/source/data/unit/en_KI.txt
+++ b/source/data/unit/en_KI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_KN.txt b/source/data/unit/en_KN.txt
index b68c8f1..573c389 100644
--- a/source/data/unit/en_KN.txt
+++ b/source/data/unit/en_KN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_KY.txt b/source/data/unit/en_KY.txt
index 2f230c8..62222e6 100644
--- a/source/data/unit/en_KY.txt
+++ b/source/data/unit/en_KY.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         temperature{
             celsius{
diff --git a/source/data/unit/en_LC.txt b/source/data/unit/en_LC.txt
index b781315..7033a6a 100644
--- a/source/data/unit/en_LC.txt
+++ b/source/data/unit/en_LC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_LR.txt b/source/data/unit/en_LR.txt
index f1a2ce0..8d60973 100644
--- a/source/data/unit/en_LR.txt
+++ b/source/data/unit/en_LR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_LS.txt b/source/data/unit/en_LS.txt
index ce9cd01..61d557f 100644
--- a/source/data/unit/en_LS.txt
+++ b/source/data/unit/en_LS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MG.txt b/source/data/unit/en_MG.txt
index 983530e..f5b2bfd 100644
--- a/source/data/unit/en_MG.txt
+++ b/source/data/unit/en_MG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MO.txt b/source/data/unit/en_MO.txt
index 7995d51..7c06497 100644
--- a/source/data/unit/en_MO.txt
+++ b/source/data/unit/en_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MS.txt b/source/data/unit/en_MS.txt
index 195a417..28ef10d 100644
--- a/source/data/unit/en_MS.txt
+++ b/source/data/unit/en_MS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MT.txt b/source/data/unit/en_MT.txt
index 5602dfc..0d4bc8b 100644
--- a/source/data/unit/en_MT.txt
+++ b/source/data/unit/en_MT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MU.txt b/source/data/unit/en_MU.txt
index 65efaf3..f36ff7e 100644
--- a/source/data/unit/en_MU.txt
+++ b/source/data/unit/en_MU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MW.txt b/source/data/unit/en_MW.txt
index 8e440d4..8f5bed0 100644
--- a/source/data/unit/en_MW.txt
+++ b/source/data/unit/en_MW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_MY.txt b/source/data/unit/en_MY.txt
index 4722712..fc723c2 100644
--- a/source/data/unit/en_MY.txt
+++ b/source/data/unit/en_MY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NA.txt b/source/data/unit/en_NA.txt
index b7ebdac..17f6b27 100644
--- a/source/data/unit/en_NA.txt
+++ b/source/data/unit/en_NA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NA{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NF.txt b/source/data/unit/en_NF.txt
index 1ed7316..56b1a98 100644
--- a/source/data/unit/en_NF.txt
+++ b/source/data/unit/en_NF.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NF{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NG.txt b/source/data/unit/en_NG.txt
index a6752cd..8102534 100644
--- a/source/data/unit/en_NG.txt
+++ b/source/data/unit/en_NG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NL.txt b/source/data/unit/en_NL.txt
index d0f6862..4566eb3 100644
--- a/source/data/unit/en_NL.txt
+++ b/source/data/unit/en_NL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NL{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NR.txt b/source/data/unit/en_NR.txt
index 1c1d8e7..a66b87f 100644
--- a/source/data/unit/en_NR.txt
+++ b/source/data/unit/en_NR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NU.txt b/source/data/unit/en_NU.txt
index b2fde8f..86aa256 100644
--- a/source/data/unit/en_NU.txt
+++ b/source/data/unit/en_NU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_NZ.txt b/source/data/unit/en_NZ.txt
index e4fd440..3de4ef7 100644
--- a/source/data/unit/en_NZ.txt
+++ b/source/data/unit/en_NZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_PG.txt b/source/data/unit/en_PG.txt
index 58ac3ca..6146600 100644
--- a/source/data/unit/en_PG.txt
+++ b/source/data/unit/en_PG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_PH.txt b/source/data/unit/en_PH.txt
index 5264c40..04ac66a 100644
--- a/source/data/unit/en_PH.txt
+++ b/source/data/unit/en_PH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_PK.txt b/source/data/unit/en_PK.txt
index 0df7824..3d5d2f6 100644
--- a/source/data/unit/en_PK.txt
+++ b/source/data/unit/en_PK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_PN.txt b/source/data/unit/en_PN.txt
index cd620b3..8b83a8d 100644
--- a/source/data/unit/en_PN.txt
+++ b/source/data/unit/en_PN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_PW.txt b/source/data/unit/en_PW.txt
index fe60652..fbe3566 100644
--- a/source/data/unit/en_PW.txt
+++ b/source/data/unit/en_PW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         temperature{
             celsius{
diff --git a/source/data/unit/en_RW.txt b/source/data/unit/en_RW.txt
index efe55fe..1323a28 100644
--- a/source/data/unit/en_RW.txt
+++ b/source/data/unit/en_RW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_RW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SB.txt b/source/data/unit/en_SB.txt
index a81f9eb..08287c0 100644
--- a/source/data/unit/en_SB.txt
+++ b/source/data/unit/en_SB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SC.txt b/source/data/unit/en_SC.txt
index c907a3c..9c80308 100644
--- a/source/data/unit/en_SC.txt
+++ b/source/data/unit/en_SC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SD.txt b/source/data/unit/en_SD.txt
index 21a7710..8fef005 100644
--- a/source/data/unit/en_SD.txt
+++ b/source/data/unit/en_SD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SE.txt b/source/data/unit/en_SE.txt
index 452ce9c..08c2bb4 100644
--- a/source/data/unit/en_SE.txt
+++ b/source/data/unit/en_SE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SG.txt b/source/data/unit/en_SG.txt
index cb3610b..904e860 100644
--- a/source/data/unit/en_SG.txt
+++ b/source/data/unit/en_SG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SG{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SH.txt b/source/data/unit/en_SH.txt
index d6f5383..dbaac39 100644
--- a/source/data/unit/en_SH.txt
+++ b/source/data/unit/en_SH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SI.txt b/source/data/unit/en_SI.txt
index 1b945e7..093b0e2 100644
--- a/source/data/unit/en_SI.txt
+++ b/source/data/unit/en_SI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SL.txt b/source/data/unit/en_SL.txt
index 68833a0..f3ff3f7 100644
--- a/source/data/unit/en_SL.txt
+++ b/source/data/unit/en_SL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SS.txt b/source/data/unit/en_SS.txt
index 1e11895..1b9c52e 100644
--- a/source/data/unit/en_SS.txt
+++ b/source/data/unit/en_SS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SX.txt b/source/data/unit/en_SX.txt
index 0349554..c619269 100644
--- a/source/data/unit/en_SX.txt
+++ b/source/data/unit/en_SX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_SZ.txt b/source/data/unit/en_SZ.txt
index 02bab1c..734e744 100644
--- a/source/data/unit/en_SZ.txt
+++ b/source/data/unit/en_SZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TC.txt b/source/data/unit/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/unit/en_TC.txt
+++ b/source/data/unit/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TK.txt b/source/data/unit/en_TK.txt
index 0d759ac..380b9d9 100644
--- a/source/data/unit/en_TK.txt
+++ b/source/data/unit/en_TK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TO.txt b/source/data/unit/en_TO.txt
index bb3bbcd..426b5d6 100644
--- a/source/data/unit/en_TO.txt
+++ b/source/data/unit/en_TO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TT.txt b/source/data/unit/en_TT.txt
index fdc2c64..4d6d39d 100644
--- a/source/data/unit/en_TT.txt
+++ b/source/data/unit/en_TT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TV.txt b/source/data/unit/en_TV.txt
index c473254..debe076 100644
--- a/source/data/unit/en_TV.txt
+++ b/source/data/unit/en_TV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TV{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_TZ.txt b/source/data/unit/en_TZ.txt
index 72b6a08..25e40bf 100644
--- a/source/data/unit/en_TZ.txt
+++ b/source/data/unit/en_TZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_UG.txt b/source/data/unit/en_UG.txt
index 4fa5cfd..d28e107 100644
--- a/source/data/unit/en_UG.txt
+++ b/source/data/unit/en_UG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_VC.txt b/source/data/unit/en_VC.txt
index c6d63b4..dc17ae0 100644
--- a/source/data/unit/en_VC.txt
+++ b/source/data/unit/en_VC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_VG.txt b/source/data/unit/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/unit/en_VG.txt
+++ b/source/data/unit/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_VU.txt b/source/data/unit/en_VU.txt
index 2f6cb29..433c4c9 100644
--- a/source/data/unit/en_VU.txt
+++ b/source/data/unit/en_VU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_WS.txt b/source/data/unit/en_WS.txt
index 982e5aa..0697889 100644
--- a/source/data/unit/en_WS.txt
+++ b/source/data/unit/en_WS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_WS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_ZA.txt b/source/data/unit/en_ZA.txt
index f4e3d8d..a34a7a2 100644
--- a/source/data/unit/en_ZA.txt
+++ b/source/data/unit/en_ZA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZA{
     %%Parent{"en_001"}
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_ZM.txt b/source/data/unit/en_ZM.txt
index a012334..3e9be74 100644
--- a/source/data/unit/en_ZM.txt
+++ b/source/data/unit/en_ZM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/en_ZW.txt b/source/data/unit/en_ZW.txt
index 4f5e7fa..5fb189a 100644
--- a/source/data/unit/en_ZW.txt
+++ b/source/data/unit/en_ZW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/eo.txt b/source/data/unit/eo.txt
index 951c444..2ab93d8 100644
--- a/source/data/unit/eo.txt
+++ b/source/data/unit/eo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     unitsShort{
         duration{
             month{
diff --git a/source/data/unit/es.txt b/source/data/unit/es.txt
index 6573dcd..6870781 100644
--- a/source/data/unit/es.txt
+++ b/source/data/unit/es.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es{
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/es_419.txt b/source/data/unit/es_419.txt
index aa8257b..0961f8e 100644
--- a/source/data/unit/es_419.txt
+++ b/source/data/unit/es_419.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_419{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         concentr{
             milligram-per-deciliter{
diff --git a/source/data/unit/es_AR.txt b/source/data/unit/es_AR.txt
index 020ca59..d4b4c75 100644
--- a/source/data/unit/es_AR.txt
+++ b/source/data/unit/es_AR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_AR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         duration{
             year{
diff --git a/source/data/unit/es_BO.txt b/source/data/unit/es_BO.txt
index 05c1e42..fc9b425 100644
--- a/source/data/unit/es_BO.txt
+++ b/source/data/unit/es_BO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_BR.txt b/source/data/unit/es_BR.txt
index 14d1f67..ee8a444 100644
--- a/source/data/unit/es_BR.txt
+++ b/source/data/unit/es_BR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BR{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_BZ.txt b/source/data/unit/es_BZ.txt
new file mode 100644
index 0000000..7734598
--- /dev/null
+++ b/source/data/unit/es_BZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/unit/es_CL.txt b/source/data/unit/es_CL.txt
index 4333bf7..26666d2 100644
--- a/source/data/unit/es_CL.txt
+++ b/source/data/unit/es_CL.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CL{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     durationUnits{
         hms{"hh:mm:ss"}
         ms{"mm:ss"}
diff --git a/source/data/unit/es_CO.txt b/source/data/unit/es_CO.txt
index 6d37a5f..4cafab6 100644
--- a/source/data/unit/es_CO.txt
+++ b/source/data/unit/es_CO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         duration{
             month{
diff --git a/source/data/unit/es_CR.txt b/source/data/unit/es_CR.txt
index 9791231..b8ac5fd 100644
--- a/source/data/unit/es_CR.txt
+++ b/source/data/unit/es_CR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_CU.txt b/source/data/unit/es_CU.txt
index dbd4f56..f75d29f 100644
--- a/source/data/unit/es_CU.txt
+++ b/source/data/unit/es_CU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CU{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_DO.txt b/source/data/unit/es_DO.txt
index e986d8a..8aa48d3 100644
--- a/source/data/unit/es_DO.txt
+++ b/source/data/unit/es_DO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_DO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         electric{
             ampere{
diff --git a/source/data/unit/es_EC.txt b/source/data/unit/es_EC.txt
index de10d7e..f37b336 100644
--- a/source/data/unit/es_EC.txt
+++ b/source/data/unit/es_EC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_EC{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_GT.txt b/source/data/unit/es_GT.txt
index 8f2975f..9b58c93 100644
--- a/source/data/unit/es_GT.txt
+++ b/source/data/unit/es_GT.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_GT{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/es_HN.txt b/source/data/unit/es_HN.txt
index c16f260..33108fe 100644
--- a/source/data/unit/es_HN.txt
+++ b/source/data/unit/es_HN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_HN{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_MX.txt b/source/data/unit/es_MX.txt
index 54abd9e..e135a74 100644
--- a/source/data/unit/es_MX.txt
+++ b/source/data/unit/es_MX.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_MX{
     %%Parent{"es_419"}
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     units{
         angle{
             arc-minute{
diff --git a/source/data/unit/es_NI.txt b/source/data/unit/es_NI.txt
index df7b8c1..b1fdbbc 100644
--- a/source/data/unit/es_NI.txt
+++ b/source/data/unit/es_NI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_NI{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_PA.txt b/source/data/unit/es_PA.txt
index 1a137ed..241b75f 100644
--- a/source/data/unit/es_PA.txt
+++ b/source/data/unit/es_PA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PA{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_PE.txt b/source/data/unit/es_PE.txt
index a05bd5e..7a0e05c 100644
--- a/source/data/unit/es_PE.txt
+++ b/source/data/unit/es_PE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PE{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_PR.txt b/source/data/unit/es_PR.txt
index a8656cc..3f82c6f 100644
--- a/source/data/unit/es_PR.txt
+++ b/source/data/unit/es_PR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         temperature{
             fahrenheit{
diff --git a/source/data/unit/es_PY.txt b/source/data/unit/es_PY.txt
index 6e40cc0..505b77d 100644
--- a/source/data/unit/es_PY.txt
+++ b/source/data/unit/es_PY.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PY{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         duration{
             year{
diff --git a/source/data/unit/es_SV.txt b/source/data/unit/es_SV.txt
index ce06214..286adf8 100644
--- a/source/data/unit/es_SV.txt
+++ b/source/data/unit/es_SV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_SV{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_US.txt b/source/data/unit/es_US.txt
index 0b54588..4a6c031 100644
--- a/source/data/unit/es_US.txt
+++ b/source/data/unit/es_US.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_US{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
     units{
         concentr{
             milligram-per-deciliter{
diff --git a/source/data/unit/es_UY.txt b/source/data/unit/es_UY.txt
index 363817b..1f9edc6 100644
--- a/source/data/unit/es_UY.txt
+++ b/source/data/unit/es_UY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_UY{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/es_VE.txt b/source/data/unit/es_VE.txt
index 618dc76..ebc0f34 100644
--- a/source/data/unit/es_VE.txt
+++ b/source/data/unit/es_VE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_VE{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/et.txt b/source/data/unit/et.txt
index cbb36f1..893922d 100644
--- a/source/data/unit/et.txt
+++ b/source/data/unit/et.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 et{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/eu.txt b/source/data/unit/eu.txt
index d504099..bcb2370 100644
--- a/source/data/unit/eu.txt
+++ b/source/data/unit/eu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eu{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ewo.txt b/source/data/unit/ewo.txt
index d180ce5..d62c208 100644
--- a/source/data/unit/ewo.txt
+++ b/source/data/unit/ewo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ewo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/fa.txt b/source/data/unit/fa.txt
index 4753cff..f1c2c3f 100644
--- a/source/data/unit/fa.txt
+++ b/source/data/unit/fa.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fa{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ff.txt b/source/data/unit/ff.txt
index 0cbeb8d..1a65808 100644
--- a/source/data/unit/ff.txt
+++ b/source/data/unit/ff.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/fi.txt b/source/data/unit/fi.txt
index 389b73d..f7d28e9 100644
--- a/source/data/unit/fi.txt
+++ b/source/data/unit/fi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fi{
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h.mm"}
         hms{"h.mm.ss"}
diff --git a/source/data/unit/fil.txt b/source/data/unit/fil.txt
index a21b7fd..4360cf8 100644
--- a/source/data/unit/fil.txt
+++ b/source/data/unit/fil.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fil{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/fo.txt b/source/data/unit/fo.txt
index 5ec2fa3..06ac904 100644
--- a/source/data/unit/fo.txt
+++ b/source/data/unit/fo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fo{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/fr.txt b/source/data/unit/fr.txt
index c560742..9c0f7a7 100644
--- a/source/data/unit/fr.txt
+++ b/source/data/unit/fr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"hh:mm"}
         hms{"hh:mm:ss"}
diff --git a/source/data/unit/fr_CA.txt b/source/data/unit/fr_CA.txt
index 12fa1bc..6ee08b3 100644
--- a/source/data/unit/fr_CA.txt
+++ b/source/data/unit/fr_CA.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_CA{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/fr_HT.txt b/source/data/unit/fr_HT.txt
index 177c850..4566647 100644
--- a/source/data/unit/fr_HT.txt
+++ b/source/data/unit/fr_HT.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_HT{
-    Version{"2.1.27.63"}
+    Version{"2.1.31.33"}
     units{
         area{
             hectare{
diff --git a/source/data/unit/fur.txt b/source/data/unit/fur.txt
index 5835966..601bc94 100644
--- a/source/data/unit/fur.txt
+++ b/source/data/unit/fur.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fur{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/fy.txt b/source/data/unit/fy.txt
index 6bde90e..dc71197 100644
--- a/source/data/unit/fy.txt
+++ b/source/data/unit/fy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fy{
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ga.txt b/source/data/unit/ga.txt
index 7d32b82..ffd31d6 100644
--- a/source/data/unit/ga.txt
+++ b/source/data/unit/ga.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ga{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/gd.txt b/source/data/unit/gd.txt
index e9ac1cc..070142a 100644
--- a/source/data/unit/gd.txt
+++ b/source/data/unit/gd.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gd{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/gl.txt b/source/data/unit/gl.txt
index 40fa0e7..6ae3662 100644
--- a/source/data/unit/gl.txt
+++ b/source/data/unit/gl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/gsw.txt b/source/data/unit/gsw.txt
index ba8abcc..1f4b604 100644
--- a/source/data/unit/gsw.txt
+++ b/source/data/unit/gsw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gsw{
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/gu.txt b/source/data/unit/gu.txt
index 28d357a..c2e3bcd 100644
--- a/source/data/unit/gu.txt
+++ b/source/data/unit/gu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gu{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/guz.txt b/source/data/unit/guz.txt
index d53b609..f7ea241 100644
--- a/source/data/unit/guz.txt
+++ b/source/data/unit/guz.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 guz{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/gv.txt b/source/data/unit/gv.txt
index 5e6a4fa..9945d6c 100644
--- a/source/data/unit/gv.txt
+++ b/source/data/unit/gv.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gv{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/unit/ha.txt b/source/data/unit/ha.txt
index b817568..40a2dc5 100644
--- a/source/data/unit/ha.txt
+++ b/source/data/unit/ha.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ha{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/haw.txt b/source/data/unit/haw.txt
index d6926e9..3c8d350 100644
--- a/source/data/unit/haw.txt
+++ b/source/data/unit/haw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 haw{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/he.txt b/source/data/unit/he.txt
index 30712ce..0ef3734 100644
--- a/source/data/unit/he.txt
+++ b/source/data/unit/he.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 he{
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/hi.txt b/source/data/unit/hi.txt
index 2b1dea5..50ba9f3 100644
--- a/source/data/unit/hi.txt
+++ b/source/data/unit/hi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hi{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/hr.txt b/source/data/unit/hr.txt
index ff71e3e..09a2094 100644
--- a/source/data/unit/hr.txt
+++ b/source/data/unit/hr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/hsb.txt b/source/data/unit/hsb.txt
index 8c845da..3f92c81 100644
--- a/source/data/unit/hsb.txt
+++ b/source/data/unit/hsb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hsb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/hu.txt b/source/data/unit/hu.txt
index 0ed9022..c8aa0ac 100644
--- a/source/data/unit/hu.txt
+++ b/source/data/unit/hu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hu{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/hy.txt b/source/data/unit/hy.txt
index 5b33d93..5a9ca80 100644
--- a/source/data/unit/hy.txt
+++ b/source/data/unit/hy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hy{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/id.txt b/source/data/unit/id.txt
index 512eae9..af3de98 100644
--- a/source/data/unit/id.txt
+++ b/source/data/unit/id.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 id{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h.mm"}
         hms{"h.mm.ss"}
diff --git a/source/data/unit/ig.txt b/source/data/unit/ig.txt
index fcbb894..c186176 100644
--- a/source/data/unit/ig.txt
+++ b/source/data/unit/ig.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ig{
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ii.txt b/source/data/unit/ii.txt
index 0463d3e..d2b67f0 100644
--- a/source/data/unit/ii.txt
+++ b/source/data/unit/ii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/is.txt b/source/data/unit/is.txt
index d52fcae..b0f6bb5 100644
--- a/source/data/unit/is.txt
+++ b/source/data/unit/is.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 is{
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/it.txt b/source/data/unit/it.txt
index ca7194f..b29edf7 100644
--- a/source/data/unit/it.txt
+++ b/source/data/unit/it.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 it{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ja.txt b/source/data/unit/ja.txt
index e80dc45..7f255e4 100644
--- a/source/data/unit/ja.txt
+++ b/source/data/unit/ja.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ja{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/jgo.txt b/source/data/unit/jgo.txt
index 6742b2e..2fc9b91 100644
--- a/source/data/unit/jgo.txt
+++ b/source/data/unit/jgo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jgo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/jmc.txt b/source/data/unit/jmc.txt
index 97c2208..88799a3 100644
--- a/source/data/unit/jmc.txt
+++ b/source/data/unit/jmc.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jmc{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ka.txt b/source/data/unit/ka.txt
index d662147..ecb47bc 100644
--- a/source/data/unit/ka.txt
+++ b/source/data/unit/ka.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ka{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kab.txt b/source/data/unit/kab.txt
index 6264be2..6ee6531 100644
--- a/source/data/unit/kab.txt
+++ b/source/data/unit/kab.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kab{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/kam.txt b/source/data/unit/kam.txt
index 3d2273b..be7e8d4 100644
--- a/source/data/unit/kam.txt
+++ b/source/data/unit/kam.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kam{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/kde.txt b/source/data/unit/kde.txt
index 31a55fa..08d1148 100644
--- a/source/data/unit/kde.txt
+++ b/source/data/unit/kde.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kde{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/kea.txt b/source/data/unit/kea.txt
index 4a9f135..4047179 100644
--- a/source/data/unit/kea.txt
+++ b/source/data/unit/kea.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kea{
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/khq.txt b/source/data/unit/khq.txt
index 747e598..77867ad 100644
--- a/source/data/unit/khq.txt
+++ b/source/data/unit/khq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 khq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ki.txt b/source/data/unit/ki.txt
index c5e32d3..b65f033 100644
--- a/source/data/unit/ki.txt
+++ b/source/data/unit/ki.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ki{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/kk.txt b/source/data/unit/kk.txt
index eac8798..6e4c8aa 100644
--- a/source/data/unit/kk.txt
+++ b/source/data/unit/kk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kkj.txt b/source/data/unit/kkj.txt
index fcd2f91..f3d1e8b 100644
--- a/source/data/unit/kkj.txt
+++ b/source/data/unit/kkj.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kkj{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/kl.txt b/source/data/unit/kl.txt
index 148e85f..b2d02eb 100644
--- a/source/data/unit/kl.txt
+++ b/source/data/unit/kl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kln.txt b/source/data/unit/kln.txt
index 467e5a4..7e71ab4 100644
--- a/source/data/unit/kln.txt
+++ b/source/data/unit/kln.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kln{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/km.txt b/source/data/unit/km.txt
index 81c4518..e7387a4 100644
--- a/source/data/unit/km.txt
+++ b/source/data/unit/km.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 km{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kn.txt b/source/data/unit/kn.txt
index 4830972..4db7cf5 100644
--- a/source/data/unit/kn.txt
+++ b/source/data/unit/kn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kn{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ko.txt b/source/data/unit/ko.txt
index 2107e73..12c30fc 100644
--- a/source/data/unit/ko.txt
+++ b/source/data/unit/ko.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ko{
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kok.txt b/source/data/unit/kok.txt
index ab733bb..53c99e3 100644
--- a/source/data/unit/kok.txt
+++ b/source/data/unit/kok.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kok{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ks.txt b/source/data/unit/ks.txt
index 5e900cb..783844d 100644
--- a/source/data/unit/ks.txt
+++ b/source/data/unit/ks.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ks{
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     units{
         duration{
             day{
diff --git a/source/data/unit/ksb.txt b/source/data/unit/ksb.txt
index 0ea702f..0f244f8 100644
--- a/source/data/unit/ksb.txt
+++ b/source/data/unit/ksb.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksb{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ksf.txt b/source/data/unit/ksf.txt
index 2945bf7..1fffe3b 100644
--- a/source/data/unit/ksf.txt
+++ b/source/data/unit/ksf.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksf{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ksh.txt b/source/data/unit/ksh.txt
index 1814ed6..f123f51 100644
--- a/source/data/unit/ksh.txt
+++ b/source/data/unit/ksh.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksh{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/kw.txt b/source/data/unit/kw.txt
index 29bf749..13f10c3 100644
--- a/source/data/unit/kw.txt
+++ b/source/data/unit/kw.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kw{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ky.txt b/source/data/unit/ky.txt
index 5ae1557..1fd5b37 100644
--- a/source/data/unit/ky.txt
+++ b/source/data/unit/ky.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ky{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/lag.txt b/source/data/unit/lag.txt
index f5ff88b..7a87fc4 100644
--- a/source/data/unit/lag.txt
+++ b/source/data/unit/lag.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lag{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/lb.txt b/source/data/unit/lb.txt
index 31f8f2d..d6dc83a 100644
--- a/source/data/unit/lb.txt
+++ b/source/data/unit/lb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/lg.txt b/source/data/unit/lg.txt
index 6087db7..f17caa5 100644
--- a/source/data/unit/lg.txt
+++ b/source/data/unit/lg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/lkt.txt b/source/data/unit/lkt.txt
index aae0e52..8e4584d 100644
--- a/source/data/unit/lkt.txt
+++ b/source/data/unit/lkt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lkt{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/ln.txt b/source/data/unit/ln.txt
index 564252e..55514b6 100644
--- a/source/data/unit/ln.txt
+++ b/source/data/unit/ln.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/unit/lo.txt b/source/data/unit/lo.txt
index 78debb0..6d3f430 100644
--- a/source/data/unit/lo.txt
+++ b/source/data/unit/lo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lo{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/lrc.txt b/source/data/unit/lrc.txt
index 3aca54a..45878b7 100644
--- a/source/data/unit/lrc.txt
+++ b/source/data/unit/lrc.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lrc{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/lt.txt b/source/data/unit/lt.txt
index b428bbf..94a76c6 100644
--- a/source/data/unit/lt.txt
+++ b/source/data/unit/lt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lt{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"hh:mm"}
         hms{"hh:mm:ss"}
diff --git a/source/data/unit/lu.txt b/source/data/unit/lu.txt
index 1844a9e..b93cc9d 100644
--- a/source/data/unit/lu.txt
+++ b/source/data/unit/lu.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lu{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/luo.txt b/source/data/unit/luo.txt
index 8b41c72..43c1380 100644
--- a/source/data/unit/luo.txt
+++ b/source/data/unit/luo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/luy.txt b/source/data/unit/luy.txt
index 82ba6c7..9671ff7 100644
--- a/source/data/unit/luy.txt
+++ b/source/data/unit/luy.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luy{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/lv.txt b/source/data/unit/lv.txt
index 132eac8..4845e7a 100644
--- a/source/data/unit/lv.txt
+++ b/source/data/unit/lv.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lv{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/mas.txt b/source/data/unit/mas.txt
index f6364e8..f690e2e 100644
--- a/source/data/unit/mas.txt
+++ b/source/data/unit/mas.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mas{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/mer.txt b/source/data/unit/mer.txt
index b3efda1..ebe2171 100644
--- a/source/data/unit/mer.txt
+++ b/source/data/unit/mer.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mer{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/mfe.txt b/source/data/unit/mfe.txt
index 4049c9f..800e132 100644
--- a/source/data/unit/mfe.txt
+++ b/source/data/unit/mfe.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mfe{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/mg.txt b/source/data/unit/mg.txt
index 426e871..d225a0d 100644
--- a/source/data/unit/mg.txt
+++ b/source/data/unit/mg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/mgh.txt b/source/data/unit/mgh.txt
index 78a88c6..b7d92c5 100644
--- a/source/data/unit/mgh.txt
+++ b/source/data/unit/mgh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/mgo.txt b/source/data/unit/mgo.txt
index b7cafae..851952b 100644
--- a/source/data/unit/mgo.txt
+++ b/source/data/unit/mgo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/mk.txt b/source/data/unit/mk.txt
index 595ef42..b53deb7 100644
--- a/source/data/unit/mk.txt
+++ b/source/data/unit/mk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ml.txt b/source/data/unit/ml.txt
index 8321b14..821833d 100644
--- a/source/data/unit/ml.txt
+++ b/source/data/unit/ml.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ml{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/mn.txt b/source/data/unit/mn.txt
index ca6b5d8..52020aa 100644
--- a/source/data/unit/mn.txt
+++ b/source/data/unit/mn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mn{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/mr.txt b/source/data/unit/mr.txt
index 1204e5f..5f76418 100644
--- a/source/data/unit/mr.txt
+++ b/source/data/unit/mr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mr{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ms.txt b/source/data/unit/ms.txt
index 8a6052a..8f24c91 100644
--- a/source/data/unit/ms.txt
+++ b/source/data/unit/ms.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ms{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/mt.txt b/source/data/unit/mt.txt
index 0630364..1ce8cda 100644
--- a/source/data/unit/mt.txt
+++ b/source/data/unit/mt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mt{
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     units{
         angle{
             arc-minute{
diff --git a/source/data/unit/mua.txt b/source/data/unit/mua.txt
index 7eb9c8f..00ac580 100644
--- a/source/data/unit/mua.txt
+++ b/source/data/unit/mua.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mua{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/my.txt b/source/data/unit/my.txt
index 5be588c..f759236 100644
--- a/source/data/unit/my.txt
+++ b/source/data/unit/my.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 my{
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/mzn.txt b/source/data/unit/mzn.txt
index c485413..9156a11 100644
--- a/source/data/unit/mzn.txt
+++ b/source/data/unit/mzn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mzn{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/naq.txt b/source/data/unit/naq.txt
index af5f8cb..98e1493 100644
--- a/source/data/unit/naq.txt
+++ b/source/data/unit/naq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 naq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/nb.txt b/source/data/unit/nb.txt
index 4b4b296..6307ed0 100644
--- a/source/data/unit/nb.txt
+++ b/source/data/unit/nb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nb{
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/nd.txt b/source/data/unit/nd.txt
index 0d89291..ffbcd39 100644
--- a/source/data/unit/nd.txt
+++ b/source/data/unit/nd.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nd{
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/nds.txt b/source/data/unit/nds.txt
index e2b66dd..5ce25c4 100644
--- a/source/data/unit/nds.txt
+++ b/source/data/unit/nds.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/ne.txt b/source/data/unit/ne.txt
index 9402e9e..2f055b3 100644
--- a/source/data/unit/ne.txt
+++ b/source/data/unit/ne.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ne{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/nl.txt b/source/data/unit/nl.txt
index 446442e..f4469bb 100644
--- a/source/data/unit/nl.txt
+++ b/source/data/unit/nl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/nmg.txt b/source/data/unit/nmg.txt
index 4cecd2e..a3f1ffb 100644
--- a/source/data/unit/nmg.txt
+++ b/source/data/unit/nmg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nmg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/nn.txt b/source/data/unit/nn.txt
index 074a883..1b2c799 100644
--- a/source/data/unit/nn.txt
+++ b/source/data/unit/nn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nn{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/nnh.txt b/source/data/unit/nnh.txt
index 27539e7..caba226 100644
--- a/source/data/unit/nnh.txt
+++ b/source/data/unit/nnh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nnh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/nus.txt b/source/data/unit/nus.txt
index fc494d0..afeb6a1 100644
--- a/source/data/unit/nus.txt
+++ b/source/data/unit/nus.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nus{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/nyn.txt b/source/data/unit/nyn.txt
index 68ccc90..3f1d19b 100644
--- a/source/data/unit/nyn.txt
+++ b/source/data/unit/nyn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nyn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/om.txt b/source/data/unit/om.txt
index 5e12176..49b10b8 100644
--- a/source/data/unit/om.txt
+++ b/source/data/unit/om.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 om{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/or.txt b/source/data/unit/or.txt
index 4fa5575..5cde674 100644
--- a/source/data/unit/or.txt
+++ b/source/data/unit/or.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 or{
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/os.txt b/source/data/unit/os.txt
index 9c1bc6e..6ae5a97 100644
--- a/source/data/unit/os.txt
+++ b/source/data/unit/os.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 os{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/pa.txt b/source/data/unit/pa.txt
index a8314ba..abedf3a 100644
--- a/source/data/unit/pa.txt
+++ b/source/data/unit/pa.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/pa_Arab.txt b/source/data/unit/pa_Arab.txt
index f560241..87d6267 100644
--- a/source/data/unit/pa_Arab.txt
+++ b/source/data/unit/pa_Arab.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Arab{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pa_Guru.txt b/source/data/unit/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/unit/pa_Guru.txt
+++ b/source/data/unit/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pl.txt b/source/data/unit/pl.txt
index 817e9c9..6e573a4 100644
--- a/source/data/unit/pl.txt
+++ b/source/data/unit/pl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/pool.res b/source/data/unit/pool.res
index fbeee5f..e2d410f 100644
--- a/source/data/unit/pool.res
+++ b/source/data/unit/pool.res
Binary files differ
diff --git a/source/data/unit/ps.txt b/source/data/unit/ps.txt
index 9310f3c..729779e 100644
--- a/source/data/unit/ps.txt
+++ b/source/data/unit/ps.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ps{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/pt.txt b/source/data/unit/pt.txt
index c562ba7..63c50ab 100644
--- a/source/data/unit/pt.txt
+++ b/source/data/unit/pt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/pt_AO.txt b/source/data/unit/pt_AO.txt
index 7aeffb6..5a8f6f2 100644
--- a/source/data/unit/pt_AO.txt
+++ b/source/data/unit/pt_AO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_AO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_CH.txt b/source/data/unit/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/unit/pt_CH.txt
+++ b/source/data/unit/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_CV.txt b/source/data/unit/pt_CV.txt
index 7e77af3..ad4836b 100644
--- a/source/data/unit/pt_CV.txt
+++ b/source/data/unit/pt_CV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CV{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_GQ.txt b/source/data/unit/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/unit/pt_GQ.txt
+++ b/source/data/unit/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_GW.txt b/source/data/unit/pt_GW.txt
index 67e6e72..e137e51 100644
--- a/source/data/unit/pt_GW.txt
+++ b/source/data/unit/pt_GW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_LU.txt b/source/data/unit/pt_LU.txt
index 009ec80..e6d1c60 100644
--- a/source/data/unit/pt_LU.txt
+++ b/source/data/unit/pt_LU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_LU{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_MO.txt b/source/data/unit/pt_MO.txt
index e443a63..76fe46e 100644
--- a/source/data/unit/pt_MO.txt
+++ b/source/data/unit/pt_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_MZ.txt b/source/data/unit/pt_MZ.txt
index 9873941..b86fd1e 100644
--- a/source/data/unit/pt_MZ.txt
+++ b/source/data/unit/pt_MZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MZ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_PT.txt b/source/data/unit/pt_PT.txt
index 7de6302..48bd74f 100644
--- a/source/data/unit/pt_PT.txt
+++ b/source/data/unit/pt_PT.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_PT{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
     units{
         acceleration{
             g-force{
diff --git a/source/data/unit/pt_ST.txt b/source/data/unit/pt_ST.txt
index 55f443a..95f596c 100644
--- a/source/data/unit/pt_ST.txt
+++ b/source/data/unit/pt_ST.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_ST{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/pt_TL.txt b/source/data/unit/pt_TL.txt
index 68cb641..786b602 100644
--- a/source/data/unit/pt_TL.txt
+++ b/source/data/unit/pt_TL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/qu.txt b/source/data/unit/qu.txt
index 7d4e9a0..4ae55f9 100644
--- a/source/data/unit/qu.txt
+++ b/source/data/unit/qu.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/resfiles.mk b/source/data/unit/resfiles.mk
index 792b485..e3be680 100644
--- a/source/data/unit/resfiles.mk
+++ b/source/data/unit/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-UNIT_CLDR_VERSION = %version%
+UNIT_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,19 +26,20 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-UNIT_SYNTHETIC_ALIAS = az_AZ.txt az_Latn_AZ.txt bs_BA.txt bs_Latn_BA.txt\
- en_NH.txt en_RH.txt fil_PH.txt he_IL.txt id_ID.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP.txt\
- ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt no.txt\
- no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt pa_IN.txt\
- pa_PK.txt sh.txt sh_BA.txt sh_CS.txt sh_YU.txt\
- shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt sr_Cyrl_BA.txt\
- sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Cyrl_YU.txt sr_Latn_BA.txt\
- sr_Latn_CS.txt sr_Latn_ME.txt sr_Latn_RS.txt sr_Latn_YU.txt sr_ME.txt\
- sr_RS.txt sr_XK.txt sr_YU.txt th_TH.txt th_TH_TRADITIONAL.txt\
- tl.txt tl_PH.txt uz_AF.txt uz_Arab_AF.txt uz_Latn_UZ.txt\
- uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt zh_CN.txt zh_HK.txt\
- zh_Hans_CN.txt zh_Hant_TW.txt zh_MO.txt zh_SG.txt zh_TW.txt
+UNIT_SYNTHETIC_ALIAS = ar_SA.txt ars.txt az_AZ.txt az_Latn_AZ.txt\
+ bs_BA.txt bs_Latn_BA.txt en_NH.txt en_RH.txt fil_PH.txt\
+ he_IL.txt id_ID.txt in.txt in_ID.txt iw.txt\
+ iw_IL.txt ja_JP.txt ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt\
+ nn_NO.txt no.txt no_NO.txt no_NO_NY.txt pa_Arab_PK.txt\
+ pa_Guru_IN.txt pa_IN.txt pa_PK.txt sh.txt sh_BA.txt\
+ sh_CS.txt sh_YU.txt shi_MA.txt shi_Tfng_MA.txt sr_BA.txt\
+ sr_CS.txt sr_Cyrl_BA.txt sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt\
+ sr_Cyrl_YU.txt sr_Latn_BA.txt sr_Latn_CS.txt sr_Latn_ME.txt sr_Latn_RS.txt\
+ sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt\
+ th_TH.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt\
+ uz_Arab_AF.txt uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt\
+ zh_CN.txt zh_HK.txt zh_Hans_CN.txt zh_Hant_TW.txt zh_MO.txt\
+ zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -75,45 +76,45 @@
  en_TV.txt en_TZ.txt en_UG.txt en_VC.txt en_VG.txt\
  en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt en_ZW.txt\
  eo.txt es.txt es_419.txt es_AR.txt es_BO.txt\
- es_BR.txt es_CL.txt es_CO.txt es_CR.txt es_CU.txt\
- es_DO.txt es_EC.txt es_GT.txt es_HN.txt es_MX.txt\
- es_NI.txt es_PA.txt es_PE.txt es_PR.txt es_PY.txt\
- es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\
- eu.txt ewo.txt fa.txt ff.txt fi.txt\
- fil.txt fo.txt fr.txt fr_CA.txt fr_HT.txt\
- fur.txt fy.txt ga.txt gd.txt gl.txt\
- gsw.txt gu.txt guz.txt gv.txt ha.txt\
- haw.txt he.txt hi.txt hr.txt hsb.txt\
- hu.txt hy.txt id.txt ig.txt ii.txt\
- is.txt it.txt ja.txt jgo.txt jmc.txt\
- ka.txt kab.txt kam.txt kde.txt kea.txt\
- khq.txt ki.txt kk.txt kkj.txt kl.txt\
- kln.txt km.txt kn.txt ko.txt kok.txt\
- ks.txt ksb.txt ksf.txt ksh.txt kw.txt\
- ky.txt lag.txt lb.txt lg.txt lkt.txt\
- ln.txt lo.txt lrc.txt lt.txt lu.txt\
- luo.txt luy.txt lv.txt mas.txt mer.txt\
- mfe.txt mg.txt mgh.txt mgo.txt mk.txt\
- ml.txt mn.txt mr.txt ms.txt mt.txt\
- mua.txt my.txt mzn.txt naq.txt nb.txt\
- nd.txt nds.txt ne.txt nl.txt nmg.txt\
- nn.txt nnh.txt nus.txt nyn.txt om.txt\
- or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\
- pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\
- pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\
- pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\
- rm.txt rn.txt ro.txt ro_MD.txt rof.txt\
- ru.txt rw.txt rwk.txt sah.txt saq.txt\
- sbp.txt se.txt seh.txt ses.txt sg.txt\
- shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\
- sl.txt smn.txt sn.txt so.txt sq.txt\
- sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sv_FI.txt\
- sw.txt ta.txt te.txt teo.txt th.txt\
- ti.txt to.txt tr.txt twq.txt tzm.txt\
- ug.txt uk.txt ur.txt ur_IN.txt uz.txt\
- uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\
- vai_Vaii.txt vi.txt vun.txt wae.txt xog.txt\
- yav.txt yi.txt yo.txt yue.txt zgh.txt\
- zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\
- zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
+ es_BR.txt es_BZ.txt es_CL.txt es_CO.txt es_CR.txt\
+ es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\
+ es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\
+ es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\
+ et.txt eu.txt ewo.txt fa.txt ff.txt\
+ fi.txt fil.txt fo.txt fr.txt fr_CA.txt\
+ fr_HT.txt fur.txt fy.txt ga.txt gd.txt\
+ gl.txt gsw.txt gu.txt guz.txt gv.txt\
+ ha.txt haw.txt he.txt hi.txt hr.txt\
+ hsb.txt hu.txt hy.txt id.txt ig.txt\
+ ii.txt is.txt it.txt ja.txt jgo.txt\
+ jmc.txt ka.txt kab.txt kam.txt kde.txt\
+ kea.txt khq.txt ki.txt kk.txt kkj.txt\
+ kl.txt kln.txt km.txt kn.txt ko.txt\
+ kok.txt ks.txt ksb.txt ksf.txt ksh.txt\
+ kw.txt ky.txt lag.txt lb.txt lg.txt\
+ lkt.txt ln.txt lo.txt lrc.txt lt.txt\
+ lu.txt luo.txt luy.txt lv.txt mas.txt\
+ mer.txt mfe.txt mg.txt mgh.txt mgo.txt\
+ mk.txt ml.txt mn.txt mr.txt ms.txt\
+ mt.txt mua.txt my.txt mzn.txt naq.txt\
+ nb.txt nd.txt nds.txt ne.txt nl.txt\
+ nmg.txt nn.txt nnh.txt nus.txt nyn.txt\
+ om.txt or.txt os.txt pa.txt pa_Arab.txt\
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\
+ qu.txt rm.txt rn.txt ro.txt ro_MD.txt\
+ rof.txt ru.txt rw.txt rwk.txt sah.txt\
+ saq.txt sbp.txt se.txt seh.txt ses.txt\
+ sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\
+ sk.txt sl.txt smn.txt sn.txt so.txt\
+ sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt\
+ sv_FI.txt sw.txt ta.txt te.txt teo.txt\
+ th.txt ti.txt to.txt tr.txt twq.txt\
+ tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\
+ uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\
+ vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\
+ xog.txt yav.txt yi.txt yo.txt yue.txt\
+ zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt\
+ zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
 
diff --git a/source/data/unit/rm.txt b/source/data/unit/rm.txt
index 4b49719..7dfb5de 100644
--- a/source/data/unit/rm.txt
+++ b/source/data/unit/rm.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rm{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/rn.txt b/source/data/unit/rn.txt
index 9559693..f10b8b1 100644
--- a/source/data/unit/rn.txt
+++ b/source/data/unit/rn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ro.txt b/source/data/unit/ro.txt
index 725cf28..11186a8 100644
--- a/source/data/unit/ro.txt
+++ b/source/data/unit/ro.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ro{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ro_MD.txt b/source/data/unit/ro_MD.txt
index 3f2efbf..7b7ea52 100644
--- a/source/data/unit/ro_MD.txt
+++ b/source/data/unit/ro_MD.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ro_MD{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         duration{
             day{
diff --git a/source/data/unit/rof.txt b/source/data/unit/rof.txt
index 702e45a..2fa4a47 100644
--- a/source/data/unit/rof.txt
+++ b/source/data/unit/rof.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rof{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/root.txt b/source/data/unit/root.txt
index d5006fb..b387555 100644
--- a/source/data/unit/root.txt
+++ b/source/data/unit/root.txt
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml
  */
 root{
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
@@ -368,6 +368,10 @@
                 dnam{"pm"}
                 other{"{0} pm"}
             }
+            point{
+                dnam{"pt"}
+                other{"{0} pt"}
+            }
             yard{
                 dnam{"yd"}
                 other{"{0} yd"}
diff --git a/source/data/unit/ru.txt b/source/data/unit/ru.txt
index 4c255c6..626f19c 100644
--- a/source/data/unit/ru.txt
+++ b/source/data/unit/ru.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/rw.txt b/source/data/unit/rw.txt
index 3007be7..839f873 100644
--- a/source/data/unit/rw.txt
+++ b/source/data/unit/rw.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rw{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/rwk.txt b/source/data/unit/rwk.txt
index a2ab739..4949be2 100644
--- a/source/data/unit/rwk.txt
+++ b/source/data/unit/rwk.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rwk{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/sah.txt b/source/data/unit/sah.txt
index b58925e..ee44a48 100644
--- a/source/data/unit/sah.txt
+++ b/source/data/unit/sah.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sah{
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/saq.txt b/source/data/unit/saq.txt
index 02a8dd1..5d5c993 100644
--- a/source/data/unit/saq.txt
+++ b/source/data/unit/saq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 saq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/sbp.txt b/source/data/unit/sbp.txt
index d7cbb78..46b2e98 100644
--- a/source/data/unit/sbp.txt
+++ b/source/data/unit/sbp.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sbp{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/se.txt b/source/data/unit/se.txt
index 624fd14..b3e411c 100644
--- a/source/data/unit/se.txt
+++ b/source/data/unit/se.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 se{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/seh.txt b/source/data/unit/seh.txt
index c7195e2..33cf43c 100644
--- a/source/data/unit/seh.txt
+++ b/source/data/unit/seh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 seh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ses.txt b/source/data/unit/ses.txt
index 0be2d29..221fb46 100644
--- a/source/data/unit/ses.txt
+++ b/source/data/unit/ses.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ses{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/sg.txt b/source/data/unit/sg.txt
index 76eae00..d5ffb8e 100644
--- a/source/data/unit/sg.txt
+++ b/source/data/unit/sg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/shi.txt b/source/data/unit/shi.txt
index 04c375f..b61d726 100644
--- a/source/data/unit/shi.txt
+++ b/source/data/unit/shi.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/shi_Latn.txt b/source/data/unit/shi_Latn.txt
index 2065b96..bbda8b9 100644
--- a/source/data/unit/shi_Latn.txt
+++ b/source/data/unit/shi_Latn.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Latn{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/shi_Tfng.txt b/source/data/unit/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/unit/shi_Tfng.txt
+++ b/source/data/unit/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/si.txt b/source/data/unit/si.txt
index 7417988..413d627 100644
--- a/source/data/unit/si.txt
+++ b/source/data/unit/si.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 si{
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
     durationUnits{
         hm{"h.mm"}
         hms{"h.mm.ss"}
diff --git a/source/data/unit/sk.txt b/source/data/unit/sk.txt
index 68ff267..33a4fd9 100644
--- a/source/data/unit/sk.txt
+++ b/source/data/unit/sk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/sl.txt b/source/data/unit/sl.txt
index 3c9adaa..295130b 100644
--- a/source/data/unit/sl.txt
+++ b/source/data/unit/sl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h.mm"}
         hms{"h.mm.ss"}
diff --git a/source/data/unit/smn.txt b/source/data/unit/smn.txt
index 0aa5120..9791d7d 100644
--- a/source/data/unit/smn.txt
+++ b/source/data/unit/smn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 smn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/sn.txt b/source/data/unit/sn.txt
index bf8d5b3..94c0e0e 100644
--- a/source/data/unit/sn.txt
+++ b/source/data/unit/sn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sn{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/so.txt b/source/data/unit/so.txt
index 2eac694..239d9a7 100644
--- a/source/data/unit/so.txt
+++ b/source/data/unit/so.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so{
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
 }
diff --git a/source/data/unit/sq.txt b/source/data/unit/sq.txt
index 3fa1516..1b03e54 100644
--- a/source/data/unit/sq.txt
+++ b/source/data/unit/sq.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sq{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/sr.txt b/source/data/unit/sr.txt
index ab8c44b..9f92954 100644
--- a/source/data/unit/sr.txt
+++ b/source/data/unit/sr.txt
@@ -1,11 +1,11 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
     durationUnits{
-        hm{"h.mm"}
-        hms{"h.mm.ss"}
-        ms{"m.ss"}
+        hm{"h:mm"}
+        hms{"h:mm:ss"}
+        ms{"m:ss"}
     }
     units{
         acceleration{
diff --git a/source/data/unit/sr_Cyrl.txt b/source/data/unit/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/unit/sr_Cyrl.txt
+++ b/source/data/unit/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/sr_Latn.txt b/source/data/unit/sr_Latn.txt
index f068f75..36f713b 100644
--- a/source/data/unit/sr_Latn.txt
+++ b/source/data/unit/sr_Latn.txt
@@ -2,11 +2,11 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn{
     %%Parent{"root"}
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
     durationUnits{
-        hm{"h.mm"}
-        hms{"h.mm.ss"}
-        ms{"m.ss"}
+        hm{"h:mm"}
+        hms{"h:mm:ss"}
+        ms{"m:ss"}
     }
     units{
         acceleration{
diff --git a/source/data/unit/sv.txt b/source/data/unit/sv.txt
index e71c8ac..5600161 100644
--- a/source/data/unit/sv.txt
+++ b/source/data/unit/sv.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv{
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/sv_FI.txt b/source/data/unit/sv_FI.txt
index 7e782b8..b49c9f3 100644
--- a/source/data/unit/sv_FI.txt
+++ b/source/data/unit/sv_FI.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv_FI{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     unitsNarrow{
         speed{
             kilometer-per-hour{
diff --git a/source/data/unit/sw.txt b/source/data/unit/sw.txt
index bcdb333..49332c0 100644
--- a/source/data/unit/sw.txt
+++ b/source/data/unit/sw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sw{
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ta.txt b/source/data/unit/ta.txt
index 8b1bf1a..13781d1 100644
--- a/source/data/unit/ta.txt
+++ b/source/data/unit/ta.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
@@ -584,7 +584,7 @@
             celsius{
                 dnam{"டிகிரி செல்சியஸ்"}
                 one{"{0} டிகிரி செல்சியஸ்"}
-                other{"{0}டிகிரி செல்சியஸ்"}
+                other{"{0} டிகிரி செல்சியஸ்"}
             }
             fahrenheit{
                 dnam{"டிகிரி ஃபாரன்ஹீட்"}
diff --git a/source/data/unit/te.txt b/source/data/unit/te.txt
index 9d8a9b2..c890b08 100644
--- a/source/data/unit/te.txt
+++ b/source/data/unit/te.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 te{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/teo.txt b/source/data/unit/teo.txt
index 146e7dd..e043977 100644
--- a/source/data/unit/teo.txt
+++ b/source/data/unit/teo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 teo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/th.txt b/source/data/unit/th.txt
index 441ba25..f5376a4 100644
--- a/source/data/unit/th.txt
+++ b/source/data/unit/th.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 th{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ti.txt b/source/data/unit/ti.txt
index 890af45..2eeeb43 100644
--- a/source/data/unit/ti.txt
+++ b/source/data/unit/ti.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ti{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/to.txt b/source/data/unit/to.txt
index 14c0982..54d9647 100644
--- a/source/data/unit/to.txt
+++ b/source/data/unit/to.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 to{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/tr.txt b/source/data/unit/tr.txt
index f81fdd1..9b82e44 100644
--- a/source/data/unit/tr.txt
+++ b/source/data/unit/tr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/twq.txt b/source/data/unit/twq.txt
index c29e762..f203ce0 100644
--- a/source/data/unit/twq.txt
+++ b/source/data/unit/twq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 twq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/tzm.txt b/source/data/unit/tzm.txt
index 6050ffb..4cd4612 100644
--- a/source/data/unit/tzm.txt
+++ b/source/data/unit/tzm.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tzm{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/ug.txt b/source/data/unit/ug.txt
index 57ddfa8..54f3aa7 100644
--- a/source/data/unit/ug.txt
+++ b/source/data/unit/ug.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ug{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     units{
         acceleration{
             g-force{
diff --git a/source/data/unit/uk.txt b/source/data/unit/uk.txt
index ee28d16..dec66e1 100644
--- a/source/data/unit/uk.txt
+++ b/source/data/unit/uk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uk{
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ur.txt b/source/data/unit/ur.txt
index a49f924..a82a9c8 100644
--- a/source/data/unit/ur.txt
+++ b/source/data/unit/ur.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ur{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/ur_IN.txt b/source/data/unit/ur_IN.txt
index 0dc4a31..8c04911 100644
--- a/source/data/unit/ur_IN.txt
+++ b/source/data/unit/ur_IN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ur_IN{
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
     units{
         length{
             astronomical-unit{
diff --git a/source/data/unit/uz.txt b/source/data/unit/uz.txt
index 3ee8e26..e042ff6 100644
--- a/source/data/unit/uz.txt
+++ b/source/data/unit/uz.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/uz_Arab.txt b/source/data/unit/uz_Arab.txt
index 5acf989..bf8ef3d 100644
--- a/source/data/unit/uz_Arab.txt
+++ b/source/data/unit/uz_Arab.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Arab{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/uz_Cyrl.txt b/source/data/unit/uz_Cyrl.txt
index e29d25d..4475c2b 100644
--- a/source/data/unit/uz_Cyrl.txt
+++ b/source/data/unit/uz_Cyrl.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/uz_Latn.txt b/source/data/unit/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/unit/uz_Latn.txt
+++ b/source/data/unit/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/vai.txt b/source/data/unit/vai.txt
index 6c2d775..d411407 100644
--- a/source/data/unit/vai.txt
+++ b/source/data/unit/vai.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/vai_Latn.txt b/source/data/unit/vai_Latn.txt
index fea3ff6..60d5e56 100644
--- a/source/data/unit/vai_Latn.txt
+++ b/source/data/unit/vai_Latn.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Latn{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/vai_Vaii.txt b/source/data/unit/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/unit/vai_Vaii.txt
+++ b/source/data/unit/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/vi.txt b/source/data/unit/vi.txt
index 1b9d013..f49172d 100644
--- a/source/data/unit/vi.txt
+++ b/source/data/unit/vi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vi{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/vun.txt b/source/data/unit/vun.txt
index 3fecf3e..e4ed87b 100644
--- a/source/data/unit/vun.txt
+++ b/source/data/unit/vun.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vun{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/wae.txt b/source/data/unit/wae.txt
index 45f547b..270ca7b 100644
--- a/source/data/unit/wae.txt
+++ b/source/data/unit/wae.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 wae{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     units{
         duration{
             day{
diff --git a/source/data/unit/xog.txt b/source/data/unit/xog.txt
index 832d2cc..31a3446 100644
--- a/source/data/unit/xog.txt
+++ b/source/data/unit/xog.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 xog{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/yav.txt b/source/data/unit/yav.txt
index 8d7de65..bb5ae19 100644
--- a/source/data/unit/yav.txt
+++ b/source/data/unit/yav.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yav{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/yi.txt b/source/data/unit/yi.txt
index 429f298..59da11b 100644
--- a/source/data/unit/yi.txt
+++ b/source/data/unit/yi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yi{
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/yo.txt b/source/data/unit/yo.txt
index f2f3e6d..7e98dc1 100644
--- a/source/data/unit/yo.txt
+++ b/source/data/unit/yo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/yue.txt b/source/data/unit/yue.txt
index 6f45823..f28f51b 100644
--- a/source/data/unit/yue.txt
+++ b/source/data/unit/yue.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yue{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/zgh.txt b/source/data/unit/zgh.txt
index 9ee504e..3b77251 100644
--- a/source/data/unit/zgh.txt
+++ b/source/data/unit/zgh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zgh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/zh.txt b/source/data/unit/zh.txt
index 3df0d53..5a73bc4 100644
--- a/source/data/unit/zh.txt
+++ b/source/data/unit/zh.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh{
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/zh_Hans.txt b/source/data/unit/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/unit/zh_Hans.txt
+++ b/source/data/unit/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/zh_Hans_HK.txt b/source/data/unit/zh_Hans_HK.txt
index 28bec5d..d9f7254 100644
--- a/source/data/unit/zh_Hans_HK.txt
+++ b/source/data/unit/zh_Hans_HK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_HK{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         compound{
             per{"{0}/{1}"}
diff --git a/source/data/unit/zh_Hans_MO.txt b/source/data/unit/zh_Hans_MO.txt
index 6ad0061..eabf75e 100644
--- a/source/data/unit/zh_Hans_MO.txt
+++ b/source/data/unit/zh_Hans_MO.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_MO{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         compound{
             per{"{0}/{1}"}
diff --git a/source/data/unit/zh_Hans_SG.txt b/source/data/unit/zh_Hans_SG.txt
index a8156ed..8926173 100644
--- a/source/data/unit/zh_Hans_SG.txt
+++ b/source/data/unit/zh_Hans_SG.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_SG{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         compound{
             per{"{0}/{1}"}
diff --git a/source/data/unit/zh_Hant.txt b/source/data/unit/zh_Hant.txt
index 25b6a3a..ceb0c21 100644
--- a/source/data/unit/zh_Hant.txt
+++ b/source/data/unit/zh_Hant.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant{
     %%Parent{"root"}
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/unit/zh_Hant_HK.txt b/source/data/unit/zh_Hant_HK.txt
index ce3f109..a857e54 100644
--- a/source/data/unit/zh_Hant_HK.txt
+++ b/source/data/unit/zh_Hant_HK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_HK{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     units{
         acceleration{
             meter-per-second-squared{
diff --git a/source/data/unit/zh_Hant_MO.txt b/source/data/unit/zh_Hant_MO.txt
index 1814082..78fdee5 100644
--- a/source/data/unit/zh_Hant_MO.txt
+++ b/source/data/unit/zh_Hant_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_MO{
     %%Parent{"zh_Hant_HK"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/unit/zu.txt b/source/data/unit/zu.txt
index 9b8553e..c5cade0 100644
--- a/source/data/unit/zu.txt
+++ b/source/data/unit/zu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zu{
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
     durationUnits{
         hm{"h:mm"}
         hms{"h:mm:ss"}
diff --git a/source/data/zone/af.txt b/source/data/zone/af.txt
index bcd504b..bc545c0 100644
--- a/source/data/zone/af.txt
+++ b/source/data/zone/af.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 af{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Gekoördineerde Universele Tyd"}
+        }
         "Etc:Unknown"{
             ec{"Onbekende stad"}
         }
diff --git a/source/data/zone/agq.txt b/source/data/zone/agq.txt
index cf862eb..f03e69a 100644
--- a/source/data/zone/agq.txt
+++ b/source/data/zone/agq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 agq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ak.txt b/source/data/zone/ak.txt
index 886a027..251735d 100644
--- a/source/data/zone/ak.txt
+++ b/source/data/zone/ak.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ak{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/am.txt b/source/data/zone/am.txt
index 48fab27..f302bf3 100644
--- a/source/data/zone/am.txt
+++ b/source/data/zone/am.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 am{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"አቢጃን"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"ሲድኒ"}
         }
+        "Etc:UTC"{
+            ls{"የተቀነባበረ ሁለገብ ሰዓት"}
+        }
         "Etc:Unknown"{
             ec{"ያልታወቀ ከተማ"}
         }
diff --git a/source/data/zone/ar.txt b/source/data/zone/ar.txt
index d8d48b3..418d0cf 100644
--- a/source/data/zone/ar.txt
+++ b/source/data/zone/ar.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ar{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"أبيدجان"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"سيدني"}
         }
+        "Etc:UTC"{
+            ls{"التوقيت العالمي المنسق"}
+        }
         "Etc:Unknown"{
             ec{"مدينة غير معروفة"}
         }
diff --git a/source/data/zone/ar_SA.txt b/source/data/zone/ar_SA.txt
new file mode 100644
index 0000000..d65944b
--- /dev/null
+++ b/source/data/zone/ar_SA.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+/**
+ * generated alias target
+ */
+ar_SA{
+    ___{""}
+}
diff --git a/source/data/zone/ars.txt b/source/data/zone/ars.txt
new file mode 100644
index 0000000..1f49ca1
--- /dev/null
+++ b/source/data/zone/ars.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+ars{
+    "%%ALIAS"{"ar_SA"}
+}
diff --git a/source/data/zone/as.txt b/source/data/zone/as.txt
index 6cd0399..4f5d9a2 100644
--- a/source/data/zone/as.txt
+++ b/source/data/zone/as.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 as{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Asia:Calcutta"{
             ec{"এলাহাৱাদ"}
diff --git a/source/data/zone/asa.txt b/source/data/zone/asa.txt
index 1a7a328..ae5b560 100644
--- a/source/data/zone/asa.txt
+++ b/source/data/zone/asa.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 asa{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ast.txt b/source/data/zone/ast.txt
index 10a62eb..2207e09 100644
--- a/source/data/zone/ast.txt
+++ b/source/data/zone/ast.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ast{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/az.txt b/source/data/zone/az.txt
index c98d5bc..afaafd8 100644
--- a/source/data/zone/az.txt
+++ b/source/data/zone/az.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abican"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinasiya edilmiş ümumdünya vaxtı"}
+        }
         "Etc:Unknown"{
             ec{"Naməlum Şəhər"}
         }
diff --git a/source/data/zone/az_Cyrl.txt b/source/data/zone/az_Cyrl.txt
index adbb8b7..0a83f37 100644
--- a/source/data/zone/az_Cyrl.txt
+++ b/source/data/zone/az_Cyrl.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.74"}
 }
diff --git a/source/data/zone/az_Latn.txt b/source/data/zone/az_Latn.txt
index 59182e9..9df6ff3 100644
--- a/source/data/zone/az_Latn.txt
+++ b/source/data/zone/az_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 az_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/bas.txt b/source/data/zone/bas.txt
index df5f999..0d97ea3 100644
--- a/source/data/zone/bas.txt
+++ b/source/data/zone/bas.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bas{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/be.txt b/source/data/zone/be.txt
index 3b7e6ad..97776ef 100644
--- a/source/data/zone/be.txt
+++ b/source/data/zone/be.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 be{
-    Version{"2.1.29.66"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абіджан"}
diff --git a/source/data/zone/bem.txt b/source/data/zone/bem.txt
index da7f81d..58b983a 100644
--- a/source/data/zone/bem.txt
+++ b/source/data/zone/bem.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bem{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/bez.txt b/source/data/zone/bez.txt
index 9208dac..b5b4150 100644
--- a/source/data/zone/bez.txt
+++ b/source/data/zone/bez.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bez{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/bg.txt b/source/data/zone/bg.txt
index bba96f3..53ac846 100644
--- a/source/data/zone/bg.txt
+++ b/source/data/zone/bg.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bg{
-    Version{"2.1.30.6"}
+    Version{"2.1.33.75"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиджан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сидни"}
         }
+        "Etc:UTC"{
+            ls{"Координирано универсално време"}
+        }
         "Etc:Unknown"{
             ec{"неизвестен"}
         }
diff --git a/source/data/zone/bm.txt b/source/data/zone/bm.txt
index 5220e49..a385b5e 100644
--- a/source/data/zone/bm.txt
+++ b/source/data/zone/bm.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bm{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/bn.txt b/source/data/zone/bn.txt
index 7964ac1..3c6e53d 100644
--- a/source/data/zone/bn.txt
+++ b/source/data/zone/bn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bn{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"আবিদজান"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"সিডনি"}
         }
+        "Etc:UTC"{
+            ls{"স্থানাংকিত আন্তর্জাতিক সময়"}
+        }
         "Etc:Unknown"{
             ec{"অজানা শহর"}
         }
diff --git a/source/data/zone/bo.txt b/source/data/zone/bo.txt
index 1abad44..ba9a015 100644
--- a/source/data/zone/bo.txt
+++ b/source/data/zone/bo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Etc:Unknown"{
             ec{"མ་རྟོགས་པ"}
diff --git a/source/data/zone/br.txt b/source/data/zone/br.txt
index 56df5a7..fe7a7f1 100644
--- a/source/data/zone/br.txt
+++ b/source/data/zone/br.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 br{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/brx.txt b/source/data/zone/brx.txt
index a5ba893..8971ea7 100644
--- a/source/data/zone/brx.txt
+++ b/source/data/zone/brx.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 brx{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"अबिद्जान"}
diff --git a/source/data/zone/bs.txt b/source/data/zone/bs.txt
index 4693f96..e09a43e 100644
--- a/source/data/zone/bs.txt
+++ b/source/data/zone/bs.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/bs_Cyrl.txt b/source/data/zone/bs_Cyrl.txt
index 40e6515..cc4ea5e 100644
--- a/source/data/zone/bs_Cyrl.txt
+++ b/source/data/zone/bs_Cyrl.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.28.76"}
+    Version{"2.1.32.72"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиџан"}
diff --git a/source/data/zone/bs_Latn.txt b/source/data/zone/bs_Latn.txt
index 9163b69..5e72765 100644
--- a/source/data/zone/bs_Latn.txt
+++ b/source/data/zone/bs_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 bs_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ca.txt b/source/data/zone/ca.txt
index b6b838b..ac3ecc1 100644
--- a/source/data/zone/ca.txt
+++ b/source/data/zone/ca.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ca{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Temps universal coordinat"}
+        }
         "Etc:Unknown"{
             ec{"Ciutat desconeguda"}
         }
diff --git a/source/data/zone/ce.txt b/source/data/zone/ce.txt
index b10333d..0f16eb8 100644
--- a/source/data/zone/ce.txt
+++ b/source/data/zone/ce.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ce{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиджан"}
diff --git a/source/data/zone/cgg.txt b/source/data/zone/cgg.txt
index 3a9d46b..c0ecc47 100644
--- a/source/data/zone/cgg.txt
+++ b/source/data/zone/cgg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cgg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/chr.txt b/source/data/zone/chr.txt
index 0ff86ff..9cb73db 100644
--- a/source/data/zone/chr.txt
+++ b/source/data/zone/chr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 chr{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"ᎠᏈᏣᏂ"}
diff --git a/source/data/zone/ckb.txt b/source/data/zone/ckb.txt
index 730bc40..77482bd 100644
--- a/source/data/zone/ckb.txt
+++ b/source/data/zone/ckb.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ckb{
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/cs.txt b/source/data/zone/cs.txt
index ef5c806..a2ecc1d 100644
--- a/source/data/zone/cs.txt
+++ b/source/data/zone/cs.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cs{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidžan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinovaný světový čas"}
+        }
         "Etc:Unknown"{
             ec{"Neznámé město"}
         }
diff --git a/source/data/zone/cy.txt b/source/data/zone/cy.txt
index c9de30e..068ae46 100644
--- a/source/data/zone/cy.txt
+++ b/source/data/zone/cy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 cy{
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/da.txt b/source/data/zone/da.txt
index afbd908..0b37cbf 100644
--- a/source/data/zone/da.txt
+++ b/source/data/zone/da.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 da{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordineret universaltid"}
+        }
         "Etc:Unknown"{
             ec{"Ukendt by"}
         }
diff --git a/source/data/zone/dav.txt b/source/data/zone/dav.txt
index bb1d36d..467d8f4 100644
--- a/source/data/zone/dav.txt
+++ b/source/data/zone/dav.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dav{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/de.txt b/source/data/zone/de.txt
index d82636b..4ff61ab 100644
--- a/source/data/zone/de.txt
+++ b/source/data/zone/de.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 de{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinierte Weltzeit"}
+        }
         "Etc:Unknown"{
             ec{"Unbekannt"}
         }
diff --git a/source/data/zone/dje.txt b/source/data/zone/dje.txt
index c327cf0..a310f9a 100644
--- a/source/data/zone/dje.txt
+++ b/source/data/zone/dje.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dje{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/dsb.txt b/source/data/zone/dsb.txt
index cd28453..05e845f 100644
--- a/source/data/zone/dsb.txt
+++ b/source/data/zone/dsb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dsb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Akkra"}
diff --git a/source/data/zone/dua.txt b/source/data/zone/dua.txt
index df62568..635ae4b 100644
--- a/source/data/zone/dua.txt
+++ b/source/data/zone/dua.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dua{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/dyo.txt b/source/data/zone/dyo.txt
index e0f09cc..fb52eea 100644
--- a/source/data/zone/dyo.txt
+++ b/source/data/zone/dyo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dyo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/dz.txt b/source/data/zone/dz.txt
index 0905316..aa148f2 100644
--- a/source/data/zone/dz.txt
+++ b/source/data/zone/dz.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 dz{
-    Version{"2.1.29.61"}
+    Version{"2.1.31.34"}
     zoneStrings{
         "Africa:Cairo"{
             ec{"ཀཱའི་རོ"}
diff --git a/source/data/zone/ebu.txt b/source/data/zone/ebu.txt
index 3770614..2199f72 100644
--- a/source/data/zone/ebu.txt
+++ b/source/data/zone/ebu.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ebu{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ee.txt b/source/data/zone/ee.txt
index 0bd58e2..b2443c7 100644
--- a/source/data/zone/ee.txt
+++ b/source/data/zone/ee.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ee{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidzan nutomegaƒoƒome"}
diff --git a/source/data/zone/el.txt b/source/data/zone/el.txt
index 518c597..213093d 100644
--- a/source/data/zone/el.txt
+++ b/source/data/zone/el.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 el{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Αμπιτζάν"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Σίδνεϊ"}
         }
+        "Etc:UTC"{
+            ls{"Συντονισμένη Παγκόσμια Ώρα"}
+        }
         "Etc:Unknown"{
             ec{"Άγνωστη πόλη"}
         }
diff --git a/source/data/zone/en.txt b/source/data/zone/en.txt
index 6c61d28..4765b90 100644
--- a/source/data/zone/en.txt
+++ b/source/data/zone/en.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en{
-    Version{"2.1.30.50"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Sao_Tome"{
             ec{"São Tomé"}
@@ -21,6 +21,9 @@
         "Asia:Saigon"{
             ec{"Ho Chi Minh City"}
         }
+        "Etc:UTC"{
+            ls{"Coordinated Universal Time"}
+        }
         "Etc:Unknown"{
             ec{"Unknown City"}
         }
diff --git a/source/data/zone/en_001.txt b/source/data/zone/en_001.txt
index 98cf11d..04e14a5 100644
--- a/source/data/zone/en_001.txt
+++ b/source/data/zone/en_001.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_001{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Pacific:Honolulu"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/en_150.txt b/source/data/zone/en_150.txt
index 1329a75..4ffad83 100644
--- a/source/data/zone/en_150.txt
+++ b/source/data/zone/en_150.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_150{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Europe_Central"{
             sd{"CEST"}
diff --git a/source/data/zone/en_AG.txt b/source/data/zone/en_AG.txt
index 85efa69..ed7f63d 100644
--- a/source/data/zone/en_AG.txt
+++ b/source/data/zone/en_AG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_AI.txt b/source/data/zone/en_AI.txt
index b2ab82a..a92294b 100644
--- a/source/data/zone/en_AI.txt
+++ b/source/data/zone/en_AI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_AT.txt b/source/data/zone/en_AT.txt
index 13def3a..f72039e 100644
--- a/source/data/zone/en_AT.txt
+++ b/source/data/zone/en_AT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AT{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_AU.txt b/source/data/zone/en_AU.txt
index 4073e96..28c9a11 100644
--- a/source/data/zone/en_AU.txt
+++ b/source/data/zone/en_AU.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_AU{
     %%Parent{"en_001"}
-    Version{"2.1.30.50"}
+    Version{"2.1.32.62"}
     zoneStrings{
         "meta:Africa_Eastern"{
             ls{"Eastern Africa Time"}
diff --git a/source/data/zone/en_BB.txt b/source/data/zone/en_BB.txt
index 0cc013f..2c2c05e 100644
--- a/source/data/zone/en_BB.txt
+++ b/source/data/zone/en_BB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_BE.txt b/source/data/zone/en_BE.txt
index 9772d91..a1471bc 100644
--- a/source/data/zone/en_BE.txt
+++ b/source/data/zone/en_BE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_BM.txt b/source/data/zone/en_BM.txt
index 817b1d4..a07478e 100644
--- a/source/data/zone/en_BM.txt
+++ b/source/data/zone/en_BM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_BS.txt b/source/data/zone/en_BS.txt
index de6b101..3457002 100644
--- a/source/data/zone/en_BS.txt
+++ b/source/data/zone/en_BS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_BW.txt b/source/data/zone/en_BW.txt
index 172a690..2e1667d 100644
--- a/source/data/zone/en_BW.txt
+++ b/source/data/zone/en_BW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_BZ.txt b/source/data/zone/en_BZ.txt
index 1c3fa39..8807b66 100644
--- a/source/data/zone/en_BZ.txt
+++ b/source/data/zone/en_BZ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_BZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_CA.txt b/source/data/zone/en_CA.txt
index 123df70..41f5344 100644
--- a/source/data/zone/en_CA.txt
+++ b/source/data/zone/en_CA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CA{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Pacific:Honolulu"{
             sd{"HDT"}
diff --git a/source/data/zone/en_CC.txt b/source/data/zone/en_CC.txt
index 2859e20..67fe580 100644
--- a/source/data/zone/en_CC.txt
+++ b/source/data/zone/en_CC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_CH.txt b/source/data/zone/en_CH.txt
index 135de38..060cae5 100644
--- a/source/data/zone/en_CH.txt
+++ b/source/data/zone/en_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CH{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_CK.txt b/source/data/zone/en_CK.txt
index ea59600..8f3b9a4 100644
--- a/source/data/zone/en_CK.txt
+++ b/source/data/zone/en_CK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_CM.txt b/source/data/zone/en_CM.txt
index 174b85f..55f692f 100644
--- a/source/data/zone/en_CM.txt
+++ b/source/data/zone/en_CM.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_CX.txt b/source/data/zone/en_CX.txt
index ae52aee..4e3c98e 100644
--- a/source/data/zone/en_CX.txt
+++ b/source/data/zone/en_CX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_CY.txt b/source/data/zone/en_CY.txt
index ccbf619..4fa4a14 100644
--- a/source/data/zone/en_CY.txt
+++ b/source/data/zone/en_CY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_CY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_DE.txt b/source/data/zone/en_DE.txt
index 51c69cb..a8f9cde 100644
--- a/source/data/zone/en_DE.txt
+++ b/source/data/zone/en_DE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_DG.txt b/source/data/zone/en_DG.txt
index 8b4d817..bd59dcb 100644
--- a/source/data/zone/en_DG.txt
+++ b/source/data/zone/en_DG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_DK.txt b/source/data/zone/en_DK.txt
index 69e0cad..9b83dfa 100644
--- a/source/data/zone/en_DK.txt
+++ b/source/data/zone/en_DK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DK{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_DM.txt b/source/data/zone/en_DM.txt
index 6811cff..067f54d 100644
--- a/source/data/zone/en_DM.txt
+++ b/source/data/zone/en_DM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_DM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_ER.txt b/source/data/zone/en_ER.txt
index feb2d1d..352a799 100644
--- a/source/data/zone/en_ER.txt
+++ b/source/data/zone/en_ER.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ER{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_FI.txt b/source/data/zone/en_FI.txt
index 8906ed5..995f6cb 100644
--- a/source/data/zone/en_FI.txt
+++ b/source/data/zone/en_FI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_FJ.txt b/source/data/zone/en_FJ.txt
index b22339a..17022d5 100644
--- a/source/data/zone/en_FJ.txt
+++ b/source/data/zone/en_FJ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FJ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_FK.txt b/source/data/zone/en_FK.txt
index cf7774e..edbb4d8 100644
--- a/source/data/zone/en_FK.txt
+++ b/source/data/zone/en_FK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_FM.txt b/source/data/zone/en_FM.txt
index 0d69e71..9b1d31f 100644
--- a/source/data/zone/en_FM.txt
+++ b/source/data/zone/en_FM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_FM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_GB.txt b/source/data/zone/en_GB.txt
index 813a901..c2e4299 100644
--- a/source/data/zone/en_GB.txt
+++ b/source/data/zone/en_GB.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GB{
     %%Parent{"en_001"}
-    Version{"2.1.29.24"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Europe:London"{
             sd{"BST"}
diff --git a/source/data/zone/en_GD.txt b/source/data/zone/en_GD.txt
index 69be247..a006727 100644
--- a/source/data/zone/en_GD.txt
+++ b/source/data/zone/en_GD.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_GG.txt b/source/data/zone/en_GG.txt
index f898103..b91b6b8 100644
--- a/source/data/zone/en_GG.txt
+++ b/source/data/zone/en_GG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_GH.txt b/source/data/zone/en_GH.txt
index 695bcb9..1dadcbf 100644
--- a/source/data/zone/en_GH.txt
+++ b/source/data/zone/en_GH.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_GI.txt b/source/data/zone/en_GI.txt
index f74502b..e19c4d8 100644
--- a/source/data/zone/en_GI.txt
+++ b/source/data/zone/en_GI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_GM.txt b/source/data/zone/en_GM.txt
index 9f86058..2aaeaa6 100644
--- a/source/data/zone/en_GM.txt
+++ b/source/data/zone/en_GM.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_GU.txt b/source/data/zone/en_GU.txt
index 3958772..23ce62c 100644
--- a/source/data/zone/en_GU.txt
+++ b/source/data/zone/en_GU.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GU{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Chamorro"{
             ss{"ChST"}
diff --git a/source/data/zone/en_GY.txt b/source/data/zone/en_GY.txt
index 2ea70c6..eeea58f 100644
--- a/source/data/zone/en_GY.txt
+++ b/source/data/zone/en_GY.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_GY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Guyana"{
             ss{"GYT"}
diff --git a/source/data/zone/en_HK.txt b/source/data/zone/en_HK.txt
index 230908d..b257bd2 100644
--- a/source/data/zone/en_HK.txt
+++ b/source/data/zone/en_HK.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_HK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Hong_Kong"{
             sd{"HKST"}
diff --git a/source/data/zone/en_IE.txt b/source/data/zone/en_IE.txt
index b379acb..b137172 100644
--- a/source/data/zone/en_IE.txt
+++ b/source/data/zone/en_IE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IE{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Europe:Dublin"{
             sd{"IST"}
diff --git a/source/data/zone/en_IL.txt b/source/data/zone/en_IL.txt
index 55e362c..55a5091 100644
--- a/source/data/zone/en_IL.txt
+++ b/source/data/zone/en_IL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_IM.txt b/source/data/zone/en_IM.txt
index 50ab53d..3ccab11 100644
--- a/source/data/zone/en_IM.txt
+++ b/source/data/zone/en_IM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_IN.txt b/source/data/zone/en_IN.txt
index 8031c69..85055cc 100644
--- a/source/data/zone/en_IN.txt
+++ b/source/data/zone/en_IN.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IN{
     %%Parent{"en_001"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:India"{
             ss{"IST"}
diff --git a/source/data/zone/en_IO.txt b/source/data/zone/en_IO.txt
index d2c4f91..3f89192 100644
--- a/source/data/zone/en_IO.txt
+++ b/source/data/zone/en_IO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_IO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_JE.txt b/source/data/zone/en_JE.txt
index 9f48fef..66de22d 100644
--- a/source/data/zone/en_JE.txt
+++ b/source/data/zone/en_JE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_JM.txt b/source/data/zone/en_JM.txt
index 11356e7..ad3c905 100644
--- a/source/data/zone/en_JM.txt
+++ b/source/data/zone/en_JM.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_JM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_KE.txt b/source/data/zone/en_KE.txt
index d0fb5bc..99f6540 100644
--- a/source/data/zone/en_KE.txt
+++ b/source/data/zone/en_KE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KE{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_KI.txt b/source/data/zone/en_KI.txt
index 8624154..f671853 100644
--- a/source/data/zone/en_KI.txt
+++ b/source/data/zone/en_KI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KI{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_KN.txt b/source/data/zone/en_KN.txt
index b68c8f1..573c389 100644
--- a/source/data/zone/en_KN.txt
+++ b/source/data/zone/en_KN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_KY.txt b/source/data/zone/en_KY.txt
index febcc6f..0d60082 100644
--- a/source/data/zone/en_KY.txt
+++ b/source/data/zone/en_KY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_KY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_LC.txt b/source/data/zone/en_LC.txt
index b781315..7033a6a 100644
--- a/source/data/zone/en_LC.txt
+++ b/source/data/zone/en_LC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_LR.txt b/source/data/zone/en_LR.txt
index f40114f..cdc0e9c 100644
--- a/source/data/zone/en_LR.txt
+++ b/source/data/zone/en_LR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_LS.txt b/source/data/zone/en_LS.txt
index 62394c7..d763f1c 100644
--- a/source/data/zone/en_LS.txt
+++ b/source/data/zone/en_LS.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_LS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_MG.txt b/source/data/zone/en_MG.txt
index 3ceed1d..b4f8e39 100644
--- a/source/data/zone/en_MG.txt
+++ b/source/data/zone/en_MG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_MH.txt b/source/data/zone/en_MH.txt
index 7c71ddd..b274226 100644
--- a/source/data/zone/en_MH.txt
+++ b/source/data/zone/en_MH.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MH{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Pacific:Honolulu"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/en_MO.txt b/source/data/zone/en_MO.txt
index 574019f..b6df445 100644
--- a/source/data/zone/en_MO.txt
+++ b/source/data/zone/en_MO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Hong_Kong"{
             sd{"HKST"}
diff --git a/source/data/zone/en_MP.txt b/source/data/zone/en_MP.txt
index 47dbb44..431abca 100644
--- a/source/data/zone/en_MP.txt
+++ b/source/data/zone/en_MP.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Pacific:Honolulu"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/en_MS.txt b/source/data/zone/en_MS.txt
index 195a417..28ef10d 100644
--- a/source/data/zone/en_MS.txt
+++ b/source/data/zone/en_MS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_MT.txt b/source/data/zone/en_MT.txt
index 5602dfc..0d4bc8b 100644
--- a/source/data/zone/en_MT.txt
+++ b/source/data/zone/en_MT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_MU.txt b/source/data/zone/en_MU.txt
index 120b524..142bd4b 100644
--- a/source/data/zone/en_MU.txt
+++ b/source/data/zone/en_MU.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_MW.txt b/source/data/zone/en_MW.txt
index dffb54a..6108372 100644
--- a/source/data/zone/en_MW.txt
+++ b/source/data/zone/en_MW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_MY.txt b/source/data/zone/en_MY.txt
index 6cd68af..b6c151f 100644
--- a/source/data/zone/en_MY.txt
+++ b/source/data/zone/en_MY.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_MY{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Malaysia"{
             ss{"MYT"}
diff --git a/source/data/zone/en_NA.txt b/source/data/zone/en_NA.txt
index 432db40..9feab5e 100644
--- a/source/data/zone/en_NA.txt
+++ b/source/data/zone/en_NA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NA{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_NF.txt b/source/data/zone/en_NF.txt
index 1ed7316..56b1a98 100644
--- a/source/data/zone/en_NF.txt
+++ b/source/data/zone/en_NF.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NF{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_NG.txt b/source/data/zone/en_NG.txt
index 4eadb53..8d8610a 100644
--- a/source/data/zone/en_NG.txt
+++ b/source/data/zone/en_NG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_NL.txt b/source/data/zone/en_NL.txt
index d0f6862..4566eb3 100644
--- a/source/data/zone/en_NL.txt
+++ b/source/data/zone/en_NL.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NL{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_NR.txt b/source/data/zone/en_NR.txt
index 1c1d8e7..a66b87f 100644
--- a/source/data/zone/en_NR.txt
+++ b/source/data/zone/en_NR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NR{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_NU.txt b/source/data/zone/en_NU.txt
index b2fde8f..86aa256 100644
--- a/source/data/zone/en_NU.txt
+++ b/source/data/zone/en_NU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_NZ.txt b/source/data/zone/en_NZ.txt
index 5a00b84..3f3eef5 100644
--- a/source/data/zone/en_NZ.txt
+++ b/source/data/zone/en_NZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_NZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Australia_Central"{
             sd{"ACDT"}
diff --git a/source/data/zone/en_PG.txt b/source/data/zone/en_PG.txt
index 58ac3ca..6146600 100644
--- a/source/data/zone/en_PG.txt
+++ b/source/data/zone/en_PG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_PH.txt b/source/data/zone/en_PH.txt
index 5264c40..04ac66a 100644
--- a/source/data/zone/en_PH.txt
+++ b/source/data/zone/en_PH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_PK.txt b/source/data/zone/en_PK.txt
index 0df7824..3d5d2f6 100644
--- a/source/data/zone/en_PK.txt
+++ b/source/data/zone/en_PK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_PN.txt b/source/data/zone/en_PN.txt
index cd620b3..8b83a8d 100644
--- a/source/data/zone/en_PN.txt
+++ b/source/data/zone/en_PN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PN{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_PW.txt b/source/data/zone/en_PW.txt
index 3825c9f..43ec73a 100644
--- a/source/data/zone/en_PW.txt
+++ b/source/data/zone/en_PW.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_PW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_RW.txt b/source/data/zone/en_RW.txt
index c96970e..ed8d086 100644
--- a/source/data/zone/en_RW.txt
+++ b/source/data/zone/en_RW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_RW{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_SB.txt b/source/data/zone/en_SB.txt
index a81f9eb..08287c0 100644
--- a/source/data/zone/en_SB.txt
+++ b/source/data/zone/en_SB.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SB{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SC.txt b/source/data/zone/en_SC.txt
index c907a3c..9c80308 100644
--- a/source/data/zone/en_SC.txt
+++ b/source/data/zone/en_SC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SD.txt b/source/data/zone/en_SD.txt
index 1359501..bbcda66 100644
--- a/source/data/zone/en_SD.txt
+++ b/source/data/zone/en_SD.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SD{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_SE.txt b/source/data/zone/en_SE.txt
index 452ce9c..08c2bb4 100644
--- a/source/data/zone/en_SE.txt
+++ b/source/data/zone/en_SE.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SE{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SG.txt b/source/data/zone/en_SG.txt
index 91ebb3e..0a95579 100644
--- a/source/data/zone/en_SG.txt
+++ b/source/data/zone/en_SG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SG{
     %%Parent{"en_001"}
-    Version{"2.1.29.54"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Malaysia"{
             ss{"MYT"}
diff --git a/source/data/zone/en_SH.txt b/source/data/zone/en_SH.txt
index d6f5383..dbaac39 100644
--- a/source/data/zone/en_SH.txt
+++ b/source/data/zone/en_SH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SH{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SI.txt b/source/data/zone/en_SI.txt
index 1b945e7..093b0e2 100644
--- a/source/data/zone/en_SI.txt
+++ b/source/data/zone/en_SI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SI{
     %%Parent{"en_150"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SL.txt b/source/data/zone/en_SL.txt
index b530744..e5e4286 100644
--- a/source/data/zone/en_SL.txt
+++ b/source/data/zone/en_SL.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SL{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_SS.txt b/source/data/zone/en_SS.txt
index 3cc405e..3ae2e52 100644
--- a/source/data/zone/en_SS.txt
+++ b/source/data/zone/en_SS.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_SX.txt b/source/data/zone/en_SX.txt
index 0349554..c619269 100644
--- a/source/data/zone/en_SX.txt
+++ b/source/data/zone/en_SX.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SX{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_SZ.txt b/source/data/zone/en_SZ.txt
index 23325bf..3d5fdce 100644
--- a/source/data/zone/en_SZ.txt
+++ b/source/data/zone/en_SZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_SZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_TC.txt b/source/data/zone/en_TC.txt
index 82dff11..31b22e7 100644
--- a/source/data/zone/en_TC.txt
+++ b/source/data/zone/en_TC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_TK.txt b/source/data/zone/en_TK.txt
index 0d759ac..380b9d9 100644
--- a/source/data/zone/en_TK.txt
+++ b/source/data/zone/en_TK.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TK{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_TO.txt b/source/data/zone/en_TO.txt
index bb3bbcd..426b5d6 100644
--- a/source/data/zone/en_TO.txt
+++ b/source/data/zone/en_TO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TO{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_TT.txt b/source/data/zone/en_TT.txt
index fdc2c64..4d6d39d 100644
--- a/source/data/zone/en_TT.txt
+++ b/source/data/zone/en_TT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TT{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_TV.txt b/source/data/zone/en_TV.txt
index c473254..debe076 100644
--- a/source/data/zone/en_TV.txt
+++ b/source/data/zone/en_TV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TV{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_TZ.txt b/source/data/zone/en_TZ.txt
index b428e00..e2b2c02 100644
--- a/source/data/zone/en_TZ.txt
+++ b/source/data/zone/en_TZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_TZ{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_UG.txt b/source/data/zone/en_UG.txt
index c3d87d0..7660008 100644
--- a/source/data/zone/en_UG.txt
+++ b/source/data/zone/en_UG.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_UG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_VC.txt b/source/data/zone/en_VC.txt
index c6d63b4..dc17ae0 100644
--- a/source/data/zone/en_VC.txt
+++ b/source/data/zone/en_VC.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VC{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_VG.txt b/source/data/zone/en_VG.txt
index 366c5ea..995ae52 100644
--- a/source/data/zone/en_VG.txt
+++ b/source/data/zone/en_VG.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VG{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_VU.txt b/source/data/zone/en_VU.txt
index 2f6cb29..433c4c9 100644
--- a/source/data/zone/en_VU.txt
+++ b/source/data/zone/en_VU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_VU{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_WS.txt b/source/data/zone/en_WS.txt
index 982e5aa..0697889 100644
--- a/source/data/zone/en_WS.txt
+++ b/source/data/zone/en_WS.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_WS{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/en_ZA.txt b/source/data/zone/en_ZA.txt
index da3b52c..426e128 100644
--- a/source/data/zone/en_ZA.txt
+++ b/source/data/zone/en_ZA.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZA{
     %%Parent{"en_001"}
-    Version{"2.1.27.64"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_ZM.txt b/source/data/zone/en_ZM.txt
index 3c21a77..4165d7a 100644
--- a/source/data/zone/en_ZM.txt
+++ b/source/data/zone/en_ZM.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZM{
     %%Parent{"en_001"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/en_ZW.txt b/source/data/zone/en_ZW.txt
index 452c049..bad1607 100644
--- a/source/data/zone/en_ZW.txt
+++ b/source/data/zone/en_ZW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 en_ZW{
     %%Parent{"en_001"}
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Africa_Central"{
             ss{"CAT"}
diff --git a/source/data/zone/eo.txt b/source/data/zone/eo.txt
index f741c1d..5950e87 100644
--- a/source/data/zone/eo.txt
+++ b/source/data/zone/eo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es.txt b/source/data/zone/es.txt
index 52e09dd..0c63240 100644
--- a/source/data/zone/es.txt
+++ b/source/data/zone/es.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es{
-    Version{"2.1.28.80"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abiyán"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sídney"}
         }
+        "Etc:UTC"{
+            ls{"Tiempo Universal Coordinado"}
+        }
         "Etc:Unknown"{
             ec{"ciudad desconocida"}
         }
diff --git a/source/data/zone/es_419.txt b/source/data/zone/es_419.txt
index 4771b75..e3c9460 100644
--- a/source/data/zone/es_419.txt
+++ b/source/data/zone/es_419.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_419{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "America:St_Johns"{
             ec{"San Juan de Terranova"}
diff --git a/source/data/zone/es_AR.txt b/source/data/zone/es_AR.txt
index 0c0087f..1101900 100644
--- a/source/data/zone/es_AR.txt
+++ b/source/data/zone/es_AR.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_AR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Argentina"{
             sd{"ARST"}
diff --git a/source/data/zone/es_BO.txt b/source/data/zone/es_BO.txt
index 9e5426d..af9dc22 100644
--- a/source/data/zone/es_BO.txt
+++ b/source/data/zone/es_BO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Bolivia"{
             ss{"BOT"}
diff --git a/source/data/zone/es_BR.txt b/source/data/zone/es_BR.txt
index 14d1f67..ee8a444 100644
--- a/source/data/zone/es_BR.txt
+++ b/source/data/zone/es_BR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_BR{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_BZ.txt b/source/data/zone/es_BZ.txt
new file mode 100644
index 0000000..7734598
--- /dev/null
+++ b/source/data/zone/es_BZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html#License
+es_BZ{
+    %%Parent{"es_419"}
+    Version{"2.1.32.37"}
+}
diff --git a/source/data/zone/es_CL.txt b/source/data/zone/es_CL.txt
index 61e86d2..0fe1506 100644
--- a/source/data/zone/es_CL.txt
+++ b/source/data/zone/es_CL.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CL{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Chile"{
             sd{"CLST"}
diff --git a/source/data/zone/es_CO.txt b/source/data/zone/es_CO.txt
index 4219b8d..3870fdd 100644
--- a/source/data/zone/es_CO.txt
+++ b/source/data/zone/es_CO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Colombia"{
             sd{"COST"}
diff --git a/source/data/zone/es_CR.txt b/source/data/zone/es_CR.txt
index 9791231..b8ac5fd 100644
--- a/source/data/zone/es_CR.txt
+++ b/source/data/zone/es_CR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_CU.txt b/source/data/zone/es_CU.txt
index dbd4f56..f75d29f 100644
--- a/source/data/zone/es_CU.txt
+++ b/source/data/zone/es_CU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_CU{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_DO.txt b/source/data/zone/es_DO.txt
index a6b9a31..59cf46c 100644
--- a/source/data/zone/es_DO.txt
+++ b/source/data/zone/es_DO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_DO{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_EC.txt b/source/data/zone/es_EC.txt
index 4c19011..4852afa 100644
--- a/source/data/zone/es_EC.txt
+++ b/source/data/zone/es_EC.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_EC{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Ecuador"{
             ss{"ECT"}
diff --git a/source/data/zone/es_GT.txt b/source/data/zone/es_GT.txt
index 10e2010..f0cfb06 100644
--- a/source/data/zone/es_GT.txt
+++ b/source/data/zone/es_GT.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_GT{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_HN.txt b/source/data/zone/es_HN.txt
index c16f260..33108fe 100644
--- a/source/data/zone/es_HN.txt
+++ b/source/data/zone/es_HN.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_HN{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_MX.txt b/source/data/zone/es_MX.txt
index ac923bd..31b1b34 100644
--- a/source/data/zone/es_MX.txt
+++ b/source/data/zone/es_MX.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_MX{
     %%Parent{"es_419"}
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Acra"}
diff --git a/source/data/zone/es_NI.txt b/source/data/zone/es_NI.txt
index df7b8c1..b1fdbbc 100644
--- a/source/data/zone/es_NI.txt
+++ b/source/data/zone/es_NI.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_NI{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_PA.txt b/source/data/zone/es_PA.txt
index 1a137ed..241b75f 100644
--- a/source/data/zone/es_PA.txt
+++ b/source/data/zone/es_PA.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PA{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_PE.txt b/source/data/zone/es_PE.txt
index 2285f6a..19c0e6f 100644
--- a/source/data/zone/es_PE.txt
+++ b/source/data/zone/es_PE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PE{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Peru"{
             sd{"PEST"}
diff --git a/source/data/zone/es_PR.txt b/source/data/zone/es_PR.txt
index 6ccc3f9..38daed3 100644
--- a/source/data/zone/es_PR.txt
+++ b/source/data/zone/es_PR.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PR{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_PY.txt b/source/data/zone/es_PY.txt
index 2365506..f8349cb 100644
--- a/source/data/zone/es_PY.txt
+++ b/source/data/zone/es_PY.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_PY{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_SV.txt b/source/data/zone/es_SV.txt
index ce06214..286adf8 100644
--- a/source/data/zone/es_SV.txt
+++ b/source/data/zone/es_SV.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_SV{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/es_US.txt b/source/data/zone/es_US.txt
index 3def858..82c712d 100644
--- a/source/data/zone/es_US.txt
+++ b/source/data/zone/es_US.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_US{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "America:Curacao"{
             ec{"Curazao"}
diff --git a/source/data/zone/es_UY.txt b/source/data/zone/es_UY.txt
index 724311e..80925ef 100644
--- a/source/data/zone/es_UY.txt
+++ b/source/data/zone/es_UY.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_UY{
     %%Parent{"es_419"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Uruguay"{
             sd{"UYST"}
diff --git a/source/data/zone/es_VE.txt b/source/data/zone/es_VE.txt
index 5b0c53c..47eb7b9 100644
--- a/source/data/zone/es_VE.txt
+++ b/source/data/zone/es_VE.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 es_VE{
     %%Parent{"es_419"}
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Venezuela"{
             ss{"VET"}
diff --git a/source/data/zone/et.txt b/source/data/zone/et.txt
index 9633500..7dcc103 100644
--- a/source/data/zone/et.txt
+++ b/source/data/zone/et.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 et{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordineeritud maailmaaeg"}
+        }
         "Etc:Unknown"{
             ec{"määramata linn"}
         }
diff --git a/source/data/zone/eu.txt b/source/data/zone/eu.txt
index ebb3ce8..cea7fd2 100644
--- a/source/data/zone/eu.txt
+++ b/source/data/zone/eu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 eu{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -930,6 +930,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Ordu Unibertsal Koordinatua"}
+        }
         "Etc:Unknown"{
             ec{"Hiri ezezaguna"}
         }
diff --git a/source/data/zone/ewo.txt b/source/data/zone/ewo.txt
index d180ce5..d62c208 100644
--- a/source/data/zone/ewo.txt
+++ b/source/data/zone/ewo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ewo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/fa.txt b/source/data/zone/fa.txt
index ec4565a..3cc485a 100644
--- a/source/data/zone/fa.txt
+++ b/source/data/zone/fa.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fa{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"آبیجان"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"سیدنی"}
         }
+        "Etc:UTC"{
+            ls{"زمان هماهنگ جهانی"}
+        }
         "Etc:Unknown"{
             ec{"شهر نامشخص"}
         }
diff --git a/source/data/zone/ff.txt b/source/data/zone/ff.txt
index 0cbeb8d..1a65808 100644
--- a/source/data/zone/ff.txt
+++ b/source/data/zone/ff.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ff{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/fi.txt b/source/data/zone/fi.txt
index ab8a0e8..d071380 100644
--- a/source/data/zone/fi.txt
+++ b/source/data/zone/fi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fi{
-    Version{"2.1.29.88"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -945,6 +945,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Asetettu yleisaika"}
+        }
         "Etc:Unknown"{
             ec{"tuntematon"}
         }
diff --git a/source/data/zone/fil.txt b/source/data/zone/fil.txt
index 1cc258f..0566e86 100644
--- a/source/data/zone/fil.txt
+++ b/source/data/zone/fil.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fil{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/fo.txt b/source/data/zone/fo.txt
index 87431a7..1986d19 100644
--- a/source/data/zone/fo.txt
+++ b/source/data/zone/fo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fo{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/fr.txt b/source/data/zone/fr.txt
index 8fef053..f877426 100644
--- a/source/data/zone/fr.txt
+++ b/source/data/zone/fr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Temps universel coordonné"}
+        }
         "Etc:Unknown"{
             ec{"ville inconnue"}
         }
diff --git a/source/data/zone/fr_CA.txt b/source/data/zone/fr_CA.txt
index b1893f3..b0420cf 100644
--- a/source/data/zone/fr_CA.txt
+++ b/source/data/zone/fr_CA.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_CA{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Ndjamena"{
             ec{"Ndjamena"}
diff --git a/source/data/zone/fr_GF.txt b/source/data/zone/fr_GF.txt
index ac93cd7..695d907 100644
--- a/source/data/zone/fr_GF.txt
+++ b/source/data/zone/fr_GF.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fr_GF{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:French_Guiana"{
             ss{"GFT"}
diff --git a/source/data/zone/fur.txt b/source/data/zone/fur.txt
index 00f4b74..1e85fc5 100644
--- a/source/data/zone/fur.txt
+++ b/source/data/zone/fur.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fur{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "America:New_York"{
             ec{"Gnove York"}
diff --git a/source/data/zone/fy.txt b/source/data/zone/fy.txt
index 9a0794a..525fec2 100644
--- a/source/data/zone/fy.txt
+++ b/source/data/zone/fy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 fy{
-    Version{"2.1.29.44"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Addis_Ababa"{
             ec{"Addis Abeba"}
diff --git a/source/data/zone/ga.txt b/source/data/zone/ga.txt
index 1479e67..ef2293a 100644
--- a/source/data/zone/ga.txt
+++ b/source/data/zone/ga.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ga{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/gd.txt b/source/data/zone/gd.txt
index 55fc793..e67fe0d 100644
--- a/source/data/zone/gd.txt
+++ b/source/data/zone/gd.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gd{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/gl.txt b/source/data/zone/gl.txt
index 334b691..4f02d61 100644
--- a/source/data/zone/gl.txt
+++ b/source/data/zone/gl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidney"}
         }
+        "Etc:UTC"{
+            ls{"Tempo Universal Coordenado"}
+        }
         "Etc:Unknown"{
             ec{"cidade descoñecida"}
         }
diff --git a/source/data/zone/gsw.txt b/source/data/zone/gsw.txt
index 060e64d..c8ca337 100644
--- a/source/data/zone/gsw.txt
+++ b/source/data/zone/gsw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gsw{
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Akkra"}
diff --git a/source/data/zone/gu.txt b/source/data/zone/gu.txt
index 572a2ab..7ef64f1 100644
--- a/source/data/zone/gu.txt
+++ b/source/data/zone/gu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gu{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"આબિદ્જાન"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"સિડ્ની"}
         }
+        "Etc:UTC"{
+            ls{"સંકલિત યુનિવર્સલ સમય"}
+        }
         "Etc:Unknown"{
             ec{"અજ્ઞાત શહેર"}
         }
diff --git a/source/data/zone/guz.txt b/source/data/zone/guz.txt
index d53b609..f7ea241 100644
--- a/source/data/zone/guz.txt
+++ b/source/data/zone/guz.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 guz{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/gv.txt b/source/data/zone/gv.txt
index 5e6a4fa..9945d6c 100644
--- a/source/data/zone/gv.txt
+++ b/source/data/zone/gv.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 gv{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/zone/ha.txt b/source/data/zone/ha.txt
index b817568..40a2dc5 100644
--- a/source/data/zone/ha.txt
+++ b/source/data/zone/ha.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ha{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/haw.txt b/source/data/zone/haw.txt
index 368b72b..8498702 100644
--- a/source/data/zone/haw.txt
+++ b/source/data/zone/haw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 haw{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Pacific:Honolulu"{
             sd{"HDT"}
diff --git a/source/data/zone/he.txt b/source/data/zone/he.txt
index 763c7f0..343fa2a 100644
--- a/source/data/zone/he.txt
+++ b/source/data/zone/he.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 he{
-    Version{"2.1.29.27"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"אביג׳אן"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"סידני"}
         }
+        "Etc:UTC"{
+            ls{"זמן אוניברסלי מתואם"}
+        }
         "Etc:Unknown"{
             ec{"עיר לא ידועה"}
         }
diff --git a/source/data/zone/hi.txt b/source/data/zone/hi.txt
index d6be4d4..a6e5151 100644
--- a/source/data/zone/hi.txt
+++ b/source/data/zone/hi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hi{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"अबिदजान"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"सिडनी"}
         }
+        "Etc:UTC"{
+            ls{"समन्वित सार्वत्रिक समय"}
+        }
         "Etc:Unknown"{
             ec{"अज्ञात शहर"}
         }
diff --git a/source/data/zone/hr.txt b/source/data/zone/hr.txt
index 41dc6fc..10227b0 100644
--- a/source/data/zone/hr.txt
+++ b/source/data/zone/hr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinirano svjetsko vrijeme"}
+        }
         "Etc:Unknown"{
             ec{"Nepoznati grad"}
         }
diff --git a/source/data/zone/hsb.txt b/source/data/zone/hsb.txt
index 8ac4696..444ca0d 100644
--- a/source/data/zone/hsb.txt
+++ b/source/data/zone/hsb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hsb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Akkra"}
diff --git a/source/data/zone/hu.txt b/source/data/zone/hu.txt
index 308594f..e069d8d 100644
--- a/source/data/zone/hu.txt
+++ b/source/data/zone/hu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hu{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinált világidő"}
+        }
         "Etc:Unknown"{
             ec{"Ismeretlen város"}
         }
diff --git a/source/data/zone/hy.txt b/source/data/zone/hy.txt
index 994121d..36c3c10 100644
--- a/source/data/zone/hy.txt
+++ b/source/data/zone/hy.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 hy{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Աբիջան"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Սիդնեյ"}
         }
+        "Etc:UTC"{
+            ls{"Համաշխարհային կոորդինացված ժամանակ"}
+        }
         "Etc:Unknown"{
             ec{"Անհայտ քաղաք"}
         }
diff --git a/source/data/zone/id.txt b/source/data/zone/id.txt
index aa6aec7..572fa73 100644
--- a/source/data/zone/id.txt
+++ b/source/data/zone/id.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 id{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Waktu Universal Terkoordinasi"}
+        }
         "Etc:Unknown"{
             ec{"Tidak Dikenal"}
         }
diff --git a/source/data/zone/ig.txt b/source/data/zone/ig.txt
index fcbb894..c186176 100644
--- a/source/data/zone/ig.txt
+++ b/source/data/zone/ig.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ig{
-    Version{"2.1.27.84"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ii.txt b/source/data/zone/ii.txt
index 23c3b4c..24c3b75 100644
--- a/source/data/zone/ii.txt
+++ b/source/data/zone/ii.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Etc:Unknown"{
             ec{"ꅉꀋꐚꌠ"}
diff --git a/source/data/zone/is.txt b/source/data/zone/is.txt
index 7b14d84..6746feb 100644
--- a/source/data/zone/is.txt
+++ b/source/data/zone/is.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 is{
-    Version{"2.1.29.65"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -927,6 +927,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Samræmdur alþjóðlegur tími"}
+        }
         "Etc:Unknown"{
             ec{"Óþekkt borg"}
         }
diff --git a/source/data/zone/it.txt b/source/data/zone/it.txt
index 2cff359..26db22a 100644
--- a/source/data/zone/it.txt
+++ b/source/data/zone/it.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 it{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Tempo coordinato universale"}
+        }
         "Etc:Unknown"{
             ec{"Città sconosciuta"}
         }
diff --git a/source/data/zone/ja.txt b/source/data/zone/ja.txt
index 1aeb4b7..cf5484c 100644
--- a/source/data/zone/ja.txt
+++ b/source/data/zone/ja.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ja{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"アビジャン"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"シドニー"}
         }
+        "Etc:UTC"{
+            ls{"協定世界時"}
+        }
         "Etc:Unknown"{
             ec{"地域不明"}
         }
diff --git a/source/data/zone/jgo.txt b/source/data/zone/jgo.txt
index 8d91378..c60a1d0 100644
--- a/source/data/zone/jgo.txt
+++ b/source/data/zone/jgo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jgo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         fallbackFormat{"{1} ({0})"}
         gmtFormat{"GMT{0}"}
diff --git a/source/data/zone/jmc.txt b/source/data/zone/jmc.txt
index 97c2208..88799a3 100644
--- a/source/data/zone/jmc.txt
+++ b/source/data/zone/jmc.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 jmc{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ka.txt b/source/data/zone/ka.txt
index 1e87efd..2c4c71c 100644
--- a/source/data/zone/ka.txt
+++ b/source/data/zone/ka.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ka{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"აბიჯანი"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"სიდნეი"}
         }
+        "Etc:UTC"{
+            ls{"მსოფლიო კოორდინირებული დრო"}
+        }
         "Etc:Unknown"{
             ec{"უცნობი ქალაქი"}
         }
diff --git a/source/data/zone/kab.txt b/source/data/zone/kab.txt
index 6264be2..6ee6531 100644
--- a/source/data/zone/kab.txt
+++ b/source/data/zone/kab.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kab{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/kam.txt b/source/data/zone/kam.txt
index 3d2273b..be7e8d4 100644
--- a/source/data/zone/kam.txt
+++ b/source/data/zone/kam.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kam{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/kde.txt b/source/data/zone/kde.txt
index 31a55fa..08d1148 100644
--- a/source/data/zone/kde.txt
+++ b/source/data/zone/kde.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kde{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/kea.txt b/source/data/zone/kea.txt
index c9a7505..5872c6f 100644
--- a/source/data/zone/kea.txt
+++ b/source/data/zone/kea.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kea{
-    Version{"2.1.27.46"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "America:Blanc-Sablon"{
             ec{"Blank-Sablon"}
diff --git a/source/data/zone/khq.txt b/source/data/zone/khq.txt
index 747e598..77867ad 100644
--- a/source/data/zone/khq.txt
+++ b/source/data/zone/khq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 khq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ki.txt b/source/data/zone/ki.txt
index c5e32d3..b65f033 100644
--- a/source/data/zone/ki.txt
+++ b/source/data/zone/ki.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ki{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/kk.txt b/source/data/zone/kk.txt
index 7838749..305f40b 100644
--- a/source/data/zone/kk.txt
+++ b/source/data/zone/kk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиджан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сидней"}
         }
+        "Etc:UTC"{
+            ls{"Дүниежүзілік үйлестірілген уақыт"}
+        }
         "Etc:Unknown"{
             ec{"Белгісіз қала"}
         }
diff --git a/source/data/zone/kkj.txt b/source/data/zone/kkj.txt
index fcd2f91..f3d1e8b 100644
--- a/source/data/zone/kkj.txt
+++ b/source/data/zone/kkj.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kkj{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/kl.txt b/source/data/zone/kl.txt
index 0cd0df1..9000b6e 100644
--- a/source/data/zone/kl.txt
+++ b/source/data/zone/kl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.34"}
 }
diff --git a/source/data/zone/kln.txt b/source/data/zone/kln.txt
index 467e5a4..7e71ab4 100644
--- a/source/data/zone/kln.txt
+++ b/source/data/zone/kln.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kln{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/km.txt b/source/data/zone/km.txt
index 1fe2735..a552428 100644
--- a/source/data/zone/km.txt
+++ b/source/data/zone/km.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 km{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"អាប៊ីដ្យាន"}
diff --git a/source/data/zone/kn.txt b/source/data/zone/kn.txt
index ebcfd35..88c54df 100644
--- a/source/data/zone/kn.txt
+++ b/source/data/zone/kn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kn{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"ಅಬಿದ್‌ಜನ್"}
diff --git a/source/data/zone/ko.txt b/source/data/zone/ko.txt
index 49e4f14..b447ddb 100644
--- a/source/data/zone/ko.txt
+++ b/source/data/zone/ko.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ko{
-    Version{"2.1.29.22"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"아비장"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"시드니"}
         }
+        "Etc:UTC"{
+            ls{"협정 세계시"}
+        }
         "Etc:Unknown"{
             ec{"알 수 없는 장소"}
         }
diff --git a/source/data/zone/ko_KP.txt b/source/data/zone/ko_KP.txt
index 81d1fa6..ffc72a5 100644
--- a/source/data/zone/ko_KP.txt
+++ b/source/data/zone/ko_KP.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ko_KP{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Korea"{
             ld{"조선 하계 표준시"}
diff --git a/source/data/zone/kok.txt b/source/data/zone/kok.txt
index 6d532fe..edf59aa 100644
--- a/source/data/zone/kok.txt
+++ b/source/data/zone/kok.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kok{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:India"{
             ls{"भारतीय समय"}
diff --git a/source/data/zone/ks.txt b/source/data/zone/ks.txt
index c2b1b71..ea22246 100644
--- a/source/data/zone/ks.txt
+++ b/source/data/zone/ks.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ks{
-    Version{"2.1.30.6"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"عابِدجان"}
diff --git a/source/data/zone/ksb.txt b/source/data/zone/ksb.txt
index 0ea702f..0f244f8 100644
--- a/source/data/zone/ksb.txt
+++ b/source/data/zone/ksb.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksb{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ksf.txt b/source/data/zone/ksf.txt
index 2945bf7..1fffe3b 100644
--- a/source/data/zone/ksf.txt
+++ b/source/data/zone/ksf.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksf{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ksh.txt b/source/data/zone/ksh.txt
index 040763b..4e9f2e2 100644
--- a/source/data/zone/ksh.txt
+++ b/source/data/zone/ksh.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ksh{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Cairo"{
             ec{"Kaijro"}
diff --git a/source/data/zone/kw.txt b/source/data/zone/kw.txt
index 29bf749..13f10c3 100644
--- a/source/data/zone/kw.txt
+++ b/source/data/zone/kw.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 kw{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ky.txt b/source/data/zone/ky.txt
index afaffee..28dc3b1 100644
--- a/source/data/zone/ky.txt
+++ b/source/data/zone/ky.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ky{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиджан"}
diff --git a/source/data/zone/lag.txt b/source/data/zone/lag.txt
index f5ff88b..7a87fc4 100644
--- a/source/data/zone/lag.txt
+++ b/source/data/zone/lag.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lag{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/lb.txt b/source/data/zone/lb.txt
index 78c3d80..826d59a 100644
--- a/source/data/zone/lb.txt
+++ b/source/data/zone/lb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lb{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Accra"}
diff --git a/source/data/zone/lg.txt b/source/data/zone/lg.txt
index 6087db7..f17caa5 100644
--- a/source/data/zone/lg.txt
+++ b/source/data/zone/lg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/lkt.txt b/source/data/zone/lkt.txt
index 661a0d3..3f6ce9f 100644
--- a/source/data/zone/lkt.txt
+++ b/source/data/zone/lkt.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lkt{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ln.txt b/source/data/zone/ln.txt
index 2dfe87a..75f88c9 100644
--- a/source/data/zone/ln.txt
+++ b/source/data/zone/ln.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ln{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.74"}
     zoneStrings{
         fallbackFormat{"{1} ({0})"}
         regionFormat{"Ngonga ya {0}"}
diff --git a/source/data/zone/lo.txt b/source/data/zone/lo.txt
index 3c98d13..c7b3400 100644
--- a/source/data/zone/lo.txt
+++ b/source/data/zone/lo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lo{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"ອາບິດແຈນ"}
diff --git a/source/data/zone/lrc.txt b/source/data/zone/lrc.txt
index aae6337..c349bc2 100644
--- a/source/data/zone/lrc.txt
+++ b/source/data/zone/lrc.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lrc{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Etc:Unknown"{
             ec{"نادیار"}
diff --git a/source/data/zone/lt.txt b/source/data/zone/lt.txt
index 65004f6..8a3e3a7 100644
--- a/source/data/zone/lt.txt
+++ b/source/data/zone/lt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lt{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidžanas"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidnėjus"}
         }
+        "Etc:UTC"{
+            ls{"Suderintasis pasaulinis laikas"}
+        }
         "Etc:Unknown"{
             ec{"nežinomas miestas"}
         }
diff --git a/source/data/zone/lu.txt b/source/data/zone/lu.txt
index 1844a9e..b93cc9d 100644
--- a/source/data/zone/lu.txt
+++ b/source/data/zone/lu.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lu{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/luo.txt b/source/data/zone/luo.txt
index 8b41c72..43c1380 100644
--- a/source/data/zone/luo.txt
+++ b/source/data/zone/luo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/luy.txt b/source/data/zone/luy.txt
index 82ba6c7..9671ff7 100644
--- a/source/data/zone/luy.txt
+++ b/source/data/zone/luy.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 luy{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/lv.txt b/source/data/zone/lv.txt
index f45f2b9..d0ffe28 100644
--- a/source/data/zone/lv.txt
+++ b/source/data/zone/lv.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 lv{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidžana"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidneja"}
         }
+        "Etc:UTC"{
+            ls{"Universālais koordinētais laiks"}
+        }
         "Etc:Unknown"{
             ec{"nezināma pilsēta"}
         }
diff --git a/source/data/zone/mas.txt b/source/data/zone/mas.txt
index f6364e8..f690e2e 100644
--- a/source/data/zone/mas.txt
+++ b/source/data/zone/mas.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mas{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/mer.txt b/source/data/zone/mer.txt
index b3efda1..ebe2171 100644
--- a/source/data/zone/mer.txt
+++ b/source/data/zone/mer.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mer{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/mfe.txt b/source/data/zone/mfe.txt
index 4049c9f..800e132 100644
--- a/source/data/zone/mfe.txt
+++ b/source/data/zone/mfe.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mfe{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/mg.txt b/source/data/zone/mg.txt
index 426e871..d225a0d 100644
--- a/source/data/zone/mg.txt
+++ b/source/data/zone/mg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/mgh.txt b/source/data/zone/mgh.txt
index 78a88c6..b7d92c5 100644
--- a/source/data/zone/mgh.txt
+++ b/source/data/zone/mgh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/mgo.txt b/source/data/zone/mgo.txt
index 673dd6f..018a981 100644
--- a/source/data/zone/mgo.txt
+++ b/source/data/zone/mgo.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mgo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         fallbackFormat{"{1} ({0})"}
         gmtFormat{"GMT{0}"}
diff --git a/source/data/zone/mk.txt b/source/data/zone/mk.txt
index 438fb78..7938360 100644
--- a/source/data/zone/mk.txt
+++ b/source/data/zone/mk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиџан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сиднеј"}
         }
+        "Etc:UTC"{
+            ls{"Координирано универзално време"}
+        }
         "Etc:Unknown"{
             ec{"Непознат град"}
         }
diff --git a/source/data/zone/ml.txt b/source/data/zone/ml.txt
index 8673436..d06e5a1 100644
--- a/source/data/zone/ml.txt
+++ b/source/data/zone/ml.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ml{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"അബിദ്‌ജാൻ‌"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"സിഡ്നി"}
         }
+        "Etc:UTC"{
+            ls{"കോർഡിനേറ്റഡ് യൂണിവേഴ്‌സൽ ടൈം"}
+        }
         "Etc:Unknown"{
             ec{"അജ്ഞാത നഗരം"}
         }
diff --git a/source/data/zone/mn.txt b/source/data/zone/mn.txt
index 888eb1c..e13dee4 100644
--- a/source/data/zone/mn.txt
+++ b/source/data/zone/mn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mn{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абижан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сидней"}
         }
+        "Etc:UTC"{
+            ls{"Олон Улсын Зохицуулсан Цаг"}
+        }
         "Etc:Unknown"{
             ec{"Тодорхойгүй хот"}
         }
diff --git a/source/data/zone/mr.txt b/source/data/zone/mr.txt
index 79d956b..4bb8f6c 100644
--- a/source/data/zone/mr.txt
+++ b/source/data/zone/mr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mr{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"अबिद्जान"}
diff --git a/source/data/zone/ms.txt b/source/data/zone/ms.txt
index 2d4e0ed..8a83270 100644
--- a/source/data/zone/ms.txt
+++ b/source/data/zone/ms.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ms{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Waktu Universal Selaras"}
+        }
         "Etc:Unknown"{
             ec{"Bandar Tidak Diketahui"}
         }
diff --git a/source/data/zone/mt.txt b/source/data/zone/mt.txt
index b63df9c..ac66227 100644
--- a/source/data/zone/mt.txt
+++ b/source/data/zone/mt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mt{
-    Version{"2.1.28.76"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/mua.txt b/source/data/zone/mua.txt
index 7eb9c8f..00ac580 100644
--- a/source/data/zone/mua.txt
+++ b/source/data/zone/mua.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mua{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/my.txt b/source/data/zone/my.txt
index 9250abd..ef0ab8a 100644
--- a/source/data/zone/my.txt
+++ b/source/data/zone/my.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 my{
-    Version{"2.1.30.50"}
+    Version{"2.1.33.28"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"အာဘီဂျန်"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"ဆစ်ဒနီ"}
         }
+        "Etc:UTC"{
+            ls{"ညှိထားသည့် ကမ္ဘာ့ စံတော်ချိန်"}
+        }
         "Etc:Unknown"{
             ec{"အမည်မသိသောမြို့"}
         }
diff --git a/source/data/zone/mzn.txt b/source/data/zone/mzn.txt
index 587af24..53c6b86 100644
--- a/source/data/zone/mzn.txt
+++ b/source/data/zone/mzn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 mzn{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         fallbackFormat{"{1} ({0})"}
         gmtFormat{"GMT{0}"}
diff --git a/source/data/zone/naq.txt b/source/data/zone/naq.txt
index af5f8cb..98e1493 100644
--- a/source/data/zone/naq.txt
+++ b/source/data/zone/naq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 naq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/nb.txt b/source/data/zone/nb.txt
index c776881..3a1c99e 100644
--- a/source/data/zone/nb.txt
+++ b/source/data/zone/nb.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nb{
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinert universaltid"}
+        }
         "Etc:Unknown"{
             ec{"ukjent by"}
         }
diff --git a/source/data/zone/nd.txt b/source/data/zone/nd.txt
index 0d89291..ffbcd39 100644
--- a/source/data/zone/nd.txt
+++ b/source/data/zone/nd.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nd{
-    Version{"2.1.27.65"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/nds.txt b/source/data/zone/nds.txt
index f5e699c..30007b2 100644
--- a/source/data/zone/nds.txt
+++ b/source/data/zone/nds.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nds{
-    Version{"2.1.28.71"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ne.txt b/source/data/zone/ne.txt
index b6aba18..fd52861 100644
--- a/source/data/zone/ne.txt
+++ b/source/data/zone/ne.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ne{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"अविड्जान"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"सिड्नी"}
         }
+        "Etc:UTC"{
+            ls{"समन्वित विश्व समय"}
+        }
         "Etc:Unknown"{
             ec{"अज्ञात शहर"}
         }
diff --git a/source/data/zone/ne_IN.txt b/source/data/zone/ne_IN.txt
index 21b11b4..fbe90d5 100644
--- a/source/data/zone/ne_IN.txt
+++ b/source/data/zone/ne_IN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ne_IN{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:India"{
             ss{"IST"}
diff --git a/source/data/zone/nl.txt b/source/data/zone/nl.txt
index c8e01a6..41cb697 100644
--- a/source/data/zone/nl.txt
+++ b/source/data/zone/nl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Gecoördineerde wereldtijd"}
+        }
         "Etc:Unknown"{
             ec{"onbekende stad"}
         }
diff --git a/source/data/zone/nl_SR.txt b/source/data/zone/nl_SR.txt
index bcf09f5..c9b6d26 100644
--- a/source/data/zone/nl_SR.txt
+++ b/source/data/zone/nl_SR.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nl_SR{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Suriname"{
             ss{"SRT"}
diff --git a/source/data/zone/nmg.txt b/source/data/zone/nmg.txt
index 4cecd2e..a3f1ffb 100644
--- a/source/data/zone/nmg.txt
+++ b/source/data/zone/nmg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nmg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/nn.txt b/source/data/zone/nn.txt
index 6b0f378..3263a4e 100644
--- a/source/data/zone/nn.txt
+++ b/source/data/zone/nn.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nn{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "America:Belem"{
             ec{"Belém"}
diff --git a/source/data/zone/nnh.txt b/source/data/zone/nnh.txt
index 27539e7..caba226 100644
--- a/source/data/zone/nnh.txt
+++ b/source/data/zone/nnh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nnh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/nus.txt b/source/data/zone/nus.txt
index fc494d0..afeb6a1 100644
--- a/source/data/zone/nus.txt
+++ b/source/data/zone/nus.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nus{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/nyn.txt b/source/data/zone/nyn.txt
index 68ccc90..3f1d19b 100644
--- a/source/data/zone/nyn.txt
+++ b/source/data/zone/nyn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 nyn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/om.txt b/source/data/zone/om.txt
index 31ebaa8..23d05e8 100644
--- a/source/data/zone/om.txt
+++ b/source/data/zone/om.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 om{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     zoneStrings{
         gmtFormat{"GMT{0}"}
         hourFormat{"+HH:mm;-HH:mm"}
diff --git a/source/data/zone/or.txt b/source/data/zone/or.txt
index 5fa084e..61b49fe 100644
--- a/source/data/zone/or.txt
+++ b/source/data/zone/or.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 or{
-    Version{"2.1.27.78"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Christmas"{
             ls{"ଖ୍ରୀଷ୍ଟମାସ ଆଇଲ୍ୟାଣ୍ଡ ସମୟ"}
diff --git a/source/data/zone/os.txt b/source/data/zone/os.txt
index 3d8f70e..3f838d6 100644
--- a/source/data/zone/os.txt
+++ b/source/data/zone/os.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 os{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Asia:Tbilisi"{
             ec{"Тбилис"}
diff --git a/source/data/zone/pa.txt b/source/data/zone/pa.txt
index bb86dd7..adcb082 100644
--- a/source/data/zone/pa.txt
+++ b/source/data/zone/pa.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"ਅਬੀਦਜਾਨ"}
diff --git a/source/data/zone/pa_Arab.txt b/source/data/zone/pa_Arab.txt
index f560241..87d6267 100644
--- a/source/data/zone/pa_Arab.txt
+++ b/source/data/zone/pa_Arab.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Arab{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/pa_Guru.txt b/source/data/zone/pa_Guru.txt
index f060f3b..a731d5e 100644
--- a/source/data/zone/pa_Guru.txt
+++ b/source/data/zone/pa_Guru.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pa_Guru{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/pl.txt b/source/data/zone/pl.txt
index d113fcd..5a5d39b 100644
--- a/source/data/zone/pl.txt
+++ b/source/data/zone/pl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidżan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Uniwersalny czas koordynowany"}
+        }
         "Etc:Unknown"{
             ec{"Nieznane miasto"}
         }
diff --git a/source/data/zone/pool.res b/source/data/zone/pool.res
index af7890a..08664c8 100644
--- a/source/data/zone/pool.res
+++ b/source/data/zone/pool.res
Binary files differ
diff --git a/source/data/zone/ps.txt b/source/data/zone/ps.txt
index a7e4ef1..8db7979 100644
--- a/source/data/zone/ps.txt
+++ b/source/data/zone/ps.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ps{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Asia:Kabul"{
             ec{"کابل"}
diff --git a/source/data/zone/pt.txt b/source/data/zone/pt.txt
index e4a9c2f..996af76 100644
--- a/source/data/zone/pt.txt
+++ b/source/data/zone/pt.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Tempo Universal Coordenado"}
+        }
         "Etc:Unknown"{
             ec{"Cidade desconhecida"}
         }
diff --git a/source/data/zone/pt_AO.txt b/source/data/zone/pt_AO.txt
index fd81461..9370cda 100644
--- a/source/data/zone/pt_AO.txt
+++ b/source/data/zone/pt_AO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_AO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_CH.txt b/source/data/zone/pt_CH.txt
index 5f1b386..90d6a1e 100644
--- a/source/data/zone/pt_CH.txt
+++ b/source/data/zone/pt_CH.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CH{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/pt_CV.txt b/source/data/zone/pt_CV.txt
index fcc8503..06db21d 100644
--- a/source/data/zone/pt_CV.txt
+++ b/source/data/zone/pt_CV.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_CV{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_GQ.txt b/source/data/zone/pt_GQ.txt
index 5a098d1..793e060 100644
--- a/source/data/zone/pt_GQ.txt
+++ b/source/data/zone/pt_GQ.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GQ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/pt_GW.txt b/source/data/zone/pt_GW.txt
index 5c5a88a..741af61 100644
--- a/source/data/zone/pt_GW.txt
+++ b/source/data/zone/pt_GW.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_GW{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_LU.txt b/source/data/zone/pt_LU.txt
index 009ec80..e6d1c60 100644
--- a/source/data/zone/pt_LU.txt
+++ b/source/data/zone/pt_LU.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_LU{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/pt_MO.txt b/source/data/zone/pt_MO.txt
index 7f5733a..41bf9b2 100644
--- a/source/data/zone/pt_MO.txt
+++ b/source/data/zone/pt_MO.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MO{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_MZ.txt b/source/data/zone/pt_MZ.txt
index a2609b7..64fee5f 100644
--- a/source/data/zone/pt_MZ.txt
+++ b/source/data/zone/pt_MZ.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_MZ{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_PT.txt b/source/data/zone/pt_PT.txt
index 513e05b..103d9d8 100644
--- a/source/data/zone/pt_PT.txt
+++ b/source/data/zone/pt_PT.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_PT{
-    Version{"2.1.29.54"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Djibouti"{
             ec{"Jibuti"}
diff --git a/source/data/zone/pt_ST.txt b/source/data/zone/pt_ST.txt
index a88061a..829c952 100644
--- a/source/data/zone/pt_ST.txt
+++ b/source/data/zone/pt_ST.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_ST{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/pt_TL.txt b/source/data/zone/pt_TL.txt
index 9a837a1..dbb0d87 100644
--- a/source/data/zone/pt_TL.txt
+++ b/source/data/zone/pt_TL.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 pt_TL{
     %%Parent{"pt_PT"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Azores"{
             sd{"∅∅∅"}
diff --git a/source/data/zone/qu.txt b/source/data/zone/qu.txt
index ffaf710..c97fd66 100644
--- a/source/data/zone/qu.txt
+++ b/source/data/zone/qu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Peru"{
             sd{"PEST"}
diff --git a/source/data/zone/qu_BO.txt b/source/data/zone/qu_BO.txt
index 87edc70..40c7fc3 100644
--- a/source/data/zone/qu_BO.txt
+++ b/source/data/zone/qu_BO.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu_BO{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Bolivia"{
             ss{"BOT"}
diff --git a/source/data/zone/qu_EC.txt b/source/data/zone/qu_EC.txt
index 7644300..6b68228 100644
--- a/source/data/zone/qu_EC.txt
+++ b/source/data/zone/qu_EC.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 qu_EC{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:Ecuador"{
             ss{"ECT"}
diff --git a/source/data/zone/resfiles.mk b/source/data/zone/resfiles.mk
index a4fe700..33f0da0 100644
--- a/source/data/zone/resfiles.mk
+++ b/source/data/zone/resfiles.mk
@@ -1,17 +1,17 @@
 # © 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html#License
-ZONE_CLDR_VERSION = %version%
+ZONE_CLDR_VERSION = 31.0.1
 # A list of txt's to build
 # Note:
 #
 #   If you are thinking of modifying this file, READ THIS.
 #
 # Instead of changing this file [unless you want to check it back in],
-# you should consider creating a '%local%' file in this same directory.
+# you should consider creating a 'reslocal.mk' file in this same directory.
 # Then, you can have your local changes remain even if you upgrade or
 # reconfigure ICU.
 #
-# Example '%local%' files:
+# Example 'reslocal.mk' files:
 #
 #  * To add an additional locale to the list:
 #    _____________________________________________________
@@ -26,20 +26,20 @@
 # Generated by LDML2ICUConverter, from LDML source files.
 
 # Aliases without a corresponding xx.xml file (see icu-config.xml & build.xml)
-ZONE_SYNTHETIC_ALIAS = az_AZ.txt az_Latn_AZ.txt bs_BA.txt bs_Latn_BA.txt\
- en_NH.txt en_RH.txt fil_PH.txt he_IL.txt id_ID.txt\
- in.txt in_ID.txt iw.txt iw_IL.txt ja_JP.txt\
- ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt nn_NO.txt no.txt\
- no_NO.txt no_NO_NY.txt pa_Arab_PK.txt pa_Guru_IN.txt pa_IN.txt\
- pa_PK.txt ro_MD.txt sh.txt sh_BA.txt sh_CS.txt\
- sh_YU.txt shi_MA.txt shi_Tfng_MA.txt sr_BA.txt sr_CS.txt\
- sr_Cyrl_BA.txt sr_Cyrl_CS.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Cyrl_YU.txt\
- sr_Latn_BA.txt sr_Latn_CS.txt sr_Latn_ME.txt sr_Latn_RS.txt sr_Latn_YU.txt\
- sr_ME.txt sr_RS.txt sr_XK.txt sr_YU.txt th_TH.txt\
- th_TH_TRADITIONAL.txt tl.txt tl_PH.txt uz_AF.txt uz_Arab_AF.txt\
- uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt vai_Vaii_LR.txt zh_CN.txt\
- zh_HK.txt zh_Hans_CN.txt zh_Hant_TW.txt zh_MO.txt zh_SG.txt\
- zh_TW.txt
+ZONE_SYNTHETIC_ALIAS = ar_SA.txt ars.txt az_AZ.txt az_Latn_AZ.txt\
+ bs_BA.txt bs_Latn_BA.txt en_NH.txt en_RH.txt fil_PH.txt\
+ he_IL.txt id_ID.txt in.txt in_ID.txt iw.txt\
+ iw_IL.txt ja_JP.txt ja_JP_TRADITIONAL.txt mo.txt nb_NO.txt\
+ nn_NO.txt no.txt no_NO.txt no_NO_NY.txt pa_Arab_PK.txt\
+ pa_Guru_IN.txt pa_IN.txt pa_PK.txt ro_MD.txt sh.txt\
+ sh_BA.txt sh_CS.txt sh_YU.txt shi_MA.txt shi_Tfng_MA.txt\
+ sr_BA.txt sr_CS.txt sr_Cyrl_BA.txt sr_Cyrl_CS.txt sr_Cyrl_RS.txt\
+ sr_Cyrl_XK.txt sr_Cyrl_YU.txt sr_Latn_BA.txt sr_Latn_CS.txt sr_Latn_ME.txt\
+ sr_Latn_RS.txt sr_Latn_YU.txt sr_ME.txt sr_RS.txt sr_XK.txt\
+ sr_YU.txt th_TH.txt th_TH_TRADITIONAL.txt tl.txt tl_PH.txt\
+ uz_AF.txt uz_Arab_AF.txt uz_Latn_UZ.txt uz_UZ.txt vai_LR.txt\
+ vai_Vaii_LR.txt zh_CN.txt zh_HK.txt zh_Hans_CN.txt zh_Hant_TW.txt\
+ zh_MO.txt zh_SG.txt zh_TW.txt
 
 
 # All aliases (to not be included under 'installed'), but not including root.
@@ -76,46 +76,46 @@
  en_TO.txt en_TT.txt en_TV.txt en_TZ.txt en_UG.txt\
  en_VC.txt en_VG.txt en_VU.txt en_WS.txt en_ZA.txt\
  en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\
- es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\
- es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GT.txt\
- es_HN.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\
- es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\
- es_VE.txt et.txt eu.txt ewo.txt fa.txt\
- ff.txt fi.txt fil.txt fo.txt fr.txt\
- fr_CA.txt fr_GF.txt fur.txt fy.txt ga.txt\
- gd.txt gl.txt gsw.txt gu.txt guz.txt\
- gv.txt ha.txt haw.txt he.txt hi.txt\
- hr.txt hsb.txt hu.txt hy.txt id.txt\
- ig.txt ii.txt is.txt it.txt ja.txt\
- jgo.txt jmc.txt ka.txt kab.txt kam.txt\
- kde.txt kea.txt khq.txt ki.txt kk.txt\
- kkj.txt kl.txt kln.txt km.txt kn.txt\
- ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\
- ksf.txt ksh.txt kw.txt ky.txt lag.txt\
- lb.txt lg.txt lkt.txt ln.txt lo.txt\
- lrc.txt lt.txt lu.txt luo.txt luy.txt\
- lv.txt mas.txt mer.txt mfe.txt mg.txt\
- mgh.txt mgo.txt mk.txt ml.txt mn.txt\
- mr.txt ms.txt mt.txt mua.txt my.txt\
- mzn.txt naq.txt nb.txt nd.txt nds.txt\
- ne.txt ne_IN.txt nl.txt nl_SR.txt nmg.txt\
- nn.txt nnh.txt nus.txt nyn.txt om.txt\
- or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\
- pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\
- pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\
- pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\
- qu_BO.txt qu_EC.txt rm.txt rn.txt ro.txt\
- rof.txt ru.txt rw.txt rwk.txt sah.txt\
- saq.txt sbp.txt se.txt seh.txt ses.txt\
- sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\
- sk.txt sl.txt smn.txt sn.txt so.txt\
- sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt\
- sw.txt ta.txt ta_MY.txt ta_SG.txt te.txt\
- teo.txt th.txt ti.txt to.txt tr.txt\
- twq.txt tzm.txt ug.txt uk.txt ur.txt\
- ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\
- vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\
- wae.txt xog.txt yav.txt yi.txt yo.txt\
- yue.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_SG.txt\
- zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
+ es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\
+ es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EC.txt\
+ es_GT.txt es_HN.txt es_MX.txt es_NI.txt es_PA.txt\
+ es_PE.txt es_PR.txt es_PY.txt es_SV.txt es_US.txt\
+ es_UY.txt es_VE.txt et.txt eu.txt ewo.txt\
+ fa.txt ff.txt fi.txt fil.txt fo.txt\
+ fr.txt fr_CA.txt fr_GF.txt fur.txt fy.txt\
+ ga.txt gd.txt gl.txt gsw.txt gu.txt\
+ guz.txt gv.txt ha.txt haw.txt he.txt\
+ hi.txt hr.txt hsb.txt hu.txt hy.txt\
+ id.txt ig.txt ii.txt is.txt it.txt\
+ ja.txt jgo.txt jmc.txt ka.txt kab.txt\
+ kam.txt kde.txt kea.txt khq.txt ki.txt\
+ kk.txt kkj.txt kl.txt kln.txt km.txt\
+ kn.txt ko.txt ko_KP.txt kok.txt ks.txt\
+ ksb.txt ksf.txt ksh.txt kw.txt ky.txt\
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\
+ lo.txt lrc.txt lt.txt lu.txt luo.txt\
+ luy.txt lv.txt mas.txt mer.txt mfe.txt\
+ mg.txt mgh.txt mgo.txt mk.txt ml.txt\
+ mn.txt mr.txt ms.txt mt.txt mua.txt\
+ my.txt mzn.txt naq.txt nb.txt nd.txt\
+ nds.txt ne.txt ne_IN.txt nl.txt nl_SR.txt\
+ nmg.txt nn.txt nnh.txt nus.txt nyn.txt\
+ om.txt or.txt os.txt pa.txt pa_Arab.txt\
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\
+ qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\
+ ro.txt rof.txt ru.txt rw.txt rwk.txt\
+ sah.txt saq.txt sbp.txt se.txt seh.txt\
+ ses.txt sg.txt shi.txt shi_Latn.txt shi_Tfng.txt\
+ si.txt sk.txt sl.txt smn.txt sn.txt\
+ so.txt sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt\
+ sv.txt sw.txt ta.txt ta_MY.txt ta_SG.txt\
+ te.txt teo.txt th.txt ti.txt to.txt\
+ tr.txt twq.txt tzm.txt ug.txt uk.txt\
+ ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\
+ uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\
+ vun.txt wae.txt xog.txt yav.txt yi.txt\
+ yo.txt yue.txt zgh.txt zh.txt zh_Hans.txt\
+ zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt
 
diff --git a/source/data/zone/rm.txt b/source/data/zone/rm.txt
index a325b09..025e18b 100644
--- a/source/data/zone/rm.txt
+++ b/source/data/zone/rm.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rm{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Addis_Ababa"{
             ec{"Addis Abeba"}
diff --git a/source/data/zone/rn.txt b/source/data/zone/rn.txt
index 9559693..f10b8b1 100644
--- a/source/data/zone/rn.txt
+++ b/source/data/zone/rn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ro.txt b/source/data/zone/ro.txt
index e1859a9..fb29512 100644
--- a/source/data/zone/ro.txt
+++ b/source/data/zone/ro.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ro{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.60"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Timpul universal coordonat"}
+        }
         "Etc:Unknown"{
             ec{"Oraș necunoscut"}
         }
diff --git a/source/data/zone/rof.txt b/source/data/zone/rof.txt
index 702e45a..2fa4a47 100644
--- a/source/data/zone/rof.txt
+++ b/source/data/zone/rof.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rof{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/root.txt b/source/data/zone/root.txt
index 0bbd53c..7b85302 100644
--- a/source/data/zone/root.txt
+++ b/source/data/zone/root.txt
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml
  */
 root{
-    Version{"2.1.30.58"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Asmera"{
             ec{"Asmara"}
@@ -90,6 +90,9 @@
         "Atlantic:St_Helena"{
             ec{"St. Helena"}
         }
+        "Etc:UTC"{
+            ss{"UTC"}
+        }
         "Etc:Unknown"{
             ec{"Unknown"}
         }
diff --git a/source/data/zone/ru.txt b/source/data/zone/ru.txt
index a5d30d8..73c450e 100644
--- a/source/data/zone/ru.txt
+++ b/source/data/zone/ru.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ru{
-    Version{"2.1.29.20"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиджан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сидней"}
         }
+        "Etc:UTC"{
+            ls{"Всемирное координированное время"}
+        }
         "Etc:Unknown"{
             ec{"Неизвестный город"}
         }
diff --git a/source/data/zone/rw.txt b/source/data/zone/rw.txt
index 278e88e..6d8f068 100644
--- a/source/data/zone/rw.txt
+++ b/source/data/zone/rw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rw{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     zoneStrings{
         gmtFormat{"GMT{0}"}
         hourFormat{"+HH:mm;-HH:mm"}
diff --git a/source/data/zone/rwk.txt b/source/data/zone/rwk.txt
index a2ab739..4949be2 100644
--- a/source/data/zone/rwk.txt
+++ b/source/data/zone/rwk.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 rwk{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/sah.txt b/source/data/zone/sah.txt
index 1bcd322..dca33dc 100644
--- a/source/data/zone/sah.txt
+++ b/source/data/zone/sah.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sah{
-    Version{"2.1.27.87"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Asia:Almaty"{
             ec{"Алматы"}
diff --git a/source/data/zone/saq.txt b/source/data/zone/saq.txt
index 02a8dd1..5d5c993 100644
--- a/source/data/zone/saq.txt
+++ b/source/data/zone/saq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 saq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/sbp.txt b/source/data/zone/sbp.txt
index d7cbb78..46b2e98 100644
--- a/source/data/zone/sbp.txt
+++ b/source/data/zone/sbp.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sbp{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/se.txt b/source/data/zone/se.txt
index 9c617cf..a097b20 100644
--- a/source/data/zone/se.txt
+++ b/source/data/zone/se.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 se{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "America:Curacao"{
             ec{"Curaçao"}
diff --git a/source/data/zone/seh.txt b/source/data/zone/seh.txt
index c7195e2..33cf43c 100644
--- a/source/data/zone/seh.txt
+++ b/source/data/zone/seh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 seh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ses.txt b/source/data/zone/ses.txt
index 0be2d29..221fb46 100644
--- a/source/data/zone/ses.txt
+++ b/source/data/zone/ses.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ses{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/sg.txt b/source/data/zone/sg.txt
index 76eae00..d5ffb8e 100644
--- a/source/data/zone/sg.txt
+++ b/source/data/zone/sg.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sg{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/shi.txt b/source/data/zone/shi.txt
index 04c375f..b61d726 100644
--- a/source/data/zone/shi.txt
+++ b/source/data/zone/shi.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/shi_Latn.txt b/source/data/zone/shi_Latn.txt
index 2065b96..bbda8b9 100644
--- a/source/data/zone/shi_Latn.txt
+++ b/source/data/zone/shi_Latn.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Latn{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/shi_Tfng.txt b/source/data/zone/shi_Tfng.txt
index 1713a5c..ba03fa3 100644
--- a/source/data/zone/shi_Tfng.txt
+++ b/source/data/zone/shi_Tfng.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 shi_Tfng{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/si.txt b/source/data/zone/si.txt
index f8c4af1..e6c003e 100644
--- a/source/data/zone/si.txt
+++ b/source/data/zone/si.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 si{
-    Version{"2.1.28.79"}
+    Version{"2.1.33.28"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"අබිජාන්"}
diff --git a/source/data/zone/sk.txt b/source/data/zone/sk.txt
index 0e7b2a9..65c7d4a 100644
--- a/source/data/zone/sk.txt
+++ b/source/data/zone/sk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sk{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinovaný svetový čas"}
+        }
         "Etc:Unknown"{
             ec{"neznáme mesto"}
         }
diff --git a/source/data/zone/sl.txt b/source/data/zone/sl.txt
index 981a2ec..d81b019 100644
--- a/source/data/zone/sl.txt
+++ b/source/data/zone/sl.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sl{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidžan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Univerzalni koordinirani čas"}
+        }
         "Etc:Unknown"{
             ec{"neznano mesto"}
         }
diff --git a/source/data/zone/smn.txt b/source/data/zone/smn.txt
index c205f96..d2ad7f8 100644
--- a/source/data/zone/smn.txt
+++ b/source/data/zone/smn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 smn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/sn.txt b/source/data/zone/sn.txt
index bf8d5b3..94c0e0e 100644
--- a/source/data/zone/sn.txt
+++ b/source/data/zone/sn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sn{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/so.txt b/source/data/zone/so.txt
index 62f9115..eacc067 100644
--- a/source/data/zone/so.txt
+++ b/source/data/zone/so.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 so{
-    Version{"2.1.27.78"}
+    Version{"2.1.33.76"}
     zoneStrings{
         "meta:Colombia"{
             ld{"Waqtiyada Xagaaga Kolambiya"}
diff --git a/source/data/zone/sq.txt b/source/data/zone/sq.txt
index 9969538..28a76e9 100644
--- a/source/data/zone/sq.txt
+++ b/source/data/zone/sq.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sq{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abixhan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidnej"}
         }
+        "Etc:UTC"{
+            ls{"Ora universale e koordinuar"}
+        }
         "Etc:Unknown"{
             ec{"Qytet i panjohur"}
         }
diff --git a/source/data/zone/sr.txt b/source/data/zone/sr.txt
index a6a7f22..699d263 100644
--- a/source/data/zone/sr.txt
+++ b/source/data/zone/sr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.73"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абиџан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сиднеј"}
         }
+        "Etc:UTC"{
+            ls{"Координисано универзално време"}
+        }
         "Etc:Unknown"{
             ec{"Непознат град"}
         }
diff --git a/source/data/zone/sr_Cyrl.txt b/source/data/zone/sr_Cyrl.txt
index 7cf7067..cac24ec 100644
--- a/source/data/zone/sr_Cyrl.txt
+++ b/source/data/zone/sr_Cyrl.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Cyrl{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/sr_Latn.txt b/source/data/zone/sr_Latn.txt
index 3fccbb1..9723dae 100644
--- a/source/data/zone/sr_Latn.txt
+++ b/source/data/zone/sr_Latn.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sr_Latn{
     %%Parent{"root"}
-    Version{"2.1.29.33"}
+    Version{"2.1.32.73"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidžan"}
@@ -943,6 +943,9 @@
         "Australia:Sydney"{
             ec{"Sidnej"}
         }
+        "Etc:UTC"{
+            ls{"Koordinisano univerzalno vreme"}
+        }
         "Etc:Unknown"{
             ec{"Nepoznat grad"}
         }
diff --git a/source/data/zone/sv.txt b/source/data/zone/sv.txt
index d2236b6..c3e4ed7 100644
--- a/source/data/zone/sv.txt
+++ b/source/data/zone/sv.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sv{
-    Version{"2.1.30.7"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Koordinerad universell tid"}
+        }
         "Etc:Unknown"{
             ec{"okänd stad"}
         }
diff --git a/source/data/zone/sw.txt b/source/data/zone/sw.txt
index 2f6d4f7..3b12455 100644
--- a/source/data/zone/sw.txt
+++ b/source/data/zone/sw.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 sw{
-    Version{"2.1.28.79"}
+    Version{"2.1.33.73"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/ta.txt b/source/data/zone/ta.txt
index 997bb29..de60aee 100644
--- a/source/data/zone/ta.txt
+++ b/source/data/zone/ta.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.4"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"அபிட்ஜான்"}
diff --git a/source/data/zone/ta_MY.txt b/source/data/zone/ta_MY.txt
index 51a810b..4f300b4 100644
--- a/source/data/zone/ta_MY.txt
+++ b/source/data/zone/ta_MY.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta_MY{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:India"{
             ss{"∅∅∅"}
diff --git a/source/data/zone/ta_SG.txt b/source/data/zone/ta_SG.txt
index d2bb02b..49d91e7 100644
--- a/source/data/zone/ta_SG.txt
+++ b/source/data/zone/ta_SG.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ta_SG{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "meta:India"{
             ss{"∅∅∅"}
diff --git a/source/data/zone/te.txt b/source/data/zone/te.txt
index 5ecef37..3b9a921 100644
--- a/source/data/zone/te.txt
+++ b/source/data/zone/te.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 te{
-    Version{"2.1.28.79"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"అబిడ్జాన్"}
diff --git a/source/data/zone/teo.txt b/source/data/zone/teo.txt
index 146e7dd..e043977 100644
--- a/source/data/zone/teo.txt
+++ b/source/data/zone/teo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 teo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/th.txt b/source/data/zone/th.txt
index 0aedb10..b23529b 100644
--- a/source/data/zone/th.txt
+++ b/source/data/zone/th.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 th{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"อาบีจาน"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"ซิดนีย์"}
         }
+        "Etc:UTC"{
+            ls{"เวลาสากลเชิงพิกัด"}
+        }
         "Etc:Unknown"{
             ec{"เมืองที่ไม่รู้จัก"}
         }
diff --git a/source/data/zone/ti.txt b/source/data/zone/ti.txt
index c8f5b44..d4e8ee9 100644
--- a/source/data/zone/ti.txt
+++ b/source/data/zone/ti.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ti{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         gmtFormat{"GMT{0}"}
         hourFormat{"+HH:mm;-HH:mm"}
diff --git a/source/data/zone/to.txt b/source/data/zone/to.txt
index 2df0b94..07a7b6c 100644
--- a/source/data/zone/to.txt
+++ b/source/data/zone/to.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 to{
-    Version{"2.1.27.98"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/tr.txt b/source/data/zone/tr.txt
index ec37be1..a6df67c 100644
--- a/source/data/zone/tr.txt
+++ b/source/data/zone/tr.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tr{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abican"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sidney"}
         }
+        "Etc:UTC"{
+            ls{"Eşgüdümlü Evrensel Zaman"}
+        }
         "Etc:Unknown"{
             ec{"Bilinmeyen Şehir"}
         }
diff --git a/source/data/zone/twq.txt b/source/data/zone/twq.txt
index c29e762..f203ce0 100644
--- a/source/data/zone/twq.txt
+++ b/source/data/zone/twq.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 twq{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/tzm.txt b/source/data/zone/tzm.txt
index 6050ffb..4cd4612 100644
--- a/source/data/zone/tzm.txt
+++ b/source/data/zone/tzm.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 tzm{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/ug.txt b/source/data/zone/ug.txt
index 8804f4b..611bb1a 100644
--- a/source/data/zone/ug.txt
+++ b/source/data/zone/ug.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ug{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Sao_Tome"{
             ec{"سان-تومې"}
diff --git a/source/data/zone/uk.txt b/source/data/zone/uk.txt
index 9305a57..5d2fc40 100644
--- a/source/data/zone/uk.txt
+++ b/source/data/zone/uk.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uk{
-    Version{"2.1.29.38"}
+    Version{"2.1.32.60"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Абіджан"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Сідней"}
         }
+        "Etc:UTC"{
+            ls{"Всесвітній координований час"}
+        }
         "Etc:Unknown"{
             ec{"Невідоме місто"}
         }
diff --git a/source/data/zone/ur.txt b/source/data/zone/ur.txt
index c722c72..36f07ac 100644
--- a/source/data/zone/ur.txt
+++ b/source/data/zone/ur.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ur{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"عابدجان"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"سڈنی"}
         }
+        "Etc:UTC"{
+            ls{"کوآرڈینیٹڈ یونیورسل ٹائم"}
+        }
         "Etc:Unknown"{
             ec{"نامعلوم شہر"}
         }
diff --git a/source/data/zone/ur_IN.txt b/source/data/zone/ur_IN.txt
index dc086a9..10794b9 100644
--- a/source/data/zone/ur_IN.txt
+++ b/source/data/zone/ur_IN.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 ur_IN{
-    Version{"2.1.27.79"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Accra"{
             ec{"اکرا"}
diff --git a/source/data/zone/uz.txt b/source/data/zone/uz.txt
index c628ec3..aff91f1 100644
--- a/source/data/zone/uz.txt
+++ b/source/data/zone/uz.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz{
-    Version{"2.1.29.44"}
+    Version{"2.1.32.60"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
diff --git a/source/data/zone/uz_Arab.txt b/source/data/zone/uz_Arab.txt
index 349e6c1..57dd5f5 100644
--- a/source/data/zone/uz_Arab.txt
+++ b/source/data/zone/uz_Arab.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Arab{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Asia:Kabul"{
             ec{"کابل"}
diff --git a/source/data/zone/uz_Cyrl.txt b/source/data/zone/uz_Cyrl.txt
index e294644..394d6a8 100644
--- a/source/data/zone/uz_Cyrl.txt
+++ b/source/data/zone/uz_Cyrl.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Cyrl{
     %%Parent{"root"}
-    Version{"2.1.27.98"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Asmera"{
             ec{"Asmara"}
diff --git a/source/data/zone/uz_Latn.txt b/source/data/zone/uz_Latn.txt
index 64e0e6b..36553da 100644
--- a/source/data/zone/uz_Latn.txt
+++ b/source/data/zone/uz_Latn.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 uz_Latn{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/vai.txt b/source/data/zone/vai.txt
index 6c2d775..d411407 100644
--- a/source/data/zone/vai.txt
+++ b/source/data/zone/vai.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/vai_Latn.txt b/source/data/zone/vai_Latn.txt
index fea3ff6..60d5e56 100644
--- a/source/data/zone/vai_Latn.txt
+++ b/source/data/zone/vai_Latn.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Latn{
     %%Parent{"root"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/vai_Vaii.txt b/source/data/zone/vai_Vaii.txt
index 90f9ee9..487dfa9 100644
--- a/source/data/zone/vai_Vaii.txt
+++ b/source/data/zone/vai_Vaii.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vai_Vaii{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/vi.txt b/source/data/zone/vi.txt
index 4ac0e36..9a5e39e 100644
--- a/source/data/zone/vi.txt
+++ b/source/data/zone/vi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vi{
-    Version{"2.1.28.79"}
+    Version{"2.1.32.59"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"Abidjan"}
@@ -942,6 +942,9 @@
         "Australia:Sydney"{
             ec{"Sydney"}
         }
+        "Etc:UTC"{
+            ls{"Giờ phối hợp quốc tế"}
+        }
         "Etc:Unknown"{
             ec{"Thành phố Không xác định"}
         }
diff --git a/source/data/zone/vun.txt b/source/data/zone/vun.txt
index 3fecf3e..e4ed87b 100644
--- a/source/data/zone/vun.txt
+++ b/source/data/zone/vun.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 vun{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/wae.txt b/source/data/zone/wae.txt
index 3e64210..0747aad 100644
--- a/source/data/zone/wae.txt
+++ b/source/data/zone/wae.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 wae{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Accra"{
             ec{"Akra"}
diff --git a/source/data/zone/xog.txt b/source/data/zone/xog.txt
index 832d2cc..31a3446 100644
--- a/source/data/zone/xog.txt
+++ b/source/data/zone/xog.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 xog{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/yav.txt b/source/data/zone/yav.txt
index 8d7de65..bb5ae19 100644
--- a/source/data/zone/yav.txt
+++ b/source/data/zone/yav.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yav{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/yi.txt b/source/data/zone/yi.txt
index 2432bf9..d2a7aa2 100644
--- a/source/data/zone/yi.txt
+++ b/source/data/zone/yi.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yi{
-    Version{"2.1.27.97"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"אַבידזשאַן"}
diff --git a/source/data/zone/yo.txt b/source/data/zone/yo.txt
index f2f3e6d..7e98dc1 100644
--- a/source/data/zone/yo.txt
+++ b/source/data/zone/yo.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yo{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/yue.txt b/source/data/zone/yue.txt
index 74be47f..90f4e66 100644
--- a/source/data/zone/yue.txt
+++ b/source/data/zone/yue.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 yue{
-    Version{"2.1.28.76"}
+    Version{"2.1.31.86"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"阿比讓"}
diff --git a/source/data/zone/zgh.txt b/source/data/zone/zgh.txt
index 9ee504e..3b77251 100644
--- a/source/data/zone/zgh.txt
+++ b/source/data/zone/zgh.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zgh{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/zh.txt b/source/data/zone/zh.txt
index 87eeaf3..0aee57b 100644
--- a/source/data/zone/zh.txt
+++ b/source/data/zone/zh.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh{
-    Version{"2.1.29.84"}
+    Version{"2.1.33.94"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"阿比让"}
@@ -833,12 +833,6 @@
         }
         "Asia:Taipei"{
             ec{"台北"}
-            ld{"台北夏令时间"}
-            lg{"台北时间"}
-            ls{"台北标准时间"}
-            sd{"台北"}
-            sg{"台北"}
-            ss{"台北"}
         }
         "Asia:Tashkent"{
             ec{"塔什干"}
@@ -948,6 +942,9 @@
         "Australia:Sydney"{
             ec{"悉尼"}
         }
+        "Etc:UTC"{
+            ls{"协调世界时"}
+        }
         "Etc:Unknown"{
             ec{"未知城市"}
         }
diff --git a/source/data/zone/zh_Hans.txt b/source/data/zone/zh_Hans.txt
index 111a2e0..e2e6871 100644
--- a/source/data/zone/zh_Hans.txt
+++ b/source/data/zone/zh_Hans.txt
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans{
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/zh_Hans_SG.txt b/source/data/zone/zh_Hans_SG.txt
index 640818c..c0d2d59 100644
--- a/source/data/zone/zh_Hans_SG.txt
+++ b/source/data/zone/zh_Hans_SG.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hans_SG{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "America:Scoresbysund"{
             ec{"斯考斯伯松德"}
diff --git a/source/data/zone/zh_Hant.txt b/source/data/zone/zh_Hant.txt
index 06f45b1..58fb498 100644
--- a/source/data/zone/zh_Hant.txt
+++ b/source/data/zone/zh_Hant.txt
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant{
     %%Parent{"root"}
-    Version{"2.1.28.79"}
+    Version{"2.1.33.94"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"阿比讓"}
@@ -834,12 +834,6 @@
         }
         "Asia:Taipei"{
             ec{"台北"}
-            ld{"台北夏令時間"}
-            lg{"台北時間"}
-            ls{"台北標準時間"}
-            sd{"台北"}
-            sg{"台北"}
-            ss{"台北"}
         }
         "Asia:Tashkent"{
             ec{"塔什干"}
@@ -949,6 +943,9 @@
         "Australia:Sydney"{
             ec{"雪梨"}
         }
+        "Etc:UTC"{
+            ls{"世界標準時間"}
+        }
         "Etc:Unknown"{
             ec{"未知城市"}
         }
diff --git a/source/data/zone/zh_Hant_HK.txt b/source/data/zone/zh_Hant_HK.txt
index 614f669..14e11e2 100644
--- a/source/data/zone/zh_Hant_HK.txt
+++ b/source/data/zone/zh_Hant_HK.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_HK{
-    Version{"2.1.27.99"}
+    Version{"2.1.31.33"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"阿比贊"}
diff --git a/source/data/zone/zh_Hant_MO.txt b/source/data/zone/zh_Hant_MO.txt
index 1814082..78fdee5 100644
--- a/source/data/zone/zh_Hant_MO.txt
+++ b/source/data/zone/zh_Hant_MO.txt
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zh_Hant_MO{
     %%Parent{"zh_Hant_HK"}
-    Version{"2.1.27.40"}
+    Version{"2.1.31.33"}
 }
diff --git a/source/data/zone/zu.txt b/source/data/zone/zu.txt
index 64c3504..b747a7e 100644
--- a/source/data/zone/zu.txt
+++ b/source/data/zone/zu.txt
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 zu{
-    Version{"2.1.29.22"}
+    Version{"2.1.31.74"}
     zoneStrings{
         "Africa:Abidjan"{
             ec{"i-Abidjan"}
diff --git a/source/extra/scrptrun/scrptrun.cpp b/source/extra/scrptrun/scrptrun.cpp
index bd5105a..d36ec61 100644
--- a/source/extra/scrptrun/scrptrun.cpp
+++ b/source/extra/scrptrun/scrptrun.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/extra/scrptrun/scrptrun.h b/source/extra/scrptrun/scrptrun.h
index b6b3a2b..0ef5df2 100644
--- a/source/extra/scrptrun/scrptrun.h
+++ b/source/extra/scrptrun/scrptrun.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/extra/scrptrun/srtest.cpp b/source/extra/scrptrun/srtest.cpp
index d4ec850..5792071 100644
--- a/source/extra/scrptrun/srtest.cpp
+++ b/source/extra/scrptrun/srtest.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * %W% %E%
diff --git a/source/extra/uconv/Makefile.in b/source/extra/uconv/Makefile.in
index 7d0af04..b614461 100644
--- a/source/extra/uconv/Makefile.in
+++ b/source/extra/uconv/Makefile.in
@@ -44,7 +44,7 @@
 ## Target information
 TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
 CPPFLAGS += -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit
 LIBS = $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
 
diff --git a/source/extra/uconv/uconv.cpp b/source/extra/uconv/uconv.cpp
index 2a043f8..3bc807c 100644
--- a/source/extra/uconv/uconv.cpp
+++ b/source/extra/uconv/uconv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*****************************************************************************
 *
diff --git a/source/extra/uconv/unicode/uwmsg.h b/source/extra/uconv/unicode/uwmsg.h
index e24d5db..d8497d8 100644
--- a/source/extra/uconv/unicode/uwmsg.h
+++ b/source/extra/uconv/unicode/uwmsg.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/extra/uconv/uwmsg.c b/source/extra/uconv/uwmsg.c
index ecc98d1..d5b0f62 100644
--- a/source/extra/uconv/uwmsg.c
+++ b/source/extra/uconv/uwmsg.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/affixpatternparser.cpp b/source/i18n/affixpatternparser.cpp
index 2ca22a1..fcc6f22 100644
--- a/source/i18n/affixpatternparser.cpp
+++ b/source/i18n/affixpatternparser.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
@@ -13,7 +13,9 @@
 
 #include "unicode/dcfmtsym.h"
 #include "unicode/plurrule.h"
+#include "unicode/strenum.h"
 #include "unicode/ucurr.h"
+#include "unicode/ustring.h"
 #include "affixpatternparser.h"
 #include "charstr.h"
 #include "precision.h"
diff --git a/source/i18n/affixpatternparser.h b/source/i18n/affixpatternparser.h
index 1e534c9..66cbae3 100644
--- a/source/i18n/affixpatternparser.h
+++ b/source/i18n/affixpatternparser.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/alphaindex.cpp b/source/i18n/alphaindex.cpp
index 2981e2c..d877cb2 100644
--- a/source/i18n/alphaindex.cpp
+++ b/source/i18n/alphaindex.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/anytrans.cpp b/source/i18n/anytrans.cpp
index 8ec6f83..e7d5375 100644
--- a/source/i18n/anytrans.cpp
+++ b/source/i18n/anytrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************
diff --git a/source/i18n/anytrans.h b/source/i18n/anytrans.h
index d06d2ba..703d42b 100644
--- a/source/i18n/anytrans.h
+++ b/source/i18n/anytrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***********************************************************************
diff --git a/source/i18n/astro.cpp b/source/i18n/astro.cpp
index 22890ad..8f9cf7a 100644
--- a/source/i18n/astro.cpp
+++ b/source/i18n/astro.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /************************************************************************
  * Copyright (C) 1996-2012, International Business Machines Corporation
diff --git a/source/i18n/astro.h b/source/i18n/astro.h
index e854661..a246489 100644
--- a/source/i18n/astro.h
+++ b/source/i18n/astro.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /************************************************************************
  * Copyright (C) 1996-2008, International Business Machines Corporation *
diff --git a/source/i18n/basictz.cpp b/source/i18n/basictz.cpp
index bfaef62..54ee5a1 100644
--- a/source/i18n/basictz.cpp
+++ b/source/i18n/basictz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/bocsu.cpp b/source/i18n/bocsu.cpp
index a2f94f2..861a76a 100644
--- a/source/i18n/bocsu.cpp
+++ b/source/i18n/bocsu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bocsu.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/bocsu.h b/source/i18n/bocsu.h
index 56b0350..6b8ed51 100644
--- a/source/i18n/bocsu.h
+++ b/source/i18n/bocsu.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  bocsu.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/brktrans.cpp b/source/i18n/brktrans.cpp
index 714a0a8..ab5a803 100644
--- a/source/i18n/brktrans.cpp
+++ b/source/i18n/brktrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/brktrans.h b/source/i18n/brktrans.h
index 229d6ed..30cf4ea 100644
--- a/source/i18n/brktrans.h
+++ b/source/i18n/brktrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/buddhcal.cpp b/source/i18n/buddhcal.cpp
index adabb0a..6fac7a8 100644
--- a/source/i18n/buddhcal.cpp
+++ b/source/i18n/buddhcal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/buddhcal.h b/source/i18n/buddhcal.h
index 3af9ba5..88509ba 100644
--- a/source/i18n/buddhcal.h
+++ b/source/i18n/buddhcal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/calendar.cpp b/source/i18n/calendar.cpp
index ffa1e1d..2c14b11 100644
--- a/source/i18n/calendar.cpp
+++ b/source/i18n/calendar.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/casetrn.cpp b/source/i18n/casetrn.cpp
index 9c8c8b9..ac28365 100644
--- a/source/i18n/casetrn.cpp
+++ b/source/i18n/casetrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  casetrn.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -92,7 +92,6 @@
  */
 CaseMapTransliterator::CaseMapTransliterator(const UnicodeString &id, UCaseMapFull *map) : 
     Transliterator(id, 0),
-    fCsp(ucase_getSingleton()),
     fMap(map)
 {
     // TODO test incremental mode with context-sensitive text (e.g. greek sigma)
@@ -110,7 +109,7 @@
  */
 CaseMapTransliterator::CaseMapTransliterator(const CaseMapTransliterator& o) :
     Transliterator(o),
-    fCsp(o.fCsp), fMap(o.fMap)
+    fMap(o.fMap)
 {
 }
 
@@ -119,7 +118,6 @@
  */
 /*CaseMapTransliterator& CaseMapTransliterator::operator=(const CaseMapTransliterator& o) {
     Transliterator::operator=(o);
-    fCsp = o.fCsp;
     fMap = o.fMap;
     return *this;
 }*/
@@ -151,14 +149,14 @@
     UnicodeString tmp;
     const UChar *s;
     UChar32 c;
-    int32_t textPos, delta, result, locCache=0;
+    int32_t textPos, delta, result;
 
     for(textPos=offsets.start; textPos<offsets.limit;) {
         csc.cpStart=textPos;
         c=text.char32At(textPos);
         csc.cpLimit=textPos+=U16_LENGTH(c);
 
-        result=fMap(fCsp, c, utrans_rep_caseContextIterator, &csc, &s, "", &locCache);
+        result=fMap(c, utrans_rep_caseContextIterator, &csc, &s, UCASE_LOC_ROOT);
 
         if(csc.b1 && isIncremental) {
             // fMap() tried to look beyond the context limit
diff --git a/source/i18n/casetrn.h b/source/i18n/casetrn.h
index df80760..744406e 100644
--- a/source/i18n/casetrn.h
+++ b/source/i18n/casetrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  casetrn.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -84,7 +84,6 @@
                                      UTransPosition& offsets, 
                                      UBool isIncremental) const;
 
-    const UCaseProps *fCsp;
     UCaseMapFull *fMap;
 
 private:
diff --git a/source/i18n/cecal.cpp b/source/i18n/cecal.cpp
index 17bf816..00faa8a 100644
--- a/source/i18n/cecal.cpp
+++ b/source/i18n/cecal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/cecal.h b/source/i18n/cecal.h
index ce6f420..c380f0b 100644
--- a/source/i18n/cecal.h
+++ b/source/i18n/cecal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/chnsecal.cpp b/source/i18n/chnsecal.cpp
index 4de390a..82d1c3f 100644
--- a/source/i18n/chnsecal.cpp
+++ b/source/i18n/chnsecal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/i18n/chnsecal.h b/source/i18n/chnsecal.h
index e9e9515..11a9b43 100644
--- a/source/i18n/chnsecal.h
+++ b/source/i18n/chnsecal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
diff --git a/source/i18n/choicfmt.cpp b/source/i18n/choicfmt.cpp
index f6e36a6..42e1fa2 100644
--- a/source/i18n/choicfmt.cpp
+++ b/source/i18n/choicfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/coleitr.cpp b/source/i18n/coleitr.cpp
index d99f191..64d3ab4 100644
--- a/source/i18n/coleitr.cpp
+++ b/source/i18n/coleitr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -29,6 +29,7 @@
 
 #if !UCONFIG_NO_COLLATION
 
+#include "unicode/chariter.h"
 #include "unicode/coleitr.h"
 #include "unicode/tblcoll.h"
 #include "unicode/ustring.h"
diff --git a/source/i18n/coll.cpp b/source/i18n/coll.cpp
index 90a6a47..be4b6b8 100644
--- a/source/i18n/coll.cpp
+++ b/source/i18n/coll.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/i18n/collation.cpp b/source/i18n/collation.cpp
index bac7498..14cb865 100644
--- a/source/i18n/collation.cpp
+++ b/source/i18n/collation.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collation.h b/source/i18n/collation.h
index c82d9a4..e9256c9 100644
--- a/source/i18n/collation.h
+++ b/source/i18n/collation.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationbuilder.cpp b/source/i18n/collationbuilder.cpp
index 0025cfc..954a20d 100644
--- a/source/i18n/collationbuilder.cpp
+++ b/source/i18n/collationbuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationbuilder.h b/source/i18n/collationbuilder.h
index 7dda928..2f20050 100644
--- a/source/i18n/collationbuilder.h
+++ b/source/i18n/collationbuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationcompare.cpp b/source/i18n/collationcompare.cpp
index 5d8bd90..cbf32c9 100644
--- a/source/i18n/collationcompare.cpp
+++ b/source/i18n/collationcompare.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationcompare.h b/source/i18n/collationcompare.h
index 630b90b..6ad2d06 100644
--- a/source/i18n/collationcompare.h
+++ b/source/i18n/collationcompare.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdata.cpp b/source/i18n/collationdata.cpp
index d3a62e4..688770f 100644
--- a/source/i18n/collationdata.cpp
+++ b/source/i18n/collationdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdata.h b/source/i18n/collationdata.h
index ab40bbd..ab9b4c4 100644
--- a/source/i18n/collationdata.h
+++ b/source/i18n/collationdata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatabuilder.cpp b/source/i18n/collationdatabuilder.cpp
index 2059b56..98a6ce7 100644
--- a/source/i18n/collationdatabuilder.cpp
+++ b/source/i18n/collationdatabuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatabuilder.h b/source/i18n/collationdatabuilder.h
index f2c9a82..fee444d 100644
--- a/source/i18n/collationdatabuilder.h
+++ b/source/i18n/collationdatabuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatareader.cpp b/source/i18n/collationdatareader.cpp
index df0b2a3..636eb14 100644
--- a/source/i18n/collationdatareader.cpp
+++ b/source/i18n/collationdatareader.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatareader.h b/source/i18n/collationdatareader.h
index ff8ec3d..44e6939 100644
--- a/source/i18n/collationdatareader.h
+++ b/source/i18n/collationdatareader.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatawriter.cpp b/source/i18n/collationdatawriter.cpp
index 596236b..a91119d 100644
--- a/source/i18n/collationdatawriter.cpp
+++ b/source/i18n/collationdatawriter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationdatawriter.h b/source/i18n/collationdatawriter.h
index 6169e0f..197cd53 100644
--- a/source/i18n/collationdatawriter.h
+++ b/source/i18n/collationdatawriter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationfastlatin.cpp b/source/i18n/collationfastlatin.cpp
index c3e8c98..b98b845 100644
--- a/source/i18n/collationfastlatin.cpp
+++ b/source/i18n/collationfastlatin.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationfastlatin.h b/source/i18n/collationfastlatin.h
index 00a2d1b..4bac797 100644
--- a/source/i18n/collationfastlatin.h
+++ b/source/i18n/collationfastlatin.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationfastlatinbuilder.cpp b/source/i18n/collationfastlatinbuilder.cpp
index 032e5e8..e889697 100644
--- a/source/i18n/collationfastlatinbuilder.cpp
+++ b/source/i18n/collationfastlatinbuilder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationfastlatinbuilder.h b/source/i18n/collationfastlatinbuilder.h
index 9d38038..8b63b86 100644
--- a/source/i18n/collationfastlatinbuilder.h
+++ b/source/i18n/collationfastlatinbuilder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationfcd.cpp b/source/i18n/collationfcd.cpp
index de1d9a2..86b12b9 100644
--- a/source/i18n/collationfcd.cpp
+++ b/source/i18n/collationfcd.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 1999-2016, International Business Machines
diff --git a/source/i18n/collationfcd.h b/source/i18n/collationfcd.h
index 150f488..ec7167d 100644
--- a/source/i18n/collationfcd.h
+++ b/source/i18n/collationfcd.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationiterator.cpp b/source/i18n/collationiterator.cpp
index e6e8f27..961c9e9 100644
--- a/source/i18n/collationiterator.cpp
+++ b/source/i18n/collationiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationiterator.h b/source/i18n/collationiterator.h
index 0161f5a..2666b24 100644
--- a/source/i18n/collationiterator.h
+++ b/source/i18n/collationiterator.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationkeys.cpp b/source/i18n/collationkeys.cpp
index 9130228..4b9e6b5 100644
--- a/source/i18n/collationkeys.cpp
+++ b/source/i18n/collationkeys.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationkeys.h b/source/i18n/collationkeys.h
index 74b370e..60d9e50 100644
--- a/source/i18n/collationkeys.h
+++ b/source/i18n/collationkeys.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationroot.cpp b/source/i18n/collationroot.cpp
index f862e41..71753bd 100644
--- a/source/i18n/collationroot.cpp
+++ b/source/i18n/collationroot.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationroot.h b/source/i18n/collationroot.h
index 26e5071..8cd3046 100644
--- a/source/i18n/collationroot.h
+++ b/source/i18n/collationroot.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationrootelements.cpp b/source/i18n/collationrootelements.cpp
index 638a245..9b46d14 100644
--- a/source/i18n/collationrootelements.cpp
+++ b/source/i18n/collationrootelements.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationrootelements.h b/source/i18n/collationrootelements.h
index 518a24f..7836d8d 100644
--- a/source/i18n/collationrootelements.h
+++ b/source/i18n/collationrootelements.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationruleparser.cpp b/source/i18n/collationruleparser.cpp
index ea3ea66..96dcc0d 100644
--- a/source/i18n/collationruleparser.cpp
+++ b/source/i18n/collationruleparser.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationruleparser.h b/source/i18n/collationruleparser.h
index bd393c2..e124881 100644
--- a/source/i18n/collationruleparser.h
+++ b/source/i18n/collationruleparser.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationsets.cpp b/source/i18n/collationsets.cpp
index 1188f31..0958141 100644
--- a/source/i18n/collationsets.cpp
+++ b/source/i18n/collationsets.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationsets.h b/source/i18n/collationsets.h
index 070d507..aed41f7 100644
--- a/source/i18n/collationsets.h
+++ b/source/i18n/collationsets.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationsettings.cpp b/source/i18n/collationsettings.cpp
index bc1d4e6..534e20d 100644
--- a/source/i18n/collationsettings.cpp
+++ b/source/i18n/collationsettings.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationsettings.h b/source/i18n/collationsettings.h
index 1522dd5..83e775d 100644
--- a/source/i18n/collationsettings.h
+++ b/source/i18n/collationsettings.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationtailoring.cpp b/source/i18n/collationtailoring.cpp
index d1ffa30..78a11fb 100644
--- a/source/i18n/collationtailoring.cpp
+++ b/source/i18n/collationtailoring.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationtailoring.h b/source/i18n/collationtailoring.h
index e463005..9a636cf 100644
--- a/source/i18n/collationtailoring.h
+++ b/source/i18n/collationtailoring.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/collationweights.cpp b/source/i18n/collationweights.cpp
index 8b1122a..c60da2d 100644
--- a/source/i18n/collationweights.cpp
+++ b/source/i18n/collationweights.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  collationweights.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/collationweights.h b/source/i18n/collationweights.h
index 4a6a7e8..b415882 100644
--- a/source/i18n/collationweights.h
+++ b/source/i18n/collationweights.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*  
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  collationweights.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/collunsafe.h b/source/i18n/collunsafe.h
index 7a69b68..0767254 100644
--- a/source/i18n/collunsafe.h
+++ b/source/i18n/collunsafe.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 // collunsafe.h
 //  Copyright (C) 2015-2016, International Business Machines Corporation and others.
diff --git a/source/i18n/compactdecimalformat.cpp b/source/i18n/compactdecimalformat.cpp
index 385b3a5..bb2e541 100644
--- a/source/i18n/compactdecimalformat.cpp
+++ b/source/i18n/compactdecimalformat.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -771,13 +771,22 @@
   if (U_FAILURE(status)) {
     return 0;
   }
-  int32_t firstIdx = formatStr.indexOf(kZero, UPRV_LENGTHOF(kZero), 0);
+
+  // ICU 59 HACK: Ignore negative part of format string, mimicking ICU 58 behavior.
+  // TODO(sffc): Make sure this is fixed during the overhaul port in ICU 60.
+  int32_t semiPos = formatStr.indexOf(';', 0);
+  if (semiPos == -1) {
+    semiPos = formatStr.length();
+  }
+  UnicodeString positivePart = formatStr.tempSubString(0, semiPos);
+
+  int32_t firstIdx = positivePart.indexOf(kZero, UPRV_LENGTHOF(kZero), 0);
   // We must have 0's in format string.
   if (firstIdx == -1) {
     status = U_INTERNAL_PROGRAM_ERROR;
     return 0;
   }
-  int32_t lastIdx = formatStr.lastIndexOf(kZero, UPRV_LENGTHOF(kZero), firstIdx);
+  int32_t lastIdx = positivePart.lastIndexOf(kZero, UPRV_LENGTHOF(kZero), firstIdx);
   CDFUnit* unit = createCDFUnit(variant, log10Value, result, status);
   if (U_FAILURE(status)) {
     return 0;
@@ -790,10 +799,10 @@
   unit->markAsSet();
 
   // Everything up to first 0 is the prefix
-  unit->prefix = formatStr.tempSubString(0, firstIdx);
+  unit->prefix = positivePart.tempSubString(0, firstIdx);
   fixQuotes(unit->prefix);
   // Everything beyond the last 0 is the suffix
-  unit->suffix = formatStr.tempSubString(lastIdx + 1);
+  unit->suffix = positivePart.tempSubString(lastIdx + 1);
   fixQuotes(unit->suffix);
 
   // If there is effectively no prefix or suffix, ignore the actual number of
@@ -804,7 +813,7 @@
 
   // Calculate number of zeros before decimal point
   int32_t idx = firstIdx + 1;
-  while (idx <= lastIdx && formatStr.charAt(idx) == u_0) {
+  while (idx <= lastIdx && positivePart.charAt(idx) == u_0) {
     ++idx;
   }
   return (idx - firstIdx);
diff --git a/source/i18n/coptccal.cpp b/source/i18n/coptccal.cpp
index bcbd8be..ba2040d 100644
--- a/source/i18n/coptccal.cpp
+++ b/source/i18n/coptccal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/coptccal.h b/source/i18n/coptccal.h
index afca9b9..5c38aa6 100644
--- a/source/i18n/coptccal.h
+++ b/source/i18n/coptccal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/cpdtrans.cpp b/source/i18n/cpdtrans.cpp
index bacd420..db2ddb7 100644
--- a/source/i18n/cpdtrans.cpp
+++ b/source/i18n/cpdtrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/cpdtrans.h b/source/i18n/cpdtrans.h
index ecf23e5..076296a 100644
--- a/source/i18n/cpdtrans.h
+++ b/source/i18n/cpdtrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/csdetect.cpp b/source/i18n/csdetect.cpp
index 5dadf37..36552c4 100644
--- a/source/i18n/csdetect.cpp
+++ b/source/i18n/csdetect.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csdetect.h b/source/i18n/csdetect.h
index d0dc0d2..d4bfa75 100644
--- a/source/i18n/csdetect.h
+++ b/source/i18n/csdetect.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csmatch.cpp b/source/i18n/csmatch.cpp
index 844fc43..83bf531 100644
--- a/source/i18n/csmatch.cpp
+++ b/source/i18n/csmatch.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csmatch.h b/source/i18n/csmatch.h
index 0931ff7..fe379ce 100644
--- a/source/i18n/csmatch.h
+++ b/source/i18n/csmatch.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csr2022.cpp b/source/i18n/csr2022.cpp
index 66289ee..ff26e5e 100644
--- a/source/i18n/csr2022.cpp
+++ b/source/i18n/csr2022.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csr2022.h b/source/i18n/csr2022.h
index c0c3318..cde9019 100644
--- a/source/i18n/csr2022.h
+++ b/source/i18n/csr2022.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrecog.cpp b/source/i18n/csrecog.cpp
index 503a5a5..31fce5d 100644
--- a/source/i18n/csrecog.cpp
+++ b/source/i18n/csrecog.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrecog.h b/source/i18n/csrecog.h
index 4d0918b..713fd4e 100644
--- a/source/i18n/csrecog.h
+++ b/source/i18n/csrecog.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrmbcs.cpp b/source/i18n/csrmbcs.cpp
index fef61ba..d98f18a 100644
--- a/source/i18n/csrmbcs.cpp
+++ b/source/i18n/csrmbcs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrmbcs.h b/source/i18n/csrmbcs.h
index 6a49a85..8ccf1d5 100644
--- a/source/i18n/csrmbcs.h
+++ b/source/i18n/csrmbcs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrsbcs.cpp b/source/i18n/csrsbcs.cpp
index 10bd9c9..0b0d896 100644
--- a/source/i18n/csrsbcs.cpp
+++ b/source/i18n/csrsbcs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrsbcs.h b/source/i18n/csrsbcs.h
index a196acf..9768783 100644
--- a/source/i18n/csrsbcs.h
+++ b/source/i18n/csrsbcs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrucode.cpp b/source/i18n/csrucode.cpp
index 609ebe4..59f2dbe 100644
--- a/source/i18n/csrucode.cpp
+++ b/source/i18n/csrucode.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrucode.h b/source/i18n/csrucode.h
index 68ebaf3..cef3544 100644
--- a/source/i18n/csrucode.h
+++ b/source/i18n/csrucode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrutf8.cpp b/source/i18n/csrutf8.cpp
index 2f15379..b42bd8b 100644
--- a/source/i18n/csrutf8.cpp
+++ b/source/i18n/csrutf8.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/csrutf8.h b/source/i18n/csrutf8.h
index 72d65dc..6089eb6 100644
--- a/source/i18n/csrutf8.h
+++ b/source/i18n/csrutf8.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/curramt.cpp b/source/i18n/curramt.cpp
index 26ea7f4..d224270 100644
--- a/source/i18n/curramt.cpp
+++ b/source/i18n/curramt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -19,12 +19,12 @@
 
 U_NAMESPACE_BEGIN
 
-CurrencyAmount::CurrencyAmount(const Formattable& amount, const UChar* isoCode,
+CurrencyAmount::CurrencyAmount(const Formattable& amount, ConstChar16Ptr isoCode,
                                UErrorCode& ec) :
     Measure(amount, new CurrencyUnit(isoCode, ec), ec) {
 }
 
-CurrencyAmount::CurrencyAmount(double amount, const UChar* isoCode,
+CurrencyAmount::CurrencyAmount(double amount, ConstChar16Ptr isoCode,
                                UErrorCode& ec) :
     Measure(Formattable(amount), new CurrencyUnit(isoCode, ec), ec) {
 }
diff --git a/source/i18n/currfmt.cpp b/source/i18n/currfmt.cpp
index b92aa00..06bdad0 100644
--- a/source/i18n/currfmt.cpp
+++ b/source/i18n/currfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/currfmt.h b/source/i18n/currfmt.h
index 83e0272..97d44cb 100644
--- a/source/i18n/currfmt.h
+++ b/source/i18n/currfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/currpinf.cpp b/source/i18n/currpinf.cpp
index 5140b5e..9a7996b 100644
--- a/source/i18n/currpinf.cpp
+++ b/source/i18n/currpinf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -20,6 +20,7 @@
 
 #include "unicode/locid.h"
 #include "unicode/plurrule.h"
+#include "unicode/strenum.h"
 #include "unicode/ures.h"
 #include "unicode/numsys.h"
 #include "cstring.h"
diff --git a/source/i18n/currunit.cpp b/source/i18n/currunit.cpp
index ede1900..1978854 100644
--- a/source/i18n/currunit.cpp
+++ b/source/i18n/currunit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -19,10 +19,10 @@
 
 U_NAMESPACE_BEGIN
 
-CurrencyUnit::CurrencyUnit(const UChar* _isoCode, UErrorCode& ec) {
+CurrencyUnit::CurrencyUnit(ConstChar16Ptr _isoCode, UErrorCode& ec) {
     *isoCode = 0;
     if (U_SUCCESS(ec)) {
-        if (_isoCode && u_strlen(_isoCode)==3) {
+        if (_isoCode != nullptr && u_strlen(_isoCode)==3) {
             u_strcpy(isoCode, _isoCode);
             char simpleIsoCode[4];
             u_UCharsToChars(isoCode, simpleIsoCode, 4);
diff --git a/source/i18n/dangical.cpp b/source/i18n/dangical.cpp
index 328ad85..73bc421 100644
--- a/source/i18n/dangical.cpp
+++ b/source/i18n/dangical.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/i18n/dangical.h b/source/i18n/dangical.h
index 99f3fd8..04bd67b 100644
--- a/source/i18n/dangical.h
+++ b/source/i18n/dangical.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
diff --git a/source/i18n/datefmt.cpp b/source/i18n/datefmt.cpp
index 2767e3f..3e879be 100644
--- a/source/i18n/datefmt.cpp
+++ b/source/i18n/datefmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -80,7 +80,7 @@
             fSkeleton(other.fSkeleton) { }
     virtual ~DateFmtBestPatternKey();
     virtual int32_t hashCode() const {
-        return 37 * LocaleCacheKey<DateFmtBestPattern>::hashCode() + fSkeleton.hashCode();
+        return (int32_t)(37u * (uint32_t)LocaleCacheKey<DateFmtBestPattern>::hashCode() + (uint32_t)fSkeleton.hashCode());
     }
     virtual UBool operator==(const CacheKeyBase &other) const {
        // reflexive
@@ -498,7 +498,7 @@
 DateFormat::create(EStyle timeStyle, EStyle dateStyle, const Locale& locale)
 {
     UErrorCode status = U_ZERO_ERROR;
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     char buffer[8];
     int32_t count = locale.getKeywordValue("compat", buffer, sizeof(buffer), status);
 
diff --git a/source/i18n/dayperiodrules.cpp b/source/i18n/dayperiodrules.cpp
index 3041482..f7ec1e6 100644
--- a/source/i18n/dayperiodrules.cpp
+++ b/source/i18n/dayperiodrules.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -174,7 +174,7 @@
         }
     }
 
-    void addCutoff(CutoffType type, UnicodeString hour_str, UErrorCode &errorCode) {
+    void addCutoff(CutoffType type, const UnicodeString &hour_str, UErrorCode &errorCode) {
         if (U_FAILURE(errorCode)) { return; }
 
         if (type == CUTOFF_TYPE_UNKNOWN) {
diff --git a/source/i18n/dayperiodrules.h b/source/i18n/dayperiodrules.h
index 3c006cd..610c617 100644
--- a/source/i18n/dayperiodrules.h
+++ b/source/i18n/dayperiodrules.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/dcfmtimp.h b/source/i18n/dcfmtimp.h
index 5885872..e582efb 100644
--- a/source/i18n/dcfmtimp.h
+++ b/source/i18n/dcfmtimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/dcfmtsym.cpp b/source/i18n/dcfmtsym.cpp
index caf230d..08a85b5 100644
--- a/source/i18n/dcfmtsym.cpp
+++ b/source/i18n/dcfmtsym.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/decContext.c b/source/i18n/decContext.cpp
similarity index 99%
rename from source/i18n/decContext.c
rename to source/i18n/decContext.cpp
index 4e29707..6ec6d32 100644
--- a/source/i18n/decContext.c
+++ b/source/i18n/decContext.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* ------------------------------------------------------------------ */
 /* Decimal Context module                                             */
diff --git a/source/i18n/decContext.h b/source/i18n/decContext.h
index 6a8768e..e145777 100644
--- a/source/i18n/decContext.h
+++ b/source/i18n/decContext.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* ------------------------------------------------------------------ */
 /* Decimal Context module header                                      */
diff --git a/source/i18n/decNumber.c b/source/i18n/decNumber.cpp
similarity index 99%
rename from source/i18n/decNumber.c
rename to source/i18n/decNumber.cpp
index 2604c37..969ea8f 100644
--- a/source/i18n/decNumber.c
+++ b/source/i18n/decNumber.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* ------------------------------------------------------------------ */
 /* Decimal Number arithmetic module                                   */
@@ -5007,7 +5007,7 @@
 
       /* Make sure no signed int overflow below. This is always true */
       /* if the given numbers have less digits than DEC_MAX_DIGITS. */
-      U_ASSERT(iacc <= INT32_MAX/sizeof(uLong));
+      U_ASSERT((uint32_t)iacc <= INT32_MAX/sizeof(uLong));
       needbytes=iacc*sizeof(uLong);
       #if DECDPUN==1
       zoff=(iacc+7)/8;        /* items to offset by  */
diff --git a/source/i18n/decNumber.h b/source/i18n/decNumber.h
index b83cdb9..7182e78 100644
--- a/source/i18n/decNumber.h
+++ b/source/i18n/decNumber.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* ------------------------------------------------------------------ */
 /* Decimal Number arithmetic module header                            */
diff --git a/source/i18n/decNumberLocal.h b/source/i18n/decNumberLocal.h
index 294d5f5..a45b7d8 100644
--- a/source/i18n/decNumberLocal.h
+++ b/source/i18n/decNumberLocal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /* ------------------------------------------------------------------ */
 /* decNumber package local type, tuning, and macro definitions        */
diff --git a/source/i18n/decfmtst.cpp b/source/i18n/decfmtst.cpp
index 78c01f2..07cdd79 100644
--- a/source/i18n/decfmtst.cpp
+++ b/source/i18n/decfmtst.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/decfmtst.h b/source/i18n/decfmtst.h
index 719f0aa..63ae50c 100644
--- a/source/i18n/decfmtst.h
+++ b/source/i18n/decfmtst.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/decimalformatpattern.cpp b/source/i18n/decimalformatpattern.cpp
index af1ccd2..b07bcdd 100644
--- a/source/i18n/decimalformatpattern.cpp
+++ b/source/i18n/decimalformatpattern.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/decimalformatpattern.h b/source/i18n/decimalformatpattern.h
index c8998f9..fcb5516 100644
--- a/source/i18n/decimalformatpattern.h
+++ b/source/i18n/decimalformatpattern.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/decimalformatpatternimpl.h b/source/i18n/decimalformatpatternimpl.h
index 67bc96d..8cecc8c 100644
--- a/source/i18n/decimalformatpatternimpl.h
+++ b/source/i18n/decimalformatpatternimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/decimfmt.cpp b/source/i18n/decimfmt.cpp
index f03143a..613c2dd 100644
--- a/source/i18n/decimfmt.cpp
+++ b/source/i18n/decimfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -49,6 +49,7 @@
 #include "unicode/utf16.h"
 #include "unicode/numsys.h"
 #include "unicode/localpointer.h"
+#include "unicode/ustring.h"
 #include "uresimp.h"
 #include "ucurrimp.h"
 #include "charstr.h"
diff --git a/source/i18n/decimfmtimpl.cpp b/source/i18n/decimfmtimpl.cpp
index 1bf742d..4b74396 100644
--- a/source/i18n/decimfmtimpl.cpp
+++ b/source/i18n/decimfmtimpl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/decimfmtimpl.h b/source/i18n/decimfmtimpl.h
index 82f154e..76e8053 100644
--- a/source/i18n/decimfmtimpl.h
+++ b/source/i18n/decimfmtimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/digitaffix.cpp b/source/i18n/digitaffix.cpp
index bb96fc7..3a02e46 100644
--- a/source/i18n/digitaffix.cpp
+++ b/source/i18n/digitaffix.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/digitaffix.h b/source/i18n/digitaffix.h
index a1a1006..005c36f 100644
--- a/source/i18n/digitaffix.h
+++ b/source/i18n/digitaffix.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/digitaffixesandpadding.cpp b/source/i18n/digitaffixesandpadding.cpp
index 716ab4a..487d9a3 100644
--- a/source/i18n/digitaffixesandpadding.cpp
+++ b/source/i18n/digitaffixesandpadding.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/digitaffixesandpadding.h b/source/i18n/digitaffixesandpadding.h
index 65a2313..7c4772b 100644
--- a/source/i18n/digitaffixesandpadding.h
+++ b/source/i18n/digitaffixesandpadding.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/digitformatter.cpp b/source/i18n/digitformatter.cpp
index 62569d5..675b5c4 100644
--- a/source/i18n/digitformatter.cpp
+++ b/source/i18n/digitformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/digitformatter.h b/source/i18n/digitformatter.h
index d92d425..54a54c3 100644
--- a/source/i18n/digitformatter.h
+++ b/source/i18n/digitformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/digitgrouping.cpp b/source/i18n/digitgrouping.cpp
index 01a9813..67f8f2b 100644
--- a/source/i18n/digitgrouping.cpp
+++ b/source/i18n/digitgrouping.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/digitgrouping.h b/source/i18n/digitgrouping.h
index 934fd4b..131d76b 100644
--- a/source/i18n/digitgrouping.h
+++ b/source/i18n/digitgrouping.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/digitinterval.cpp b/source/i18n/digitinterval.cpp
index 94dca9c..fd0e354 100644
--- a/source/i18n/digitinterval.cpp
+++ b/source/i18n/digitinterval.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/digitinterval.h b/source/i18n/digitinterval.h
index 8e1c83f..55ced94 100644
--- a/source/i18n/digitinterval.h
+++ b/source/i18n/digitinterval.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/digitlst.cpp b/source/i18n/digitlst.cpp
index ab5b557..4d7c3f4 100644
--- a/source/i18n/digitlst.cpp
+++ b/source/i18n/digitlst.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/digitlst.h b/source/i18n/digitlst.h
index 45cb49a..a51ebc4 100644
--- a/source/i18n/digitlst.h
+++ b/source/i18n/digitlst.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/dt_impl.h b/source/i18n/dt_impl.h
index 9b01bad..a4058c6 100644
--- a/source/i18n/dt_impl.h
+++ b/source/i18n/dt_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/dtfmtsym.cpp b/source/i18n/dtfmtsym.cpp
index c6e4b64..6dd4380 100644
--- a/source/i18n/dtfmtsym.cpp
+++ b/source/i18n/dtfmtsym.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -1368,7 +1368,7 @@
 
 //------------------------------------------------------
 
-const UChar * U_EXPORT2
+const char16_t * U_EXPORT2
 DateFormatSymbols::getPatternUChars(void)
 {
     return gPatternChars;
diff --git a/source/i18n/dtitv_impl.h b/source/i18n/dtitv_impl.h
index d0dc344..36fa173 100644
--- a/source/i18n/dtitv_impl.h
+++ b/source/i18n/dtitv_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/dtitvfmt.cpp b/source/i18n/dtitvfmt.cpp
index 48068d3..743b534 100644
--- a/source/i18n/dtitvfmt.cpp
+++ b/source/i18n/dtitvfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*******************************************************************************
 * Copyright (C) 2008-2016, International Business Machines Corporation and
diff --git a/source/i18n/dtitvinf.cpp b/source/i18n/dtitvinf.cpp
index 07129db..c863a68 100644
--- a/source/i18n/dtitvinf.cpp
+++ b/source/i18n/dtitvinf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*******************************************************************************
 * Copyright (C) 2008-2016, International Business Machines Corporation and
diff --git a/source/i18n/dtptngen.cpp b/source/i18n/dtptngen.cpp
index 17e7ec7..5ce3630 100644
--- a/source/i18n/dtptngen.cpp
+++ b/source/i18n/dtptngen.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -475,7 +475,7 @@
         }
     }
 
-    AllowedHourFormat getHourFormatFromUnicodeString(UnicodeString s) {
+    AllowedHourFormat getHourFormatFromUnicodeString(const UnicodeString &s) {
         if (s.length() == 1) {
             if (s[0] == LOW_H) { return ALLOWED_HOUR_FORMAT_h; }
             if (s[0] == CAP_H) { return ALLOWED_HOUR_FORMAT_H; }
diff --git a/source/i18n/dtptngen_impl.h b/source/i18n/dtptngen_impl.h
index 00a7075..38afd5f 100644
--- a/source/i18n/dtptngen_impl.h
+++ b/source/i18n/dtptngen_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -15,6 +15,9 @@
 #define __DTPTNGEN_IMPL_H__
 
 #include "unicode/udatpg.h"
+
+#include "unicode/strenum.h"
+#include "unicode/unistr.h"
 #include "uvector.h"
 
 // TODO(claireho): Split off Builder class.
diff --git a/source/i18n/dtrule.cpp b/source/i18n/dtrule.cpp
index 41b61ae..6847f1d 100644
--- a/source/i18n/dtrule.cpp
+++ b/source/i18n/dtrule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/esctrn.cpp b/source/i18n/esctrn.cpp
index 9be926f..900bed7 100644
--- a/source/i18n/esctrn.cpp
+++ b/source/i18n/esctrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/esctrn.h b/source/i18n/esctrn.h
index 7afea1b..60ecc74 100644
--- a/source/i18n/esctrn.h
+++ b/source/i18n/esctrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/ethpccal.cpp b/source/i18n/ethpccal.cpp
index 10735ad..995dd6a 100644
--- a/source/i18n/ethpccal.cpp
+++ b/source/i18n/ethpccal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ethpccal.h b/source/i18n/ethpccal.h
index 723b32c..acd7c3c 100644
--- a/source/i18n/ethpccal.h
+++ b/source/i18n/ethpccal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fmtable.cpp b/source/i18n/fmtable.cpp
index 4c736b4..c2a398d 100644
--- a/source/i18n/fmtable.cpp
+++ b/source/i18n/fmtable.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fmtable_cnv.cpp b/source/i18n/fmtable_cnv.cpp
index ff4deae..9a64792 100644
--- a/source/i18n/fmtable_cnv.cpp
+++ b/source/i18n/fmtable_cnv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fmtableimp.h b/source/i18n/fmtableimp.h
index 7003a18..12cea9a 100644
--- a/source/i18n/fmtableimp.h
+++ b/source/i18n/fmtableimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -12,6 +12,8 @@
 
 #include "digitlst.h"
 
+#if !UCONFIG_NO_FORMATTING
+
 U_NAMESPACE_BEGIN
 
 /**
@@ -35,4 +37,5 @@
 
 U_NAMESPACE_END
 
+#endif // #if !UCONFIG_NO_FORMATTING
 #endif
diff --git a/source/i18n/format.cpp b/source/i18n/format.cpp
index e951b30..e5abbe9 100644
--- a/source/i18n/format.cpp
+++ b/source/i18n/format.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fphdlimp.cpp b/source/i18n/fphdlimp.cpp
index 6a004a6..abcec97 100644
--- a/source/i18n/fphdlimp.cpp
+++ b/source/i18n/fphdlimp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fphdlimp.h b/source/i18n/fphdlimp.h
index b1fe42b..f3ac12c 100644
--- a/source/i18n/fphdlimp.h
+++ b/source/i18n/fphdlimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/fpositer.cpp b/source/i18n/fpositer.cpp
index eb405f9..47d4b3f 100644
--- a/source/i18n/fpositer.cpp
+++ b/source/i18n/fpositer.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/funcrepl.cpp b/source/i18n/funcrepl.cpp
index 4af889d..01c8754 100644
--- a/source/i18n/funcrepl.cpp
+++ b/source/i18n/funcrepl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/funcrepl.h b/source/i18n/funcrepl.h
index 954150c..a835d5b 100644
--- a/source/i18n/funcrepl.h
+++ b/source/i18n/funcrepl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/gender.cpp b/source/i18n/gender.cpp
index e830f89..9a25dd8 100644
--- a/source/i18n/gender.cpp
+++ b/source/i18n/gender.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/gregocal.cpp b/source/i18n/gregocal.cpp
index 1108222..0485cca 100644
--- a/source/i18n/gregocal.cpp
+++ b/source/i18n/gregocal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/gregoimp.cpp b/source/i18n/gregoimp.cpp
index 1b31360..e62044b 100644
--- a/source/i18n/gregoimp.cpp
+++ b/source/i18n/gregoimp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/gregoimp.h b/source/i18n/gregoimp.h
index 27303a6..b307416 100644
--- a/source/i18n/gregoimp.h
+++ b/source/i18n/gregoimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/hebrwcal.cpp b/source/i18n/hebrwcal.cpp
index 7bba33f..c025be4 100644
--- a/source/i18n/hebrwcal.cpp
+++ b/source/i18n/hebrwcal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/hebrwcal.h b/source/i18n/hebrwcal.h
index e0f291b..bde6466 100644
--- a/source/i18n/hebrwcal.h
+++ b/source/i18n/hebrwcal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/indiancal.cpp b/source/i18n/indiancal.cpp
index 3033c4f..278f9ef 100644
--- a/source/i18n/indiancal.cpp
+++ b/source/i18n/indiancal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2003-2014, International Business Machines Corporation
diff --git a/source/i18n/indiancal.h b/source/i18n/indiancal.h
index 12d46c7..b5e0f96 100644
--- a/source/i18n/indiancal.h
+++ b/source/i18n/indiancal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
diff --git a/source/i18n/inputext.cpp b/source/i18n/inputext.cpp
index c78828f..2d4f8a3 100644
--- a/source/i18n/inputext.cpp
+++ b/source/i18n/inputext.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/inputext.h b/source/i18n/inputext.h
index efffb61..8edc561 100644
--- a/source/i18n/inputext.h
+++ b/source/i18n/inputext.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/islamcal.cpp b/source/i18n/islamcal.cpp
index 123b245..4fd0e07 100644
--- a/source/i18n/islamcal.cpp
+++ b/source/i18n/islamcal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/islamcal.h b/source/i18n/islamcal.h
index 7f6faed..062733e 100644
--- a/source/i18n/islamcal.h
+++ b/source/i18n/islamcal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/japancal.cpp b/source/i18n/japancal.cpp
index 93ab800..17b4e07 100644
--- a/source/i18n/japancal.cpp
+++ b/source/i18n/japancal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/japancal.h b/source/i18n/japancal.h
index 6aef7ea..f05b2ac 100644
--- a/source/i18n/japancal.h
+++ b/source/i18n/japancal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/measfmt.cpp b/source/i18n/measfmt.cpp
index b5a9156..801dbe0 100644
--- a/source/i18n/measfmt.cpp
+++ b/source/i18n/measfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -26,6 +26,7 @@
 #include "unicode/decimfmt.h"
 #include "uresimp.h"
 #include "unicode/ures.h"
+#include "unicode/ustring.h"
 #include "ureslocs.h"
 #include "cstring.h"
 #include "mutex.h"
@@ -41,7 +42,7 @@
 #include "standardplural.h"
 #include "unifiedcache.h"
 
-#define MEAS_UNIT_COUNT 138
+#define MEAS_UNIT_COUNT 135
 #define WIDTH_INDEX_COUNT (UMEASFMT_WIDTH_NARROW + 1)
 
 U_NAMESPACE_BEGIN
@@ -288,10 +289,8 @@
             return;
         }
 
-        if (value.getType() == URES_STRING) {
-            // Units like "coordinate" that don't have plural variants
-            setFormatterIfAbsent(StandardPlural::OTHER, value, 0, errorCode);
-        } else if (value.getType() == URES_TABLE) {
+        // We no longer handle units like "coordinate" here (which do not have plural variants)
+        if (value.getType() == URES_TABLE) {
             // Units that have plural variants
             ResourceTable patternTableTable = value.getTable(errorCode);
             if (U_FAILURE(errorCode)) { return; }
@@ -333,6 +332,8 @@
                     consumeCompoundPattern(key, value, errorCode);
                 }
             }
+        } else if (uprv_strcmp(key, "coordinate") == 0) {
+            // special handling but we need to determine what that is
         } else {
             type = key;
             ResourceTable subtypeTable = value.getTable(errorCode);
diff --git a/source/i18n/measunit.cpp b/source/i18n/measunit.cpp
index d780b80..15497ef 100644
--- a/source/i18n/measunit.cpp
+++ b/source/i18n/measunit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -40,21 +40,20 @@
     16,
     20,
     24,
-    28,
-    288,
-    298,
-    309,
-    313,
-    319,
-    323,
-    342,
-    343,
-    354,
-    360,
-    365,
-    369,
-    373,
-    398
+    285,
+    295,
+    306,
+    310,
+    316,
+    320,
+    340,
+    341,
+    352,
+    358,
+    363,
+    367,
+    371,
+    396
 };
 
 static const int32_t gIndexes[] = {
@@ -64,21 +63,20 @@
     16,
     20,
     24,
-    28,
-    28,
-    38,
+    24,
+    34,
+    45,
     49,
-    53,
+    55,
     59,
-    63,
-    82,
-    83,
-    94,
-    100,
-    105,
-    109,
-    113,
-    138
+    79,
+    80,
+    91,
+    97,
+    102,
+    106,
+    110,
+    135
 };
 
 // Must be sorted alphabetically.
@@ -88,7 +86,6 @@
     "area",
     "concentr",
     "consumption",
-    "coordinate",
     "currency",
     "digital",
     "duration",
@@ -131,10 +128,6 @@
     "liter-per-kilometer",
     "mile-per-gallon",
     "mile-per-gallon-imperial",
-    "east",
-    "north",
-    "south",
-    "west",
     "ADP",
     "AED",
     "AFA",
@@ -178,6 +171,7 @@
     "BTN",
     "BWP",
     "BYB",
+    "BYN",
     "BYR",
     "BZD",
     "CAD",
@@ -448,6 +442,7 @@
     "nautical-mile",
     "parsec",
     "picometer",
+    "point",
     "yard",
     "lux",
     "carat",
@@ -509,14 +504,14 @@
 
 // Must be sorted by first value and then second value.
 static int32_t unitPerUnitToSingleUnit[][4] = {
-        {330, 300, 17, 0},
-        {332, 306, 17, 2},
-        {334, 300, 17, 3},
-        {334, 387, 4, 2},
-        {334, 388, 4, 3},
-        {348, 385, 3, 1},
-        {351, 11, 16, 4},
-        {390, 330, 4, 1}
+        {327, 297, 16, 0},
+        {329, 303, 16, 2},
+        {331, 297, 16, 3},
+        {331, 385, 4, 2},
+        {331, 386, 4, 3},
+        {346, 383, 3, 1},
+        {349, 11, 15, 4},
+        {388, 327, 4, 1}
 };
 
 MeasureUnit *MeasureUnit::createGForce(UErrorCode &status) {
@@ -615,460 +610,456 @@
     return MeasureUnit::create(4, 3, status);
 }
 
-MeasureUnit *MeasureUnit::createEast(UErrorCode &status) {
-    return MeasureUnit::create(5, 0, status);
-}
+// MeasureUnit *MeasureUnit::createEast(UErrorCode &status) {...}
 
-MeasureUnit *MeasureUnit::createNorth(UErrorCode &status) {
-    return MeasureUnit::create(5, 1, status);
-}
+// MeasureUnit *MeasureUnit::createNorth(UErrorCode &status) {...}
 
-MeasureUnit *MeasureUnit::createSouth(UErrorCode &status) {
-    return MeasureUnit::create(5, 2, status);
-}
+// MeasureUnit *MeasureUnit::createSouth(UErrorCode &status) {...}
 
-MeasureUnit *MeasureUnit::createWest(UErrorCode &status) {
-    return MeasureUnit::create(5, 3, status);
-}
+// MeasureUnit *MeasureUnit::createWest(UErrorCode &status) {...}
 
 MeasureUnit *MeasureUnit::createBit(UErrorCode &status) {
-    return MeasureUnit::create(7, 0, status);
+    return MeasureUnit::create(6, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createByte(UErrorCode &status) {
-    return MeasureUnit::create(7, 1, status);
+    return MeasureUnit::create(6, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createGigabit(UErrorCode &status) {
-    return MeasureUnit::create(7, 2, status);
+    return MeasureUnit::create(6, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createGigabyte(UErrorCode &status) {
-    return MeasureUnit::create(7, 3, status);
+    return MeasureUnit::create(6, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createKilobit(UErrorCode &status) {
-    return MeasureUnit::create(7, 4, status);
+    return MeasureUnit::create(6, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createKilobyte(UErrorCode &status) {
-    return MeasureUnit::create(7, 5, status);
+    return MeasureUnit::create(6, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createMegabit(UErrorCode &status) {
-    return MeasureUnit::create(7, 6, status);
+    return MeasureUnit::create(6, 6, status);
 }
 
 MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) {
-    return MeasureUnit::create(7, 7, status);
+    return MeasureUnit::create(6, 7, status);
 }
 
 MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
-    return MeasureUnit::create(7, 8, status);
+    return MeasureUnit::create(6, 8, status);
 }
 
 MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
-    return MeasureUnit::create(7, 9, status);
+    return MeasureUnit::create(6, 9, status);
 }
 
 MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) {
-    return MeasureUnit::create(8, 0, status);
+    return MeasureUnit::create(7, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createDay(UErrorCode &status) {
-    return MeasureUnit::create(8, 1, status);
+    return MeasureUnit::create(7, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createHour(UErrorCode &status) {
-    return MeasureUnit::create(8, 2, status);
+    return MeasureUnit::create(7, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMicrosecond(UErrorCode &status) {
-    return MeasureUnit::create(8, 3, status);
+    return MeasureUnit::create(7, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createMillisecond(UErrorCode &status) {
-    return MeasureUnit::create(8, 4, status);
+    return MeasureUnit::create(7, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createMinute(UErrorCode &status) {
-    return MeasureUnit::create(8, 5, status);
+    return MeasureUnit::create(7, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createMonth(UErrorCode &status) {
-    return MeasureUnit::create(8, 6, status);
+    return MeasureUnit::create(7, 6, status);
 }
 
 MeasureUnit *MeasureUnit::createNanosecond(UErrorCode &status) {
-    return MeasureUnit::create(8, 7, status);
+    return MeasureUnit::create(7, 7, status);
 }
 
 MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) {
-    return MeasureUnit::create(8, 8, status);
+    return MeasureUnit::create(7, 8, status);
 }
 
 MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) {
-    return MeasureUnit::create(8, 9, status);
+    return MeasureUnit::create(7, 9, status);
 }
 
 MeasureUnit *MeasureUnit::createYear(UErrorCode &status) {
-    return MeasureUnit::create(8, 10, status);
+    return MeasureUnit::create(7, 10, status);
 }
 
 MeasureUnit *MeasureUnit::createAmpere(UErrorCode &status) {
-    return MeasureUnit::create(9, 0, status);
+    return MeasureUnit::create(8, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createMilliampere(UErrorCode &status) {
-    return MeasureUnit::create(9, 1, status);
+    return MeasureUnit::create(8, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createOhm(UErrorCode &status) {
-    return MeasureUnit::create(9, 2, status);
+    return MeasureUnit::create(8, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createVolt(UErrorCode &status) {
-    return MeasureUnit::create(9, 3, status);
+    return MeasureUnit::create(8, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createCalorie(UErrorCode &status) {
-    return MeasureUnit::create(10, 0, status);
+    return MeasureUnit::create(9, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createFoodcalorie(UErrorCode &status) {
-    return MeasureUnit::create(10, 1, status);
+    return MeasureUnit::create(9, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createJoule(UErrorCode &status) {
-    return MeasureUnit::create(10, 2, status);
+    return MeasureUnit::create(9, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createKilocalorie(UErrorCode &status) {
-    return MeasureUnit::create(10, 3, status);
+    return MeasureUnit::create(9, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createKilojoule(UErrorCode &status) {
-    return MeasureUnit::create(10, 4, status);
+    return MeasureUnit::create(9, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createKilowattHour(UErrorCode &status) {
-    return MeasureUnit::create(10, 5, status);
+    return MeasureUnit::create(9, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createGigahertz(UErrorCode &status) {
-    return MeasureUnit::create(11, 0, status);
+    return MeasureUnit::create(10, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createHertz(UErrorCode &status) {
-    return MeasureUnit::create(11, 1, status);
+    return MeasureUnit::create(10, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createKilohertz(UErrorCode &status) {
-    return MeasureUnit::create(11, 2, status);
+    return MeasureUnit::create(10, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMegahertz(UErrorCode &status) {
-    return MeasureUnit::create(11, 3, status);
+    return MeasureUnit::create(10, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createAstronomicalUnit(UErrorCode &status) {
-    return MeasureUnit::create(12, 0, status);
+    return MeasureUnit::create(11, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createCentimeter(UErrorCode &status) {
-    return MeasureUnit::create(12, 1, status);
+    return MeasureUnit::create(11, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createDecimeter(UErrorCode &status) {
-    return MeasureUnit::create(12, 2, status);
+    return MeasureUnit::create(11, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createFathom(UErrorCode &status) {
-    return MeasureUnit::create(12, 3, status);
+    return MeasureUnit::create(11, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createFoot(UErrorCode &status) {
-    return MeasureUnit::create(12, 4, status);
+    return MeasureUnit::create(11, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createFurlong(UErrorCode &status) {
-    return MeasureUnit::create(12, 5, status);
+    return MeasureUnit::create(11, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createInch(UErrorCode &status) {
-    return MeasureUnit::create(12, 6, status);
+    return MeasureUnit::create(11, 6, status);
 }
 
 MeasureUnit *MeasureUnit::createKilometer(UErrorCode &status) {
-    return MeasureUnit::create(12, 7, status);
+    return MeasureUnit::create(11, 7, status);
 }
 
 MeasureUnit *MeasureUnit::createLightYear(UErrorCode &status) {
-    return MeasureUnit::create(12, 8, status);
+    return MeasureUnit::create(11, 8, status);
 }
 
 MeasureUnit *MeasureUnit::createMeter(UErrorCode &status) {
-    return MeasureUnit::create(12, 9, status);
+    return MeasureUnit::create(11, 9, status);
 }
 
 MeasureUnit *MeasureUnit::createMicrometer(UErrorCode &status) {
-    return MeasureUnit::create(12, 10, status);
+    return MeasureUnit::create(11, 10, status);
 }
 
 MeasureUnit *MeasureUnit::createMile(UErrorCode &status) {
-    return MeasureUnit::create(12, 11, status);
+    return MeasureUnit::create(11, 11, status);
 }
 
 MeasureUnit *MeasureUnit::createMileScandinavian(UErrorCode &status) {
-    return MeasureUnit::create(12, 12, status);
+    return MeasureUnit::create(11, 12, status);
 }
 
 MeasureUnit *MeasureUnit::createMillimeter(UErrorCode &status) {
-    return MeasureUnit::create(12, 13, status);
+    return MeasureUnit::create(11, 13, status);
 }
 
 MeasureUnit *MeasureUnit::createNanometer(UErrorCode &status) {
-    return MeasureUnit::create(12, 14, status);
+    return MeasureUnit::create(11, 14, status);
 }
 
 MeasureUnit *MeasureUnit::createNauticalMile(UErrorCode &status) {
-    return MeasureUnit::create(12, 15, status);
+    return MeasureUnit::create(11, 15, status);
 }
 
 MeasureUnit *MeasureUnit::createParsec(UErrorCode &status) {
-    return MeasureUnit::create(12, 16, status);
+    return MeasureUnit::create(11, 16, status);
 }
 
 MeasureUnit *MeasureUnit::createPicometer(UErrorCode &status) {
-    return MeasureUnit::create(12, 17, status);
+    return MeasureUnit::create(11, 17, status);
+}
+
+MeasureUnit *MeasureUnit::createPoint(UErrorCode &status) {
+    return MeasureUnit::create(11, 18, status);
 }
 
 MeasureUnit *MeasureUnit::createYard(UErrorCode &status) {
-    return MeasureUnit::create(12, 18, status);
+    return MeasureUnit::create(11, 19, status);
 }
 
 MeasureUnit *MeasureUnit::createLux(UErrorCode &status) {
-    return MeasureUnit::create(13, 0, status);
+    return MeasureUnit::create(12, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createCarat(UErrorCode &status) {
-    return MeasureUnit::create(14, 0, status);
+    return MeasureUnit::create(13, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createGram(UErrorCode &status) {
-    return MeasureUnit::create(14, 1, status);
+    return MeasureUnit::create(13, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createKilogram(UErrorCode &status) {
-    return MeasureUnit::create(14, 2, status);
+    return MeasureUnit::create(13, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMetricTon(UErrorCode &status) {
-    return MeasureUnit::create(14, 3, status);
+    return MeasureUnit::create(13, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createMicrogram(UErrorCode &status) {
-    return MeasureUnit::create(14, 4, status);
+    return MeasureUnit::create(13, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createMilligram(UErrorCode &status) {
-    return MeasureUnit::create(14, 5, status);
+    return MeasureUnit::create(13, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createOunce(UErrorCode &status) {
-    return MeasureUnit::create(14, 6, status);
+    return MeasureUnit::create(13, 6, status);
 }
 
 MeasureUnit *MeasureUnit::createOunceTroy(UErrorCode &status) {
-    return MeasureUnit::create(14, 7, status);
+    return MeasureUnit::create(13, 7, status);
 }
 
 MeasureUnit *MeasureUnit::createPound(UErrorCode &status) {
-    return MeasureUnit::create(14, 8, status);
+    return MeasureUnit::create(13, 8, status);
 }
 
 MeasureUnit *MeasureUnit::createStone(UErrorCode &status) {
-    return MeasureUnit::create(14, 9, status);
+    return MeasureUnit::create(13, 9, status);
 }
 
 MeasureUnit *MeasureUnit::createTon(UErrorCode &status) {
-    return MeasureUnit::create(14, 10, status);
+    return MeasureUnit::create(13, 10, status);
 }
 
 MeasureUnit *MeasureUnit::createGigawatt(UErrorCode &status) {
-    return MeasureUnit::create(15, 0, status);
+    return MeasureUnit::create(14, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createHorsepower(UErrorCode &status) {
-    return MeasureUnit::create(15, 1, status);
+    return MeasureUnit::create(14, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createKilowatt(UErrorCode &status) {
-    return MeasureUnit::create(15, 2, status);
+    return MeasureUnit::create(14, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMegawatt(UErrorCode &status) {
-    return MeasureUnit::create(15, 3, status);
+    return MeasureUnit::create(14, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createMilliwatt(UErrorCode &status) {
-    return MeasureUnit::create(15, 4, status);
+    return MeasureUnit::create(14, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) {
-    return MeasureUnit::create(15, 5, status);
+    return MeasureUnit::create(14, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
-    return MeasureUnit::create(16, 0, status);
+    return MeasureUnit::create(15, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
-    return MeasureUnit::create(16, 1, status);
+    return MeasureUnit::create(15, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
-    return MeasureUnit::create(16, 2, status);
+    return MeasureUnit::create(15, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
-    return MeasureUnit::create(16, 3, status);
+    return MeasureUnit::create(15, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
-    return MeasureUnit::create(16, 4, status);
+    return MeasureUnit::create(15, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) {
-    return MeasureUnit::create(17, 0, status);
+    return MeasureUnit::create(16, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createKnot(UErrorCode &status) {
-    return MeasureUnit::create(17, 1, status);
+    return MeasureUnit::create(16, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createMeterPerSecond(UErrorCode &status) {
-    return MeasureUnit::create(17, 2, status);
+    return MeasureUnit::create(16, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createMilePerHour(UErrorCode &status) {
-    return MeasureUnit::create(17, 3, status);
+    return MeasureUnit::create(16, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createCelsius(UErrorCode &status) {
-    return MeasureUnit::create(18, 0, status);
+    return MeasureUnit::create(17, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createFahrenheit(UErrorCode &status) {
-    return MeasureUnit::create(18, 1, status);
+    return MeasureUnit::create(17, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createGenericTemperature(UErrorCode &status) {
-    return MeasureUnit::create(18, 2, status);
+    return MeasureUnit::create(17, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createKelvin(UErrorCode &status) {
-    return MeasureUnit::create(18, 3, status);
+    return MeasureUnit::create(17, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createAcreFoot(UErrorCode &status) {
-    return MeasureUnit::create(19, 0, status);
+    return MeasureUnit::create(18, 0, status);
 }
 
 MeasureUnit *MeasureUnit::createBushel(UErrorCode &status) {
-    return MeasureUnit::create(19, 1, status);
+    return MeasureUnit::create(18, 1, status);
 }
 
 MeasureUnit *MeasureUnit::createCentiliter(UErrorCode &status) {
-    return MeasureUnit::create(19, 2, status);
+    return MeasureUnit::create(18, 2, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicCentimeter(UErrorCode &status) {
-    return MeasureUnit::create(19, 3, status);
+    return MeasureUnit::create(18, 3, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicFoot(UErrorCode &status) {
-    return MeasureUnit::create(19, 4, status);
+    return MeasureUnit::create(18, 4, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicInch(UErrorCode &status) {
-    return MeasureUnit::create(19, 5, status);
+    return MeasureUnit::create(18, 5, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicKilometer(UErrorCode &status) {
-    return MeasureUnit::create(19, 6, status);
+    return MeasureUnit::create(18, 6, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicMeter(UErrorCode &status) {
-    return MeasureUnit::create(19, 7, status);
+    return MeasureUnit::create(18, 7, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicMile(UErrorCode &status) {
-    return MeasureUnit::create(19, 8, status);
+    return MeasureUnit::create(18, 8, status);
 }
 
 MeasureUnit *MeasureUnit::createCubicYard(UErrorCode &status) {
-    return MeasureUnit::create(19, 9, status);
+    return MeasureUnit::create(18, 9, status);
 }
 
 MeasureUnit *MeasureUnit::createCup(UErrorCode &status) {
-    return MeasureUnit::create(19, 10, status);
+    return MeasureUnit::create(18, 10, status);
 }
 
 MeasureUnit *MeasureUnit::createCupMetric(UErrorCode &status) {
-    return MeasureUnit::create(19, 11, status);
+    return MeasureUnit::create(18, 11, status);
 }
 
 MeasureUnit *MeasureUnit::createDeciliter(UErrorCode &status) {
-    return MeasureUnit::create(19, 12, status);
+    return MeasureUnit::create(18, 12, status);
 }
 
 MeasureUnit *MeasureUnit::createFluidOunce(UErrorCode &status) {
-    return MeasureUnit::create(19, 13, status);
+    return MeasureUnit::create(18, 13, status);
 }
 
 MeasureUnit *MeasureUnit::createGallon(UErrorCode &status) {
-    return MeasureUnit::create(19, 14, status);
+    return MeasureUnit::create(18, 14, status);
 }
 
 MeasureUnit *MeasureUnit::createGallonImperial(UErrorCode &status) {
-    return MeasureUnit::create(19, 15, status);
+    return MeasureUnit::create(18, 15, status);
 }
 
 MeasureUnit *MeasureUnit::createHectoliter(UErrorCode &status) {
-    return MeasureUnit::create(19, 16, status);
+    return MeasureUnit::create(18, 16, status);
 }
 
 MeasureUnit *MeasureUnit::createLiter(UErrorCode &status) {
-    return MeasureUnit::create(19, 17, status);
+    return MeasureUnit::create(18, 17, status);
 }
 
 MeasureUnit *MeasureUnit::createMegaliter(UErrorCode &status) {
-    return MeasureUnit::create(19, 18, status);
+    return MeasureUnit::create(18, 18, status);
 }
 
 MeasureUnit *MeasureUnit::createMilliliter(UErrorCode &status) {
-    return MeasureUnit::create(19, 19, status);
+    return MeasureUnit::create(18, 19, status);
 }
 
 MeasureUnit *MeasureUnit::createPint(UErrorCode &status) {
-    return MeasureUnit::create(19, 20, status);
+    return MeasureUnit::create(18, 20, status);
 }
 
 MeasureUnit *MeasureUnit::createPintMetric(UErrorCode &status) {
-    return MeasureUnit::create(19, 21, status);
+    return MeasureUnit::create(18, 21, status);
 }
 
 MeasureUnit *MeasureUnit::createQuart(UErrorCode &status) {
-    return MeasureUnit::create(19, 22, status);
+    return MeasureUnit::create(18, 22, status);
 }
 
 MeasureUnit *MeasureUnit::createTablespoon(UErrorCode &status) {
-    return MeasureUnit::create(19, 23, status);
+    return MeasureUnit::create(18, 23, status);
 }
 
 MeasureUnit *MeasureUnit::createTeaspoon(UErrorCode &status) {
-    return MeasureUnit::create(19, 24, status);
+    return MeasureUnit::create(18, 24, status);
 }
 
 // End generated code
diff --git a/source/i18n/measure.cpp b/source/i18n/measure.cpp
index 3459e71..d9084f8 100644
--- a/source/i18n/measure.cpp
+++ b/source/i18n/measure.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/msgfmt.cpp b/source/i18n/msgfmt.cpp
index 4658528..94a0286 100644
--- a/source/i18n/msgfmt.cpp
+++ b/source/i18n/msgfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/i18n/msgfmt_impl.h b/source/i18n/msgfmt_impl.h
index d8e38f0..1cece1a 100644
--- a/source/i18n/msgfmt_impl.h
+++ b/source/i18n/msgfmt_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/name2uni.cpp b/source/i18n/name2uni.cpp
index 1451592..69e92b8 100644
--- a/source/i18n/name2uni.cpp
+++ b/source/i18n/name2uni.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/name2uni.h b/source/i18n/name2uni.h
index 2ba4c8f..4c743de 100644
--- a/source/i18n/name2uni.h
+++ b/source/i18n/name2uni.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/nfrlist.h b/source/i18n/nfrlist.h
index 6b5b1e6..3eb1882 100644
--- a/source/i18n/nfrlist.h
+++ b/source/i18n/nfrlist.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfrlist.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/nfrs.cpp b/source/i18n/nfrs.cpp
index 94777b8..05941e8 100644
--- a/source/i18n/nfrs.cpp
+++ b/source/i18n/nfrs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfrs.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -23,6 +23,7 @@
 #include "nfrule.h"
 #include "nfrlist.h"
 #include "patternprops.h"
+#include "putilimp.h"
 
 #ifdef RBNF_DEBUG
 #include "cmemory.h"
@@ -544,7 +545,7 @@
         // an explanation of the rollback rule).  If we do, roll back
         // one rule and return that one instead of the one we'd normally
         // return
-        if (result->shouldRollBack((double)number)) {
+        if (result->shouldRollBack(number)) {
             if (hi == 1) { // bad rule set, no prior rule to rollback to from this base
                 return NULL;
             }
@@ -829,18 +830,20 @@
     return result;
 }
 
-int64_t util64_pow(int32_t r, uint32_t e)  { 
-    if (r == 0) {
+int64_t util64_pow(int32_t base, uint16_t exponent)  { 
+    if (base == 0) {
         return 0;
-    } else if (e == 0) {
-        return 1;
-    } else {
-        int64_t n = r;
-        while (--e > 0) {
-            n *= r;
-        }
-        return n;
     }
+    int64_t result = 1;
+    int64_t pow = base;
+    while (exponent > 0) { 
+        if ((exponent & 1) == 1) { 
+            result *= pow; 
+        } 
+        pow *= pow; 
+        exponent >>= 1; 
+    } 
+    return result;
 }
 
 static const uint8_t asciiDigits[] = { 
diff --git a/source/i18n/nfrs.h b/source/i18n/nfrs.h
index b6aa579..d28c29c 100644
--- a/source/i18n/nfrs.h
+++ b/source/i18n/nfrs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfrs.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -88,7 +88,7 @@
 int64_t util64_fromDouble(double d);
 
 // raise radix to the power exponent, only non-negative exponents
-int64_t util64_pow(int32_t radix, uint32_t exponent);
+int64_t util64_pow(int32_t radix, uint16_t exponent);
 
 // convert n to digit string in buffer, return length of string
 uint32_t util64_tou(int64_t n, UChar* buffer, uint32_t buflen, uint32_t radix = 10, UBool raw = FALSE);
diff --git a/source/i18n/nfrule.cpp b/source/i18n/nfrule.cpp
index a188fe1..f24be11 100644
--- a/source/i18n/nfrule.cpp
+++ b/source/i18n/nfrule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfrule.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -30,6 +30,7 @@
 #include "nfrlist.h"
 #include "nfsubs.h"
 #include "patternprops.h"
+#include "putilimp.h"
 
 U_NAMESPACE_BEGIN
 
@@ -715,6 +716,12 @@
     result.append(gSemicolon);
 }
 
+int64_t NFRule::getDivisor() const
+{
+    return util64_pow(radix, exponent);
+}
+
+
 //-----------------------------------------------------------------------
 // formatting
 //-----------------------------------------------------------------------
@@ -749,7 +756,7 @@
             toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
         }
         toInsertInto.insert(pos,
-            rulePatternFormat->format((int32_t)(number/uprv_pow(radix, exponent)), status));
+            rulePatternFormat->format((int32_t)(number/util64_pow(radix, exponent)), status));
         if (pluralRuleStart > 0) {
             toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
         }
@@ -798,10 +805,10 @@
         if (0 <= pluralVal && pluralVal < 1) {
             // We're in a fractional rule, and we have to match the NumeratorSubstitution behavior.
             // 2.3 can become 0.2999999999999998 for the fraction due to rounding errors.
-            pluralVal = uprv_round(pluralVal * uprv_pow(radix, exponent));
+            pluralVal = uprv_round(pluralVal * util64_pow(radix, exponent));
         }
         else {
-            pluralVal = pluralVal / uprv_pow(radix, exponent);
+            pluralVal = pluralVal / util64_pow(radix, exponent);
         }
         toInsertInto.insert(pos, rulePatternFormat->format((int32_t)(pluralVal), status));
         if (pluralRuleStart > 0) {
@@ -827,7 +834,7 @@
 * this one in its list; false if it should use this rule
 */
 UBool
-NFRule::shouldRollBack(double number) const
+NFRule::shouldRollBack(int64_t number) const
 {
     // we roll back if the rule contains a modulus substitution,
     // the number being formatted is an even multiple of the rule's
@@ -847,7 +854,7 @@
     // multiple of 100.  This is called the "rollback rule."
     if ((sub1 != NULL && sub1->isModulusSubstitution()) || (sub2 != NULL && sub2->isModulusSubstitution())) {
         int64_t re = util64_pow(radix, exponent);
-        return uprv_fmod(number, (double)re) == 0 && (baseValue % re) != 0;
+        return (number % re) == 0 && (baseValue % re) != 0;
     }
     return FALSE;
 }
diff --git a/source/i18n/nfrule.h b/source/i18n/nfrule.h
index fe00cbe..809119c 100644
--- a/source/i18n/nfrule.h
+++ b/source/i18n/nfrule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -17,7 +17,6 @@
 #include "unicode/utypes.h"
 #include "unicode/uobject.h"
 #include "unicode/unistr.h"
-#include "putilimp.h"
 
 U_NAMESPACE_BEGIN
 
@@ -66,7 +65,7 @@
 
     UChar getDecimalPoint() const { return decimalPoint; }
 
-    double getDivisor() const { return uprv_pow(radix, exponent); }
+    int64_t getDivisor() const;
 
     void doFormat(int64_t number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
     void doFormat(double  number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
@@ -77,7 +76,7 @@
                   double upperBound,
                   Formattable& result) const;
 
-    UBool shouldRollBack(double number) const;
+    UBool shouldRollBack(int64_t number) const;
 
     void _appendRuleText(UnicodeString& result) const;
 
diff --git a/source/i18n/nfsubs.cpp b/source/i18n/nfsubs.cpp
index 16bbdc1..f77ebb1 100644
--- a/source/i18n/nfsubs.cpp
+++ b/source/i18n/nfsubs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfsubs.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -20,6 +20,7 @@
 
 #include "nfsubs.h"
 #include "digitlst.h"
+#include "fmtableimp.h"
 
 #if U_HAVE_RBNF
 
@@ -68,27 +69,24 @@
 SameValueSubstitution::~SameValueSubstitution() {}
 
 class MultiplierSubstitution : public NFSubstitution {
-    double divisor;
-    int64_t ldivisor;
+    int64_t divisor;
 
 public:
     MultiplierSubstitution(int32_t _pos,
-        double _divisor,
+        const NFRule *rule,
         const NFRuleSet* _ruleSet,
         const UnicodeString& description,
         UErrorCode& status)
-        : NFSubstitution(_pos, _ruleSet, description, status), divisor(_divisor)
+        : NFSubstitution(_pos, _ruleSet, description, status), divisor(rule->getDivisor())
     {
-        ldivisor = util64_fromDouble(divisor);
         if (divisor == 0) {
             status = U_PARSE_ERROR;
         }
     }
     virtual ~MultiplierSubstitution();
 
-    virtual void setDivisor(int32_t radix, int32_t exponent, UErrorCode& status) { 
-        divisor = uprv_pow(radix, exponent);
-        ldivisor = util64_fromDouble(divisor);
+    virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) { 
+        divisor = util64_pow(radix, exponent);
 
         if(divisor == 0) {
             status = U_PARSE_ERROR;
@@ -98,14 +96,14 @@
     virtual UBool operator==(const NFSubstitution& rhs) const;
 
     virtual int64_t transformNumber(int64_t number) const {
-        return number / ldivisor;
+        return number / divisor;
     }
 
     virtual double transformNumber(double number) const {
         if (getRuleSet()) {
             return uprv_floor(number / divisor);
         } else {
-            return number/divisor;
+            return number / divisor;
         }
     }
 
@@ -125,21 +123,19 @@
 MultiplierSubstitution::~MultiplierSubstitution() {}
 
 class ModulusSubstitution : public NFSubstitution {
-    double divisor;
-    int64_t  ldivisor;
+    int64_t  divisor;
     const NFRule* ruleToUse;
 public:
     ModulusSubstitution(int32_t pos,
-        double _divisor,
+        const NFRule* rule,
         const NFRule* rulePredecessor,
         const NFRuleSet* ruleSet,
         const UnicodeString& description,
         UErrorCode& status);
     virtual ~ModulusSubstitution();
 
-    virtual void setDivisor(int32_t radix, int32_t exponent, UErrorCode& status) { 
-        divisor = uprv_pow(radix, exponent);
-        ldivisor = util64_fromDouble(divisor);
+    virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) { 
+        divisor = util64_pow(radix, exponent);
 
         if (divisor == 0) {
             status = U_PARSE_ERROR;
@@ -151,7 +147,7 @@
     virtual void doSubstitution(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
     virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
 
-    virtual int64_t transformNumber(int64_t number) const { return number % ldivisor; }
+    virtual int64_t transformNumber(int64_t number) const { return number % divisor; }
     virtual double transformNumber(double number) const { return uprv_fmod(number, divisor); }
 
     virtual UBool doParse(const UnicodeString& text, 
@@ -353,7 +349,7 @@
 
         // otherwise, return a MultiplierSubstitution
         else {
-            return new MultiplierSubstitution(pos, rule->getDivisor(), ruleSet,
+            return new MultiplierSubstitution(pos, rule, ruleSet,
                 description, status);
         }
 
@@ -383,7 +379,7 @@
 
         // otherwise, return a ModulusSubstitution
         else {
-            return new ModulusSubstitution(pos, rule->getDivisor(), predecessor,
+            return new ModulusSubstitution(pos, rule, predecessor,
                 ruleSet, description, status);
         }
 
@@ -491,7 +487,7 @@
  * @param exponent The exponent of the divisor
  */
 void
-NFSubstitution::setDivisor(int32_t /*radix*/, int32_t /*exponent*/, UErrorCode& /*status*/) {
+NFSubstitution::setDivisor(int32_t /*radix*/, int16_t /*exponent*/, UErrorCode& /*status*/) {
   // a no-op for all substitutions except multiplier and modulus substitutions
 }
 
@@ -572,23 +568,38 @@
 NFSubstitution::doSubstitution(int64_t number, UnicodeString& toInsertInto, int32_t _pos, int32_t recursionCount, UErrorCode& status) const
 {
     if (ruleSet != NULL) {
-        // perform a transformation on the number that is dependent
+        // Perform a transformation on the number that is dependent
         // on the type of substitution this is, then just call its
         // rule set's format() method to format the result
         ruleSet->format(transformNumber(number), toInsertInto, _pos + this->pos, recursionCount, status);
     } else if (numberFormat != NULL) {
-        // or perform the transformation on the number (preserving
-        // the result's fractional part if the formatter it set
-        // to show it), then use that formatter's format() method
-        // to format the result
-        double numberToFormat = transformNumber((double)number);
-        if (numberFormat->getMaximumFractionDigits() == 0) {
-            numberToFormat = uprv_floor(numberToFormat);
-        }
+        if (number <= MAX_INT64_IN_DOUBLE) {
+            // or perform the transformation on the number (preserving
+            // the result's fractional part if the formatter it set
+            // to show it), then use that formatter's format() method
+            // to format the result
+            double numberToFormat = transformNumber((double)number);
+            if (numberFormat->getMaximumFractionDigits() == 0) {
+                numberToFormat = uprv_floor(numberToFormat);
+            }
 
-        UnicodeString temp;
-        numberFormat->format(numberToFormat, temp, status);
-        toInsertInto.insert(_pos + this->pos, temp);
+            UnicodeString temp;
+            numberFormat->format(numberToFormat, temp, status);
+            toInsertInto.insert(_pos + this->pos, temp);
+        } 
+        else { 
+            // We have gone beyond double precision. Something has to give. 
+            // We're favoring accuracy of the large number over potential rules 
+            // that round like a CompactDecimalFormat, which is not a common use case. 
+            // 
+            // Perform a transformation on the number that is dependent 
+            // on the type of substitution this is, then just call its 
+            // rule set's format() method to format the result 
+            int64_t numberToFormat = transformNumber(number); 
+            UnicodeString temp;
+            numberFormat->format(numberToFormat, temp, status);
+            toInsertInto.insert(_pos + this->pos, temp);
+        } 
     }
 }
 
@@ -809,22 +820,20 @@
  * regular rule.
  */
 ModulusSubstitution::ModulusSubstitution(int32_t _pos,
-                                         double _divisor,
+                                         const NFRule* rule,
                                          const NFRule* predecessor,
                                          const NFRuleSet* _ruleSet,
                                          const UnicodeString& description,
                                          UErrorCode& status)
  : NFSubstitution(_pos, _ruleSet, description, status)
- , divisor(_divisor)
+ , divisor(rule->getDivisor())
  , ruleToUse(NULL)
 {
-  ldivisor = util64_fromDouble(_divisor);
-
   // the owning rule's divisor controls the behavior of this
   // substitution: rather than keeping a backpointer to the rule,
   // we keep a copy of the divisor
 
-  if (ldivisor == 0) {
+  if (divisor == 0) {
       status = U_PARSE_ERROR;
   }
 
diff --git a/source/i18n/nfsubs.h b/source/i18n/nfsubs.h
index 62d963d..e8b2591 100644
--- a/source/i18n/nfsubs.h
+++ b/source/i18n/nfsubs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 ******************************************************************************
 *   file name:  nfsubs.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -91,7 +91,7 @@
      * @param radix The radix of the divisor
      * @param exponent The exponent of the divisor
      */
-    virtual void setDivisor(int32_t radix, int32_t exponent, UErrorCode& status);
+    virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status);
     
     /**
      * Replaces result with the string describing the substitution.
diff --git a/source/i18n/nortrans.cpp b/source/i18n/nortrans.cpp
index da02067..589c824 100644
--- a/source/i18n/nortrans.cpp
+++ b/source/i18n/nortrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/nortrans.h b/source/i18n/nortrans.h
index 79d1be3..d309452 100644
--- a/source/i18n/nortrans.h
+++ b/source/i18n/nortrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/nultrans.cpp b/source/i18n/nultrans.cpp
index 600873e..62d1290 100644
--- a/source/i18n/nultrans.cpp
+++ b/source/i18n/nultrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/nultrans.h b/source/i18n/nultrans.h
index a9856bd..a01b04e 100644
--- a/source/i18n/nultrans.h
+++ b/source/i18n/nultrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/numfmt.cpp b/source/i18n/numfmt.cpp
index ef08519..ea9aed1 100644
--- a/source/i18n/numfmt.cpp
+++ b/source/i18n/numfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -529,7 +529,7 @@
                       FieldPositionIterator* posIter,
                       UErrorCode& status) const {
     // DecimalFormat overrides this function, and handles DigitList based big decimals.
-    // Other subclasses (ChoiceFormat, RuleBasedNumberFormat) do not (yet) handle DigitLists,
+    // Other subclasses (ChoiceFormat) do not (yet) handle DigitLists,
     // so this default implementation falls back to formatting decimal numbers as doubles.
     if (U_FAILURE(status)) {
         return appendTo;
@@ -547,7 +547,7 @@
                      FieldPosition& pos,
                      UErrorCode &status) const { 
     // DecimalFormat overrides this function, and handles DigitList based big decimals.
-    // Other subclasses (ChoiceFormat, RuleBasedNumberFormat) do not (yet) handle DigitLists,
+    // Other subclasses (ChoiceFormat) do not (yet) handle DigitLists,
     // so this default implementation falls back to formatting decimal numbers as doubles.
     if (U_FAILURE(status)) {
         return appendTo;
@@ -1188,7 +1188,7 @@
     }
 }
 
-const UChar* NumberFormat::getCurrency() const {
+const char16_t* NumberFormat::getCurrency() const {
     return fCurrency;
 }
 
diff --git a/source/i18n/numsys.cpp b/source/i18n/numsys.cpp
index ce7c4d5..a05c7e0 100644
--- a/source/i18n/numsys.cpp
+++ b/source/i18n/numsys.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -230,7 +230,7 @@
     algorithmic = c;
 }
 
-void NumberingSystem::setDesc(UnicodeString d) {
+void NumberingSystem::setDesc(const UnicodeString &d) {
     desc.setTo(d);
 }
 void NumberingSystem::setName(const char *n) {
diff --git a/source/i18n/numsys_impl.h b/source/i18n/numsys_impl.h
index c4683b0..3e5cc33 100644
--- a/source/i18n/numsys_impl.h
+++ b/source/i18n/numsys_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/olsontz.cpp b/source/i18n/olsontz.cpp
index 65b532a..00a59d1 100644
--- a/source/i18n/olsontz.cpp
+++ b/source/i18n/olsontz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/olsontz.h b/source/i18n/olsontz.h
index 13b364d..ccc0cf9 100644
--- a/source/i18n/olsontz.h
+++ b/source/i18n/olsontz.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/persncal.cpp b/source/i18n/persncal.cpp
index 278273f..f66ac67 100644
--- a/source/i18n/persncal.cpp
+++ b/source/i18n/persncal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/i18n/persncal.h b/source/i18n/persncal.h
index e244fee..bcfd68a 100644
--- a/source/i18n/persncal.h
+++ b/source/i18n/persncal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/i18n/pluralaffix.cpp b/source/i18n/pluralaffix.cpp
index f6a51a7..ea40020 100644
--- a/source/i18n/pluralaffix.cpp
+++ b/source/i18n/pluralaffix.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/pluralaffix.h b/source/i18n/pluralaffix.h
index 81e9c7a..df86d8d 100644
--- a/source/i18n/pluralaffix.h
+++ b/source/i18n/pluralaffix.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/plurfmt.cpp b/source/i18n/plurfmt.cpp
index 8a000ce..e14ef6d 100644
--- a/source/i18n/plurfmt.cpp
+++ b/source/i18n/plurfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/plurrule.cpp b/source/i18n/plurrule.cpp
index cb5ee08..c4155cb 100644
--- a/source/i18n/plurrule.cpp
+++ b/source/i18n/plurrule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -17,6 +17,8 @@
 #include "unicode/plurrule.h"
 #include "unicode/upluralrules.h"
 #include "unicode/ures.h"
+#include "unicode/numfmt.h"
+#include "unicode/decimfmt.h"
 #include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -36,7 +38,6 @@
 #include "digitinterval.h" 
 #include "visibledigits.h"
 
-
 #if !UCONFIG_NO_FORMATTING
 
 U_NAMESPACE_BEGIN
@@ -247,6 +248,26 @@
 }
 
 UnicodeString
+PluralRules::select(const Formattable& obj, const NumberFormat& fmt, UErrorCode& status) const {
+    if (U_SUCCESS(status)) {
+        const DecimalFormat *decFmt = dynamic_cast<const DecimalFormat *>(&fmt);
+        if (decFmt != NULL) {
+            VisibleDigitsWithExponent digits;
+            decFmt->initVisibleDigitsWithExponent(obj, digits, status);
+            if (U_SUCCESS(status)) {
+                return select(digits);
+            }
+        } else {
+            double number = obj.getDouble(status);
+            if (U_SUCCESS(status)) {
+                return select(number);
+            }
+        }
+    }
+    return UnicodeString();
+}
+
+UnicodeString
 PluralRules::select(const FixedDecimal &number) const {
     if (mRules == NULL) {
         return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1);
diff --git a/source/i18n/plurrule_impl.h b/source/i18n/plurrule_impl.h
index c6e4767..9f5f66c 100644
--- a/source/i18n/plurrule_impl.h
+++ b/source/i18n/plurrule_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -24,6 +24,7 @@
 #include "unicode/format.h"
 #include "unicode/locid.h"
 #include "unicode/parseerr.h"
+#include "unicode/strenum.h"
 #include "unicode/ures.h"
 #include "uvector.h"
 #include "hash.h"
diff --git a/source/i18n/precision.cpp b/source/i18n/precision.cpp
index 086ce41..d9de8ad 100644
--- a/source/i18n/precision.cpp
+++ b/source/i18n/precision.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/precision.h b/source/i18n/precision.h
index 2131491..99f6d2d 100644
--- a/source/i18n/precision.h
+++ b/source/i18n/precision.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/quant.cpp b/source/i18n/quant.cpp
index 7387ce0..acf579e 100644
--- a/source/i18n/quant.cpp
+++ b/source/i18n/quant.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/quant.h b/source/i18n/quant.h
index 21adf19..1abb0db 100644
--- a/source/i18n/quant.h
+++ b/source/i18n/quant.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/quantityformatter.cpp b/source/i18n/quantityformatter.cpp
index c44357a..208e064 100644
--- a/source/i18n/quantityformatter.cpp
+++ b/source/i18n/quantityformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/quantityformatter.h b/source/i18n/quantityformatter.h
index f7bb6b5..ca3fb3d 100644
--- a/source/i18n/quantityformatter.h
+++ b/source/i18n/quantityformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/rbnf.cpp b/source/i18n/rbnf.cpp
index fc4fd43..f05c549 100644
--- a/source/i18n/rbnf.cpp
+++ b/source/i18n/rbnf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -27,12 +27,14 @@
 #include "unicode/udata.h"
 #include "unicode/udisplaycontext.h"
 #include "unicode/brkiter.h"
-#include "nfrs.h"
+#include "unicode/ucasemap.h"
 
 #include "cmemory.h"
 #include "cstring.h"
 #include "patternprops.h"
 #include "uresimp.h"
+#include "nfrs.h"
+#include "digitlst.h"
 
 // debugging
 // #define RBNF_DEBUG
@@ -1079,17 +1081,76 @@
 }
 
 UnicodeString&
+RuleBasedNumberFormat::format(const DigitList &number,
+                      UnicodeString &appendTo,
+                      FieldPositionIterator *posIter,
+                      UErrorCode &status) const {
+    if (U_FAILURE(status)) {
+        return appendTo;
+    }
+    DigitList copy(number);
+    if (copy.fitsIntoInt64(false)) {
+        format(((DigitList &)number).getInt64(), appendTo, posIter, status);
+    }
+    else {
+        copy.roundAtExponent(0);
+        if (copy.fitsIntoInt64(false)) {
+            format(number.getDouble(), appendTo, posIter, status);
+        }
+        else {
+            // We're outside of our normal range that this framework can handle.
+            // The DecimalFormat will provide more accurate results.
+
+            // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
+            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            Formattable f;
+            f.adoptDigitList(new DigitList(number));
+            decimalFormat->format(f, appendTo, posIter, status);
+            delete decimalFormat;
+        }
+    }
+    return appendTo;
+}
+
+
+UnicodeString&
+RuleBasedNumberFormat::format(const DigitList &number,
+                     UnicodeString& appendTo,
+                     FieldPosition& pos,
+                     UErrorCode &status) const {
+    if (U_FAILURE(status)) {
+        return appendTo;
+    }
+    DigitList copy(number);
+    if (copy.fitsIntoInt64(false)) {
+        format(((DigitList &)number).getInt64(), appendTo, pos, status);
+    }
+    else {
+        copy.roundAtExponent(0);
+        if (copy.fitsIntoInt64(false)) {
+            format(number.getDouble(), appendTo, pos, status);
+        }
+        else {
+            // We're outside of our normal range that this framework can handle.
+            // The DecimalFormat will provide more accurate results.
+
+            // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
+            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            Formattable f;
+            f.adoptDigitList(new DigitList(number));
+            decimalFormat->format(f, appendTo, pos, status);
+            delete decimalFormat;
+        }
+    }
+    return appendTo;
+}
+
+UnicodeString&
 RuleBasedNumberFormat::format(int32_t number,
                               UnicodeString& toAppendTo,
-                              FieldPosition& /* pos */) const
+                              FieldPosition& pos) const
 {
-    if (defaultRuleSet) {
-        UErrorCode status = U_ZERO_ERROR;
-        int32_t startPos = toAppendTo.length();
-        defaultRuleSet->format((int64_t)number, toAppendTo, toAppendTo.length(), 0, status);
-        adjustForCapitalizationContext(startPos, toAppendTo);
-    }
-    return toAppendTo;
+    return format((int64_t)number, toAppendTo, pos);
 }
 
 
@@ -1100,9 +1161,7 @@
 {
     if (defaultRuleSet) {
         UErrorCode status = U_ZERO_ERROR;
-        int32_t startPos = toAppendTo.length();
-        defaultRuleSet->format(number, toAppendTo, toAppendTo.length(), 0, status);
-        adjustForCapitalizationContext(startPos, toAppendTo);
+        format(number, defaultRuleSet, toAppendTo, status);
     }
     return toAppendTo;
 }
@@ -1114,11 +1173,11 @@
                               FieldPosition& /* pos */) const
 {
     int32_t startPos = toAppendTo.length();
+    UErrorCode status = U_ZERO_ERROR;
     if (defaultRuleSet) {
-        UErrorCode status = U_ZERO_ERROR;
         defaultRuleSet->format(number, toAppendTo, toAppendTo.length(), 0, status);
     }
-    return adjustForCapitalizationContext(startPos, toAppendTo);
+    return adjustForCapitalizationContext(startPos, toAppendTo, status);
 }
 
 
@@ -1126,24 +1185,10 @@
 RuleBasedNumberFormat::format(int32_t number,
                               const UnicodeString& ruleSetName,
                               UnicodeString& toAppendTo,
-                              FieldPosition& /* pos */,
+                              FieldPosition& pos,
                               UErrorCode& status) const
 {
-    // return format((int64_t)number, ruleSetName, toAppendTo, pos, status);
-    if (U_SUCCESS(status)) {
-        if (ruleSetName.indexOf(gPercentPercent, 2, 0) == 0) {
-            // throw new IllegalArgumentException("Can't use internal rule set");
-            status = U_ILLEGAL_ARGUMENT_ERROR;
-        } else {
-            NFRuleSet *rs = findRuleSet(ruleSetName, status);
-            if (rs) {
-                int32_t startPos = toAppendTo.length();
-                rs->format((int64_t)number, toAppendTo, toAppendTo.length(), 0, status);
-                adjustForCapitalizationContext(startPos, toAppendTo);
-            }
-        }
-    }
-    return toAppendTo;
+    return format((int64_t)number, ruleSetName, toAppendTo, pos, status);
 }
 
 
@@ -1161,9 +1206,7 @@
         } else {
             NFRuleSet *rs = findRuleSet(ruleSetName, status);
             if (rs) {
-                int32_t startPos = toAppendTo.length();
-                rs->format(number, toAppendTo, toAppendTo.length(), 0, status);
-                adjustForCapitalizationContext(startPos, toAppendTo);
+                format(number, rs, toAppendTo, status);
             }
         }
     }
@@ -1187,27 +1230,72 @@
             if (rs) {
                 int32_t startPos = toAppendTo.length();
                 rs->format(number, toAppendTo, toAppendTo.length(), 0, status);
-                adjustForCapitalizationContext(startPos, toAppendTo);
+                adjustForCapitalizationContext(startPos, toAppendTo, status);
             }
         }
     }
     return toAppendTo;
 }
 
+/**
+ * Bottleneck through which all the public format() methods
+ * that take a long pass. By the time we get here, we know
+ * which rule set we're using to do the formatting.
+ * @param number The number to format
+ * @param ruleSet The rule set to use to format the number
+ * @return The text that resulted from formatting the number
+ */
+UnicodeString&
+RuleBasedNumberFormat::format(int64_t number, NFRuleSet *ruleSet, UnicodeString& toAppendTo, UErrorCode& status) const
+{
+    // all API format() routines that take a double vector through
+    // here.  We have these two identical functions-- one taking a
+    // double and one taking a long-- the couple digits of precision
+    // that long has but double doesn't (both types are 8 bytes long,
+    // but double has to borrow some of the mantissa bits to hold
+    // the exponent).
+    // Create an empty string buffer where the result will
+    // be built, and pass it to the rule set (along with an insertion
+    // position of 0 and the number being formatted) to the rule set
+    // for formatting
+
+    if (U_SUCCESS(status)) {
+        if (number == U_INT64_MIN) {
+            // We can't handle this value right now. Provide an accurate default value.
+
+            // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
+            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            Formattable f;
+            FieldPosition pos(FieldPosition::DONT_CARE);
+            DigitList *digitList = new DigitList();
+            digitList->set(number);
+            f.adoptDigitList(digitList);
+            decimalFormat->format(f, toAppendTo, pos, status);
+            delete decimalFormat;
+        }
+        else {
+            int32_t startPos = toAppendTo.length();
+            ruleSet->format(number, toAppendTo, toAppendTo.length(), 0, status);
+            adjustForCapitalizationContext(startPos, toAppendTo, status);
+        }
+    }
+    return toAppendTo;
+}
+
 UnicodeString&
 RuleBasedNumberFormat::adjustForCapitalizationContext(int32_t startPos,
-                                                      UnicodeString& currentResult) const
+                                                      UnicodeString& currentResult,
+                                                      UErrorCode& status) const
 {
 #if !UCONFIG_NO_BREAK_ITERATION
-    if (startPos==0 && currentResult.length() > 0) {
+    UDisplayContext capitalizationContext = getContext(UDISPCTX_TYPE_CAPITALIZATION, status);
+    if (capitalizationContext != UDISPCTX_CAPITALIZATION_NONE && startPos == 0 && currentResult.length() > 0) {
         // capitalize currentResult according to context
         UChar32 ch = currentResult.char32At(0);
-        UErrorCode status = U_ZERO_ERROR;
-        UDisplayContext capitalizationContext = getContext(UDISPCTX_TYPE_CAPITALIZATION, status);
-        if ( u_islower(ch) && U_SUCCESS(status) && capitalizationBrkIter!= NULL &&
-              ( capitalizationContext==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
-                (capitalizationContext==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && capitalizationForUIListMenu) ||
-                (capitalizationContext==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && capitalizationForStandAlone)) ) {
+        if (u_islower(ch) && U_SUCCESS(status) && capitalizationBrkIter != NULL &&
+              ( capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
+                (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && capitalizationForUIListMenu) ||
+                (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_STANDALONE && capitalizationForStandAlone)) ) {
             // titlecase first word of currentResult, here use sentence iterator unlike current implementations
             // in LocaleDisplayNamesImpl::adjustForUsageAndContext and RelativeDateFormat::format
             currentResult.toTitle(capitalizationBrkIter, locale, U_TITLECASE_NO_LOWERCASE | U_TITLECASE_NO_BREAK_ADJUSTMENT);
diff --git a/source/i18n/rbt.cpp b/source/i18n/rbt.cpp
index 1e4b593..9cb1b0e 100644
--- a/source/i18n/rbt.cpp
+++ b/source/i18n/rbt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbt.h b/source/i18n/rbt.h
index 32ab156..b998c69 100644
--- a/source/i18n/rbt.h
+++ b/source/i18n/rbt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbt_data.cpp b/source/i18n/rbt_data.cpp
index 4f568de..4b596ac 100644
--- a/source/i18n/rbt_data.cpp
+++ b/source/i18n/rbt_data.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbt_data.h b/source/i18n/rbt_data.h
index 29e39a5..52a961d 100644
--- a/source/i18n/rbt_data.h
+++ b/source/i18n/rbt_data.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbt_pars.cpp b/source/i18n/rbt_pars.cpp
index 17f7526..6ed89b1 100644
--- a/source/i18n/rbt_pars.cpp
+++ b/source/i18n/rbt_pars.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/rbt_pars.h b/source/i18n/rbt_pars.h
index 1099dbf..61ce972 100644
--- a/source/i18n/rbt_pars.h
+++ b/source/i18n/rbt_pars.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbt_rule.cpp b/source/i18n/rbt_rule.cpp
index 36a07d9..3569e42 100644
--- a/source/i18n/rbt_rule.cpp
+++ b/source/i18n/rbt_rule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/rbt_rule.h b/source/i18n/rbt_rule.h
index 85937f3..5501981 100644
--- a/source/i18n/rbt_rule.h
+++ b/source/i18n/rbt_rule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) {1999-2001}, International Business Machines Corporation and others. All Rights Reserved.
diff --git a/source/i18n/rbt_set.cpp b/source/i18n/rbt_set.cpp
index 0385766..d8d0384 100644
--- a/source/i18n/rbt_set.cpp
+++ b/source/i18n/rbt_set.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/rbt_set.h b/source/i18n/rbt_set.h
index 573c079..b4b4678 100644
--- a/source/i18n/rbt_set.h
+++ b/source/i18n/rbt_set.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/rbtz.cpp b/source/i18n/rbtz.cpp
index 2b35c95..d98613f 100644
--- a/source/i18n/rbtz.cpp
+++ b/source/i18n/rbtz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/regexcmp.cpp b/source/i18n/regexcmp.cpp
index 2657cf3..4e9ad6a 100644
--- a/source/i18n/regexcmp.cpp
+++ b/source/i18n/regexcmp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  file:  regexcmp.cpp
@@ -2637,6 +2637,16 @@
 }
 
 
+// Increment with overflow check.
+// val and delta will both be positive.
+
+static int32_t safeIncrement(int32_t val, int32_t delta) {
+    if (INT32_MAX - val > delta) {
+        return val + delta;
+    } else {
+        return INT32_MAX;
+    }
+}
 
 
 //------------------------------------------------------------------------------
@@ -2737,7 +2747,7 @@
                 fRXPat->fInitialChars->add(URX_VAL(op));
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2750,7 +2760,7 @@
                 fRXPat->fInitialChars->addAll(*s);
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2787,7 +2797,7 @@
                 fRXPat->fInitialChars->addAll(*s);
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2802,7 +2812,7 @@
                 fRXPat->fInitialChars->addAll(sc);
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2819,7 +2829,7 @@
                  fRXPat->fInitialChars->addAll(s);
                  numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2836,7 +2846,7 @@
                 fRXPat->fInitialChars->addAll(s);
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2855,7 +2865,7 @@
                 fRXPat->fInitialChars->addAll(s);
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2879,7 +2889,7 @@
                 }
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2895,7 +2905,7 @@
                 fRXPat->fInitialChars->complement();
                 numInitialStrings += 2;
             }
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             atStart = FALSE;
             break;
 
@@ -2975,7 +2985,7 @@
                     fRXPat->fInitialStringLen = stringLen;
                 }
 
-                currentLen += stringLen;
+                currentLen = safeIncrement(currentLen, stringLen);
                 atStart = FALSE;
             }
             break;
@@ -3000,7 +3010,7 @@
                     fRXPat->fInitialChars->addAll(s);
                     numInitialStrings += 2;  // Matching on an initial string not possible.
                 }
-                currentLen += stringLen;
+                currentLen = safeIncrement(currentLen, stringLen);
                 atStart = FALSE;
             }
             break;
@@ -3258,7 +3268,7 @@
         case URX_DOTANY_ALL:    // . matches one or two.
         case URX_DOTANY:
         case URX_DOTANY_UNIX:
-            currentLen++;
+            currentLen = safeIncrement(currentLen, 1);
             break;
 
 
@@ -3310,7 +3320,7 @@
             {
                 loc++;
                 int32_t stringLenOp = (int32_t)fRXPat->fCompiledPat->elementAti(loc);
-                currentLen += URX_VAL(stringLenOp);
+                currentLen = safeIncrement(currentLen, URX_VAL(stringLenOp));
             }
             break;
 
@@ -3323,7 +3333,7 @@
                 //       Assume a min length of one for now.  A min length of zero causes
                 //        optimization failures for a pattern like "string"+
                 // currentLen += URX_VAL(stringLenOp);
-                currentLen += 1;
+                currentLen = safeIncrement(currentLen, 1);
             }
             break;
 
@@ -3433,18 +3443,6 @@
     return currentLen;
 }
 
-// Increment with overflow check.
-// val and delta will both be positive.
-
-static int32_t safeIncrement(int32_t val, int32_t delta) {
-    if (INT32_MAX - val > delta) {
-        return val + delta;
-    } else {
-        return INT32_MAX;
-    }
-}
-
-
 //------------------------------------------------------------------------------
 //
 //   maxMatchLength    Calculate the length of the longest string that could
diff --git a/source/i18n/regexcmp.h b/source/i18n/regexcmp.h
index 578fdcf..f2aeea9 100644
--- a/source/i18n/regexcmp.h
+++ b/source/i18n/regexcmp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  regexcmp.h
diff --git a/source/i18n/regexcst.h b/source/i18n/regexcst.h
index 8a5c829..8b12096 100644
--- a/source/i18n/regexcst.h
+++ b/source/i18n/regexcst.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //---------------------------------------------------------------------------------
 //
diff --git a/source/i18n/regeximp.cpp b/source/i18n/regeximp.cpp
index 6c476e7..d555669 100644
--- a/source/i18n/regeximp.cpp
+++ b/source/i18n/regeximp.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //   Copyright (C) 2012 International Business Machines Corporation
@@ -19,8 +19,7 @@
 U_NAMESPACE_BEGIN
 
 CaseFoldingUTextIterator::CaseFoldingUTextIterator(UText &text) :
-   fUText(text), fcsp(NULL), fFoldChars(NULL), fFoldLength(0) {
-   fcsp = ucase_getSingleton();
+   fUText(text), fFoldChars(NULL), fFoldLength(0) {
 }
 
 CaseFoldingUTextIterator::~CaseFoldingUTextIterator() {}
@@ -35,7 +34,7 @@
         if (originalC == U_SENTINEL) {
             return originalC;
         }
-        fFoldLength = ucase_toFullFolding(fcsp, originalC, &fFoldChars, U_FOLD_CASE_DEFAULT);
+        fFoldLength = ucase_toFullFolding(originalC, &fFoldChars, U_FOLD_CASE_DEFAULT);
         if (fFoldLength >= UCASE_MAX_STRING_LENGTH || fFoldLength < 0) {
             // input code point folds to a single code point, possibly itself.
             // See comment in ucase.h for explanation of return values from ucase_toFullFoldings.
@@ -65,8 +64,7 @@
 
 
 CaseFoldingUCharIterator::CaseFoldingUCharIterator(const UChar *chars, int64_t start, int64_t limit) :
-   fChars(chars), fIndex(start), fLimit(limit), fcsp(NULL), fFoldChars(NULL), fFoldLength(0) {
-   fcsp = ucase_getSingleton();
+   fChars(chars), fIndex(start), fLimit(limit), fFoldChars(NULL), fFoldLength(0) {
 }
 
 
@@ -84,7 +82,7 @@
         }
         U16_NEXT(fChars, fIndex, fLimit, originalC);
 
-        fFoldLength = ucase_toFullFolding(fcsp, originalC, &fFoldChars, U_FOLD_CASE_DEFAULT);
+        fFoldLength = ucase_toFullFolding(originalC, &fFoldChars, U_FOLD_CASE_DEFAULT);
         if (fFoldLength >= UCASE_MAX_STRING_LENGTH || fFoldLength < 0) {
             // input code point folds to a single code point, possibly itself.
             // See comment in ucase.h for explanation of return values from ucase_toFullFoldings.
diff --git a/source/i18n/regeximp.h b/source/i18n/regeximp.h
index b2fcc3f..51db882 100644
--- a/source/i18n/regeximp.h
+++ b/source/i18n/regeximp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //   Copyright (C) 2002-2015 International Business Machines Corporation
@@ -374,7 +374,6 @@
                                   //  folding of the same code point from the orignal UText.
       private:
         UText             &fUText;
-        const  UCaseProps *fcsp;
         const  UChar      *fFoldChars;
         int32_t            fFoldLength;
         int32_t            fFoldIndex;
@@ -404,7 +403,6 @@
         const  UChar      *fChars;
         int64_t            fIndex;
         int64_t            fLimit;
-        const  UCaseProps *fcsp;
         const  UChar      *fFoldChars;
         int32_t            fFoldLength;
         int32_t            fFoldIndex;
diff --git a/source/i18n/regexst.cpp b/source/i18n/regexst.cpp
index d62c529..4f12e87 100644
--- a/source/i18n/regexst.cpp
+++ b/source/i18n/regexst.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  regexst.h
diff --git a/source/i18n/regexst.h b/source/i18n/regexst.h
index a8705b0..3f54233 100644
--- a/source/i18n/regexst.h
+++ b/source/i18n/regexst.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  regexst.h
diff --git a/source/i18n/regextxt.cpp b/source/i18n/regextxt.cpp
index d6157f5..41bb4a9 100644
--- a/source/i18n/regextxt.cpp
+++ b/source/i18n/regextxt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/i18n/regextxt.h b/source/i18n/regextxt.h
index c5651ae..9cfabbe 100644
--- a/source/i18n/regextxt.h
+++ b/source/i18n/regextxt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/i18n/region.cpp b/source/i18n/region.cpp
index 81ddc23..66de31d 100644
--- a/source/i18n/region.cpp
+++ b/source/i18n/region.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/region_impl.h b/source/i18n/region_impl.h
index 817dd05..5e5a645 100644
--- a/source/i18n/region_impl.h
+++ b/source/i18n/region_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/reldatefmt.cpp b/source/i18n/reldatefmt.cpp
index dd4894e..38bfe96 100644
--- a/source/i18n/reldatefmt.cpp
+++ b/source/i18n/reldatefmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -15,6 +15,7 @@
 #if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
 
 #include "unicode/dtfmtsym.h"
+#include "unicode/ucasemap.h"
 #include "unicode/ureldatefmt.h"
 #include "unicode/udisplaycontext.h"
 #include "unicode/unum.h"
diff --git a/source/i18n/reldtfmt.cpp b/source/i18n/reldtfmt.cpp
index 00cafc8..839198b 100644
--- a/source/i18n/reldtfmt.cpp
+++ b/source/i18n/reldtfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -20,7 +20,7 @@
 #include "unicode/udisplaycontext.h"
 #include "unicode/uchar.h"
 #include "unicode/brkiter.h"
-
+#include "unicode/ucasemap.h"
 #include "reldtfmt.h"
 #include "cmemory.h"
 #include "uresimp.h"
diff --git a/source/i18n/reldtfmt.h b/source/i18n/reldtfmt.h
index 3a11dfb..c3b3044 100644
--- a/source/i18n/reldtfmt.h
+++ b/source/i18n/reldtfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/rematch.cpp b/source/i18n/rematch.cpp
index 0e795f2..53c801e 100644
--- a/source/i18n/rematch.cpp
+++ b/source/i18n/rematch.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **************************************************************************
@@ -3566,7 +3566,14 @@
                         }
                     }
                     fp = StateSave(fp, fp->fPatIdx, status);
+                } else {
+                    // Increment time-out counter. (StateSave() does it if count >= minCount)
+                    fTickCounter--;
+                    if (fTickCounter <= 0) {
+                        IncrementTime(status);    // Re-initializes fTickCounter
+                    }
                 }
+
                 fp->fPatIdx = opValue + 4;    // Loop back.
             }
             break;
@@ -3623,6 +3630,11 @@
                     // We haven't met the minimum number of matches yet.
                     //   Loop back for another one.
                     fp->fPatIdx = opValue + 4;    // Loop back.
+                    // Increment time-out counter. (StateSave() does it if count >= minCount)
+                    fTickCounter--;
+                    if (fTickCounter <= 0) {
+                        IncrementTime(status);    // Re-initializes fTickCounter
+                    }
                 } else {
                     // We do have the minimum number of matches.
 
@@ -5099,6 +5111,12 @@
                         }
                     }
                     fp = StateSave(fp, fp->fPatIdx, status);
+                } else {
+                    // Increment time-out counter. (StateSave() does it if count >= minCount)
+                    fTickCounter--;
+                    if (fTickCounter <= 0) {
+                        IncrementTime(status);    // Re-initializes fTickCounter
+                    }
                 }
                 fp->fPatIdx = opValue + 4;    // Loop back.
             }
@@ -5156,6 +5174,10 @@
                     // We haven't met the minimum number of matches yet.
                     //   Loop back for another one.
                     fp->fPatIdx = opValue + 4;    // Loop back.
+                    fTickCounter--;
+                    if (fTickCounter <= 0) {
+                        IncrementTime(status);    // Re-initializes fTickCounter
+                    }
                 } else {
                     // We do have the minimum number of matches.
 
diff --git a/source/i18n/remtrans.cpp b/source/i18n/remtrans.cpp
index 89837f9..70a6ed3 100644
--- a/source/i18n/remtrans.cpp
+++ b/source/i18n/remtrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/remtrans.h b/source/i18n/remtrans.h
index a563578..ed038d5 100644
--- a/source/i18n/remtrans.h
+++ b/source/i18n/remtrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/repattrn.cpp b/source/i18n/repattrn.cpp
index 817df2e..b8aee1a 100644
--- a/source/i18n/repattrn.cpp
+++ b/source/i18n/repattrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 //
 //  file:  repattrn.cpp
diff --git a/source/i18n/rulebasedcollator.cpp b/source/i18n/rulebasedcollator.cpp
index 4852667..ab65f10 100644
--- a/source/i18n/rulebasedcollator.cpp
+++ b/source/i18n/rulebasedcollator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/scientificnumberformatter.cpp b/source/i18n/scientificnumberformatter.cpp
index 56a43f9..adf032d 100644
--- a/source/i18n/scientificnumberformatter.cpp
+++ b/source/i18n/scientificnumberformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/scriptset.cpp b/source/i18n/scriptset.cpp
index ff853b8..073e839 100644
--- a/source/i18n/scriptset.cpp
+++ b/source/i18n/scriptset.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/scriptset.h b/source/i18n/scriptset.h
index e8de3b9..385c3e3 100644
--- a/source/i18n/scriptset.h
+++ b/source/i18n/scriptset.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/search.cpp b/source/i18n/search.cpp
index f6dbb49..f944b68 100644
--- a/source/i18n/search.cpp
+++ b/source/i18n/search.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/selfmt.cpp b/source/i18n/selfmt.cpp
index 041fea5..29aee36 100644
--- a/source/i18n/selfmt.cpp
+++ b/source/i18n/selfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/i18n/selfmtimpl.h b/source/i18n/selfmtimpl.h
index 3a5d55a..a36d1a5 100644
--- a/source/i18n/selfmtimpl.h
+++ b/source/i18n/selfmtimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/i18n/sharedbreakiterator.cpp b/source/i18n/sharedbreakiterator.cpp
index ca962c6..82f482b 100644
--- a/source/i18n/sharedbreakiterator.cpp
+++ b/source/i18n/sharedbreakiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/sharedbreakiterator.h b/source/i18n/sharedbreakiterator.h
index 58be1f6..b6d67bc 100644
--- a/source/i18n/sharedbreakiterator.h
+++ b/source/i18n/sharedbreakiterator.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/sharedcalendar.h b/source/i18n/sharedcalendar.h
index f6d97b5..1526f92 100644
--- a/source/i18n/sharedcalendar.h
+++ b/source/i18n/sharedcalendar.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/shareddateformatsymbols.h b/source/i18n/shareddateformatsymbols.h
index a11a8a3..ca9a210 100644
--- a/source/i18n/shareddateformatsymbols.h
+++ b/source/i18n/shareddateformatsymbols.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/sharednumberformat.h b/source/i18n/sharednumberformat.h
index fcb618a..a7e105b 100644
--- a/source/i18n/sharednumberformat.h
+++ b/source/i18n/sharednumberformat.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/sharedpluralrules.h b/source/i18n/sharedpluralrules.h
index faed6de..28d8b25 100644
--- a/source/i18n/sharedpluralrules.h
+++ b/source/i18n/sharedpluralrules.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/significantdigitinterval.h b/source/i18n/significantdigitinterval.h
index 336af78..fc23370 100644
--- a/source/i18n/significantdigitinterval.h
+++ b/source/i18n/significantdigitinterval.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/simpletz.cpp b/source/i18n/simpletz.cpp
index a06a80f..e17d14c 100644
--- a/source/i18n/simpletz.cpp
+++ b/source/i18n/simpletz.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -1189,13 +1189,22 @@
         // Create a TimeZoneRule for initial time
         if (firstStdStart < firstDstStart) {
             initialRule = new InitialTimeZoneRule(tzid+UnicodeString(DST_STR), getRawOffset(), dstRule->getDSTSavings());
+            if (initialRule == NULL) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                deleteTransitionRules();
+                return;
+            }
             firstTransition = new TimeZoneTransition(firstStdStart, *initialRule, *stdRule);
         } else {
             initialRule = new InitialTimeZoneRule(tzid+UnicodeString(STD_STR), getRawOffset(), 0);
+            if (initialRule == NULL) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                deleteTransitionRules();
+                return;
+            }
             firstTransition = new TimeZoneTransition(firstDstStart, *initialRule, *dstRule);
         }
-        // Check for null pointers.
-        if (initialRule == NULL || firstTransition == NULL) {
+        if (firstTransition == NULL) {
             status = U_MEMORY_ALLOCATION_ERROR;
             deleteTransitionRules();
             return;
diff --git a/source/i18n/smallintformatter.cpp b/source/i18n/smallintformatter.cpp
index 297786f..72ffffc 100644
--- a/source/i18n/smallintformatter.cpp
+++ b/source/i18n/smallintformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/smallintformatter.h b/source/i18n/smallintformatter.h
index abf2b4b..b309b55 100644
--- a/source/i18n/smallintformatter.h
+++ b/source/i18n/smallintformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/smpdtfmt.cpp b/source/i18n/smpdtfmt.cpp
index 85cc162..3c06704 100644
--- a/source/i18n/smpdtfmt.cpp
+++ b/source/i18n/smpdtfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -48,6 +48,7 @@
 #include "unicode/simpletz.h"
 #include "unicode/rbtz.h"
 #include "unicode/tzfmt.h"
+#include "unicode/ucasemap.h"
 #include "unicode/utf16.h"
 #include "unicode/vtzone.h"
 #include "unicode/udisplaycontext.h"
@@ -64,6 +65,7 @@
 #include <float.h>
 #include "smpdtfst.h"
 #include "sharednumberformat.h"
+#include "ucasemap_imp.h"
 #include "ustr_imp.h"
 #include "charstr.h"
 #include "uvector.h"
diff --git a/source/i18n/smpdtfst.cpp b/source/i18n/smpdtfst.cpp
index fbb2ab5..db59a4b 100644
--- a/source/i18n/smpdtfst.cpp
+++ b/source/i18n/smpdtfst.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/smpdtfst.h b/source/i18n/smpdtfst.h
index 586b4e6..cc80909 100644
--- a/source/i18n/smpdtfst.h
+++ b/source/i18n/smpdtfst.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -16,6 +16,7 @@
 #ifndef SMPDTFST_H
 #define SMPDTFST_H
 
+#include "unicode/uobject.h"
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_FORMATTING
diff --git a/source/i18n/sortkey.cpp b/source/i18n/sortkey.cpp
index f6f1873..1228948 100644
--- a/source/i18n/sortkey.cpp
+++ b/source/i18n/sortkey.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/standardplural.cpp b/source/i18n/standardplural.cpp
index c39bae1..0391034 100644
--- a/source/i18n/standardplural.cpp
+++ b/source/i18n/standardplural.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/standardplural.h b/source/i18n/standardplural.h
index 56c63c3..33e1d60 100644
--- a/source/i18n/standardplural.h
+++ b/source/i18n/standardplural.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/strmatch.cpp b/source/i18n/strmatch.cpp
index a04f57f..aa9e7ae 100644
--- a/source/i18n/strmatch.cpp
+++ b/source/i18n/strmatch.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/strmatch.h b/source/i18n/strmatch.h
index 83112ee..8ebdb30 100644
--- a/source/i18n/strmatch.h
+++ b/source/i18n/strmatch.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2001-2011, International Business Machines Corporation
diff --git a/source/i18n/strrepl.cpp b/source/i18n/strrepl.cpp
index d76b652..0eef3d4 100644
--- a/source/i18n/strrepl.cpp
+++ b/source/i18n/strrepl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/strrepl.h b/source/i18n/strrepl.h
index a452db9..feec058 100644
--- a/source/i18n/strrepl.h
+++ b/source/i18n/strrepl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/stsearch.cpp b/source/i18n/stsearch.cpp
index 6daee6e..c556567 100644
--- a/source/i18n/stsearch.cpp
+++ b/source/i18n/stsearch.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/taiwncal.cpp b/source/i18n/taiwncal.cpp
index 81c539e..dfd5f3c 100644
--- a/source/i18n/taiwncal.cpp
+++ b/source/i18n/taiwncal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/taiwncal.h b/source/i18n/taiwncal.h
index 64e4be3..a1c25df 100644
--- a/source/i18n/taiwncal.h
+++ b/source/i18n/taiwncal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/timezone.cpp b/source/i18n/timezone.cpp
index a161745..113f61c 100644
--- a/source/i18n/timezone.cpp
+++ b/source/i18n/timezone.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/titletrn.cpp b/source/i18n/titletrn.cpp
index b589616..9b37d7f 100644
--- a/source/i18n/titletrn.cpp
+++ b/source/i18n/titletrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -97,7 +97,7 @@
     int32_t start;
     for (start = offsets.start - 1; start >= offsets.contextStart; start -= U16_LENGTH(c)) {
         c = text.char32At(start);
-        type=ucase_getTypeOrIgnorable(fCsp, c);
+        type=ucase_getTypeOrIgnorable(c);
         if(type>0) { // cased
             doTitle=FALSE;
             break;
@@ -118,19 +118,19 @@
 
     UnicodeString tmp;
     const UChar *s;
-    int32_t textPos, delta, result, locCache=0;
+    int32_t textPos, delta, result;
 
     for(textPos=offsets.start; textPos<offsets.limit;) {
         csc.cpStart=textPos;
         c=text.char32At(textPos);
         csc.cpLimit=textPos+=U16_LENGTH(c);
 
-        type=ucase_getTypeOrIgnorable(fCsp, c);
+        type=ucase_getTypeOrIgnorable(c);
         if(type>=0) { // not case-ignorable
             if(doTitle) {
-                result=ucase_toFullTitle(fCsp, c, utrans_rep_caseContextIterator, &csc, &s, "", &locCache);
+                result=ucase_toFullTitle(c, utrans_rep_caseContextIterator, &csc, &s, UCASE_LOC_ROOT);
             } else {
-                result=ucase_toFullLower(fCsp, c, utrans_rep_caseContextIterator, &csc, &s, "", &locCache);
+                result=ucase_toFullLower(c, utrans_rep_caseContextIterator, &csc, &s, UCASE_LOC_ROOT);
             }
             doTitle = (UBool)(type==0); // doTitle=isUncased
 
diff --git a/source/i18n/titletrn.h b/source/i18n/titletrn.h
index a6380e3..166378f 100644
--- a/source/i18n/titletrn.h
+++ b/source/i18n/titletrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/tmunit.cpp b/source/i18n/tmunit.cpp
index b6db309..bf078d9 100644
--- a/source/i18n/tmunit.cpp
+++ b/source/i18n/tmunit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/tmutamt.cpp b/source/i18n/tmutamt.cpp
index 6386e23..a69fe57 100644
--- a/source/i18n/tmutamt.cpp
+++ b/source/i18n/tmutamt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/tmutfmt.cpp b/source/i18n/tmutfmt.cpp
index 1669546..50dac8b 100644
--- a/source/i18n/tmutfmt.cpp
+++ b/source/i18n/tmutfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/tolowtrn.cpp b/source/i18n/tolowtrn.cpp
index 6d1bc31..6dae6f1 100644
--- a/source/i18n/tolowtrn.cpp
+++ b/source/i18n/tolowtrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/tolowtrn.h b/source/i18n/tolowtrn.h
index 616e598..e311431 100644
--- a/source/i18n/tolowtrn.h
+++ b/source/i18n/tolowtrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/toupptrn.cpp b/source/i18n/toupptrn.cpp
index a34792e..098dba9 100644
--- a/source/i18n/toupptrn.cpp
+++ b/source/i18n/toupptrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/toupptrn.h b/source/i18n/toupptrn.h
index eae44e7..677a04e 100644
--- a/source/i18n/toupptrn.h
+++ b/source/i18n/toupptrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/translit.cpp b/source/i18n/translit.cpp
index 8a2f98b..2bc20bd 100644
--- a/source/i18n/translit.cpp
+++ b/source/i18n/translit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/transreg.cpp b/source/i18n/transreg.cpp
index 7c29f25..3dadf79 100644
--- a/source/i18n/transreg.cpp
+++ b/source/i18n/transreg.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/transreg.h b/source/i18n/transreg.h
index 334963f..6fc35c8 100644
--- a/source/i18n/transreg.h
+++ b/source/i18n/transreg.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/tridpars.cpp b/source/i18n/tridpars.cpp
index f5d2799..b276636 100644
--- a/source/i18n/tridpars.cpp
+++ b/source/i18n/tridpars.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/tridpars.h b/source/i18n/tridpars.h
index 63cfdff..5e42f06 100644
--- a/source/i18n/tridpars.h
+++ b/source/i18n/tridpars.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **************************************************************************
diff --git a/source/i18n/tzfmt.cpp b/source/i18n/tzfmt.cpp
index 161675a..7f26d19 100644
--- a/source/i18n/tzfmt.cpp
+++ b/source/i18n/tzfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -14,8 +14,10 @@
 #include "unicode/calendar.h"
 #include "unicode/tzfmt.h"
 #include "unicode/numsys.h"
+#include "unicode/strenum.h"
 #include "unicode/uchar.h"
 #include "unicode/udat.h"
+#include "unicode/ustring.h"
 #include "tzgnames.h"
 #include "cmemory.h"
 #include "cstring.h"
diff --git a/source/i18n/tzgnames.cpp b/source/i18n/tzgnames.cpp
index 4fc726e..b14e983 100644
--- a/source/i18n/tzgnames.cpp
+++ b/source/i18n/tzgnames.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -18,6 +18,7 @@
 #include "unicode/rbtz.h"
 #include "unicode/simpleformatter.h"
 #include "unicode/simpletz.h"
+#include "unicode/strenum.h"
 #include "unicode/vtzone.h"
 
 #include "cmemory.h"
diff --git a/source/i18n/tzgnames.h b/source/i18n/tzgnames.h
index 61a0984..2bd7613 100644
--- a/source/i18n/tzgnames.h
+++ b/source/i18n/tzgnames.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/tznames.cpp b/source/i18n/tznames.cpp
index 6aefd13..689fdeb 100644
--- a/source/i18n/tznames.cpp
+++ b/source/i18n/tznames.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/tznames_impl.cpp b/source/i18n/tznames_impl.cpp
index f52d5c2..1b26318 100644
--- a/source/i18n/tznames_impl.cpp
+++ b/source/i18n/tznames_impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -15,6 +15,7 @@
 
 #if !UCONFIG_NO_FORMATTING
 
+#include "unicode/strenum.h"
 #include "unicode/ustring.h"
 #include "unicode/timezone.h"
 
diff --git a/source/i18n/tznames_impl.h b/source/i18n/tznames_impl.h
index 6b913bb..9251f9e 100644
--- a/source/i18n/tznames_impl.h
+++ b/source/i18n/tznames_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/tzrule.cpp b/source/i18n/tzrule.cpp
index 2cfd7ee..f4ede7c 100644
--- a/source/i18n/tzrule.cpp
+++ b/source/i18n/tzrule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/tztrans.cpp b/source/i18n/tztrans.cpp
index 76e259c..3199b78 100644
--- a/source/i18n/tztrans.cpp
+++ b/source/i18n/tztrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ucal.cpp b/source/i18n/ucal.cpp
index ccca97b..282d84c 100644
--- a/source/i18n/ucal.cpp
+++ b/source/i18n/ucal.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ucln_in.cpp b/source/i18n/ucln_in.cpp
index 8139208..f29cbe4 100644
--- a/source/i18n/ucln_in.cpp
+++ b/source/i18n/ucln_in.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *                                                                            *
 ******************************************************************************
 *   file name:  ucln_in.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ucln_in.h b/source/i18n/ucln_in.h
index b609fce..35a8a23 100644
--- a/source/i18n/ucln_in.h
+++ b/source/i18n/ucln_in.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -6,7 +6,7 @@
 *                Corporation and others. All Rights Reserved.
 ******************************************************************************
 *   file name:  ucln_in.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ucol.cpp b/source/i18n/ucol.cpp
index 4f83794..e53dc92 100644
--- a/source/i18n/ucol.cpp
+++ b/source/i18n/ucol.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucol.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ucol_imp.h b/source/i18n/ucol_imp.h
index 7c9e8f6..a251fc4 100644
--- a/source/i18n/ucol_imp.h
+++ b/source/i18n/ucol_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -10,7 +10,7 @@
 *
 * Private implementation header for C collation
 *   file name:  ucol_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ucol_res.cpp b/source/i18n/ucol_res.cpp
index 314b766..d159702 100644
--- a/source/i18n/ucol_res.cpp
+++ b/source/i18n/ucol_res.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucol_res.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -680,6 +680,7 @@
         return NULL;
     }
     memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));
+    ulist_resetList(sink.values);  // Initialize the iterator.
     en->context = sink.values;
     sink.values = NULL;  // Avoid deletion in the sink destructor.
     return en;
diff --git a/source/i18n/ucol_sit.cpp b/source/i18n/ucol_sit.cpp
index 491fc85..ad064f2 100644
--- a/source/i18n/ucol_sit.cpp
+++ b/source/i18n/ucol_sit.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ucol_sit.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ucoleitr.cpp b/source/i18n/ucoleitr.cpp
index 9c73afd..596ce03 100644
--- a/source/i18n/ucoleitr.cpp
+++ b/source/i18n/ucoleitr.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/i18n/ucsdet.cpp b/source/i18n/ucsdet.cpp
index dd69d9f..46f69cf 100644
--- a/source/i18n/ucsdet.cpp
+++ b/source/i18n/ucsdet.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/udat.cpp b/source/i18n/udat.cpp
index 3b8a36a..5e06dd6 100644
--- a/source/i18n/udat.cpp
+++ b/source/i18n/udat.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/udateintervalformat.cpp b/source/i18n/udateintervalformat.cpp
index e6eec44..44ba6b9 100644
--- a/source/i18n/udateintervalformat.cpp
+++ b/source/i18n/udateintervalformat.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/udatpg.cpp b/source/i18n/udatpg.cpp
index d8824af..9ba82b5 100644
--- a/source/i18n/udatpg.cpp
+++ b/source/i18n/udatpg.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  udatpg.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/ufieldpositer.cpp b/source/i18n/ufieldpositer.cpp
index b1c9c64..64de856 100644
--- a/source/i18n/ufieldpositer.cpp
+++ b/source/i18n/ufieldpositer.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/uitercollationiterator.cpp b/source/i18n/uitercollationiterator.cpp
index eb71725..103c91c 100644
--- a/source/i18n/uitercollationiterator.cpp
+++ b/source/i18n/uitercollationiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/uitercollationiterator.h b/source/i18n/uitercollationiterator.h
index da9f8d3..62b6f83 100644
--- a/source/i18n/uitercollationiterator.h
+++ b/source/i18n/uitercollationiterator.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ulocdata.c b/source/i18n/ulocdata.cpp
similarity index 98%
rename from source/i18n/ulocdata.c
rename to source/i18n/ulocdata.cpp
index 587a743..d406b8e 100644
--- a/source/i18n/ulocdata.c
+++ b/source/i18n/ulocdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *                                                                            *
 ******************************************************************************
 *   file name:  ulocdata.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/umsg.cpp b/source/i18n/umsg.cpp
index 179ab84..623e069 100644
--- a/source/i18n/umsg.cpp
+++ b/source/i18n/umsg.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  umsg.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/umsg_imp.h b/source/i18n/umsg_imp.h
index e3538d3..43ef1c7 100644
--- a/source/i18n/umsg_imp.h
+++ b/source/i18n/umsg_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  umsg_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/unesctrn.cpp b/source/i18n/unesctrn.cpp
index 88a78d6..86c55d1 100644
--- a/source/i18n/unesctrn.cpp
+++ b/source/i18n/unesctrn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/unesctrn.h b/source/i18n/unesctrn.h
index 7ae8302..e8e171f 100644
--- a/source/i18n/unesctrn.h
+++ b/source/i18n/unesctrn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
diff --git a/source/i18n/uni2name.cpp b/source/i18n/uni2name.cpp
index 44abbea..a56f1a6 100644
--- a/source/i18n/uni2name.cpp
+++ b/source/i18n/uni2name.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/uni2name.h b/source/i18n/uni2name.h
index 7d85113..4d6eaa0 100644
--- a/source/i18n/uni2name.h
+++ b/source/i18n/uni2name.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/alphaindex.h b/source/i18n/unicode/alphaindex.h
index c7b361f..1442f75 100644
--- a/source/i18n/unicode/alphaindex.h
+++ b/source/i18n/unicode/alphaindex.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -15,6 +15,7 @@
 #include "unicode/utypes.h"
 #include "unicode/uobject.h"
 #include "unicode/locid.h"
+#include "unicode/unistr.h"
 
 #if !UCONFIG_NO_COLLATION
 
diff --git a/source/i18n/unicode/basictz.h b/source/i18n/unicode/basictz.h
index 90073b2..3541207 100644
--- a/source/i18n/unicode/basictz.h
+++ b/source/i18n/unicode/basictz.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/calendar.h b/source/i18n/unicode/calendar.h
index 8776e21..6ebf539 100644
--- a/source/i18n/unicode/calendar.h
+++ b/source/i18n/unicode/calendar.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/choicfmt.h b/source/i18n/unicode/choicfmt.h
index ab3c28f..c9f0f11 100644
--- a/source/i18n/unicode/choicfmt.h
+++ b/source/i18n/unicode/choicfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/coleitr.h b/source/i18n/unicode/coleitr.h
index 4feaa1b..f2bd2ec 100644
--- a/source/i18n/unicode/coleitr.h
+++ b/source/i18n/unicode/coleitr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
@@ -47,6 +47,7 @@
 
 struct CollationData;
 
+class CharacterIterator;
 class CollationIterator;
 class RuleBasedCollator;
 class UCollationPCE;
diff --git a/source/i18n/unicode/coll.h b/source/i18n/unicode/coll.h
index e41be2e..7e467df 100644
--- a/source/i18n/unicode/coll.h
+++ b/source/i18n/unicode/coll.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -58,7 +58,7 @@
 
 #include "unicode/uobject.h"
 #include "unicode/ucol.h"
-#include "unicode/normlzr.h"
+#include "unicode/unorm.h"
 #include "unicode/locid.h"
 #include "unicode/uniset.h"
 #include "unicode/umisc.h"
@@ -158,7 +158,7 @@
 * @see         CollationKey
 * @see         CollationElementIterator
 * @see         Locale
-* @see         Normalizer
+* @see         Normalizer2
 * @version     2.0 11/15/01
 */
 
@@ -393,8 +393,8 @@
      * is less than, greater than or equal to another string array.
      * <p>Example of use:
      * <pre>
-     * .       UChar ABC[] = {0x41, 0x42, 0x43, 0};  // = "ABC"
-     * .       UChar abc[] = {0x61, 0x62, 0x63, 0};  // = "abc"
+     * .       char16_t ABC[] = {0x41, 0x42, 0x43, 0};  // = "ABC"
+     * .       char16_t abc[] = {0x61, 0x62, 0x63, 0};  // = "abc"
      * .       UErrorCode status = U_ZERO_ERROR;
      * .       Collator *myCollation =
      * .                         Collator::createInstance(Locale::getUS(), status);
@@ -420,8 +420,8 @@
      *         target
      * @deprecated ICU 2.6 use the overload with UErrorCode &
      */
-    virtual EComparisonResult compare(const UChar* source, int32_t sourceLength,
-                                      const UChar* target, int32_t targetLength)
+    virtual EComparisonResult compare(const char16_t* source, int32_t sourceLength,
+                                      const char16_t* target, int32_t targetLength)
                                       const;
 
     /**
@@ -440,8 +440,8 @@
      * than target
      * @stable ICU 2.6
      */
-    virtual UCollationResult compare(const UChar* source, int32_t sourceLength,
-                                      const UChar* target, int32_t targetLength,
+    virtual UCollationResult compare(const char16_t* source, int32_t sourceLength,
+                                      const char16_t* target, int32_t targetLength,
                                       UErrorCode &status) const = 0;
 
     /**
@@ -517,7 +517,7 @@
      * @see CollationKey#compare
      * @stable ICU 2.0
      */
-    virtual CollationKey& getCollationKey(const UChar*source,
+    virtual CollationKey& getCollationKey(const char16_t*source,
                                           int32_t sourceLength,
                                           CollationKey& key,
                                           UErrorCode& status) const = 0;
@@ -911,7 +911,7 @@
      * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups.
      * See setMaxVariable().
-     * @param varTop one or more (if contraction) UChars to which the variable top should be set
+     * @param varTop one or more (if contraction) char16_ts to which the variable top should be set
      * @param len length of variable top string. If -1 it is considered to be zero terminated.
      * @param status error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
      *    U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such contraction<br>
@@ -920,7 +920,7 @@
      * @return variable top primary weight
      * @deprecated ICU 53 Call setMaxVariable() instead.
      */
-    virtual uint32_t setVariableTop(const UChar *varTop, int32_t len, UErrorCode &status) = 0;
+    virtual uint32_t setVariableTop(const char16_t *varTop, int32_t len, UErrorCode &status) = 0;
 
     /**
      * Sets the variable top to the primary weight of the specified string.
@@ -929,7 +929,7 @@
      * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups.
      * See setMaxVariable().
-     * @param varTop a UnicodeString size 1 or more (if contraction) of UChars to which the variable top should be set
+     * @param varTop a UnicodeString size 1 or more (if contraction) of char16_ts to which the variable top should be set
      * @param status error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
      *    U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such contraction<br>
      *    U_ILLEGAL_ARGUMENT_ERROR if the variable top is beyond
@@ -1002,7 +1002,7 @@
                               int32_t resultLength) const = 0;
 
     /**
-     * Get the sort key as an array of bytes from a UChar buffer.
+     * Get the sort key as an array of bytes from a char16_t buffer.
      * Sort key byte arrays are zero-terminated and can be compared using
      * strcmp().
      *
@@ -1020,7 +1020,7 @@
      * @return Number of bytes needed for storing the sort key
      * @stable ICU 2.2
      */
-    virtual int32_t getSortKey(const UChar*source, int32_t sourceLength,
+    virtual int32_t getSortKey(const char16_t*source, int32_t sourceLength,
                                uint8_t*result, int32_t resultLength) const = 0;
 
     /**
diff --git a/source/i18n/unicode/compactdecimalformat.h b/source/i18n/unicode/compactdecimalformat.h
index 1fcc5c5..3fbe5da 100644
--- a/source/i18n/unicode/compactdecimalformat.h
+++ b/source/i18n/unicode/compactdecimalformat.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/curramt.h b/source/i18n/unicode/curramt.h
index 65c5b39..e321df8 100644
--- a/source/i18n/unicode/curramt.h
+++ b/source/i18n/unicode/curramt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -46,7 +46,7 @@
      * is invalid, then this will be set to a failing value.
      * @stable ICU 3.0
      */
-    CurrencyAmount(const Formattable& amount, const UChar* isoCode,
+    CurrencyAmount(const Formattable& amount, ConstChar16Ptr isoCode,
                    UErrorCode &ec);
 
     /**
@@ -59,7 +59,7 @@
      * then this will be set to a failing value.
      * @stable ICU 3.0
      */
-    CurrencyAmount(double amount, const UChar* isoCode,
+    CurrencyAmount(double amount, ConstChar16Ptr isoCode,
                    UErrorCode &ec);
 
     /**
@@ -115,14 +115,14 @@
      * Return the ISO currency code of this object.
      * @stable ICU 3.0
      */
-    inline const UChar* getISOCurrency() const;
+    inline const char16_t* getISOCurrency() const;
 };
 
 inline const CurrencyUnit& CurrencyAmount::getCurrency() const {
     return (const CurrencyUnit&) getUnit();
 }
 
-inline const UChar* CurrencyAmount::getISOCurrency() const {
+inline const char16_t* CurrencyAmount::getISOCurrency() const {
     return getCurrency().getISOCurrency();
 }
 
diff --git a/source/i18n/unicode/currpinf.h b/source/i18n/unicode/currpinf.h
index acf8b53..33c18b0 100644
--- a/source/i18n/unicode/currpinf.h
+++ b/source/i18n/unicode/currpinf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/currunit.h b/source/i18n/unicode/currunit.h
index 9ca4dc5..fd0f9f2 100644
--- a/source/i18n/unicode/currunit.h
+++ b/source/i18n/unicode/currunit.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -28,7 +28,7 @@
 
 /**
  * A unit of currency, such as USD (U.S. dollars) or JPY (Japanese
- * yen).  This class is a thin wrapper over a UChar string that
+ * yen).  This class is a thin wrapper over a char16_t string that
  * subclasses MeasureUnit, for use with Measure and MeasureFormat.
  *
  * @author Alan Liu
@@ -44,7 +44,7 @@
      * then this will be set to a failing value.
      * @stable ICU 3.0
      */
-    CurrencyUnit(const UChar* isoCode, UErrorCode &ec);
+    CurrencyUnit(ConstChar16Ptr isoCode, UErrorCode &ec);
 
     /**
      * Copy constructor
@@ -93,16 +93,16 @@
      * Return the ISO currency code of this object.
      * @stable ICU 3.0
      */
-    inline const UChar* getISOCurrency() const;
+    inline const char16_t* getISOCurrency() const;
 
  private:
     /**
      * The ISO 4217 code of this object.
      */
-    UChar isoCode[4];
+    char16_t isoCode[4];
 };
 
-inline const UChar* CurrencyUnit::getISOCurrency() const {
+inline const char16_t* CurrencyUnit::getISOCurrency() const {
     return isoCode;
 }
 
diff --git a/source/i18n/unicode/datefmt.h b/source/i18n/unicode/datefmt.h
index 3114126..3da0797 100644
--- a/source/i18n/unicode/datefmt.h
+++ b/source/i18n/unicode/datefmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/unicode/dcfmtsym.h b/source/i18n/unicode/dcfmtsym.h
index 946227a..3a502d0 100644
--- a/source/i18n/unicode/dcfmtsym.h
+++ b/source/i18n/unicode/dcfmtsym.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -35,6 +35,7 @@
 #include "unicode/uobject.h"
 #include "unicode/locid.h"
 #include "unicode/unum.h"
+#include "unicode/unistr.h"
 
 /**
  * \file
@@ -392,7 +393,7 @@
      * Returns that pattern stored in currecy info. Internal API for use by NumberFormat API.
      * @internal
      */
-    inline const UChar* getCurrencyPattern(void) const;
+    inline const char16_t* getCurrencyPattern(void) const;
 #endif  /* U_HIDE_INTERNAL_API */
 
 private:
@@ -423,7 +424,7 @@
 
     char actualLocale[ULOC_FULLNAME_CAPACITY];
     char validLocale[ULOC_FULLNAME_CAPACITY];
-    const UChar* currPattern;
+    const char16_t* currPattern;
 
     UnicodeString currencySpcBeforeSym[UNUM_CURRENCY_SPACING_COUNT];
     UnicodeString currencySpcAfterSym[UNUM_CURRENCY_SPACING_COUNT];
@@ -491,7 +492,7 @@
 }
 
 #ifndef U_HIDE_INTERNAL_API
-inline const UChar*
+inline const char16_t*
 DecimalFormatSymbols::getCurrencyPattern() const {
     return currPattern;
 }
diff --git a/source/i18n/unicode/decimfmt.h b/source/i18n/unicode/decimfmt.h
index 7339399..1deff5b 100644
--- a/source/i18n/unicode/decimfmt.h
+++ b/source/i18n/unicode/decimfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -604,7 +604,7 @@
  * including prefix and suffix, determines the format width.  For example, in
  * the pattern <code>"* #0 o''clock"</code>, the format width is 10.
  *
- * <li>The width is counted in 16-bit code units (UChars).
+ * <li>The width is counted in 16-bit code units (char16_ts).
  *
  * <li>Some parameters which usually do not matter have meaning when padding is
  * used, because the pattern width is significant with padding.  In the pattern
@@ -1961,14 +1961,14 @@
      * @param ec input-output error code
      * @stable ICU 3.0
      */
-    virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
+    virtual void setCurrency(const char16_t* theCurrency, UErrorCode& ec);
 
     /**
      * Sets the currency used to display currency amounts.  See
-     * setCurrency(const UChar*, UErrorCode&).
-     * @deprecated ICU 3.0. Use setCurrency(const UChar*, UErrorCode&).
+     * setCurrency(const char16_t*, UErrorCode&).
+     * @deprecated ICU 3.0. Use setCurrency(const char16_t*, UErrorCode&).
      */
-    virtual void setCurrency(const UChar* theCurrency);
+    virtual void setCurrency(const char16_t* theCurrency);
 
     /**
      * Sets the <tt>Currency Context</tt> object used to display currency.
@@ -2108,7 +2108,7 @@
     void parse(const UnicodeString& text,
                Formattable& result,
                ParsePosition& pos,
-               UChar* currency) const;
+               char16_t* currency) const;
 
     enum {
         fgStatusInfinite,
@@ -2124,7 +2124,7 @@
                    int8_t type,
                    ParsePosition& parsePosition,
                    DigitList& digits, UBool* status,
-                   UChar* currency) const;
+                   char16_t* currency) const;
 
     // Mixed style parsing for currency.
     // It parses against the current currency pattern
@@ -2135,7 +2135,7 @@
                            ParsePosition& parsePosition,
                            DigitList& digits,
                            UBool* status,
-                           UChar* currency) const;
+                           char16_t* currency) const;
 
     int32_t skipPadding(const UnicodeString& text, int32_t position) const;
 
@@ -2146,7 +2146,7 @@
                          const UnicodeString* affixPat,
                          UBool complexCurrencyParsing,
                          int8_t type,
-                         UChar* currency) const;
+                         char16_t* currency) const;
 
     static UnicodeString& trimMarksFromAffix(const UnicodeString& affix, UnicodeString& trimmedAffix);
 
@@ -2169,7 +2169,7 @@
                                 const UnicodeString& input,
                                 int32_t pos,
                                 int8_t type,
-                                UChar* currency) const;
+                                char16_t* currency) const;
 
     static int32_t match(const UnicodeString& text, int32_t pos, UChar32 ch);
 
@@ -2195,11 +2195,11 @@
     void setupCurrencyAffixPatterns(UErrorCode& status);
 
     // get the currency rounding with respect to currency usage
-    double getCurrencyRounding(const UChar* currency,
+    double getCurrencyRounding(const char16_t* currency,
                                UErrorCode* ec) const;
 
     // get the currency fraction with respect to currency usage
-    int getCurrencyFractionDigits(const UChar* currency,
+    int getCurrencyFractionDigits(const char16_t* currency,
                                   UErrorCode* ec) const;
 
     // hashtable operations
@@ -2271,7 +2271,7 @@
      * have a capacity of at least 4
      * @internal
      */
-    virtual void getEffectiveCurrency(UChar* result, UErrorCode& ec) const;
+    virtual void getEffectiveCurrency(char16_t* result, UErrorCode& ec) const;
 
   /** number of integer digits
    * @stable ICU 2.4
diff --git a/source/i18n/unicode/dtfmtsym.h b/source/i18n/unicode/dtfmtsym.h
index 7573478..fe914b4 100644
--- a/source/i18n/unicode/dtfmtsym.h
+++ b/source/i18n/unicode/dtfmtsym.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -25,6 +25,7 @@
 #if !UCONFIG_NO_FORMATTING
 
 #include "unicode/calendar.h"
+#include "unicode/strenum.h"
 #include "unicode/uobject.h"
 #include "unicode/locid.h"
 #include "unicode/udat.h"
@@ -426,13 +427,13 @@
      * doesn't specify any time separator, and always recognized when parsing.
      * @internal
      */
-    static const UChar DEFAULT_TIME_SEPARATOR = 0x003a;  // ':'
+    static const char16_t DEFAULT_TIME_SEPARATOR = 0x003a;  // ':'
 
     /**
      * This alternate time separator is always recognized when parsing.
      * @internal
      */
-    static const UChar ALTERNATE_TIME_SEPARATOR = 0x002e;  // '.'
+    static const char16_t ALTERNATE_TIME_SEPARATOR = 0x002e;  // '.'
 
     /**
      * Gets the time separator string. For example: ":".
@@ -566,7 +567,7 @@
      * @return    the non-localized date-time pattern characters
      * @stable ICU 2.0
      */
-    static const UChar * U_EXPORT2 getPatternUChars(void);
+    static const char16_t * U_EXPORT2 getPatternUChars(void);
 
     /**
      * Gets localized date-time pattern characters. For example: 'u', 't', etc.
@@ -977,7 +978,7 @@
      * Returns the date format field index of the pattern character c,
      * or UDAT_FIELD_COUNT if c is not a pattern character.
      */
-    static UDateFormatField U_EXPORT2 getPatternCharIndex(UChar c);
+    static UDateFormatField U_EXPORT2 getPatternCharIndex(char16_t c);
 
     /**
      * Returns TRUE if f (with its pattern character repeated count times) is a numeric field.
@@ -987,7 +988,7 @@
     /**
      * Returns TRUE if c (repeated count times) is the pattern character for a numeric field.
      */
-    static UBool U_EXPORT2 isNumericPatternChar(UChar c, int32_t count);
+    static UBool U_EXPORT2 isNumericPatternChar(char16_t c, int32_t count);
 public:
 #ifndef U_HIDE_INTERNAL_API
     /**
diff --git a/source/i18n/unicode/dtitvfmt.h b/source/i18n/unicode/dtitvfmt.h
index 68360b8..5eaa559 100644
--- a/source/i18n/unicode/dtitvfmt.h
+++ b/source/i18n/unicode/dtitvfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************************
 * Copyright (C) 2008-2016, International Business Machines Corporation and
@@ -996,7 +996,7 @@
 
 
     // from calendar field to pattern letter
-    static const UChar fgCalendarFieldToPatternLetter[];
+    static const char16_t fgCalendarFieldToPatternLetter[];
 
 
     /**
diff --git a/source/i18n/unicode/dtitvinf.h b/source/i18n/unicode/dtitvinf.h
index 325eca6..9c64769 100644
--- a/source/i18n/unicode/dtitvinf.h
+++ b/source/i18n/unicode/dtitvinf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/dtptngen.h b/source/i18n/unicode/dtptngen.h
index fd617ce..6fd5f5f 100644
--- a/source/i18n/unicode/dtptngen.h
+++ b/source/i18n/unicode/dtptngen.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -27,6 +27,7 @@
  */
 
 
+class CharString;
 class Hashtable;
 class FormatParser;
 class DateTimeMatcher;
@@ -517,7 +518,7 @@
     DateTimeMatcher *skipMatcher;
     Hashtable *fAvailableFormatKeyHash;
     UnicodeString emptyString;
-    UChar fDefaultHourFormatChar;
+    char16_t fDefaultHourFormatChar;
 
     int32_t fAllowedHourFormats[7];  // Actually an array of AllowedHourFormat enum type, ending with UNKNOWN.
 
diff --git a/source/i18n/unicode/dtrule.h b/source/i18n/unicode/dtrule.h
index fa1294e..0767249 100644
--- a/source/i18n/unicode/dtrule.h
+++ b/source/i18n/unicode/dtrule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/fieldpos.h b/source/i18n/unicode/fieldpos.h
index ad75b77..0bcc8da 100644
--- a/source/i18n/unicode/fieldpos.h
+++ b/source/i18n/unicode/fieldpos.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/unicode/fmtable.h b/source/i18n/unicode/fmtable.h
index ac5daba..766a719 100644
--- a/source/i18n/unicode/fmtable.h
+++ b/source/i18n/unicode/fmtable.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/format.h b/source/i18n/unicode/format.h
index bce5251..b05318d 100644
--- a/source/i18n/unicode/format.h
+++ b/source/i18n/unicode/format.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/fpositer.h b/source/i18n/unicode/fpositer.h
index 59c3638..4ad44f9 100644
--- a/source/i18n/unicode/fpositer.h
+++ b/source/i18n/unicode/fpositer.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/i18n/unicode/gender.h b/source/i18n/unicode/gender.h
index 943d445..e3c27d0 100644
--- a/source/i18n/unicode/gender.h
+++ b/source/i18n/unicode/gender.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/gregocal.h b/source/i18n/unicode/gregocal.h
index 756bba1..2b4fe1d 100644
--- a/source/i18n/unicode/gregocal.h
+++ b/source/i18n/unicode/gregocal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) 1997-2013, International Business Machines Corporation and others.
diff --git a/source/i18n/unicode/measfmt.h b/source/i18n/unicode/measfmt.h
index 37b3314..dac4255 100644
--- a/source/i18n/unicode/measfmt.h
+++ b/source/i18n/unicode/measfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/measunit.h b/source/i18n/unicode/measunit.h
index afef83e..af72449 100644
--- a/source/i18n/unicode/measunit.h
+++ b/source/i18n/unicode/measunit.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -345,35 +345,29 @@
      */
     static MeasureUnit *createKarat(UErrorCode &status);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Returns unit of concentr: milligram-per-deciliter.
      * Caller owns returned value and must free it.
      * @param status ICU error code.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     static MeasureUnit *createMilligramPerDeciliter(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Returns unit of concentr: millimole-per-liter.
      * Caller owns returned value and must free it.
      * @param status ICU error code.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     static MeasureUnit *createMillimolePerLiter(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Returns unit of concentr: part-per-million.
      * Caller owns returned value and must free it.
      * @param status ICU error code.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     static MeasureUnit *createPartPerMillion(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Returns unit of consumption: liter-per-100kilometers.
@@ -399,55 +393,21 @@
      */
     static MeasureUnit *createMilePerGallon(UErrorCode &status);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Returns unit of consumption: mile-per-gallon-imperial.
      * Caller owns returned value and must free it.
      * @param status ICU error code.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     static MeasureUnit *createMilePerGallonImperial(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
-#ifndef U_HIDE_DRAFT_API
-    /**
-     * Returns unit of coordinate: east.
-     * Caller owns returned value and must free it.
-     * @param status ICU error code.
-     * @draft ICU 58
+    /*
+     * The following were draft ICU 58, but have been withdrawn:
+     * static MeasureUnit *createEast(UErrorCode &status);
+     * static MeasureUnit *createNorth(UErrorCode &status);
+     * static MeasureUnit *createSouth(UErrorCode &status);
+     * static MeasureUnit *createWest(UErrorCode &status);
      */
-    static MeasureUnit *createEast(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
-
-#ifndef U_HIDE_DRAFT_API
-    /**
-     * Returns unit of coordinate: north.
-     * Caller owns returned value and must free it.
-     * @param status ICU error code.
-     * @draft ICU 58
-     */
-    static MeasureUnit *createNorth(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
-
-#ifndef U_HIDE_DRAFT_API
-    /**
-     * Returns unit of coordinate: south.
-     * Caller owns returned value and must free it.
-     * @param status ICU error code.
-     * @draft ICU 58
-     */
-    static MeasureUnit *createSouth(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
-
-#ifndef U_HIDE_DRAFT_API
-    /**
-     * Returns unit of coordinate: west.
-     * Caller owns returned value and must free it.
-     * @param status ICU error code.
-     * @draft ICU 58
-     */
-    static MeasureUnit *createWest(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Returns unit of digital: bit.
@@ -873,6 +833,16 @@
      */
     static MeasureUnit *createPicometer(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of length: point.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 59
+     */
+    static MeasureUnit *createPoint(UErrorCode &status);
+#endif  /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of length: yard.
      * Caller owns returned value and must free it.
@@ -1249,15 +1219,13 @@
      */
     static MeasureUnit *createGallon(UErrorCode &status);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Returns unit of volume: gallon-imperial.
      * Caller owns returned value and must free it.
      * @param status ICU error code.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     static MeasureUnit *createGallonImperial(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Returns unit of volume: hectoliter.
diff --git a/source/i18n/unicode/measure.h b/source/i18n/unicode/measure.h
index 2bd78d2..99b7d7a 100644
--- a/source/i18n/unicode/measure.h
+++ b/source/i18n/unicode/measure.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/msgfmt.h b/source/i18n/unicode/msgfmt.h
index 1a99738..fef8010 100644
--- a/source/i18n/unicode/msgfmt.h
+++ b/source/i18n/unicode/msgfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) 2007-2013, International Business Machines Corporation and
@@ -939,7 +939,7 @@
      * @return the index of the list which matches the keyword s.
      */
     static int32_t findKeyword( const UnicodeString& s,
-                                const UChar * const *list);
+                                const char16_t * const *list);
 
     /**
      * Thin wrapper around the format(... AppendableWrapper ...) variant.
diff --git a/source/i18n/unicode/numfmt.h b/source/i18n/unicode/numfmt.h
index d46e1fd..b8dec36 100644
--- a/source/i18n/unicode/numfmt.h
+++ b/source/i18n/unicode/numfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -931,7 +931,7 @@
      * @param ec input-output error code
      * @stable ICU 3.0
      */
-    virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
+    virtual void setCurrency(const char16_t* theCurrency, UErrorCode& ec);
 
     /**
      * Gets the currency used to display currency
@@ -940,7 +940,7 @@
      * the currency in use, or a pointer to the empty string.
      * @stable ICU 2.6
      */
-    const UChar* getCurrency() const;
+    const char16_t* getCurrency() const;
 	
     /**
      * Set a particular UDisplayContext value in the formatter, such as
@@ -1018,7 +1018,7 @@
      * have a capacity of at least 4
      * @internal
      */
-    virtual void getEffectiveCurrency(UChar* result, UErrorCode& ec) const;
+    virtual void getEffectiveCurrency(char16_t* result, UErrorCode& ec) const;
 
 #ifndef U_HIDE_INTERNAL_API
     /**
@@ -1065,7 +1065,7 @@
     UBool      fLenient; // TRUE => lenient parse is enabled
 
     // ISO currency code
-    UChar      fCurrency[4];
+    char16_t      fCurrency[4];
 
     UDisplayContext fCapitalizationContext;
 
diff --git a/source/i18n/unicode/numsys.h b/source/i18n/unicode/numsys.h
index 4cc083f..9ec3f13 100644
--- a/source/i18n/unicode/numsys.h
+++ b/source/i18n/unicode/numsys.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -193,7 +193,7 @@
 
     void setAlgorithmic(UBool algorithmic);
 
-    void setDesc(UnicodeString desc);
+    void setDesc(const UnicodeString &desc);
 
     void setName(const char* name);
 
diff --git a/source/i18n/unicode/plurfmt.h b/source/i18n/unicode/plurfmt.h
index 369a8b7..fd537c2 100644
--- a/source/i18n/unicode/plurfmt.h
+++ b/source/i18n/unicode/plurfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/plurrule.h b/source/i18n/unicode/plurrule.h
index 146e6be..a14f392 100644
--- a/source/i18n/unicode/plurrule.h
+++ b/source/i18n/unicode/plurrule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -29,6 +29,9 @@
 
 #include "unicode/format.h"
 #include "unicode/upluralrules.h"
+#ifndef U_HIDE_INTERNAL_API
+#include "unicode/numfmt.h"
+#endif  /* U_HIDE_INTERNAL_API */
 
 /**
  * Value returned by PluralRules::getUniqueKeywordValue() when there is no
@@ -346,6 +349,22 @@
 
 #ifndef U_HIDE_INTERNAL_API
     /**
+     * Given a number and a format, returns the keyword of the first applicable
+     * rule for this PluralRules object.
+     * Note: This internal preview interface may be removed in the future if
+     * an architecturally cleaner solution reaches stable status.
+     * @param obj The numeric object for which the rule should be determined.
+     * @param fmt The NumberFormat specifying how the number will be formatted
+     *        (this can affect the plural form, e.g. "1 dollar" vs "1.0 dollars").
+     * @param status  Input/output parameter. If at entry this indicates a
+     *                failure status, the method returns immediately; otherwise
+     *                this is set to indicate the outcome of the call.
+     * @return The keyword of the selected rule. Undefined in the case of an error.
+     * @internal ICU 59 technology preview, may be removed in the future
+     */
+    UnicodeString select(const Formattable& obj, const NumberFormat& fmt, UErrorCode& status) const;
+
+    /**
       * @internal
       */
     UnicodeString select(const FixedDecimal &number) const;
diff --git a/source/i18n/unicode/rbnf.h b/source/i18n/unicode/rbnf.h
index d41ffbe..3d9301b 100644
--- a/source/i18n/unicode/rbnf.h
+++ b/source/i18n/unicode/rbnf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -866,6 +866,52 @@
                                 FieldPosition& pos,
                                 UErrorCode& status) const;
 
+protected:
+    /**
+     * Format a decimal number.
+     * The number is a DigitList wrapper onto a floating point decimal number.
+     * The default implementation in NumberFormat converts the decimal number
+     * to a double and formats that.  Subclasses of NumberFormat that want
+     * to specifically handle big decimal numbers must override this method.
+     * class DecimalFormat does so.
+     *
+     * @param number    The number, a DigitList format Decimal Floating Point.
+     * @param appendTo  Output parameter to receive result.
+     *                  Result is appended to existing contents.
+     * @param posIter   On return, can be used to iterate over positions
+     *                  of fields generated by this format call.
+     * @param status    Output param filled with success/failure status.
+     * @return          Reference to 'appendTo' parameter.
+     * @internal
+     */
+    virtual UnicodeString& format(const DigitList &number,
+                                  UnicodeString& appendTo,
+                                  FieldPositionIterator* posIter,
+                                  UErrorCode& status) const;
+
+    /**
+     * Format a decimal number.
+     * The number is a DigitList wrapper onto a floating point decimal number.
+     * The default implementation in NumberFormat converts the decimal number
+     * to a double and formats that.  Subclasses of NumberFormat that want
+     * to specifically handle big decimal numbers must override this method.
+     * class DecimalFormat does so.
+     *
+     * @param number    The number, a DigitList format Decimal Floating Point.
+     * @param appendTo  Output parameter to receive result.
+     *                  Result is appended to existing contents.
+     * @param pos       On input: an alignment field, if desired.
+     *                  On output: the offsets of the alignment field.
+     * @param status    Output param filled with success/failure status.
+     * @return          Reference to 'appendTo' parameter.
+     * @internal
+     */
+    virtual UnicodeString& format(const DigitList &number,
+                                  UnicodeString& appendTo,
+                                  FieldPosition& pos,
+                                  UErrorCode& status) const;
+public:
+
   using NumberFormat::parse;
 
   /**
@@ -1031,7 +1077,8 @@
     NFRule * initializeDefaultNaNRule(UErrorCode &status);
     const NFRule * getDefaultNaNRule() const;
     PluralFormat *createPluralFormat(UPluralType pluralType, const UnicodeString &pattern, UErrorCode& status) const;
-    UnicodeString& adjustForCapitalizationContext(int32_t startPos, UnicodeString& currentResult) const;
+    UnicodeString& adjustForCapitalizationContext(int32_t startPos, UnicodeString& currentResult, UErrorCode& status) const;
+    UnicodeString& format(int64_t number, NFRuleSet *ruleSet, UnicodeString& toAppendTo, UErrorCode& status) const;
 
 private:
     NFRuleSet **ruleSets;
diff --git a/source/i18n/unicode/rbtz.h b/source/i18n/unicode/rbtz.h
index 4df5850..6d652f6 100644
--- a/source/i18n/unicode/rbtz.h
+++ b/source/i18n/unicode/rbtz.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/regex.h b/source/i18n/unicode/regex.h
index d23a3ab..6829f7b 100644
--- a/source/i18n/unicode/regex.h
+++ b/source/i18n/unicode/regex.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  regex.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   indentation:4
 *
 *   created on: 2002oct22
@@ -350,17 +350,17 @@
 private:
     /**
      * Cause a compilation error if an application accidentally attempts to
-     *   create a matcher with a (UChar *) string as input rather than
+     *   create a matcher with a (char16_t *) string as input rather than
      *   a UnicodeString.  Avoids a dangling reference to a temporary string.
      * <p>
-     * To efficiently work with UChar *strings, wrap the data in a UnicodeString
+     * To efficiently work with char16_t *strings, wrap the data in a UnicodeString
      * using one of the aliasing constructors, such as
-     * <code>UnicodeString(UBool isTerminated, const UChar *text, int32_t textLength);</code>
+     * <code>UnicodeString(UBool isTerminated, const char16_t *text, int32_t textLength);</code>
      * or in a UText, using
-     * <code>utext_openUChars(UText *ut, const UChar *text, int64_t textLength, UErrorCode *status);</code>
+     * <code>utext_openUChars(UText *ut, const char16_t *text, int64_t textLength, UErrorCode *status);</code>
      *
      */
-    RegexMatcher *matcher(const UChar *input,
+    RegexMatcher *matcher(const char16_t *input,
         UErrorCode          &status) const;
 public:
 
@@ -748,17 +748,17 @@
 private:
     /**
      * Cause a compilation error if an application accidentally attempts to
-     *   create a matcher with a (UChar *) string as input rather than
+     *   create a matcher with a (char16_t *) string as input rather than
      *   a UnicodeString.    Avoids a dangling reference to a temporary string.
      * <p>
-     * To efficiently work with UChar *strings, wrap the data in a UnicodeString
+     * To efficiently work with char16_t *strings, wrap the data in a UnicodeString
      * using one of the aliasing constructors, such as
-     * <code>UnicodeString(UBool isTerminated, const UChar *text, int32_t textLength);</code>
+     * <code>UnicodeString(UBool isTerminated, const char16_t *text, int32_t textLength);</code>
      * or in a UText, using
-     * <code>utext_openUChars(UText *ut, const UChar *text, int64_t textLength, UErrorCode *status);</code>
+     * <code>utext_openUChars(UText *ut, const char16_t *text, int64_t textLength, UErrorCode *status);</code>
      *
      */
-    RegexMatcher(const UnicodeString &regexp, const UChar *input,
+    RegexMatcher(const UnicodeString &regexp, const char16_t *input,
         uint32_t flags, UErrorCode &status);
 public:
 
@@ -1156,17 +1156,17 @@
 private:
     /**
      * Cause a compilation error if an application accidentally attempts to
-     *   reset a matcher with a (UChar *) string as input rather than
+     *   reset a matcher with a (char16_t *) string as input rather than
      *   a UnicodeString.    Avoids a dangling reference to a temporary string.
      * <p>
-     * To efficiently work with UChar *strings, wrap the data in a UnicodeString
+     * To efficiently work with char16_t *strings, wrap the data in a UnicodeString
      * using one of the aliasing constructors, such as
-     * <code>UnicodeString(UBool isTerminated, const UChar *text, int32_t textLength);</code>
+     * <code>UnicodeString(UBool isTerminated, const char16_t *text, int32_t textLength);</code>
      * or in a UText, using
-     * <code>utext_openUChars(UText *ut, const UChar *text, int64_t textLength, UErrorCode *status);</code>
+     * <code>utext_openUChars(UText *ut, const char16_t *text, int64_t textLength, UErrorCode *status);</code>
      *
      */
-    RegexMatcher &reset(const UChar *input);
+    RegexMatcher &reset(const char16_t *input);
 public:
 
    /**
diff --git a/source/i18n/unicode/region.h b/source/i18n/unicode/region.h
index 6bb6c74..80b2929 100644
--- a/source/i18n/unicode/region.h
+++ b/source/i18n/unicode/region.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/reldatefmt.h b/source/i18n/unicode/reldatefmt.h
index e91d206..09d9620 100644
--- a/source/i18n/unicode/reldatefmt.h
+++ b/source/i18n/unicode/reldatefmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************
@@ -230,6 +230,7 @@
 
 U_NAMESPACE_BEGIN
 
+class BreakIterator;
 class RelativeDateTimeCacheData;
 class SharedNumberFormat;
 class SharedPluralRules;
@@ -414,7 +415,6 @@
             UnicodeString& appendTo,
             UErrorCode& status) const;
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Format a combination of URelativeDateTimeUnit and numeric offset
      * using a numeric style, e.g. "1 week ago", "in 1 week",
@@ -430,7 +430,7 @@
      *                  appended.
      * @param status    ICU error code returned here.
      * @return          appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString& formatNumeric(
             double offset,
@@ -453,14 +453,13 @@
      *                  appended.
      * @param status    ICU error code returned here.
      * @return          appendTo
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UnicodeString& format(
             double offset,
             URelativeDateTimeUnit unit,
             UnicodeString& appendTo,
             UErrorCode& status) const;
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Combines a relative date string and a time string in this object's
diff --git a/source/i18n/unicode/scientificnumberformatter.h b/source/i18n/unicode/scientificnumberformatter.h
index 0035a6e..15023d5 100644
--- a/source/i18n/unicode/scientificnumberformatter.h
+++ b/source/i18n/unicode/scientificnumberformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/search.h b/source/i18n/unicode/search.h
index 0acfcce..65f7f10 100644
--- a/source/i18n/unicode/search.h
+++ b/source/i18n/unicode/search.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/selfmt.h b/source/i18n/unicode/selfmt.h
index 37a8f2b..08e9d44 100755
--- a/source/i18n/unicode/selfmt.h
+++ b/source/i18n/unicode/selfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/i18n/unicode/simpletz.h b/source/i18n/unicode/simpletz.h
index d71fe36..5b80263 100644
--- a/source/i18n/unicode/simpletz.h
+++ b/source/i18n/unicode/simpletz.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/i18n/unicode/smpdtfmt.h b/source/i18n/unicode/smpdtfmt.h
index e6cf28d..4733e75 100644
--- a/source/i18n/unicode/smpdtfmt.h
+++ b/source/i18n/unicode/smpdtfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 * Copyright (C) 1997-2016, International Business Machines Corporation and
@@ -1170,7 +1170,7 @@
      * @param field The UDateFormatField to get
      * @stable ICU 54
      */
-    const NumberFormat * getNumberFormatForField(UChar field) const;
+    const NumberFormat * getNumberFormatForField(char16_t field) const;
 
 #ifndef U_HIDE_INTERNAL_API
     /**
@@ -1262,7 +1262,7 @@
      *                  succeeds.
      */
     void subFormat(UnicodeString &appendTo,
-                   UChar ch,
+                   char16_t ch,
                    int32_t count,
                    UDisplayContext capitalizationContext,
                    int32_t fieldNum,
@@ -1294,7 +1294,7 @@
      * Return true if the given format character, occuring count
      * times, represents a numeric field.
      */
-    static UBool isNumeric(UChar formatChar, int32_t count);
+    static UBool isNumeric(char16_t formatChar, int32_t count);
 
     /**
      * Returns TRUE if the patternOffset is at the start of a numeric field.
@@ -1412,7 +1412,7 @@
      * @return the new start position if matching succeeded; a negative number
      * indicating matching failure, otherwise.
      */
-    int32_t subParse(const UnicodeString& text, int32_t& start, UChar ch, int32_t count,
+    int32_t subParse(const UnicodeString& text, int32_t& start, char16_t ch, int32_t count,
                      UBool obeyCount, UBool allowNegative, UBool ambiguousYear[], int32_t& saveHebrewMonth, Calendar& cal,
                      int32_t patLoc, MessageFormat * numericLeapMonthFormatter, UTimeZoneFormatTimeType *tzTimeType, SimpleDateFormatMutableNFs &mutableNFs,
                      int32_t *dayPeriod=NULL) const;
@@ -1523,12 +1523,12 @@
     /**
      * Map calendar field letter into calendar field level.
      */
-    static int32_t getLevelFromChar(UChar ch);
+    static int32_t getLevelFromChar(char16_t ch);
 
     /**
      * Tell if a character can be used to define a field in a format string.
      */
-    static UBool isSyntaxChar(UChar ch);
+    static UBool isSyntaxChar(char16_t ch);
 
     /**
      * The formatting pattern for this formatter.
diff --git a/source/i18n/unicode/sortkey.h b/source/i18n/unicode/sortkey.h
index 814e29c..1f42460 100644
--- a/source/i18n/unicode/sortkey.h
+++ b/source/i18n/unicode/sortkey.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************
diff --git a/source/i18n/unicode/stsearch.h b/source/i18n/unicode/stsearch.h
index ec50151..57b5b32 100644
--- a/source/i18n/unicode/stsearch.h
+++ b/source/i18n/unicode/stsearch.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/tblcoll.h b/source/i18n/unicode/tblcoll.h
index c48ea38..24ba213 100644
--- a/source/i18n/unicode/tblcoll.h
+++ b/source/i18n/unicode/tblcoll.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -308,8 +308,8 @@
     * than target
     * @stable ICU 2.6
     */
-    virtual UCollationResult compare(const UChar* source, int32_t sourceLength,
-                                     const UChar* target, int32_t targetLength,
+    virtual UCollationResult compare(const char16_t* source, int32_t sourceLength,
+                                     const char16_t* target, int32_t targetLength,
                                      UErrorCode &status) const;
 
     /**
@@ -377,7 +377,7 @@
      * @see CollationKey
      * @stable ICU 2.0
      */
-    virtual CollationKey& getCollationKey(const UChar *source,
+    virtual CollationKey& getCollationKey(const char16_t *source,
                                           int32_t sourceLength,
                                           CollationKey& key,
                                           UErrorCode& status) const;
@@ -552,7 +552,7 @@
      * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups.
      * See setMaxVariable().
-     * @param varTop one or more (if contraction) UChars to which the variable top should be set
+     * @param varTop one or more (if contraction) char16_ts to which the variable top should be set
      * @param len length of variable top string. If -1 it is considered to be zero terminated.
      * @param status error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
      *    U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such contraction<br>
@@ -561,7 +561,7 @@
      * @return variable top primary weight
      * @deprecated ICU 53 Call setMaxVariable() instead.
      */
-    virtual uint32_t setVariableTop(const UChar *varTop, int32_t len, UErrorCode &status);
+    virtual uint32_t setVariableTop(const char16_t *varTop, int32_t len, UErrorCode &status);
 
     /**
      * Sets the variable top to the primary weight of the specified string.
@@ -570,7 +570,7 @@
      * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups.
      * See setMaxVariable().
-     * @param varTop a UnicodeString size 1 or more (if contraction) of UChars to which the variable top should be set
+     * @param varTop a UnicodeString size 1 or more (if contraction) of char16_ts to which the variable top should be set
      * @param status error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
      *    U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such contraction<br>
      *    U_ILLEGAL_ARGUMENT_ERROR if the variable top is beyond
@@ -631,7 +631,7 @@
                                int32_t resultLength) const;
 
     /**
-     * Get the sort key as an array of bytes from a UChar buffer.
+     * Get the sort key as an array of bytes from a char16_t buffer.
      *
      * Note that sort keys are often less efficient than simply doing comparison.
      * For more details, see the ICU User Guide.
@@ -646,7 +646,7 @@
      * @return Number of bytes needed for storing the sort key
      * @stable ICU 2.2
      */
-    virtual int32_t getSortKey(const UChar *source, int32_t sourceLength,
+    virtual int32_t getSortKey(const char16_t *source, int32_t sourceLength,
                                uint8_t *result, int32_t resultLength) const;
 
     /**
@@ -821,17 +821,17 @@
     void adoptTailoring(CollationTailoring *t, UErrorCode &errorCode);
 
     // Both lengths must be <0 or else both must be >=0.
-    UCollationResult doCompare(const UChar *left, int32_t leftLength,
-                               const UChar *right, int32_t rightLength,
+    UCollationResult doCompare(const char16_t *left, int32_t leftLength,
+                               const char16_t *right, int32_t rightLength,
                                UErrorCode &errorCode) const;
     UCollationResult doCompare(const uint8_t *left, int32_t leftLength,
                                const uint8_t *right, int32_t rightLength,
                                UErrorCode &errorCode) const;
 
-    void writeSortKey(const UChar *s, int32_t length,
+    void writeSortKey(const char16_t *s, int32_t length,
                       SortKeyByteSink &sink, UErrorCode &errorCode) const;
 
-    void writeIdenticalLevel(const UChar *s, const UChar *limit,
+    void writeIdenticalLevel(const char16_t *s, const char16_t *limit,
                              SortKeyByteSink &sink, UErrorCode &errorCode) const;
 
     const CollationSettings &getDefaultSettings() const;
diff --git a/source/i18n/unicode/timezone.h b/source/i18n/unicode/timezone.h
index 8cfe7e5..83dee31 100644
--- a/source/i18n/unicode/timezone.h
+++ b/source/i18n/unicode/timezone.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*************************************************************************
 * Copyright (c) 1997-2016, International Business Machines Corporation
@@ -863,7 +863,7 @@
      * @param id zone id string
      * @return the pointer of the ID resource, or NULL.
      */
-    static const UChar* findID(const UnicodeString& id);
+    static const char16_t* findID(const UnicodeString& id);
 
     /**
      * Resolve a link in Olson tzdata.  When the given id is known and it's not a link,
@@ -873,7 +873,7 @@
      * @param id zone id string
      * @return the dereferenced zone or NULL
      */
-    static const UChar* dereferOlsonLink(const UnicodeString& id);
+    static const char16_t* dereferOlsonLink(const UnicodeString& id);
 
     /**
      * Returns the region code associated with the given zone,
@@ -881,7 +881,7 @@
      * @param id zone id string
      * @return the region associated with the given zone
      */
-    static const UChar* getRegion(const UnicodeString& id);
+    static const char16_t* getRegion(const UnicodeString& id);
 
   public:
 #ifndef U_HIDE_INTERNAL_API
@@ -893,7 +893,7 @@
      * @return the region associated with the given zone
      * @internal
      */
-    static const UChar* getRegion(const UnicodeString& id, UErrorCode& status);
+    static const char16_t* getRegion(const UnicodeString& id, UErrorCode& status);
 #endif  /* U_HIDE_INTERNAL_API */
 
   private:
diff --git a/source/i18n/unicode/tmunit.h b/source/i18n/unicode/tmunit.h
index a19a1f3..fa59f10 100644
--- a/source/i18n/unicode/tmunit.h
+++ b/source/i18n/unicode/tmunit.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/tmutamt.h b/source/i18n/unicode/tmutamt.h
index ff132f8..274bfa6 100644
--- a/source/i18n/unicode/tmutamt.h
+++ b/source/i18n/unicode/tmutamt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/tmutfmt.h b/source/i18n/unicode/tmutfmt.h
index b90d4a0..8f24585 100644
--- a/source/i18n/unicode/tmutfmt.h
+++ b/source/i18n/unicode/tmutfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/unicode/translit.h b/source/i18n/unicode/translit.h
index b068791..bccba54 100644
--- a/source/i18n/unicode/translit.h
+++ b/source/i18n/unicode/translit.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -1319,7 +1319,7 @@
 inline void Transliterator::setID(const UnicodeString& id) {
     ID = id;
     // NUL-terminate the ID string, which is a non-aliased copy.
-    ID.append((UChar)0);
+    ID.append((char16_t)0);
     ID.truncate(ID.length()-1);
 }
 
diff --git a/source/i18n/unicode/tzfmt.h b/source/i18n/unicode/tzfmt.h
index faf4b81..724ff4d 100644
--- a/source/i18n/unicode/tzfmt.h
+++ b/source/i18n/unicode/tzfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -942,7 +942,7 @@
      * @param parsedLen the parsed length, or 0 on failure.
      * @return the parsed offset in milliseconds.
      */
-    int32_t parseDefaultOffsetFields(const UnicodeString& text, int32_t start, UChar separator,
+    int32_t parseDefaultOffsetFields(const UnicodeString& text, int32_t start, char16_t separator,
         int32_t& parsedLen) const;
 
     /**
@@ -982,7 +982,7 @@
      * @param maxFields The maximum fields
      * @return The offset string
      */
-    static UnicodeString& formatOffsetWithAsciiDigits(int32_t offset, UChar sep,
+    static UnicodeString& formatOffsetWithAsciiDigits(int32_t offset, char16_t sep,
         OffsetFields minFields, OffsetFields maxFields, UnicodeString& result);
 
     /**
@@ -1012,7 +1012,7 @@
      * @param maxFields The maximum Fields to be parsed
      * @return Parsed offset, 0 or positive number.
      */
-    static int32_t parseAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos, UChar sep,
+    static int32_t parseAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos, char16_t sep,
         OffsetFields minFields, OffsetFields maxFields);
 
     /**
diff --git a/source/i18n/unicode/tznames.h b/source/i18n/unicode/tznames.h
index 8861a7d..60f0e5e 100644
--- a/source/i18n/unicode/tznames.h
+++ b/source/i18n/unicode/tznames.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/tzrule.h b/source/i18n/unicode/tzrule.h
index 51b3ae1..1647fda 100644
--- a/source/i18n/unicode/tzrule.h
+++ b/source/i18n/unicode/tzrule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/tztrans.h b/source/i18n/unicode/tztrans.h
index 53c34fe..a476c68 100644
--- a/source/i18n/unicode/tztrans.h
+++ b/source/i18n/unicode/tztrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/ucal.h b/source/i18n/unicode/ucal.h
index 29c0845..c765e78 100644
--- a/source/i18n/unicode/ucal.h
+++ b/source/i18n/unicode/ucal.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -425,8 +425,8 @@
    */
   UCAL_IS_LEAP_MONTH,
 
-    // Do not conditionalize with #ifndef U_HIDE_DEPRECATED_API,
-    // it is needed for layout of Calendar, DateFormat, and other objects
+    /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
+     * it is needed for layout of Calendar, DateFormat, and other objects */
     /**
      * One more than the highest normal UCalendarDateFields value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
diff --git a/source/i18n/unicode/ucol.h b/source/i18n/unicode/ucol.h
index eae88f8..ecabd9e 100644
--- a/source/i18n/unicode/ucol.h
+++ b/source/i18n/unicode/ucol.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -131,7 +131,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
   UCOL_ATTRIBUTE_VALUE_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UColAttributeValue;
 
 /**
@@ -204,7 +204,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UCOL_REORDER_CODE_LIMIT         = 0x1005
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UColReorderCode;
 
 /**
@@ -342,8 +342,8 @@
       */
      UCOL_NUMERIC_COLLATION = UCOL_STRENGTH + 2, 
 
-    // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
-    // it is needed for layout of RuleBasedCollator object.
+    /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
+     * it is needed for layout of RuleBasedCollator object. */
     /**
      * One more than the highest normal UColAttribute value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
@@ -1067,7 +1067,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UCOL_BOUND_VALUE_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UColBoundMode;
 
 /**
diff --git a/source/i18n/unicode/ucoleitr.h b/source/i18n/unicode/ucoleitr.h
index b841049..4e967af 100644
--- a/source/i18n/unicode/ucoleitr.h
+++ b/source/i18n/unicode/ucoleitr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/ucsdet.h b/source/i18n/unicode/ucsdet.h
index 470cbab..52ed5ad 100644
--- a/source/i18n/unicode/ucsdet.h
+++ b/source/i18n/unicode/ucsdet.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
@@ -6,7 +6,7 @@
  *   Corporation and others.  All Rights Reserved.
  **********************************************************************
  *   file name:  ucsdet.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   indentation:4
  *
  *   created on: 2005Aug04
@@ -45,6 +45,10 @@
  * in a single language, and a minimum of a few hundred bytes worth of plain text
  * in the language are needed.  The detection process will attempt to
  * ignore html or xml style markup that could otherwise obscure the content.
+ * <p>
+ * An alternative to the ICU Charset Detector is the
+ * Compact Encoding Detector, https://github.com/google/compact_enc_det.
+ * It often gives more accurate results, especially with short input samples.
  */
  
 
@@ -395,7 +399,7 @@
 /**
   * Enable or disable individual charset encoding.
   * A name of charset encoding must be included in the names returned by
-  * {@link #getAllDetectableCharsets()}.
+  * {@link #ucsdet_getAllDetectableCharsets()}.
   *
   * @param ucsd a Charset detector.
   * @param encoding encoding the name of charset encoding.
diff --git a/source/i18n/unicode/udat.h b/source/i18n/unicode/udat.h
index cacfbe8..90aff20 100644
--- a/source/i18n/unicode/udat.h
+++ b/source/i18n/unicode/udat.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -763,21 +763,19 @@
     UDAT_RELATED_YEAR_FIELD = 34,
 #endif  /* U_HIDE_INTERNAL_API */
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * FieldPosition selector for 'b' field alignment.
      * Displays midnight and noon for 12am and 12pm, respectively, if available;
      * otherwise fall back to AM / PM.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_AM_PM_MIDNIGHT_NOON_FIELD = 35,
 
     /* FieldPosition selector for 'B' field alignment.
      * Displays flexible day periods, such as "in the morning", if available.
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_FLEXIBLE_DAY_PERIOD_FIELD = 36,
-#endif /* U_HIDE_DRAFT_API */
 
 #ifndef U_HIDE_INTERNAL_API
     /**
@@ -797,7 +795,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UDAT_FIELD_COUNT = 38
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UDateFormatField;
 
 
@@ -819,7 +817,7 @@
  * of error (e.g., the input field is UDAT_FIELD_COUNT).
  * @stable ICU 4.4
  */
-U_STABLE UCalendarDateFields U_EXPORT2
+U_CAPI UCalendarDateFields U_EXPORT2
 udat_toCalendarDateField(UDateFormatField field);
 
 
@@ -851,7 +849,7 @@
  * an error occurred.
  * @stable ICU 2.0
  */
-U_STABLE UDateFormat* U_EXPORT2
+U_CAPI UDateFormat* U_EXPORT2
 udat_open(UDateFormatStyle  timeStyle,
           UDateFormatStyle  dateStyle,
           const char        *locale,
@@ -868,7 +866,7 @@
 * @param format The formatter to close.
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_close(UDateFormat* format);
 
 
@@ -902,8 +900,8 @@
      */
     UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3,
 
-    // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
-    // it is needed for layout of DateFormat object.
+    /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
+     * it is needed for layout of DateFormat object. */
     /**
      * One more than the highest normal UDateFormatBooleanAttribute value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
@@ -921,7 +919,7 @@
  * @return The value of attr.
  * @stable ICU 53
  */
-U_STABLE UBool U_EXPORT2
+U_CAPI UBool U_EXPORT2
 udat_getBooleanAttribute(const UDateFormat* fmt, UDateFormatBooleanAttribute attr, UErrorCode* status);
 
 /**
@@ -934,7 +932,7 @@
  * @param status A pointer to an UErrorCode to receive any errors
  * @stable ICU 53
  */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBool newValue, UErrorCode* status);
 
 
@@ -966,7 +964,7 @@
  * @return A pointer to a UDateFormat identical to fmt.
  * @stable ICU 2.0
  */
-U_STABLE UDateFormat* U_EXPORT2
+U_CAPI UDateFormat* U_EXPORT2
 udat_clone(const UDateFormat *fmt,
        UErrorCode *status);
 
@@ -988,7 +986,7 @@
 * @see UFieldPosition
 * @stable ICU 2.0
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_format(    const    UDateFormat*    format,
                         UDate           dateToFormat,
                         UChar*          result,
@@ -1018,7 +1016,7 @@
 * @see UFieldPosition
 * @stable ICU 55
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_formatCalendar(    const UDateFormat*  format,
                         UCalendar*      calendar,
                         UChar*          result,
@@ -1053,7 +1051,7 @@
 * @see UFieldPositionIterator
 * @stable ICU 55
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_formatForFields(   const UDateFormat* format,
                         UDate           dateToFormat,
                         UChar*          result,
@@ -1091,7 +1089,7 @@
 * @see UFieldPositionIterator
 * @stable ICU 55
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_formatCalendarForFields( const UDateFormat* format,
                         UCalendar*      calendar,
                         UChar*          result,
@@ -1125,7 +1123,7 @@
 * @see udat_format
 * @stable ICU 2.0
 */
-U_STABLE UDate U_EXPORT2
+U_CAPI UDate U_EXPORT2
 udat_parse(const    UDateFormat*    format,
            const    UChar*          text,
                     int32_t         textLength,
@@ -1153,7 +1151,7 @@
 * @see udat_format
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_parseCalendar(const    UDateFormat*    format,
                             UCalendar*      calendar,
                    const    UChar*          text,
@@ -1170,7 +1168,7 @@
 * @see udat_setLenient
 * @stable ICU 2.0
 */
-U_STABLE UBool U_EXPORT2
+U_CAPI UBool U_EXPORT2
 udat_isLenient(const UDateFormat* fmt);
 
 /**
@@ -1182,7 +1180,7 @@
 * @see dat_isLenient
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setLenient(    UDateFormat*    fmt,
                     UBool          isLenient);
 
@@ -1195,7 +1193,7 @@
 * @see udat_setCalendar
 * @stable ICU 2.0
 */
-U_STABLE const UCalendar* U_EXPORT2
+U_CAPI const UCalendar* U_EXPORT2
 udat_getCalendar(const UDateFormat* fmt);
 
 /**
@@ -1207,7 +1205,7 @@
 * @see udat_setCalendar
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setCalendar(            UDateFormat*    fmt,
                     const   UCalendar*      calendarToSet);
 
@@ -1220,7 +1218,7 @@
 * @see udat_setNumberFormat
 * @stable ICU 2.0
 */
-U_STABLE const UNumberFormat* U_EXPORT2
+U_CAPI const UNumberFormat* U_EXPORT2
 udat_getNumberFormat(const UDateFormat* fmt);
 
 /**
@@ -1232,7 +1230,7 @@
 * @see udat_setNumberFormatForField
 * @stable ICU 54
 */
-U_STABLE const UNumberFormat* U_EXPORT2
+U_CAPI const UNumberFormat* U_EXPORT2
 udat_getNumberFormatForField(const UDateFormat* fmt, UChar field);
 
 /**
@@ -1250,7 +1248,7 @@
 * @see udat_getNumberFormatForField
 * @stable ICU 54
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_adoptNumberFormatForFields(  UDateFormat* fmt,
                             const UChar* fields,
                                   UNumberFormat*  numberFormatToSet,
@@ -1267,7 +1265,7 @@
 * @see udat_setNumberFormatForField
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setNumberFormat(            UDateFormat*    fmt,
                         const   UNumberFormat*  numberFormatToSet);
 /**
@@ -1279,7 +1277,7 @@
 * @see udat_getNumberFormat
 * @stable ICU 54
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_adoptNumberFormat(            UDateFormat*    fmt,
                                    UNumberFormat*  numberFormatToAdopt);
 /**
@@ -1291,7 +1289,7 @@
 * @see udat_countAvailable
 * @stable ICU 2.0
 */
-U_STABLE const char* U_EXPORT2
+U_CAPI const char* U_EXPORT2
 udat_getAvailable(int32_t localeIndex);
 
 /**
@@ -1302,7 +1300,7 @@
 * @see udat_getAvailable
 * @stable ICU 2.0
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_countAvailable(void);
 
 /**
@@ -1315,7 +1313,7 @@
 * @see udat_Set2DigitYearStart
 * @stable ICU 2.0
 */
-U_STABLE UDate U_EXPORT2
+U_CAPI UDate U_EXPORT2
 udat_get2DigitYearStart(    const   UDateFormat     *fmt,
                                     UErrorCode      *status);
 
@@ -1329,7 +1327,7 @@
 * @see udat_Set2DigitYearStart
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_set2DigitYearStart(    UDateFormat     *fmt,
                             UDate           d,
                             UErrorCode      *status);
@@ -1346,7 +1344,7 @@
 * @see udat_applyPattern
 * @stable ICU 2.0
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_toPattern(    const   UDateFormat     *fmt,
                         UBool          localized,
                         UChar           *result,
@@ -1363,7 +1361,7 @@
 * @see udat_toPattern
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_applyPattern(            UDateFormat     *format,
                             UBool          localized,
                     const   UChar           *pattern,
@@ -1489,7 +1487,7 @@
 * @see udat_setSymbols
 * @stable ICU 2.0
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_getSymbols(const   UDateFormat             *fmt,
                         UDateFormatSymbolType   type,
                         int32_t                 symbolIndex,
@@ -1509,7 +1507,7 @@
 * @see udat_setSymbols
 * @stable ICU 2.0
 */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 udat_countSymbols(    const    UDateFormat                *fmt,
                             UDateFormatSymbolType    type);
 
@@ -1528,7 +1526,7 @@
 * @see udat_countSymbols
 * @stable ICU 2.0
 */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setSymbols(    UDateFormat             *format,
                     UDateFormatSymbolType   type,
                     int32_t                 symbolIndex,
@@ -1545,7 +1543,7 @@
  * @return the locale name
  * @stable ICU 2.8
  */
-U_STABLE const char* U_EXPORT2
+U_CAPI const char* U_EXPORT2
 udat_getLocaleByType(const UDateFormat *fmt,
                      ULocDataLocaleType type,
                      UErrorCode* status);
@@ -1558,7 +1556,7 @@
  * @param status A pointer to an UErrorCode to receive any errors
  * @stable ICU 51
  */
-U_DRAFT void U_EXPORT2
+U_CAPI void U_EXPORT2
 udat_setContext(UDateFormat* fmt, UDisplayContext value, UErrorCode* status);
 
 /**
@@ -1570,7 +1568,7 @@
  * @return The UDisplayContextValue for the specified type.
  * @stable ICU 53
  */
-U_STABLE UDisplayContext U_EXPORT2
+U_CAPI UDisplayContext U_EXPORT2
 udat_getContext(const UDateFormat* fmt, UDisplayContextType type, UErrorCode* status);
 
 #ifndef U_HIDE_INTERNAL_API
diff --git a/source/i18n/unicode/udateintervalformat.h b/source/i18n/unicode/udateintervalformat.h
index 582c437..9300ddc 100644
--- a/source/i18n/unicode/udateintervalformat.h
+++ b/source/i18n/unicode/udateintervalformat.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/unicode/udatpg.h b/source/i18n/unicode/udatpg.h
index 47d3afb..76baa3d 100644
--- a/source/i18n/unicode/udatpg.h
+++ b/source/i18n/unicode/udatpg.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  udatpg.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -86,8 +86,8 @@
     /** @stable ICU 3.8 */
     UDATPG_ZONE_FIELD,
 
-    // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
-    // it is needed for layout of DateTimePatternGenerator object.
+    /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
+     * it is needed for layout of DateTimePatternGenerator object. */
     /**
      * One more than the highest normal UDateTimePatternField value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
diff --git a/source/i18n/unicode/ufieldpositer.h b/source/i18n/unicode/ufieldpositer.h
index 8dfa3df..3ae73b6 100644
--- a/source/i18n/unicode/ufieldpositer.h
+++ b/source/i18n/unicode/ufieldpositer.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/unicode/uformattable.h b/source/i18n/unicode/uformattable.h
index e4683d5..9ba2a36 100644
--- a/source/i18n/unicode/uformattable.h
+++ b/source/i18n/unicode/uformattable.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -57,7 +57,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UFMT_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UFormattableType;
 
 
diff --git a/source/i18n/unicode/ugender.h b/source/i18n/unicode/ugender.h
index c1e591e..d015a23 100644
--- a/source/i18n/unicode/ugender.h
+++ b/source/i18n/unicode/ugender.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/unicode/ulocdata.h b/source/i18n/unicode/ulocdata.h
index ecf6fdc..de8d853 100644
--- a/source/i18n/unicode/ulocdata.h
+++ b/source/i18n/unicode/ulocdata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *                                                                            *
 ******************************************************************************
 *   file name:  ulocdata.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -55,7 +55,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     ULOCDATA_ES_COUNT=4
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } ULocaleDataExemplarSetType;
 
 /** The possible types of delimiters.
@@ -76,7 +76,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     ULOCDATA_DELIMITER_COUNT = 4
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } ULocaleDataDelimiterType;
 
 /**
@@ -207,7 +207,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UMS_LIMIT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UMeasurementSystem;
 
 /**
diff --git a/source/i18n/unicode/umsg.h b/source/i18n/unicode/umsg.h
index b5f2ae9..5d235e4 100644
--- a/source/i18n/unicode/umsg.h
+++ b/source/i18n/unicode/umsg.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
@@ -8,7 +8,7 @@
  ********************************************************************
  *
  *   file name:  umsg.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/i18n/unicode/unirepl.h b/source/i18n/unicode/unirepl.h
index 1e98ff6..ddcb0ad 100644
--- a/source/i18n/unicode/unirepl.h
+++ b/source/i18n/unicode/unirepl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/unicode/unum.h b/source/i18n/unicode/unum.h
index 34d5442..065ce49 100644
--- a/source/i18n/unicode/unum.h
+++ b/source/i18n/unicode/unum.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -25,6 +25,7 @@
 #include "unicode/parseerr.h"
 #include "unicode/uformattable.h"
 #include "unicode/udisplaycontext.h"
+#include "unicode/ufieldpositer.h"
 
 /**
  * \file
@@ -249,7 +250,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UNUM_FORMAT_STYLE_COUNT=17,
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 
     /**
      * Default format
@@ -326,8 +327,8 @@
     /** @stable ICU 4.8 */
     UNUM_CURRENCY_INSERT,
 
-    // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
-    // it is needed for layout of DecimalFormatSymbols object.
+    /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
+     * it is needed for layout of DecimalFormatSymbols object. */
     /**
      * One more than the highest normal UCurrencySpacing value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
@@ -371,7 +372,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UNUM_FIELD_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UNumberFormatFields;
 
 
@@ -553,6 +554,59 @@
             UFieldPosition  *pos, /* 0 if ignore */
             UErrorCode*     status);
 
+#ifndef U_HIDE_DRAFT_API
+/**
+* Format a double using a UNumberFormat according to the UNumberFormat's locale,
+* and initialize a UFieldPositionIterator that enumerates the subcomponents of
+* the resulting string.
+*
+* @param format
+*          The formatter to use.
+* @param number
+*          The number to format.
+* @param result
+*          A pointer to a buffer to receive the NULL-terminated formatted
+*          number. If the formatted number fits into dest but cannot be
+*          NULL-terminated (length == resultLength) then the error code is set
+*          to U_STRING_NOT_TERMINATED_WARNING. If the formatted number doesn't
+*          fit into result then the error code is set to
+*          U_BUFFER_OVERFLOW_ERROR.
+* @param resultLength
+*          The maximum size of result.
+* @param fpositer
+*          A pointer to a UFieldPositionIterator created by {@link #ufieldpositer_open}
+*          (may be NULL if field position information is not needed, but in this
+*          case it's preferable to use {@link #unum_formatDouble}). Iteration
+*          information already present in the UFieldPositionIterator is deleted,
+*          and the iterator is reset to apply to the fields in the formatted
+*          string created by this function call. The field values and indexes
+*          returned by {@link #ufieldpositer_next} represent fields denoted by
+*          the UNumberFormatFields enum. Fields are not returned in a guaranteed
+*          order. Fields cannot overlap, but they may nest. For example, 1234
+*          could format as "1,234" which might consist of a grouping separator
+*          field for ',' and an integer field encompassing the entire string.
+* @param status
+*          A pointer to an UErrorCode to receive any errors
+* @return
+*          The total buffer size needed; if greater than resultLength, the
+*          output was truncated.
+* @see unum_formatDouble
+* @see unum_parse
+* @see unum_parseDouble
+* @see UFieldPositionIterator
+* @see UNumberFormatFields
+* @draft ICU 59
+*/
+U_DRAFT int32_t U_EXPORT2
+unum_formatDoubleForFields(const UNumberFormat* format,
+                           double number,
+                           UChar* result,
+                           int32_t resultLength,
+                           UFieldPositionIterator* fpositer,
+                           UErrorCode* status);
+
+#endif  /* U_HIDE_DRAFT_API */
+
 /**
 * Format a decimal number using a UNumberFormat.
 * The number will be formatted according to the UNumberFormat's locale.
@@ -1291,7 +1345,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
   UNUM_FORMAT_SYMBOL_COUNT = 28
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UNumberFormatSymbol;
 
 /**
diff --git a/source/i18n/unicode/unumsys.h b/source/i18n/unicode/unumsys.h
index 46289c0..795ec60 100644
--- a/source/i18n/unicode/unumsys.h
+++ b/source/i18n/unicode/unumsys.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/unicode/upluralrules.h b/source/i18n/unicode/upluralrules.h
index 52e34d8..99d93a4 100644
--- a/source/i18n/unicode/upluralrules.h
+++ b/source/i18n/unicode/upluralrules.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
@@ -15,6 +15,10 @@
 #if !UCONFIG_NO_FORMATTING
 
 #include "unicode/localpointer.h"
+#include "unicode/uenum.h"
+#ifndef U_HIDE_INTERNAL_API
+#include "unicode/unum.h"
+#endif  /* U_HIDE_INTERNAL_API */
 
 /**
  * \file
@@ -60,7 +64,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UPLURAL_TYPE_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 };
 /**
  * @stable ICU 50
@@ -83,7 +87,7 @@
  * @return A UPluralRules for the specified locale, or NULL if an error occurred.
  * @stable ICU 4.8
  */
-U_STABLE UPluralRules* U_EXPORT2
+U_CAPI UPluralRules* U_EXPORT2
 uplrules_open(const char *locale, UErrorCode *status);
 
 /**
@@ -95,7 +99,7 @@
  * @return A UPluralRules for the specified locale, or NULL if an error occurred.
  * @stable ICU 50
  */
-U_DRAFT UPluralRules* U_EXPORT2
+U_CAPI UPluralRules* U_EXPORT2
 uplrules_openForType(const char *locale, UPluralType type, UErrorCode *status);
 
 /**
@@ -103,7 +107,7 @@
  * @param uplrules The UPluralRules object to close.
  * @stable ICU 4.8
  */
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
 uplrules_close(UPluralRules *uplrules);
 
 
@@ -138,12 +142,55 @@
  * @return The length of keyword.
  * @stable ICU 4.8
  */
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
 uplrules_select(const UPluralRules *uplrules,
                double number,
                UChar *keyword, int32_t capacity,
                UErrorCode *status);
 
+#ifndef U_HIDE_INTERNAL_API
+/**
+ * Given a number, returns the keyword of the first rule that applies to the
+ * number, according to the UPluralRules object and given the number format
+ * specified by the UNumberFormat object.
+ * Note: This internal preview interface may be removed in the future if
+ * an architecturally cleaner solution reaches stable status.
+ * @param uplrules The UPluralRules object specifying the rules.
+ * @param number The number for which the rule has to be determined.
+ * @param fmt The UNumberFormat specifying how the number will be formatted
+ *        (this can affect the plural form, e.g. "1 dollar" vs "1.0 dollars").
+ *        If this is NULL, the function behaves like uplrules_select.
+ * @param keyword The keyword of the rule that applies to number.
+ * @param capacity The capacity of the keyword buffer.
+ * @param status A pointer to a UErrorCode to receive any errors.
+ * @return The length of keyword.
+ * @internal ICU 59 technology preview, may be removed in the future
+ */
+U_INTERNAL int32_t U_EXPORT2
+uplrules_selectWithFormat(const UPluralRules *uplrules,
+                          double number,
+                          const UNumberFormat *fmt,
+                          UChar *keyword, int32_t capacity,
+                          UErrorCode *status);
+
+#endif  /* U_HIDE_INTERNAL_API */
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * Creates a string enumeration of all plural rule keywords used in this
+ * UPluralRules object. The rule "other" is always present by default.
+ * @param uplrules The UPluralRules object specifying the rules for
+ *        a given locale.
+ * @param status A pointer to a UErrorCode to receive any errors.
+ * @return a string enumeration over plural rule keywords, or NULL
+ * upon error. The caller is responsible for closing the result.
+ * @draft ICU 59
+ */
+U_DRAFT UEnumeration* U_EXPORT2
+uplrules_getKeywords(const UPluralRules *uplrules,
+                     UErrorCode *status);
+#endif  /* U_HIDE_DRAFT_API */
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
 #endif
diff --git a/source/i18n/unicode/uregex.h b/source/i18n/unicode/uregex.h
index ab85719..f3e8214 100644
--- a/source/i18n/unicode/uregex.h
+++ b/source/i18n/unicode/uregex.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  uregex.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   indentation:4
 *
 *   created on: 2004mar09
diff --git a/source/i18n/unicode/uregion.h b/source/i18n/unicode/uregion.h
index 1b0f146..a5de496 100644
--- a/source/i18n/unicode/uregion.h
+++ b/source/i18n/unicode/uregion.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
@@ -113,7 +113,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     URGN_LIMIT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } URegionType;
 
 #if !UCONFIG_NO_FORMATTING
diff --git a/source/i18n/unicode/ureldatefmt.h b/source/i18n/unicode/ureldatefmt.h
index 40b3d59..0fde188 100644
--- a/source/i18n/unicode/ureldatefmt.h
+++ b/source/i18n/unicode/ureldatefmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
@@ -34,7 +34,7 @@
  * for determining which unit to use, such as deciding between "in 7 days"
  * and "in 1 week".
  *
- * @draft ICU 57
+ * @stable ICU 57
  */
 
 /**
@@ -66,104 +66,103 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UDAT_STYLE_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } UDateRelativeDateTimeFormatterStyle;
 
-#ifndef U_HIDE_DRAFT_API
 /**
  * Represents the unit for formatting a relative date. e.g "in 5 days"
  * or "next year"
- * @draft ICU 57
+ * @stable ICU 57
  */
 typedef enum URelativeDateTimeUnit {
     /**
      * Specifies that relative unit is year, e.g. "last year",
      * "in 5 years". 
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_YEAR,
     /**
      * Specifies that relative unit is quarter, e.g. "last quarter",
      * "in 5 quarters".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_QUARTER,
     /**
      * Specifies that relative unit is month, e.g. "last month",
      * "in 5 months".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_MONTH,
     /**
      * Specifies that relative unit is week, e.g. "last week",
      * "in 5 weeks".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_WEEK,
     /**
      * Specifies that relative unit is day, e.g. "yesterday",
      * "in 5 days".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_DAY,
     /**
      * Specifies that relative unit is hour, e.g. "1 hour ago",
      * "in 5 hours".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_HOUR,
     /**
      * Specifies that relative unit is minute, e.g. "1 minute ago",
      * "in 5 minutes".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_MINUTE,
     /**
      * Specifies that relative unit is second, e.g. "1 second ago",
      * "in 5 seconds".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_SECOND,
     /**
      * Specifies that relative unit is Sunday, e.g. "last Sunday",
      * "this Sunday", "next Sunday", "in 5 Sundays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_SUNDAY,
     /**
      * Specifies that relative unit is Monday, e.g. "last Monday",
      * "this Monday", "next Monday", "in 5 Mondays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_MONDAY,
     /**
      * Specifies that relative unit is Tuesday, e.g. "last Tuesday",
      * "this Tuesday", "next Tuesday", "in 5 Tuesdays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_TUESDAY,
     /**
      * Specifies that relative unit is Wednesday, e.g. "last Wednesday",
      * "this Wednesday", "next Wednesday", "in 5 Wednesdays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_WEDNESDAY,
     /**
      * Specifies that relative unit is Thursday, e.g. "last Thursday",
      * "this Thursday", "next Thursday", "in 5 Thursdays". 
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_THURSDAY,
     /**
      * Specifies that relative unit is Friday, e.g. "last Friday",
      * "this Friday", "next Friday", "in 5 Fridays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_FRIDAY,
     /**
      * Specifies that relative unit is Saturday, e.g. "last Saturday",
      * "this Saturday", "next Saturday", "in 5 Saturdays".
-     * @draft ICU 57
+     * @stable ICU 57
      */
     UDAT_REL_UNIT_SATURDAY,
 #ifndef U_HIDE_DEPRECATED_API
@@ -172,18 +171,15 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     UDAT_REL_UNIT_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } URelativeDateTimeUnit;
-#endif  /* U_HIDE_DRAFT_API */
-
-#ifndef U_HIDE_DRAFT_API
 
 /**
  * Opaque URelativeDateTimeFormatter object for use in C programs.
- * @draft ICU 57
+ * @stable ICU 57
  */
 struct URelativeDateTimeFormatter;
-typedef struct URelativeDateTimeFormatter URelativeDateTimeFormatter;  /**< C typedef for struct URelativeDateTimeFormatter. @draft ICU 57 */
+typedef struct URelativeDateTimeFormatter URelativeDateTimeFormatter;  /**< C typedef for struct URelativeDateTimeFormatter. @stable ICU 57 */
 
 
 /**
@@ -216,9 +212,9 @@
  * @return
  *          A pointer to a URelativeDateTimeFormatter object for the specified locale,
  *          or NULL if an error occurred.
- * @draft ICU 57
+ * @stable ICU 57
  */
-U_DRAFT URelativeDateTimeFormatter* U_EXPORT2
+U_STABLE URelativeDateTimeFormatter* U_EXPORT2
 ureldatefmt_open( const char*          locale,
                   UNumberFormat*       nfToAdopt,
                   UDateRelativeDateTimeFormatterStyle width,
@@ -229,9 +225,9 @@
  * Close a URelativeDateTimeFormatter object. Once closed it may no longer be used.
  * @param reldatefmt
  *            The URelativeDateTimeFormatter object to close.
- * @draft ICU 57
+ * @stable ICU 57
  */
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
 ureldatefmt_close(URelativeDateTimeFormatter *reldatefmt);
 
 #if U_SHOW_CPLUSPLUS_API
@@ -245,7 +241,7 @@
  *
  * @see LocalPointerBase
  * @see LocalPointer
- * @draft ICU 57
+ * @stable ICU 57
  */
 U_DEFINE_LOCAL_OPEN_POINTER(LocalURelativeDateTimeFormatterPointer, URelativeDateTimeFormatter, ureldatefmt_close);
 
@@ -279,9 +275,9 @@
  * @return
  *          The length of the formatted result; may be greater
  *          than resultCapacity, in which case an error is returned.
- * @draft ICU 57
+ * @stable ICU 57
  */
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
 ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
                     double                offset,
                     URelativeDateTimeUnit unit,
@@ -315,9 +311,9 @@
  * @return
  *          The length of the formatted result; may be greater
  *          than resultCapacity, in which case an error is returned.
- * @draft ICU 57
+ * @stable ICU 57
  */
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
 ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
                     double                offset,
                     URelativeDateTimeUnit unit,
@@ -352,9 +348,9 @@
  * @return
  *          The length of the formatted result; may be greater than resultCapacity,
  *          in which case an error is returned.
- * @draft ICU 57
+ * @stable ICU 57
  */
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
 ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
                     const UChar *     relativeDateString,
                     int32_t           relativeDateStringLen,
@@ -364,8 +360,6 @@
                     int32_t           resultCapacity,
                     UErrorCode*       status );
 
-#endif  /* U_HIDE_DRAFT_API */
-
 #endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION */
 
 #endif
diff --git a/source/i18n/unicode/usearch.h b/source/i18n/unicode/usearch.h
index b1d53f5..ebfcdf7 100644
--- a/source/i18n/unicode/usearch.h
+++ b/source/i18n/unicode/usearch.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -196,7 +196,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     USEARCH_ATTRIBUTE_COUNT = 3
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } USearchAttribute;
 
 /**
@@ -272,7 +272,7 @@
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
     USEARCH_ATTRIBUTE_VALUE_COUNT
-#endif  // U_HIDE_DEPRECATED_API
+#endif  /* U_HIDE_DEPRECATED_API */
 } USearchAttributeValue;
 
 /* open and close ------------------------------------------------------ */
diff --git a/source/i18n/unicode/uspoof.h b/source/i18n/unicode/uspoof.h
index 40b7338..6c2ac5e 100644
--- a/source/i18n/unicode/uspoof.h
+++ b/source/i18n/unicode/uspoof.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
@@ -6,7 +6,7 @@
 * and others. All Rights Reserved.
 ***************************************************************************
 *   file name:  uspoof.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/unicode/utmscale.h b/source/i18n/unicode/utmscale.h
index 8f3c42a..d8b8a2e 100644
--- a/source/i18n/unicode/utmscale.h
+++ b/source/i18n/unicode/utmscale.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -283,10 +283,14 @@
      */
     UDTS_UNIX_MICROSECONDS_TIME,
 
+#ifndef U_HIDE_DEPRECATED_API
     /**
      * The first unused time scale value. The limit of this enum
+     * @deprecated ICU 59 The numeric value may change over time, see ICU ticket #12420.
      */
     UDTS_MAX_SCALE
+#endif  /* U_HIDE_DEPRECATED_API */
+
 } UDateTimeScale;
 
 /**
@@ -423,12 +427,15 @@
 
 #endif /* U_HIDE_INTERNAL_API */
 
+#ifndef U_HIDE_DEPRECATED_API
     /**
      * The number of time scale values, in other words limit of this enum.
      * 
      * @see utmscale_getTimeScaleValue
+     * @deprecated ICU 59 The numeric value may change over time, see ICU ticket #12420.
      */
     UTSV_MAX_SCALE_VALUE=11
+#endif  /* U_HIDE_DEPRECATED_API */
 
 } UTimeScaleValue;
 
diff --git a/source/i18n/unicode/utrans.h b/source/i18n/unicode/utrans.h
index 9d70eeb..d0f05cf 100644
--- a/source/i18n/unicode/utrans.h
+++ b/source/i18n/unicode/utrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unicode/vtzone.h b/source/i18n/unicode/vtzone.h
index 75a5fca..18265d3 100644
--- a/source/i18n/unicode/vtzone.h
+++ b/source/i18n/unicode/vtzone.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/unum.cpp b/source/i18n/unum.cpp
index 01170b4..b8d2661 100644
--- a/source/i18n/unum.cpp
+++ b/source/i18n/unum.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -247,6 +247,33 @@
   return res.extract(result, resultLength, *status);
 }
 
+U_CAPI int32_t U_EXPORT2
+unum_formatDoubleForFields(const UNumberFormat* format,
+                           double number,
+                           UChar* result,
+                           int32_t resultLength,
+                           UFieldPositionIterator* fpositer,
+                           UErrorCode* status)
+{
+    if (U_FAILURE(*status))
+        return -1;
+
+    if (result == NULL ? resultLength != 0 : resultLength < 0) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return -1;
+    }
+
+    UnicodeString res;
+    if (result != NULL) {
+        // NULL destination for pure preflighting: empty dummy string
+        // otherwise, alias the destination buffer
+        res.setTo(result, 0, resultLength);
+    }
+
+    ((const NumberFormat*)format)->format(number, res, (FieldPositionIterator*)fpositer, *status);
+
+    return res.extract(result, resultLength, *status);
+}
 
 U_CAPI int32_t U_EXPORT2 
 unum_formatDecimal(const    UNumberFormat*  fmt,
diff --git a/source/i18n/unumsys.cpp b/source/i18n/unumsys.cpp
index f643e34..4a0d0fa 100644
--- a/source/i18n/unumsys.cpp
+++ b/source/i18n/unumsys.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/upluralrules.cpp b/source/i18n/upluralrules.cpp
index 5e1eebf..24e74e3 100644
--- a/source/i18n/upluralrules.cpp
+++ b/source/i18n/upluralrules.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
@@ -15,6 +15,8 @@
 #include "unicode/plurrule.h"
 #include "unicode/locid.h"
 #include "unicode/unistr.h"
+#include "unicode/unum.h"
+#include "unicode/numfmt.h"
 
 U_NAMESPACE_USE
 
@@ -54,5 +56,48 @@
     return result.extract(keyword, capacity, *status);
 }
 
+U_CAPI int32_t U_EXPORT2
+uplrules_selectWithFormat(const UPluralRules *uplrules,
+                          double number,
+                          const UNumberFormat *fmt,
+                          UChar *keyword, int32_t capacity,
+                          UErrorCode *status)
+{
+    if (U_FAILURE(*status)) {
+        return 0;
+    }
+    const PluralRules* plrules = reinterpret_cast<const PluralRules*>(uplrules);
+    const NumberFormat* nf = reinterpret_cast<const NumberFormat*>(fmt);
+    if (plrules == NULL || nf == NULL || ((keyword == NULL)? capacity != 0 : capacity < 0)) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+    Formattable obj(number);
+    UnicodeString result = plrules->select(obj, *nf, *status);
+    return result.extract(keyword, capacity, *status);
+}
+
+U_CAPI UEnumeration* U_EXPORT2
+uplrules_getKeywords(const UPluralRules *uplrules,
+                     UErrorCode *status)
+{
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    const PluralRules* plrules = reinterpret_cast<const PluralRules*>(uplrules);
+    if (plrules == NULL) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return NULL;
+    }
+    StringEnumeration *senum = plrules->getKeywords(*status);
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    if (senum == NULL) {
+        *status = U_MEMORY_ALLOCATION_ERROR;
+        return NULL;
+    }
+    return uenum_openFromStringEnumeration(senum, status);
+}
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/source/i18n/uregex.cpp b/source/i18n/uregex.cpp
index b3e137a..0c26bdf 100644
--- a/source/i18n/uregex.cpp
+++ b/source/i18n/uregex.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/uregexc.cpp b/source/i18n/uregexc.cpp
index 5c3f6eb..c7d3bcd 100644
--- a/source/i18n/uregexc.cpp
+++ b/source/i18n/uregexc.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/uregion.cpp b/source/i18n/uregion.cpp
index 8e079ec..79a6237 100644
--- a/source/i18n/uregion.cpp
+++ b/source/i18n/uregion.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *****************************************************************************************
diff --git a/source/i18n/usearch.cpp b/source/i18n/usearch.cpp
index 4bb3fc4..645db01 100644
--- a/source/i18n/usearch.cpp
+++ b/source/i18n/usearch.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/uspoof.cpp b/source/i18n/uspoof.cpp
index febaddc..92b3b0c 100644
--- a/source/i18n/uspoof.cpp
+++ b/source/i18n/uspoof.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
@@ -6,7 +6,7 @@
 * and others. All Rights Reserved.
 ***************************************************************************
 *   file name:  uspoof.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/uspoof_build.cpp b/source/i18n/uspoof_build.cpp
index 4892b9d..75c52e0 100644
--- a/source/i18n/uspoof_build.cpp
+++ b/source/i18n/uspoof_build.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ***************************************************************************
@@ -6,7 +6,7 @@
  * and others. All Rights Reserved.
  ***************************************************************************
  *   file name:  uspoof_build.cpp
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/i18n/uspoof_conf.cpp b/source/i18n/uspoof_conf.cpp
index 587dc4e..f478afa 100644
--- a/source/i18n/uspoof_conf.cpp
+++ b/source/i18n/uspoof_conf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  uspoof_conf.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/uspoof_conf.h b/source/i18n/uspoof_conf.h
index bc5e4a9..4a4f659 100644
--- a/source/i18n/uspoof_conf.h
+++ b/source/i18n/uspoof_conf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *   file name:  uspoof_conf.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/i18n/uspoof_impl.cpp b/source/i18n/uspoof_impl.cpp
index a062d3e..745d5e8 100644
--- a/source/i18n/uspoof_impl.cpp
+++ b/source/i18n/uspoof_impl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/uspoof_impl.h b/source/i18n/uspoof_impl.h
index 5307670..a6b1e73 100644
--- a/source/i18n/uspoof_impl.h
+++ b/source/i18n/uspoof_impl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ***************************************************************************
diff --git a/source/i18n/usrchimp.h b/source/i18n/usrchimp.h
index d587c9e..88b2e21 100644
--- a/source/i18n/usrchimp.h
+++ b/source/i18n/usrchimp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/i18n/utf16collationiterator.cpp b/source/i18n/utf16collationiterator.cpp
index 733729f..7598b0e 100644
--- a/source/i18n/utf16collationiterator.cpp
+++ b/source/i18n/utf16collationiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/utf16collationiterator.h b/source/i18n/utf16collationiterator.h
index 505ab81..fd3a05e 100644
--- a/source/i18n/utf16collationiterator.h
+++ b/source/i18n/utf16collationiterator.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/utf8collationiterator.cpp b/source/i18n/utf8collationiterator.cpp
index 0a0205e..85d4b76 100644
--- a/source/i18n/utf8collationiterator.cpp
+++ b/source/i18n/utf8collationiterator.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/utf8collationiterator.h b/source/i18n/utf8collationiterator.h
index 8deb5ea..9a3ec45 100644
--- a/source/i18n/utf8collationiterator.h
+++ b/source/i18n/utf8collationiterator.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/utmscale.c b/source/i18n/utmscale.cpp
similarity index 98%
rename from source/i18n/utmscale.c
rename to source/i18n/utmscale.cpp
index 5b515f1..7bf6eec 100644
--- a/source/i18n/utmscale.c
+++ b/source/i18n/utmscale.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/utrans.cpp b/source/i18n/utrans.cpp
index 6a4c4a7..5124833 100644
--- a/source/i18n/utrans.cpp
+++ b/source/i18n/utrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/i18n/valueformatter.cpp b/source/i18n/valueformatter.cpp
index 45b08f6..e769f36 100644
--- a/source/i18n/valueformatter.cpp
+++ b/source/i18n/valueformatter.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/valueformatter.h b/source/i18n/valueformatter.h
index 434ee55..2802f18 100644
--- a/source/i18n/valueformatter.h
+++ b/source/i18n/valueformatter.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/visibledigits.cpp b/source/i18n/visibledigits.cpp
index 1fea350..03cfc68 100644
--- a/source/i18n/visibledigits.cpp
+++ b/source/i18n/visibledigits.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  * Copyright (C) 2016, International Business Machines
diff --git a/source/i18n/visibledigits.h b/source/i18n/visibledigits.h
index eba2a1b..35ac069 100644
--- a/source/i18n/visibledigits.h
+++ b/source/i18n/visibledigits.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************* * Copyright (C) 2015, International Business Machines
diff --git a/source/i18n/vtzone.cpp b/source/i18n/vtzone.cpp
index e0621cc..b82327d 100644
--- a/source/i18n/vtzone.cpp
+++ b/source/i18n/vtzone.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -358,7 +358,7 @@
 /*
  * Create a default TZNAME from TZID
  */
-static void getDefaultTZName(const UnicodeString tzid, UBool isDST, UnicodeString& zonename) {
+static void getDefaultTZName(const UnicodeString &tzid, UBool isDST, UnicodeString& zonename) {
     zonename = tzid;
     if (isDST) {
         zonename += UNICODE_STRING_SIMPLE("(DST)");
diff --git a/source/i18n/vzone.cpp b/source/i18n/vzone.cpp
index 8d2bef7..7e3a554 100644
--- a/source/i18n/vzone.cpp
+++ b/source/i18n/vzone.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/vzone.h b/source/i18n/vzone.h
index fc5df4d..17df92e 100644
--- a/source/i18n/vzone.h
+++ b/source/i18n/vzone.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/windtfmt.cpp b/source/i18n/windtfmt.cpp
index 10243a7..be5f384 100644
--- a/source/i18n/windtfmt.cpp
+++ b/source/i18n/windtfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -35,7 +35,9 @@
 #include "windtfmt.h"
 #include "wintzimpl.h"
 
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
@@ -92,12 +94,83 @@
     return result;
 }
 
+// TODO: This is copied in both winnmfmt.cpp and windtfmt.cpp, but really should
+// be factored out into a common helper for both.
+static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeString** buffer)
+{
+    UErrorCode status = U_ZERO_ERROR;
+    char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+
+    // Convert from names like "en_CA" and "de_DE@collation=phonebook" to "en-CA" and "de-DE-u-co-phonebk".
+    int32_t length = uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &status);
+
+    if (U_SUCCESS(status))
+    {
+        // Need it to be UTF-16, not 8-bit
+        // TODO: This seems like a good thing for a helper
+        wchar_t bcp47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+        int32_t i;
+        for (i = 0; i < UPRV_LENGTHOF(bcp47Tag); i++)
+        {
+            if (asciiBCP47Tag[i] == '\0')
+            {
+                break;
+            }
+            else
+            {
+                // normally just copy the character
+                bcp47Tag[i] = static_cast<wchar_t>(asciiBCP47Tag[i]);
+            }
+        }
+
+        // Ensure it's null terminated
+        if (i < (UPRV_LENGTHOF(bcp47Tag) - 1))
+        {
+            bcp47Tag[i] = L'\0';
+        }
+        else
+        {
+            // Ran out of room.
+            bcp47Tag[UPRV_LENGTHOF(bcp47Tag) - 1] = L'\0';
+        }
+
+
+        wchar_t windowsLocaleName[LOCALE_NAME_MAX_LENGTH] = {};
+
+        // Note: On Windows versions below 10, there is no support for locale name aliases.
+        // This means that it will fail for locales where ICU has a completely different
+        // name (like ku vs ckb), and it will also not work for alternate sort locale
+        // names like "de-DE-u-co-phonebk".
+        
+        // TODO: We could add some sort of exception table for cases like ku vs ckb.
+
+        int length = ResolveLocaleName(bcp47Tag, windowsLocaleName, UPRV_LENGTHOF(windowsLocaleName));
+
+        if (length > 0)
+        {
+            *buffer = new UnicodeString(windowsLocaleName);
+        }
+        else
+        {
+            status = U_UNSUPPORTED_ERROR;
+        }
+    }
+    return status;
+}
+
 // TODO: Range-check timeStyle, dateStyle
 Win32DateFormat::Win32DateFormat(DateFormat::EStyle timeStyle, DateFormat::EStyle dateStyle, const Locale &locale, UErrorCode &status)
-  : DateFormat(), fDateTimeMsg(NULL), fTimeStyle(timeStyle), fDateStyle(dateStyle), fLocale(locale), fZoneID()
+  : DateFormat(), fDateTimeMsg(NULL), fTimeStyle(timeStyle), fDateStyle(dateStyle), fLocale(locale), fZoneID(), fWindowsLocaleName(nullptr)
 {
     if (U_SUCCESS(status)) {
-        fLCID = locale.getLCID();
+        GetEquivalentWindowsLocaleName(locale, &fWindowsLocaleName);
+        // Note: In the previous code, it would look up the LCID for the locale, and if
+        // the locale was not recognized then it would get an LCID of 0, which is a
+        // synonym for LOCALE_USER_DEFAULT on Windows.
+        // If the above method fails, then fWindowsLocaleName will remain as nullptr, and 
+        // then we will pass nullptr to API GetLocaleInfoEx, which is the same as passing
+        // LOCALE_USER_DEFAULT.
+
         fTZI = NEW_ARRAY(TIME_ZONE_INFORMATION, 1);
         uprv_memset(fTZI, 0, sizeof(TIME_ZONE_INFORMATION));
         adoptCalendar(Calendar::createInstance(locale, status));
@@ -115,6 +188,7 @@
 //    delete fCalendar;
     uprv_free(fTZI);
     delete fDateTimeMsg;
+    delete fWindowsLocaleName;
 }
 
 Win32DateFormat &Win32DateFormat::operator=(const Win32DateFormat &other)
@@ -128,13 +202,14 @@
     this->fTimeStyle   = other.fTimeStyle;
     this->fDateStyle   = other.fDateStyle;
     this->fLocale      = other.fLocale;
-    this->fLCID        = other.fLCID;
 //    this->fCalendar    = other.fCalendar->clone();
     this->fZoneID      = other.fZoneID;
 
     this->fTZI = NEW_ARRAY(TIME_ZONE_INFORMATION, 1);
     *this->fTZI = *other.fTZI;
 
+    this->fWindowsLocaleName = other.fWindowsLocaleName == NULL ? NULL : new UnicodeString(*other.fWindowsLocaleName);
+
     return *this;
 }
 
@@ -231,18 +306,25 @@
 
 void Win32DateFormat::formatDate(const SYSTEMTIME *st, UnicodeString &appendTo) const
 {
-    int result;
+    int result=0;
     wchar_t stackBuffer[STACK_BUFFER_SIZE];
     wchar_t *buffer = stackBuffer;
+    const wchar_t *localeName = nullptr;
 
-    result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE);
+    if (fWindowsLocaleName != nullptr)
+    {
+        localeName = reinterpret_cast<const wchar_t*>(toOldUCharPtr(fWindowsLocaleName->getTerminatedBuffer()));
+    }
+
+    result = GetDateFormatEx(localeName, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE, NULL);
 
     if (result == 0) {
         if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
-            int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0);
+            int newLength = GetDateFormatEx(localeName, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0, NULL);
 
             buffer = NEW_ARRAY(wchar_t, newLength);
-            GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength);
+
+            GetDateFormatEx(localeName, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength, NULL);
         }
     }
 
@@ -260,15 +342,22 @@
     int result;
     wchar_t stackBuffer[STACK_BUFFER_SIZE];
     wchar_t *buffer = stackBuffer;
+    const wchar_t *localeName = nullptr;
 
-    result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE);
+    if (fWindowsLocaleName != nullptr)
+    {
+        localeName = reinterpret_cast<const wchar_t*>(toOldUCharPtr(fWindowsLocaleName->getTerminatedBuffer()));
+    }
+
+    result = GetTimeFormatEx(localeName, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE);
 
     if (result == 0) {
         if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
-            int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0);
+            int newLength = GetTimeFormatEx(localeName, tfFlags[fTimeStyle], st, NULL, NULL, 0);
 
             buffer = NEW_ARRAY(wchar_t, newLength);
-            GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, newLength);
+
+            GetTimeFormatEx(localeName, tfFlags[fTimeStyle], st, NULL, buffer, newLength);
         }
     }
 
@@ -314,5 +403,5 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
diff --git a/source/i18n/windtfmt.h b/source/i18n/windtfmt.h
index 58ac71b..3306905 100644
--- a/source/i18n/windtfmt.h
+++ b/source/i18n/windtfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -95,7 +95,7 @@
      * <pre>
      * .   Base* polymorphic_pointer = createPolymorphicObject();
      * .   if (polymorphic_pointer->getDynamicClassID() ==
-     * .       erived::getStaticClassID()) ...
+     * .       derived::getStaticClassID()) ...
      * </pre>
      * @return          The class ID for all objects of this class.
      */
@@ -124,15 +124,16 @@
     DateFormat::EStyle fTimeStyle;
     DateFormat::EStyle fDateStyle;
     Locale fLocale;
-    int32_t fLCID;
     UnicodeString fZoneID;
     TIME_ZONE_INFORMATION *fTZI;
+
+    UnicodeString* fWindowsLocaleName; // Stores the equivalent Windows locale name.
 };
 
 U_NAMESPACE_END
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
 #endif // __WINDTFMT
diff --git a/source/i18n/winnmfmt.cpp b/source/i18n/winnmfmt.cpp
index d7e9872..3e03cb1 100644
--- a/source/i18n/winnmfmt.cpp
+++ b/source/i18n/winnmfmt.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -28,7 +28,9 @@
 #include "uassert.h"
 #include "locmap.h"
 
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
@@ -58,43 +60,43 @@
  * end in ";0" then the return value should be multiplied by 10.
  * (e.g. "3" => 30, "3;2" => 320)
  */
-static UINT getGrouping(const char *grouping)
+static UINT getGrouping(const wchar_t *grouping)
 {
     UINT g = 0;
-	const char *s;
+    const wchar_t *s;
 
-    for (s = grouping; *s != '\0'; s += 1) {
-        if (*s > '0' && *s < '9') {
-            g = g * 10 + (*s - '0');
-        } else if (*s != ';') {
+    for (s = grouping; *s != L'\0'; s += 1) {
+        if (*s > L'0' && *s < L'9') {
+            g = g * 10 + (*s - L'0');
+        } else if (*s != L';') {
             break;
         }
     }
 
-    if (*s != '0') {
+    if (*s != L'0') {
         g *= 10;
     }
 
     return g;
 }
 
-static void getNumberFormat(NUMBERFMTW *fmt, int32_t lcid)
+static void getNumberFormat(NUMBERFMTW *fmt, const wchar_t *windowsLocaleName)
 {
-    char buf[10];
+    wchar_t buf[10];
 
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_IDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ILZERO,  (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_IDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ILZERO,  (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
 
-    GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SGROUPING, (LPWSTR)buf, 10);
     fmt->Grouping = getGrouping(buf);
 
     fmt->lpDecimalSep = NEW_ARRAY(wchar_t, 6);
-    GetLocaleInfoW(lcid, LOCALE_SDECIMAL,  fmt->lpDecimalSep,  6);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SDECIMAL,  fmt->lpDecimalSep,  6);
 
     fmt->lpThousandSep = NEW_ARRAY(wchar_t, 6);
-    GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_STHOUSAND, fmt->lpThousandSep, 6);
 
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
 }
 
 static void freeNumberFormat(NUMBERFMTW *fmt)
@@ -105,27 +107,27 @@
     }
 }
 
-static void getCurrencyFormat(CURRENCYFMTW *fmt, int32_t lcid)
+static void getCurrencyFormat(CURRENCYFMTW *fmt, const wchar_t *windowsLocaleName)
 {
-    char buf[10];
+    wchar_t buf[10];
 
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ILZERO, (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ICURRDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ILZERO, (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
 
-    GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONGROUPING, (LPWSTR)buf, sizeof(buf));
     fmt->Grouping = getGrouping(buf);
 
     fmt->lpDecimalSep = NEW_ARRAY(wchar_t, 6);
-    GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP,  fmt->lpDecimalSep,  6);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONDECIMALSEP,  fmt->lpDecimalSep,  6);
 
     fmt->lpThousandSep = NEW_ARRAY(wchar_t, 6);
-    GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6);
 
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR,  (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
-    GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR,  (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT));
 
     fmt->lpCurrencySymbol = NEW_ARRAY(wchar_t, 8);
-    GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8);
+    GetLocaleInfoEx(windowsLocaleName, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8);
 }
 
 static void freeCurrencyFormat(CURRENCYFMTW *fmt)
@@ -137,12 +139,84 @@
     }
 }
 
+// TODO: This is copied in both winnmfmt.cpp and windtfmt.cpp, but really should
+// be factored out into a common helper for both.
+static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeString** buffer)
+{
+    UErrorCode status = U_ZERO_ERROR;
+    char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+
+    // Convert from names like "en_CA" and "de_DE@collation=phonebook" to "en-CA" and "de-DE-u-co-phonebk".
+    int32_t length = uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &status);
+
+    if (U_SUCCESS(status))
+    {
+        // Need it to be UTF-16, not 8-bit
+        // TODO: This seems like a good thing for a helper
+        wchar_t bcp47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+        int32_t i;
+        for (i = 0; i < UPRV_LENGTHOF(bcp47Tag); i++)
+        {
+            if (asciiBCP47Tag[i] == '\0')
+            {
+                break;
+            }
+            else
+            {
+                // normally just copy the character
+                bcp47Tag[i] = static_cast<wchar_t>(asciiBCP47Tag[i]);
+            }
+        }
+
+        // Ensure it's null terminated
+        if (i < (UPRV_LENGTHOF(bcp47Tag) - 1))
+        {
+            bcp47Tag[i] = L'\0';
+        }
+        else
+        {
+            // Ran out of room.
+            bcp47Tag[UPRV_LENGTHOF(bcp47Tag) - 1] = L'\0';
+        }
+
+
+        wchar_t windowsLocaleName[LOCALE_NAME_MAX_LENGTH] = {};
+
+        // Note: On Windows versions below 10, there is no support for locale name aliases.
+        // This means that it will fail for locales where ICU has a completely different
+        // name (like ku vs ckb), and it will also not work for alternate sort locale
+        // names like "de-DE-u-co-phonebk".
+
+        // TODO: We could add some sort of exception table for cases like ku vs ckb.
+
+        int length = ResolveLocaleName(bcp47Tag, windowsLocaleName, UPRV_LENGTHOF(windowsLocaleName));
+
+        if (length > 0)
+        {
+            *buffer = new UnicodeString(windowsLocaleName);
+        }
+        else
+        {
+            status = U_UNSUPPORTED_ERROR;
+        }
+    }
+    return status;
+}
+
 Win32NumberFormat::Win32NumberFormat(const Locale &locale, UBool currency, UErrorCode &status)
-  : NumberFormat(), fCurrency(currency), fFormatInfo(NULL), fFractionDigitsSet(FALSE)
+  : NumberFormat(), fCurrency(currency), fFormatInfo(NULL), fFractionDigitsSet(FALSE), fWindowsLocaleName(nullptr)
 {
     if (!U_FAILURE(status)) {
         fLCID = locale.getLCID();
 
+        GetEquivalentWindowsLocaleName(locale, &fWindowsLocaleName);
+        // Note: In the previous code, it would look up the LCID for the locale, and if
+        // the locale was not recognized then it would get an LCID of 0, which is a
+        // synonym for LOCALE_USER_DEFAULT on Windows.
+        // If the above method fails, then fWindowsLocaleName will remain as nullptr, and 
+        // then we will pass nullptr to API GetLocaleInfoEx, which is the same as passing
+        // LOCALE_USER_DEFAULT.
+
         // Resolve actual locale to be used later
         UErrorCode tmpsts = U_ZERO_ERROR;
         char tmpLocID[ULOC_FULLNAME_CAPACITY];
@@ -152,12 +226,19 @@
             fLocale = Locale((const char*)tmpLocID);
         }
 
+        const wchar_t *localeName = nullptr;
+
+        if (fWindowsLocaleName != nullptr)
+        {
+            localeName = reinterpret_cast<const wchar_t*>(toOldUCharPtr(fWindowsLocaleName->getTerminatedBuffer()));
+        }
+
         fFormatInfo = (FormatInfo*)uprv_malloc(sizeof(FormatInfo));
 
         if (fCurrency) {
-            getCurrencyFormat(&fFormatInfo->currency, fLCID);
+            getCurrencyFormat(&fFormatInfo->currency, localeName);
         } else {
-            getNumberFormat(&fFormatInfo->number, fLCID);
+            getNumberFormat(&fFormatInfo->number, localeName);
         }
     }
 }
@@ -182,6 +263,7 @@
 
         uprv_free(fFormatInfo);
     }
+    delete fWindowsLocaleName;
 }
 
 Win32NumberFormat &Win32NumberFormat::operator=(const Win32NumberFormat &other)
@@ -192,13 +274,21 @@
     this->fLocale            = other.fLocale;
     this->fLCID              = other.fLCID;
     this->fFractionDigitsSet = other.fFractionDigitsSet;
+    this->fWindowsLocaleName = other.fWindowsLocaleName == NULL ? NULL : new UnicodeString(*other.fWindowsLocaleName);
+    
+    const wchar_t *localeName = nullptr;
+
+    if (fWindowsLocaleName != nullptr)
+    {
+        localeName = reinterpret_cast<const wchar_t*>(toOldUCharPtr(fWindowsLocaleName->getTerminatedBuffer()));
+    }
 
     if (fCurrency) {
         freeCurrencyFormat(&fFormatInfo->currency);
-        getCurrencyFormat(&fFormatInfo->currency, fLCID);
+        getCurrencyFormat(&fFormatInfo->currency, localeName);
     } else {
         freeNumberFormat(&fFormatInfo->number);
-        getNumberFormat(&fFormatInfo->number, fLCID);
+        getNumberFormat(&fFormatInfo->number, localeName);
     }
 
     return *this;
@@ -299,6 +389,13 @@
     formatInfo = *fFormatInfo;
     buffer[0] = 0x0000;
 
+    const wchar_t *localeName = nullptr;
+
+    if (fWindowsLocaleName != nullptr)
+    {
+        localeName = reinterpret_cast<const wchar_t*>(toOldUCharPtr(fWindowsLocaleName->getTerminatedBuffer()));
+    }
+
     if (fCurrency) {
         if (fFractionDigitsSet) {
             formatInfo.currency.NumDigits = (UINT) numDigits;
@@ -308,17 +405,17 @@
             formatInfo.currency.Grouping = 0;
         }
 
-        result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, STACK_BUFFER_SIZE);
+        result = GetCurrencyFormatEx(localeName, 0, nBuffer, &formatInfo.currency, buffer, STACK_BUFFER_SIZE);
 
         if (result == 0) {
             DWORD lastError = GetLastError();
 
             if (lastError == ERROR_INSUFFICIENT_BUFFER) {
-                int newLength = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, NULL, 0);
+                int newLength = GetCurrencyFormatEx(localeName, 0, nBuffer, &formatInfo.currency, NULL, 0);
 
                 buffer = NEW_ARRAY(wchar_t, newLength);
                 buffer[0] = 0x0000;
-                GetCurrencyFormatW(fLCID, 0, nBuffer,  &formatInfo.currency, buffer, newLength);
+                GetCurrencyFormatEx(localeName, 0, nBuffer,  &formatInfo.currency, buffer, newLength);
             }
         }
     } else {
@@ -330,15 +427,15 @@
             formatInfo.number.Grouping = 0;
         }
 
-        result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, STACK_BUFFER_SIZE);
+        result = GetNumberFormatEx(localeName, 0, nBuffer, &formatInfo.number, buffer, STACK_BUFFER_SIZE);
 
         if (result == 0) {
             if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
-                int newLength = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, NULL, 0);
+                int newLength = GetNumberFormatEx(localeName, 0, nBuffer, &formatInfo.number, NULL, 0);
 
                 buffer = NEW_ARRAY(wchar_t, newLength);
                 buffer[0] = 0x0000;
-                GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, newLength);
+                GetNumberFormatEx(localeName, 0, nBuffer, &formatInfo.number, buffer, newLength);
             }
         }
     }
diff --git a/source/i18n/winnmfmt.h b/source/i18n/winnmfmt.h
index dfc32dd..6139c1f 100644
--- a/source/i18n/winnmfmt.h
+++ b/source/i18n/winnmfmt.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -128,7 +128,7 @@
      * <pre>
      * .   Base* polymorphic_pointer = createPolymorphicObject();
      * .   if (polymorphic_pointer->getDynamicClassID() ==
-     * .       erived::getStaticClassID()) ...
+     * .       derived::getStaticClassID()) ...
      * </pre>
      * @return          The class ID for all objects of this class.
      */
@@ -155,6 +155,7 @@
     FormatInfo *fFormatInfo;
     UBool fFractionDigitsSet;
 
+    UnicodeString* fWindowsLocaleName; // Stores the equivalent Windows locale name.
 };
 
 U_NAMESPACE_END
diff --git a/source/i18n/wintzimpl.cpp b/source/i18n/wintzimpl.cpp
index 30b9c49..7a87d1c 100644
--- a/source/i18n/wintzimpl.cpp
+++ b/source/i18n/wintzimpl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API && !UCONFIG_NO_FORMATTING 
+#if U_PLATFORM_USES_ONLY_WIN32_API && !UCONFIG_NO_FORMATTING 
 
 #include "wintzimpl.h"
 
@@ -24,7 +24,9 @@
 #include "uassert.h"
 #include "cmemory.h"
 
+#ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
+#endif
 #   define VC_EXTRALEAN
 #   define NOUSER
 #   define NOSERVICE
diff --git a/source/i18n/wintzimpl.h b/source/i18n/wintzimpl.h
index c955b8c..772ea95 100644
--- a/source/i18n/wintzimpl.h
+++ b/source/i18n/wintzimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 /**
  * \file 
  * \brief C API: Utilities for dealing w/ Windows time zones.
@@ -34,6 +34,6 @@
 uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length);
 
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
 
 #endif /* __WINTZIMPL */
diff --git a/source/i18n/zonemeta.cpp b/source/i18n/zonemeta.cpp
index fdf333c..84a9657 100644
--- a/source/i18n/zonemeta.cpp
+++ b/source/i18n/zonemeta.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -17,7 +17,7 @@
 #include "unicode/ustring.h"
 #include "unicode/putil.h"
 #include "unicode/simpletz.h"
-
+#include "unicode/strenum.h"
 #include "umutex.h"
 #include "uvector.h"
 #include "cmemory.h"
@@ -28,6 +28,7 @@
 #include "uresimp.h"
 #include "uhash.h"
 #include "olsontz.h"
+#include "uinvchar.h"
 
 static UMutex gZoneMetaLock = U_MUTEX_INITIALIZER;
 
@@ -255,6 +256,12 @@
     tzid.extract(utzid, ZID_KEY_MAX + 1, tmpStatus);
     U_ASSERT(tmpStatus == U_ZERO_ERROR);    // we checked the length of tzid already
 
+    if (!uprv_isInvariantUString(utzid, -1)) {
+        // All of known tz IDs are only containing ASCII invariant characters.
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return NULL;
+    }
+
     // Check if it was already cached
     umtx_lock(&gZoneMetaLock);
     {
diff --git a/source/i18n/zonemeta.h b/source/i18n/zonemeta.h
index 84be555..9dbcc87 100644
--- a/source/i18n/zonemeta.h
+++ b/source/i18n/zonemeta.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -41,7 +41,11 @@
     /**
      * Return the canonical id for this tzid defined by CLDR, which might be the id itself.
      * This overload method returns a persistent const UChar*, which is guranteed to persist
-     * (a pointer to a resource).
+     * (a pointer to a resource). If the given system tzid is not known, U_ILLEGAL_ARGUMENT_ERROR
+     * is set in the status.
+     * @param tzid Zone ID
+     * @param status Receives the status
+     * @return The canonical ID for the input time zone ID
      */
     static const UChar* U_EXPORT2 getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status);
 
diff --git a/source/i18n/zrule.cpp b/source/i18n/zrule.cpp
index 2d7b36c..bdf8496 100644
--- a/source/i18n/zrule.cpp
+++ b/source/i18n/zrule.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/zrule.h b/source/i18n/zrule.h
index 9b694af..f395ad4 100644
--- a/source/i18n/zrule.h
+++ b/source/i18n/zrule.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ztrans.cpp b/source/i18n/ztrans.cpp
index 92fd781..9dbe9bb 100644
--- a/source/i18n/ztrans.cpp
+++ b/source/i18n/ztrans.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/i18n/ztrans.h b/source/i18n/ztrans.h
index 2ddf7ba..b23bb4f 100644
--- a/source/i18n/ztrans.h
+++ b/source/i18n/ztrans.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/icudefs.mk.in b/source/icudefs.mk.in
index 46568f3..9abb872 100644
--- a/source/icudefs.mk.in
+++ b/source/icudefs.mk.in
@@ -118,6 +118,7 @@
 RANLIB = @RANLIB@
 COMPILE_LINK_ENVVAR = @COMPILE_LINK_ENVVAR@
 UCLN_NO_AUTO_CLEANUP = @UCLN_NO_AUTO_CLEANUP@
+SED = @SED@
 
 # Various flags for the tools
 
diff --git a/source/io/Makefile.in b/source/io/Makefile.in
index 8484325..45dbe87 100644
--- a/source/io/Makefile.in
+++ b/source/io/Makefile.in
@@ -55,7 +55,7 @@
 CFLAGS += $(LIBCFLAGS)
 CXXFLAGS += $(LIBCXXFLAGS)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS) $(CPPFLAGSICUIO)
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS) $(CPPFLAGSICUIO)
 DEFS += -DU_IO_IMPLEMENTATION
 LDFLAGS += $(LDFLAGSICUIO)
 LIBS = $(LIBICUUC) $(LIBICUI18N) $(DEFAULT_LIBS)
diff --git a/source/io/locbund.cpp b/source/io/locbund.cpp
index 2984528..8e880b1 100644
--- a/source/io/locbund.cpp
+++ b/source/io/locbund.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/io/locbund.h b/source/io/locbund.h
index b9e1948..5879e28 100644
--- a/source/io/locbund.h
+++ b/source/io/locbund.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/io/sprintf.c b/source/io/sprintf.cpp
similarity index 98%
rename from source/io/sprintf.c
rename to source/io/sprintf.cpp
index ff143de..3a593ab 100644
--- a/source/io/sprintf.c
+++ b/source/io/sprintf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/sscanf.c b/source/io/sscanf.cpp
similarity index 97%
rename from source/io/sscanf.c
rename to source/io/sscanf.cpp
index 31ad896..47c0bac 100644
--- a/source/io/sscanf.c
+++ b/source/io/sscanf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/ucln_io.cpp b/source/io/ucln_io.cpp
index 21a0baf..7a7216b 100644
--- a/source/io/ucln_io.cpp
+++ b/source/io/ucln_io.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *                                                                            *
 ******************************************************************************
 *   file name:  ucln_io.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/io/ucln_io.h b/source/io/ucln_io.h
index 97d06a1..20dcb88 100644
--- a/source/io/ucln_io.h
+++ b/source/io/ucln_io.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *                                                                            *
 ******************************************************************************
 *   file name:  ucln_io.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/io/ufile.c b/source/io/ufile.cpp
similarity index 87%
rename from source/io/ufile.c
rename to source/io/ufile.cpp
index 87ed3f1..6cbb897 100644
--- a/source/io/ufile.c
+++ b/source/io/ufile.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -8,7 +8,7 @@
 *
 ******************************************************************************
 *
-* File ufile.c
+* File ufile.cpp
 *
 * Modification History:
 *
@@ -20,10 +20,11 @@
 ******************************************************************************
 */
 
-/*
- * fileno is not declared when building with GCC in strict mode.
- */
-#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#include "unicode/platform.h"
+#if defined(__GNUC__) && !defined(__clang__) && defined(__STRICT_ANSI__)
+// g++, fileno isn't defined                  if     __STRICT_ANSI__ is defined.
+// clang fails to compile the <string> header unless __STRICT_ANSI__ is defined.
+// __GNUC__ is set by both gcc and clang.
 #undef __STRICT_ANSI__
 #endif
 
@@ -32,6 +33,8 @@
 
 #if !UCONFIG_NO_CONVERSION
 
+#include <stdlib.h>
+
 #include "ufile.h"
 #include "unicode/uloc.h"
 #include "unicode/ures.h"
@@ -64,33 +67,7 @@
 
     uprv_memset(result, 0, sizeof(UFILE));
     result->fFileno = fileno(f);
-
-#if U_PLATFORM_USES_ONLY_WIN32_API && _MSC_VER < 1900
-    /*
-     * Below is a very old workaround (ICU ticket:231).
-     *
-     * Previously, 'FILE*' from inside and outside ICU's DLL
-     * were different, because they pointed into local copies
-     * of the io block. At least by VS 2015 the implementation
-     * is something like:
-     *    stdio = _acrt_iob_func(0)
-     * .. which is a function call, so should return the same pointer
-     * regardless of call site.
-     * As of _MSC_VER 1900 this patch is retired, at 16 years old.
-     */
-    if (0 <= result->fFileno && result->fFileno <= 2) {
-        /* stdin, stdout and stderr need to be special cased for Windows 98 */
-#if _MSC_VER >= 1400
-        result->fFile = &__iob_func()[_fileno(f)];
-#else
-        result->fFile = &_iob[_fileno(f)];
-#endif
-    }
-    else
-#endif
-    {
-        result->fFile = f;
-    }
+    result->fFile = f;
 
     result->str.fBuffer = result->fUCBuffer;
     result->str.fPos    = result->fUCBuffer;
@@ -180,7 +157,11 @@
 #if U_PLATFORM_USES_ONLY_WIN32_API
     /* Try Windows API _wfopen if the above fails. */
     if (!result) {
-        FILE *systemFile = _wfopen(filename, (UChar*)perm);
+        // TODO: test this code path, including wperm.
+        wchar_t wperm[40] = {};
+        size_t  retVal;
+        mbstowcs_s(&retVal, wperm, perm, _TRUNCATE);
+        FILE *systemFile = _wfopen((const wchar_t *)filename, wperm);
         if (systemFile) {
             result = finit_owner(systemFile, locale, codepage, TRUE);
         }
@@ -208,7 +189,7 @@
     result = (UFILE*) uprv_malloc(sizeof(UFILE));
     /* Null pointer test */
     if (result == NULL) {
-    	return NULL; /* Just get out. */
+        return NULL; /* Just get out. */
     }
     uprv_memset(result, 0, sizeof(UFILE));
     result->str.fBuffer = stringBuf;
diff --git a/source/io/ufile.h b/source/io/ufile.h
index 3a1a223..e85208f 100644
--- a/source/io/ufile.h
+++ b/source/io/ufile.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -25,6 +25,8 @@
 
 #if !UCONFIG_NO_CONVERSION
 
+#include <stdio.h>
+
 #include "unicode/ucnv.h"
 #include "unicode/utrans.h"
 #include "locbund.h"
diff --git a/source/io/ufmt_cmn.c b/source/io/ufmt_cmn.cpp
similarity index 98%
rename from source/io/ufmt_cmn.c
rename to source/io/ufmt_cmn.cpp
index e24d0d7..42e8e3e 100644
--- a/source/io/ufmt_cmn.c
+++ b/source/io/ufmt_cmn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/ufmt_cmn.h b/source/io/ufmt_cmn.h
index 97079ed..33b56a0 100644
--- a/source/io/ufmt_cmn.h
+++ b/source/io/ufmt_cmn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -26,7 +26,7 @@
 #include "unicode/utf16.h"
 
 #define UFMT_DEFAULT_BUFFER_SIZE 128
-#define MAX_UCHAR_BUFFER_SIZE(buffer) (sizeof(buffer)/(U16_MAX_LENGTH*sizeof(UChar)))
+#define MAX_UCHAR_BUFFER_SIZE(buffer) ((int32_t)(sizeof(buffer)/(U16_MAX_LENGTH*sizeof(UChar))))
 #define MAX_UCHAR_BUFFER_NEEDED(strLen) ((strLen+1)*U16_MAX_LENGTH*sizeof(UChar))
 
 /** 
diff --git a/source/io/unicode/ustdio.h b/source/io/unicode/ustdio.h
index 8f38398..342c2b4 100644
--- a/source/io/unicode/ustdio.h
+++ b/source/io/unicode/ustdio.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/unicode/ustream.h b/source/io/unicode/ustream.h
index ab52f6a..df1506e 100644
--- a/source/io/unicode/ustream.h
+++ b/source/io/unicode/ustream.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -30,7 +30,7 @@
  * C++ I/O stream API.
  */
 
-#if !defined(_MSC_VER)
+#if defined(__GLIBCXX__)
 namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
 #endif
 
diff --git a/source/io/uprintf.cpp b/source/io/uprintf.cpp
index b12ef0e..d433707 100644
--- a/source/io/uprintf.cpp
+++ b/source/io/uprintf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/uprintf.h b/source/io/uprintf.h
index 0a07e6b..0fd6066 100644
--- a/source/io/uprintf.h
+++ b/source/io/uprintf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/uprntf_p.c b/source/io/uprntf_p.cpp
similarity index 98%
rename from source/io/uprntf_p.c
rename to source/io/uprntf_p.cpp
index 9890b29..1fbaf06 100644
--- a/source/io/uprntf_p.c
+++ b/source/io/uprntf_p.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
@@ -184,6 +184,9 @@
                                 const u_printf_spec_info       *info,
                                 const ufmt_args                *args)
 {
+    (void)formatBundle;
+    (void)info;
+    (void)args;
     static const UChar PERCENT[] = { UP_PERCENT };
 
     /* put a single '%' onto the output */
@@ -198,6 +201,7 @@
                         const u_printf_spec_info       *info,
                         const ufmt_args                *args)
 {
+    (void)formatBundle;
     UChar *s;
     UChar buffer[UFMT_DEFAULT_BUFFER_SIZE];
     int32_t len, written;
@@ -248,6 +252,7 @@
                       const u_printf_spec_info       *info,
                       const ufmt_args                *args)
 {
+    (void)formatBundle;
     UChar s[U16_MAX_LENGTH+1];
     int32_t len = 1, written;
     unsigned char arg = (unsigned char)(args[0].int64Value);
@@ -418,6 +423,7 @@
                      const u_printf_spec_info       *info,
                      const ufmt_args                *args)
 {
+    (void)formatBundle;
     int64_t         num        = args[0].int64Value;
     UChar           result[UPRINTF_BUFFER_SIZE];
     int32_t         len        = UPRINTF_BUFFER_SIZE;
@@ -453,6 +459,7 @@
                        const u_printf_spec_info       *info,
                        const ufmt_args                *args)
 {
+    (void)formatBundle;
     int64_t         num        = args[0].int64Value;
     UChar           result[UPRINTF_BUFFER_SIZE];
     int32_t         len        = UPRINTF_BUFFER_SIZE;
@@ -539,7 +546,8 @@
                          ULocaleBundle                  *formatBundle,
                          const u_printf_spec_info       *info,
                          const ufmt_args                *args)
-{
+{ 
+    (void)formatBundle;
     UChar           result[UPRINTF_BUFFER_SIZE];
     int32_t         len  = UPRINTF_BUFFER_SIZE;
 
@@ -751,6 +759,7 @@
                          const u_printf_spec_info       *info,
                          const ufmt_args                *args)
 {
+    (void)formatBundle;
     int32_t len, written;
     const UChar *arg = (const UChar*)(args[0].ptrValue);
 
@@ -779,6 +788,7 @@
                        const u_printf_spec_info       *info,
                        const ufmt_args                *args)
 {
+    (void)formatBundle;
     int32_t written = 0;
     UChar arg = (UChar)(args[0].int64Value);
 
@@ -858,6 +868,9 @@
                        const u_printf_spec_info       *info,
                        const ufmt_args                *args)
 {
+    (void)handler;
+    (void)context;
+    (void)formatBundle;
     int32_t *count = (int32_t*)(args[0].ptrValue);
 
     /* in the special case of count, the u_printf_spec_info's width */
diff --git a/source/io/uscanf.c b/source/io/uscanf.cpp
similarity index 97%
rename from source/io/uscanf.c
rename to source/io/uscanf.cpp
index 34368da..ce2e47a 100644
--- a/source/io/uscanf.c
+++ b/source/io/uscanf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/uscanf.h b/source/io/uscanf.h
index 1140eee..ebb8e79 100644
--- a/source/io/uscanf.h
+++ b/source/io/uscanf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/io/uscanf_p.c b/source/io/uscanf_p.cpp
similarity index 98%
rename from source/io/uscanf_p.c
rename to source/io/uscanf_p.cpp
index ded984c..4deac35 100644
--- a/source/io/uscanf_p.c
+++ b/source/io/uscanf_p.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -380,6 +380,11 @@
                                int32_t      *fmtConsumed,
                                int32_t      *argConverted)
 {
+    (void)info;
+    (void)args;
+    (void)fmt;
+    (void)fmtConsumed;
+
     /* make sure the next character in the input is a percent */
     *argConverted = 0;
     if(u_fgetc(input) != 0x0025) {
@@ -396,6 +401,10 @@
                       int32_t       *fmtConsumed,
                       int32_t       *argConverted)
 {
+    (void)input;
+    (void)fmt;
+    (void)fmtConsumed;
+
     /* in the special case of count, the u_scanf_spec_info's width */
     /* will contain the # of items converted thus far */
     if (!info->fSkipArg) {
@@ -420,6 +429,9 @@
                        int32_t      *fmtConsumed,
                        int32_t      *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t         len;
     double          num;
     UNumberFormat   *format;
@@ -485,6 +497,9 @@
                            int32_t      *fmtConsumed,
                            int32_t      *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t         len;
     double          num;
     UNumberFormat   *format;
@@ -582,6 +597,9 @@
                        int32_t      *fmtConsumed,
                        int32_t      *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t       len;
     double        num;
     UNumberFormat *scientificFormat, *genericFormat;
@@ -672,6 +690,9 @@
                         int32_t     *fmtConsumed,
                         int32_t     *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t         len;
     void            *num        = (void*) (args[0].ptrValue);
     UNumberFormat   *format;
@@ -745,6 +766,9 @@
                         int32_t     *fmtConsumed,
                         int32_t     *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t         len;
     double          num;
     UNumberFormat   *format;
@@ -802,6 +826,9 @@
                        int32_t      *fmtConsumed,
                        int32_t      *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     const UChar *source;
     UConverter  *conv;
     char        *arg    = (char*)(args[0].ptrValue);
@@ -900,6 +927,9 @@
                         int32_t     *fmtConsumed,
                         int32_t     *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     UChar   *arg     = (UChar*)(args[0].ptrValue);
     UChar   *alias     = arg;
     int32_t count;
@@ -969,6 +999,9 @@
                          int32_t        *fmtConsumed,
                          int32_t        *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t         len;
     double          num;
     UNumberFormat   *format;
@@ -1028,6 +1061,9 @@
                     int32_t     *fmtConsumed,
                     int32_t     *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t     len;
     int32_t     skipped;
     void        *num    = (void*) (args[0].ptrValue);
@@ -1084,6 +1120,9 @@
                       int32_t       *fmtConsumed,
                       int32_t       *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t     len;
     int32_t     skipped;
     void        *num         = (void*) (args[0].ptrValue);
@@ -1131,6 +1170,9 @@
                         int32_t     *fmtConsumed,
                         int32_t     *argConverted)
 {
+    (void)fmt;
+    (void)fmtConsumed;
+
     int32_t len;
     int32_t skipped;
     void    *result;
diff --git a/source/io/ustdio.c b/source/io/ustdio.cpp
similarity index 99%
rename from source/io/ustdio.c
rename to source/io/ustdio.cpp
index 1c2225a..d6eb5cf 100644
--- a/source/io/ustdio.c
+++ b/source/io/ustdio.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/io/ustream.cpp b/source/io/ustream.cpp
index 8e0087e..a537d14 100644
--- a/source/io/ustream.cpp
+++ b/source/io/ustream.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/runConfigureICU b/source/runConfigureICU
index 73f2c9a..abe8832 100755
--- a/source/runConfigureICU
+++ b/source/runConfigureICU
@@ -315,7 +315,6 @@
         THE_COMP="the GNU C++"
         RELEASE_CFLAGS='-O3'
         RELEASE_CXXFLAGS='-O3'
-        CXXFLAGS="--std=c++03"
         export CXXFLAGS
         ;;
     MSYS/MSVC)
diff --git a/source/samples/break/break.cpp b/source/samples/break/break.cpp
index 35a7e5d..4965aac 100644
--- a/source/samples/break/break.cpp
+++ b/source/samples/break/break.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/break/ubreak.c b/source/samples/break/ubreak.c
index 2dcda2d..593ea82 100644
--- a/source/samples/break/ubreak.c
+++ b/source/samples/break/ubreak.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/cal/cal.c b/source/samples/cal/cal.c
index 7b1950f..eb606a9 100644
--- a/source/samples/cal/cal.c
+++ b/source/samples/cal/cal.c
@@ -1,6 +1,6 @@
 /*
 ***********************************************************************
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html#License
 ***********************************************************************
 **********************************************************************
diff --git a/source/samples/cal/uprint.c b/source/samples/cal/uprint.c
index bcfa1ee..8fce883 100644
--- a/source/samples/cal/uprint.c
+++ b/source/samples/cal/uprint.c
@@ -1,6 +1,6 @@
 /*
 ***********************************************************************
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html#License
 ***********************************************************************
 **********************************************************************
diff --git a/source/samples/cal/uprint.h b/source/samples/cal/uprint.h
index f6639ee..cbbcefb 100644
--- a/source/samples/cal/uprint.h
+++ b/source/samples/cal/uprint.h
@@ -1,6 +1,6 @@
 /*
 ***********************************************************************
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html#License
 ***********************************************************************
 **********************************************************************
diff --git a/source/samples/case/case.cpp b/source/samples/case/case.cpp
index fc0042d..f111818 100644
--- a/source/samples/case/case.cpp
+++ b/source/samples/case/case.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/case/ucase.c b/source/samples/case/ucase.c
index 60d4084..eafa934 100644
--- a/source/samples/case/ucase.c
+++ b/source/samples/case/ucase.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/citer/citer.cpp b/source/samples/citer/citer.cpp
index 03f1a25..3a16dc1 100644
--- a/source/samples/citer/citer.cpp
+++ b/source/samples/citer/citer.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*     Copyright (C) 2016 and later: Unicode, Inc. and others.
+*     © 2016 and later: Unicode, Inc. and others.
 *     License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/coll/coll.cpp b/source/samples/coll/coll.cpp
index f079370..e29755d 100644
--- a/source/samples/coll/coll.cpp
+++ b/source/samples/coll/coll.cpp
@@ -1,6 +1,6 @@
 /*************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *************************************************************************
diff --git a/source/samples/csdet/csdet.c b/source/samples/csdet/csdet.c
index e4e13da..c8df791 100644
--- a/source/samples/csdet/csdet.c
+++ b/source/samples/csdet/csdet.c
@@ -1,6 +1,6 @@
 /*
 ********************************************************************************
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 ********************************************************************************
 ********************************************************************************
diff --git a/source/samples/date/date.c b/source/samples/date/date.c
index f7a3a81..156a341 100644
--- a/source/samples/date/date.c
+++ b/source/samples/date/date.c
@@ -1,6 +1,6 @@
 /*
 *************************************************************************
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *************************************************************************
 ***********************************************************************
diff --git a/source/samples/date/uprint.c b/source/samples/date/uprint.c
index 0206fcc..b0ef938 100644
--- a/source/samples/date/uprint.c
+++ b/source/samples/date/uprint.c
@@ -1,6 +1,6 @@
 /*
 ***********************************************************************
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html#License
 ***********************************************************************
 **********************************************************************
diff --git a/source/samples/date/uprint.h b/source/samples/date/uprint.h
index 5caa697..5f2fba6 100644
--- a/source/samples/date/uprint.h
+++ b/source/samples/date/uprint.h
@@ -1,6 +1,6 @@
 /*
 ********************************************************************************
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 ********************************************************************************
 **********************************************************************
diff --git a/source/samples/datecal/cal.cpp b/source/samples/datecal/cal.cpp
index 502c04b..1af3a69 100644
--- a/source/samples/datecal/cal.cpp
+++ b/source/samples/datecal/cal.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/datecal/ccal.c b/source/samples/datecal/ccal.c
index a9559a2..4a80beb 100644
--- a/source/samples/datecal/ccal.c
+++ b/source/samples/datecal/ccal.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
diff --git a/source/samples/datefmt/answers/main_0.cpp b/source/samples/datefmt/answers/main_0.cpp
index 7a122fc..0c58786 100644
--- a/source/samples/datefmt/answers/main_0.cpp
+++ b/source/samples/datefmt/answers/main_0.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/answers/main_1.cpp b/source/samples/datefmt/answers/main_1.cpp
index 3fbd4be..1afcfd6 100644
--- a/source/samples/datefmt/answers/main_1.cpp
+++ b/source/samples/datefmt/answers/main_1.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/answers/main_2.cpp b/source/samples/datefmt/answers/main_2.cpp
index af49c07..ccce516 100644
--- a/source/samples/datefmt/answers/main_2.cpp
+++ b/source/samples/datefmt/answers/main_2.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/answers/main_3.cpp b/source/samples/datefmt/answers/main_3.cpp
index 66f9e7c..39c095a 100644
--- a/source/samples/datefmt/answers/main_3.cpp
+++ b/source/samples/datefmt/answers/main_3.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/main.cpp b/source/samples/datefmt/main.cpp
index 44cec7b..a655328 100644
--- a/source/samples/datefmt/main.cpp
+++ b/source/samples/datefmt/main.cpp
@@ -1,5 +1,5 @@
 /*************************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/util.cpp b/source/samples/datefmt/util.cpp
index bb33723..6068d0e 100644
--- a/source/samples/datefmt/util.cpp
+++ b/source/samples/datefmt/util.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/datefmt/util.h b/source/samples/datefmt/util.h
index 716f71e..3a15a9e 100644
--- a/source/samples/datefmt/util.h
+++ b/source/samples/datefmt/util.h
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/dtitvfmtsample/dtitvfmtsample.cpp b/source/samples/dtitvfmtsample/dtitvfmtsample.cpp
index 86a0bf2..da6f746 100644
--- a/source/samples/dtitvfmtsample/dtitvfmtsample.cpp
+++ b/source/samples/dtitvfmtsample/dtitvfmtsample.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
 * Copyright (C) 2008-2014, International Business Machines Corporation and
diff --git a/source/samples/dtptngsample/dtptngsample.cpp b/source/samples/dtptngsample/dtptngsample.cpp
index 3f966a2..b119f4b 100644
--- a/source/samples/dtptngsample/dtptngsample.cpp
+++ b/source/samples/dtptngsample/dtptngsample.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/samples/layout/FontMap.cpp b/source/samples/layout/FontMap.cpp
index 3586c0c..1ca98df 100644
--- a/source/samples/layout/FontMap.cpp
+++ b/source/samples/layout/FontMap.cpp
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/FontMap.h b/source/samples/layout/FontMap.h
index c14c082..c3f518b 100644
--- a/source/samples/layout/FontMap.h
+++ b/source/samples/layout/FontMap.h
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/FontTableCache.cpp b/source/samples/layout/FontTableCache.cpp
index bdd4f8f..7ca68b7 100644
--- a/source/samples/layout/FontTableCache.cpp
+++ b/source/samples/layout/FontTableCache.cpp
@@ -1,6 +1,6 @@
 /*
  *************************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/layout/FontTableCache.h b/source/samples/layout/FontTableCache.h
index 75560b3..f949c5a 100644
--- a/source/samples/layout/FontTableCache.h
+++ b/source/samples/layout/FontTableCache.h
@@ -1,6 +1,6 @@
 /*
  *************************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  **********************************************************************
diff --git a/source/samples/layout/GDIFontInstance.cpp b/source/samples/layout/GDIFontInstance.cpp
index 9854dcd..59448f0 100644
--- a/source/samples/layout/GDIFontInstance.cpp
+++ b/source/samples/layout/GDIFontInstance.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GDIFontInstance.h b/source/samples/layout/GDIFontInstance.h
index 779e4c2..36211d4 100644
--- a/source/samples/layout/GDIFontInstance.h
+++ b/source/samples/layout/GDIFontInstance.h
@@ -2,7 +2,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GDIFontMap.cpp b/source/samples/layout/GDIFontMap.cpp
index ce0f7ce..bdbfe30 100644
--- a/source/samples/layout/GDIFontMap.cpp
+++ b/source/samples/layout/GDIFontMap.cpp
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/GDIFontMap.h b/source/samples/layout/GDIFontMap.h
index 5798df3..0a66334 100644
--- a/source/samples/layout/GDIFontMap.h
+++ b/source/samples/layout/GDIFontMap.h
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/GDIGUISupport.cpp b/source/samples/layout/GDIGUISupport.cpp
index 745df62..a3289e4 100644
--- a/source/samples/layout/GDIGUISupport.cpp
+++ b/source/samples/layout/GDIGUISupport.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GDIGUISupport.h b/source/samples/layout/GDIGUISupport.h
index d3a73dc..e3ae957 100644
--- a/source/samples/layout/GDIGUISupport.h
+++ b/source/samples/layout/GDIGUISupport.h
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GUISupport.h b/source/samples/layout/GUISupport.h
index bff11fd..1b092a3 100644
--- a/source/samples/layout/GUISupport.h
+++ b/source/samples/layout/GUISupport.h
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GnomeFontInstance.cpp b/source/samples/layout/GnomeFontInstance.cpp
index 6b22cc1..c330b61 100644
--- a/source/samples/layout/GnomeFontInstance.cpp
+++ b/source/samples/layout/GnomeFontInstance.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GnomeFontInstance.h b/source/samples/layout/GnomeFontInstance.h
index f088b64..7cabcb5 100644
--- a/source/samples/layout/GnomeFontInstance.h
+++ b/source/samples/layout/GnomeFontInstance.h
@@ -2,7 +2,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GnomeFontMap.cpp b/source/samples/layout/GnomeFontMap.cpp
index c94daa3..7895dd8 100644
--- a/source/samples/layout/GnomeFontMap.cpp
+++ b/source/samples/layout/GnomeFontMap.cpp
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/GnomeFontMap.h b/source/samples/layout/GnomeFontMap.h
index 1773950..2a38a64 100644
--- a/source/samples/layout/GnomeFontMap.h
+++ b/source/samples/layout/GnomeFontMap.h
@@ -1,6 +1,6 @@
 /*
  *******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/GnomeGUISupport.cpp b/source/samples/layout/GnomeGUISupport.cpp
index 05c6b1a..35a4166 100644
--- a/source/samples/layout/GnomeGUISupport.cpp
+++ b/source/samples/layout/GnomeGUISupport.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/GnomeGUISupport.h b/source/samples/layout/GnomeGUISupport.h
index 07d765a..2f56e2a 100644
--- a/source/samples/layout/GnomeGUISupport.h
+++ b/source/samples/layout/GnomeGUISupport.h
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/RenderingSurface.h b/source/samples/layout/RenderingSurface.h
index f4a1528..0399e71 100644
--- a/source/samples/layout/RenderingSurface.h
+++ b/source/samples/layout/RenderingSurface.h
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/ScriptCompositeFontInstance.cpp b/source/samples/layout/ScriptCompositeFontInstance.cpp
index bec43c7..a87c650 100644
--- a/source/samples/layout/ScriptCompositeFontInstance.cpp
+++ b/source/samples/layout/ScriptCompositeFontInstance.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/ScriptCompositeFontInstance.h b/source/samples/layout/ScriptCompositeFontInstance.h
index ed7bb2f..151d682 100644
--- a/source/samples/layout/ScriptCompositeFontInstance.h
+++ b/source/samples/layout/ScriptCompositeFontInstance.h
@@ -1,7 +1,7 @@
 /*
  * %W% %E%
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2011 - All Rights Reserved
diff --git a/source/samples/layout/Surface.cpp b/source/samples/layout/Surface.cpp
index 5a73ae1..268145a 100644
--- a/source/samples/layout/Surface.cpp
+++ b/source/samples/layout/Surface.cpp
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *   Copyright (C) 2003, International Business Machines
diff --git a/source/samples/layout/Surface.h b/source/samples/layout/Surface.h
index aa5e32d..9e25516 100644
--- a/source/samples/layout/Surface.h
+++ b/source/samples/layout/Surface.h
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *   Copyright (C) 2003, International Business Machines
diff --git a/source/samples/layout/UnicodeReader.cpp b/source/samples/layout/UnicodeReader.cpp
index e9df02c..47a4386 100644
--- a/source/samples/layout/UnicodeReader.cpp
+++ b/source/samples/layout/UnicodeReader.cpp
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/UnicodeReader.h b/source/samples/layout/UnicodeReader.h
index 2ffa22f..4429f1c 100644
--- a/source/samples/layout/UnicodeReader.h
+++ b/source/samples/layout/UnicodeReader.h
@@ -1,6 +1,6 @@
 /*
  ******************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.                    *
+ * © 2016 and later: Unicode, Inc. and others.                    *
  * License & terms of use: http://www.unicode.org/copyright.html#License      *
  ******************************************************************************
  ******************************************************************************
diff --git a/source/samples/layout/arraymem.h b/source/samples/layout/arraymem.h
index 8efc000..2580410 100644
--- a/source/samples/layout/arraymem.h
+++ b/source/samples/layout/arraymem.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/cgnomelayout.c b/source/samples/layout/cgnomelayout.c
index 6a2c16f..ff3d563 100644
--- a/source/samples/layout/cgnomelayout.c
+++ b/source/samples/layout/cgnomelayout.c
@@ -2,7 +2,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/clayout.c b/source/samples/layout/clayout.c
index fcce80d..e129966 100644
--- a/source/samples/layout/clayout.c
+++ b/source/samples/layout/clayout.c
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/cmaps.cpp b/source/samples/layout/cmaps.cpp
index 72a28d7..36d6335 100644
--- a/source/samples/layout/cmaps.cpp
+++ b/source/samples/layout/cmaps.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/cmaps.h b/source/samples/layout/cmaps.h
index 59b8084..0abda50 100644
--- a/source/samples/layout/cmaps.h
+++ b/source/samples/layout/cmaps.h
@@ -1,7 +1,7 @@
 /*
  ******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  ******************************************************************************
diff --git a/source/samples/layout/gdiglue.cpp b/source/samples/layout/gdiglue.cpp
index 6fa176b..b79f6ee 100644
--- a/source/samples/layout/gdiglue.cpp
+++ b/source/samples/layout/gdiglue.cpp
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/gdiglue.h b/source/samples/layout/gdiglue.h
index 3fef1a3..8018d08 100644
--- a/source/samples/layout/gdiglue.h
+++ b/source/samples/layout/gdiglue.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/gnomeglue.cpp b/source/samples/layout/gnomeglue.cpp
index f88162e..906b143 100644
--- a/source/samples/layout/gnomeglue.cpp
+++ b/source/samples/layout/gnomeglue.cpp
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/gnomeglue.h b/source/samples/layout/gnomeglue.h
index 254f37a..3413bae 100644
--- a/source/samples/layout/gnomeglue.h
+++ b/source/samples/layout/gnomeglue.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/gnomelayout.cpp b/source/samples/layout/gnomelayout.cpp
index 7787fcd..8f7c37d 100644
--- a/source/samples/layout/gnomelayout.cpp
+++ b/source/samples/layout/gnomelayout.cpp
@@ -2,7 +2,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/gsupport.h b/source/samples/layout/gsupport.h
index 72d3b27..582bcc1 100644
--- a/source/samples/layout/gsupport.h
+++ b/source/samples/layout/gsupport.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/layout.cpp b/source/samples/layout/layout.cpp
index ab088cd..009a055 100644
--- a/source/samples/layout/layout.cpp
+++ b/source/samples/layout/layout.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/paragraph.cpp b/source/samples/layout/paragraph.cpp
index ac69cf2..190106f 100644
--- a/source/samples/layout/paragraph.cpp
+++ b/source/samples/layout/paragraph.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/paragraph.h b/source/samples/layout/paragraph.h
index 8fcb93e..0f307fd 100644
--- a/source/samples/layout/paragraph.h
+++ b/source/samples/layout/paragraph.h
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
diff --git a/source/samples/layout/pflow.c b/source/samples/layout/pflow.c
index fe3ab4c..92d521c 100644
--- a/source/samples/layout/pflow.c
+++ b/source/samples/layout/pflow.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/pflow.h b/source/samples/layout/pflow.h
index f8971e0..ec87131 100644
--- a/source/samples/layout/pflow.h
+++ b/source/samples/layout/pflow.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/resource.h b/source/samples/layout/resource.h
index 82285ff..77374ba 100644
--- a/source/samples/layout/resource.h
+++ b/source/samples/layout/resource.h
@@ -1,6 +1,6 @@
 //{{NO_DEPENDENCIES}}
 // Microsoft Developer Studio generated include file.
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html#License
 // Corporation and others. All Rights Reserved.
 // Copyright (c) 2001-2003 International Business Machines
diff --git a/source/samples/layout/rsurface.cpp b/source/samples/layout/rsurface.cpp
index 1e6dd36..a64ba9a 100644
--- a/source/samples/layout/rsurface.cpp
+++ b/source/samples/layout/rsurface.cpp
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/rsurface.h b/source/samples/layout/rsurface.h
index effc951..ae2098b 100644
--- a/source/samples/layout/rsurface.h
+++ b/source/samples/layout/rsurface.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/sfnt.h b/source/samples/layout/sfnt.h
index c653c31..32173ba 100644
--- a/source/samples/layout/sfnt.h
+++ b/source/samples/layout/sfnt.h
@@ -1,7 +1,7 @@
 /*
  ******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  ******************************************************************************
diff --git a/source/samples/layout/ucreader.cpp b/source/samples/layout/ucreader.cpp
index 4f608ba..232ee86 100644
--- a/source/samples/layout/ucreader.cpp
+++ b/source/samples/layout/ucreader.cpp
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/layout/ucreader.h b/source/samples/layout/ucreader.h
index b33eff9..bf2dd70 100644
--- a/source/samples/layout/ucreader.h
+++ b/source/samples/layout/ucreader.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  * (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved
diff --git a/source/samples/legacy/legacy.cpp b/source/samples/legacy/legacy.cpp
index 717af3a..559fbcb 100644
--- a/source/samples/legacy/legacy.cpp
+++ b/source/samples/legacy/legacy.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  main.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/legacy/newcol.cpp b/source/samples/legacy/newcol.cpp
index e63fe70..b5430d7 100644
--- a/source/samples/legacy/newcol.cpp
+++ b/source/samples/legacy/newcol.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  newcol.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/legacy/oldcol.cpp b/source/samples/legacy/oldcol.cpp
index 6caa88f..8c9c696 100644
--- a/source/samples/legacy/oldcol.cpp
+++ b/source/samples/legacy/oldcol.cpp
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
@@ -12,7 +12,7 @@
  *
  *******************************************************************************
  *   file name:  oldcol.cpp
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/samples/msgfmt/answers/main_0.cpp b/source/samples/msgfmt/answers/main_0.cpp
index 865d793..5dafe09 100644
--- a/source/samples/msgfmt/answers/main_0.cpp
+++ b/source/samples/msgfmt/answers/main_0.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/answers/main_1.cpp b/source/samples/msgfmt/answers/main_1.cpp
index 1e888f0..66add56 100644
--- a/source/samples/msgfmt/answers/main_1.cpp
+++ b/source/samples/msgfmt/answers/main_1.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/answers/main_2.cpp b/source/samples/msgfmt/answers/main_2.cpp
index 380234b..d252ac7 100644
--- a/source/samples/msgfmt/answers/main_2.cpp
+++ b/source/samples/msgfmt/answers/main_2.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/answers/main_3.cpp b/source/samples/msgfmt/answers/main_3.cpp
index f93ff7a..aa42dee 100644
--- a/source/samples/msgfmt/answers/main_3.cpp
+++ b/source/samples/msgfmt/answers/main_3.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/main.cpp b/source/samples/msgfmt/main.cpp
index 66d4712..0a7de73 100644
--- a/source/samples/msgfmt/main.cpp
+++ b/source/samples/msgfmt/main.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/util.cpp b/source/samples/msgfmt/util.cpp
index 25f6be7..fb353a0 100644
--- a/source/samples/msgfmt/util.cpp
+++ b/source/samples/msgfmt/util.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/msgfmt/util.h b/source/samples/msgfmt/util.h
index 2095e1a..b66e019 100644
--- a/source/samples/msgfmt/util.h
+++ b/source/samples/msgfmt/util.h
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/numfmt/capi.c b/source/samples/numfmt/capi.c
index 91b6b80..bf96f01 100644
--- a/source/samples/numfmt/capi.c
+++ b/source/samples/numfmt/capi.c
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/numfmt/main.cpp b/source/samples/numfmt/main.cpp
index c53b55c..172202e 100644
--- a/source/samples/numfmt/main.cpp
+++ b/source/samples/numfmt/main.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/numfmt/util.cpp b/source/samples/numfmt/util.cpp
index 15dc825..f5db0e1 100644
--- a/source/samples/numfmt/util.cpp
+++ b/source/samples/numfmt/util.cpp
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
diff --git a/source/samples/numfmt/util.h b/source/samples/numfmt/util.h
index e946129..b1c2679 100644
--- a/source/samples/numfmt/util.h
+++ b/source/samples/numfmt/util.h
@@ -1,5 +1,5 @@
 /********************************************************************
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *************************************************************************
  *************************************************************************
@@ -11,6 +11,10 @@
 #include "unicode/unistr.h"
 #include "unicode/fmtable.h"
 
+#ifndef UPRV_LENGTHOF 
+#define UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) 
+#endif 
+
 // Verify that a UErrorCode is successful; exit(1) if not
 void check(UErrorCode& status, const char* msg);
 
diff --git a/source/samples/plurfmtsample/plurfmtsample.cpp b/source/samples/plurfmtsample/plurfmtsample.cpp
index f3a9ce6..87d77e3 100644
--- a/source/samples/plurfmtsample/plurfmtsample.cpp
+++ b/source/samples/plurfmtsample/plurfmtsample.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
-* Copyright (C) 2016 and later: Unicode, Inc. and others.
+* © 2016 and later: Unicode, Inc. and others.
 * License & terms of use: http://www.unicode.org/copyright.html#License
 ********************************************************************************
 ********************************************************************************
diff --git a/source/samples/props/props.cpp b/source/samples/props/props.cpp
index 65e298e..da9408d 100644
--- a/source/samples/props/props.cpp
+++ b/source/samples/props/props.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/strsrch/strsrch.cpp b/source/samples/strsrch/strsrch.cpp
index d2e6481..2478712 100644
--- a/source/samples/strsrch/strsrch.cpp
+++ b/source/samples/strsrch/strsrch.cpp
@@ -1,5 +1,5 @@
 /*************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *************************************************************************
diff --git a/source/samples/translit/answers/main_1.cpp b/source/samples/translit/answers/main_1.cpp
index 23a64b3..04c4886 100644
--- a/source/samples/translit/answers/main_1.cpp
+++ b/source/samples/translit/answers/main_1.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/answers/main_2.cpp b/source/samples/translit/answers/main_2.cpp
index 51468e0..2110990 100644
--- a/source/samples/translit/answers/main_2.cpp
+++ b/source/samples/translit/answers/main_2.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/answers/main_3.cpp b/source/samples/translit/answers/main_3.cpp
index 0c1735b..d18b1ce 100644
--- a/source/samples/translit/answers/main_3.cpp
+++ b/source/samples/translit/answers/main_3.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/answers/main_4.cpp b/source/samples/translit/answers/main_4.cpp
index 2837127..ec2306d 100644
--- a/source/samples/translit/answers/main_4.cpp
+++ b/source/samples/translit/answers/main_4.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/answers/unaccent.cpp b/source/samples/translit/answers/unaccent.cpp
index 12f9793..c726071 100644
--- a/source/samples/translit/answers/unaccent.cpp
+++ b/source/samples/translit/answers/unaccent.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  * COPYRIGHT:
diff --git a/source/samples/translit/answers/unaccent.h b/source/samples/translit/answers/unaccent.h
index 3a35978..5399312 100644
--- a/source/samples/translit/answers/unaccent.h
+++ b/source/samples/translit/answers/unaccent.h
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/main.cpp b/source/samples/translit/main.cpp
index 98e35cf..ca7f090 100644
--- a/source/samples/translit/main.cpp
+++ b/source/samples/translit/main.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/unaccent.cpp b/source/samples/translit/unaccent.cpp
index ccdc33c..b16a5a4 100644
--- a/source/samples/translit/unaccent.cpp
+++ b/source/samples/translit/unaccent.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  **********************************************************************
  **********************************************************************
diff --git a/source/samples/translit/unaccent.h b/source/samples/translit/unaccent.h
index 35f39c0..71521b5 100644
--- a/source/samples/translit/unaccent.h
+++ b/source/samples/translit/unaccent.h
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/util.cpp b/source/samples/translit/util.cpp
index 898e101..fc00c4f 100644
--- a/source/samples/translit/util.cpp
+++ b/source/samples/translit/util.cpp
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/translit/util.h b/source/samples/translit/util.h
index 15b41a2..dcd6384 100644
--- a/source/samples/translit/util.h
+++ b/source/samples/translit/util.h
@@ -1,5 +1,5 @@
 /***********************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  ***********************************************************************
  ***********************************************************************
diff --git a/source/samples/uciter8/uciter8.c b/source/samples/uciter8/uciter8.c
index d9e84fe..dcd9aa0 100644
--- a/source/samples/uciter8/uciter8.c
+++ b/source/samples/uciter8/uciter8.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  uciter8.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -30,6 +30,10 @@
 #include "unicode/uiter.h"
 #include "uit_len8.h"
 
+#ifndef UPRV_LENGTHOF
+#define UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+#endif
+
 #define log_err printf
 
 /* UCharIterator test ------------------------------------------------------- */
diff --git a/source/samples/uciter8/uit_len8.c b/source/samples/uciter8/uit_len8.c
index f6f4140..e7f8303 100644
--- a/source/samples/uciter8/uit_len8.c
+++ b/source/samples/uciter8/uit_len8.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  uit_len8.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/uciter8/uit_len8.h b/source/samples/uciter8/uit_len8.h
index 5b4c323..2aef2ad 100644
--- a/source/samples/uciter8/uit_len8.h
+++ b/source/samples/uciter8/uit_len8.h
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  uit_len8.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/ucnv/convsamp.cpp b/source/samples/ucnv/convsamp.cpp
index 139e948..7194e6d 100644
--- a/source/samples/ucnv/convsamp.cpp
+++ b/source/samples/ucnv/convsamp.cpp
@@ -1,6 +1,6 @@
 /*************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 **************************************************************************
@@ -39,7 +39,6 @@
 #include <string.h>
 #include <stdlib.h>  /* malloc */
 
-#include "cmemory.h"
 #include "unicode/utypes.h"   /* Basic ICU data types */
 #include "unicode/ucnv.h"     /* C   Converter API    */
 #include "unicode/ustring.h"  /* some more string fcns*/
@@ -50,6 +49,9 @@
 #include "flagcb.h"
 
 /* Some utility functions */
+#ifndef UPRV_LENGTHOF
+#define UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+#endif
 
 static const UChar kNone[] = { 0x0000 };
 
diff --git a/source/samples/ucnv/flagcb.c b/source/samples/ucnv/flagcb.c
index 45a0faa..7830109 100644
--- a/source/samples/ucnv/flagcb.c
+++ b/source/samples/ucnv/flagcb.c
@@ -1,5 +1,5 @@
 /**************************************************************************
- * Copyright (C) 2016 and later: Unicode, Inc. and others.
+ * © 2016 and later: Unicode, Inc. and others.
  * License & terms of use: http://www.unicode.org/copyright.html#License
  **************************************************************************
  **************************************************************************
diff --git a/source/samples/ucnv/flagcb.h b/source/samples/ucnv/flagcb.h
index 3fa544f..f6af5bd 100644
--- a/source/samples/ucnv/flagcb.h
+++ b/source/samples/ucnv/flagcb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016 and later: Unicode, Inc. and others.
+/* © 2016 and later: Unicode, Inc. and others.
    License & terms of use: http://www.unicode.org/copyright.html#License
 
    Copyright (c) 2000 IBM, Inc. and Others. 
diff --git a/source/samples/udata/reader.c b/source/samples/udata/reader.c
index 8059798..00817b8 100644
--- a/source/samples/udata/reader.c
+++ b/source/samples/udata/reader.c
@@ -1,7 +1,7 @@
 /*
  *******************************************************************************
  *
- *   Copyright (C) 2016 and later: Unicode, Inc. and others.
+ *   © 2016 and later: Unicode, Inc. and others.
  *   License & terms of use: http://www.unicode.org/copyright.html#License
  *
  *******************************************************************************
@@ -12,7 +12,7 @@
  *
  *******************************************************************************
  *   file name:  reader.c
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/samples/udata/writer.c b/source/samples/udata/writer.c
index f07f8df..4734822 100644
--- a/source/samples/udata/writer.c
+++ b/source/samples/udata/writer.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  writer.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/ufortune/ufortune.c b/source/samples/ufortune/ufortune.c
index 5649be1..c1c203a 100644
--- a/source/samples/ufortune/ufortune.c
+++ b/source/samples/ufortune/ufortune.c
@@ -1,6 +1,6 @@
 /*************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 **************************************************************************
diff --git a/source/samples/ugrep/ugrep.cpp b/source/samples/ugrep/ugrep.cpp
index df748bb..b704059 100644
--- a/source/samples/ugrep/ugrep.cpp
+++ b/source/samples/ugrep/ugrep.cpp
@@ -1,6 +1,6 @@
 /*************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 **************************************************************************
diff --git a/source/samples/uresb/Makefile b/source/samples/uresb/Makefile
index e9ad299..c05110b 100644
--- a/source/samples/uresb/Makefile
+++ b/source/samples/uresb/Makefile
@@ -64,7 +64,7 @@
 # Can change this to LINK.c if it is a C only program
 # Can add more libraries here. 
 $(TARGET): $(OBJECTS)
-	$(CC) -o $@ $^ $(LDFLAGS)
+	$(CC) -o $(TARGET) $(LDFLAGS)
 
 # Make check: simply runs the sample, logged to a file
 check: $(TARGET) $(RESOURCES)
diff --git a/source/samples/uresb/uresb.c b/source/samples/uresb/uresb.c
index 27ea3aa..f8d7cd6 100644
--- a/source/samples/uresb/uresb.c
+++ b/source/samples/uresb/uresb.c
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  uresb.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/samples/ustring/ustring.cpp b/source/samples/ustring/ustring.cpp
index 2eea148..af25e20 100644
--- a/source/samples/ustring/ustring.cpp
+++ b/source/samples/ustring/ustring.cpp
@@ -1,7 +1,7 @@
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2016 and later: Unicode, Inc. and others.
+*   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
@@ -12,7 +12,7 @@
 *
 *******************************************************************************
 *   file name:  ustring.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -31,6 +31,10 @@
 #include "unicode/ucnv.h"
 #include "unicode/unistr.h"
 
+#ifndef UPRV_LENGTHOF
+#define UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+#endif
+
 // helper functions -------------------------------------------------------- ***
 
 // default converter for the platform encoding
diff --git a/source/stubdata/stubdata.c b/source/stubdata/stubdata.cpp
similarity index 94%
rename from source/stubdata/stubdata.c
rename to source/stubdata/stubdata.cpp
index ba644b2..f2efd3c 100644
--- a/source/stubdata/stubdata.c
+++ b/source/stubdata/stubdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
 *
@@ -25,7 +25,7 @@
 #include "ucmndata.h"
 
 
-U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = {
+extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = {
     {            /* DataHeader */
         {            /* MappedData */
             32,          /* headerSize */
diff --git a/source/tools/Makefile.in b/source/tools/Makefile.in
index 1cbef00..c3f81d6 100644
--- a/source/tools/Makefile.in
+++ b/source/tools/Makefile.in
@@ -19,6 +19,10 @@
 gencnval gensprep icuinfo genccode gencmn icupkg pkgdata \
 gentest gennorm2 gencfu gendict
 
+ifneq (@platform_make_fragment_name@,mh-cygwin-msvc)
+SUBDIRS += escapesrc
+endif
+
 ## List of phony targets
 .PHONY : all all-local all-recursive install install-local	\
 install-recursive clean clean-local clean-recursive distclean		\
diff --git a/source/tools/ctestfw/ctest.c b/source/tools/ctestfw/ctest.c
index 7d2a447..6b0ee96 100644
--- a/source/tools/ctestfw/ctest.c
+++ b/source/tools/ctestfw/ctest.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ********************************************************************************
diff --git a/source/tools/ctestfw/datamap.cpp b/source/tools/ctestfw/datamap.cpp
index 0bdee5a..96241a0 100644
--- a/source/tools/ctestfw/datamap.cpp
+++ b/source/tools/ctestfw/datamap.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
@@ -10,6 +10,7 @@
 
 #include "unicode/datamap.h"
 #include "unicode/resbund.h"
+#include "unicode/unistr.h"
 #include "hash.h"
 #include <stdlib.h>
 
@@ -20,7 +21,7 @@
 DataMap::utoi(const UnicodeString &s) const
 {
   char ch[256];
-  const UChar *u = s.getBuffer();
+  const UChar *u = toUCharPtr(s.getBuffer());
   int32_t len = s.length();
   u_UCharsToChars(u, ch, len);
   ch[len] = 0; /* include terminating \0 */
diff --git a/source/tools/ctestfw/testdata.cpp b/source/tools/ctestfw/testdata.cpp
index 83d949d..3ccf009 100644
--- a/source/tools/ctestfw/testdata.cpp
+++ b/source/tools/ctestfw/testdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/tstdtmod.cpp b/source/tools/ctestfw/tstdtmod.cpp
index be8d318..bb1008d 100644
--- a/source/tools/ctestfw/tstdtmod.cpp
+++ b/source/tools/ctestfw/tstdtmod.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/ucln_ct.c b/source/tools/ctestfw/ucln_ct.c
index 6ed1d7e..a4d1ce8 100644
--- a/source/tools/ctestfw/ucln_ct.c
+++ b/source/tools/ctestfw/ucln_ct.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/tools/ctestfw/unicode/ctest.h b/source/tools/ctestfw/unicode/ctest.h
index f3549a5..c950bad 100644
--- a/source/tools/ctestfw/unicode/ctest.h
+++ b/source/tools/ctestfw/unicode/ctest.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/tools/ctestfw/unicode/datamap.h b/source/tools/ctestfw/unicode/datamap.h
index ccc9948..56e9076 100644
--- a/source/tools/ctestfw/unicode/datamap.h
+++ b/source/tools/ctestfw/unicode/datamap.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/unicode/testdata.h b/source/tools/ctestfw/unicode/testdata.h
index 40536a4..cbee692 100644
--- a/source/tools/ctestfw/unicode/testdata.h
+++ b/source/tools/ctestfw/unicode/testdata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/unicode/testlog.h b/source/tools/ctestfw/unicode/testlog.h
index f9582d0..811f62f 100644
--- a/source/tools/ctestfw/unicode/testlog.h
+++ b/source/tools/ctestfw/unicode/testlog.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/unicode/testtype.h b/source/tools/ctestfw/unicode/testtype.h
index 00c20a0..7849a6d 100644
--- a/source/tools/ctestfw/unicode/testtype.h
+++ b/source/tools/ctestfw/unicode/testtype.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *****************************************************************************************
diff --git a/source/tools/ctestfw/unicode/tstdtmod.h b/source/tools/ctestfw/unicode/tstdtmod.h
index 4a1628d..6cdce88 100644
--- a/source/tools/ctestfw/unicode/tstdtmod.h
+++ b/source/tools/ctestfw/unicode/tstdtmod.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT: 
diff --git a/source/tools/ctestfw/unicode/uperf.h b/source/tools/ctestfw/unicode/uperf.h
index ba128ad..d1e0d6e 100644
--- a/source/tools/ctestfw/unicode/uperf.h
+++ b/source/tools/ctestfw/unicode/uperf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/tools/ctestfw/unicode/utimer.h b/source/tools/ctestfw/unicode/utimer.h
index 899feea..51b7f26 100644
--- a/source/tools/ctestfw/unicode/utimer.h
+++ b/source/tools/ctestfw/unicode/utimer.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ************************************************************************
@@ -12,7 +12,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 #   define VC_EXTRALEAN
 #   define WIN32_LEAN_AND_MEAN
 #   include <windows.h>
@@ -162,7 +162,7 @@
 typedef void FuntionToBeTimed(void* param);
 
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
     struct UTimer{
         LARGE_INTEGER start;
diff --git a/source/tools/ctestfw/uperf.cpp b/source/tools/ctestfw/uperf.cpp
index 1022353..0735f8a 100644
--- a/source/tools/ctestfw/uperf.cpp
+++ b/source/tools/ctestfw/uperf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/tools/escapesrc/Makefile.in b/source/tools/escapesrc/Makefile.in
new file mode 100644
index 0000000..7580ccd
--- /dev/null
+++ b/source/tools/escapesrc/Makefile.in
@@ -0,0 +1,112 @@
+## Makefile.in for ICU - tools/escapesrc
+## Copyright (C) 2016 and later: Unicode, Inc. and others.
+## License & terms of use: http://www.unicode.org/copyright.html
+## Copyright (c) 1999-2011, International Business Machines Corporation and
+## others. All Rights Reserved.
+## Steven R. Loomis
+
+# To avoid recursion
+SKIP_ESCAPING=YES
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../..
+
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = tools/escapesrc
+
+TARGET_STUB_NAME = escapesrc
+
+SECTION = 8
+
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS) $(MAN_FILES) ./output-*.cpp
+
+## Target information
+TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
+
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+#LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC)
+LIBS += $(DEFAULT_LIBS) $(LIB_M)
+
+OBJECTS = escapesrc.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local	\
+distclean distclean-local dist dist-local check check-local install-man
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET) $(MAN_FILES)
+
+install-local: all-local install-man
+	$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+	$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+
+install-man: $(MAN_FILES)
+#	$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+#	$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) $(TARGET) $(OBJECTS)
+
+distclean-local: clean-local
+	$(RMV) Makefile
+
+check-local: all-local
+	@echo Testing test-nochange.cpp
+	@$(INVOKE) $(TARGET) $(srcdir)/test-nochange.cpp ./output-nochange.cpp
+	@-diff -I '#line.*' $(srcdir)/test-nochange.cpp ./output-nochange.cpp || (echo >&2 'warning: diff failed or not found' ; true)
+	@echo Testing test-simple.cpp
+	@$(INVOKE) $(TARGET) $(srcdir)/test-simple.cpp ./output-simple.cpp
+	@-diff -I '#line.*' $(srcdir)/expect-simple.cpp ./output-simple.cpp   || (echo >&2 'warning: diff failed or not found' ; true)
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(TARGET) : $(OBJECTS)
+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+	$(POST_BUILD_STEP)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# depends on ICU being built
+gen-table: tblgen$(EXEEXT)
+	$(INVOKE) ./tblgen$(EXEEXT) > $(srcdir)/cptbl.h
+
+tblgen$(EXEEXT): tblgen.o
+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS) $(LIBICUUC)
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/source/tools/escapesrc/cptbl.h b/source/tools/escapesrc/cptbl.h
new file mode 100644
index 0000000..898e16c
--- /dev/null
+++ b/source/tools/escapesrc/cptbl.h
@@ -0,0 +1,521 @@
+//  Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html 
+// generated by tblgen. You weren't going to edit it by hand, were you?
+
+static const char cp1047_8859_1[256] = { 
+ (char)0x00, /* 00 */
+ (char)0x01, /* 01 */
+ (char)0x02, /* 02 */
+ (char)0x03, /* 03 */
+ (char)0x9C, /* 04 */
+ (char)0x09, /* 05 */
+ (char)0x86, /* 06 */
+ (char)0x7F, /* 07 */
+ (char)0x97, /* 08 */
+ (char)0x8D, /* 09 */
+ (char)0x8E, /* 0A */
+ (char)0x0B, /* 0B */
+ (char)0x0C, /* 0C */
+ (char)0x0D, /* 0D */
+ (char)0x0E, /* 0E */
+ (char)0x0F, /* 0F */
+ (char)0x10, /* 10 */
+ (char)0x11, /* 11 */
+ (char)0x12, /* 12 */
+ (char)0x13, /* 13 */
+ (char)0x9D, /* 14 */
+ (char)0x85, /* 15 */
+ (char)0x08, /* 16 */
+ (char)0x87, /* 17 */
+ (char)0x18, /* 18 */
+ (char)0x19, /* 19 */
+ (char)0x92, /* 1A */
+ (char)0x8F, /* 1B */
+ (char)0x1C, /* 1C */
+ (char)0x1D, /* 1D */
+ (char)0x1E, /* 1E */
+ (char)0x1F, /* 1F */
+ (char)0x80, /* 20 */
+ (char)0x81, /* 21 */
+ (char)0x82, /* 22 */
+ (char)0x83, /* 23 */
+ (char)0x84, /* 24 */
+ (char)0x0A, /* 25 */
+ (char)0x17, /* 26 */
+ (char)0x1B, /* 27 */
+ (char)0x88, /* 28 */
+ (char)0x89, /* 29 */
+ (char)0x8A, /* 2A */
+ (char)0x8B, /* 2B */
+ (char)0x8C, /* 2C */
+ (char)0x05, /* 2D */
+ (char)0x06, /* 2E */
+ (char)0x07, /* 2F */
+ (char)0x90, /* 30 */
+ (char)0x91, /* 31 */
+ (char)0x16, /* 32 */
+ (char)0x93, /* 33 */
+ (char)0x94, /* 34 */
+ (char)0x95, /* 35 */
+ (char)0x96, /* 36 */
+ (char)0x04, /* 37 */
+ (char)0x98, /* 38 */
+ (char)0x99, /* 39 */
+ (char)0x9A, /* 3A */
+ (char)0x9B, /* 3B */
+ (char)0x14, /* 3C */
+ (char)0x15, /* 3D */
+ (char)0x9E, /* 3E */
+ (char)0x1A, /* 3F */
+ (char)0x20, /* 40 */
+ (char)0xA0, /* 41 */
+ (char)0xE2, /* 42 */
+ (char)0xE4, /* 43 */
+ (char)0xE0, /* 44 */
+ (char)0xE1, /* 45 */
+ (char)0xE3, /* 46 */
+ (char)0xE5, /* 47 */
+ (char)0xE7, /* 48 */
+ (char)0xF1, /* 49 */
+ (char)0xA2, /* 4A */
+ (char)0x2E, /* 4B */
+ (char)0x3C, /* 4C */
+ (char)0x28, /* 4D */
+ (char)0x2B, /* 4E */
+ (char)0x7C, /* 4F */
+ (char)0x26, /* 50 */
+ (char)0xE9, /* 51 */
+ (char)0xEA, /* 52 */
+ (char)0xEB, /* 53 */
+ (char)0xE8, /* 54 */
+ (char)0xED, /* 55 */
+ (char)0xEE, /* 56 */
+ (char)0xEF, /* 57 */
+ (char)0xEC, /* 58 */
+ (char)0xDF, /* 59 */
+ (char)0x21, /* 5A */
+ (char)0x24, /* 5B */
+ (char)0x2A, /* 5C */
+ (char)0x29, /* 5D */
+ (char)0x3B, /* 5E */
+ (char)0x5E, /* 5F */
+ (char)0x2D, /* 60 */
+ (char)0x2F, /* 61 */
+ (char)0xC2, /* 62 */
+ (char)0xC4, /* 63 */
+ (char)0xC0, /* 64 */
+ (char)0xC1, /* 65 */
+ (char)0xC3, /* 66 */
+ (char)0xC5, /* 67 */
+ (char)0xC7, /* 68 */
+ (char)0xD1, /* 69 */
+ (char)0xA6, /* 6A */
+ (char)0x2C, /* 6B */
+ (char)0x25, /* 6C */
+ (char)0x5F, /* 6D */
+ (char)0x3E, /* 6E */
+ (char)0x3F, /* 6F */
+ (char)0xF8, /* 70 */
+ (char)0xC9, /* 71 */
+ (char)0xCA, /* 72 */
+ (char)0xCB, /* 73 */
+ (char)0xC8, /* 74 */
+ (char)0xCD, /* 75 */
+ (char)0xCE, /* 76 */
+ (char)0xCF, /* 77 */
+ (char)0xCC, /* 78 */
+ (char)0x60, /* 79 */
+ (char)0x3A, /* 7A */
+ (char)0x23, /* 7B */
+ (char)0x40, /* 7C */
+ (char)0x27, /* 7D */
+ (char)0x3D, /* 7E */
+ (char)0x22, /* 7F */
+ (char)0xD8, /* 80 */
+ (char)0x61, /* 81 */
+ (char)0x62, /* 82 */
+ (char)0x63, /* 83 */
+ (char)0x64, /* 84 */
+ (char)0x65, /* 85 */
+ (char)0x66, /* 86 */
+ (char)0x67, /* 87 */
+ (char)0x68, /* 88 */
+ (char)0x69, /* 89 */
+ (char)0xAB, /* 8A */
+ (char)0xBB, /* 8B */
+ (char)0xF0, /* 8C */
+ (char)0xFD, /* 8D */
+ (char)0xFE, /* 8E */
+ (char)0xB1, /* 8F */
+ (char)0xB0, /* 90 */
+ (char)0x6A, /* 91 */
+ (char)0x6B, /* 92 */
+ (char)0x6C, /* 93 */
+ (char)0x6D, /* 94 */
+ (char)0x6E, /* 95 */
+ (char)0x6F, /* 96 */
+ (char)0x70, /* 97 */
+ (char)0x71, /* 98 */
+ (char)0x72, /* 99 */
+ (char)0xAA, /* 9A */
+ (char)0xBA, /* 9B */
+ (char)0xE6, /* 9C */
+ (char)0xB8, /* 9D */
+ (char)0xC6, /* 9E */
+ (char)0xA4, /* 9F */
+ (char)0xB5, /* A0 */
+ (char)0x7E, /* A1 */
+ (char)0x73, /* A2 */
+ (char)0x74, /* A3 */
+ (char)0x75, /* A4 */
+ (char)0x76, /* A5 */
+ (char)0x77, /* A6 */
+ (char)0x78, /* A7 */
+ (char)0x79, /* A8 */
+ (char)0x7A, /* A9 */
+ (char)0xA1, /* AA */
+ (char)0xBF, /* AB */
+ (char)0xD0, /* AC */
+ (char)0x5B, /* AD */
+ (char)0xDE, /* AE */
+ (char)0xAE, /* AF */
+ (char)0xAC, /* B0 */
+ (char)0xA3, /* B1 */
+ (char)0xA5, /* B2 */
+ (char)0xB7, /* B3 */
+ (char)0xA9, /* B4 */
+ (char)0xA7, /* B5 */
+ (char)0xB6, /* B6 */
+ (char)0xBC, /* B7 */
+ (char)0xBD, /* B8 */
+ (char)0xBE, /* B9 */
+ (char)0xDD, /* BA */
+ (char)0xA8, /* BB */
+ (char)0xAF, /* BC */
+ (char)0x5D, /* BD */
+ (char)0xB4, /* BE */
+ (char)0xD7, /* BF */
+ (char)0x7B, /* C0 */
+ (char)0x41, /* C1 */
+ (char)0x42, /* C2 */
+ (char)0x43, /* C3 */
+ (char)0x44, /* C4 */
+ (char)0x45, /* C5 */
+ (char)0x46, /* C6 */
+ (char)0x47, /* C7 */
+ (char)0x48, /* C8 */
+ (char)0x49, /* C9 */
+ (char)0xAD, /* CA */
+ (char)0xF4, /* CB */
+ (char)0xF6, /* CC */
+ (char)0xF2, /* CD */
+ (char)0xF3, /* CE */
+ (char)0xF5, /* CF */
+ (char)0x7D, /* D0 */
+ (char)0x4A, /* D1 */
+ (char)0x4B, /* D2 */
+ (char)0x4C, /* D3 */
+ (char)0x4D, /* D4 */
+ (char)0x4E, /* D5 */
+ (char)0x4F, /* D6 */
+ (char)0x50, /* D7 */
+ (char)0x51, /* D8 */
+ (char)0x52, /* D9 */
+ (char)0xB9, /* DA */
+ (char)0xFB, /* DB */
+ (char)0xFC, /* DC */
+ (char)0xF9, /* DD */
+ (char)0xFA, /* DE */
+ (char)0xFF, /* DF */
+ (char)0x5C, /* E0 */
+ (char)0xF7, /* E1 */
+ (char)0x53, /* E2 */
+ (char)0x54, /* E3 */
+ (char)0x55, /* E4 */
+ (char)0x56, /* E5 */
+ (char)0x57, /* E6 */
+ (char)0x58, /* E7 */
+ (char)0x59, /* E8 */
+ (char)0x5A, /* E9 */
+ (char)0xB2, /* EA */
+ (char)0xD4, /* EB */
+ (char)0xD6, /* EC */
+ (char)0xD2, /* ED */
+ (char)0xD3, /* EE */
+ (char)0xD5, /* EF */
+ (char)0x30, /* F0 */
+ (char)0x31, /* F1 */
+ (char)0x32, /* F2 */
+ (char)0x33, /* F3 */
+ (char)0x34, /* F4 */
+ (char)0x35, /* F5 */
+ (char)0x36, /* F6 */
+ (char)0x37, /* F7 */
+ (char)0x38, /* F8 */
+ (char)0x39, /* F9 */
+ (char)0xB3, /* FA */
+ (char)0xDB, /* FB */
+ (char)0xDC, /* FC */
+ (char)0xD9, /* FD */
+ (char)0xDA, /* FE */
+ (char)0x9F, /* FF */
+};
+
+static const bool oldIllegal[256] = { 
+ false, /* U+0000 */
+ false, /* U+0001 */
+ false, /* U+0002 */
+ false, /* U+0003 */
+ false, /* U+0004 */
+ false, /* U+0005 */
+ false, /* U+0006 */
+ false, /* U+0007 */
+ false, /* U+0008 */
+ false, /* U+0009 */
+ false, /* U+000A */
+ false, /* U+000B */
+ false, /* U+000C */
+ false, /* U+000D */
+ false, /* U+000E */
+ false, /* U+000F */
+ false, /* U+0010 */
+ false, /* U+0011 */
+ false, /* U+0012 */
+ false, /* U+0013 */
+ false, /* U+0014 */
+ false, /* U+0015 */
+ false, /* U+0016 */
+ false, /* U+0017 */
+ false, /* U+0018 */
+ false, /* U+0019 */
+ false, /* U+001A */
+ false, /* U+001B */
+ false, /* U+001C */
+ false, /* U+001D */
+ false, /* U+001E */
+ false, /* U+001F */
+  true, /* U+0020 */
+  true, /* U+0021 */
+  true, /* U+0022 */
+  true, /* U+0023 */
+ false, /* U+0024 */
+  true, /* U+0025 */
+  true, /* U+0026 */
+  true, /* U+0027 */
+  true, /* U+0028 */
+  true, /* U+0029 */
+  true, /* U+002A */
+  true, /* U+002B */
+  true, /* U+002C */
+  true, /* U+002D */
+  true, /* U+002E */
+  true, /* U+002F */
+  true, /* U+0030 */
+  true, /* U+0031 */
+  true, /* U+0032 */
+  true, /* U+0033 */
+  true, /* U+0034 */
+  true, /* U+0035 */
+  true, /* U+0036 */
+  true, /* U+0037 */
+  true, /* U+0038 */
+  true, /* U+0039 */
+  true, /* U+003A */
+  true, /* U+003B */
+  true, /* U+003C */
+  true, /* U+003D */
+  true, /* U+003E */
+  true, /* U+003F */
+ false, /* U+0040 */
+  true, /* U+0041 */
+  true, /* U+0042 */
+  true, /* U+0043 */
+  true, /* U+0044 */
+  true, /* U+0045 */
+  true, /* U+0046 */
+  true, /* U+0047 */
+  true, /* U+0048 */
+  true, /* U+0049 */
+  true, /* U+004A */
+  true, /* U+004B */
+  true, /* U+004C */
+  true, /* U+004D */
+  true, /* U+004E */
+  true, /* U+004F */
+  true, /* U+0050 */
+  true, /* U+0051 */
+  true, /* U+0052 */
+  true, /* U+0053 */
+  true, /* U+0054 */
+  true, /* U+0055 */
+  true, /* U+0056 */
+  true, /* U+0057 */
+  true, /* U+0058 */
+  true, /* U+0059 */
+  true, /* U+005A */
+  true, /* U+005B */
+ false, /* U+005C */
+  true, /* U+005D */
+  true, /* U+005E */
+  true, /* U+005F */
+ false, /* U+0060 */
+  true, /* U+0061 */
+  true, /* U+0062 */
+  true, /* U+0063 */
+  true, /* U+0064 */
+  true, /* U+0065 */
+  true, /* U+0066 */
+  true, /* U+0067 */
+  true, /* U+0068 */
+  true, /* U+0069 */
+  true, /* U+006A */
+  true, /* U+006B */
+  true, /* U+006C */
+  true, /* U+006D */
+  true, /* U+006E */
+  true, /* U+006F */
+  true, /* U+0070 */
+  true, /* U+0071 */
+  true, /* U+0072 */
+  true, /* U+0073 */
+  true, /* U+0074 */
+  true, /* U+0075 */
+  true, /* U+0076 */
+  true, /* U+0077 */
+  true, /* U+0078 */
+  true, /* U+0079 */
+  true, /* U+007A */
+  true, /* U+007B */
+  true, /* U+007C */
+  true, /* U+007D */
+  true, /* U+007E */
+ false, /* U+007F */
+ false, /* U+0080 */
+ false, /* U+0081 */
+ false, /* U+0082 */
+ false, /* U+0083 */
+ false, /* U+0084 */
+ false, /* U+0085 */
+ false, /* U+0086 */
+ false, /* U+0087 */
+ false, /* U+0088 */
+ false, /* U+0089 */
+ false, /* U+008A */
+ false, /* U+008B */
+ false, /* U+008C */
+ false, /* U+008D */
+ false, /* U+008E */
+ false, /* U+008F */
+ false, /* U+0090 */
+ false, /* U+0091 */
+ false, /* U+0092 */
+ false, /* U+0093 */
+ false, /* U+0094 */
+ false, /* U+0095 */
+ false, /* U+0096 */
+ false, /* U+0097 */
+ false, /* U+0098 */
+ false, /* U+0099 */
+ false, /* U+009A */
+ false, /* U+009B */
+ false, /* U+009C */
+ false, /* U+009D */
+ false, /* U+009E */
+ false, /* U+009F */
+ false, /* U+00A0 */
+ false, /* U+00A1 */
+ false, /* U+00A2 */
+ false, /* U+00A3 */
+ false, /* U+00A4 */
+ false, /* U+00A5 */
+ false, /* U+00A6 */
+ false, /* U+00A7 */
+ false, /* U+00A8 */
+ false, /* U+00A9 */
+ false, /* U+00AA */
+ false, /* U+00AB */
+ false, /* U+00AC */
+ false, /* U+00AD */
+ false, /* U+00AE */
+ false, /* U+00AF */
+ false, /* U+00B0 */
+ false, /* U+00B1 */
+ false, /* U+00B2 */
+ false, /* U+00B3 */
+ false, /* U+00B4 */
+ false, /* U+00B5 */
+ false, /* U+00B6 */
+ false, /* U+00B7 */
+ false, /* U+00B8 */
+ false, /* U+00B9 */
+ false, /* U+00BA */
+ false, /* U+00BB */
+ false, /* U+00BC */
+ false, /* U+00BD */
+ false, /* U+00BE */
+ false, /* U+00BF */
+ false, /* U+00C0 */
+ false, /* U+00C1 */
+ false, /* U+00C2 */
+ false, /* U+00C3 */
+ false, /* U+00C4 */
+ false, /* U+00C5 */
+ false, /* U+00C6 */
+ false, /* U+00C7 */
+ false, /* U+00C8 */
+ false, /* U+00C9 */
+ false, /* U+00CA */
+ false, /* U+00CB */
+ false, /* U+00CC */
+ false, /* U+00CD */
+ false, /* U+00CE */
+ false, /* U+00CF */
+ false, /* U+00D0 */
+ false, /* U+00D1 */
+ false, /* U+00D2 */
+ false, /* U+00D3 */
+ false, /* U+00D4 */
+ false, /* U+00D5 */
+ false, /* U+00D6 */
+ false, /* U+00D7 */
+ false, /* U+00D8 */
+ false, /* U+00D9 */
+ false, /* U+00DA */
+ false, /* U+00DB */
+ false, /* U+00DC */
+ false, /* U+00DD */
+ false, /* U+00DE */
+ false, /* U+00DF */
+ false, /* U+00E0 */
+ false, /* U+00E1 */
+ false, /* U+00E2 */
+ false, /* U+00E3 */
+ false, /* U+00E4 */
+ false, /* U+00E5 */
+ false, /* U+00E6 */
+ false, /* U+00E7 */
+ false, /* U+00E8 */
+ false, /* U+00E9 */
+ false, /* U+00EA */
+ false, /* U+00EB */
+ false, /* U+00EC */
+ false, /* U+00ED */
+ false, /* U+00EE */
+ false, /* U+00EF */
+ false, /* U+00F0 */
+ false, /* U+00F1 */
+ false, /* U+00F2 */
+ false, /* U+00F3 */
+ false, /* U+00F4 */
+ false, /* U+00F5 */
+ false, /* U+00F6 */
+ false, /* U+00F7 */
+ false, /* U+00F8 */
+ false, /* U+00F9 */
+ false, /* U+00FA */
+ false, /* U+00FB */
+ false, /* U+00FC */
+ false, /* U+00FD */
+ false, /* U+00FE */
+ false, /* U+00FF */
+};
+
diff --git a/source/tools/escapesrc/escapesrc.cpp b/source/tools/escapesrc/escapesrc.cpp
new file mode 100644
index 0000000..ab24038
--- /dev/null
+++ b/source/tools/escapesrc/escapesrc.cpp
@@ -0,0 +1,409 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include <stdio.h>
+#include <string>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <iostream>
+#include <fstream>
+
+// with caution:
+#include "unicode/utf8.h"
+
+static const char
+  kSPACE   = 0x20,
+  kTAB     = 0x09,
+  kLF      = 0x0A,
+  kCR      = 0x0D,
+  // kHASH    = 0x23,
+  // kSLASH   = 0x2f,
+  kBKSLASH = 0x5C,
+  // kSTAR    = 0x2A,
+  kL_U     = 0x75,
+  kU_U     = 0x55,
+  kQUOT    = 0x27,
+  kDBLQ    = 0x22;
+
+# include "cptbl.h"
+
+# define cp1047_to_8859(c) cp1047_8859_1[c]
+
+std::string prog;
+
+void usage() {
+  fprintf(stderr, "%s: usage: %s infile.cpp outfile.cpp\n", prog.c_str(), prog.c_str());
+}
+
+
+int cleanup(const std::string &outfile) {
+  const char *outstr = outfile.c_str();
+  if(outstr && *outstr) {
+    int rc = unlink(outstr);
+    if(rc == 0) {
+      fprintf(stderr, "%s: deleted %s\n", prog.c_str(), outstr);
+      return 0;
+    } else {
+      if( errno == ENOENT ) {
+        return 0; // File did not exist - no error.
+      } else {
+        perror("unlink");
+        return 1;
+      }
+    }
+  }
+  return 0;
+}
+
+// inline bool hasNonAscii(const char *line, size_t len) {
+//   const unsigned char *uline = reinterpret_cast<const unsigned char*>(line);
+//   for(size_t i=0;i<len; i++) {
+//     if( uline[i] > 0x7F) {
+//       return true;
+//     }
+//   }
+//   return false;
+// }
+
+inline const char *skipws(const char *p, const char *e) {
+  for(;p<e;p++) {
+    switch(*p) {
+    case kSPACE:
+    case kTAB:
+    case kLF:
+    case kCR:
+      break;
+    default:
+      return p; // non ws
+    }
+  }
+  return p;
+}
+
+// inline bool isCommentOrEmpty(const char* line, size_t len) {
+//   const char *p = line;
+//   const char *e = line+len;
+//   p = skipws(p,e);
+//   if(p==e) {
+//     return true; // whitespace only
+//   }
+//   p++;
+//   switch(*p) {
+//   case kHASH: return true; // #directive
+//   case kSLASH:
+//     p++;
+//     if(p==e) return false; // single slash
+//     switch(*p) {
+//     case kSLASH: // '/ /'
+//     case kSTAR: // '/ *'
+//       return true; // start of comment
+//     default: return false; // something else
+//     }
+//   default: return false; // something else
+//   }
+//   /*NOTREACHED*/
+// }
+
+void appendByte(std::string &outstr,
+                uint8_t byte) {
+    char tmp2[5];
+    sprintf(tmp2, "\\x%02X", 0xFF & (int)(byte));
+    outstr += tmp2;
+}
+
+/**
+ * @return true on failure
+ */
+bool appendUtf8(std::string &outstr,
+                const std::string &linestr,
+                size_t &pos,
+                size_t chars) {
+  char tmp[9];
+  for(size_t i=0;i<chars;i++) {
+    tmp[i] = linestr[++pos];
+  }
+  tmp[chars] = 0;
+  unsigned int c;
+  sscanf(tmp, "%X", &c);
+  UChar32 ch = c & 0x1FFFFF; 
+
+  // now to append \\x%% etc
+  uint8_t bytesNeeded = U8_LENGTH(ch);
+  if(bytesNeeded == 0) {
+    fprintf(stderr, "Illegal code point U+%X\n", ch);
+    return true;
+  }
+  uint8_t bytes[4];
+  uint8_t *s = bytes;
+  size_t i = 0;
+  U8_APPEND_UNSAFE(s, i, ch);
+  for(size_t t = 0; t<i; t++) {
+    appendByte(outstr, s[t]);
+  }
+  return false;
+}
+
+/**
+ * @param linestr string to mutate. Already escaped into \u format.
+ * @param origpos beginning, points to 'u8"'
+ * @param pos end, points to "
+ * @return false for no-problem, true for failure!
+ */
+bool fixu8(std::string &linestr, size_t origpos, size_t &endpos) {
+  size_t pos = origpos + 3;
+  std::string outstr;
+  outstr += '\"'; // local encoding
+  for(;pos<endpos;pos++) {
+    char c = linestr[pos];
+    if(c == '\\') {
+      char c2 = linestr[++pos];
+      switch(c2) {
+      case '\'':
+      case '"':
+#if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY)
+        c2 = cp1047_to_8859(c2);
+#endif
+        appendByte(outstr, c2);
+        break;
+      case 'u':
+        appendUtf8(outstr, linestr, pos, 4);
+        break;
+      case 'U':
+        appendUtf8(outstr, linestr, pos, 8);
+        break;
+      }
+    } else {
+#if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY)
+      c = cp1047_to_8859(c);
+#endif
+      appendByte(outstr, c);
+    }
+  }
+  outstr += ('\"');
+
+  linestr.replace(origpos, (endpos-origpos+1), outstr);
+  
+  return false; // OK
+}
+
+/**
+ * fix the string at the position
+ * false = no err
+ * true = had err
+ */
+bool fixAt(std::string &linestr, size_t pos) {
+  size_t origpos = pos;
+  
+  if(linestr[pos] != 'u') {
+    fprintf(stderr, "Not a 'u'?");
+    return true;
+  }
+
+  pos++; // past 'u'
+
+  bool utf8 = false;
+  
+  if(linestr[pos] == '8') { // u8"
+    utf8 = true;
+    pos++;
+  }
+  
+  char quote = linestr[pos];
+
+  if(quote != '\'' && quote != '\"') {
+    fprintf(stderr, "Quote is '%c' - not sure what to do.\n", quote);
+    return true;
+  }
+
+  if(quote == '\'' && utf8) {
+    fprintf(stderr, "Cannot do u8'...'\n");
+    return true;
+  }
+
+  pos ++;
+
+  //printf("u%c…%c\n", quote, quote);
+
+  for(; pos < linestr.size(); pos++) {
+    if(linestr[pos] == quote) {
+      if(utf8) {
+        return fixu8(linestr, origpos, pos); // fix u8"..."
+      } else {
+        return false; // end of quote
+      }
+    }
+    if(linestr[pos] == '\\') {
+      pos++;
+      if(linestr[pos] == quote) continue; // quoted quote
+      if(linestr[pos] == 'u') continue; // for now ... unicode escape
+      if(linestr[pos] == '\\') continue;
+      // some other escape… ignore
+    } else {
+      size_t old_pos = pos;
+      int32_t i = pos;
+#if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY)
+      // mogrify 1-4 bytes from 1047 'back' to utf-8
+      char old_byte = linestr[pos];
+      linestr[pos] = cp1047_to_8859(linestr[pos]);
+      // how many more?
+      int32_t trail = U8_COUNT_TRAIL_BYTES(linestr[pos]);
+      for(size_t pos2 = pos+1; trail>0; pos2++,trail--) {
+        linestr[pos2] = cp1047_to_8859(linestr[pos2]);
+        if(linestr[pos2] == 0x0A) {
+          linestr[pos2] = 0x85; // NL is ambiguous here
+        }
+      }
+#endif
+      
+      // Proceed to decode utf-8
+      const uint8_t *s = (const uint8_t*) (linestr.c_str());
+      int32_t length = linestr.size();
+      UChar32 c;
+      if(U8_IS_SINGLE((uint8_t)s[i]) && oldIllegal[s[i]]) {
+#if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY)
+        linestr[pos] = old_byte; // put it back
+#endif
+        continue; // single code point not previously legal for \u escaping
+      }
+
+      // otherwise, convert it to \u / \U
+      {
+        U8_NEXT(s, i, length, c);
+      }
+      if(c<0) {
+        fprintf(stderr, "Illegal utf-8 sequence at Column: %d\n", old_pos);
+        fprintf(stderr, "Line: >>%s<<\n", linestr.c_str());
+        return true;
+      }
+
+      size_t seqLen = (i-pos);
+
+      //printf("U+%04X pos %d [len %d]\n", c, pos, seqLen);fflush(stdout);
+
+      char newSeq[20];
+      if( c <= 0xFFFF) {
+        sprintf(newSeq, "\\u%04X", c);
+      } else {
+        sprintf(newSeq, "\\U%08X", c);
+      }
+      linestr.replace(pos, seqLen, newSeq);
+      pos += strlen(newSeq) - 1;
+    }
+  }
+
+  return false;
+}
+
+/**
+ * false = no err
+ * true = had err
+ */
+bool fixLine(int /*no*/, std::string &linestr) {
+  const char *line = linestr.c_str();
+  size_t len = linestr.size();
+
+  // no u' in the line?
+  if(!strstr(line, "u'") && !strstr(line, "u\"") && !strstr(line, "u8\"")) {
+    return false; // Nothing to do. No u' or u" detected
+  }
+
+  // lines such as u8"\u0308" are all ASCII.
+  // // Quick Check: all ascii?
+  // if(!hasNonAscii(line, len)) {
+  //   return false; // ASCII
+  // }
+
+  // // comment or empty line?
+  // if(isCommentOrEmpty(line, len)) {
+  //   return false; // Comment or just empty
+  // }
+
+  // start from the end and find all u" cases
+  size_t pos = len = linestr.size();
+  while((pos>0) && (pos = linestr.rfind("u\"", pos)) != std::string::npos) {
+    //printf("found doublequote at %d\n", pos);
+    if(fixAt(linestr, pos)) return true;
+    if(pos == 0) break;
+    pos--;
+  }
+
+  // reset and find all u' cases
+  pos = len = linestr.size();
+  while((pos>0) && (pos = linestr.rfind("u'", pos)) != std::string::npos) {
+    //printf("found singlequote at %d\n", pos);
+    if(fixAt(linestr, pos)) return true;
+    if(pos == 0) break;
+    pos--;
+  }
+
+  // reset and find all u8" cases
+  pos = len = linestr.size();
+  while((pos>0) && (pos = linestr.rfind("u8\"", pos)) != std::string::npos) {
+    if(fixAt(linestr, pos)) return true;
+    if(pos == 0) break;
+    pos--;
+  }
+
+  //fprintf(stderr, "%d - fixed\n", no);
+  return false;
+}
+
+int convert(const std::string &infile, const std::string &outfile) {
+  fprintf(stderr, "escapesrc: %s -> %s\n", infile.c_str(), outfile.c_str());
+
+  std::ifstream inf;
+  
+  inf.open(infile.c_str(), std::ios::in);
+
+  if(!inf.is_open()) {
+    fprintf(stderr, "%s: could not open input file %s\n", prog.c_str(), infile.c_str());
+    cleanup(outfile);
+    return 1;
+  }
+
+  std::ofstream outf;
+
+  outf.open(outfile.c_str(), std::ios::out);
+
+  if(!outf.is_open()) {
+    fprintf(stderr, "%s: could not open output file %s\n", prog.c_str(), outfile.c_str());
+    return 1;
+  }
+
+  // TODO: any platform variations of #line?
+  outf << "#line 1 \"" << infile << "\"" << '\n';
+
+  int no = 0;
+  std::string linestr;
+  while( getline( inf, linestr)) {
+    no++;
+    if(fixLine(no, linestr)) {
+      outf.close();
+      fprintf(stderr, "%s:%d: Fixup failed by %s\n", infile.c_str(), no, prog.c_str());
+      cleanup(outfile);
+      return 1;
+    }
+    outf << linestr << '\n';
+  }
+
+  return 0;
+}
+
+int main(int argc, const char *argv[]) {
+  prog = argv[0];
+
+  if(argc != 3) {
+    usage();
+    return 1;
+  }
+
+  std::string infile = argv[1];
+  std::string outfile = argv[2];
+
+  return convert(infile, outfile);
+}
+
+
+#include "utf_impl.cpp"
diff --git a/source/tools/escapesrc/expect-simple.cpp b/source/tools/escapesrc/expect-simple.cpp
new file mode 100644
index 0000000..a6019a8
--- /dev/null
+++ b/source/tools/escapesrc/expect-simple.cpp
@@ -0,0 +1,17 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+u"sa\u0127\u0127a";
+u'\u6587';
+u"\U000219F2";
+u"\u039C\u03C5\u03C3\u03C4\u03AE\u03C1\u03B9\u03BF";
+
+ u"sa\u0127\u0127a";
+ u'\u6587'; u"\U000219F2";
+
+"\x20\xCC\x81";
+"\xCC\x88\x20";
+"\x73\x61\xC4\xA7\xC4\xA7\x61";
+"\xE6\x96\x87";
+"\xF0\xA1\xA7\xB2";
+"\x73\x61\xC4\xA7\xC4\xA7\x61";
diff --git a/source/tools/escapesrc/tblgen.cpp b/source/tools/escapesrc/tblgen.cpp
new file mode 100644
index 0000000..e94fa90
--- /dev/null
+++ b/source/tools/escapesrc/tblgen.cpp
@@ -0,0 +1,80 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+#include "unicode/ucnv.h"
+#include "unicode/uniset.h"
+#include <stdio.h>
+
+static const char *kConverter = "ibm-1047";
+
+int main(int argc, const char *argv[]) {
+  printf("// %s\n", U_COPYRIGHT_STRING);
+  printf("// generated by tblgen. You weren't going to edit it by hand, were you?\n");
+  printf("\n");
+
+  UErrorCode status = U_ZERO_ERROR;
+  LocalUConverterPointer cnv(ucnv_open(kConverter, &status));
+
+  if(U_FAILURE(status)) {
+    fprintf(stderr, "Failed to open %s: %s\n", kConverter, u_errorName(status));
+    return 1;
+  }
+
+  printf("static const char cp1047_8859_1[256] = { \n");
+  for(int i=0x00; i<0x100; i++) {
+    char cp1047[1];
+    cp1047[0] = i;
+    UChar u[1];
+    UChar *target = u;
+    const char *source = cp1047;
+    ucnv_toUnicode(cnv.getAlias(), &target, u+1, &source, cp1047+1, nullptr, true, &status);
+    if(U_FAILURE(status)) {
+      fprintf(stderr, "Conversion failure at #%X: %s\n", i, u_errorName(status));
+      return 2;
+    }
+    printf(" (char)0x%02X, /* %02X */\n", u[0], i);
+  }
+  printf("};\n\n");
+
+  // 
+  //  UnicodeSet oldIllegal("[:print:]", status); // [a-zA-Z0-9_}{#)(><%:;.?*+-/^&|~!=,\\u005b\\u005d\\u005c]", status);
+  UnicodeSet oldIllegal("[0-9 a-z A-Z "
+                        "_ \\{ \\} \\[ \\] # \\( \\) < > % \\: ; . "
+                        "? * + \\- / \\^ \\& | ~ ! = , \\ \" ' ]", status);
+  
+  /*
+
+http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf ( note: 1998 )   page 10, section 2.2 says:
+
+1 The basic source character set consists of 96 characters: the space character, the control characters repre- 15)
+senting horizontal tab, vertical tab, form feed, and new-line, plus the following 91 graphical characters:
+a b c d e f g h i j k l m n opqrstuvwxyz
+A B C D E F G H I J K L M N OPQRSTUVWXYZ
+0 12 3 4 5 6 7 8 9
+ _ { } [ ] # ( ) < > % : ; . ?*+-/^&|~!=,\"
+2 The universal-character-name construct provides a way to name other characters. hex-quad:
+hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
+universal-character-name: \u hex-quad
+\U hex-quad hex-quad
+The character designated by the universal-character-name \UNNNNNNNN is that character whose character short name in ISO/IEC 10646 is NNNNNNNN; the character designated by the universal-character-name \uNNNN is that character whose character short name in ISO/IEC 10646 is 0000NNNN. If the hexadecimal value for a universal character name is less than 0x20 or in the range 0x7F-0x9F (inclusive), or if the uni- versal character name designates a character in the basic source character set, then the program is ill- formed.
+
+
+So basically:  printable ASCII plus  0x00-0x1F,  0x7F-0x9F, was all illegal.
+
+Some discussion at http://unicode.org/mail-arch/unicode-ml/y2003-m10/0471.html
+
+   */
+  
+
+
+  printf("static const bool oldIllegal[256] = { \n");
+  for(UChar i=0x00; i<0x100;i++) {
+    printf(" %s, /* U+%04X */\n",
+           (oldIllegal.contains(i))?" true":"false",
+           i);
+  }
+  printf("};\n\n");
+  
+  return 0;
+}
diff --git a/source/tools/escapesrc/test-nochange.cpp b/source/tools/escapesrc/test-nochange.cpp
new file mode 100644
index 0000000..8c0d04b
--- /dev/null
+++ b/source/tools/escapesrc/test-nochange.cpp
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// This is a source file with no changes needed in it.
+// In fact, the only non-ASCII character is the comment line at top.
diff --git a/source/tools/escapesrc/test-simple.cpp b/source/tools/escapesrc/test-simple.cpp
new file mode 100644
index 0000000..b03f28f
--- /dev/null
+++ b/source/tools/escapesrc/test-simple.cpp
@@ -0,0 +1,17 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+u"saħħa";
+u'文';
+u"𡧲";
+u"Μυστήριο";
+
+ u"saħħa";
+ u'文'; u"𡧲";
+
+u8" \u0301";
+u8"\u0308 ";
+u8"saħħa";
+u8"文";
+u8"𡧲";
+u8"saħ\u0127a";
diff --git a/source/tools/genbrk/genbrk.cpp b/source/tools/genbrk/genbrk.cpp
index 294f671..0a4ec3c 100644
--- a/source/tools/genbrk/genbrk.cpp
+++ b/source/tools/genbrk/genbrk.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/tools/genccode/genccode.c b/source/tools/genccode/genccode.c
index 2534820..d35b589 100644
--- a/source/tools/genccode/genccode.c
+++ b/source/tools/genccode/genccode.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -6,7 +6,7 @@
  *   Corporation and others.  All Rights Reserved.
  *******************************************************************************
  *   file name:  gennames.c
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/tools/gencfu/gencfu.cpp b/source/tools/gencfu/gencfu.cpp
index f1175a7..c4098c8 100644
--- a/source/tools/gencfu/gencfu.cpp
+++ b/source/tools/gencfu/gencfu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/tools/gencmn/gencmn.c b/source/tools/gencmn/gencmn.c
index d328a30..77f0c20 100644
--- a/source/tools/gencmn/gencmn.c
+++ b/source/tools/gencmn/gencmn.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gencmn.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gencnval/gencnval.c b/source/tools/gencnval/gencnval.c
index ad5b3d2..8d2a04c 100644
--- a/source/tools/gencnval/gencnval.c
+++ b/source/tools/gencnval/gencnval.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gencnval.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gencolusb/extract_unsafe_backwards.cpp b/source/tools/gencolusb/extract_unsafe_backwards.cpp
index ef5b8de..c5302e0 100644
--- a/source/tools/gencolusb/extract_unsafe_backwards.cpp
+++ b/source/tools/gencolusb/extract_unsafe_backwards.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  * Copyright (c) 1999-2016, International Business Machines Corporation and
diff --git a/source/tools/gencolusb/verify_uset.cpp b/source/tools/gencolusb/verify_uset.cpp
index 0dc3119..d043532 100644
--- a/source/tools/gencolusb/verify_uset.cpp
+++ b/source/tools/gencolusb/verify_uset.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**
  * Copyright (c) 1999-2012, International Business Machines Corporation and
diff --git a/source/tools/gendict/gendict.cpp b/source/tools/gendict/gendict.cpp
index 75c0bdd..73b9fec 100644
--- a/source/tools/gendict/gendict.cpp
+++ b/source/tools/gendict/gendict.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
@@ -22,6 +22,7 @@
 #include "unicode/ucharstrie.h"
 #include "unicode/bytestrie.h"
 #include "unicode/ucnv.h"
+#include "unicode/ustring.h"
 #include "unicode/utf16.h"
 
 #include "charstr.h"
diff --git a/source/tools/gennorm2/Makefile.in b/source/tools/gennorm2/Makefile.in
index 2280763..729a3d0 100644
--- a/source/tools/gennorm2/Makefile.in
+++ b/source/tools/gennorm2/Makefile.in
@@ -24,7 +24,7 @@
 ## Target information
 TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(srcdir)/../toolutil
 LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
 
 OBJECTS = gennorm2.o n2builder.o
diff --git a/source/tools/gennorm2/gennorm2.cpp b/source/tools/gennorm2/gennorm2.cpp
index 9c85e0b..477bfd6 100644
--- a/source/tools/gennorm2/gennorm2.cpp
+++ b/source/tools/gennorm2/gennorm2.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gennorm2.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gennorm2/n2builder.cpp b/source/tools/gennorm2/n2builder.cpp
index 54ad860..66ccd70 100644
--- a/source/tools/gennorm2/n2builder.cpp
+++ b/source/tools/gennorm2/n2builder.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  n2builder.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -25,9 +25,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#if U_HAVE_STD_STRING
 #include <vector>
-#endif
 #include "unicode/errorcode.h"
 #include "unicode/localpointer.h"
 #include "unicode/putil.h"
@@ -282,7 +280,7 @@
 
 static UBool isWellFormed(const UnicodeString &s) {
     UErrorCode errorCode=U_ZERO_ERROR;
-    u_strToUTF8(NULL, 0, NULL, s.getBuffer(), s.length(), &errorCode);
+    u_strToUTF8(NULL, 0, NULL, toUCharPtr(s.getBuffer()), s.length(), &errorCode);
     return U_SUCCESS(errorCode) || errorCode==U_BUFFER_OVERFLOW_ERROR;
 }
 
@@ -315,7 +313,7 @@
                 (int)phase, (long)c);
         exit(U_INVALID_FORMAT_ERROR);
     }
-    int32_t numCP=u_countChar32(m.getBuffer(), m.length());
+    int32_t numCP=u_countChar32(toUCharPtr(m.getBuffer()), m.length());
     if(numCP!=2) {
         fprintf(stderr,
                 "error in gennorm2 phase %d: "
@@ -452,7 +450,7 @@
         Norm &norm=norms[value];
         const UnicodeString &m=*norm.mapping;
         UnicodeString *decomposed=NULL;
-        const UChar *s=m.getBuffer();
+        const UChar *s=toUCharPtr(m.getBuffer());
         int32_t length=m.length();
         int32_t prev, i=0;
         UChar32 c;
@@ -607,7 +605,7 @@
     if(length>Normalizer2Impl::MAPPING_LENGTH_MASK) {
         return;  // writeMapping() will complain about it and print the code point.
     }
-    const UChar *s=m.getBuffer();
+    const UChar *s=toUCharPtr(m.getBuffer());
     int32_t i=0;
     UChar32 c;
     while(i<length) {
@@ -1209,7 +1207,7 @@
     }
     udata_writeBlock(pData, indexes, sizeof(indexes));
     udata_writeBlock(pData, norm16TrieBytes.getAlias(), norm16TrieLength);
-    udata_writeUString(pData, extraData.getBuffer(), extraData.length());
+    udata_writeUString(pData, toUCharPtr(extraData.getBuffer()), extraData.length());
     udata_writeBlock(pData, smallFCD, sizeof(smallFCD));
     int32_t writtenSize=udata_finish(pData, errorCode);
     if(errorCode.isFailure()) {
diff --git a/source/tools/gennorm2/n2builder.h b/source/tools/gennorm2/n2builder.h
index 6f8b8af..c231a3d 100644
--- a/source/tools/gennorm2/n2builder.h
+++ b/source/tools/gennorm2/n2builder.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  n2builder.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/genrb/Makefile.in b/source/tools/genrb/Makefile.in
index 63cd52b..7e2360b 100644
--- a/source/tools/genrb/Makefile.in
+++ b/source/tools/genrb/Makefile.in
@@ -33,7 +33,7 @@
 # derb depends on icuio
 @ICUIO_TRUE@DERB = $(BINDIR)/$(DERB_STUB_NAME)$(EXEEXT)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil -I$(top_srcdir)/io
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil -I$(top_srcdir)/io
 CPPFLAGS += -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit
 LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
 
diff --git a/source/tools/genrb/derb.cpp b/source/tools/genrb/derb.cpp
index 22e275e..ac26d95 100644
--- a/source/tools/genrb/derb.cpp
+++ b/source/tools/genrb/derb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  derb.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/genrb/errmsg.c b/source/tools/genrb/errmsg.c
index 7340f01..603f26a 100644
--- a/source/tools/genrb/errmsg.c
+++ b/source/tools/genrb/errmsg.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/errmsg.h b/source/tools/genrb/errmsg.h
index 5026ecf..e01b955 100644
--- a/source/tools/genrb/errmsg.h
+++ b/source/tools/genrb/errmsg.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/genrb.cpp b/source/tools/genrb/genrb.cpp
index 685fb58..68870bd 100644
--- a/source/tools/genrb/genrb.cpp
+++ b/source/tools/genrb/genrb.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/genrb.h b/source/tools/genrb/genrb.h
index 99c604f..019020a 100644
--- a/source/tools/genrb/genrb.h
+++ b/source/tools/genrb/genrb.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/parse.cpp b/source/tools/genrb/parse.cpp
index 81a3bf5..18f994d 100644
--- a/source/tools/genrb/parse.cpp
+++ b/source/tools/genrb/parse.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/parse.h b/source/tools/genrb/parse.h
index d7341be..dfe3b8d 100644
--- a/source/tools/genrb/parse.h
+++ b/source/tools/genrb/parse.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/prscmnts.cpp b/source/tools/genrb/prscmnts.cpp
index 03cad7f..5e44547 100644
--- a/source/tools/genrb/prscmnts.cpp
+++ b/source/tools/genrb/prscmnts.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
diff --git a/source/tools/genrb/prscmnts.h b/source/tools/genrb/prscmnts.h
index 7ceaa6c..43195d2 100644
--- a/source/tools/genrb/prscmnts.h
+++ b/source/tools/genrb/prscmnts.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/rbutil.c b/source/tools/genrb/rbutil.c
index d3882c4..1983a2f 100644
--- a/source/tools/genrb/rbutil.c
+++ b/source/tools/genrb/rbutil.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/rbutil.h b/source/tools/genrb/rbutil.h
index d2a3035..9a12c50 100644
--- a/source/tools/genrb/rbutil.h
+++ b/source/tools/genrb/rbutil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/read.c b/source/tools/genrb/read.c
index 468c27e..9135da2 100644
--- a/source/tools/genrb/read.c
+++ b/source/tools/genrb/read.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/read.h b/source/tools/genrb/read.h
index 74b8c82..e5b8d15 100644
--- a/source/tools/genrb/read.h
+++ b/source/tools/genrb/read.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/reslist.cpp b/source/tools/genrb/reslist.cpp
index 9420184..2e04bbc 100644
--- a/source/tools/genrb/reslist.cpp
+++ b/source/tools/genrb/reslist.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -271,7 +271,7 @@
         return;
     }
 
-    fString.setTo(value, len);
+    fString.setTo(ConstChar16Ptr(value), len);
     fString.getTerminatedBuffer();  // Some code relies on NUL-termination.
     if (U_SUCCESS(errorCode) && fString.isBogus()) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
@@ -1031,7 +1031,7 @@
             if (f16BitUnits.length() <= 1) {
                 // no pool strings to checksum
             } else if (U_IS_BIG_ENDIAN) {
-                checksum = computeCRC((const char *)f16BitUnits.getBuffer(),
+                checksum = computeCRC(reinterpret_cast<const char *>(f16BitUnits.getBuffer()),
                                       (uint32_t)f16BitUnits.length() * 2, checksum);
             } else {
                 // Swap to big-endian so we get the same checksum on all platforms
@@ -1039,7 +1039,7 @@
                 UnicodeString s(f16BitUnits);
                 s.append((UChar)1);  // Ensure that we own this buffer.
                 assert(!s.isBogus());
-                uint16_t *p = (uint16_t *)s.getBuffer();
+                uint16_t *p = const_cast<uint16_t *>(reinterpret_cast<const uint16_t *>(s.getBuffer()));
                 for (int32_t count = f16BitUnits.length(); count > 0; --count) {
                     uint16_t x = *p;
                     *p++ = (uint16_t)((x << 8) | (x >> 8));
diff --git a/source/tools/genrb/reslist.h b/source/tools/genrb/reslist.h
index de6faf6..ee1ecf3 100644
--- a/source/tools/genrb/reslist.h
+++ b/source/tools/genrb/reslist.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -304,7 +304,7 @@
     StringBaseResource(int8_t type, const UChar *value, int32_t len, UErrorCode &errorCode);
     virtual ~StringBaseResource();
 
-    const UChar *getBuffer() const { return fString.getBuffer(); }
+    const UChar *getBuffer() const { return icu::toUCharPtr(fString.getBuffer()); }
     int32_t length() const { return fString.length(); }
 
     virtual void handlePreWrite(uint32_t *byteOffset);
diff --git a/source/tools/genrb/rle.c b/source/tools/genrb/rle.c
index 33e42d6..91be063 100644
--- a/source/tools/genrb/rle.c
+++ b/source/tools/genrb/rle.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/rle.h b/source/tools/genrb/rle.h
index 682ee7a..2684bbe 100644
--- a/source/tools/genrb/rle.h
+++ b/source/tools/genrb/rle.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/ustr.c b/source/tools/genrb/ustr.c
index 07e9b15..15f76a8 100644
--- a/source/tools/genrb/ustr.c
+++ b/source/tools/genrb/ustr.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/ustr.h b/source/tools/genrb/ustr.h
index c27a781..91483d1 100644
--- a/source/tools/genrb/ustr.h
+++ b/source/tools/genrb/ustr.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/wrtjava.cpp b/source/tools/genrb/wrtjava.cpp
index d5cc942..02bcb62 100644
--- a/source/tools/genrb/wrtjava.cpp
+++ b/source/tools/genrb/wrtjava.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/genrb/wrtxml.cpp b/source/tools/genrb/wrtxml.cpp
index 62fdd24..2bfcfeb 100644
--- a/source/tools/genrb/wrtxml.cpp
+++ b/source/tools/genrb/wrtxml.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -73,7 +73,7 @@
     u_strToUTF8(NULL,
                 0,
                 &len,
-                outString.getBuffer(),
+                toUCharPtr(outString.getBuffer()),
                 outString.length(),
                 &status);
 
@@ -85,7 +85,7 @@
     u_strToUTF8(dest,
                 len,
                 &len,
-                outString.getBuffer(),
+                toUCharPtr(outString.getBuffer()),
                 outString.length(),
                 &status);
 
diff --git a/source/tools/genren/genren.pl b/source/tools/genren/genren.pl
index 592a641..faf0047 100755
--- a/source/tools/genren/genren.pl
+++ b/source/tools/genren/genren.pl
@@ -8,7 +8,7 @@
 #*******************************************************************************
 #*
 #*   file name:  genren.pl
-#*   encoding:   US-ASCII
+#*   encoding:   UTF-8
 #*   tab size:   8 (not used)
 #*   indentation:4
 #*
@@ -80,7 +80,7 @@
 *******************************************************************************
 *
 *   file name:  $headername
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gensprep/gensprep.c b/source/tools/gensprep/gensprep.c
index 258bad4..a835323 100644
--- a/source/tools/gensprep/gensprep.c
+++ b/source/tools/gensprep/gensprep.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gensprep.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gensprep/gensprep.h b/source/tools/gensprep/gensprep.h
index 487ef6c..a2e5e61 100644
--- a/source/tools/gensprep/gensprep.h
+++ b/source/tools/gensprep/gensprep.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gensprep.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gensprep/store.c b/source/tools/gensprep/store.c
index ea7ee70..60252b9 100644
--- a/source/tools/gensprep/store.c
+++ b/source/tools/gensprep/store.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  store.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gentest/genres32.c b/source/tools/gentest/genres32.c
index 68ae0fd..6417155 100644
--- a/source/tools/gentest/genres32.c
+++ b/source/tools/gentest/genres32.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  genres32.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gentest/gentest.c b/source/tools/gentest/gentest.c
index 4ae6280..77076e9 100644
--- a/source/tools/gentest/gentest.c
+++ b/source/tools/gentest/gentest.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gentest.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/gentest/gentest.h b/source/tools/gentest/gentest.h
index f55bd00..adb08c7 100644
--- a/source/tools/gentest/gentest.h
+++ b/source/tools/gentest/gentest.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/icu-svnprops-check.py b/source/tools/icu-svnprops-check.py
index 4eb505c..080b9fe 100755
--- a/source/tools/icu-svnprops-check.py
+++ b/source/tools/icu-svnprops-check.py
@@ -30,64 +30,6 @@
 import re
 import getopt
 
-#
-#  svn autoprops definitions.
-#      Copy and paste here the ICU recommended auto-props from
-#      http://icu-project.org/docs/subversion_howto/index.html
-#
-#  This program will parse this autoprops string, and verify that files in
-#  the repository have the recommeded properties set.
-#
-svn_auto_props = """
-### Section for configuring automatic properties.
-[auto-props]
-### The format of the entries is:
-###   file-name-pattern = propname[=value][;propname[=value]...]
-### The file-name-pattern can contain wildcards (such as '*' and
-### '?').  All entries which match will be applied to the file.
-### Note that auto-props functionality must be enabled, which
-### is typically done by setting the 'enable-auto-props' option.
-*.c = svn:eol-style=native
-*.cc = svn:eol-style=native
-*.cpp = svn:eol-style=native
-*.h = svn:eol-style=native
-*.rc = svn:eol-style=native
-*.dsp = svn:eol-style=native
-*.dsw = svn:eol-style=native
-*.sln = svn:eol-style=native
-*.vcproj = svn:eol-style=native
-configure = svn:eol-style=native;svn:executable
-*.sh = svn:eol-style=native;svn:executable
-*.pl = svn:eol-style=native;svn:executable
-*.py = svn:eol-style=native;svn:executable
-*.txt = svn:mime-type=text/plain;svn:eol-style=native
-*.java = svn:eol-style=native;svn:mime-type=text/plain;;charset=utf-8
-*.ucm = svn:eol-style=native
-*.html = svn:eol-style=native;svn:mime-type=text/html
-*.htm = svn:eol-style=native;svn:mime-type=text/html
-*.xml = svn:eol-style=native
-Makefile = svn:eol-style=native
-*.in = svn:eol-style=native
-*.mak = svn:eol-style=native
-*.mk = svn:eol-style=native
-*.png = svn:mime-type=image/png
-*.jpeg = svn:mime-type=image/jpeg
-*.jpg = svn:mime-type=image/jpeg
-*.bin = svn:mime-type=application/octet-stream
-*.brk = svn:mime-type=application/octet-stream
-*.cnv = svn:mime-type=application/octet-stream
-*.dat = svn:mime-type=application/octet-stream
-*.icu = svn:mime-type=application/octet-stream
-*.res = svn:mime-type=application/octet-stream
-*.spp = svn:mime-type=application/octet-stream
-# new additions 2007-dec-5 srl
-*.rtf = mime-type=text/rtf
-*.pdf = mime-type=application/pdf
-# changed 2008-04-08: modified .txt, above, adding mime-type
-# changed 2010-11-09: modified .java, adding mime-type
-# Note: The escape syntax for semicolon (";;") is supported since subversion 1.6.1
-"""
-
 
 # file_types:  The parsed form of the svn auto-props specification.
 #              A list of file types - .cc, .cpp, .txt, etc.
@@ -148,45 +90,48 @@
         sys.exit(exit_status)
     return output_text
 
+svn_auto_props = runCommand("svn propget svn:auto-props http://source.icu-project.org/repos/icu")
 
 def usage():
     print "usage: " + sys.argv[0] + " [-f | --fix] [-h | --help]"
 
     
 #
-#  UTF-8 file check.   For text files, add a charset to the mime-type if their contents are UTF-8
+#  UTF-8 file check.   For text files with svn:mime-type=text/anything, check the specified charset
 #    file_name:        name of a text file.
-#    base_mime_type:   svn:mime-type property value from the auto-props file (no charset= part)
+#    base_mime_type:   svn:mime-type property from the auto-props settings for this file type.
 #    actual_mime_type: existing svn:mime-type property value for the file.
-#    return:           svn:mime-type property value, with charset added when appropriate.
+#    return:           The correct svn:mime-type property value,
+#                         either the original, if it looks OK, otherwise the value from auto-props
 #
 def check_utf8(file_name, base_mime_type, actual_mime_type):
 
-    # If the file already has a charset in its mime-type, don't make any change.
-
-    if actual_mime_type.find("charset=") > 0:
-        return actual_mime_type;
-
     f = open(file_name, 'r')
     bytes = f.read()
     f.close()
-
-    if all(ord(byte) < 128 for byte in bytes):
-        # pure ASCII.
-        # print "Pure ASCII " + file_name
-        return base_mime_type
-
+    file_is_utf8 = True
     try:
         bytes.decode("UTF-8")
     except UnicodeDecodeError:
-        print "warning: %s: not ASCII, not UTF-8" % file_name
-        return base_mime_type
+        file_is_utf8 = False
 
-    if ord(bytes[0]) != 0xef:
-      print "UTF-8 file with no BOM: " + file_name
+    if not file_is_utf8 and actual_mime_type.find("utf-8") >= 0:
+        print "Error: %s is not valid utf-8, but has a utf-8 mime type." % file_name
+        return actual_mime_type
 
-    # Append charset=utf-8.
-    return base_mime_type + ';charset=utf-8'
+    if file_is_utf8 and actual_mime_type.find("charset") >=0 and actual_mime_type.find("utf-8") < 0:
+        print "Warning: %s is valid utf-8, but has a mime-type of %s." % (file_name, actual_mime_type)
+
+    if ord(bytes[0]) == 0xef:
+        if not file_name.endswith(".txt"):
+            print "Warning: file %s contains a UTF-8 BOM: " % file_name
+
+    # If the file already has a charset in its mime-type, don't make any change.
+
+    if actual_mime_type.find("charset=") >= 0:
+        return actual_mime_type;
+
+    return base_mime_type
 
 
 def main(argv):
@@ -233,13 +178,6 @@
                         print "svn propset %s '%s' %s" % (propname, propval, f)
                         if fix_problems:
                             os.system("svn propset %s '%s' %s" % (propname, propval, f))
-                    if propname == "svn:eol-style" and propval == "native":
-                        if os.system("grep -q -v \r " + f):
-                            if fix_problems:
-                                print f + ": Removing DOS CR characters."
-                                os.system("sed -i s/\r// " + f);
-                            else:
-                                print f + " contains DOS CR characters."
 
 
 if __name__ == "__main__":
diff --git a/source/tools/icuinfo/icuinfo.cpp b/source/tools/icuinfo/icuinfo.cpp
index 77f45fb..08bd87b 100644
--- a/source/tools/icuinfo/icuinfo.cpp
+++ b/source/tools/icuinfo/icuinfo.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  icuinfo.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/icuinfo/testplug.c b/source/tools/icuinfo/testplug.c
index f9cff6a..011a2b2 100644
--- a/source/tools/icuinfo/testplug.c
+++ b/source/tools/icuinfo/testplug.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/tools/icupkg/icupkg.cpp b/source/tools/icupkg/icupkg.cpp
index 2023930..ea7be4a 100644
--- a/source/tools/icupkg/icupkg.cpp
+++ b/source/tools/icupkg/icupkg.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  icupkg.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/icuswap/icuswap.cpp b/source/tools/icuswap/icuswap.cpp
index 641a6cb..228554c 100644
--- a/source/tools/icuswap/icuswap.cpp
+++ b/source/tools/icuswap/icuswap.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  icuswap.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/makeconv/Makefile.in b/source/tools/makeconv/Makefile.in
index 35d92fe..6447283 100644
--- a/source/tools/makeconv/Makefile.in
+++ b/source/tools/makeconv/Makefile.in
@@ -28,7 +28,7 @@
 ## Target information
 TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(srcdir)/../toolutil
 LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
 
 OBJECTS = makeconv.o ucnvstat.o genmbcs.o gencnvex.o
diff --git a/source/tools/makeconv/gencnvex.c b/source/tools/makeconv/gencnvex.c
index 124d3d9..dcc849d 100644
--- a/source/tools/makeconv/gencnvex.c
+++ b/source/tools/makeconv/gencnvex.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  gencnvex.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/makeconv/genmbcs.cpp b/source/tools/makeconv/genmbcs.cpp
index 68c9eb3..79f185f 100644
--- a/source/tools/makeconv/genmbcs.cpp
+++ b/source/tools/makeconv/genmbcs.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  genmbcs.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -64,6 +64,7 @@
 };
 
 /* prototypes */
+U_CDECL_BEGIN
 static void
 MBCSClose(NewConverter *cnvData);
 
@@ -101,6 +102,7 @@
 static uint32_t
 MBCSWrite(NewConverter *cnvData, const UConverterStaticData *staticData,
           UNewDataMemory *pData, int32_t tableType);
+U_CDECL_END
 
 /* helper ------------------------------------------------------------------- */
 
@@ -127,6 +129,7 @@
 
 static MBCSData gDummy;
 
+
 U_CFUNC const MBCSData *
 MBCSGetDummy() {
     uprv_memset(&gDummy, 0, sizeof(MBCSData));
@@ -160,7 +163,7 @@
     mbcsData->newConverter.write=MBCSWrite;
 }
 
-NewConverter *
+U_CFUNC NewConverter *
 MBCSOpen(UCMFile *ucm) {
     MBCSData *mbcsData=(MBCSData *)uprv_malloc(sizeof(MBCSData));
     if(mbcsData==NULL) {
@@ -178,6 +181,7 @@
     uprv_free(mbcsData->fromUBytes);
 }
 
+U_CDECL_BEGIN
 static void
 MBCSClose(NewConverter *cnvData) {
     MBCSData *mbcsData=(MBCSData *)cnvData;
@@ -186,6 +190,7 @@
         uprv_free(mbcsData);
     }
 }
+U_CDECL_END
 
 static UBool
 MBCSStartMappings(MBCSData *mbcsData) {
@@ -546,6 +551,7 @@
     }
 }
 
+U_CDECL_BEGIN
 /* is this byte sequence valid? (this is almost the same as MBCSAddToUnicode()) */
 static UBool
 MBCSIsValid(NewConverter *cnvData,
@@ -554,7 +560,7 @@
 
     return (UBool)(1==ucm_countChars(&mbcsData->ucm->states, bytes, length));
 }
-
+U_CDECL_END
 static UBool
 MBCSSingleAddFromUnicode(MBCSData *mbcsData,
                          const uint8_t *bytes, int32_t /*length*/,
@@ -936,6 +942,7 @@
     return TRUE;
 }
 
+U_CDECL_BEGIN
 /* we can assume that the table only contains 1:1 mappings with <=4 bytes each */
 static UBool
 MBCSAddTable(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData) {
@@ -1071,7 +1078,7 @@
 
     return isOK;
 }
-
+U_CDECL_END
 static UBool
 transformEUC(MBCSData *mbcsData) {
     uint8_t *p8;
@@ -1410,6 +1417,7 @@
     }
 }
 
+U_CDECL_BEGIN
 static uint32_t
 MBCSWrite(NewConverter *cnvData, const UConverterStaticData *staticData,
           UNewDataMemory *pData, int32_t tableType) {
@@ -1564,3 +1572,4 @@
     /* return the number of bytes that should have been written */
     return top;
 }
+U_CDECL_END
diff --git a/source/tools/makeconv/genmbcs.h b/source/tools/makeconv/genmbcs.h
index b1bf8e1..9ff1c77 100644
--- a/source/tools/makeconv/genmbcs.h
+++ b/source/tools/makeconv/genmbcs.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  genmbcs.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/makeconv/makeconv.cpp b/source/tools/makeconv/makeconv.cpp
index 6ca3e61..5a01e20 100644
--- a/source/tools/makeconv/makeconv.cpp
+++ b/source/tools/makeconv/makeconv.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ********************************************************************************
diff --git a/source/tools/makeconv/makeconv.h b/source/tools/makeconv/makeconv.h
index b791885..e174393 100644
--- a/source/tools/makeconv/makeconv.h
+++ b/source/tools/makeconv/makeconv.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  makeconv.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -41,21 +41,22 @@
 struct NewConverter;
 typedef struct NewConverter NewConverter;
 
+U_CDECL_BEGIN
 struct NewConverter {
     void
-    (*close)(NewConverter *cnvData);
+    (* U_CALLCONV close)(NewConverter *cnvData);
 
     /** is this byte sequence valid? */
     UBool
-    (*isValid)(NewConverter *cnvData,
+    (* U_CALLCONV isValid)(NewConverter *cnvData,
                const uint8_t *bytes, int32_t length);
 
     UBool
-    (*addTable)(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData);
+    (* U_CALLCONV addTable)(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData);
 
     uint32_t
-    (*write)(NewConverter *cnvData, const UConverterStaticData *staticData,
+    (* U_CALLCONV write)(NewConverter *cnvData, const UConverterStaticData *staticData,
              UNewDataMemory *pData, int32_t tableType);
 };
-
+U_CDECL_END
 #endif /* __MAKECONV_H__ */
diff --git a/source/tools/makeconv/ucnvstat.c b/source/tools/makeconv/ucnvstat.c
index 890e731..c04a025 100644
--- a/source/tools/makeconv/ucnvstat.c
+++ b/source/tools/makeconv/ucnvstat.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  ******************************************************************************
diff --git a/source/tools/pkgdata/Makefile.in b/source/tools/pkgdata/Makefile.in
index 6f08b8e..13e1289 100644
--- a/source/tools/pkgdata/Makefile.in
+++ b/source/tools/pkgdata/Makefile.in
@@ -32,7 +32,7 @@
 ## Target information
 TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(srcdir)/../toolutil
 DEFS += -DUDATA_SO_SUFFIX=\".$(SO)\" -DSTATIC_O=\"$(STATIC_O)\"
 LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
 
diff --git a/source/tools/pkgdata/pkgdata.cpp b/source/tools/pkgdata/pkgdata.cpp
index 2b3c29f..ffcf459 100644
--- a/source/tools/pkgdata/pkgdata.cpp
+++ b/source/tools/pkgdata/pkgdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2000-2016, International Business Machines
@@ -26,7 +26,7 @@
 #include "putilimp.h"
 
 #if U_HAVE_POPEN
-#if (U_PF_MINGW <= U_PLATFORM || U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
+#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
 /* popen/pclose aren't defined in strict ANSI on Cygwin and MinGW */
 #undef __STRICT_ANSI__
 #endif
@@ -121,7 +121,9 @@
     LIBNAME,
     QUIET,
     WITHOUT_ASSEMBLY,
-    PDS_BUILD
+    PDS_BUILD,
+    UWP_BUILD,
+    UWP_ARM_BUILD
 };
 
 /* This sets the modes that are available */
@@ -163,7 +165,9 @@
     /*18*/    UOPTION_DEF( "libname", 'L', UOPT_REQUIRES_ARG),
     /*19*/    UOPTION_DEF( "quiet", 'q', UOPT_NO_ARG),
     /*20*/    UOPTION_DEF( "without-assembly", 'w', UOPT_NO_ARG),
-    /*21*/    UOPTION_DEF( "zos-pds-build", 'z', UOPT_NO_ARG)
+    /*21*/    UOPTION_DEF("zos-pds-build", 'z', UOPT_NO_ARG),
+    /*22*/    UOPTION_DEF("windows-uwp-build", 'u', UOPT_NO_ARG),
+    /*23*/    UOPTION_DEF("windows-uwp-arm-build", 'a', UOPT_NO_ARG)
 };
 
 /* This enum and the following char array should be kept in sync. */
@@ -250,9 +254,11 @@
     "Specify a version when packaging in dll or static mode",
     "Add package to all file names if not present",
     "Library name to build (if different than package name)",
-    "Quite mode. (e.g. Do not output a readme file for static libraries)",
+    "Quiet mode. (e.g. Do not output a readme file for static libraries)",
     "Build the data without assembly code",
-    "Build PDS dataset (zOS build only)"
+    "Build PDS dataset (zOS build only)",
+    "Build for Universal Windows Platform (Windows build only)",
+    "Set DLL machine type for UWP to target windows ARM (Windows UWP build only)"
 };
 
 const char  *progname = "PKGDATA";
@@ -1751,7 +1757,14 @@
 
 #ifdef WINDOWS_WITH_MSVC
 #define LINK_CMD "link.exe /nologo /release /out:"
-#define LINK_FLAGS "/DLL /NOENTRY /MANIFEST:NO  /base:0x4ad00000 /implib:"
+#define LINK_FLAGS "/DLL /NOENTRY /MANIFEST:NO /implib:"
+#ifdef _WIN64
+#define LINK_EXTRA_UWP_FLAGS "/NXCOMPAT /DYNAMICBASE /APPCONTAINER "
+#else
+#define LINK_EXTRA_UWP_FLAGS "/NXCOMPAT /SAFESEH /DYNAMICBASE /APPCONTAINER /MACHINE:X86"
+#endif
+#define LINK_EXTRA_UWP_FLAGS_ARM "/NXCOMPAT /DYNAMICBASE /APPCONTAINER /MACHINE:ARM"
+#define LINK_EXTRA_NO_UWP_FLAGS "/base:0x4ad00000 "
 #define LIB_CMD "LIB.exe /nologo /out:"
 #define LIB_FILE "icudt.lib"
 #define LIB_EXT UDATA_LIB_SUFFIX
@@ -1831,14 +1844,33 @@
           return 0;
         }
 
-        sprintf(cmd, "%s\"%s\" %s\"%s\" \"%s\" %s",
-                LINK_CMD,
-                dllFilePath,
-                LINK_FLAGS,
-                libFilePath,
-                gencFilePath,
-                resFilePath
-                );
+        char *extraFlags = "";
+#ifdef WINDOWS_WITH_MSVC
+        if (options[UWP_BUILD].doesOccur)
+        {
+            if (options[UWP_ARM_BUILD].doesOccur)
+            {
+                extraFlags = LINK_EXTRA_UWP_FLAGS_ARM;
+            }
+            else
+            {
+                extraFlags = LINK_EXTRA_UWP_FLAGS;
+            }
+        }
+        else
+        {
+            extraFlags = LINK_EXTRA_NO_UWP_FLAGS;
+        }
+#endif
+        sprintf(cmd, "%s\"%s\" %s %s\"%s\" \"%s\" %s",
+            LINK_CMD,
+            dllFilePath,
+            extraFlags,
+            LINK_FLAGS,
+            libFilePath,
+            gencFilePath,
+            resFilePath
+        );
     }
 
     result = runCommand(cmd, TRUE);
diff --git a/source/tools/pkgdata/pkgtypes.c b/source/tools/pkgdata/pkgtypes.c
index eadf634..43ee3df 100644
--- a/source/tools/pkgdata/pkgtypes.c
+++ b/source/tools/pkgdata/pkgtypes.c
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**************************************************************************
 *
diff --git a/source/tools/pkgdata/pkgtypes.h b/source/tools/pkgdata/pkgtypes.h
index c7eeba4..3297d0a 100644
--- a/source/tools/pkgdata/pkgtypes.h
+++ b/source/tools/pkgdata/pkgtypes.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /**************************************************************************
 *
diff --git a/source/tools/toolutil/Makefile.in b/source/tools/toolutil/Makefile.in
index 097fcf1..82ca0d8 100644
--- a/source/tools/toolutil/Makefile.in
+++ b/source/tools/toolutil/Makefile.in
@@ -45,7 +45,7 @@
 CFLAGS += $(LIBCFLAGS)
 CXXFLAGS += $(LIBCXXFLAGS)
 
-CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
 
 # from icuinfo
 CPPFLAGS+=  "-DU_BUILD=\"@build@\"" "-DU_HOST=\"@host@\"" "-DU_CC=\"@CC@\"" "-DU_CXX=\"@CXX@\""
diff --git a/source/tools/toolutil/collationinfo.cpp b/source/tools/toolutil/collationinfo.cpp
index bbb1839..6bad90e 100644
--- a/source/tools/toolutil/collationinfo.cpp
+++ b/source/tools/toolutil/collationinfo.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/toolutil/collationinfo.h b/source/tools/toolutil/collationinfo.h
index 48cd556..815b89d 100644
--- a/source/tools/toolutil/collationinfo.h
+++ b/source/tools/toolutil/collationinfo.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/toolutil/dbgutil.cpp b/source/tools/toolutil/dbgutil.cpp
index 77e2711..a5a3f51 100644
--- a/source/tools/toolutil/dbgutil.cpp
+++ b/source/tools/toolutil/dbgutil.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
@@ -117,7 +117,7 @@
 udbg_stoi(const UnicodeString &s)
 {
     char ch[256];
-    const UChar *u = s.getBuffer();
+    const UChar *u = toUCharPtr(s.getBuffer());
     int32_t len = s.length();
     u_UCharsToChars(u, ch, len);
     ch[len] = 0; /* include terminating \0 */
@@ -129,7 +129,7 @@
 udbg_stod(const UnicodeString &s)
 {
     char ch[256];
-    const UChar *u = s.getBuffer();
+    const UChar *u = toUCharPtr(s.getBuffer());
     int32_t len = s.length();
     u_UCharsToChars(u, ch, len);
     ch[len] = 0; /* include terminating \0 */
diff --git a/source/tools/toolutil/dbgutil.h b/source/tools/toolutil/dbgutil.h
index ad61532..43fe217 100644
--- a/source/tools/toolutil/dbgutil.h
+++ b/source/tools/toolutil/dbgutil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 
 /*
diff --git a/source/tools/toolutil/denseranges.cpp b/source/tools/toolutil/denseranges.cpp
index 3b83715..f5e52b1 100644
--- a/source/tools/toolutil/denseranges.cpp
+++ b/source/tools/toolutil/denseranges.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  denseranges.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/denseranges.h b/source/tools/toolutil/denseranges.h
index 7b072f4..c489ca4 100644
--- a/source/tools/toolutil/denseranges.h
+++ b/source/tools/toolutil/denseranges.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  denseranges.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/filestrm.c b/source/tools/toolutil/filestrm.cpp
similarity index 98%
rename from source/tools/toolutil/filestrm.c
rename to source/tools/toolutil/filestrm.cpp
index e84160e..2653747 100644
--- a/source/tools/toolutil/filestrm.c
+++ b/source/tools/toolutil/filestrm.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/tools/toolutil/filestrm.h b/source/tools/toolutil/filestrm.h
index b423451..86fac30 100644
--- a/source/tools/toolutil/filestrm.h
+++ b/source/tools/toolutil/filestrm.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
diff --git a/source/tools/toolutil/filetools.cpp b/source/tools/toolutil/filetools.cpp
index b0d4ed8..176a791 100644
--- a/source/tools/toolutil/filetools.cpp
+++ b/source/tools/toolutil/filetools.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2009-2013, International Business Machines
diff --git a/source/tools/toolutil/filetools.h b/source/tools/toolutil/filetools.h
index 5ede027..6a25c36 100644
--- a/source/tools/toolutil/filetools.h
+++ b/source/tools/toolutil/filetools.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  filetools.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/flagparser.c b/source/tools/toolutil/flagparser.cpp
similarity index 94%
rename from source/tools/toolutil/flagparser.c
rename to source/tools/toolutil/flagparser.cpp
index 0ffc371..464d6be 100644
--- a/source/tools/toolutil/flagparser.c
+++ b/source/tools/toolutil/flagparser.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2009-2015, International Business Machines
@@ -34,9 +34,9 @@
         *status = U_FILE_ACCESS_ERROR;
         goto parseFlagsFile_cleanup;
     }
-    
-    buffer = uprv_malloc(sizeof(char) * currentBufferSize);
-    tmpFlagBuffer = uprv_malloc(sizeof(char) * flagBufferSize);
+
+    buffer = (char *)uprv_malloc(sizeof(char) * currentBufferSize);
+    tmpFlagBuffer = (char *)uprv_malloc(sizeof(char) * flagBufferSize);
 
     if (buffer == NULL || tmpFlagBuffer == NULL) {
         *status = U_MEMORY_ALLOCATION_ERROR;
@@ -48,7 +48,7 @@
             allocateMoreSpace = FALSE;
             currentBufferSize *= 2;
             uprv_free(buffer);
-            buffer = uprv_malloc(sizeof(char) * currentBufferSize);
+            buffer = (char *)uprv_malloc(sizeof(char) * currentBufferSize);
             if (buffer == NULL) {
                 *status = U_MEMORY_ALLOCATION_ERROR;
                 goto parseFlagsFile_cleanup;
diff --git a/source/tools/toolutil/flagparser.h b/source/tools/toolutil/flagparser.h
index 4aa03c8..aa42547 100644
--- a/source/tools/toolutil/flagparser.h
+++ b/source/tools/toolutil/flagparser.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  flagparser.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/package.cpp b/source/tools/toolutil/package.cpp
index a5835e9..e3354b3 100644
--- a/source/tools/toolutil/package.cpp
+++ b/source/tools/toolutil/package.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  package.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -381,7 +381,7 @@
 
 U_NAMESPACE_BEGIN
 
-Package::Package() 
+Package::Package()
         : doAutoPrefix(FALSE), prefixEndsWithType(FALSE) {
     inPkgName[0]=0;
     pkgPrefix[0]=0;
@@ -1281,7 +1281,7 @@
     }
 }
 
-void Package::setItemCapacity(int32_t max) 
+void Package::setItemCapacity(int32_t max)
 {
   if(max<=itemMax) {
     return;
@@ -1289,8 +1289,8 @@
   Item *newItems = (Item*)uprv_malloc(max * sizeof(items[0]));
   Item *oldItems = items;
   if(newItems == NULL) {
-    fprintf(stderr, "icupkg: Out of memory trying to allocate %lu bytes for %d items\n", 
-        (unsigned long)max*sizeof(items[0]), max);
+    fprintf(stderr, "icupkg: Out of memory trying to allocate %lu bytes for %d items\n",
+        (unsigned long)(max*sizeof(items[0])), max);
     exit(U_MEMORY_ALLOCATION_ERROR);
   }
   if(items && itemCount>0) {
diff --git a/source/tools/toolutil/package.h b/source/tools/toolutil/package.h
index d3b83b6..2c5bd16 100644
--- a/source/tools/toolutil/package.h
+++ b/source/tools/toolutil/package.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  package.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/pkg_genc.c b/source/tools/toolutil/pkg_genc.cpp
similarity index 96%
rename from source/tools/toolutil/pkg_genc.c
rename to source/tools/toolutil/pkg_genc.cpp
index f0dbd4c..c4e2fbb 100644
--- a/source/tools/toolutil/pkg_genc.c
+++ b/source/tools/toolutil/pkg_genc.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2009-2016, International Business Machines
@@ -283,7 +283,7 @@
         uprv_strcpy(outFilePath, bufferStr);
     }
 
-#ifdef WINDOWS_WITH_GNUC
+#if defined (WINDOWS_WITH_GNUC) && U_PLATFORM != U_PF_CYGWIN
     /* Need to fix the file seperator character when using MinGW. */
     swapFileSepChar(outFilePath, U_FILE_SEP_CHAR, '/');
 #endif
@@ -687,12 +687,19 @@
 /* _M_IA64 should be defined in windows.h */
 #   if defined(_M_IA64)
         *pCPU=IMAGE_FILE_MACHINE_IA64;
+        *pBits = 64;
 #   elif defined(_M_AMD64)
-        *pCPU=IMAGE_FILE_MACHINE_AMD64;
+// link.exe does not really care about the .obj machine type and this will
+// allow us to build a dll for both ARM & x64 with an amd64 built tool
+// ARM is same as x64 except for first 2 bytes of object file
+        *pCPU = IMAGE_FILE_MACHINE_UNKNOWN;
+        // *pCPU = IMAGE_FILE_MACHINE_ARMNT;   // If we wanted to be explicit
+        // *pCPU = IMAGE_FILE_MACHINE_AMD64;   // We would use one of these names
+        *pBits = 64;                           // Doesn't seem to be used for anything interesting?
 #   else
-        *pCPU=IMAGE_FILE_MACHINE_I386;
+        *pCPU=IMAGE_FILE_MACHINE_I386;    // We would use one of these names
+        *pBits = 32;
 #   endif
-        *pBits= *pCPU==IMAGE_FILE_MACHINE_I386 ? 32 : 64;
         *pIsBigEndian=FALSE;
 #else
 #   error "Unknown platform for CAN_GENERATE_OBJECTS."
@@ -708,7 +715,7 @@
     length=T_FileStream_read(in, buffer.bytes, sizeof(buffer.bytes));
 
 #ifdef U_ELF
-    if(length<sizeof(Elf32_Ehdr)) {
+    if(length<(int32_t)sizeof(Elf32_Ehdr)) {
         fprintf(stderr, "genccode: match-arch file %s is too short\n", filename);
         exit(U_UNSUPPORTED_ERROR);
     }
@@ -806,7 +813,7 @@
     /* 32-bit Elf section header table */
     static Elf32_Shdr sectionHeaders32[5]={
         { /* SHN_UNDEF */
-            0
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0
         },
         { /* .symtab */
             1, /* sh_name */
@@ -862,7 +869,7 @@
     /* symbol table */
     static Elf32_Sym symbols32[2]={
         { /* STN_UNDEF */
-            0
+            0, 0, 0, 0, 0, 0
         },
         { /* data entry point */
             1, /* st_name */
@@ -923,7 +930,7 @@
     /* 64-bit Elf section header table */
     static Elf64_Shdr sectionHeaders64[5]={
         { /* SHN_UNDEF */
-            0
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0
         },
         { /* .symtab */
             1, /* sh_name */
@@ -982,7 +989,7 @@
      */
     static Elf64_Sym symbols64[2]={
         { /* STN_UNDEF */
-            0
+            0, 0, 0, 0, 0, 0
         },
         { /* data entry point */
             1, /* st_name */
@@ -1030,7 +1037,14 @@
 
     /* deal with options, files and the entry point name */
     getArchitecture(&cpu, &bits, &makeBigEndian, optMatchArch);
-    printf("genccode: --match-arch cpu=%hu bits=%hu big-endian=%d\n", cpu, bits, makeBigEndian);
+    if (optMatchArch)
+    {
+        printf("genccode: --match-arch cpu=%hu bits=%hu big-endian=%d\n", cpu, bits, makeBigEndian);
+    }
+    else
+    {
+        printf("genccode: using architecture cpu=%hu bits=%hu big-endian=%d\n", cpu, bits, makeBigEndian);
+    }
 #if U_PLATFORM_HAS_WIN32_API
     if(cpu==IMAGE_FILE_MACHINE_I386) {
         entryOffset=1;
diff --git a/source/tools/toolutil/pkg_genc.h b/source/tools/toolutil/pkg_genc.h
index 12ffc92..5039f27 100644
--- a/source/tools/toolutil/pkg_genc.h
+++ b/source/tools/toolutil/pkg_genc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2008-2011, International Business Machines
diff --git a/source/tools/toolutil/pkg_gencmn.c b/source/tools/toolutil/pkg_gencmn.cpp
similarity index 98%
rename from source/tools/toolutil/pkg_gencmn.c
rename to source/tools/toolutil/pkg_gencmn.cpp
index 38cc820..423e4b7 100644
--- a/source/tools/toolutil/pkg_gencmn.c
+++ b/source/tools/toolutil/pkg_gencmn.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2008-2012, International Business Machines
@@ -103,8 +103,10 @@
 static char *
 allocString(uint32_t length);
 
+U_CDECL_BEGIN
 static int
 compareFiles(const void *file1, const void *file2);
+U_CDECL_END
 
 static char *
 pathToFullPath(const char *path, const char *source);
@@ -410,7 +412,7 @@
 
     if(fileCount==fileMax) {
       fileMax += CHUNK_FILE_COUNT;
-      files = uprv_realloc(files, fileMax*sizeof(files[0])); /* note: never freed. */
+      files = (File *)uprv_realloc(files, fileMax*sizeof(files[0])); /* note: never freed. */
       if(files==NULL) {
         fprintf(stderr, "pkgdata/gencmn: Could not allocate %u bytes for %d files\n", (unsigned int)(fileMax*sizeof(files[0])), fileCount);
         exit(U_MEMORY_ALLOCATION_ERROR);
@@ -515,7 +517,7 @@
 
     length = (uint32_t)(uprv_strlen(path) + 1);
     newLength = (length + 1 + (int32_t)uprv_strlen(source));
-    fullPath = uprv_malloc(newLength);
+    fullPath = (char *)uprv_malloc(newLength);
     if(source != NULL) {
         uprv_strcpy(fullPath, source);
         uprv_strcat(fullPath, U_FILE_SEP_STRING);
@@ -548,15 +550,18 @@
     return fullPath;
 }
 
+U_CDECL_BEGIN
 static int
 compareFiles(const void *file1, const void *file2) {
     /* sort by basename */
     return uprv_strcmp(((File *)file1)->basename, ((File *)file2)->basename);
 }
+U_CDECL_END
 
 static void
 fixDirToTreePath(char *s)
 {
+    (void)s;
 #if (U_FILE_SEP_CHAR != U_TREE_ENTRY_SEP_CHAR) || ((U_FILE_ALT_SEP_CHAR != U_FILE_SEP_CHAR) && (U_FILE_ALT_SEP_CHAR != U_TREE_ENTRY_SEP_CHAR))
     char *t;
 #endif
diff --git a/source/tools/toolutil/pkg_gencmn.h b/source/tools/toolutil/pkg_gencmn.h
index 62f8327..2382399 100644
--- a/source/tools/toolutil/pkg_gencmn.h
+++ b/source/tools/toolutil/pkg_gencmn.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2008, International Business Machines
diff --git a/source/tools/toolutil/pkg_icu.cpp b/source/tools/toolutil/pkg_icu.cpp
index e679c23..ce0bfc2 100644
--- a/source/tools/toolutil/pkg_icu.cpp
+++ b/source/tools/toolutil/pkg_icu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2008-2015, International Business Machines
diff --git a/source/tools/toolutil/pkg_icu.h b/source/tools/toolutil/pkg_icu.h
index 3d620f7..638056e 100644
--- a/source/tools/toolutil/pkg_icu.h
+++ b/source/tools/toolutil/pkg_icu.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /******************************************************************************
  *   Copyright (C) 2008-2016, International Business Machines
diff --git a/source/tools/toolutil/pkg_imp.h b/source/tools/toolutil/pkg_imp.h
index c9fe81b..29abd8d 100644
--- a/source/tools/toolutil/pkg_imp.h
+++ b/source/tools/toolutil/pkg_imp.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  pkg_imp.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/pkgitems.cpp b/source/tools/toolutil/pkgitems.cpp
index b4bcf18..cb23b45 100644
--- a/source/tools/toolutil/pkgitems.cpp
+++ b/source/tools/toolutil/pkgitems.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  pkgitems.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/ppucd.cpp b/source/tools/toolutil/ppucd.cpp
index 18d317e..cccde81 100644
--- a/source/tools/toolutil/ppucd.cpp
+++ b/source/tools/toolutil/ppucd.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ppucd.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -515,12 +515,12 @@
 
 void
 PreparsedUCD::parseString(const char *s, UnicodeString &uni, UErrorCode &errorCode) {
-    UChar *buffer=uni.getBuffer(-1);
+    UChar *buffer=toUCharPtr(uni.getBuffer(-1));
     int32_t length=u_parseString(s, buffer, uni.getCapacity(), NULL, &errorCode);
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         errorCode=U_ZERO_ERROR;
         uni.releaseBuffer(0);
-        buffer=uni.getBuffer(length);
+        buffer=toUCharPtr(uni.getBuffer(length));
         length=u_parseString(s, buffer, uni.getCapacity(), NULL, &errorCode);
     }
     uni.releaseBuffer(length);
diff --git a/source/tools/toolutil/ppucd.h b/source/tools/toolutil/ppucd.h
index 593bd24..3cd6fee 100644
--- a/source/tools/toolutil/ppucd.h
+++ b/source/tools/toolutil/ppucd.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -6,7 +6,7 @@
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   file name:  ppucd.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/swapimpl.cpp b/source/tools/toolutil/swapimpl.cpp
index 6cc2162..620a387 100644
--- a/source/tools/toolutil/swapimpl.cpp
+++ b/source/tools/toolutil/swapimpl.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  swapimpl.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/swapimpl.h b/source/tools/toolutil/swapimpl.h
index 0e4d417..8c6474f 100644
--- a/source/tools/toolutil/swapimpl.h
+++ b/source/tools/toolutil/swapimpl.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  swapimpl.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/toolutil.cpp b/source/tools/toolutil/toolutil.cpp
index 6afce5b..fb7263d 100644
--- a/source/tools/toolutil/toolutil.cpp
+++ b/source/tools/toolutil/toolutil.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  toolutil.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/toolutil.h b/source/tools/toolutil/toolutil.h
index ad51438..7ab665c 100644
--- a/source/tools/toolutil/toolutil.h
+++ b/source/tools/toolutil/toolutil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  toolutil.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/ucbuf.cpp b/source/tools/toolutil/ucbuf.cpp
index a203cfa..fa9edd1 100644
--- a/source/tools/toolutil/ucbuf.cpp
+++ b/source/tools/toolutil/ucbuf.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/toolutil/ucbuf.h b/source/tools/toolutil/ucbuf.h
index 3894c89..81f8ba6 100644
--- a/source/tools/toolutil/ucbuf.h
+++ b/source/tools/toolutil/ucbuf.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
diff --git a/source/tools/toolutil/ucln_tu.cpp b/source/tools/toolutil/ucln_tu.cpp
index 2f67641..5354fe1 100644
--- a/source/tools/toolutil/ucln_tu.cpp
+++ b/source/tools/toolutil/ucln_tu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
diff --git a/source/tools/toolutil/ucm.c b/source/tools/toolutil/ucm.cpp
similarity index 98%
rename from source/tools/toolutil/ucm.c
rename to source/tools/toolutil/ucm.cpp
index 8d4cdfc..28c3f3f 100644
--- a/source/tools/toolutil/ucm.c
+++ b/source/tools/toolutil/ucm.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucm.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -199,9 +199,9 @@
     /* compare the flags */
     return l->f-r->f;
 }
-
+U_CDECL_BEGIN
 /* sorting by Unicode first sorts mappings directly */
-static int32_t
+static int32_t  U_CALLCONV
 compareMappingsUnicodeFirst(const void *context, const void *left, const void *right) {
     return compareMappings(
         (UCMTable *)context, (const UCMapping *)left,
@@ -209,7 +209,7 @@
 }
 
 /* sorting by bytes first sorts the reverseMap; use indirection to mappings */
-static int32_t
+static int32_t U_CALLCONV
 compareMappingsBytesFirst(const void *context, const void *left, const void *right) {
     UCMTable *table=(UCMTable *)context;
     int32_t l=*(const int32_t *)left, r=*(const int32_t *)right;
@@ -217,6 +217,7 @@
         table, table->mappings+l,
         table, table->mappings+r, FALSE);
 }
+U_CDECL_END
 
 U_CAPI void U_EXPORT2
 ucm_sortTable(UCMTable *t) {
@@ -310,6 +311,8 @@
 static uint8_t
 checkBaseExtUnicode(UCMStates *baseStates, UCMTable *base, UCMTable *ext,
                     UBool moveToExt, UBool intersectBase) {
+    (void)baseStates;
+
     UCMapping *mb, *me, *mbLimit, *meLimit;
     int32_t cmp;
     uint8_t result;
@@ -1043,6 +1046,7 @@
                 UCMapping *m,
                 UChar32 codePoints[UCNV_EXT_MAX_UCHARS],
                 uint8_t bytes[UCNV_EXT_MAX_BYTES]) {
+    (void)codePoints;
     /* check validity of the bytes and count the characters in them */
     int32_t count=ucm_countChars(baseStates, bytes, m->bLen);
     if(count<1) {
diff --git a/source/tools/toolutil/ucm.h b/source/tools/toolutil/ucm.h
index a3e3b8d..04e6b20 100644
--- a/source/tools/toolutil/ucm.h
+++ b/source/tools/toolutil/ucm.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
@@ -6,7 +6,7 @@
  *   Corporation and others.  All Rights Reserved.
  *******************************************************************************
  *   file name:  ucm.h
- *   encoding:   US-ASCII
+ *   encoding:   UTF-8
  *   tab size:   8 (not used)
  *   indentation:4
  *
diff --git a/source/tools/toolutil/ucmstate.c b/source/tools/toolutil/ucmstate.cpp
similarity index 99%
rename from source/tools/toolutil/ucmstate.c
rename to source/tools/toolutil/ucmstate.cpp
index 1aabbfb..fd461c2 100644
--- a/source/tools/toolutil/ucmstate.c
+++ b/source/tools/toolutil/ucmstate.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  ucmstate.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -916,10 +916,13 @@
     }
 }
 
-static int32_t
+U_CDECL_BEGIN
+static int32_t U_CALLCONV
 compareFallbacks(const void *context, const void *fb1, const void *fb2) {
+    (void)context;
     return ((const _MBCSToUFallback *)fb1)->offset-((const _MBCSToUFallback *)fb2)->offset;
 }
+U_CDECL_END
 
 U_CAPI void U_EXPORT2
 ucm_optimizeStates(UCMStates *states,
diff --git a/source/tools/toolutil/udbgutil.cpp b/source/tools/toolutil/udbgutil.cpp
index bbb814b..446e11a 100644
--- a/source/tools/toolutil/udbgutil.cpp
+++ b/source/tools/toolutil/udbgutil.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
@@ -351,8 +351,10 @@
  */
 U_CAPI const char *udbg_getPlatform(void)
 {
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     return "Windows";
+#elif U_PLATFORM == U_PF_CYGWIN
+    return "Cygwin";
 #elif U_PLATFORM == U_PF_UNKNOWN
     return "unknown";
 #elif U_PLATFORM == U_PF_DARWIN
@@ -613,40 +615,6 @@
 }
 
 
-#if !U_HAVE_STD_STRING
-const char *warning = "WARNING: Don't have std::string (STL) - known issue logs will be deficient.";
-
-U_CAPI void *udbg_knownIssue_openU(void *ptr, const char *ticket, char *where, const UChar *msg, UBool *firstForTicket,
-                                   UBool *firstForWhere) {
-  if(ptr==NULL) {
-    puts(warning);
-  }
-  printf("%s\tKnown Issue #%s\n", where, ticket);
-
-  return (void*)warning;
-}
-
-U_CAPI void *udbg_knownIssue_open(void *ptr, const char *ticket, char *where, const char *msg, UBool *firstForTicket,
-                                   UBool *firstForWhere) {
-  if(ptr==NULL) {
-    puts(warning);
-  }
-  if(msg==NULL) msg = "";
-  printf("%s\tKnown Issue #%s  \"%s\n", where, ticket, msg);
-
-  return (void*)warning;
-}
-
-U_CAPI UBool udbg_knownIssue_print(void *ptr) {
-  puts(warning);
-  return FALSE;
-}
-
-U_CAPI void udbg_knownIssue_close(void *ptr) {
-  // nothing to do
-}
-#else
-
 #include <set>
 #include <map>
 #include <string>
@@ -785,5 +753,3 @@
   KnownIssues *t = static_cast<KnownIssues*>(ptr);
   delete t;
 }
-
-#endif
diff --git a/source/tools/toolutil/udbgutil.h b/source/tools/toolutil/udbgutil.h
index 4bfb4cf..2f186e6 100644
--- a/source/tools/toolutil/udbgutil.h
+++ b/source/tools/toolutil/udbgutil.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 ************************************************************************
diff --git a/source/tools/toolutil/unewdata.c b/source/tools/toolutil/unewdata.cpp
similarity index 98%
rename from source/tools/toolutil/unewdata.c
rename to source/tools/toolutil/unewdata.cpp
index 0fb9d43..84c9d52 100644
--- a/source/tools/toolutil/unewdata.c
+++ b/source/tools/toolutil/unewdata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unewdata.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/unewdata.h b/source/tools/toolutil/unewdata.h
index 9cc3994..137fb49 100644
--- a/source/tools/toolutil/unewdata.h
+++ b/source/tools/toolutil/unewdata.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  unewdata.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/uoptions.c b/source/tools/toolutil/uoptions.cpp
similarity index 97%
rename from source/tools/toolutil/uoptions.c
rename to source/tools/toolutil/uoptions.cpp
index e5ce64a..53a77bc 100644
--- a/source/tools/toolutil/uoptions.c
+++ b/source/tools/toolutil/uoptions.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uoptions.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/uoptions.h b/source/tools/toolutil/uoptions.h
index 6f8f53b..e6d5cbf 100644
--- a/source/tools/toolutil/uoptions.h
+++ b/source/tools/toolutil/uoptions.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uoptions.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/uparse.c b/source/tools/toolutil/uparse.cpp
similarity index 98%
rename from source/tools/toolutil/uparse.c
rename to source/tools/toolutil/uparse.cpp
index 373b67f..4093fa0 100644
--- a/source/tools/toolutil/uparse.c
+++ b/source/tools/toolutil/uparse.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uparse.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/uparse.h b/source/tools/toolutil/uparse.h
index 5ad766c..df0e79a 100644
--- a/source/tools/toolutil/uparse.h
+++ b/source/tools/toolutil/uparse.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  uparse.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/writesrc.c b/source/tools/toolutil/writesrc.cpp
similarity index 97%
rename from source/tools/toolutil/writesrc.c
rename to source/tools/toolutil/writesrc.cpp
index 278336f..edff1f9 100644
--- a/source/tools/toolutil/writesrc.c
+++ b/source/tools/toolutil/writesrc.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  writesrc.c
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -74,7 +74,7 @@
 usrc_create(const char *path, const char *filename, const char *generator) {
     // TODO: Add parameter for the first year this file was generated, not before 2016.
     static const char *header=
-        "// Copyright (C) 2016 and later: Unicode, Inc. and others.\n"
+        "// © 2016 and later: Unicode, Inc. and others.\n"
         "// License & terms of use: http://www.unicode.org/copyright.html\n"
         "//\n"
         "// Copyright (C) 1999-2016, International Business Machines\n"
diff --git a/source/tools/toolutil/writesrc.h b/source/tools/toolutil/writesrc.h
index c82bf3c..fdcf1f9 100644
--- a/source/tools/toolutil/writesrc.h
+++ b/source/tools/toolutil/writesrc.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  writesrc.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/toolutil/xmlparser.cpp b/source/tools/toolutil/xmlparser.cpp
index 1c158da..1ca111c 100644
--- a/source/tools/toolutil/xmlparser.cpp
+++ b/source/tools/toolutil/xmlparser.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  xmlparser.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -209,7 +209,7 @@
             goto exit;
         }
 
-        buffer=src.getBuffer(bytesLength);
+        buffer=toUCharPtr(src.getBuffer(bytesLength));
         if(buffer==NULL) {
             // unexpected failure to reserve some string capacity
             errorCode=U_MEMORY_ALLOCATION_ERROR;
@@ -278,7 +278,7 @@
         pb=bytes;
         for(;;) {
             length=src.length();
-            buffer=src.getBuffer(capacity);
+            buffer=toUCharPtr(src.getBuffer(capacity));
             if(buffer==NULL) {
                 // unexpected failure to reserve some string capacity
                 errorCode=U_MEMORY_ALLOCATION_ERROR;
diff --git a/source/tools/toolutil/xmlparser.h b/source/tools/toolutil/xmlparser.h
index aff9d88..75c8ed7 100644
--- a/source/tools/toolutil/xmlparser.h
+++ b/source/tools/toolutil/xmlparser.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  xmlparser.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/tzcode/Makefile.in b/source/tools/tzcode/Makefile.in
index 02fe6eb..b156921 100644
--- a/source/tools/tzcode/Makefile.in
+++ b/source/tools/tzcode/Makefile.in
@@ -121,7 +121,7 @@
 		$(CC) $(CFLAGS) $(TZORIG_EXTRA_CFLAGS) $(LFLAGS) -I$(srcdir) $(OBJECTS) $(LDLIBS) -o $@
 
 $(TZ2ICUTARG):	$(srcdir)/tz2icu.cpp $(srcdir)/tz2icu.h
-		$(CXX) -W -Wall  -I$(srcdir) -I$(top_srcdir)/common -pedantic $(srcdir)/tz2icu.cpp -o $@
+		$(CXX) $(CXXFLAGS) -I$(srcdir) -I$(top_srcdir)/common $(srcdir)/tz2icu.cpp -o $@
 
 $(ICUZDUMPTARG):	$(srcdir)/icuzdump.cpp
 		$(LINK.cc)  -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/io  -pedantic $(srcdir)/icuzdump.cpp $(LIBICUUC) $(LIBICUDT) $(LIBICUI18N) $(LIBICUIO) $(LIBICUTOOLUTIL) -o $@
diff --git a/source/tools/tzcode/icuregions b/source/tools/tzcode/icuregions
index 92d3eb6..91d5b37 100644
--- a/source/tools/tzcode/icuregions
+++ b/source/tools/tzcode/icuregions
@@ -12,4 +12,5 @@
 Africa/Asmera ER
 America/Montreal CA
 Europe/Simferopol UA
+Pacific/Johnston UM
 
diff --git a/source/tools/tzcode/icuzdump.cpp b/source/tools/tzcode/icuzdump.cpp
index 69c4848..3e5ed1d 100644
--- a/source/tools/tzcode/icuzdump.cpp
+++ b/source/tools/tzcode/icuzdump.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
@@ -8,7 +8,7 @@
 *
 *******************************************************************************
 *   file name:  icuzdump.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
diff --git a/source/tools/tzcode/tz2icu.cpp b/source/tools/tzcode/tz2icu.cpp
index def8f94..f0ee63e 100644
--- a/source/tools/tzcode/tz2icu.cpp
+++ b/source/tools/tzcode/tz2icu.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
diff --git a/source/tools/tzcode/tz2icu.h b/source/tools/tzcode/tz2icu.h
index 87fe3da..b88442f 100644
--- a/source/tools/tzcode/tz2icu.h
+++ b/source/tools/tzcode/tz2icu.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************