# GENERATED SOURCE. DO NOT MODIFY.
# Run external/icu/tools/icu4c_srcgen/generate_libandroidicu.py to regenerate
#
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LIBICU_31 { # introduced=31
  global:
    u_charAge;
    u_charDigitValue;
    u_charDirection;
    u_charFromName;
    u_charMirror;
    u_charName;
    u_charType;
    u_countChar32;
    u_digit;
    u_enumCharNames;
    u_enumCharTypes;
    u_errorName;
    u_foldCase;
    u_forDigit;
    u_getBidiPairedBracket;
    u_getCombiningClass;
    u_getIntPropertyMaxValue;
    u_getIntPropertyMinValue;
    u_getIntPropertyValue;
    u_getNumericValue;
    u_getPropertyEnum;
    u_getPropertyName;
    u_getPropertyValueEnum;
    u_getPropertyValueName;
    u_getUnicodeVersion;
    u_getVersion;
    u_hasBinaryProperty;
    u_isIDIgnorable;
    u_isIDPart;
    u_isIDStart;
    u_isISOControl;
    u_isJavaIDPart;
    u_isJavaIDStart;
    u_isJavaSpaceChar;
    u_isMirrored;
    u_isUAlphabetic;
    u_isULowercase;
    u_isUUppercase;
    u_isUWhiteSpace;
    u_isWhitespace;
    u_isalnum;
    u_isalpha;
    u_isbase;
    u_isblank;
    u_iscntrl;
    u_isdefined;
    u_isdigit;
    u_isgraph;
    u_islower;
    u_isprint;
    u_ispunct;
    u_isspace;
    u_istitle;
    u_isupper;
    u_isxdigit;
    u_memcasecmp;
    u_memchr;
    u_memchr32;
    u_memcmp;
    u_memcmpCodePointOrder;
    u_memcpy;
    u_memmove;
    u_memrchr;
    u_memrchr32;
    u_memset;
    u_strCaseCompare;
    u_strCompare;
    u_strFindFirst;
    u_strFindLast;
    u_strFoldCase;
    u_strFromUTF32;
    u_strFromUTF32WithSub;
    u_strFromUTF8;
    u_strFromUTF8Lenient;
    u_strFromUTF8WithSub;
    u_strHasMoreChar32Than;
    u_strToLower;
    u_strToTitle;
    u_strToUTF32;
    u_strToUTF32WithSub;
    u_strToUTF8;
    u_strToUTF8WithSub;
    u_strToUpper;
    u_strcasecmp;
    u_strcat;
    u_strchr;
    u_strchr32;
    u_strcmp;
    u_strcmpCodePointOrder;
    u_strcpy;
    u_strcspn;
    u_strlen;
    u_strncasecmp;
    u_strncat;
    u_strncmp;
    u_strncmpCodePointOrder;
    u_strncpy;
    u_strpbrk;
    u_strrchr;
    u_strrchr32;
    u_strrstr;
    u_strspn;
    u_strstr;
    u_strtok_r;
    u_tolower;
    u_totitle;
    u_toupper;
    u_versionToString;
    ubidi_close;
    ubidi_countParagraphs;
    ubidi_countRuns;
    ubidi_getBaseDirection;
    ubidi_getClassCallback;
    ubidi_getCustomizedClass;
    ubidi_getDirection;
    ubidi_getLength;
    ubidi_getLevelAt;
    ubidi_getLevels;
    ubidi_getLogicalIndex;
    ubidi_getLogicalMap;
    ubidi_getLogicalRun;
    ubidi_getParaLevel;
    ubidi_getParagraph;
    ubidi_getParagraphByIndex;
    ubidi_getProcessedLength;
    ubidi_getReorderingMode;
    ubidi_getReorderingOptions;
    ubidi_getResultLength;
    ubidi_getText;
    ubidi_getVisualIndex;
    ubidi_getVisualMap;
    ubidi_getVisualRun;
    ubidi_invertMap;
    ubidi_isInverse;
    ubidi_isOrderParagraphsLTR;
    ubidi_open;
    ubidi_openSized;
    ubidi_orderParagraphsLTR;
    ubidi_reorderLogical;
    ubidi_reorderVisual;
    ubidi_setClassCallback;
    ubidi_setContext;
    ubidi_setInverse;
    ubidi_setLine;
    ubidi_setPara;
    ubidi_setReorderingMode;
    ubidi_setReorderingOptions;
    ubidi_writeReordered;
    ubidi_writeReverse;
    ubrk_close;
    ubrk_countAvailable;
    ubrk_current;
    ubrk_first;
    ubrk_following;
    ubrk_getAvailable;
    ubrk_getRuleStatus;
    ubrk_getRuleStatusVec;
    ubrk_isBoundary;
    ubrk_last;
    ubrk_next;
    ubrk_open;
    ubrk_preceding;
    ubrk_previous;
    ubrk_setText;
    ubrk_setUText;
    uenum_close;
    uenum_count;
    uenum_next;
    uenum_openCharStringsEnumeration;
    uenum_openUCharStringsEnumeration;
    uenum_reset;
    uenum_unext;
    uldn_close;
    uldn_getContext;
    uldn_getDialectHandling;
    uldn_getLocale;
    uldn_keyDisplayName;
    uldn_keyValueDisplayName;
    uldn_languageDisplayName;
    uldn_localeDisplayName;
    uldn_open;
    uldn_openForContext;
    uldn_regionDisplayName;
    uldn_scriptCodeDisplayName;
    uldn_scriptDisplayName;
    uldn_variantDisplayName;
    uloc_acceptLanguage;
    uloc_addLikelySubtags;
    uloc_canonicalize;
    uloc_countAvailable;
    uloc_forLanguageTag;
    uloc_getAvailable;
    uloc_getBaseName;
    uloc_getCharacterOrientation;
    uloc_getCountry;
    uloc_getDefault;
    uloc_getDisplayCountry;
    uloc_getDisplayKeyword;
    uloc_getDisplayKeywordValue;
    uloc_getDisplayLanguage;
    uloc_getDisplayName;
    uloc_getDisplayScript;
    uloc_getDisplayVariant;
    uloc_getISO3Country;
    uloc_getISO3Language;
    uloc_getISOCountries;
    uloc_getISOLanguages;
    uloc_getKeywordValue;
    uloc_getLanguage;
    uloc_getLineOrientation;
    uloc_getName;
    uloc_getScript;
    uloc_getVariant;
    uloc_isRightToLeft;
    uloc_minimizeSubtags;
    uloc_openKeywords;
    uloc_setKeywordValue;
    uloc_toLanguageTag;
    uloc_toLegacyKey;
    uloc_toLegacyType;
    uloc_toUnicodeLocaleKey;
    uloc_toUnicodeLocaleType;
    ulocdata_getCLDRVersion;
    unorm2_append;
    unorm2_close;
    unorm2_composePair;
    unorm2_getCombiningClass;
    unorm2_getDecomposition;
    unorm2_getNFCInstance;
    unorm2_getNFDInstance;
    unorm2_getNFKCCasefoldInstance;
    unorm2_getNFKCInstance;
    unorm2_getNFKDInstance;
    unorm2_getRawDecomposition;
    unorm2_hasBoundaryAfter;
    unorm2_hasBoundaryBefore;
    unorm2_isInert;
    unorm2_isNormalized;
    unorm2_normalize;
    unorm2_normalizeSecondAndAppend;
    unorm2_quickCheck;
    unorm2_spanQuickCheckYes;
    uscript_breaksBetweenLetters;
    uscript_getCode;
    uscript_getName;
    uscript_getSampleString;
    uscript_getScript;
    uscript_getScriptExtensions;
    uscript_getShortName;
    uscript_getUsage;
    uscript_hasScript;
    uscript_isCased;
    uscript_isRightToLeft;
    utext_char32At;
    utext_clone;
    utext_close;
    utext_current32;
    utext_equals;
    utext_extract;
    utext_getNativeIndex;
    utext_moveIndex32;
    utext_nativeLength;
    utext_next32;
    utext_next32From;
    utext_openUChars;
    utext_openUTF8;
    utext_previous32;
    utext_previous32From;
    utext_setNativeIndex;
  local:
    *;
};